Gluon wechselt zu LEDE

Wichtig wird vor allem werden, sich jetzt schon prophylaktisch auf möglichst vielen „eher exotische Routern“ SSH-Keys zu hinterlegen, insbesondere bei solchen bei denen die lokalen User sich auf der Shell nicht selbst helfen können.

Derzeit wird disktuiert, z.B. 1043v1 auf BROKEN zu setzen, was sich in normalen Buildbetrieb mit einer „stable“-release ausschliesst. Daher werden diese Geräte dann ohen Umstellung auf einen anderen Pfad vermutlich herausfallen aus dem Autoupdater.

Es fällt auch das x86-KVM-target weg. D.h. der Autoupdater wird dann dort keinen Kandidaten finden, sofern man ihm nicht „mit Tricks“ nachhilft, weshalb diese Maschinen dann auch aus dem Updatepfad herausfliegen werden solang bis sich jemand händisch drum kümmert.

Gibt es schon eine Anleitung,

  1. was man genau alles an seiner site.conf ändern muss um den neuesten master mit LEDE zu bauen? Wie verhält sich das mit den USB-Paketen, die wir in der site.mk haben? müssen die alle raus oder nur einige?

  2. was sich am Aufruf des make commands alles ändert?

  3. was man ev. an eigenen Paketen anpassen muss, damit sie LEDE kompatibel werden?

Ich würde gern unsere GitHub - freifunk-kiel/site-ffki: This is just a copy of the Freifunk Kiel specific Gluon configuration of anpassen.

2 „Gefällt mir“
  • Workaround: in der site.mk nicht benötigte Packages/Locales entfernen

Gibt es da einen „sauberen“ weg Pakete nur für ar71xx-tiny auszunehmen? In der Mail war zwar von GLUON_tp-link-tl-wr841n-nd-v11_SITE_PACKAGES… die Rede, aber soweit ich sehe kann man damit nur zum Standard hinzufügen, nicht Pakete entfernen. Möchte nur ungerne für alle anderen Router einzelne Profile anlegen müssen :confused:.

Soweit ich das jetzt zusammen habe muss man für LEDE im Moment nur das paket

1.

gluon-next-node

aus dem site.mk entfernen.

2.

den opkg block aus der site.conf entfernen oder ersetzen durch das Beispiel aus gluon/docs/user/site.rst at v2017.1.x · freifunk-gluon/gluon · GitHub

3.

Und in gluon paketen ist

include $(GLUONDIR)/include/package.mk

nicht mehr korrekt, das muss entweder durch

include $(INCLUDE_DIR)/package.mk

ersetzt werden, das ist abwaertskompatibel, dann kann man die Pakete weiter für 2016.2.x und master benutzen.

Oder bei Paketen, die GluonSrcDiet oder GluonI18N* benutzen, z.B.:

$(call GluonSrcDiet,./luasrc,$(PKG_BUILD_DIR)/luadest/)

da muss man statt dem package.mk gluon.mk includen mit:

$(TOPDIR)/../package/gluon.mk

Das ist leider nicht mehr abwärtskompatibel und man muss da also einen extra Branch in den packages anlegen (oder besser dafür sorgen, dass seine packages alle upstream sind :wink: )

4.

Für den optionalen USB-Support müssen die targets angepasst werden. basic support ist schon drin, aber um mehr funktionalität zu haben muss man neue device-namen in den target-strings benutzen, dazu mehr morgen, hier im WIki: USB Support · freifunk-gluon/gluon Wiki · GitHub


Aber in den nächsten Tagen müssen eh noch mal alle LuCi -basierten Config-Mode-Pakete angepasst werden, da neoraider gerade LuCi durch einen minimalen Fork, der 130KB weniger Flash verbrät, ersetzt.

7 „Gefällt mir“

LuCi wurde jetzt im master durch das platzsparendere gluon-web ersetzt:

with the merge of Remove dependency on luci-base, introduce gluon-web as new base for Config Mode by neocturne · Pull Request #1007 · freifunk-gluon/gluon · GitHub , Gluon
now doesn’t use LuCI for its Config Mode anymore, but our own fork
„gluon-web“, which is significantly smaller (as lots of features we don’t
need have been removed).

Alle gluon Pakete müssen daher jetzt an das neue gluon-web angepasst werden, dazu bitte die Dokumentation lesen (im Dokument für model und controller ist unten jeweils ein Bereich „changes from LuCi“)

  1. die Benutzung der Funktion gluon_luci.escape() durch pcdata() und urlescape() durch urlencode() austauschen
  2. Im Makefile die Dependencies anpassen: DEPENDS:=gluon-luci-theme durch DEPENDS:=gluon-web-theme, luci-base durch gluon-web, gluon-luci-admin durch gluon-web-admin
  3. i18n.translate() => translate()
  4. luci.template.render_string() => renderer.render_string()
  5. z.B. s:option(cbi.Value, „_altitude“ … => o = s:option(Value, „altitude“ …
  6. o.rmempty wird o.optional
  7. Pfde anpassen: /lib/gluon/setup-mode/www wird /lib/gluon/web/www
  8. Includes anpassen: require ‚luci.util‘ wird ersetzt durch ‚gluon.web.util‘ und ‚luci.i18n‘, „gluon.luci“ durch „gluon.util“
  9. In der site.mk alle Pakete mit -luci- im Namen durch -web- austauschen, (Ausnahme: gluon-luci-portconfig wird gluon-web-network) Beispiel
...
7 „Gefällt mir“

Weitere Neuerung:

site.conf needs to be adjusted. Refer to
Site configuration — Gluon 2023.2.2 documentation for the
new format.

The changes in short: the fastd_mesh_vpn section has been renamed to fastd
and moved into a new section mesh_vpn, with the exception of the options
enabled, mtu and bandwidth_limit, which are set directly in the mesh_vpn
section.

Also kurz gesagt: anstatt fastd_mesh_vpn nun aussen mesh_vpn und dadrin fastd zwischengefügt. (Beispiel)

3 „Gefällt mir“

Noch einiges, was sich geändert hat, was nur für manche package-Repos zutrifft, die das Makefile direkt im hauptordner des Repos hatten:

11.

Das Paket mit dem Makefile muss innerhalb des Repos in einem eigenen Unterordner liegen.

12.

local uci = luci.model.uci.cursor() => local uci = require("simple-uci").cursor()

Ich hab das soweit mal als eigenen fork der development information zu den gluon readthedocs ergänzt, die teilweise übernommen wurden: Docs: add development information by rubo77 · Pull Request #1136 · freifunk-gluon/gluon · GitHub

In den Release notes zu 2017.1 sind weitere Hinweise:

1 „Gefällt mir“

ich hab hier 4-5 Pakete die so erstmal nicht mehr funktionieren , gibts nen zusammenschrieb was wie umgeschrieben werden sollte an dem man sich orientieren kann?

Welch sind das? Igendwas mit TunnelDigger?

nö, custom
airtime, banner, ssid-changer, mini-scripts die für openwrt/gluon geschrieben waren

Ich denke mal den hab ich auf Vordermann gebracht:

https://github.com/Freifunk-Nord/gluon-ssid-changer/tree/lede

https://forum.freifunk.net/t/ssid-changer-optimieren-gluon-ssid-changer-forks-merged/

Mit den richtigen Optionen ist das praktisch dein branch (weiterentwickelt) und jetzt im Config mode ein und ausschaltbar.

Hier meinst du sicher

da brauchst du nur die Zeile ändern:

include $(INCLUDE_DIR)/package.mk

in

include $(TOPDIR)/../package/gluon.mk

Und in lede müssen alle Pakete einen eigenen ordner haben, also musst du alles in dem repo noch mal in einen unterordner schieben, der so heisst, wie das paket:

mkdir gluon-banner
git mv files Makefile gluon-banner/

genauso kannst du alle pakete updaten, die nur bash files enthalten.

eine sache noch:

der Befehl uci get ... -q funktioniert seit lede nicht mehr, das -q mus am anfang stehen:

uci -q get ....

Angebot:
Wenn Ihr einen lede branch in euren Repos anlegt, kann ich anbieten dort einen PR zu erstellen, der die Pakete anpasst

3 „Gefällt mir“

ist nun upstream dabei.

3 „Gefällt mir“

airtime: @rotanid kannst du mir näher sagen welche schlüssel ausgelesen werden und welche entsprechend in alfred/respondd gepumpt werden und/oder einen link zu dem quelltext - ich vermute das ich dennoch Dinge anpassen muss (dann an der Karte) da wir damals in dem Prozess durchaus auseinander gegangen sind.
(vgl Freiburg meshviewer https://openfreiburg.de/freifunk/meshall )

@fuzzle schau doch im Gluon-Repo nach :wink:

Ist es dieses?

1 „Gefällt mir“

Vielleicht kann man auch bei den Paketen die kein lua benutzen und wo man nur die eine Zeile mit dem include ändern muss eine weiche einbauen, die checkt ob der ordner lede/ existiert anhand der tips hier: bash - Test whether a directory exists inside a makefile - Stack Overflow

dann kann man die pakete, die für 2016.2.x laufen auch in 2017.1.x benutzen

2 „Gefällt mir“

Wichtige Info, wenn Ihr eure Pakete anpasst:

zwischen 2017.1.x und dem master hat sich geändert, dass man jetzt in den Dependencies wieder +gluon-config-mode-core schreibt (gluon-config-mode-core-virtual gibt es nicht mehr), aber in 2017.1.1 ist das noch wie gehabt innerhalb von 2017.1.x wird das auch so bleiben, aber wenn man mal auf den fehler stösst beim Bauen

Configuration failed:
 * unable to enable package 'XXXyourPackageHereXXX'
Makefile:99: die Regel für Ziel „config“ scheiterte

dann hat man wohl ausversehen im master gebaut :wink:

1 „Gefällt mir“

10 Beiträge wurden in ein neues Thema verschoben: Änderungen an gluon beim Wechsel zu 2017.1.x

Widerspruch mit:

Geht es nun abwärtskompatibel oder nicht?