-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Separate patches dir into per tree-based schema #714
Conversation
Für die Branches "daily/upstream-1907" und "daily/upstream-master" wird dieser Ansatz genutzt. Bei allen builds auf "buildslave01" und "buildslave02" gibt es Fehler beim Zusammenbau der finalen Images wegen fehlendern Paketen. Diese Pakete sind immer die, bei denen durch einen Patch das Makefile geändert wurde. Es wird wohl das .pc Unterverzeichnis im feeds-Verzeichnis (entsteht nach Nutzung von quilt) mit ausgewertet und führt zu einer defekten Paketbeschreibung. Ignorieren des .pc-Verzeichnisses (https://github.com/freifunk-berlin/firmware/blob/daily/upstream-1907/patches/openwrt/601-feeds_ignore_.pc-folder.patch) hilft auch nicht. |
Im Moment habe ich mal das GLUON-patch management für unsere Firmware integriert. Dieser Ansatz gefällt mir deutlich besser.
|
Ich konnte nicht detailliert über deine Änderungen drüber lesen, aber der Ansatz, dass man patches nun direkt über git austauschen kann und zugleich auch noch eine Austauschbarkeit mit gluo-paketen gegeben ist, gefällt mir sehr gut. Feine Sache, danke dafür! |
09e6517
to
afbab01
Compare
I just overwrote this PR with a complete new approach I mentioned already somewhere. The new way is using some scripts from the gluon-firmware, instead of updating our Makefile. My changes to our current Makefile never really worked and made it more ugly. Using the scripts from gluon resulting in a much more straight forward design. This opens also the chance to exchange patches directly with the gluon-community. |
this script just returns a list of active feeds which can be used by the Makefile. The Makefile uses the script to generate the FEEDS variable.
* copy $(TARGET) to GLUON_TARGET * maintain the order that's used in the Makefile of gluon * gluons $(BOARD) is the same as our $(MAINTARGET), but we keep this copied value for compatibility
…-targets generate a gluon modules file from current config.mk and feeds.conf new target "modules" which depends on - .stamp-gluon-module-openwrt - .stamp-gluon-module-% (iterates over all $(FEEDS))
update the current targets to use the gluon-scripts for cloning, patching and installing OpenWrt and feeds. - target .stamp-feeds-updated, which is doing the whole update-steps, by depending on patch and prepare - update openwrt and feeds - patch openwrt and feeds - setup feeds within openwrt - have target patch depend on the patches-files, to reapply them after they have changed (moved from target pre-patch) - drop conflicting / superfluous targets - openwrt-update - handled by "patch" - $(OPENWRT_DIR) - handled by "patch" - $(OPENWRT_DIR)/patches - superfluous, by patching outside of OpenWrt-tree - $(OPENWRT_DIR)/feeds.conf - handled by "feeds-update" - unpatch - superfluous by not using quilt anymore - extend target clean to remove added files / folders Using the Gluon-toolset fixes issue #734, where feed-packages added as patch have not been installed.
for the gluon-patch mechanism the patches must be organized on a per repo-basis. A directory for openwrt related patches and for each feed a separate directory below packages
afbab01
to
b810baa
Compare
b810baa
to
3237490
Compare
Durch die Nutzung der gluon-scripte wurde auch #734 gelöst. |
@akira25 in bfc8f48 ist ein Beispiel, wie ein neues Paket via Patch gezeugt werden kann. |
383c52f cjdns: fix uci-defaults (freifunk-berlin#714)
b88e322 cjdns: fix uci-defaults (freifunk-berlin#714)
Ich hatte mir schonmal Gedanken zur Handhabung unserer Patche gemacht und würde gern ein paar Meinungen sammeln.
Dass wir die Patche via quilt nur auf den gesamten Code (OpenWrt und Feeds) oder gar nicht anwenden können erzeugt unnötigen Kompilieraufwand. Wenn nur ein patch für den Luci-Feed geändert wird, wird auch OpenWrt und die anderen Feeds neu gepatcht und müssen dementsprechen kompiliert werden.
Durch eine Auftrennung der Patches jeweils für OpenWrt und die einzelnen Feeds ermöglicht selektives patchen.
Beispiel: patchen von "scripts/feeds":
Ich hab mich bei der Struktur an Gluon orientiert und somit können wir direkt patches von dort verwenden (siehe Support für Archer C50 v4)
Das Makefile ist ein schneller Hack, und muss ein generisches "update-feeds" bekommen, dass für jeden feed funkierniert und nicht für jeden feed fest-kodiert ist.