Hallo Holger, hallo Leute, Am Mittwoch, 4. Dezember 2002 18:42 schrieb Holger Macht:
[...] habe ich in einer anderen Mailingliste folgendes gefunden:
PS: The file to be patched is located in drivers/char/drm/ in the kernel tree.
--- sis_drv_old.c Thu Dec 27 23:52:11 2001 +++ sis_drv.c Tue Jan 1 16:45:03 2002 @@ -40,12 +40,12 @@ #define DRIVER_PATCHLEVEL 0
#define DRIVER_IOCTLS \ - [DRM_IOCTL_NR(SIS_IOCTL_FB_ALLOC)] = { sis_fb_alloc, 1, 1 }, \ - [DRM_IOCTL_NR(SIS_IOCTL_FB_FREE)] = { sis_fb_free, 1, 1 }, \ + [DRM_IOCTL_NR(SIS_IOCTL_FB_ALLOC)] = { sis_fb_alloc, 1, 0 }, \ + [DRM_IOCTL_NR(SIS_IOCTL_FB_FREE)] = { sis_fb_free, 1, 0 }, \ /* AGP Memory Management */ \ [...]
Was soll ich jetzt damit anfangen? Wenn ich einfach den Text, der schon in der Datei sis_srv.c steht mit dem obigen ersetzte, bekomme ich mein kompilieren der Module eine Fehlermeldung.
Was Wunder ;-) Das ist ein Patch, keine (komplette) Datei mit Sourcecodes. Schau Dir mal zum Vergleich die original sis_drv.c an, die sieht ganz anders aus ;-) Ich habe das Gefühl, dass Du nicht so recht weißt, was ein Patch ist. Kurze Erklärung: In einem Patch stehen die Unterschiede zwischen zwei Dateien bzw. Dateiversionen. Erzeugt wird ein Patch mit diff -u alte_datei neue_datei Dabei kommt dann eine Ausgabe ähnlich der obigen heraus. Dabei bedeuten:
--- sis_drv_old.c Thu Dec 27 23:52:11 2001 +++ sis_drv.c Tue Jan 1 16:45:03 2002
die Namen der verglichenen Dateien
@@ -40,12 +40,12 @@
beschreibt die Stelle in den Dateien (alt + neu), die betroffen sind (hier in beiden Dateien ab Zeile 40, insgesamt 12 Zeilen) Danach kommen dann die Änderungen. Zeilen, die mit + beginnen, sind in der neuen Datei hinzugekommen (oder geändert), Zeilen, die mit - beginnen, wurden gelöscht (oder geändert). BTW: "Geändert" heißt für diff/patch: die alte Zeile wurde gelöscht und eine "neue" eingefügt. Zeilen, die kein + oder - am Anfang haben, sind "Kontext" und helfen dem Programm "patch" dabei, festzustellen, ob es auch an der richtigen Stelle etwas ändert. Soweit zum Dateiformat eines Patchs. Den Patch musst Du auf die Originaldatei anwenden. Dabei wird diese entsprechend der Angaben im Patch geändert. Wie das geht? Eigentlich recht einfach: - den Patch als Datei abspeichern (z. B. /tmp/patch-sis_drv - Ins entsprechende Verzeichnis wechseln (hier vermutlich mit: cd /usr/src/linux/drivers/char/drm/ ) - patch < /tmp/patch-sis_drv aufrufen. Übrigens: Die Mail hab ich jetzt als Braindump geschrieben - vielleicht schaust Du Dir besser (zusätzlich) man patch an ;-) Gruß Christian Boltz PS: Ich weiß, dass ein Patch auch mehrere Dateien, auch in mehreren Verzeichnissen, betreffen kann. Ich wollte es nur nicht noch komplizierter machen ;-) --
Ich nehme also das apache.spm von SuSE und ...befördere es in einen Mülleimer. Dann gehe ich auf www.apachetoolbox.com und mache mir das Leben leicht. [> Soeren Mindorf und Ratti in suse-linux]