Vorschlag für neuen Patch: --with-features=...

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Striper »

Barf hat geschrieben:
Striper hat geschrieben: Ich kann den Thread gerne splitten. Das sollte das geringste Problem sein.
Das wurde wohl kaum hilfen, weil das Problem von inhaltliger Art ist. Ich möchte wissen was mit den standbyversionspatch geworden ist (da hilft wohl nicht ein Splitten).
Vermutlich nix. Sonst würde man den ja irgendwo finden. ;)
Barf hat geschrieben:
- generell weniger Bedarf an customize Scripten da vieles übersichtlich durch den configure Aufruf erledigt wird
Ist genau so gut mit dem alten --enable-foo als mit dem neuen --with-feature=foo getan.
Richtig, nur ist es mir als Nutzer völlig egal ob ich das mit --enable-foo oder mit --with-feature=foo,boo,moo mache. Die 2te Variante ist sogar weniger Schreibarbeit. Das Ergebnis allerdings das Selbe.
Barf hat geschrieben:
Barf hat geschrieben:Der vorgeschlagene Syntaxänderung hat, durch Inkompatibilitäten, mehr Nachteile als Vorteile.
Kannst Du das genauer ausführen? Ich sehe da nämlich keine Inkompatibilitäten für mich als Nutzer.
Wirklich so schwierig? Bedarf für Neulernen sowie Änderung von vorhandene Skripte? Nicht zu vergessen: Die Autotools sind in tausende von Softwarepakete benutzt, Leute wissen wie --with-FOO und --enable-BAR funktionieren, dagegen nicht --with-feature.
Im Gegenteil. Sogar einfacher finde ich. Ich lösche einiges aus meinen customize Scripten und ändere 1x meinen configure Aufruf. Dann bekomme ich als Bonus noch ne schöne Ausgabe dach dem configure was denn nun genau im Image landen wird.

Aber ich sehe schon. Im Prinzip geht es Dir nur darum das es doch bitte auf die "alte" "--enable-foo" Art implementiert wird und nicht mit "--with-feature=foo,boo,moo". :wink:
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Barf hat geschrieben:Erstmals bin ich etwas verwirrt: Der Thread hat angefangen mit einer Option um standalone versionen von einige Tools auszuwählen (top, ps) (davon scheint nichts geworden zu sein),
Doch, das ist Bestandteil des Patches.
Barf hat geschrieben:ist danach eine allgemeine Umkrämplung der configure-Optionen geworden. Erstmals (falls ich mich richtig erinnere) genannt "Vorschlag für neuen Patch: --with-tools=...", danach "Vorschlag für neuen Patch: --with-standaloneversionjs=...", und schliesslich "Vorschlag für neuen Patch: --with-features".

Mit leserlige Threads verstehe ich etwas Anderes. :-?
Es ist nicht so, dass alle meine Ideen sofort CVS-reif sind. Manche stelle ich zur
Diskussion, wie in diesem Fall, und reagiere auf Rückmeldungen. Deshalb kann
es durchaus passieren, dass sich die Thematik ändert ;)
Barf hat geschrieben:Mein Verständniss (der vorgeschlagene Patch konnte ich nicht finden) ist dass es fast ausschliesslich um ein Syntaxänderung handelt:
Um der Optionitis Einhalt zu gebieten, ersetzt der Patch die Option
--enable-cdkVcInfo durch --with-features=cdkvcinfo
Der Patch ist noch nicht veröffentlicht, da der endgültige Funktionsumfang
bis jetzt noch nicht feststeht und ich noch Ideen sammle.
Ja, eine Änderung durch den Patch ist das Ersetzen von --enable-cdkVcInfo
durch --with-features=cdkvcinfo, der Patch kann aber noch mehr. Da es mir
um die Reduktion des customization-Skripts geht, stand ich vor der Wahl,
entweder Optionen a´la --enable-tuxcal --enable-dboxshot --enable-procps
usw. zu schaffen. Das ist imho sehr unübersichtlich, deshalb die Idee, dass
über --with-features=tuxcal,dboxshot,procps,cdkvcinfo im Stile von
--with-filesystems zu lösen und einige der alten --enable-*-Optionen darin
aufgehen zu lassen.
Barf hat geschrieben:"Optionitis" bekämpft man indem man existierende Optionen sorgfälligt für Redundanz, Überflüssigkeit, und ins besonderes Konsistenz in Syntax und Semantik der Benutzung überprüft. Nicht durch eine syntaktische Änderung.
Hast Du für diesen Patch einen konkreten Vorschlag?

Als Diskussiongrundlage werde ich jetzt meine Patchn schon einmal
veröffentlichen, obwohl er noch nicht fertig ist. Es fehlen noch:
- ipkg, sqlite, ... (erledigt)
- hddtemp, input, getrc (erledigt)
- configure summary
- flexmenu config in Abhängigkeit der aktivierten features

with-features.diff
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Barf »

Also, es handelt hier um zwei unterschiedliche Themen: standalone top/ps und procps, sowie --with-feature. Es wäre, IMHO, besser diese getrennt zu behandeln, sowohl in der Diskussion als auch beim Einchecken.

Mit dem ersten Teil habe ich keine Probleme. Das Zweite halte ich als überflüssig und nicht rückwärtskompatibel; die Gründe wurde in frühere Postings behandelt.

Dazu kommt, dass, am mindestens in der Implementierung im Patch, --with-feature=FOO funktionell --enable-FOO unterlegen ist: Falls eine eine Option per Default eingeschalten ist, muss der Benutzer der sie auschalten will, sich genau über den Zustand alle Andere Defaultwerte sich informieren; es gibt keine Möglichkeit zu sagen "FOO ausschalten, alle andere beibehalten".
rhabarber1848 hat geschrieben:Hast Du für diesen Patch einen konkreten Vorschlag?
Dein Patch bringt, IMHO, absolut nix gegen "Optionitis".
In einem anderen Thread habe ich Streichkandidaten genannt.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Barf hat geschrieben:Falls eine eine Option per Default eingeschalten ist, muss der Benutzer der sie auschalten will, sich genau über den Zustand alle Andere Defaultwerte sich informieren; es gibt keine Möglichkeit zu sagen "FOO ausschalten, alle andere beibehalten".
Das ist richtig und ist der Rückwärtskompatiblität geschuldet für den
Fall, dass --with-features gar nicht genutzt wird. Es wäre also zu
diskutieren, ob es sinnvoll ist, alle von --with-features erfassten
Funktionen standardmäßig auszuschalten und dem User die
jeweilige Aktivierung zu überantworten. Damit dürfte Deinem
berechtigten Einwand genüge getan sein, so meine Hoffnung ;)

http://www.tuxbox-cvs.sourceforge.net/f ... 45#p374045
rhabarber1848 hat geschrieben:
Striper hat geschrieben:Dann könnte man wirklich per Default erstmal alles aus dem Image lassen und nur das hinzufügen was mit "--with-features=" aktiviert wird.
Von solch tiefgreifenden Eingriffen scheue ich noch etwas zurück und
warte ab, wie die Diskussion dazu läuft.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Patch aktualisiert: with-features.diff
ipkg, sqlite, openvpn, esound und lirc werden ebenfalls berücksichtigt.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Striper »

So grade mal getestet. Erstmal meinen alten configure Aufruf genommen:

Code: Alles auswählen

sh configure --prefix=$HOME/MY_Image/dbox2 --with-cvsdir=$HOME/MY_Image/tuxbox_cvs --with-customizationsdir=$HOME/MY_Image/MY_CVS/imagefiles --with-archivedir=$HOME/MY_Image/Archive --with-checkImage=rename --with-updatehttpprefix=disable --with-rootpartitionsize=0x420000 --enable-maintainer-mode --enable-flashrules --enable-cdkVcInfo --enable-movieplayer2 --enable-ccache --disable-radiotext --disable-fx2plugins
Dann kommt logischerweise:

Code: Alles auswählen

configure: WARNING: unrecognized options: --enable-cdkVcInfo
Gut, customize Scripte geleert und nen neuen configure Aufruf gebastelt:

Code: Alles auswählen

sh configure --prefix=$HOME/MY_Image/dbox2 --with-cvsdir=$HOME/MY_Image/tuxbox_cvs --with-customizationsdir=$HOME/MY_Image/MY_CVS/imagefiles --with-archivedir=$HOME/MY_Image/Archive --with-checkImage=rename --with-updatehttpprefix=disable --with-rootpartitionsize=0x420000 --with-features=cdkvcinfo,dboxshot,dvbsnoop,dvbsub,fbshot,lcshot,procps,sysinfo,tuxtxt,tuxwetter --enable-maintainer-mode --enable-flashrules --enable-movieplayer2 --enable-ccache --disable-radiotext --disable-fx2plugins
Was mir jetzt schon mal ohne zu bauen aufgefallen ist: Wenn ich tuxtxt in der "--with-features=" Liste weg lasse wird es trotzdem in der configure Ausgabe angezeigt:

Code: Alles auswählen

Internal Tuxtxt support:        yes
Außerdem stört mich ein bisschen das man bisher keine Rückmeldung zu den aktivierten bzw. deaktivieren Features erhält.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Striper hat geschrieben:Außerdem stört mich ein bisschen, dass man bisher keine Rückmeldung zu den aktivierten bzw. deaktivieren Features erhält.
Der Patch ist ja auch noch nicht fertig ;)
Ich habe ihn vorzeitig veröffentlicht, damit die Diskussion hier
anhand von Code stattfinden kann.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Striper »

Kein Ding. Ich schreib hier nur was mir auffällt. Wenn das alles schon auf deiner ToDo Liste steht ist das umso besser. :D
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Striper hat geschrieben:Kein Ding.
Kein Problem, der Patch wird auch noch einige Tage hier liegen,
bis alles drin ist, was ich möchte. Parallel versuche ich Barf von
der Sinnhaftigkeit zu überzeugen bzw. seine Ideen mit einzubauen.

Wahrscheinlich wird die Erzeugung der flexmenu-config erst in
einem zweiten Schritt erfolgen, sonst wird das zu viel auf einmal.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Striper »

rhabarber1848 hat geschrieben:Wahrscheinlich wird die Erzeugung der flexmenu-config erst in
einem zweiten Schritt erfolgen, sonst wird das zu viel auf einmal.
Verstehe ich das richtig? Du willst, wenn "--with-features=shellexec" gesetzt ist auch gleich ne passende Config mitliefern? Ja is den heut scho Weihnachten? ^^
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Striper hat geschrieben:Du willst, wenn "--with-features=shellexec" gesetzt ist auch gleich ne passende Config mitliefern?
Ich denke, dass das möglich ist, warum also nicht? ;)
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Striper »

Code: Alles auswählen

sh configure --prefix=$HOME/MY_Image/dbox2 --with-cvsdir=$HOME/MY_Image/tuxbox_cvs --with-customizationsdir=$HOME/MY_Image/MY_CVS/imagefiles --with-archivedir=$HOME/MY_Image/Archive --with-checkImage=rename --with-updatehttpprefix=disable --with-rootpartitionsize=0x440000 --with-features=cdkvcinfo,dboxshot,dvbsnoop,dvbsub,fbshot,lcshot,procps,sysinfo,tuxtxt,tuxwetter --enable-maintainer-mode --enable-flashrules --enable-movieplayer2 --enable-ccache --disable-radiotext --disable-fx2plugins
Damit hats gebaut und das Image läuft. Es ist alles drin was drin sein soll und alles draussen was ich nicht haben wollte. Grundlegend funktioniert der Patch also schon mal.
Dank Dir!
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Barf »

Das grundlegende Problem ist wohl dass ein Kommandozeilenprogramm wie configure nicht besonderes elegant mit einem Auswahl von einer große Menge Optionen umgeht. Man könnte sich denken, wie es aussehen wurde, falls busybox ausschliesslich mit der configure-Kommandozeile konfiguriert wurde :wink:. Es wäre möglicherweise angebracht, z.B. über ein Konfigurationsdatei nachzudenken.

Unabhängig davon bietet configure schon eine Möglichkeit Optionen zu einer Datei zu verschieben, siehe die Datei cdk/INSTALL oder (ausführlicher) hier. Man setzt (z.B.) die Umgebungsvariabel CONFIG_SITE zu ein Shellscript, wo entsprechende Variabeln gesetzt wird, z.B.

Code: Alles auswählen

#!/bin/sh

enable_lirc=yes
enable_cdkVcInfo=no
logosdir=${HOME}/dbox/logos
Zugegeben, es is vom Dokumentation klar, dass dieser Gebrauch nicht in Sinn des Erfinders ist, nicht desto weniger funktioniert es (habe probiert!).

Die Änderung von enable-* nach with-feature löst das eigentliche Problem überhaubt nicht, sie ändert nur den Syntax. Ausserdem ist --with-feature wegen die fehlende Möglichkeit eine Wert zu ändern, und die Andere bei Default zu behalten, eine technisch schlechtere Lösung als --enable-*. (Ich halte dies als KO-Kriterium.)

Lass uns nicht Rückwärtskompatibilität aus solche Grunden wegwerfen!

Sicherlich wäre Striper mit einem --enable-basierte Lösung genau so zufrieden.
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von prodigy7 »

Barf hat geschrieben:Das grundlegende Problem ist wohl dass ein Kommandozeilenprogramm wie configure nicht besonderes elegant mit einem Auswahl von einer große Menge Optionen umgeht. Man könnte sich denken, wie es aussehen wurde, falls busybox ausschliesslich mit der configure-Kommandozeile konfiguriert wurde :wink:. Es wäre möglicherweise angebracht, z.B. über ein Konfigurationsdatei nachzudenken.
Wie wäre es mit dem was ich hier vorgeschlagen habe: http://www.tuxbox-cvs.sourceforge.net/f ... 23#p374023
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von dietmarw »

prinzipiell scheint ja einigkeit darüber zu bestehen, das neutrino im default mit "sehr wenigen/keinen" optionalen komponenten gebaut werden sollte.
(egal ob tools, games, languages)

ob das nun mit
1) --with-feature=bla,blub,blaf
oder mit
2) --enable-bla --enable-blub --enable-blaf
gemacht wird ist für das ergebnis eigentlich eher nebensächlich.
(wobei ich persönlich 1 für übersichtlicher halte, aber wenn es da gewisse quasi standards gibt ist mir 2 auch recht)

wichtiger wäre in meinen augen erstmal das generelle umstellen auf "minimales system build"
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

with-features.diff

Support für getrc, input und hddtemp hinzugefügt.
cs4711
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Mittwoch 16. Dezember 2009, 00:35

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von cs4711 »

Ich sehe eher ein Problem in der Dokumentation. Wer bisher z.b. immer mit --enable-xxx gebaut hat (wird erstmal
lange in seiner config suchen bis in einem Thread hier alle with-feature=x,x,x Komponenten findet.
Wenn es denn eine Doku wie zum IDE Menü im Wiki gibt (Lob an den Schreiber) gibt es ein :dafuer: von mir.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

cs4711 hat geschrieben:Wer bisher z.b. immer mit --enable-xxx gebaut hat
Ich plane, die bisherigen --enable-*-Optionen für einige Monate in cdk/configure.ac
zu belassen, die Benutzung wird allerdings zu einer Fehlermeldung mit Verweis
auf --enable-features und dem Abbruch von configure führen.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

@Barf: Sehe ich das richtig, dass Du statt
--with-features=LIST
comma seperated list of tools, plugins and additional features,
allowed values: cdkvcinfo, dboxshot, dropbear, dvbsnoop(*), dvbsub, esound, fbshot, getrc,
hddtemp (needs IDE), input, ipkg, lcshot or lirc (both dbox2-only), msgbox, openvpn, procps,
satfind, shellexec, sqlite, sysinfo, tuxcal, tuxcom(*), tuxmail(*), tuxtxt(*), tuxwetter
(*) -> enabled by default
lieber folgendes sehen würdest:
--enable-cdkvcinfo (unverändert)
--enable-dboxshot
--enable-dropbear
--enable-dvbsnoop
--disable-dvbsub
--enable-esound (oder unverändert --enable-esd)
--enable-fbshot
--enable-getrc
--enable-hddtemp
--enable-input
--enable-ipkg
--enable-lcshot
--enable-lirc (unverändert)
--enable-msgbox
--enable-openvpn (unverändert)
--enable-procps
--enable-satfind
--enable-shellexec
--enable-sqlite (unverändert)
--disable-sysinfo
--enable-tuxcal
--disable-tuxcom
--disable-tuxmail
--disable-tuxtxt
--disable-tuxwetter
um den Patch autoconf-konform und rückwärtskompatibel zu halten?

Ich möchte halt gerne den Umfang der customisation-Skripts reduzieren,
ohne mit anderen Dateien wie $CONFIG_SITE anzufangen.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von dietmarw »

...
--disable-dvbsub
--disable-sysinfo
--disable-tuxcom
--disable-tuxmail
--disable-tuxtxt
--disable-tuxwetter
dann aber bitte wirklich alle im default auf aus, also auch
...
--enable-dvbsub
--enable-sysinfo
--enable-tuxcom
--enable-tuxmail
--enable-tuxtxt
--enable-tuxwetter

--enable-clock
--enable-ssaver
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

dietmarw hat geschrieben:
...
--disable-dvbsub
--disable-sysinfo
--disable-tuxcom
--disable-tuxmail
--disable-tuxtxt
--disable-tuxwetter
dann aber bitte wirklich alle im default auf aus, also auch
Die o.g. Plugins sind im default eingeschaltet, der configure-Text weist
deshalb nur auf das Deaktivieren hin. Für Barf ist es wichtig, dass sich
an der Liste der aktivierten Plugins nichts ändert. Deshalb habe ich
bei den aktiven Plugins --disable-* geschrieben und bei den deaktivierten
Plugins --enable-*.

Du kannst bei configure für eine bereits intern aktive Option, wie z.B. tuxtxt,
auch --enable-tuxtxt schreiben, es ändert zwar nichts, ist aber zukunftsicherer,
da Du nicht von den defaults in cdk/configure abhängig bist. Nur macht es keinen
Sinn, --enable-tuxtxt als configure-Helptext zu schreiben, besser ist es, auf
die --disable-Option hinzuweisen um nach außen hin bereits hier zeigen zu können,
dass Tuxtxt im Standardimage immer dabei ist.

Die von mir oben gepostete --enable/disable-Liste führt zu keinerlei Änderungen
der aktuellen CVS-Standardwerte und ermöglicht die De-/Aktivierung einzelner
Plugins ohne Auswirkungen auf andere Plugins. Das wurde von Barf so gewünscht.

Leider wird die Parameter-Liste von cdk/configure nicht kürzer.

Ich stelle deshalb beide Ideen hier zur Diskussion. Ich kann Barfs Argumentation
nachvollziehen, obwohl ich das Resultat nicht sehr schön finde. Technisch hat
es allerdings was für sich und ist problemlos realisierbar.

Wie hättet ihr es denn gerne?
FlatTV
Einsteiger
Einsteiger
Beiträge: 110
Registriert: Freitag 9. Januar 2009, 18:22

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von FlatTV »

rhabarber1848 hat geschrieben:
--enable-cdkvcinfo (unverändert)
--enable-dboxshot
--enable-dropbear
--enable-dvbsnoop
--disable-dvbsub
--enable-esound (oder unverändert --enable-esd)
--enable-fbshot
--enable-getrc
--enable-hddtemp
--enable-input
--enable-ipkg
--enable-lcshot
--enable-lirc (unverändert)
--enable-msgbox
--enable-openvpn (unverändert)
--enable-procps
--enable-satfind
--enable-shellexec
--enable-sqlite (unverändert)
--disable-sysinfo
--enable-tuxcal
--disable-tuxcom
--disable-tuxmail
--disable-tuxtxt
--disable-tuxwetter
um den Patch autoconf-konform und rückwärtskompatibel zu halten?
rückwärtskompatibel - gefällt mir besser

cu FlatTV
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von dbt »

Dran denken, wenn man alles rückwärtskompatibel haben will, wird es unter Umständen immer schlechter mit der Wartung. Das sollte man nicht unterschätzen. Man stelle sich mal vor, wenn man Newmake mit Oldmake rückwärtskompatible gemacht hätte. Aua, Aua
Barf
Developer
Beiträge: 1475
Registriert: Dienstag 4. Februar 2003, 22:02

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von Barf »

rhabarber1848 hat geschrieben:@Barf: Sehe ich das richtig, dass Du statt
--with-features=LIST
comma seperated list of tools, plugins and additional features,
allowed values: cdkvcinfo, dboxshot, dropbear, dvbsnoop(*), dvbsub, esound, fbshot, getrc,
hddtemp (needs IDE), input, ipkg, lcshot or lirc (both dbox2-only), msgbox, openvpn, procps,
satfind, shellexec, sqlite, sysinfo, tuxcal, tuxcom(*), tuxmail(*), tuxtxt(*), tuxwetter
(*) -> enabled by default
lieber folgendes sehen würdest:
--enable-cdkvcinfo (unverändert)
--enable-dboxshot
--enable-dropbear
...
um den Patch autoconf-konform und rückwärtskompatibel zu halten?
Ja. Aber "autoconf-konform und rückwärtskompatibel" ist kein heiliges Graal für mich: ich bin gegen --with-feature weil es eine Verschlechterung darstellt. --with-feature ist fast nur eine syntaktische Modifikation. "fast" bedeutet, dass --with-feature weniger Möglichkeite bietet als das, was es ersetzen soll: Die Möglichkeit, ein Feature ABzuwählen fehlt, deswegen(?) der Bedarf/Wünsch alle Defaults auf "aus" zu setzen.

Ich möchte halt gerne den Umfang der customisation-Skripts reduzieren,
ohne mit anderen Dateien wie $CONFIG_SITE anzufangen.
Jetzt vermischst du neue nützlige Optionen/Features mit --enable-* nach --with-feature Migration. Das Erste bin ich definitiv nicht dagegen, das Zweite schon. Ehrlich gesagt, falls damit die Kommandozeile von, sagen wir 400 Zeichen zu 350 schrümpft, behauptest du, dass du damit ein Problem löst?
rhabarber1848 hat geschrieben:Für Barf ist es wichtig, dass sich
an der Liste der aktivierten Plugins nichts ändert.
Nö, dass habe ich nicht gesagt, und ich bin auch nicht der Meinung. Erstmals finde ich die Diskussion über welche Optionen Default sein soll und welche nicht eine anderes Thema, das irgendwo anderes diskutiert werden soll. Für mich ist es wichtig, dass die Wahl der Defaults flexibel und pragmatisch ist, bei Bedarf angepasst werde kann, und dass die Tools dies auch unterstützt (-> K.O.-Kriterium für --with-feature, am mindestens die aktuelle Implementierung). Also bin ich gegen alle Default off, (möglicherweise) theoretisch elegant, aber gar nicht praktisch. Lass mich in einem (IMHO realistisches) Beispiel erläutern:

Nehmen wir an, Jemanden implementiert eine Möglichkeit den http-Server in Neutrino abzuwählen. Klar soll das Default Inklusion des http-Servers sein, sonst wurde eine Menge Leute sich ärgern, und fragen was los ist. Also ist hier "an" die vernünftige Defaultwahl, in Wiederspruch zu "alles aus". Dann sagt vielleicht Jemanden: "Dann soll die Option negativ sein, also z.B. 'disable-neutrino-http-server'". Wieder schlecht: Negative Optionen/Variabeln sind problematisch, am mindesten wenn sie negiert wird. Nicht nur sieht

Code: Alles auswählen

#ifdef !disable_httpserver
(code für den http-server)
#endif
häßlich aus, es ist auch deutlich mehr fehlerträchtig, ins besonderes falls && und || in der Spiel kommt (de Morgan beachten!). Noch schlimmer (oben habe ich Defaults als veränderbar gefordert): Sollte man in den Quellen vielleicht umfassende Änderungen durchführen, nur weil ein Default sich geändert hat?
dbt hat geschrieben:Dran denken, wenn man alles rückwärtskompatibel haben will, wird es unter Umständen immer schlechter mit der Wartung
Wartung wird schwierig, sobald Information nichtlokal ist (z.B. wo defaultwerte, Kode zu setzen, Dokumentation verteilt ist), und das System viel Redundanz enthält. Ich habe in der Tat den Patch studiert, und schätze ihn als diesbezüglich schlechter als der originale Kode ein.
Man stelle sich mal vor, wenn man Newmake mit Oldmake rückwärtskompatible gemacht hätte. Aua, Aua
Newmake war eine umfassende Umarbeitung des Buildsystem, mit mit erhebliche funktionelle Erweiterungen. --with-feature eine syntaktische Umarbeitung, mit funktionelle Einschränkungen.

Viele Probleme mit "oldmake" war in Kern, dass die Authoren das Gnu Buildsystem (automake/autoconf/libtool) nicht verstanden haben, und anstatt diverse ad-hoc-Lösungen von schlechten Qualität gebastelt haben. newmake hat anstatt versucht, diese heimgestrichte Lösungen zu verwerfen, und das Gnu Makesystem systematisch einzusetzen.
rhabarber1848 hat geschrieben:Du kannst bei configure für eine bereits intern aktive Option, wie z.B. tuxtxt,
auch --enable-tuxtxt schreiben, es ändert zwar nichts, ist aber zukunftsicherer,
da Du nicht von den defaults in cdk/configure abhängig bist. Nur macht es keinen
Sinn, --enable-tuxtxt als configure-Helptext zu schreiben, besser ist es, auf
die --disable-Option hinzuweisen um nach außen hin bereits hier zeigen zu können,
dass Tuxtxt im Standardimage immer dabei ist.
Nicht zu vergessen: --disable-foo ist nicht anderes als ein Synonym für --enable-foo=no.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Vorschlag für neuen Patch: --with-features=...

Beitrag von rhabarber1848 »

Wie gefällt Euch das? with-features2.diff

Code: Alles auswählen

  --enable-cdkvcinfo      include cdkvcinfo in yadds and images               
  --enable-dboxshot       enable dboxshot                                     
  --enable-dropbear       enable dropbear                                     
  --enable-dvbsnoop       enable dvbsnoop                                     
  --disable-dvbsub        disable dvbsub                                      
  --enable-esd            enable esound                                       
  --enable-fbshot         enable fbshot                                       
  --enable-getrc          enable getrc                                        
  --enable-hddtemp        include hddtemp in yadds and images - depends on IDE
                          support                                             
  --enable-input          enable input                                        
  --enable-ipkg           include ipkg in yadds and images                    
  --enable-lcshot         enable lcshot - dbox2-only                          
  --enable-lirc           include lirc in yadds and images - dbox2-only       
  --enable-msgbox         enable msgbox                                       
  --enable-openvpn        include OpenVPN in yadds and images and build tun   
                          kernel module                                       
  --enable-procps         replace Busybox applets ps and top with procps      
                          versions                                            
  --disable-rtc           enable rtc hardware support - dbox2-only            
  --enable-satfind        enable satfind                                      
  --enable-shellexec      enable shellexec                                    
  --enable-sqlite         enable sqlite                                       
  --enable-sysinfo        enable sysinfo                                      
  --enable-tuxcal         enable tuxcal                                       
  --disable-tuxcom        disable tuxcom                                      
  --disable-tuxmail       disable tuxmail                                     
  --disable-tuxtxt        disable tuxtxt                                      
  --enable-tuxwetter      enable tuxwetter
Ich habe --disable-rtc hinzugefügt, um /bin/hwrtc und das Kernelmodul optional zu machen.