Message ID | 20180403192749.28637-2-tim@tn-x.org |
---|---|
State | Superseded |
Headers | show |
diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile index f36d268..b565ac7 100644 --- a/src/packages/fff/fff-hoods/Makefile +++ b/src/packages/fff/fff-hoods/Makefile @@ -13,7 +13,7 @@ define Package/$(PKG_NAME) CATEGORY:=Freifunk TITLE:= Freifunk-Franken hoods URL:=http://www.freifunk-franken.de - DEPENDS:=+fff-hoodutils + DEPENDS:=+fff-hoodutils +fff-macnock endef define Package/$(PKG_NAME)/description diff --git a/src/packages/fff/fff-macnock/Makefile b/src/packages/fff/fff-macnock/Makefile new file mode 100644 index 0000000..fb89155 --- /dev/null +++ b/src/packages/fff/fff-macnock/Makefile @@ -0,0 +1,39 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-macnock +PKG_VERSION:=0.1 +PKG_RELEASE:=1 +PKG_REV:=ffd1a64515709d75afaab0f990308fd164dc4cc6 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=https://github.com/RedDog99/macnocker.git +PKG_SOURCE_PROTO:=git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=$(PKG_REV) + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +CMAKE_OPTIONS:=-DMACNOCK_DEBUG=ON + +define Package/$(PKG_NAME) + SECTION:=base + CATEGORY:=Freifunk + TITLE:= Freifunk-Franken mac nocker + URL:=http://www.freifunk-franken.de + KCONFIG:= \ + CONFIG_NET_EMATCH=y \ + CONFIG_NET_EMATCH_U32=y \ + CONFIG_NET_CLS_BASIC=y \ + CONFIG_NET_CLS_ACT=y \ + CONFIG_NET_ACT_GACT=y \ + CONFIG_NET_CLS_U32=y +endef + +define Package/$(PKG_NAME)/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/macnock $(1)/usr/sbin/macnock + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/src/packages/fff/fff-macnock/files/etc/init.d/macnock b/src/packages/fff/fff-macnock/files/etc/init.d/macnock new file mode 100755 index 0000000..2bb34ed --- /dev/null +++ b/src/packages/fff/fff-macnock/files/etc/init.d/macnock @@ -0,0 +1,49 @@ +#!/bin/sh /etc/rc.common + +START=99 + +USE_PROCD=1 +PROCD_DEBUG=9 + +validate_hood_section() { + test -n "$(uci -q get system.@system[0].hood)" +} + +service_triggers() +{ + local script name + + script=$(readlink -f "$initscript") + name=$(basename ${script:-$initscript}) + + procd_add_config_trigger "config.change" "system" /etc/init.d/$name reload + procd_add_interface_trigger "interface.*" "ethmesh" /etc/init.d/$name reload + procd_add_validation validate_hood_section +} + +reload_service() +{ + echo "Explicitly restarting macnocker" + stop + start +} + +start_service() { + validate_hood_section || { + echo "validation failed" + return 1 + } + + + local IFACE=$(uci -q get network.ethmesh.ifname) + local HOOD=$(uci -q get system.@system[0].hood) + procd_open_instance macnock + procd_set_param command /usr/sbin/macnock $IFACE $HOOD + procd_set_param respawn 10 10 0 + procd_set_param file /etc/config/system + procd_set_param netdev $IFACE + procd_set_param stdout 1 + procd_set_param stderr 1 + procd_set_param user root + procd_close_instance +} diff --git a/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock b/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock new file mode 100644 index 0000000..5c0b788 --- /dev/null +++ b/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock @@ -0,0 +1,6 @@ +#!/bin/sh + +if ! grep -q u32 /etc/iproute2/ematch_map; +then + echo "3 u32" > /etc/iproute2/ematch_map +fi
Hi den Macnocker kann ich mir aufgrund mangelten C Kenntnisse nicht genauer angucken, möchte aber anmerken das er bitte in Freifunk Franken Git landen sollte. Ansonsten, soweit das Ding das tut, was du immer wieder erklärt hast, bin ich unbedingt dafür ihn mit einzubauen, möglichst noch vor dem Release. mfg Christian On 03.04.2018 21:27, Tim Niemeyer wrote: > Fixes #68 > > Signed-off-by: Tim Niemeyer <tim@tn-x.org> > --- > > src/packages/fff/fff-hoods/Makefile | 2 +- > src/packages/fff/fff-macnock/Makefile | 39 +++++++++++++++++ > .../fff/fff-macnock/files/etc/init.d/macnock | 49 ++++++++++++++++++++++ > .../files/etc/uci-defaults/52-fff-macnock | 6 +++ > 4 files changed, 95 insertions(+), 1 deletion(-) > create mode 100644 src/packages/fff/fff-macnock/Makefile > create mode 100755 src/packages/fff/fff-macnock/files/etc/init.d/macnock > create mode 100644 src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock > > diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile > index f36d268..b565ac7 100644 > --- a/src/packages/fff/fff-hoods/Makefile > +++ b/src/packages/fff/fff-hoods/Makefile > @@ -13,7 +13,7 @@ define Package/$(PKG_NAME) > CATEGORY:=Freifunk > TITLE:= Freifunk-Franken hoods > URL:=http://www.freifunk-franken.de > - DEPENDS:=+fff-hoodutils > + DEPENDS:=+fff-hoodutils +fff-macnock > endef > > define Package/$(PKG_NAME)/description > diff --git a/src/packages/fff/fff-macnock/Makefile b/src/packages/fff/fff-macnock/Makefile > new file mode 100644 > index 0000000..fb89155 > --- /dev/null > +++ b/src/packages/fff/fff-macnock/Makefile > @@ -0,0 +1,39 @@ > +include $(TOPDIR)/rules.mk > + > +PKG_NAME:=fff-macnock > +PKG_VERSION:=0.1 > +PKG_RELEASE:=1 > +PKG_REV:=ffd1a64515709d75afaab0f990308fd164dc4cc6 > + > +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 > +PKG_SOURCE_URL:=https://github.com/RedDog99/macnocker.git > +PKG_SOURCE_PROTO:=git > +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) > +PKG_SOURCE_VERSION:=$(PKG_REV) > + > +include $(INCLUDE_DIR)/package.mk > +include $(INCLUDE_DIR)/cmake.mk > + > +CMAKE_OPTIONS:=-DMACNOCK_DEBUG=ON > + > +define Package/$(PKG_NAME) > + SECTION:=base > + CATEGORY:=Freifunk > + TITLE:= Freifunk-Franken mac nocker > + URL:=http://www.freifunk-franken.de > + KCONFIG:= \ > + CONFIG_NET_EMATCH=y \ > + CONFIG_NET_EMATCH_U32=y \ > + CONFIG_NET_CLS_BASIC=y \ > + CONFIG_NET_CLS_ACT=y \ > + CONFIG_NET_ACT_GACT=y \ > + CONFIG_NET_CLS_U32=y > +endef > + > +define Package/$(PKG_NAME)/install > + $(INSTALL_DIR) $(1)/usr/sbin > + $(INSTALL_BIN) $(PKG_BUILD_DIR)/macnock $(1)/usr/sbin/macnock > + $(CP) ./files/* $(1)/ > +endef > + > +$(eval $(call BuildPackage,$(PKG_NAME))) > diff --git a/src/packages/fff/fff-macnock/files/etc/init.d/macnock b/src/packages/fff/fff-macnock/files/etc/init.d/macnock > new file mode 100755 > index 0000000..2bb34ed > --- /dev/null > +++ b/src/packages/fff/fff-macnock/files/etc/init.d/macnock > @@ -0,0 +1,49 @@ > +#!/bin/sh /etc/rc.common > + > +START=99 > + > +USE_PROCD=1 > +PROCD_DEBUG=9 > + > +validate_hood_section() { > + test -n "$(uci -q get system.@system[0].hood)" > +} > + > +service_triggers() > +{ > + local script name > + > + script=$(readlink -f "$initscript") > + name=$(basename ${script:-$initscript}) > + > + procd_add_config_trigger "config.change" "system" /etc/init.d/$name reload > + procd_add_interface_trigger "interface.*" "ethmesh" /etc/init.d/$name reload > + procd_add_validation validate_hood_section > +} > + > +reload_service() > +{ > + echo "Explicitly restarting macnocker" > + stop > + start > +} > + > +start_service() { > + validate_hood_section || { > + echo "validation failed" > + return 1 > + } > + > + > + local IFACE=$(uci -q get network.ethmesh.ifname) > + local HOOD=$(uci -q get system.@system[0].hood) > + procd_open_instance macnock > + procd_set_param command /usr/sbin/macnock $IFACE $HOOD > + procd_set_param respawn 10 10 0 > + procd_set_param file /etc/config/system > + procd_set_param netdev $IFACE > + procd_set_param stdout 1 > + procd_set_param stderr 1 > + procd_set_param user root > + procd_close_instance > +} > diff --git a/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock b/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock > new file mode 100644 > index 0000000..5c0b788 > --- /dev/null > +++ b/src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock > @@ -0,0 +1,6 @@ > +#!/bin/sh > + > +if ! grep -q u32 /etc/iproute2/ematch_map; > +then > + echo "3 u32" > /etc/iproute2/ematch_map > +fi >
Fixes #68 Signed-off-by: Tim Niemeyer <tim@tn-x.org> --- src/packages/fff/fff-hoods/Makefile | 2 +- src/packages/fff/fff-macnock/Makefile | 39 +++++++++++++++++ .../fff/fff-macnock/files/etc/init.d/macnock | 49 ++++++++++++++++++++++ .../files/etc/uci-defaults/52-fff-macnock | 6 +++ 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/packages/fff/fff-macnock/Makefile create mode 100755 src/packages/fff/fff-macnock/files/etc/init.d/macnock create mode 100644 src/packages/fff/fff-macnock/files/etc/uci-defaults/52-fff-macnock