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

Tim Niemeyer tim at tn-x.org
Mo Jun 11 18:45:16 CEST 2018


Am Montag, den 11.06.2018, 18:22 +0200 schrieb robert:
> Hallo Tim,
> moechtest du das PROCD_DEBUG=9 drin lassen? 
Ja, wollte ich erstmal.

Im MacNocker ist auch noch n Haufen Debug-Output drin. Für den
(unwahrscheinlichen) Fall, dass es doch Probleme gibt, sollte man mMn
was sehen können.

Tim

> 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 Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 488 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180611/76437022/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev