# MySQL für Amarok

## guije

Moin,

wollte mal schnell Amarok einbinden. # emerge  amarok.

Dann kommt bei jedem Start diese Meldung :

```
The embedded database was not found; you must set up a database server connection.

You must restart Amarok after doing this.
```

Da habe ich gelesen, das Amarok gerne MySQL nutzen möchte.

Gut ich könnte ja das Häkchen bei Use external MySQL DATABASE einfach entfernen, doch diese Häkchen ist bei jedem Start von Amarok wieder drin.

Naja, hier lese ich http://ionz.org/2007/amarok-optimized-using-mysql/ das ich das mit MySQL ja machen kann.

```

emerge -av mysql
```

Hiernach kommt dann diese Meldung:

```

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

 * ERROR: dev-db/mysql-5.1.51 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   54:  Called src_compile

 *   environment, line 4445:  Called mysql_src_compile

 *   environment, line 3867:  Called die

 * The specific snippet of code:

 *       emake || die "emake failed";

 * 

 * If you need support, post the output of 'emerge --info =dev-db/mysql-5.1.51',

 * the complete build log and the output of 'emerge -pqv =dev-db/mysql-5.1.51'.

 * The complete build log is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/environment'.

 * S: '/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql'

>>> Failed to emerge dev-db/mysql-5.1.51, Log file:

>>>  '/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log'

 * Messages for package dev-db/mysql-5.1.51:

 * MySQL MY_DATADIR is /var/lib/mysql

 * MySQL datadir found in /var/lib/mysql

 * A new one will not be created.

 * ERROR: dev-db/mysql-5.1.51 failed:

 *   emake failed

 * 

 * Call stack:

 *     ebuild.sh, line   54:  Called src_compile

 *   environment, line 4445:  Called mysql_src_compile

 *   environment, line 3867:  Called die

 * The specific snippet of code:

 *       emake || die "emake failed";

 * 

 * If you need support, post the output of 'emerge --info =dev-db/mysql-5.1.51',

 * the complete build log and the output of 'emerge -pqv =dev-db/mysql-5.1.51'.

 * The complete build log is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/environment'.

 * S: '/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql'
```

Habt ihr da einen Lösungsansatz?

----------

## saturday

Hast Du amarok mit dem "embedded" Useflag emerged?

----------

## LinuxTom

Soll mit mysql-5.1.51 wieder funktionieren. Ist in Vorbereitung. Siehe hier.

----------

## guije

Nein, und jetzt ? 

USE="embedded" und dann ?

Und versteh ich trotzdem den Fehler beim 

```
emerge -av mysql

```

nicht.

Hat doch nichts mit Amarok zu tun.

----------

## guije

Ich habe genau die Version versucht zu emergen:

mysql-5.1.51

----------

## LinuxTom

Vielleicht hat Dein Fehler gar nichts damit zu tun? Zeig mal die entscheidenen Zeilen von 

```
/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log
```

----------

## guije

Ich gehe da mal von aus das dies der entscheidene part ist:

```
Making all in strings

make[2]: Entering directory `/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql/unittest/strings'

i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../include  -I/usr//include -I../../include -I../../include -I../../unittest/mytap   -g -DSAFE_MUTEX -DSAFEMALLOC -O2 -march=i686 -pipe -DHAVE_ERRNO_AS_DEFINE=1 -fno-strict-aliasing -fno-omit-frame-pointer   -DUNIV_LINUX -DUNIV_LINUX -MT strings-t.o -MD -MP -MF .deps/strings-t.Tpo -c -o strings-t.o strings-t.c

mv -f .deps/strings-t.Tpo .deps/strings-t.Po

/bin/sh ../../libtool --preserve-dup-deps  --tag=CC   --mode=link i686-pc-linux-gnu-gcc  -g -DSAFE_MUTEX -DSAFEMALLOC -O2 -march=i686 -pipe -DHAVE_ERRNO_AS_DEFINE=1 -fno-strict-aliasing -fno-omit-frame-pointer   -DUNIV_LINUX -DUNIV_LINUX  -Wl,-O1 -Wl,--as-needed -rdynamic  -o strings-t strings-t.o ../../unittest/mytap/libmytap.a ../../mysys/libmysys.la ../../dbug/libdbug.la ../../strings/libmystrings.la -L/usr//lib -lz -lpthread -lcrypt -lnsl -lm  -lpthread 

libtool: link: i686-pc-linux-gnu-gcc -g -DSAFE_MUTEX -DSAFEMALLOC -O2 -march=i686 -pipe -DHAVE_ERRNO_AS_DEFINE=1 -fno-strict-aliasing -fno-omit-frame-pointer -DUNIV_LINUX -DUNIV_LINUX -Wl,-O1 -rdynamic -o .libs/strings-t strings-t.o  -Wl,--as-needed ../../unittest/mytap/libmytap.a ../../mysys/.libs/libmysys.so -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread ../../dbug/.libs/libdbug.so -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread ../../strings/.libs/libmystrings.so -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -lpthread -L/usr//lib -lz -lpthread -lcrypt -lnsl -lm -lpthread -Wl,-rpath -Wl,/usr/lib/mysql

../../strings/.libs/libmystrings.so: undefined reference to `_db_pargs_'

../../strings/.libs/libmystrings.so: undefined reference to `_db_doprnt_'

../../strings/.libs/libmystrings.so: undefined reference to `_db_enter_'

../../strings/.libs/libmystrings.so: undefined reference to `_db_return_'

collect2: ld returned 1 exit status

make[2]: *** [strings-t] Error 1

make[2]: Leaving directory `/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql/unittest/strings'

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

make[1]: Leaving directory `/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql/unittest'

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

 [31;01m*[0m ERROR: dev-db/mysql-5.1.51 failed:

 [31;01m*[0m   emake failed

 [31;01m*[0m 

 [31;01m*[0m Call stack:

 [31;01m*[0m     ebuild.sh, line   54:  Called src_compile

 [31;01m*[0m   environment, line 4445:  Called mysql_src_compile

 [31;01m*[0m   environment, line 3867:  Called die

 [31;01m*[0m The specific snippet of code:

 [31;01m*[0m       emake || die "emake failed";

 [31;01m*[0m 

 [31;01m*[0m If you need support, post the output of 'emerge --info =dev-db/mysql-5.1.51',

 [31;01m*[0m the complete build log and the output of 'emerge -pqv =dev-db/mysql-5.1.51'.

 [31;01m*[0m The complete build log is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log'.

 [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/environment'.

 [31;01m*[0m S: '/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql'
```

----------

## LinuxTom

Hast Du schon mal die folgenden Befehle

```
lafilefixer --justfixit

revdep-rebuild
```

ausprobiert?

----------

## guije

```
# lafilefixer --justfixit 

bash: lafilefixer: command not found
```

```
# revdep-rebuild

bash: revdep-rebuild: command not found
```

----------

## Josef.95

Bist du wirklich so unkreativ...?   :Wink:  

```
emerge lafilefixer
```

----------

## franzf

Und revdep-rebuild gibts in gentoolkit.

----------

## guije

Den Vorwurf nehme ich in diesem Fall gerne an....  :Sad: 

Hatte kurz den Gedanken, mußte aber zur Arbeit und habe das nochschnell gepostet, Sorry, hast ja recht.

----------

## guije

Also ich habe immer noch die selbe Fehlermeldung.

Habe die oben genannte Befehle ausgeführt.

Ist genauso wie hier:https://forums.gentoo.org/viewtopic-t-853939-highlight-.html

Hier nochmal der build.log nach dem letzten Versuch:

```
collect2: ld returned 1 exit status

make[2]: *** [strings-t] Error 1

make[2]: Leaving directory `/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql/unittest/strings'

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

make[1]: Leaving directory `/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql/unittest'

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

 [31;01m*[0m ERROR: dev-db/mysql-5.1.51 failed:

 [31;01m*[0m   emake failed

 [31;01m*[0m 

 [31;01m*[0m Call stack:

 [31;01m*[0m     ebuild.sh, line   54:  Called src_compile

 [31;01m*[0m   environment, line 4446:  Called mysql_src_compile

 [31;01m*[0m   environment, line 3868:  Called die

 [31;01m*[0m The specific snippet of code:

 [31;01m*[0m       emake || die "emake failed";

 [31;01m*[0m 

 [31;01m*[0m If you need support, post the output of 'emerge --info =dev-db/mysql-5.1.51',

 [31;01m*[0m the complete build log and the output of 'emerge -pqv =dev-db/mysql-5.1.51'.

 [31;01m*[0m The complete build log is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/build.log'.

 [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/dev-db/mysql-5.1.51/temp/environment'.

 [31;01m*[0m S: '/var/tmp/portage/dev-db/mysql-5.1.51/work/mysql'
```

----------

## LinuxTom

Da fehlen ein paar Zeilen vorher.

Und bist Du auch dem Rat von Josef.95 gefolgt? Siehe HIER.

----------

## guije

neee, das herrscht noch unklahrheit bei mir, wie ich da genau vorgehen muß....

----------

## LinuxTom

Dort geht es jedoch um das kde-l10n - Paket und nicht um MySQL. Irgend wie auch für mich langsam verwirrend.   :Crying or Very sad: 

----------

## guije

sag ich doch, 2 verschiedene Packete, anscheinend 1 Fehler, oder?

Du schreibst: *Quote:*   

> Da fehlen ein paar Zeilen vorher. 

 

Das ganze ist ja ein langer Abschnitt, ich habe einfach da wo die Error´s anfangen, begonnen zu kopieren.

Beim ersten ist´s etwas mehr gewesen, aber das ist doch unauffälliger Text, der fehlt nicht, den habe ich einfach nicht kopiert.

Soll ich den ganzen build.log posten?

----------

## franzf

Da ist immer noch der entscheidende Teile der Fehlermeldung nicht dabei! Wenn du dir unsicher bist, lad das komplette build.log bei pastebin o.Ä. hoch, ganz bequem geht das per wgetpaste.

Solange wir nicht genau wissen, was ld beim Bauen von mysql anmeckert, können wir auch nicht helfen.

// edit:

Da hast du in deinem Edit ja noch was dazugeschrieben  :Razz: 

Zum besseren Verständnis: Hinten raus schreibt portage selber ein paar Infos. Welches Paket, bei welchem ebuild-step der Fehler auftrat, uswusf. portage selber ist nur ein bequemes Interface (u.v.m.), um die Installationsschritte, die man auch manuell ausführen kann, dem User abzunehemen. Dazu gehört meist ein "make", welches wiederum gcc/g++ oder eben ld aufruft. Dabei können Fehler passieren, so wie bei dir jetzt. Und DIESE Fehler interessieren uns. Dass was falschläuft erkennt emerge, bricht ab und gibt jenen Statusbericht aus, der bei allen Paketen recht ähnlich ausschaut. Der eigentliche Fehler ist aber (bei dir jetzt mysql und kde-l10n) recht wahrscheinlich nicht identisch.

----------

## guije

sodenn:

http://paste.pocoo.org/show/295844/

----------

## franzf

https://bugs.gentoo.org/show_bug.cgi?id=344885

debug-USE-Flag abschalten.

----------

## guije

Also in der /etc/make.conf USE="-debug" ?

----------

## franzf

Ich weiß leider nicht, wie du debug gesetzt hast. Prinzipiell kostet debug Performance+Speicher. Deshalb sollte debug für den normalen Betrieb ausgeschaltet sein. debug macht Sinn, wenn man Entwickler ist, oder temporär wenn man ein recht undurchsichtiges Problem zur Laufzeit hat und man den Entwickler mit nützlichen Infos versorgen will.

Also: Prinzipiell sollte debug gar nicht an sein. Ein USE="-debug" sollte bei normalem profile nicht nötig sein. Hast du debug explizit gesetzt?

Ich hab beim Überfliegen des Threads jetzt kein emerge -pv mysql gefunden, kannst du die Ausgabe mal posten? (Wg. den USE-Flags...).

Ein emerge --info wäre auch nicht schlecht.

----------

## guije

Ok, werde ich heut nach posten.

Nochmal ein Off:

Wenn ich ein emerge -pv mache, sehe ich die USE-Flags, die das jeweilie Packet nutzt.

Diese sind in verschiedenen Farben, ich sehe da blau grün und rot. 

Welche Bedeutungen haben solche Farben ?

----------

## Necoro

 *guije wrote:*   

> Diese sind in verschiedenen Farben, ich sehe da blau grün und rot. 

 

blau -> deaktiviert

rot -> aktiviert

grün -> änderung

gelb -> neue/weggefallene Useflags

----------

## guije

Ok, 

d.h. also diese Angaben beziehen sich auf das Packet und nicht auf mein System.

Also mit dem emerge -pv wird mir nicht angezeigt, ob ich da noch Flags aktiveren sollte, bzw.  deaktivieren sollte?

----------

## Necoro

Woher sollte das System auch wissen dass du was aktivieren oder deaktivieren solltest?

----------

## guije

Sorry, falsch beschrieben:

Die Packete können installiert werden, egal welche Flags bei mir gesetzt sind oder nicht, die USE Flage beeinflussen mit welchen Funktionalitäten das Packet eingebunden wir.

Was sagen mir aber die gezeigten USE-Flags bei einem emerge -pv ?

Zeigen sie mir das diese Flags für dieses Packet eine Bedeutung haben können ?

Das verstehe ich nicht so ganz.

Warum werden diese Flags angezeigt?

----------

## Veldrin

 *Quote:*   

> Zeigen sie mir das diese Flags für dieses Packet eine Bedeutung haben können ? 

 

nicht haben können, sondern haben.

Use flags sind wie kleine Schalter, die gewisse funktionlitäten aktivieren.

ich zerlege sie am Beispiel vom amarok.

```
root@irabaar ~ # emerge -pv amarok

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

Calculating dependencies... done!

[ebuild   R   ] media-sound/amarok-2.3.2-r1  USE="cdda lastfm opengl player semantic-desktop utils -daap -debug

-embedded -ipod (-kdeenablefinal) -mp3tunes -mtp" LINGUAS="-af -bg -ca -ca@valencia -cs -da -de -el -en_GB -es -et -fr

-it -ja -lt -lv -nb -nds -pa -pl -pt -pt_BR -ru -sk -sl -sr -sr@ijekavian -sr@ijekavianlatin -sr@latin -sv -th -tr -uk -zh_CN -zh_TW" 0 kB
```

Aktive Flags: cdda lastfm opengl player sematic-desktop utils

Inaktive Flags: daap debug embedded ipod kdeenablefinal mp3tunes mtp (wie alle Sprachpakete)

Ich habe also bspw.  Support für audio CDs (cdda), den LastFM MusicService (lastfm), den Amarokplayer (player)

Aber ich kann keinen iPod oder Windows Media Player anschliessen und direkt befüllen (ipod, mtp), erhalte keine debugging Informationen (debug) und kann nicht auf den MP3Tunes store zugreifen.

Useflags sind nicht nur Paket abhängig, sondern oft auch Versionsabhängig.

Mehr Informationen zu Useflags kannst mit euse -i <useflag> (bspw. euse -i cdda) erhalten. Leider sind die Informationen nicht immer hilfreich (und ich bin mit nicht sicher ob sie in deutsch erhältlich sind)

cheers

V.

----------

## Josef.95

Auch das Gentoo Handbuch sollte, nicht nur bei Fragen immer ein Blick wert sein  :Wink: 

zb USE-Flags

Und auch in denn manpages wie zb "man emerge" sollte idR hilfreiches zu finden sein.

----------

## guije

ok, schaut mal bitte :

```
# eix x11-libs/libX11

[I] x11-libs/libX11

     Available versions:  1.3.4 ~1.3.6 {doc ipv6 static-libs test +xcb}

     Installed versions:  1.3.4(16:01:01 16.11.2010)(ipv6 xcb -doc -static-libs -test)

     Homepage:            http://xorg.freedesktop.org/

     Description:         X.Org X11 library

```

Bei Available versions steht als aktive USE-Flags 

doc ipv6 static-libs-test +xcb

in blau

Frage : Warum steht das + vor dem +xcb ?

Bei Installed versions steht als aktive USE-Flags 

ipv6 xcb 

in rot und 

-doc -stativ-libs -test 

als inaktive USE Flags in grau bzw normaler Schriftfarbe.

Wo liegt hier die Vorgehensweise bzw erklärt mir das jemand ?

Danke vorab.

guije

----------

## Veldrin

so läuft der Hase...

eix zeigt dir alle möglichen useflags zu einem Package. Ich mutmasse, dass es sich dabei um das Maxium an Useflags handelt (gewissen sind vllt schon wieder verschwunden).

In den guten alten Tagen (wie nostaglisch - schrecklich), musste jede Useflag per make.conf oder /etc/portage/package.use aktiviert werden. heutzutage erlaubt Portage (resp die EAPI) dass Useflags im für ein Package als empfohlen markiert werden, resp dass es wenig sinn macht ein Package ohne zu bauen --> + vor der Useflag.

Dazu kommt, dass unter available Versions einfach alle Useflags gelistet werden, erst aber unter Installed Versions genau gezeigt wird, welche effektiv gewählt wurden.

Die fabrliche hevorhebung dient der bessern Lesbarkeit. Relevant ist das Minus (resp das fehlende Minus) davor. 

Analog hättest du fragen können, wieso die Useflags bei Available Versions in geschweifter Klammer stehen, bei den Installed Versions jedoch in Runder. 

Die Antwort läuft aufs gleiche hinaus: 1. Lesbarkeit, 2. Bedeutung.

Ich hoff die Erklärung hilft.

Cheers

V.

----------

