Sie sind nicht angemeldet.

1

Donnerstag, 26. März 2009, 23:57

gentoo 2008.0 und php-4 (emerge failed)

Guten Abend, Forum.
Ich habe ein frisches 2008.0, nun nach einer Woche endlich alle Abhaengigkeiten geloest und bin auf aktuellem Stand. Nun brauche ich aus den overlays ein php4. Hab ich mit layman geholt (php-4.4.9), aber das mergen schlaegt fehl mit:
Failed Patch: php4-iodbc-config.patch
Das logfile meint:

Zitat

patching file ext/odbc/config.m4
Hunk #1 FAILED at 419.
und danach

Zitat

can't find file to patch at input line 3
Die gesuchten Files sind aber da, und auch nicht mit windows cr/lf (ein solcher Bug steht um 2006 im tracking). Wo kann ich suchen? iodbc ist uebrigens im USE disabled, eigentlich sollte er das gar nicht brauchen.
Bitte keine Kommentare, wieso ich php4 nehme. Der Goldesel unserer Firma is noch nicht auf 5 portiert, also brauch ich nen Entwicklungsrechner mit antiker Ausstattung.
Dank euch.

2

Freitag, 27. März 2009, 09:08

Hallo und Willkommen im Forum!

Hm, der Patch passt nicht mehr zum gepatchen File ... brauchst du ODBC bzw. IODBC unbedingt? Wenn nicht, dreh doch das mal ab via "-odbc -iodbc" USE Flag.

Jedenfalls solltest du den Overlay-Maintainer eine Mail stecken ...
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

3

Freitag, 27. März 2009, 12:34

Herzlichen Dank fuer die Antwort. Zumindest weiss ich nun, dass es nicht an mir liegt. Die Flags hatte ich schon ausgeschaltet, hat nicht geholfen. Also schreib ich da mal ne Mail, hoffentlich reagiert der Kollege zeitnah, am Montag brauch ich den Rechner einsatzbereit. Gibts notfalls eine andere Loesung? Kann man evtl. ein aelteres php (4.4.8 oder so) aufspielen?
Bin fuer jeden Hinweis dankbar.

4

Montag, 30. März 2009, 09:35

Hm, jetzt ist Montag und ich lese erst jetzt deine Post ... sorry.

Eine Möglichkeit ist sicher das ältere php-4.4.8 raufzuspeilen, eine andere Möglichkeit wäre, den Patch rauszunehmen. Dann fehlt dir halt eben genau dieser Patch ... ich weis nicht was er macht und wozu er gut sein soll ... aber versuch macht kluch.

Um den fehlerhaften Patch herauszuhebeln mußt du wohl etwas tiefer greifen als emerge: das ebuild. Dazu Schritt für Schritt:

1. Legen wir mal ein Kürzel für das ebuild file an:

Quellcode

1
# EB="/usr/local/portage/layman/php-4/dev-lang/php/php-4.4.9.ebuild"
das brauchen wir.

2. Holen wir uns nochmals alle files, die wir brauchen

Quellcode

1
# ebuild ${EB} setup


3. Nehmen wir uns das fehlerhafte patchset zur Brust: "/usr/portage/distfiles/php-patchset-4.4.9-r0.tar.bz2": auspacken, den fehlerhaften patch rausnehmen und wieder zurückspielen:

Quellcode

1
2
3
# tar -xvjf /usr/portage/distfiles/php-patchset-4.4.9-r0.tar.bz2
# rm 4.4.9/php4/php4-iodbc-config.patch
# tar -cvjf /usr/portage/distfiles/php-patchset-4.4.9-r0.tar.bz2 4.4.9/*


4. Natürlich haben wir jetzt die ganzen Digests durcheinander gewirbelt, das müssen wir fixen, indem wir unseren speziellen Patch in die "files" des ebuilds schieben:

Quellcode

1
# cp /usr/portage/distfiles/php-patchset-4.4.9-r0.tar.bz2 /usr/local/portage/layman/php-4/dev-lang/php/files/


5. ... und die digest bauen, wobei wir natürlich "unser" Patchset reinprügeln ...

Quellcode

1
# FEATURES+="assume-digest" ebuild --force ${EB} digest


6. Wenn es geklappt hat, dann sollte nun ein

Quellcode

1
# ebuild ${EB} merge
durchlaufen und den iodbc-patch nicht anwenden und somit durchgehen ...
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org