amarok-2, amd64 and mysql

As some of you may have noticed, the amarok-2 ebuilds have not been keyworded ~amd64 because of the mysql issue. Tonight, we’ve got a step closer to fix that.
Ive been working on a patch for mysql to get libmysqld to be built as a shared lib for over 2 months now. I’ve added an initial patch on January 3rd. Tonight, I was able to finally get a working patch for mysql-5.0.76:

atlantis@lap64 ~/kde $ ls -la /usr/lib64/mysql/libmysqld.*
-rw-r–r– 1 root root 9447588 Mar 29 01:39 /usr/lib64/mysql/libmysqld.a
-rwxr-xr-x 1 root root 1088 Mar 29 01:38 /usr/lib64/mysql/libmysqld.la
lrwxrwxrwx 1 root root 18 Mar 29 01:39 /usr/lib64/mysql/libmysqld.so -> libmysqld.so.0.0.0
lrwxrwxrwx 1 root root 18 Mar 29 01:39 /usr/lib64/mysql/libmysqld.so.0 -> libmysqld.so.0.0.0
-rwxr-xr-x 1 root root 5054576 Mar 29 01:39 /usr/lib64/mysql/libmysqld.so.0.0.0

This patch needs to be properly tested and will likely get some clean-ups, but it’s working locally. This has taken a considerable amount of work and time from me, but has only been possible thanks to Diego E. β€œFlameeyes” PettenΓ² – kudos to him.
AFAIK, this means that Gentoo is the first distro to include a shared lib libmysqld and after Robin “robbat2” Johnson, cleans the patch and he’s happy with it, we’ll try to get it upstream.
I’ve delayed this post a few hours trying to get amarok-2.0.2 building, but it’s still failing because of qtscriptgenerator. However, it is already linking to libmysqld though:

lap64 amarok_build # pwd
/var/tmp/portage/media-sound/amarok-2.0.2/work/amarok_build
lap64 amarok_build # scanelf -n lib/libamarok_collection-sqlcollection.so
TYPE NEEDED FILE
ET_DYN libamaroklib.so.1,libamarokpud.so.1,libkdeui.so.5,libkio.so.5,libthreadweaver.so.4,libmysqld.so.0,libpthread.so.0,libkdecore.so.5,libQtDBus.so.4,libQtCore.so.4,libQtGui.so.4,libstdc++.so.6,libc.so.6 lib/libamarok_collection-sqlcollection.so

If you like to see it with a “prettier output”:

lap64 amarok_build # ls lib/libamarok_collection-sqlcollection.so | xargs scanelf -L -n -q -F ‘%n #F’ | tr , ‘ ‘ | xargs qfile -C | sort -u
dev-db/mysql (/usr/lib64/libmysqld.so.0)
kde-base/kdelibs (/usr/kde/4.2/lib64/libkdecore.so.5)
kde-base/kdelibs (/usr/kde/4.2/lib64/libkdeui.so.5)
kde-base/kdelibs (/usr/kde/4.2/lib64/libkio.so.5)
kde-base/kdelibs (/usr/kde/4.2/lib64/libthreadweaver.so.4)
sys-devel/gcc (/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.4/libstdc++.so.6)
sys-libs/glibc (/lib64/libc.so.6)
sys-libs/glibc (/lib64/libpthread.so.0)
x11-libs/qt-core (/usr/lib64/qt4/libQtCore.so.4)
x11-libs/qt-dbus (/usr/lib64/qt4/libQtDBus.so.4)
x11-libs/qt-gui (/usr/lib64/qt4/libQtGui.so.4)

I’m trying some of the patches in the amarok + qt4.5 bug and will hopefully get it to build soon. So it seems we might be able to have a amarok2+amd64 party in Gentoo soon B)

UPDATE

atlantis@lap64 /home/gentoo-cvs/jmbsvicetto/media-sound/amarok $ qlist -IUv amarok
media-sound/amarok-1.4.10-r2 (amazon ipod kde mp4 musicbrainz mysql njb opengl python visualization)
media-sound/amarok-2.0.2 (cdaudio ipod kdeprefix mp3tunes mp4 njb opengl)

I think a party is due in #gentoo-kde!! πŸ˜€ I’m going to update the amarok ebuild in the overlay in a minute. So, let’s PARTY!!!

11 thoughts on “amarok-2, amd64 and mysql”

  1. A big thank you for trying to fix this whole brain damage. Better late than never, especially since you succeeded in actually fixing the issue the “right way” instead of simply applying kludgy build flags.

    I hope it is accepted upstream since otherwise we’ll have to drag this patch along for a long time πŸ˜›

  2. great work, the patch is quite impressive
    expecially knowing the complexity of the mysql
    build stuff

  3. You did a very good job.

    Thanks for taking the time to find a real solution for this problem.

    Let’s party now !

  4. The gentoo mysql ChangeLog shows it was added 12 Apr.
    *mysql-5.0.76-r1 (12 Apr 2009)

    12 Apr 2009; Robin H. Johnson
    +mysql-5.0.76-r1.ebuild:
    Bug #238487, lots of patching fun to enable building of a shared embedded libmysqld for Amarok.

    To get amarok 2 run something like:

    sudo emerge autounmask
    sudo autounmask dev-db/mysql-5.0.76-r1
    sudo autounmask media-sound/amarok-2.0.2-r3
    sudo emerge -DuaN amarok

    * Its building now on my system now. Not sure if I’ll have to rebuild kdelibs or set any USE flags before it will work.

    Thanks for making this patch possible.

Leave a Reply to RealNC Cancel reply

Your email address will not be published.