fff-nodewatcher: Improve package #99
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-network
|
||||
PKG_RELEASE:=28
|
||||
PKG_RELEASE:=29
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
uci batch <<EOF
|
||||
add nodewatcher network
|
||||
set nodewatcher.@network[-1].mesh_interface='br-client'
|
||||
set nodewatcher.@network[-1].iface_blacklist='lo ifb0'
|
||||
set nodewatcher.@network[-1].ip_whitelist='br-client'
|
||||
EOF
|
||||
uci commit nodewatcher
|
||||
|
||||
exit 0
|
|
@ -1,7 +1,7 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fff-nodewatcher
|
||||
PKG_RELEASE:=60
|
||||
PKG_RELEASE:=63
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
|
@ -20,6 +20,10 @@ define Package/$(PKG_NAME)/description
|
|||
netmon.freifunk-franken.de
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/conffiles
|
||||
/etc/config/nodewatcher
|
||||
endef
|
||||
|
||||
|
||||
define Build/Compile
|
||||
# nothing
|
||||
endef
|
||||
|
|
|
@ -1,9 +1,16 @@
|
|||
[ -s /etc/config/nodewatcher ] && exit 0
|
||||
|
||||
touch /etc/config/nodewatcher
|
||||
|
||||
uci batch <<EOF
|
||||
uci batch >/dev/null <<EOF
|
||||
add nodewatcher script
|
||||
set nodewatcher.@script[-1].data_file='/tmp/crawldata/node.data'
|
||||
set nodewatcher.@script[-1].status_text_file='/tmp/status.txt'
|
||||
set nodewatcher.@script[-1].disabled='0'
|
||||
add nodewatcher network
|
||||
set nodewatcher.@network[-1].mesh_interface='br-client'
|
||||
set nodewatcher.@network[-1].iface_blacklist='lo ifb0'
|
||||
set nodewatcher.@network[-1].ip_whitelist='br-client'
|
||||
EOF
|
||||
uci commit nodewatcher
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ fi
|
|||
trap "lock -u \"$lockfile\"" INT TERM EXIT
|
||||
|
||||
[ -s /etc/config/nodewatcher ] || exit 1
|
||||
[ "$(uci get nodewatcher.@script[0].disabled)" = "1" ] && exit 0
|
||||
|
||||
SCRIPT_DATA_FILE=$(uci get nodewatcher.@script[0].data_file)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
hi, kannst du mir mal kurz erklaeren, was das define Package/xx/conffiles macht. Was ich dazu gefunden habe ist nicht befriedigend.
OpenWrt sieht vor, dass config-Files einmalig erstellt werden; entweder beim ersten Boot für eingebaute Packages oder beim Installieren für Packages via opkg. Führt man dann ein sysupgrade durch, wird nicht wie bei unserer Firmware alles wieder gelöscht, sondern die config bleiben grundsätzlich erhalten. Welche config-Files das genau sind, wird u.a. hier festgelegt:
https://github.com/openwrt/openwrt/blob/master/package/base-files/files/sbin/sysupgrade#L142
Genau dort greifen wir bei unserer Firmware auch ein, und ändern das mit dem ersten(?) build-Patch ab.
Wie du siehst, gibt es mehrere Quellen für solche Dateien:
/etc/sysupgrade.conf, /lib/upgrade/keep.d, ...
Ein anderes subset wird von opkg verwaltet, und lagert hier (kuck mal bei nem richtigen OpenWrt rein):
/usr/lib/opkg/status
Dort sind status-Daten zu allen Packages enthalten, inklusive der definierten conffiles inkl. hash. Sysupgrade hebt bei vanilla-OpenWrt nun alle Conf-Files auf, die hier gelistet sind, und deren hash sich vom default unterscheidet (zumindest habe ich das so verstanden). Umgekehrt wird eine Datei, die weder in /etc/sysupgrade.conf etc. noch hier gelistet ist, beim upgrade verworfen, auch wenn sie in /etc/config/ liegt.
So, warum nun das Ganze:
Ich möchte die Packages so modifizieren, dass man sie mittelfristig auch einfach als feed mit vanilla-OpenWrt bauen kann (lokal ist das schon fertig). Diese Änderung hier ist dabei insofern hilfreich, als nun bei vanilla-OpenWrt die /etc/config/nodewatcher, die der nodewatcher-Package "gehört", nun korrekt über ein Upgrade hinweg erhalten bleibt. Weiterhin bleibt jedoch das Verhalten der buildscript-basierten Firmware davon unbeeinflusst, weil diese ja den entsprechenden Upgrade-Mechanismus komplett abschaltet. Ich kann mit der Änderung also beide Szenarios sauber unterstützen, und genau das ist das Ziel.
Danke dir!
Ich finde die Moeglichkeit unsere packages mit openwrt zu bauen oder mit opkg nachinstallieren zu koennen richtig klasse. Zumindest fuer die layer3-variante. Das habe ich bisher haendisch gemacht, was doch ein gewisser Konfigurationsaufwand ist.