[Problem] 7390 - trunk 13529 - ERROR: menulua_remove: no matches for

gklank

Neuer User
Mitglied seit
9 Jan 2009
Beiträge
29
Punkte für Reaktionen
0
Punkte
6
Hallo,


ich versuche die aktuelle Laborversion (84.06.36-32073) für die 7390 zu kompilieren.
Jedoch bricht der Make wie folgt ab:

ERROR: menulua_remove: no matches for '\["lua"\] = "[^"]*kids.lua"' found
Makefile:310: recipe for target 'firmware-nocompile' failed
make: *** [firmware-nocompile] Error 1

Ich habe schon recht lange gesucht, aber nichts gefunden.
Hat mir jemand einen Tipp?


Gruß,

gklank
 

Anhänge

  • config.txt
    73.3 KB · Aufrufe: 7
Dir ist aber schon bewußt, daß Du praktisch keinen Remove-Patch ausgelassen hast und daß sich das GUI der 06.36 schon recht grundlegend von dem der früheren Versionen unterscheidet, während zu fast jedem Remove-Patch auch ein Teil gehört, der das GUI (eben der früheren Versionen) entsprechend anpassen soll an die dann fehlenden Teile der Firmware?

Der Tipp wäre also, jeden Remove-Patch erst einmal auszulassen und dann - aber wirklich nur dann -, wenn das so erstellte Image funktioniert, kann man nach und nach ein paar wenige Remove-Patches dazunehmen, die event. auch mit dem neuen GUI noch funktionieren.

gklank schrieb:
Ich habe schon recht lange gesucht, aber nichts gefunden.
Darf man fragen, wo, wie lange und wonach?

Die Fehlermeldung ist doch eindeutig ... der Patch versucht aus dem GUI-Menü die Verknüpfung zur "Kindersicherung" zu entfernen, weil Du ja REMOVE_KIDS aktiviert hast. So einen Eintrag gibt es aber (wen wundert's) nicht mehr - das gesamte Menüsystem sieht jetzt anders aus (und das meint nicht nur die Darstellung, obwohl auch ein Laie das dort sicherlich sofort erkennen sollte).
 
Das Problem ist vermutlich, dass sobald man "Remove dsld" auswählt wird "Remove kids" automatisch angewählt und lässt sich auch nicht abwählen.
 
Ich will es nicht beschwören und mir fehlt zugegebenermaßen auch der Überblick, was da im einzelnen bei "remove dsld" entfernt wird, aber funktioniert das tatsächlich noch und ist dann nicht der komplette Netzwerk-Teil der Box am Ende unbrauchbar?

In meinem Weltbild wird sogar die Konfiguration des internen Switches (also die Frage, welcher Port da mit anderen zu einer Bridge zusammengetackert wird) seit einiger Zeit vom dsld-/kdsld-Gespann vorgenommen (auch wenn das alles "closed source" ist) und da stellt sich mir dann schon die Frage, was so eine Box dann überhaupt noch kann.

Oder kann man tatsächlich dsld und kdsld entfernen und die Netzwerk-Funktionen der Box bleiben konfigurier- und nutzbar?
 
Ich habe das selbe Problem mit der 7390 und Firmware 7390_de 84.06.51 rev33001 (25.04.2016 12:45:38) (neueste Nicht-Labor Firmware in trunk).
Das Thema ist übrigens in
http://freetz.org/ticket/2831 (duplicated) bzw. http://freetz.org/ticket/2774 erwähnt.
Der zugehörige Match ist allgemein in
Code:
[FONT=monospace][COLOR=#000000]tools/freetz_functions[/COLOR][/FONT]
in der Funktion
Code:
[FONT=monospace][COLOR=#000000]menulua_remove[/COLOR][/FONT]
enthalten.
Code:
[FONT=monospace][COLOR=#000000]kids[/COLOR][/FONT]
wird über einen Parameter übergeben.
Der Aufruf befindet sich in der Datei
Code:
[FONT=monospace][COLOR=#000000]patches/scripts/310-remove_kids.sh[/COLOR][/FONT]
mit
Code:
[FONT=monospace][COLOR=#000000]menulua_remove kids[/COLOR][/FONT]
.
Aktuell enthält die zu patchende Datei
Code:
[FONT=monospace][COLOR=#000000]build/modified/filesystem/usr/www/all/menus/menu_data.lua[/COLOR][/FONT]
folgende relevante Zeilen:

Code:
pageData["kidLis"] = config.KIDS and {
Code:
["show"] = pppoe_or_umts_on,
["lua"] = "internet/[COLOR=#ffffff]kids[/COLOR][COLOR=#000000]_userlist.lua",[/COLOR]
["help"] = forLuaOnly and "hilfe_kindersicherung_uebersicht"
} or nil
pageData["kidPro"] = config.KIDS and {
["show"] = pppoe_or_umts_on,
["lua"] = "internet/[COLOR=#ffffff]kids[/COLOR][COLOR=#000000]_profilelist.lua",[/COLOR]
["help"] = forLuaOnly and "hilfe_filter_zugangsprofile"
} or nil

Ich habe den Aufruf in
Code:
[FONT=monospace][COLOR=#000000]patches/scripts/310-remove_kids.sh[/COLOR][/FONT]
versuchsweise auf
Code:
[FONT=monospace][COLOR=#000000]menulua_remove kids_userlist
menulua_remove kids_profilelist[/COLOR][/FONT]

geändert und kam damit zumindest bis zum nächsten Problem. Ich werde hieran heute noch etwas weiter arbeiten, wollte aber schonmal einen Zwischenstand geben, damit wird nicht doppelt debuggen.
 
Da die Abhängigkeiten zwischen Menüstruktur und anderen Anzeigen zugenommen haben, würde ich auf das echte Entfernen von Zeilen aus den Lua-Dateien eher verzichten. Wenn man die Anzeige einer Seite im Menü nicht will (weil die entsprechende Funktion entfernt wurde), kann man einfach "show" fest auf "false" stellen.

Die Struktur der Zeilen in der "menu_data.lua" ändert sich auch von der 06.5x zur 06.69 (inzwischen ist ja klar, daß die 7390 auch noch eine Labor-Version erhalten hat), in neueren Versionen ist das "pageData" nicht mehr vor jedem Eintrag, weil die Initialisierung gleich als Table erfolgt:
Code:
neu:
local pageData = {
["overview"] = {
["show"] = true,
["js"] = "home/home.js",
["lua"] = forLuaOnly and "home/home.lua",
["help"] = forLuaOnly and "hilfe_status"
} or nil,
[...]

alt:
local pageData = {}
[...]
pageData["overview"] = {
["show"] = true,
["js"] = "home/home.js",
["lua"] = forLuaOnly and "home/home.lua",
["help"] = forLuaOnly and "hilfe_status"
} or nil
Ich weiß nicht genau, wie das Patchen in Freetz in "menulua_remove" funktioniert (will mir das auch jetzt nicht ansehen), aber beim Erstellen neuer "anchors" für irgendwelche Patches oder "sed"-Kommandos sollte man das ggf. gleich berücksichtigen.
 
Da die Abhängigkeiten zwischen Menüstruktur und anderen Anzeigen zugenommen haben, würde ich auf das echte Entfernen von Zeilen aus den Lua-Dateien eher verzichten. Wenn man die Anzeige einer Seite im Menü nicht will (weil die entsprechende Funktion entfernt wurde), kann man einfach "show" fest auf "false" stellen.
Die Struktur der Zeilen in der "menu_data.lua" ändert sich auch von der 06.5x zur 06.69 (inzwischen ist ja klar, daß die 7390 auch noch eine Labor-Version erhalten hat), in neueren Versionen ist das "pageData" nicht mehr vor jedem Eintrag, weil die Initialisierung gleich als Table erfolgt
Ich weiß nicht genau, wie das Patchen in Freetz in "menulua_remove" funktioniert (will mir das auch jetzt nicht ansehen), aber beim Erstellen neuer "anchors" für irgendwelche Patches oder "sed"-Kommandos sollte man das ggf. gleich berücksichtigen.

Danke für den Tipp und die Information. Mir ist das Menü eigentlich relativ egal, da es sich kaum auf die Image Größe auswirkt. Es muß für die noch in der Firmware enthaltenen Funktionen einfach noch funktionieren. Im Moment ändere ich hier mehr oder weniger blind, da es mir nur darum geht, wieder einen vernünftigen Shell Zugang zur Box zu haben und ein paar Pakete mehr (z.B. tcpdump).
Weißt du, wie ich die Skripte so anpassen kann, dass sie tolerant gegenüber Änderungen in der Firmware werden? Beispielsweise würde ich gerne nur eine Warnung generieren, wenn zu entfernende Teile vorher schon nicht vorhanden sind.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.