Neue configure-Option --enable-busybox-flash-options=...

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Neue configure-Option --enable-busybox-flash-options=...

Beitrag von Barf »

Neulich gab es mehrere Threads über die Möglichkeit, die Busyboxkonfiguration von configure zu beinflussen. Auch ich habe mich Gedanken gemacht. Ich glaube, dass was ich und viele Andere sich wünschen, ist eine Möglichkeit, eine kleine Anzahl Konfigurationsoptionen (nicht a priori festgelegt welche!) ein/auszuschalten, ohne dafür eine eigene busybox.config[.m4] zu unterhalten.

Vorschlag: Neue configure-Optionen --[enable|disable]-busybox-[flash|yadd]-optionen=<list>. Z.B.

Code: Alles auswählen

./configure .... --enable-busybox-flash-options=CONFIG_NC,CONFIG_UNZIP 
Dadurch wird die entsprechende Busyboxoptionen in flash- bzw yadd ein bzw ausgeschaltet. Das Argument vom configure-Option wird m4 übergeben als macro, im Beispiel

m4 -Dflash_enable=CONFIG_NC,CONFIG_UNZIP ... busybox.config.m4

Dazu braucht man etwas neues am m4 Macros in busybox.config.m4. Dies kann wie folgt aussehen:

Code: Alles auswählen


define(`define_disenables', `ifelse(`$#', `1', , `$#', `2',
        `define(`$2'_`$1')',
        `define(`$2'_`$1')define_disenables(`$1',shift(shift($@)))')')dnl
dnl
define(`dooption',`ifdef(`$1'`_enable', `$1=y',
                         `ifdef(`$1'`_disable', `# $1 is not set',
                                                `ifelse(`$2',`n', `# $1 is not set', `$1=y')')')')dnl
dnl
ifdef(`yadd',
`define(`option',`dooption($1,$2)')dnl
ifdef(`yadd_enable',`define_disenables(`enable', yadd_enable)')dnl,
ifdef(`yadd_disable',`define_disenables(`disable', yadd_disable)')dnl',
`define(`option',`dooption($1,$3)')dnl
ifdef(`flash_enable',`define_disenables(`enable', flash_enable)')dnl
ifdef(`flash_disable',`define_disenables(`disable', flash_disable)')')dnl
(Zur zeit wird m4 in busybox.config.m4 nur als cpp-Ersatz eingesetzt...)

Die Implementierung in configure.ac und make/busybox.mk "ist trivial und wird dem Leser als Übung überlassen". :wink:
dwilx

Re: Neue configure-Option --enable-busybox-flash-options=...

Beitrag von dwilx »

Ist eigentlich eine gute Idee, nur wird das dann nicht zu viel? Reicht da nicht --with-busybox-config?
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Neue configure-Option --enable-busybox-flash-options=...

Beitrag von Barf »

dixidix hat geschrieben:Reicht da nicht --with-busybox-config?
Natürlich "reicht" --with-busybox-config in Sinn dass es so möglich ist, alle mögliche Optionen ein- und auszuschalten. Eine auf dauer gute Lösung für der, der eine kleine Anzahl Optionen einschalten will, ist es aber nicht: In dem man eine eigene (Version der) Konfigurationsdatei anlegt, legt man de facto einen privaten Branch an. Man entscheidet sich, die Datei busybox.config.m4 in der Zukunft selbst zu verwalten, und zukünftige Änderungen in CVS erst nach händisches Mergen zu übernehmen. Z.B. bei Releasewechsel bei Busybox bekommt man erhebliche Arbeit, die eigene Änderungen reinzumergen. Dies ist wirklich nicht angemessen, falls man z.B. nur ein oder zwei extra Optionen (siehe z.B. hier) einschalten will. Die Möglichkeit, anstatt nur gewünschte Optionen ein- oder auszuschalten ist qualitativ eine viel bessere Lösung.

Dann ist es ja natürlich die Frage, wie die configure-optionen gewählt werden soll. Wieviele sind zu viel? Hier muss man erst feststellen, dass wir nicht mit "useroptions" wirken, sondern mit optionen für "imagebauern", also eine etwas mehr qualifizierte Zielgruppe.

In jedem Fall wäre es sinnvoll, customizations für busybox.config.m4 zuzulassen, entweder als Komplement oder Ersatz für die Konfigurationsoptionen in Posting #1. Dies könnte man implementieren als

Code: Alles auswählen

sinclude(customizationsdir`/busybox.config_local.m4')
(zwischen den neuen Makros und den options) wobei customizationdir das customizationverzeichniss ist, am Kommandozeile an m4 übergeben

Code: Alles auswählen

m4 -Dcustomizationsdir=$(customizationsdir) ...
Eventuell könnte man sogar ein busybox_post_customization.m4 am Ende zulassen.

Falls niemand Einwände formuliert, werde ich wahrscheinlich sowas einchecken; sollte nichts kaputtmachen.
dwilx

Re: Neue configure-Option --enable-busybox-flash-options=...

Beitrag von dwilx »

Wenn das so dokumentiert ist, dass man es nachvollziehen kann, solls mir recht sein. :wink:
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Neue configure-Option --enable-busybox-flash-options=...

Beitrag von Barf »

Ich habe den Vorschlag in meinen zweiten Posting oben eingecheckt. Vgl. http://tuxbox-forum.dreambox-fan.de/for ... =7&t=48534.