From 2a68763ad03fad53e61dbe8cb37ca66d4c31e03f Mon Sep 17 00:00:00 2001 From: Christof Schulze Date: Wed, 27 Apr 2016 23:36:08 +0200 Subject: [PATCH] split gluon-radvd into gluon-radvd-babel and gluon-radvd-batman, make mkconfig for gluon-mesh-babel more flexible --- .../files/etc/init.d/gluon-mesh-babel | 37 +++++++++++++++++++ .../Makefile | 10 ++--- .../files/etc/init.d/gluon-radvd | 15 ++++++++ .../lib/gluon/upgrade/500-radvd-remove-user | 0 .../usr/lib/autoupdater/abort.d/80gluon-radvd | 0 .../lib/autoupdater/download.d/20gluon-radvd | 0 package/gluon-radvd-batman/Makefile | 35 ++++++++++++++++++ .../files/etc/init.d/gluon-radvd | 0 .../lib/gluon/upgrade/500-radvd-remove-user | 5 +++ .../usr/lib/autoupdater/abort.d/80gluon-radvd | 6 +++ .../lib/autoupdater/download.d/20gluon-radvd | 6 +++ 11 files changed, 109 insertions(+), 5 deletions(-) create mode 100755 package/gluon-mesh-babel/files/etc/init.d/gluon-mesh-babel rename package/{gluon-radvd => gluon-radvd-babel}/Makefile (71%) create mode 100755 package/gluon-radvd-babel/files/etc/init.d/gluon-radvd rename package/{gluon-radvd => gluon-radvd-babel}/files/lib/gluon/upgrade/500-radvd-remove-user (100%) rename package/{gluon-radvd => gluon-radvd-babel}/files/usr/lib/autoupdater/abort.d/80gluon-radvd (100%) rename package/{gluon-radvd => gluon-radvd-babel}/files/usr/lib/autoupdater/download.d/20gluon-radvd (100%) create mode 100644 package/gluon-radvd-batman/Makefile rename package/{gluon-radvd => gluon-radvd-batman}/files/etc/init.d/gluon-radvd (100%) create mode 100755 package/gluon-radvd-batman/files/lib/gluon/upgrade/500-radvd-remove-user create mode 100755 package/gluon-radvd-batman/files/usr/lib/autoupdater/abort.d/80gluon-radvd create mode 100755 package/gluon-radvd-batman/files/usr/lib/autoupdater/download.d/20gluon-radvd diff --git a/package/gluon-mesh-babel/files/etc/init.d/gluon-mesh-babel b/package/gluon-mesh-babel/files/etc/init.d/gluon-mesh-babel new file mode 100755 index 00000000..bea0a89d --- /dev/null +++ b/package/gluon-mesh-babel/files/etc/init.d/gluon-mesh-babel @@ -0,0 +1,37 @@ +#!/bin/sh /etc/rc.common + +. $IPKG_INSTROOT/lib/functions/network.sh + +START=70 + +pidfile='/var/run/babeld.pid' +CONFIGFILE='/var/etc/gluon-babel.conf' +EXTRA_COMMANDS="status" +EXTRA_HELP=" status Dump Babel's table to the log file." + +start() { + mkdir -p /var/lib + mkdir -p /var/etc + /lib/gluon/gluon-mesh-babel/mkconfig "$CONFIGFILE" + /usr/sbin/babeld -D -I "$pidfile" -c "$CONFIGFILE" + # Wait for the pidfile to appear + for i in 1 2 + do + [ -f "$pidfile" ] || sleep 1 + done + [ -f "$pidfile" ] || (echo "Failed to start babeld"; exit 42) +} + +stop() { + [ -f "$pidfile" ] && kill $(cat $pidfile) + # avoid race-condition on restart: wait for + # babeld to die for real. + [ -f "$pidfile" ] && sleep 1 + [ -f "$pidfile" ] && sleep 1 + [ -f "$pidfile" ] && sleep 1 + [ -f "$pidfile" ] && exit 42 +} + +status() { + [ -f "$pidfile" ] && kill -USR1 $(cat $pidfile) +} diff --git a/package/gluon-radvd/Makefile b/package/gluon-radvd-babel/Makefile similarity index 71% rename from package/gluon-radvd/Makefile rename to package/gluon-radvd-babel/Makefile index 08448362..3e49515a 100644 --- a/package/gluon-radvd/Makefile +++ b/package/gluon-radvd-babel/Makefile @@ -1,20 +1,20 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=gluon-radvd +PKG_NAME:=gluon-radvd-babel PKG_VERSION:=4 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk -define Package/gluon-radvd +define Package/gluon-radvd-babel SECTION:=gluon CATEGORY:=Gluon TITLE:=Advertise an IPv6 prefix from the node DEPENDS:=+gluon-core +uradvd endef -define Package/gluon-radvd/description +define Package/gluon-radvd-babel/description Gluon community wifi mesh firmware framework: Advertise an IPv6 prefix from the node endef @@ -28,8 +28,8 @@ endef define Build/Compile endef -define Package/gluon-radvd/install +define Package/gluon-radvd-babel/install $(CP) ./files/* $(1)/ endef -$(eval $(call BuildPackage,gluon-radvd)) +$(eval $(call BuildPackage,gluon-radvd-babel)) diff --git a/package/gluon-radvd-babel/files/etc/init.d/gluon-radvd b/package/gluon-radvd-babel/files/etc/init.d/gluon-radvd new file mode 100755 index 00000000..98cf7a36 --- /dev/null +++ b/package/gluon-radvd-babel/files/etc/init.d/gluon-radvd @@ -0,0 +1,15 @@ +#!/bin/sh /etc/rc.common + +START=50 + +SERVICE_WRITE_PID=1 +SERVICE_DAEMONIZE=1 + + +start() { + service_start /usr/sbin/uradvd -i local-node -a $(lua -e 'print(require("gluon.site_config").prefix6)') --default-lifetime 900 +} + +stop() { + service_stop /usr/sbin/uradvd +} diff --git a/package/gluon-radvd/files/lib/gluon/upgrade/500-radvd-remove-user b/package/gluon-radvd-babel/files/lib/gluon/upgrade/500-radvd-remove-user similarity index 100% rename from package/gluon-radvd/files/lib/gluon/upgrade/500-radvd-remove-user rename to package/gluon-radvd-babel/files/lib/gluon/upgrade/500-radvd-remove-user diff --git a/package/gluon-radvd/files/usr/lib/autoupdater/abort.d/80gluon-radvd b/package/gluon-radvd-babel/files/usr/lib/autoupdater/abort.d/80gluon-radvd similarity index 100% rename from package/gluon-radvd/files/usr/lib/autoupdater/abort.d/80gluon-radvd rename to package/gluon-radvd-babel/files/usr/lib/autoupdater/abort.d/80gluon-radvd diff --git a/package/gluon-radvd/files/usr/lib/autoupdater/download.d/20gluon-radvd b/package/gluon-radvd-babel/files/usr/lib/autoupdater/download.d/20gluon-radvd similarity index 100% rename from package/gluon-radvd/files/usr/lib/autoupdater/download.d/20gluon-radvd rename to package/gluon-radvd-babel/files/usr/lib/autoupdater/download.d/20gluon-radvd diff --git a/package/gluon-radvd-batman/Makefile b/package/gluon-radvd-batman/Makefile new file mode 100644 index 00000000..3ee2b329 --- /dev/null +++ b/package/gluon-radvd-batman/Makefile @@ -0,0 +1,35 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=gluon-radvd-batman +PKG_VERSION:=4 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/gluon-radvd-batman + SECTION:=gluon + CATEGORY:=Gluon + TITLE:=Advertise an IPv6 prefix from the node + DEPENDS:=+gluon-core +uradvd +endef + +define Package/gluon-radvd-batman/description + Gluon community wifi mesh firmware framework: Advertise an IPv6 prefix from the node +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/gluon-radvd-batman/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,gluon-radvd-batman)) diff --git a/package/gluon-radvd/files/etc/init.d/gluon-radvd b/package/gluon-radvd-batman/files/etc/init.d/gluon-radvd similarity index 100% rename from package/gluon-radvd/files/etc/init.d/gluon-radvd rename to package/gluon-radvd-batman/files/etc/init.d/gluon-radvd diff --git a/package/gluon-radvd-batman/files/lib/gluon/upgrade/500-radvd-remove-user b/package/gluon-radvd-batman/files/lib/gluon/upgrade/500-radvd-remove-user new file mode 100755 index 00000000..036406af --- /dev/null +++ b/package/gluon-radvd-batman/files/lib/gluon/upgrade/500-radvd-remove-user @@ -0,0 +1,5 @@ +#!/usr/bin/lua + +local users = require 'gluon.users' + +users.remove_user('gluon-radvd') diff --git a/package/gluon-radvd-batman/files/usr/lib/autoupdater/abort.d/80gluon-radvd b/package/gluon-radvd-batman/files/usr/lib/autoupdater/abort.d/80gluon-radvd new file mode 100755 index 00000000..5784fa5f --- /dev/null +++ b/package/gluon-radvd-batman/files/usr/lib/autoupdater/abort.d/80gluon-radvd @@ -0,0 +1,6 @@ +#!/bin/sh + +. /lib/gluon/autoupdater/lib.sh + + +start_enabled gluon-radvd diff --git a/package/gluon-radvd-batman/files/usr/lib/autoupdater/download.d/20gluon-radvd b/package/gluon-radvd-batman/files/usr/lib/autoupdater/download.d/20gluon-radvd new file mode 100755 index 00000000..ade50616 --- /dev/null +++ b/package/gluon-radvd-batman/files/usr/lib/autoupdater/download.d/20gluon-radvd @@ -0,0 +1,6 @@ +#!/bin/sh + +. /lib/gluon/autoupdater/lib.sh + + +stop gluon-radvd