Erstellt vor 5 Jahren

Zuletzt geändert vor 5 Jahren

#2145 new enhancement

external: dynamic packages

Erstellt von: cuma Verantwortlicher:
Priorität: normal Meilenstein: freetz-future
Komponente: tools Version: devel
Stichworte: Beobachter:
Product Id: Firmware Version:

Beschreibung


Anhänge (2)

Xroot.patch (5.1 KB) - hinzugefügt von cuma vor 5 Jahren.
external-errors-20130724-004336.log (59.3 KB) - hinzugefügt von er13 vor 5 Jahren.

Alle Anhänge herunterladen als: .zip

Änderungshistorie (92)

comment:1 Geändert vor 5 Jahren durch cuma

In 10830:

move (static|external).pkg to /mod/ (refs #2145)

comment:2 Geändert vor 5 Jahren durch cuma

In 10834:

crond & onlinechanged: usw /mod too (refs #2145)

comment:3 Geändert vor 5 Jahren durch cuma

In 10837:

read external.pkg from usb (refs #2145)

comment:4 Geändert vor 5 Jahren durch cuma

In 10838:

external: support for scripts

DO NOT USE

(refs #2145)

comment:5 Geändert vor 5 Jahren durch cuma

In 10839:

use /mod/etc/init.d #1 (refs #2145)

comment:6 Geändert vor 5 Jahren durch cuma

In 10840:

use /mod/etc/init.d #2 (refs #2145)

comment:7 Geändert vor 5 Jahren durch cuma

In 10841:

use /mod/etc/init.d #3 (refs #2145)

comment:8 Geändert vor 5 Jahren durch cuma

In 10842:

use /mod/etc/default.* #1 (refs #2145)

comment:9 Geändert vor 5 Jahren durch cuma

In 10843:

use /mod/etc/default.* #2 (refs #2145)

comment:10 Geändert vor 5 Jahren durch cuma

In 10845:

no /mod/ for avm wrapper (refs #2145)

comment:11 Geändert vor 5 Jahren durch cuma

In 10846:

hack for samba rc-files (refs #2145)

Geändert vor 5 Jahren durch cuma

comment:12 Geändert vor 5 Jahren durch cuma

Müsste soweit funktionieren.
Mit minifo, usbroot und nfsroot bin ich mir nicht sicher, da ich es nicht nutzte. Ist "Xroot.patch​" so okay?

comment:13 Geändert vor 5 Jahren durch cuma

In 10847:

external: move link/copy option to webif (refs #2145)

comment:14 Geändert vor 5 Jahren durch cuma

In 10848:

use /mod/etc/init.d #4 (refs #2145)

comment:15 Geändert vor 5 Jahren durch Whoopie

Um was geht es hier?

comment:16 Geändert vor 5 Jahren durch cuma

Das Ticket ist zum sammeln von Changesets (und und falls es soweit kommen sollte Rückmeldungen) für eine Erweiterung von external, evtl bis hin zu dynamischen Paketen.
In erster Linie geht es darum nichts bestehendes kaputt zu machen
Der Rest wird sich zeigen ;-)

comment:17 Geändert vor 5 Jahren durch cuma

In 10852:

external: fix expansion (refs #2145)

comment:18 Antwort: Geändert vor 5 Jahren durch cuma

Weiss jemand ob die verschiedenen und in der Reihenfolge unterschiedlichen PATH einen tiefer Grund haben?

Index: make/mod/files/root/etc/init.d/modlibrc
===================================================================
export PATH=/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
export LD_LIBRARY_PATH=/mod/lib:/mod/usr/lib


Index: make/mod/files/root/etc/profile
===================================================================
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/etc/init.d:/mod/sbin:/mod/bin:/mod/usr/sbin:/mod/usr/bin:/mod/etc/init.d
export LD_LIBRARY_PATH=/mod/lib

comment:19 Geändert vor 5 Jahren durch make

external funktioniert im Moment überhaupt nicht mehr. r10837 lief bei mir noch ganz normal. Soweit ich das auf die Schnelle erkennen kann, hängt das damit zusammen, dass die Links auf das external-Verzeichnis (in meinem Fall) nicht mehr richtig gesetzt werden. Die External-Konfiguration habe ich nicht angefasst, das Problem wird also wohl von den Änderungen aus diesem Ticket ausgelöst. (Bei mir: Do not ignore symlinks: an + Keep subdirectories: aus)

So sieht es mit der aktuellen revision aus:

root@fb:~# ls -la /usr/bin | grep /mod/external
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 curl -> /mod/external/curl
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 htop -> /mod/external/htop
lrwxrwxrwx    1 root     root            20 Jul 20 16:46 httpry -> /mod/external/httpry
lrwxrwxrwx    1 root     root            19 Jul 20 16:46 iftop -> /mod/external/iftop
lrwxrwxrwx    1 root     root            20 Jul 20 16:46 iptraf -> /mod/external/iptraf
lrwxrwxrwx    1 root     root            17 Jul 20 16:46 ldd -> /mod/external/ldd
lrwxrwxrwx    1 root     root            22 Jul 20 16:46 lighttpd -> /mod/external/lighttpd
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 lsof -> /mod/external/lsof
lrwxrwxrwx    1 root     root            17 Jul 20 16:46 lua -> /mod/external/lua
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 nano -> /mod/external/nano
lrwxrwxrwx    1 root     root            17 Jul 20 16:46 nc6 -> /mod/external/nc6
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 nmap -> /mod/external/nmap
lrwxrwxrwx    1 root     root            21 Jul 20 16:46 rrdtool -> /mod/external/rrdtool
lrwxrwxrwx    1 root     root            22 Jul 20 16:46 rtmpdump -> /mod/external/rtmpdump
lrwxrwxrwx    1 root     root            21 Jul 20 16:46 rvnamed -> /mod/external/rvnamed
lrwxrwxrwx    1 root     root            17 Jul 20 16:46 scp -> /mod/external/scp
lrwxrwxrwx    1 root     root            18 Jul 20 16:46 sftp -> /mod/external/sftp
lrwxrwxrwx    1 root     root            21 Jul 20 16:46 sqlite3 -> /mod/external/sqlite3
lrwxrwxrwx    1 root     root            17 Jul 20 16:46 ssh -> /mod/external/ssh
lrwxrwxrwx    1 root     root            21 Jul 20 16:46 ssh-add -> /mod/external/ssh-add
lrwxrwxrwx    1 root     root            23 Jul 20 16:46 ssh-agent -> /mod/external/ssh-agent
lrwxrwxrwx    1 root     root            24 Jul 20 16:46 ssh-keygen -> /mod/external/ssh-keygen
lrwxrwxrwx    1 root     root            25 Jul 20 16:46 ssh-keyscan -> /mod/external/ssh-keyscan
lrwxrwxrwx    1 root     root            25 Jul 20 16:46 ssh-keysign -> /mod/external/ssh-keysign
lrwxrwxrwx    1 root     root            22 Jul 20 16:46 wget-gnu -> /mod/external/wget-gnu
root@fb:~# ls -la /mod
lrwxrwxrwx    1 root     root             7 Jul 20 16:46 /mod -> var/mod
root@fb:~# ls -la /mod/external
ls: /mod/external: No such file or directory
root@fb:~# ls -la /var/mod/
bin/  etc/  home/ lib/  pkg/  root/ sbin/ usr/  var/  

Wäre schön, wenn das in absehbarer Zeit wieder funktionieren würde…

Zuletzt geändert vor 5 Jahren von make (vorher) (Diff)

comment:20 Antwort: Geändert vor 5 Jahren durch cuma

Es gibt so viele schöne Dinge :)
Mit "Keep subdirectories: aus" sollte sich nichts verändert haben…

comment:21 Geändert vor 5 Jahren durch cuma

In 10857:

external: remove leftover, empty directories (refs #2145)

comment:22 als Antwort auf: ↑ 20 Geändert vor 5 Jahren durch make

Replying to cuma:

Es gibt so viele schöne Dinge :)
Mit "Keep subdirectories: aus" sollte sich nichts verändert haben…

Nun, sollte triffft es genau, denn leider habe ich die oben beschriebenen Effekte. Die links in /usr/bin zeigen nicht auf die durchaus vorhandenen Dateien auf dem Stick, mit dem Ergebnis, das die gelisteten kommandos nicht funktionieren. Vielleicht könntest du freundlicherweise nochmal schauen, an welcher stelle theorie und praxis auseinanderlaufen?

comment:23 Geändert vor 5 Jahren durch cuma

In 10859:

external:

  • fix "without subdirectories"
  • webif: hide option if not enabled

(refs #2145)

comment:24 Geändert vor 5 Jahren durch cuma

Den Link /mod/external gab es bei mir, die Links in /mod/etc/init.d usw waren aber falsch

comment:25 Geändert vor 5 Jahren durch make

Tut leider immer noch nicht. Der Link /mod/external fehlt bei mir immer noch, deswegen werden die ganzen binaries nicht gefunden.

Brauchst du irgendwelche zusätzlichen Infos?

Zuletzt geändert vor 5 Jahren von make (vorher) (Diff)

comment:26 als Antwort auf: ↑ 18 Geändert vor 5 Jahren durch hermann

Replying to cuma:

Weiss jemand ob die verschiedenen und in der Reihenfolge unterschiedlichen PATH einen tiefer Grund haben?

Hallo cuma,

ich hatte mir die gleiche Frage vor langer Zeit auch gestellt. Die richtig gewünschte Reihenfolge wäre natürlich die, aus modlibrc. Allerdings existiert modlibrc noch nicht so lange, die Zusatzeinträge aus der anderen Datei stammen noch aus danisahne-Zeiten.
Ferner ist die Reihenfolge aus modlibrc nur den Dateien aus FREETZ bekannt, denn AVMs werden die Datei nicht aufrufen. Die andere Datei dagegen schon. Daher wird es dort nur "angehängt".
Weiterer Verdacht meinerseits wäre noch, dass es eine Auswirkung auf doppelte Libs haben könnte, die bei FREETZ und AVM unterschiedlich belegt sind. Wobei die Geschichte sollte eigentlich anderswo geregelt sein.

comment:27 Geändert vor 5 Jahren durch cuma

@make: Komisch, der Link sollte in rc.external Zeile 92 angelegt werden. Die Ausgabe von "rc.external start" oder gar "sh -x /etc/init.d/rc.external start" könnte weiterhelfen
@hermann: Hey du lubst ja auch noch ;-) Meinst du man soll die PATH angleichen und dann mal abwarten?

comment:28 Geändert vor 5 Jahren durch hermann

Ja, ja, ich lebe noch. Aber bin eher passiv hier. Wollte gerade mal meine Boxen auf eine aktuellere Trunk-Version upgraden und sehe hier diesen Geschrei um external. Nee, dann warte ich lieber ab, bis es sich stabilisiert ;-)
Welche von beiden Dateien willst du denn anpassen, cuma? Sag bloß /etc/profile. Ich finde es für etwas gefährlich, man kann es dennoch probieren. Einerseits hatte sich danisahne dabei damals was gedacht. Andererseits, ergibt es für mich relativ wenig Sinn in der Reihenfolge. Und wer nicht riskiert…
Also, du kannst versuchen es anzupassen, das Geschreie wird es dann aber garantiert lauter sein, wenn danach irgendwas nicht geht.

comment:29 Geändert vor 5 Jahren durch cuma

Ist momentan etwas experimentell, vor r10838 ists ungefährlich :9


Ob es eine gute Idee ist im PATH /mod/external/(usr/)(s)bin und /mod/external/lib aufzunehmen? Dann bräuchte man gar keine Links mehr. Könnte bei externel via nfs oder davfs2 aber sehr langsam werden.

modlibrc gibts schon lange, da tauchte auch schon "/mod/usr/lib" drin auf: r1252

Zuletzt geändert vor 5 Jahren von cuma (vorher) (Diff)

comment:30 Geändert vor 5 Jahren durch cuma

In 10860:

external: "without subdirectories"

  • don't run cron/onlinechanged twice

(refs #2145)

comment:31 Geändert vor 5 Jahren durch cuma

In 10861:

use same PATH in profile & modlibrc (refs #2145)

comment:32 Geändert vor 5 Jahren durch cuma

In 10862:

external: fix typo in last commit (refs #2145)

comment:33 Antwort: Geändert vor 5 Jahren durch cuma

@make: Funktioniert es jetzt?

comment:34 als Antwort auf: ↑ 33 Geändert vor 5 Jahren durch make

Replying to cuma:

@make: Funktioniert es jetzt?

Bedauerlicherweise nicht, keine Änderung. /mod/external fehlt immer noch.

comment:35 Geändert vor 5 Jahren durch oliver

Ich störe mich immer noch an dem /etc/init.d im Pfad. Aber Argumente, die dagegen sprechen das mit in den Pfad aufzunehmen habe ich keine. Jemand anderes vielleicht?

Grundsätzlich ist die Idee mit den "dynamischen" Paketen natürlich ein Schritt in die richtige Richtung. Danke cuma für deinen Einsatz!

comment:36 Geändert vor 5 Jahren durch cuma

In 10864:

PATH: all Freetz rc-scripts in /etc/init.d have a link in /mod/etc/init.d (refs #2145)

comment:37 Antwort: Geändert vor 5 Jahren durch cuma

/mod/etc/init.d evtl optional? Mal schauen ob /mod/external/bin auch noch in den PATH soll
@make: comment:27

comment:38 Geändert vor 5 Jahren durch cuma

In 10869:

external: better loops & dont load packages twice (refs #2145)

comment:39 Geändert vor 5 Jahren durch cuma

In 10871:

external: add option everything/only scripts (refs #2145)

comment:40 als Antwort auf: ↑ 37 Geändert vor 5 Jahren durch make

@make: comment:27

Oh Mist, das hab ich völig übersehen. Ich bin seit gestern zurück auf einen funktionierenden Stand und knapp mit Zeit. Vor Freitag wird das vmtl nichts. Sorry.

comment:41 Geändert vor 5 Jahren durch cuma

In 10874:

external: allow removing of a single package (refs #2145)

comment:42 Geändert vor 5 Jahren durch cuma

In 10879:

external: allow to pack each package into a seperate file (refs #2145)

comment:43 Geändert vor 5 Jahren durch cuma

In 10882:

external:

  • use .external as flag-file
  • remove "only scripts"
  • add "no scripts"

(refs #2145)

comment:44 Antwort: Geändert vor 5 Jahren durch cuma

In 10885:

external: move samba hack to package (refs #2145)

comment:45 Geändert vor 5 Jahren durch CarstenSchuette

Um das Ticket hier nicht zu sprengen: Iich habe in #2149 das Problem beschrieben, dass beim Starten der Box die external-Dienste nicht gestartet werden. Manuell über die Console geht das aber. Aktuelle Revision r10885 im Einsatz. Im Ticket #2149 stehen auch die diversen Ausgaben des Logs und der Befehle.

Geändert vor 5 Jahren durch er13

comment:46 Geändert vor 5 Jahren durch er13

Fehler oben mit folgender .config

EXTERNAL_ENABLED=y
EXTERNAL_SUBDIRS=y
# EXTERNAL_LINKS is not set
EXTERNAL_DYNAMIC=y
EXTERNAL_DYNAMIC_NOSCRIPTS=y
EXTERNAL_CREATEPAK=y
# EXTERNAL_CREATEPAK_DYNAMIC is not set

comment:47 Antwort: Geändert vor 5 Jahren durch cuma

@CarstenSchuette: Wird dein Stick überhaupt gemountet? Was steht in der mod_mount.log
@er13: Das Problem ist die Zeile
pkg_version="$(grep "^${pkg}-" $PACKAGES_LIST_FILE)"
dort gibt es

transmission-2.81
transmission-cgi-0.0.4

Ich hatte schonmal danach gesucht, aber die Stelle nicht gefunden.
Könntest du zu den packages/target-*/.PKG-x.yz Dateien je noch eine packages/target-*/.PKG anlegen in der die aktuell gebaute Version steht, also "PKG-x.yz" oder nur "x.yz"?

comment:48 Geändert vor 5 Jahren durch er13

Der Fehler passiert auch mit asterisk, also wird neben der von Dir vermuteten pkg_version...-Zeile bestimmt noch was anderes nicht korrekt sein. Außerdem finde ich diese Ausgaben komisch:

/.language ... not found & linked.
/.sizeinfo.MD5_0b3d0b82042275aeed90b7c791812bf2.BS_64 ... not found & linked.
/.sizeinfo.MD5_9552035dda97d198d479cca257afc20e.BS_64 ... not found & linked.
/.sizeinfo.MD5_cb1d7abae2e0f79bba63de1b9a38a562.BS_64 ... not found & linked.

Wieso werden diese überhaupt mit berücksichtigt, sie sollen weder ins Image kopiert noch verlinkt werden.

comment:49 Geändert vor 5 Jahren durch cuma

Ich denke das ist bei Asterist auch so. Die Dateien sind nicht im Image → "not found"

comment:50 Geändert vor 5 Jahren durch cuma

In 10893:

external:

  • fix problem reported by er13
  • inverse NOSCRIPT logic

(refs #2145)

comment:51 als Antwort auf: ↑ 47 Geändert vor 5 Jahren durch CarstenSchuette

Replying to cuma:

@CarstenSchuette: Wird dein Stick überhaupt gemountet? Was steht in der mod_mount.log

Wenn der nicht gemounted wäre, dann könnte ich die External-Dienste ja nicht manuell über die SSH-Console starten. Ausgabe siehe unten. Ich bin ja auch nicht der einzige, der das Problem hat (siehe #2145), und bevor vor 5 Tagen die Arbeiten an diesem Ticket begonnen haben, hat es ja auch noch einwandfrei funktioniert.

[INFO] Partition uStor01 (/dev/sda1) was mounted successfully (ext3)
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                11200     11200         0 100% /
tmpfs                    53852      1836     52016   3% /var
dev                      53852        28     53824   0% /dev
/var/dev/nand           524288      2372    521916   0% /var/media/ftp
/dev/sda1              3669688    195012   3291192   6% /var/media/ftp/uStor01
Zuletzt geändert vor 5 Jahren von CarstenSchuette (vorher) (Diff)

comment:52 Geändert vor 5 Jahren durch CarstenSchuette

@cuma: Mit aktueller Version (r10897) immer noch so. Nach dem Booten und DSL-Sync endet das syslog so:

Jan  1 01:02:03 fritz user.notice ONLINECHANGED[2456]: [online] approved
Jan  1 01:02:03 fritz user.notice ONLINECHANGED[2456]: [online] executing /etc/onlinechanged/10-htpdate
Jan  1 01:02:04 fritz user.info syslog: Setting 1374700373.000 seconds
Jan  1 01:02:04 fritz user.info syslog: Set: Wed Jul 24 23:14:57 2013
Jul 24 23:14:57 fritz user.notice ONLINECHANGED[2456]: [online]  * Running htpdate ... done.
Jul 24 23:14:57 fritz user.notice ONLINECHANGED[2456]: [online] finished
Jul 24 23:14:57 fritz user.err telefon[1377]: set initial telefon time from linux time to 23:14:57 24.07 2013!
Jul 24 23:14:59 fritz user.err dsld[1320]: !!!!!!!!!!!!!!!!!route_add: default: metric=2, iface=dsl
Jul 24 23:15:00 fritz kern.info kernel: /proc/tffs: info request: success
Jul 24 23:15:00 fritz user.err dsld[1320]: udslcb_connected(nr=0, ipv6=1, dsl_encap=1, use_dhcp=1, vlancfg=(nil), vlanid=-2, vlanencap=-2)

Der USB-Stick ist gemounted. Aber die external-Dienste werden nicht gestartet.
Also Login per PuTTY/SSH, "cd /etc/init.d" und "./rc.external start":

root@fritz:/etc/init.d# ./rc.external start
Starting external (/var/media/ftp/uStor01/external):
Waiting for time-synchronisation: done.
Starting openvpn ... done.
Starting Collectd daemon ... done.
Starting privoxy ... done.
Starting Samba-nmbd ... done.
Starting Samba-smbd ... done.
Starting Subversion ... done.
Starting vnstat ... done.
vnstat (webcfg-vns) is updating inetd ... inactive.
Starting external finished.

comment:53 Geändert vor 5 Jahren durch cuma

Selbst wenn 10 gleichzeitig schreien das irgendwas nicht funktioniert trägt das nicht zu Lösung des Problemes bei. Wenn man an den Logdateien nichts erkennen kann bleiben 2 Möglichkeiten (a) selbst herausfinden (b) warten bis es sonst jemand gefunden hat.

comment:54 Geändert vor 5 Jahren durch make

Ergänzung zu comment:27

root@fb:/etc/init.d# ./rc.external start
Starting external (/var/media/ftp/uStor01/external):
Starting MiniDLNA ... done.
Starting privoxy ... done.
Starting Samba-nmbd ... done.
Starting Samba-smbd ... done.

Starting FHEM ...
Starting external finished.
root@fb:/etc/init.d# 

(Die letzte Zeile ist ohne " done." weil FHEM bei mir über ein Skript-Fragment gestartet wird, dass in der Freetz-Weboberfläche etwas ungenau auch als rc.external bezeichnet wird.

Also tritt auch bei mir wohl der schon beschriebene Effekt auf, dass rc.external nicht mehr aufgerufen wird, aber durch den Aufruf von Hand alle external services usw gestartet werden.

comment:55 Geändert vor 5 Jahren durch make

rc.mod :

       [ "$pkg" = mod ] && continue


comment:56 Geändert vor 5 Jahren durch cuma

In 10899:

external: some fixes (refs #2145)

comment:57 Antwort: Geändert vor 5 Jahren durch make

r10899 beseitigt bei mir das Problem mit dem Starten von external.

Zuletzt geändert vor 5 Jahren von make (vorher) (Diff)

comment:58 Geändert vor 5 Jahren durch make

Diese Fehlermeldung in mod_net.log ist vermutlich ein ähnliches Problem wie bei rc.external:

/mod/etc/init.d/rc.dnsmasq: line 13: /mod/etc/init.d/rc.multid: not found

dnsmasq ist bei mir zur Zeit disabled und liegt via external auf dem USB-Stick. Es ist nicht in EXTERNAL_OWN_SERVICES eingetragen. Da /mod/etc/init.d/rc.multid nach dem Starten von external vorhanden ist, nehme ich an, dass der Link beim Hochfahren halt noch nicht da ist.

Wenn in rc.dnsmasq der Dateiname von /mod/etc/init.d/rc.multid wieder auf den alten Wert /etc/init.d/rc.multid geändert wird tritt dieser Fehler nicht mehr auf.

Zuletzt geändert vor 5 Jahren von make (vorher) (Diff)

comment:59 Geändert vor 5 Jahren durch cuma

Prima. Der Fehler trat nur auf wenn man einen Stick benutzt der "schnell" gemountet wird (Race condition) und die Links in /mod noch nicht da waren. Bei Dnsmasq ist das nicht so einfach, da rc.dnsmasq durch external ("Scripte") nicht in /etc/init.d liegen muss.
External legt die Links in /mod/etc/init.d erst beim Starten an (man kann nur ein Teil der Packages einbinden, dann werden nur deren Dateien verlinkt)
EDIT: Ach Quatsch, falsch herum gedacht

Zuletzt geändert vor 5 Jahren von cuma (vorher) (Diff)

comment:60 Geändert vor 5 Jahren durch cuma

In 10901:

external: prevent another race-condition, rc.multid is always in flash (refs #2145)

comment:61 Geändert vor 5 Jahren durch cuma

In 10902:

external & libmodmount: more fixes (refs #2145, closes #2151)

comment:62 Geändert vor 5 Jahren durch er13

Es wäre nicht schlecht, wenn Du jetzt noch dokumentieren könntest, wann welches Script über /mod/etc und wann über /etc aufgerufen werden soll bzw. eine Regel angeben würdest, die einem die Antwort darauf gibt.

Es wäre auch nicht schlecht, dass man generell den Ablauf von external zur Laufzeit beschreibt - Reihenfolge, worauf wird gewartet, etc. Danke!

comment:63 Antwort: Geändert vor 5 Jahren durch cuma

Gut von dir zu hören, denkst du an comment:47 ?

nur auf wenn man einen Stick benutzt der "schnell" gemountet wird (Race condition)


wann welches Script über /mod/etc und wann über /etc aufgerufen werden soll bzw. eine Regel angeben würdest

Regel: immer alles aus /mod, außer es funktiniert nicht (da zu früh aufgerufen)
In /mod sind auch mehr Script, da die von ausgelagerten Packte nicht unter /etc sein müssen (aber können)
Ob alle Optionen so bleiben wie sie sind weiss ich noch nicht, ich bastele momentan an den Libs herum
Evtl kommen auch die festen Pfade aus den Scripten raus, und mod/external in den Pfad. Oder alle Pfade nach /mod/ ändern und dort alles verlinken…

comment:64 als Antwort auf: ↑ 63 Geändert vor 5 Jahren durch er13

Replying to cuma:

Gut von dir zu hören, denkst du an comment:47 ?

Scheint behoben zu sein, bekomme keine Fehlermeldung mehr, wobei warum es immer die erste Zeile ist, ist mir nicht ganz klar.


wann welches Script über /mod/etc und wann über /etc aufgerufen werden soll bzw. eine Regel angeben würdest

Regel: immer alles aus /mod, außer es funktiniert nicht (da zu früh aufgerufen)

Eine sehr lustige Regel…

Sollte external einfach nicht länger warten: bis die Partition gemountet ist und alle Links (oder was da fehlt) angelegt sind?
Ich wäre auch dafür eine Funktion callInitDScript einzuführen, die nachschaut, ob ein Script unter /mod/etc vorhanden ist, wenn vorhanden, dann wird dieses aufgerufen, wenn nicht, dann wird eine Warning protokolliert und unter /etc nachgeschaut.

comment:65 Geändert vor 5 Jahren durch cuma

Kann man sich doch umso leichter merken
Das Problem ist nicht external, da dies wie gehabt wartet bis rc.mod (also alle Pakete im FLash usw) gestartet ist. Der INhalt von /mod/… wird auch von external engelegt.
r10901 & r10902 beziehen sich auf FREETZMOUNT. Und das wird aufgerufen beim Event "Partition erkannt", wann auch immer das ist. Bei (User) make war das vor http://freetz.org/browser/trunk/make/mod/files/root/etc/init.d/rc.mod#L19
Sieh auch

Starting external (/AutoFS/external/7320):
Waiting for mod-startup: ...................................................... done.   <--
Waiting for time-synchronisation: done.
Starting
Zuletzt geändert vor 5 Jahren von cuma (vorher) (Diff)

comment:66 Geändert vor 5 Jahren durch cuma

Scheint behoben zu sein, bekomme keine Fehlermeldung mehr, wobei warum es immer die erste Zeile ist, ist mir nicht ganz klar.

Es wäre mit der Datei die es noch nicht gibt sauberer.
Angenommen in der Datei steht:

abc
pkg
pkg-a
pkg-a-b
xyz

grep auf "^pkg-a" bringt pkg-a und pkg-a-b, grep auf "pkg" bringt "pkg*". Die 1 Zeile ist die richtige da sortiert…

comment:67 als Antwort auf: ↑ 57 Geändert vor 5 Jahren durch CarstenSchuette

Replying to make:

r10899 beseitigt bei mir das Problem mit dem Starten von external.

Bei mir auch.

comment:68 Geändert vor 5 Jahren durch cuma

In 10913:

create & use packages/*/.$pkg files (refs #2145)

comment:69 Geändert vor 5 Jahren durch cuma

In 10929:

external/multid wrapper: avoid another race condition (refs #2145)

comment:70 Geändert vor 5 Jahren durch er13

Nicht alle Dateien, die unter packages/${pkg} liegen, werden mit ins Image kopiert. Die aus .exclude werden ausgeschlossen. Das scheint external gar nicht zu berücksichtigen. S. #2279

comment:71 Geändert vor 5 Jahren durch cuma

Ich kenne die Datei nicht. Bis jetzt ging ich davon aus, dass Dateien die nach packages/ kopiert werden auch immer im Image landen

comment:72 als Antwort auf: ↑ 44 Geändert vor 5 Jahren durch er13

Replying to cuma:

In 10885:

external: move samba hack to package (refs #2145)

Eine Frage dazu: welchen Sinn hat diese Zeile? Die Bedingung ist nie true (es sei denn man ruft die Funktion mit samba als Parameter auf, was man jedoch an keiner Stelle macht).

comment:73 Geändert vor 5 Jahren durch er13

In 11528:

samba:

  • revert a part of r10839, /mod and /var/mod is the same dir (the same place in rc.smbd has not been changed, s. rc.nmbd vs. rc.smbd)
  • refs #2145

comment:74 Geändert vor 5 Jahren durch er13

@cuma: noch eine Frage zu r10885. Warum sehen die Bedingungen an den folgenden zwei Stellen unterschiedlich aus: rc.external vs. rc.samba? Wurde an der zweiten Stelle EXTERNAL_DYNAMIC lediglich nur vergessen oder hat es irgendeinen anderen Hintergrund?

Zuletzt geändert vor 5 Jahren von er13 (vorher) (Diff)

comment:75 Geändert vor 5 Jahren durch er13

In 11529:

comment:76 Geändert vor 5 Jahren durch er13

In 11530:

  • add support for multidaemon-packages. multidaemon-package is a package providing multiple daemons and multiple rc.scripts. multidaemon package is expected to have the following structure:
    • /etc/init.d/rc.$pkg (main rc.script)
    • /etc/init.d/rc.$pkg.daemon1 (rc.script for daemon1)
    • /etc/init.d/rc.$pkg.daemon2 (rc.script for daemon2)
  • refs #2145, refs #2321

comment:77 Geändert vor 5 Jahren durch er13

In 11532:

external:

  • fix pathname-expansion takes place in a wrong directory if EXTERNAL_DYNAMIC != y
  • refs #2145, fixes #2321 in case external is used and EXTERNAL_DYNAMIC != y

comment:78 Geändert vor 5 Jahren durch er13

TODO: für Samba sollte statt r10885 basierend auf r11530 eine Lösung analog Netatalk (s. r11531) umgesetzt werden.

Nachteil von r10885 - es ist ein Code-Clone von rc.external.


Schwierigkeiten: es muss auch noch der fürs AVM-samba zuständige Code mitangepasst werden (s. Pakete mod und inetd).

comment:79 Geändert vor 5 Jahren durch er13

  • Meilenstein von freetz-next nach freetz-future geändert

comment:80 Geändert vor 5 Jahren durch er13

In 11887:

external/"dynamic packages":

  • consider both ${pkg} and ${pkg}-cgi packages while collecting package files (some package files are provided by ${pkg}-cgi, e.g. openvpn, ppp, transmission, etc.)
  • refs #2145
  • refs #2367

comment:81 Geändert vor 5 Jahren durch er13

In 11888:

openvpn-v2-cgi:

  • workaround 'package name violates freetz package naming convention'-problem, it would be nice if we could get rid of both workarounds in the future
  • refs #2117
  • refs #2145

comment:82 Geändert vor 5 Jahren durch er13

In 11890:

external:

  • eliminate code clones
  • refs #2145

comment:83 Antwort: Geändert vor 5 Jahren durch er13

In 11892:

external:

  • consider $(PKG)/.exclude while collecting package files
  • refs #2145

comment:84 Geändert vor 5 Jahren durch er13

In 11893:

external:

  • fix files from packages with complex conditions in external.services are not external'ed if EXTERNAL_DYNAMIC=y
  • fixes #2422
  • refs #2145

comment:85 als Antwort auf: ↑ 83 Geändert vor 5 Jahren durch ralf

Replying to er13:

In 11892:

Zwei Anmerkungen dazu:

Statt

tar c ... | tar tv | ...

kann man dies verwenden, damit entfällt schon mal das eine tar zum Lesen und die Pipe zwischen den beiden. GNU tar hat sogar eine Optimierung dass bei Ausgabe auf /dev/null die Dateien erst gar nicht gelesen werden, von daher ist das dann deutlich effizienter. Man braucht dafür allerdings auch GNU tar, weil Busybox tar auch mit vv nur die Namen auflistet.

tar cvvf /dev/null ... | ...

Wenn es auch bei Dateien mit Leerzeichen funktionieren sollen (was wir im Moment nicht verwenden, aber wer weiß), kann man dies verwenden:

tar cvvf /dev/null ... | sed -nre 's/^-([^ ]+ +){5}//p'

Die fünf Spalten, die ignoriert werden, sind Mode, User/Group, Größe, Datum und Uhrzeit.

comment:86 Geändert vor 5 Jahren durch er13

@ralf: Danke, schaue es mir an, wie sich das verbessern lässt.

comment:87 Geändert vor 5 Jahren durch er13

In 11895:

external:

  • optimize r11892 as suggested by Ralf
  • the new function does support files with unusual names (e.g. with spaces in them), the remaing external code however doesn't support it, so files with unusual names still cannot be used
  • refs #2145

comment:88 Geändert vor 5 Jahren durch er13

In 11896:

  • move collect_pkg_files function from external to freetz_functions so that it can reused from somewhere else
  • refs #2145, refs #1505

comment:89 Geändert vor 5 Jahren durch er13

In 11897:

comment:90 Geändert vor 5 Jahren durch er13

In 11899:

collect_pkg_files:

  • support parameters of two forms: pkgname and pkgname-pkgver
  • refs #1505, refs #2145
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.