View previous topic :: View next topic |
Author |
Message |
Hilefoks l33t
Joined: 29 Jan 2003 Posts: 849 Location: Emden / Deutschland
|
Posted: Tue Oct 21, 2014 3:45 pm Post subject: diff und patch für .config? |
|
|
Moin,
ich suche diff/patch speziell für Konfigurationsdateien wie sie der Linux-Kernel verwendet.
Gefunden habe ich bereits das diffconfig Script im Linux Kernel ( /usr/src/linux/scripts/diffconfig ). Der Diff sieht damit z.B. so aus:
Code: | -KAGE_E2FSPROGS_DEBUGFS n
-KAGE_E2FSPROGS_E2IMAGE n
-KAGE_E2FSPROGS_E4DEFRAG n
-KAGE_E2FSPROGS_RESIZE2FS n
+KAGE_E2FSPROGS n |
Leider kann ich kein entsprechendes patch Script finden. Kennt jemand eines oder einen Satz entsprechender Werkzeuge?
MfG,
Hilefoks _________________ - Der Computer rechnet vor allem damit, dass der Mensch denkt. - |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Sun Oct 26, 2014 9:36 am Post subject: |
|
|
Ich bezweifle, dass es das gibt, denn an welcher Stelle der .config sollte denn ein neuer Eintrag eingefügt werden?
Wenn Du nicht einen gigantischen Satz an Änderungen hast, tut es normalerweise diff/patch.
Zum graphischen Betrachten der Änderungen ist sys-kernel/kccmp geeignet. |
|
Back to top |
|
|
Hilefoks l33t
Joined: 29 Jan 2003 Posts: 849 Location: Emden / Deutschland
|
Posted: Thu Oct 30, 2014 7:31 am Post subject: |
|
|
mv wrote: | Ich bezweifle, dass es das gibt, denn an welcher Stelle der .config sollte denn ein neuer Eintrag eingefügt werden? |
Ist das nicht total egal? _________________ - Der Computer rechnet vor allem damit, dass der Mensch denkt. - |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Thu Oct 30, 2014 8:33 am Post subject: |
|
|
Hilefoks wrote: | mv wrote: | Ich bezweifle, dass es das gibt, denn an welcher Stelle der .config sollte denn ein neuer Eintrag eingefügt werden? |
Ist das nicht total egal? |
Prinzipiell schon, aber in der Praxis sind die Variablen doch irgendwie nach Themen/Treibern sortiert.
Wenn Dir die Sortierung schnuppe ist, kannst Du alles alphabetisch sortieren und die Vergleiche und Patches mit "comm -1" bzw. "comm -2" machen. Ich sehe dann allerdings nicht, welchen Sinn die Patches haben sollen, weil Du ja auch einfach die Datei nehmen kannst, zu der Du patchen willst. Geht es nur darum, durch das Speichern von "nur" den Patches Speicherplatz zu sparen? In dem Fall wäre vielleicht rcs (oder gar git) angemessener. |
|
Back to top |
|
|
Hilefoks l33t
Joined: 29 Jan 2003 Posts: 849 Location: Emden / Deutschland
|
Posted: Thu Oct 30, 2014 10:56 am Post subject: |
|
|
Nein, es geht mir nicht um den Speicherplatz.
Ich habe hier eine selbstgestrickte Buildumgebung die ein minimales Linux-System erstellt. Bisher hatte ich nur ein Zielsystem (x86), nun kommen aber weitere hinzu (x86_64, arm, ...). Allerdings sind 75-99% der Konfiguration für alle Systeme identisch (busybox, uclibc, ...).
Wenn ich nun aber eine Änderung machen möchte, muss ich die Konfiguration für jede Plattform anpassen. Das ist relativ nervig und fehleranfällig. Daher habe ich bereits ein System aus einem "default" Verzeichnis und spezifischen Verzeichnissen für die jeweilige Architektur. Zum Beispiel:
Code: | /default/
kernel_config
busybox_config
...
/x86
kernel_config
/arm
kernel_config
busybox_config
|
Beim bauen des x86 Targets werden erst alle Konfigurationsdateien aus default ins build-Verzeichnis kopiert und danach alle aus x86 (womit sie erstere ggf. überschreiben). Wenn aber nur eine einzige Option anders ist, muss ich wieder eine zusätzliche Dateien pflegen. Daher würde ich in den Target spezifischen Verzeichnissen gerne nur einen diff zum default speichern. Und zwar einen möglichst lesbaren. _________________ - Der Computer rechnet vor allem damit, dass der Mensch denkt. - |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6780
|
Posted: Thu Oct 30, 2014 12:16 pm Post subject: |
|
|
Hilefoks wrote: | Wenn ich nun aber eine Änderung machen möchte, muss ich die Konfiguration für jede Plattform anpassen. Das ist relativ nervig und fehleranfällig. |
Ja, ich habe ein ähnliches Problem. Aber "patchen" ist genauso fehleranfällig, weil die Abhängigkeiten u.U. falsch sind (etwa wenn eine der geänderten Optionen für eine andere Architektur in einem neuen Kernel weitere Optionen nach sich zieht).
Wenn ich manchmal zu faul bin und es nicht händisch mache, benutze ich das "normale" diff und patch: Wenn die Kollissionen melden, sind die Änderungen (und damit die Wahrscheinlichkeit für oben genannte Probleme) ohnehin zu groß.
Ansonsten geht es, wie ich schrieb: Sortieren und comm benutzen. Alternativ kannst Du (ohne Sortierung) auch commlist aus mv_perl (aus dem mv-Overlay) benutzen. |
|
Back to top |
|
|
|