# media-libs/flac lässt sich nicht mergen

## 3PO

Hallo Zusammen,

ich wollte gerade mal wieder ein world Update machen, jedoch beibt es bei  media-libs/flac-1.2.1-r1 mit folgendem Fehler stehen:

```
[...]Making all in file

make[5]: Entering directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1/examples/cpp/encode/file'

i686-pc-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../../..   -DFLaC__INLINE=__inline__ -DNDEBUG -I../../../.. -I./include -I../../../../include   -march=prescott -O2 -pipe -fomit-frame-pointer -c -o main.o main.cpp

main.cpp: In function »int main(int, char**)«:

main.cpp:75: Fehler: »memcmp« wurde in diesem Gültigkeitsbereich nicht definiert

make[5]: *** [main.o] Fehler 1

make[5]: Leaving directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1/examples/cpp/encode/file'

make[4]: *** [all-recursive] Fehler 1

make[4]: Leaving directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1/examples/cpp/encode'

make[3]: *** [all-recursive] Fehler 1

make[3]: Leaving directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1/examples/cpp'

make[2]: *** [all-recursive] Fehler 1

make[2]: Leaving directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1/examples'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/work/flac-1.2.1'

make: *** [all] Fehler 2

 *

 * ERROR: media-libs/flac-1.2.1-r1 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 2554:  Called die

 * The specific snippet of code:

 *       emake || die "emake failed."

 *  The die message:

 *   emake failed.

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/log/portage/media-libs:flac-1.2.1-r1:20090215-081253.log'.

 * The ebuild environment file is located at '/mnt/data/tmp/portage/media-libs/flac-1.2.1-r1/temp/environment'.

 *

>>> Failed to emerge media-libs/flac-1.2.1-r1, Log file:

>>>  '/log/portage/media-libs:flac-1.2.1-r1:20090215-081253.log'

 * Regenerating GNU info directory index...

 * Processed 194 info files.
```

Hier noch das komplette Log und die emerge --info

Hat Jemand eine Idee, woran das liegen könnte, oder besser noch, eine Lösung?   :Smile: 

----------

## ChrisJumper

bugs.gentoo.org

----------

## 3PO

Thx, 

aber leider funktioniert der Patch bei mir nicht, oder bin einfach nur zu doof ihn anzuwendern....  :Rolling Eyes:   :Crying or Very sad: 

----------

## Finswimmer

 *3PO wrote:*   

> Thx, 
> 
> aber leider funktioniert der Patch bei mir nicht, oder bin einfach nur zu doof ihn anzuwendern....  

 

Du kannst bei der Ausgabe sehen, ob er erfolgreich angewendet wird.

Ansonsten müsstest du ein bisschen mehr Output liefern.

Tobi

----------

## 3PO

Vermutlich versuche ich an der falschen Stelle zu patchen, denn wenn ich den originalen Patch ersetzte kommt folgende Meldung:

```
vdr02 ~ # emerge -av media-libs/flac

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     UD] media-libs/flac-1.2.1-r1 [1.2.1-r3] USE="ogg sse -3dnow (-altivec) -debug -doc (-cxx%*)" 0 kB

Total: 1 package (1 downgrade), Size of downloads: 0 kB

Would you like to merge these packages? [Yes/No]

>>> Verifying ebuild manifests

!!! Digest verification failed:

!!! /mnt/data/portage/media-libs/flac/files/flac-1.2.1-gcc-4.3-includes.patch

!!! Reason: Filesize does not match recorded size

!!! Got: 601

!!! Expected: 423

vdr02 ~ #
```

----------

## Finswimmer

ebuild /pfad/zum/ebuild.ebuild digest

sollte dir da helfen.

Besser ist es alles in einem lokalen Overlay zu machen.

Tobi

----------

## 3PO

```
vdr02 ~ # ebuild /var/db/pkg/media-libs/flac-1.2.1-r3/flac-1.2.1-r3.ebuild digest

Appending /var/db/pkg to PORTDIR_OVERLAY...

Traceback (most recent call last):

  File "/usr/bin/ebuild", line 232, in <module>

    debug=debug, tree=mytree)

  File "//usr/lib/portage/pym/portage/__init__.py", line 5687, in doebuild

    alist = mydbapi.getFetchMap(mycpv, useflags=useflags,

AttributeError: 'vardbapi' object has no attribute 'getFetchMap'

vdr02 ~ #
```

Und nun??

----------

## Necoro

also in /var/db/pkg rumzuspielen ist auf keinen Fall jemals eine gute Idee ...

wie Finswimmer schon schrieb: leg dir einen lokalen Overlay an und arbeite in dem

----------

## 3PO

 *Necoro wrote:*   

> ..... leg dir einen lokalen Overlay an und arbeite in dem

 

Und wie mache ich das??

----------

## Necoro

 *3PO wrote:*   

>  *Necoro wrote:*   ..... leg dir einen lokalen Overlay an und arbeite in dem 
> 
> Und wie mache ich das??

 

http://www.gentoo-wiki.info/HOWTO_Create_an_Updated_Ebuild

----------

## Max Steel

ganz einfach:

```
mkdir -p /usr/local/portage/meins/

mkdir -p /usr/local/portage/meins/profiles/

echo "Lokal" >> /usr/local/portage/meins/profiles/repo_name

echo "PORTDIR_OVERLAY="{PORTDIR_OVERLAY} /usr/local/portage/meins/" >> /etc/make.conf
```

Jetzt fehlt nurnoch das kopieren deines Ebuild in das Overlay, das digesten (bzw. manifesten, jeweils ebuild <ebuild> und dann digest oder manifest) und anschliesend dem installieren.

Die unterOrdner müssen so aussehen.

<category>/<package>/<package>-<version>.ebuild

Extra Dateien wie Patches sind dann unter

<category>/<package>/files/<num>-<verwendung>.{patch,diff}

----------

## 3PO

Sorry, aber das ist mir zu hoch.....

----------

## 3PO

 *Max Steel wrote:*   

> ganz einfach....

 

Scheinbar nicht....

Nach dem Eintrag in dei make.conf komt folgender Fehler:

```
ParseError: Invalid token 'PORTDIR_OVERLAY' (not '='): /etc/make.conf: line 1 in /etc/make.conf
```

 *Quote:*   

> Jetzt fehlt nurnoch das kopieren deines Ebuild in das Overlay

 

So??

```
cp /mnt/data/portage/media-libs/flac/flac-1.2.1-r3.ebuild  /usr/local/portage/myoverlays/
```

----------

## franzf

 *Max Steel wrote:*   

> ganz einfach:
> 
> ```
> mkdir -p /usr/local/portage/meins/
> 
> ...

 

Die letzte Zeile ist falsch  :Razz: 

Korrekt:

```
echo "PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/meins/" >> /etc/make.conf
```

Da die Zeile so aber schon in der make.conf steht, einfach editieren und vor das {PORTDIR_OVERLAY} ein $ setzen.

----------

## franzf

 *3PO wrote:*   

>  *Quote:*   Jetzt fehlt nurnoch das kopieren deines Ebuild in das Overlay 
> 
> So??
> 
> ```
> ...

 

Les dir mal ganz genau die Infos im Gentoo-Handbuch zu Overlays durch.

Du musst die ganze (!) Ordner-Struktur wie im portage-Tree haben.

```
cp package-<version>.ebuild ${local_overlay}/category/package/
```

Wobei natürlich package, category, version und local_overlay deinen Gegebenheiten angepasst sein muss.

(Nach Max Steel ist dein local_overlay gleich /usr/local/portage/meins)

----------

## 3PO

Jetzt hat es funktiniert.   :Laughing: 

1000 thx an alle Helfer.

----------

## Mr. Anderson

Zu gern würde ich noch verstehen, warum Du nicht die -r3 nimmst. Die ist seit Dezember überall stable, wo auch -r1 stable ist. Hab ich das irgendwie überlesen? Also, ich will Dir sicher nicht verbieten, lokal zu patchen - mir wäre das aber wirklich etwas zu aufwändig.

----------

## 3PO

Ich habe doch die -r3 genommen.

----------

## Mr. Anderson

So weit ich das verstanden habe, hast Du die -r3 manuell in einem Overlay erstellt. Sie müsste aber auch im offiziellen Portage Tree enthalten sein, ohne dass noch etwas gepatcht werden muss.

----------

## 3PO

Nun, wenn es sich so einfach installieren lassen hätte, dann hätte ich bestimmt nicht solche Klimmzüge gemacht....   :Rolling Eyes: 

----------

## Necoro

 *3PO wrote:*   

> Nun, wenn es sich so einfach installieren lassen hätte, dann hätte ich bestimmt nicht solche Klimmzüge gemacht....  

 

Laut deinem Post hast du aber die ganze Zeit versucht -r1 zu installieren  :Wink: 

----------

## 3PO

Nun zum Zeitpinkt des Postings war die -r1 im Portage und heute eben die -r3.....

Wie auch immer, es geht, - damit ist das Thema für mich erledigt.   :Smile: 

Das nächste Problem liegt schon hier.

----------

## Mr. Anderson

Um nicht Deine anderen Threads zuzuspammen: Wie lange ist Dein letztes emerge --sync her? Ich habe den Eindruck, dass da was im Argen liegt. Die r3 von flac ist seit Monaten stable und KDE 4.1 ist hart maskiert und steht unmittelbar davor aus dem Portage Tree zu fliegen (ist vor wenigen Wochen ersetzt worden durch KDE 4.2 in testing).

----------

## 3PO

 *Mr. Anderson wrote:*   

>  Wie lange ist Dein letztes emerge --sync her? ...

 

Heute.

----------

