[PATCH v1 1/4] fff-macnock: new package
robert
rlanghammer at web.de
Mo Jun 11 18:22:23 CEST 2018
Hallo Tim,
moechtest du das PROCD_DEBUG=9 drin lassen?
Die 9 hat mich erstmal leicht irritiert. Soweit ich das dann verstanden
habe wird nur geprueft, ob die Variable Inhalt hat und nicht der Wert.
procd.sh 59: [ -n "$PROCD_DEBUG" ] && json_dump >&2
Das kann aber auch so bleiben.
Reviewed-by: Robert Langhammer <rlanghammer at web.de>
gilt natuerlich nicht fuer den macnocker. Das muss jemand machen, der C kann.
Am 10.06.2018 um 14:05 schrieb Tim Niemeyer:
> Fixes #68
>
> Signed-off-by: Tim Niemeyer <tim at tn-x.org>
> ---
>
> Changes in v1:
> - change repo URL to FreifunkFranken Repo
> - macnock is started w/o hood (instead mac is used)
> - use quotes
> - add depends to fff-network
>
> src/packages/fff/fff-hoods/Makefile | 2 +-
> src/packages/fff/fff-macnock/Makefile | 40 ++++++++++++++
> .../fff/fff-macnock/files/etc/init.d/macnock | 64 ++++++++++++++++++++++
> .../files/etc/uci-defaults/52-fff-macnock | 6 ++
> 4 files changed, 111 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..359c45d
> --- /dev/null
> +++ b/src/packages/fff/fff-macnock/Makefile
> @@ -0,0 +1,40 @@
> +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/FreifunkFranken/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
> + DEPENDS:=+fff-network
> +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..41fc9f1
> --- /dev/null
> +++ b/src/packages/fff/fff-macnock/files/etc/init.d/macnock
> @@ -0,0 +1,64 @@
> +#!/bin/sh /etc/rc.common
> +
> +START=99
> +
> +USE_PROCD=1
> +PROCD_DEBUG=9
> +
> +validate_hood_section() {
> + if [ -z "$(uci -q get network.ethmesh.ifname)" ]; then
> + # false
> + return 1
> + fi
> +
> + if [ -n "$(uci -q get system. at system[0].hood)" -o -n "$(uci -q get network.mesh.macaddr)" ]; then
> + # true
> + return 0
> + fi
> +
> + # false
> + return 1
> +}
> +
> +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. at system[0].hood)"
> + if [ -z "$HOOD" ]; then
> + HOOD="$(uci -q get network.mesh.macaddr)"
> + fi
> +
> + 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
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180611/af69c39c/attachment.html>
Mehr Informationen über die Mailingliste franken-dev