bis auf die Passage
Code:
+ EXTERNAL_FILES="$EXTERNAL_OWN_FILES"
+ [ "$EXTERNAL_FREETZ_PACKAGE_LTRACE" == "y" ] && EXTERNAL_FILES+=" /usr/sbin/ltrace"
+ [ "$EXTERNAL_FREETZ_LIB_libart_lgpl_2" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libart_lgpl_2.so.2.3.19"
+ [ "$EXTERNAL_FREETZ_LIB_libdevmapper" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libdevmapper.so.1.02"
+ [ "$EXTERNAL_FREETZ_LIB_libelf" == "y" ] && EXTERNAL_FILES+=" /usr/lib/libelf.so.0.8.10"
....
finde ich deine Idee mit external.in-Dateien gut. Wie gesagt, wenn du schon die "external.in"-Dateien verwendest, muss man von dort die Konfiguration auslesen. Es ist schlecht in der Zentralen Config.in z.B. die absoluten Namen der Bibliotheken stehen zu haben.
Mit Zielverzeichnissen muss man sehen. Eigentlich kann man es automatisieren: Aus dem Hauptpfad die Pfadangaben auslesen (z.B. "usr/lib" oder "usr/bin") und dann dem Hauptpfad dazuaddieren. Im Falle des RAMs würde der Hauptpfad "/mod" heißen, im Falle des USB-Sticks dann in etwa "/media/uStor01/external". Nach der Zusammensetzung hießen dann die Pfade (als Beispiel):
Code:
/mod/usr/bin/mc.bin
/media/uStor01/external/usr/bin/mc.bin
worauf man dann die symbolischen Links erstellt.
Ich wäre an meiner Seite mit Outsourcer und Downloader damit einverstanden und du hättest auch auf dem USB-Stick einen LINUX-conformen Verzeichnisbaum, was bei mehreren Dateien nur von Vorteil wäre.
Es wäre besser, wenn du "external" nach Tools schaffst, damit die eigentliche Routinenarbeit von dem Script gemacht wird. Dann muss man nicht immer in "Config.in" rumfummeln, wenn man etwas anpassen will. Mir würde dies die Arbeit deutlich erleichtern, um dein "external" auf die Funktionen des "Outsourcers" zu erweitern, damit wir die beiden endlich zusammenführen können.
Welche Variablen fehlen dir denn? Sind sie nicht sowieso alle in ".config" oder wo anders gespeichert? Sonst würde ich entweder eine temp-datei dafür spendieren, oder gar eine (oder mehrere) config-Datei(en) unter tools/external generieren, die external-Script beim durchlaufen ausliest.
MfG
EDIT:
Code:
+ -------------------------- WARNING ----------------------------------
+ Move all the files from build/modified/external to your choosen
+ directory on the box BEFORE you flash the reduced image!
Wäre es nicht sinvoller, die Dateien irgendwo anders abzuspeichern als unter "build/modified/"? Wenn du external unter tools legst, würde ich dort oder gar im mod-Hauptverzeichnis ein Verzeichnis für ausgelagerte Dateien anlegen. Unter "modified" liegt das root-system welches ins flash gehört. Verzeichnis "external" unter "modified" verwirrt nur.