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

Christian Dresel fff at chrisi01.de
So Jun 10 09:10:33 CEST 2018


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 at 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. at 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. at 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
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180610/6ac788ba/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev