bsp/default in Paket verschieben #179

Open
opened 2021-12-02 15:06:20 +01:00 by jkimmel · 8 comments
Owner

In bsp/default/ liegen noch 3 einsame Dateien herum.

$ tree bsp/default/
bsp/default/
└── root_file_system
    └── etc
        ├── banner
        ├── profile
        └── rc.local

Die wollen glaube ich in passende Pakete untergebracht oder in einem neuen zusammengefasst werden.

Jemand ne idee wo das Zeug hin kann, bzw. ob man dafür einfach ein neues Paket schnüren will?

Bei der Gelegenheit könnte man auch aus dem rc.local schnipsel eventuell gleich einen richtigen service machen.

In `bsp/default/` liegen noch 3 einsame Dateien herum. ``` $ tree bsp/default/ bsp/default/ └── root_file_system └── etc ├── banner ├── profile └── rc.local ``` Die wollen glaube ich in passende Pakete untergebracht oder in einem neuen zusammengefasst werden. Jemand ne idee wo das Zeug hin kann, bzw. ob man dafür einfach ein neues Paket schnüren will? Bei der Gelegenheit könnte man auch aus dem rc.local schnipsel eventuell gleich einen richtigen service machen.
Member

Package fff wäre wohl das richtige. Danach spaltet es sich auf in node und layer3.

Package fff wäre wohl das richtige. Danach spaltet es sich auf in node und layer3.
Author
Owner

Das fff Paket ist ein guter Hinweis. Das fff Paket selber ist aber mehr so ein Metapaket. Das würde ich auch so lassen.
Es zieht aber immer beispielsweise das fff-config Paket rein und da wäre denke ich ein guter Platz. Das hätte auch schon ein files Ordner, wo man die 3 Dateien unterbringen kann.

Hier sind noch die anderen Kandidaten:

define Package/fff-variant/default
	SECTION:=base
	CATEGORY:=Freifunk
	URL:=https://www.freifunk-franken.de
	DEFAULT:=$(if $(filter fff-variant-$(FFF_VARIANT),$(1)),y,n)
	DEPENDS:= \
		+iptables \
		+ip6tables \
		+micrond \
		+odhcp6c \
		+fff-config \
		+fff-network \
		+fff-nodewatcher \
		+fff-simple-tc \
		+fff-support \
		+fff-sysupgrade \
		+fff-timeserver \
		+fff-web-ui \
		+fff-wireless
endef
Das `fff` Paket ist ein guter Hinweis. Das `fff` Paket selber ist aber mehr so ein Metapaket. Das würde ich auch so lassen. Es zieht aber immer beispielsweise das `fff-config` Paket rein und da wäre denke ich ein guter Platz. Das hätte auch schon ein `files` Ordner, wo man die 3 Dateien unterbringen kann. Hier sind noch die anderen Kandidaten: ``` define Package/fff-variant/default SECTION:=base CATEGORY:=Freifunk URL:=https://www.freifunk-franken.de DEFAULT:=$(if $(filter fff-variant-$(FFF_VARIANT),$(1)),y,n) DEPENDS:= \ +iptables \ +ip6tables \ +micrond \ +odhcp6c \ +fff-config \ +fff-network \ +fff-nodewatcher \ +fff-simple-tc \ +fff-support \ +fff-sysupgrade \ +fff-timeserver \ +fff-web-ui \ +fff-wireless endef ```
Member

Ja, fff-config ist gut. Nimm das und werf die Dateien rein.

Ja, fff-config ist gut. Nimm das und werf die Dateien rein.
Author
Owner

Och nö.

...

Collected errors:
 * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/banner
    But that file is already provided by package  * base-files
 * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/profile
    But that file is already provided by package  * base-files
 * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/rc.local
    But that file is already provided by package  * base-files
 * opkg_install_cmd: Cannot install package fff-config.

...

make[2]: *** [package/Makefile:69: package/install] Error 255
make[2]: Leaving directory '/firmware/build'
make[1]: *** [package/Makefile:109: /firmware/build/staging_dir/target-mipsel_24kc_musl/stamp/.package_install] Error 2
make[1]: Leaving directory '/firmware/build'
make: *** [/firmware/build/include/toplevel.mk:230: world] Error 2

Die Dateien werden leider schon vom base-files Paket geliefert und können daher nicht von einem anderen Paket installiert werden.

Egal wie man es macht - sauber wirds nicht. Dann können wir es auch so lassen.

Och nö. ``` ... Collected errors: * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/banner But that file is already provided by package * base-files * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/profile But that file is already provided by package * base-files * check_data_file_clashes: Package fff-config wants to install file /firmware/build/build_dir/target-mipsel_24kc_musl/root-ramips/etc/rc.local But that file is already provided by package * base-files * opkg_install_cmd: Cannot install package fff-config. ... make[2]: *** [package/Makefile:69: package/install] Error 255 make[2]: Leaving directory '/firmware/build' make[1]: *** [package/Makefile:109: /firmware/build/staging_dir/target-mipsel_24kc_musl/stamp/.package_install] Error 2 make[1]: Leaving directory '/firmware/build' make: *** [/firmware/build/include/toplevel.mk:230: world] Error 2 ``` Die Dateien werden leider schon vom `base-files` Paket geliefert und können daher nicht von einem anderen Paket installiert werden. Egal wie man es macht - sauber wirds nicht. Dann können wir es auch so lassen.
Owner

rc.local kann man sehr schön durch Dienste ersetzen, das habe ich in meiner Firmware bereits vor Jahren gemacht, und verschiedene Varianten wurden auch schon im Patchwork vorgeschlagen. rc.local fällt dann komplett weg, für configurenetwork und configurehood werden jeweils init.d Dateien in den zugehörigen Paketen erstellt.

Und für /tmp/started muss man dann noch eine zielgerechte Lösung bauen. Daran ist damals die ganze Sache im Patchwork gescheitert: /tmp/started war böse und sollte weg, und eine Zwischenlösung war nicht akzeptabel. Ich habe in meiner Firmware einfach ein Package dafür und damit war die Sache erledigt.

Die Änderungen können ganz nett hier nachvollzogen werden (oberste fünf Commits):

https://github.com/adschm/fff-firmware/commits/mainline/bsp/default/root_file_system/etc

Dort sieht man aber nicht eventuell zusätzliche Anpassungen der START= Variablen in anderen Paketen.

rc.local kann man sehr schön durch Dienste ersetzen, das habe ich in meiner Firmware bereits vor Jahren gemacht, und verschiedene Varianten wurden auch schon im Patchwork vorgeschlagen. rc.local fällt dann komplett weg, für configurenetwork und configurehood werden jeweils init.d Dateien in den zugehörigen Paketen erstellt. Und für /tmp/started muss man dann noch eine zielgerechte Lösung bauen. Daran ist damals die ganze Sache im Patchwork gescheitert: /tmp/started war böse und sollte weg, und eine Zwischenlösung war nicht akzeptabel. Ich habe in meiner Firmware einfach ein Package dafür und damit war die Sache erledigt. Die Änderungen können ganz nett hier nachvollzogen werden (oberste fünf Commits): https://github.com/adschm/fff-firmware/commits/mainline/bsp/default/root_file_system/etc Dort sieht man aber nicht eventuell zusätzliche Anpassungen der START= Variablen in anderen Paketen.
jkimmel reopened this issue 2021-12-05 02:54:35 +01:00
Author
Owner

Dann mache ich das issue doch nochmal auf, denn mir ist auch noch etwas eingefallen.

/etc/profile aus Openwrt müssen wir denke ich nicht wirklich überschreiben.

[ -n "$FAILSAFE" ] || {
	for FILE in /etc/profile.d/*.sh; do
		[ -e "$FILE" ] && . "$FILE"
	done
	unset FILE
}

Wir könnten also unsere Anpassungen also einfach in /etc/profile.d/ ablegen. Das fände ich sowieso viel sauberer.

Mit dem Vorschlag von @adschm könnten wir also auch /etc/rc.local sauber umverpacken.

Eine simple Lösung für /etc/banner wäre einfach das Openwrt Logo zu lassen und unseres einfach dazu hinterher auszugeben (via script in /etc/profile.d/).

Dann mache ich das issue doch nochmal auf, denn mir ist auch noch etwas eingefallen. `/etc/profile` aus Openwrt müssen wir denke ich nicht wirklich überschreiben. ```sh [ -n "$FAILSAFE" ] || { for FILE in /etc/profile.d/*.sh; do [ -e "$FILE" ] && . "$FILE" done unset FILE } ``` Wir könnten also unsere Anpassungen also einfach in `/etc/profile.d/` ablegen. Das fände ich sowieso viel sauberer. Mit dem Vorschlag von @adschm könnten wir also auch `/etc/rc.local` sauber umverpacken. Eine simple Lösung für `/etc/banner` wäre einfach das Openwrt Logo zu lassen und unseres einfach dazu hinterher auszugeben (via script in `/etc/profile.d/`).
Member

Oder /etc/banner erst auf dem Gerät überschreiben.

Oder /etc/banner erst auf dem Gerät überschreiben.
Owner

Runtime-Überschreibe-Varianten kosten halt doppelt (geringfügig) Speicherplatz.

Runtime-Überschreibe-Varianten kosten halt doppelt (geringfügig) Speicherplatz.
fbl added this to the 20220405-beta milestone 2021-12-21 14:49:29 +01:00
fbl modified the milestone from 20220405-beta to next-bugfix 2022-03-03 15:50:44 +01:00
Sign in to join this conversation.
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: freifunk-franken/firmware#179
No description provided.