# pythonmagick patchen...?

## uhai

Hallo zusammen,

falls trotz dem schönen Wetter jemand hier sein sollte, ich komme mit dem patchen von Pythonmagick nicht klar. Vielleicht kann mir da jemand weiterhelfen.

Anschienend bin ich von diesem dev-python/pythonmagick-0.95 build troubles - patch betroffen. Es gibt zwei patches, die anzuwenden wären. Den ersten habe ich manuell mit nano eingebaut - war nur eine Änderung. Mit dem zweiten, der mehrere Dateien betrifft , habe ich ein Problem.

Zuerst habe ich mir ein lokales overlay mit layman eingerichtet und dev-python/pythonmagick aus /usr/Portage kopiert. Aus generell: patches anwenden habe ich das vorgehen übernommen:

```
ebuild /path/to/ebuild fetch

ebuild ... unpack

patchen

ebuild ... compile

ebuild ... install

ebuild ... qmerge 
```

Schon beim zweiten Schritt "patchen" passiert nach Eingabe von 

```
patch -d /var/tmp/portage/dev-python/pythonmagick-0.9.5/work LateImportBoostPython.patch
```

 nichts mehr.

Vermutlich habe ich ein Problem mit den Verzeichnissen, wo der patch steht bzw. mit der Syntax des Patch-Befehls. Trotz man-pages komme ich aber nicht dahinter. Falls jemand einen Zaunpfahl hat, bitte winken   :Confused: 

uhai

----------

## Christian99

das ist im thread falsch, sollte 

```
patch -d /var/tmp/portage/dev-python/pythonmagick-0.9.5/work < LateImportBoostPython.patch
```

oder so heißen.

EDIT: wieso nimmst du nicht das neue ebuild, welches im bugreport steht? da ist doch der patch schon eingebaut.

----------

## uhai

Die Lösung mit den beiden patches scheint mir technisch sauberer als das gepatchte Ebuild zu sein.

Deine Korrektur hat jedenfalls eine output gebracht:

```
Tux dev-python # patch -d /var/tmp/portage/dev-python/pythonmagick-0.9.5/work < LateImportBoostPython.patch

can't find file to patch at input line 12

Perhaps you should have used the -p or --strip option?

The text leading up to this was:

--------------------------

|Only use boost::python namespace after Magick++ headers have been included.

|

|2011-03-15 Martin von Gagern

|

|References:

|http://bugs.gentoo.org/358355

|

|Index: PythonMagick-0.9.5/pythonmagick_src/_Drawable.cpp

|===================================================================

|--- PythonMagick-0.9.5.orig/pythonmagick_src/_Drawable.cpp

|+++ PythonMagick-0.9.5/pythonmagick_src/_Drawable.cpp

--------------------------

File to patch: 

```

Welche Pfade nimmt patch denn an? Wo sollte ich mit der Konsole stehen für den patch-Befehl?

uhai

----------

## Josef.95

Hi

Bezüglich Patches einspielen, schau mal ob dir die hier genannten Tipps weiterhelfen

Wie man einen Patch einspielt

Viel Erfolg

----------

## uhai

Danke für den thread,

den hatte ich bisher nicht dazu gefunden. Besonders das erwähnte neue portage-feature interessiert mich. Leider komme ich damit auch nicht klar.

Ich habe /etc/portage/package/dev-python/pythonmagick erstellt, die beiden Patches hineinkopiert und mit chown portage:portage die Rechte gesetzt.

Beim emerge pythonmagick werden die Patches aber nicht angewendet. Python ist hier 2.6 & 3.1 installiert, mit eselect python ist 2.6 ausgewählt. Portage ist in Version 2.1.9.42 installiert. Damit sollte es doch gehen oder habe ich etwas übersehen?

uhai

----------

## Josef.95

Hmm.., versuche es doch mal wie folgt:

Lade dir den im Bug Report bereitgestellten Move using after include Patch runter, und benenne ihn zb mit Move_using_after_include.patch

Nutze diese Methode um den Patch einzuspielen, also etwa: 

```
# export EB="/usr/portage/dev-python/pythonmagick//pythonmagick-0.9.5.ebuild"

# ebuild ${EB} unpack

# cd /var/tmp/portage/dev-python/pythonmagick-0.9.5/work

# patch -p0 < PATH/To/PATCH

# ebuild ${EB} merge
```

 „PATH/To/PATCH” musst du  entsprechend zu deinem Patch ersetzen.

Ich denke das sollte so eigentlich klappen?! (ungetestet)

----------

## uhai

Das so gepatchte ebuild lege ich dann am besten in ein lokales Overlay, oder? Sonst ist es doch nach dem nächsten Sync wieder weg...

Schade, eigentlich hätte ich gerne das emerge-Feature getestet. Warum das nicht funzt, habe ich auch nicht verstanden...

uhai

----------

## Josef.95

Soll heißen das mein oben genannter Vorschlag so nicht funktioniert hat?

Hier klappte es problemlos.

/edit:

Ich habe es mit dem neuen Portage Feature nicht getestet.

Doch wenn du es nutzen möchtest dann korrigiere deinen nicht korrekten

/etc/portage/package/dev-python/pythonmagick

Verzeichnis Pfad.

----------

## uhai

Entschuldigung Josef.95, doch es hat natürlich funktioniert, so wie fast alle Tips von Dir.  :Smile: 

Ich fand die Beschreibung des neuen Features nur einfacher....

uhai

PS:

Den Pfad habe ich nur falsch zitiert:

```
recup_dir.1 # ls -ali /etc/portage/patches/dev-python/pythonmagick-0.9.5

insgesamt 76

6268600 drwxr-xr-x 2 portage portage  4096 20. Mär 15:51 .

6268599 drwxr-xr-x 3 root    root     4096 20. Mär 15:41 ..

6268601 -rw-r--r-- 1 portage portage 58799 20. Mär 15:43 LateImportBoostPython.patch

6268604 -rw-r--r-- 1 portage portage   357 20. Mär 15:43 pythonmagick-0.9.5-no_python3.1.patch

```

Geht trotzdem nicht...   :Crying or Very sad: 

----------

