[PATCH v1 1/4] fff-macnock: new package

mail at adrianschmutzler.de mail at adrianschmutzler.de
So Jun 10 14:19:13 CEST 2018


Den kann ich nicht reviewen, wäre aber anhand diverser Berichte damit
einverstanden.

Acked-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Sonntag, 10. Juni 2018 14:06
> To: franken-dev at freifunk.net
> Subject: [PATCH v1 1/4] fff-macnock: new package
> 
> 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
> --
> 2.11.0




Mehr Informationen über die Mailingliste franken-dev