patch integrier-problem

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

patch integrier-problem

Beitrag von JimPoison »

habe folgendes problem: habe schön ordnungsgemäß das cvs ausgecheckt. kompilieren und alles klappt auch bisher. jetzt wollte ich allerdings noch einen patch in mein cvs-verzeichnis integrieren, was allerdings nicht bzw. nur zum teil klappt. wie muß ich da genau vorgehen?
habe bisher folgendes versucht: befinde mich in der konsole in dem verzeichnis, in dem die erste zu patchende datei laut der patch-datei liegt (mittels patch < datei-patch). das klappt dann auch.
sobald aber eine datei laut patch-datei gepatcht werden soll, die in einem anderen verzeichnis als die vorangegegangene liegt, wird der fehler 8 gemeldet und ich muß den pfad zur zu patchenden datei von hand eingeben.

also dachte ich mir, ich sollte mich lieber nur im hautpverzeichnis meines lokalen cvs befinden, im meinem fall /home/xxxx/tuxbox-cvs. dann kommt allerdings bei patch < datei.patch oder patch -p0 datei.patch sofort immer der fehler 8:datei nicht gefunden.
hab mir dann mal die datei.patch angeschaut und gesehen, daß die pfade dort /cvs/tuxbox/apps..... lauten statt wie bei mir /tuxbox-cvs/apps...
also dachte ich mir, patch mit dem parameter -p3 aufgerufen sollte helfen, da der pfad dann immer erst ab /apps... (ab da stimmt ja meine verzeichnisstruktur überein) berücksichtigt wird.
leider funktioniert das aber ebenfalls nicht, es erscheint wieder sofort fehler 8.

wo liegt hier mein (denk-)fehler?
in welchem verzeichnis sollte ich mich befinden?
in welchem verzeichnis sollte der patch liegen?
mit welchem parameter sollte patch aufgerufen werden, damit alle aufgeführten dateien in der datei.patch automatisch gepatcht werden?

bin momentan ein bißchen frustriert, bisher konnte ich alle auftauchenden cvs-probleme noch irgendwie selber lösen, aber hier bin ich jetzt schon seit stunden dran und komm einfach nicht weiter :dash:
umso dankbarer bin ich für jede hilfe :wink:
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

Hi

Hasst Du es denn schon mit -p1 versucht?
patch -p1 < meinDiff
Aber um genau zu sehen in welchem Ordner Du denn sein müsstest, dafür braucht man schon einen Einblick in das diff.

Gruß
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

ja eigentlich hab ich schon alles durch von -p0 bis -p8. bringt aber alles nix.
das diff ist das hier: http://home.arcor.de/houdini/dbox/neutr ... next.patch

wie gesagt, mein cvs verzeichnis ist /home/xxxx/tuxbox-cvs/
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Code: Alles auswählen

cd /home/xxxx/tuxbox-cvs/apps/tuxbox/neutrino
patch -p0 < /pfad/zu/neutrino-diff-now-next.patch
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

super danke werd ich nachher mal ausprobieren und mich wieder melden wenns nicht klappen sollte :wink:
Zuletzt geändert von JimPoison am Montag 12. November 2007, 19:31, insgesamt 1-mal geändert.
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

hat geklappt danke

verstehe aber nicht so genau wieso.
warum muß ich in /home/xxxx/tuxbox-cvs/apps/tuxbox/neutrino sein?
warum muß ich -p0 angeben? das heißt doch, daß der komplette pfad unverändert weitergegeben wird, aber der pfad meines lokalen cvs-verzeichnisses lautet doch anders?
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Du darfst nicht von dieser Zeile ausgehen:

Code: Alles auswählen

RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/daemons/sectionsd/SIevents.cpp,v
sondern von diesen:

Code: Alles auswählen

--- daemons/sectionsd/SIevents.cpp	23 May 2007 16:39:55 -0000	1.34
+++ daemons/sectionsd/SIevents.cpp	26 Oct 2007 21:31:50 -0000
Gruß

Der Papst
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

erstmal danke. hat mir alles sehr geholfen.

natürlich tauchen jetzt noch weitere fragen auf :D

wenn ich diesen patch in ein aktuelles cvs einspiele, taucht dabei jetzt öfter die meldung hunk failed at ... auf. ich denke mal weil sich seit veröffentlichung des patches ende oktober die dateien und versionen im cvs bereits wieder geändert haben.
kann ich das ignorieren, darf ich den patch jetzt gar nicht mehr einspielen oder wie gehe ich da jetzt vor??
nächste frage: wenn ich den patch eingespielt habe und danach irgendwann mal ein cvs-update mache, wird die vorher gepatchte datei komplett überschrieben oder nur die teile, die sich geändert haben? (sprich: muß ich nach jedem update den patch erneut einspielen?)

desweiteren: muß man nach einspielen eines patches oder nach update des cvs jedesmal wieder autogen und configure ausführen vor dem kompilieren oder nicht?
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

wenn ich diesen patch in ein aktuelles cvs einspiele, taucht dabei jetzt öfter die meldung hunk failed at ... auf. ich denke mal weil sich seit veröffentlichung des patches ende oktober die dateien und versionen im cvs bereits wieder geändert haben.
kann ich das ignorieren, darf ich den patch jetzt gar nicht mehr einspielen oder wie gehe ich da jetzt vor??
Ignorieren kannst Du das nicht ohne Weiteres. Da wurde der Patch an der in hunk failed at... bezeichnten Zeile/Stelle nicht angewendet. Was da nicht gepatcht wurde, wird in eine *.rej-Datei abgelegt. Das musst du dann manuell auflösen. Das kommt vor, wenn du an der Stelle wo Du patchen willst schon eigene Änderungen drin hast oder wie Du sagst der Versionsstand überhaupt nicht zusammen passt.
desweiteren: muß man nach einspielen eines patches oder nach update des cvs jedesmal wieder autogen und configure ausführen vor dem kompilieren oder nicht?
Das kommt immer drauf an was Du gepatcht hast. Am normalen Quellcode meist nicht. Wenn irgendwelche Sachen im configure oder make gepatcht wurden, dann eigentlich schon.
nächste frage: wenn ich den patch eingespielt habe und danach irgendwann mal ein cvs-update mache, wird die vorher gepatchte datei komplett überschrieben oder nur die teile, die sich geändert haben? (sprich: muß ich nach jedem update den patch erneut einspielen?)
Wenn alles glatt geht, mergt (vereinigt) cvs die Files. Sollte das nicht klappen, eben aus oben benannten Gründen, schmeißt dir cvs Konfliktwarnungen raus. Die muss man manuell auflösen.
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

dbt hat geschrieben:Wenn alles glatt geht, mergt (vereinigt) cvs die Files. Sollte das nicht klappen, eben aus oben benannten Gründen, schmeißt dir cvs Konfliktwarnungen raus. Die muss man manuell auflösen.
d.h. ich könnte theoretisch das cvs von dem datum auschecken, wo der patch noch gepasst hat, dann den patch einspielen und dann das cvs updaten auf den aktuellen stand? dann dürften doch keine konflikte auftauchen oder?
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Beitrag von dbt »

Eigentlich ja, theoretisch!
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

Außer in dem Fall, daß genau an den Stellen, die dein Patch anfaßt, auch im CVS was geändert wurde => Konflikt, den du halt dann durch Anschauen des Codes von Hand auflösen mußt.
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

so ich hab das jetzt mal genauso gemacht wie geplant und das hat auch so funktioniert. also cvs bis zu nem bestimmten datum auschecken, patch einspielen und dann update des cvs auf aktuellen stand.
jetzt hab ich allerdings nen neues, schönes problem :gruebel: : und zwar scheint mein kompiliertes image auf dem stand des cvs zu sein, wie er nach datums-auschecken und patch einspielen war. so als wenn das cvs update nach dem einspielen des patches gar nicht stattgefunden hätte.
woran kann das liegen?

nächste frage: in meinen kompilierten neutrino images taucht bei mir im features menü bei den anderen plugins immer ganz oben ein bitrate viewer 1.3 auf. so wie ich gelesen habe, soll das ja eigentlich ein enigma plugin sein.....also wie kommt das in mein neutrino rein und wie bekomme ich es da weg?
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

dank an houdini!! wies aussieht ist mein zweites problem hiermit http://cvs.tuxbox.org/lists/tuxbox-cvs- ... 00093.htmlbehoben worden.... :)

das erste hab ich damit gelöst, daß ich statt das cvs upzudaten nochmal komplett ausgecheckt hab. aber das kann ja auch keine dauerlösung sein...
hätte ich vielleicht die .deps neu machen müssen?
mit dem cvs-update hab ich aber eh probleme. immer wenn ich ein update mache klappt daraufhin das kompilieren nicht, es bricht immer mit nem fehler 2 ab. nur wenn ich komplett auschecke klappts. woran kann das liegen?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

[gähn]welcher Branch?[/gähn]
JimPoison
Einsteiger
Einsteiger
Beiträge: 312
Registriert: Samstag 29. November 2003, 00:20

Beitrag von JimPoison »

oldmake....
stell ich zuviele dumme fragen? :dash:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Beitrag von seife »

JimPoison hat geschrieben:oldmake....
ok, dann ist es nicht das, was ich vermutet hatte...
stell ich zuviele dumme fragen?
Ja. ESR's Essay on "how to ask smart questions" zu lesen wäre schon nicht schlecht ;-)
Spaß beiseite: Ohne die Ausgabe, die zu deinem "error 2" führt, kann dir keiner helfen. Wenn du die dir genau anschaust, wirst du selber drauf kommen wo es hängt. Vermutlich paßt der Patch halt nicht mehr, du hattest Konflikte o.ä. und mußt jetzt den Code fixen.