patches einspielen? wie?

bababong

Neuer User
Mitglied seit
19 Sep 2007
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
hallo alle zusammen,

ich habe folgendes problem, ich habe ein tracticket gefunden
das mir zur lösung meines problems helfen sollte. Und zwar sind dort einige Patches drin die ich gerne einspielen würde. diese patches hab ich aus dem trac
im original format runtergeladen und hab diese in mein freetz-trunk ordner kopiert. wenn ich nun patch -p0 < bla.patch kommt folgender fehler:
patch unexpectedly ends in middle of line
patch: **** Only garbage was found in the patch input.

hier noch der link zum ticket:
http://trac.freetz.org/ticket/273

sorry das ich so ne doofe frage stell, aber ich hab schon im wiki geguckt, gegooglet ... und ich find einfach keine lösung.

danke schonmal

bababong
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Ich gehe schlicht davon aus, dass du dir zwar den Patch runtergeladen hast, aber irgendwie nicht den Link unten auf der Seite genutzt hast, um diesen zu speichern. Erst draufklicken, dann nach unten scrollen, dann speichern.
 

bababong

Neuer User
Mitglied seit
19 Sep 2007
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
doch doch, ich hab immer den original format link benutzt...
oder kann es vielleicht daran liegen das ich colinux verwende ??
aber ich kann mir fast nich vorstellen das ne einfache textersetzung bei colinux
nich funktioniert wo doch so viele weitaus komplexere sachen tadellos funktionieren

leider versteh ich die syntax nich sonst würd ich das von hand machen :(

edit:
kann es sein das ich die patches vllt in irgend einen bestimmten ordner kopieren muss?
es gibt ja einen patches unterordner
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Nein, musst du nicht. Poste doch bitte einfach mal die ersten Zeilen des PAtchfiles hier in Codetags, ja? Oder häng den kompletten Patch an.
 

bababong

Neuer User
Mitglied seit
19 Sep 2007
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
so hier mal der kleinste:

Code:
Index: make/linux/Config.ohio-4mb_26.04.57
===================================================================
--- make/linux/Config.ohio-4mb_26.04.57	(revision 2650)
+++ make/linux/Config.ohio-4mb_26.04.57	(working copy)
@@ -585,7 +585,7 @@
 # CONFIG_MIPS_AVALANCHE_USB is not set
 CONFIG_AVM_CPMAC=y
 CONFIG_AVM_CPMAC_NUM_RX_BUFFERS=128
-# CONFIG_AVM_CPMAC_SWITCH is not set
+CONFIG_AVM_CPMAC_SWITCH=y
 
 #
 # Ethernet (1000 Mbit)
Index: make/linux/Config.ohio-4mb_26.04.49
===================================================================
--- make/linux/Config.ohio-4mb_26.04.49	(revision 2650)
+++ make/linux/Config.ohio-4mb_26.04.49	(working copy)
@@ -587,7 +587,7 @@
 CONFIG_MIPS_AVALANCHE_USB_DEBUG=0
 CONFIG_AVM_CPMAC=y
 CONFIG_AVM_CPMAC_NUM_RX_BUFFERS=128
-# CONFIG_AVM_CPMAC_SWITCH is not set
+CONFIG_AVM_CPMAC_SWITCH=y
 
 #
 # Ethernet (1000 Mbit)
 

RalfFriedl

IPPF-Urgestein
Mitglied seit
22 Apr 2007
Beiträge
12,343
Punkte für Reaktionen
1
Punkte
0
Der Patch sieht ganz normal aus. Das Einzige was noch möglich ist, sind falsche Zeilenenden. Ich habe aber nicht ausprobiert, ob die zu so einer Fehlermeldung führen würden oder nur dazu, daß die zu patchende Datei nicht gefunden wird.
Du kannst mal file verwenden, um das zu prüfen
Code:
file bla.patch
Zur Bedeutung der Datei (ist vermutlich irgendwo ausführlicher erklärt, evtl. "man diff" oder nach "unified diff" suchen):
Zuerst steht der Name der Datei, die geändert werden soll. In diesem Fall sowohl nach "Index:" als auch nach "+++".
Danach kommt eine Anweisung, wie die Datei geändert werden soll:
Code:
@@ -[B]585[/B],7 +[B]585[/B],7 @@
[B]585[/B]/[B]585[/B] # CONFIG_MIPS_AVALANCHE_USB is not set
586/586 CONFIG_AVM_CPMAC=y
587/587 CONFIG_AVM_CPMAC_NUM_RX_BUFFERS=128
588/   -# CONFIG_AVM_CPMAC_SWITCH is not set
   /588+CONFIG_AVM_CPMAC_SWITCH=y
589/589 
590/590 #
591/591 # Ethernet (1000 Mbit)
Ich habe hier zusätzlich die Zeilennummern davor geschrieben. Die Zeilennummer steht hinter dem "@@", danach wie viele Zeilen es sind, jeweils für die alte und neue Fassung der Datei.
Die Zeilen mit Leerzeichen davor sind unverändert. die mit Minus davor ist die alte Version, die mit Plus ist die neue Version.

Konkret bedeutet es also, daß in der Datei make/linux/Config.ohio-4mb_26.04.57 die Zeile 588 von "# CONFIG_AVM_CPMAC_SWITCH is not set" auf "CONFIG_AVM_CPMAC_SWITCH=y" geändert werden soll.
 

bababong

Neuer User
Mitglied seit
19 Sep 2007
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
ok vielen dank schonmal,
aber ich hab gerade gesehen das der eine patch 200 zeilen lang is und wenn ich das von hand mach, bau ich da glaub mehr fehler ein als ich gut mach ...

file bringt bei allen patches folgenden output, kann leider nich viel damit anfangen
Code:
$ file 5140_kernel.patch
5140_kernel.patch: RCS/CVS diff output text
kann man die patches nicht auch mit diff einspielen??

ich versteh das nich, wo da der fehler sein soll
ich probiers mal auf nem vserver wo native linux läuft und kein colinux ...
mal gucken ob da auch son fehler kommt
 

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
diff und patch sind die umgekerhten seiten der medaille. Also: NEin, nichts einspielen mit diff.

Um RalfFrield's Theroie mit den Zeilenumbrüchen zu testen, Speicher die Datei noch einmal mit "Ziel Speichern unter" (oder wie auch immer das in deinem Browser heisst) (solltest du die sachen aus dem Browser rauskopiert haben) und "beharke" sie noch einmal mit dem Tool "dos2unix"
Code:
dos2unix bla.patch
und versuch es noch einmal.
 

bababong

Neuer User
Mitglied seit
19 Sep 2007
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
hmm ok habs konvertiert, und nun macht patch garnichts mehr ...
läuft schon seit 10min und kein output
aber das war wohl das problem, vielen dank ...

und nun warum hängts? :(

edit:
ich glaub daran lags doch nich ...
hab gerade mit notepad++ zeilenumbruch code angeguckt
und der is wie bei linux (LF)
und nich wie bei windows (CRLF)

ah ich vollpfosten, jetzte hatte ich das "<" vergessen, also lags doch an den zeilenumbrüchen, mir is gerade eingefallen das ich sie heut mittag nochmal neu runtergeladen hab und zwar vom linux aus und nich per windows

VIELEN VIELEN DANK :)

aber leider bringen die patches jetzt an sich fehler ....

$ patch -p0 < 5140_kernel.patch
patching file make/linux/Config.ohio-4mb_26.04.57
Hunk #1 FAILED at 584.
Hunk #2 succeeded at 725 with fuzz 2 (offset -87 lines).
1 out of 2 hunks FAILED -- saving rejects to file make/linux/Config.ohio-4mb_26.04.57.rej

naja mal gucken, falls jemand ne idee hat, ich wäre sehr dankbar
 
Zuletzt bearbeitet: