Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 508694 - media-sound/amarok-2.8.0-r1 fails linking of amarok_collection-mysqlecollection.so
Summary: media-sound/amarok-2.8.0-r1 fails linking of amarok_collection-mysqlecollecti...
Status: VERIFIED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: All Linux
: Normal major (vote)
Assignee: Jorge Manuel B. S. Vicetto
URL:
Whiteboard:
Keywords:
: 508696 508744 524880 525904 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-04-25 15:58 UTC by Achim Derigs
Modified: 2015-05-02 15:40 UTC (History)
10 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
amarok.tar.bz2 (amarok.tar.bz2,101.42 KB, application/x-bzip-compressed-tar)
2014-04-26 04:26 UTC, Zhu Sha Zang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Achim Derigs 2014-04-25 15:58:37 UTC
Rebuilding amarok causes this issue for me. May be this is caused by dev-db/mariadb-5.5.37. I have found https://bugs.gentoo.org/show_bug.cgi?id=375749 which seems similar to this behavior.

Reproducible: Always

Steps to Reproduce:
emerge -av amarok
Actual Results:  
Linking CXX shared module ../../../../../../lib/amarok_collection-mysqlecollection.so
cd /var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build/src/core-impl/collections/db/sql/mysqlecollection && /usr/bin/cmake -E cmake_link_script CMakeFiles/amarok_collection-mysqlecollection.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-g++  -fPIC -march=native -O2 -pipe  -fmessage-length=0 -Wl,--as-needed -Wnon-virtual-dtor -Wno-long-long -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden -fvisibility-inlines-hidden -Wl,--enable-new-dtags -Wl,--no-undefined -lc  -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -shared -Wl,-soname,amarok_collection-mysqlecollection.so -o ../../../../../../lib/amarok_collection-mysqlecollection.so CMakeFiles/amarok_collection-mysqlecollection.dir/amarok_collection-mysqlecollection_automoc.o CMakeFiles/amarok_collection-mysqlecollection.dir/__/mysql-shared/MySqlStorage.o CMakeFiles/amarok_collection-mysqlecollection.dir/MySqlEmbeddedCollection.o CMakeFiles/amarok_collection-mysqlecollection.dir/MySqlEmbeddedStorage.o  -L/var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build/lib  -L/usr/lib64/qt4 ../../../../../../lib/libamarok-sqlcollection.so.1.0.0 ../../../../../../lib/libamarokcore.so.1.0.0 ../../../../../../lib/libamaroklib.so.1.0.0 /usr/lib64/libkdecore.so.5.13.0 /usr/lib64/qt4/libQtCore.so -lpthread /usr/lib64/qt4/libQtGui.so -L/usr/lib64 -lmysqld -lpthread -ldl -lz -lcrypt -lpthread ../../../../../../lib/libamarokcore.so.1.0.0 /usr/lib64/qt4/libQtGui.so /usr/lib64/libkdecore.so.5.13.0 -lpthread /usr/lib64/qt4/libQtDBus.so /usr/lib64/qt4/libQtCore.so -Wl,-rpath,/var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build/lib:/usr/lib64/qt4: -Wl,-rpath-link,/var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build/lib 
make[2]: Leaving directory '/var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build'
/usr/bin/cmake -E cmake_progress_report /var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build/CMakeFiles  23 24 25
[ 97%] Built target amarok_service_magnatunestore
make -f src/services/ampache/CMakeFiles/amarok_service_ampache.dir/build.make src/services/ampache/CMakeFiles/amarok_service_ampache.dir/depend
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lmysqld
collect2: error: ld returned 1 exit status
src/core-impl/collections/db/sql/mysqlecollection/CMakeFiles/amarok_collection-mysqlecollection.dir/build.make:175: recipe for target 'lib/amarok_collection-mysqlecollection.so' failed
make[2]: *** [lib/amarok_collection-mysqlecollection.so] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-sound/amarok-2.8.0-r1/work/amarok-2.8.0_build'
CMakeFiles/Makefile2:1902: recipe for target 'src/core-impl/collections/db/sql/mysqlecollection/CMakeFiles/amarok_collection-mysqlecollection.dir/all' failed
make[1]: *** [src/core-impl/collections/db/sql/mysqlecollection/CMakeFiles/amarok_collection-mysqlecollection.dir/all] Error 2

Expected Results:  
success

Portage 2.3.6-r7 (funtoo/1.0/linux-gnu/arch/x86-64bit, gcc-4.8.2, glibc-2.18-r1, 3.14.1-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.14.1-gentoo-x86_64-Intel-R-_Core-TM-_i5-2300_CPU_@_2.80GHz-with-gentoo-2.2.0
KiB Mem:     4037340 total,    618848 free
KiB Swap:    8388604 total,   8355920 free
Timestamp of tree: Fri, 25 Apr 2014 13:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45-r1
dev-java/java-config:     2.2.0-r1000
dev-lang/python:          2.7.6-r1001, 3.3.5-r1000
dev-util/cmake:           2.8.12.2
sys-apps/baselayout:      2.2.0-r6
sys-apps/openrc:          0.12.3-r1
sys-apps/sandbox:         2.6-r2
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.13.4
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.8.2-r2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.13 (virtual/os-headers)
sys-libs/glibc:           2.18-r1
Repositories: gentoo steam-overlay java pentoo rion
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA skype-4.0.0.7-copyright Oracle-BCLA-JavaSE AdobeFlash-11.x"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.1/conf /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
LINGUAS="de de_DE en en_US"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/steam /var/lib/layman/java /var/lib/layman/pentoo /var/lib/layman/rion"
SYNC="git://github.com/funtoo/ports-2012.git"
SYNC_USER="root"
USE="X a52 aac acl acpi alsa amd64 apng bash-completion berkdb bzip2 cdda cdr consolekit cracklib crypt cups cxx dbus dri dvd dvdr dvdread flac flash gdbm gif git gpm iconv icu ipv6 jpeg kde lame mad mmx modules mp3 mpeg mtp mudflap multilib ncurses nls nptl nsplugin ogg opengl openmp pam pcre png policykit pppd python readline resolvconf scanner semantic-desktop sse sse2 ssl tcpd threads tiff truetype udev unicode vdpau vim vim-syntax vorbis wavpack win32codecs xine xml zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias authn_core authz_core socache_shmcb unixd" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de de_DE en en_US" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_ABIS="2.7 3.3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby19 ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, SYNC_UMASK

=================================================================
                        Package Settings
=================================================================

media-sound/amarok-2.8.0-r1 was built with the following:
USE="cdda embedded handbook mtp opengl semantic-desktop test utils (-aqua) -debug -ipod -lastfm -mp3tunes -ofa" LINGUAS="de -bs -ca -ca@valencia -cs -da -el -en_GB -es -et -eu -fi -fr -ga -gl -hu -it -ja -lt -lv -nb -nl -pa -pl -pt -pt_BR -ro -ru -sl -sr -sr@ijekavian -sr@ijekavianlatin -sr@latin -sv -tr -uk -zh_CN -zh_TW"
Comment 1 Nikolaos Chatzidakis 2014-04-25 19:05:38 UTC
Same problem here.
Comment 2 Jam 2014-04-25 19:21:19 UTC
same here. Seems to be caused by mysql upgrade.
Comment 3 Robert Cabrera 2014-04-26 03:30:44 UTC
My report bug #508696 I originally made about a minute after this, is a duplicate and should be marked as such.
Comment 4 Zhu Sha Zang 2014-04-26 04:26:17 UTC
Created attachment 375746 [details]
amarok.tar.bz2
Comment 5 Zhu Sha Zang 2014-04-26 04:27:01 UTC
Same here, since mysql update yesterday.

Regards
Comment 6 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2014-04-26 05:29:17 UTC
*** Bug 508696 has been marked as a duplicate of this bug. ***
Comment 7 Jorge Manuel B. S. Vicetto (RETIRED) Gentoo Infrastructure gentoo-dev 2014-04-26 05:38:57 UTC
05:33 < irker563> gentoo-x86: jmbsvicetto dev-db/mariadb: Bump 5.5.37 to fix mysql_config report of the embedded lib location - fixes bug 508694. 
05:33 < willikins> irker563: https://bugs.gentoo.org/508694 "media-sound/amarok-2.8.0-r1 fails linking of amarok_collection-mysqlecollection.so"; Gentoo Linux, KDE; UNCO; achim:jmbsvicetto
05:36 < irker563> gentoo-x86: jmbsvicetto dev-db/mysql: Bump 5.5.37 to fix mysql_config report of the embedded lib location - fixes bug 508694. 
05:36 < willikins> irker563: https://bugs.gentoo.org/508694 "media-sound/amarok-2.8.0-r1 fails linking of amarok_collection-mysqlecollection.so"; Gentoo Linux, KDE; UNCO; achim:jmbsvicetto

Please update to mariadb / mysql 5.5.37-r1 and try to build amarok again.
Feel free to reopen this bug if you hit this issue again.
Comment 8 Johannes Huber (RETIRED) gentoo-dev 2014-04-26 22:49:25 UTC
*** Bug 508744 has been marked as a duplicate of this bug. ***
Comment 9 Ching-Pang Lin 2014-05-03 03:01:10 UTC
I updated mariadb to 5.5.37-r1 and rebuilt amarok, but ldd still showed that libmysqld.so.18 was not found. I have to either add /usr/lib64/mysql to LDPATH or link /usr/lib64/mysql/* to /usr/lib64.

Since libmysqld.so.* is not in the regular path, an additional env file in /etc/env.d is necessary to fix this bug completely.
Comment 10 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2014-07-23 06:50:36 UTC
This is still a problem on stable, with media-sound/amarok-2.8.0 and mysql:

$ eix -I mysql --format '<installedversions:EQNAMEVERSION>'
=dev-db/mysql-5.1.70
=dev-db/mysql-connector-c++-1.1.1
=dev-db/mysql-init-scripts-2.0_pre1-r6
=dev-db/mysql-workbench-5.2.47
=dev-java/jdbc-mysql-5.1.18
=dev-perl/DBD-mysql-4.20.0
=dev-python/mysql-python-1.2.3-r1
=virtual/mysql-5.1
Found 8 matches.
Comment 11 Brian Evans (RETIRED) gentoo-dev 2014-07-31 00:03:24 UTC
This should be fixed in media-sound/amarok-2.8.0-r3
Comment 12 David Kredba 2014-08-30 20:43:01 UTC
It is not fixed with -r3.

/usr/bin/mysql_config (dev-db/mysql-5.6.20-r1) still contains:

elibdir='.lib64/mysql'

what is the line Amarok uses as a source of information how to construct -L directive.

When replaced with elibdir='/usr/lib64/mysql' Amarok compiles fine for me on ABI=64.
Comment 13 Aaron Pelton 2014-10-01 23:50:48 UTC
This seems to be happening to me too. It's odd because it looks like what's being passed to cmake defines the right location...

>>> Configuring source in /var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0 ...
>>> Working in BUILD_DIR: "/var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0_build"
cmake --no-warn-unused-cli -C /var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0_build/gentoo_common_config.cmake -G Unix Makefiles -DCMAKE_INSTALL_PREFIX=/usr -DKDE4_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DWITH_PLAYER=ON -DWITH_Libgcrypt=OFF -DWITH_SPECTRUM_ANALYZER=OFF -DWITH_MYSQL_EMBEDDED=ON -DWITH_ipod=OFF -DWITH_IPOD=OFF -DWITH_Ipod=OFF -DWITH_Gdk=OFF -DWITH_LibLastFm=OFF -DWITH_mtp=OFF -DWITH_MTP=OFF -DWITH_Mtp=OFF -DWITH_MP3Tunes=OFF -DWITH_nepomuk=OFF -DWITH_NEPOMUK=OFF -DWITH_Nepomuk=OFF -DWITH_Soprano=OFF -DWITH_LibOFA=OFF -DWITH_UTILITIES=ON -DMYSQLD_DIR=/usr/lib64/mysql -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_INSTALL_DO_STRIP=OFF -DCMAKE_USER_MAKE_RULES_OVERRIDE=/var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0_build/gentoo_rules.cmake  /var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0
Not searching for unused variables given on the command line.
loading initial cache file /var/tmp/portage/media-sound/amarok-2.8.0-r3/work/amarok-2.8.0_build/gentoo_common_config.cmake
-- The C compiler identification is GNU 4.8.3
-- The CXX compiler identification is GNU 4.8.3

but then ...
(bunch o' stuff removed)
-- Found FFmpeg: /usr/lib64/libavcodec.so;/usr/lib64/libavformat.so;/usr/lib64/libavutil.so
-- Found MySQL: /usr/include/mysql, -L/usr/lib64 -lmysqlclient -lpthread -lz -lm -lssl -lcrypto -ldl
-- Found MySQL Embedded: /usr/include/mysql, -L./lib64/mysql -lmysqld -lpthread
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8")

which is a relative path and probably not what is intended...
(not that I've ever used cmake, but I find it hard to believe it's going to be compiling while in /usr)
Comment 14 Aaron Pelton 2014-10-02 00:19:28 UTC
(In reply to Aaron Pelton from comment #13)
> This seems to be happening to me too. It's odd because it looks like what's
> being passed to cmake defines the right location...
> 
FWIW, this was with mariadb-10.0.14 rather than mysql.

and what I didn't notice before was that mysql_config seems to be responsible here too.

sorry for the extra non-info....
Comment 15 Aaron Pelton 2014-10-03 03:49:19 UTC
(In reply to Aaron Pelton from comment #14)
> (In reply to Aaron Pelton from comment #13)
> > This seems to be happening to me too. It's odd because it looks like what's
> > being passed to cmake defines the right location...
> > 
> FWIW, this was with mariadb-10.0.14 rather than mysql.
> 
> and what I didn't notice before was that mysql_config seems to be
> responsible here too.
> 
> sorry for the extra non-info....

OK, to redeem myself a little...

This is happening because of the symbolic link of x86_64-pc-linux-gnu-mysql_config to mysql_config. 

Internally, the config script tries to determine its "real name" and in so doing the name change no longer matches the pattern provided.

Relevant failing line after having found the "real name" with get_full_path()
basedir=`echo $me | sed -e 's;/bin/mysql_.*config.*;;'`

I suggest
basedir=`dirname $me | sed 's;/bin$;;'` 
(or better a less circuitous route to get this info...)

In any case, this is a mysql/mariadb problem (as they seem to share the script) and this should probably be passed on to them (or upstream or...)

And this will affect anything trying to use mysql_config for embedded too.
Comment 16 Joshua Clayton 2014-10-04 05:18:05 UTC
..what a script!

I can only imagine this is trying to operate in the absence of anything but a bourne compatible shell and sed.

if dirname can be assumed I would suggest 

bindir=`dirname $me`
basedir=`dirname $bindir`

Otherwise, we should probably suggest the minimum change to make this horror work, which would be:


basedir=`echo $me | sed -e 's;/bin/.*mysql_.*config.*;;'`
[ -d $basedir ] || exit 1


The second line helps future victims of this buggy script to at least know they've been ambushed.

I was able to successfully compile amarok with the second suggested change
Comment 17 Jeroen Roovers (RETIRED) gentoo-dev 2014-10-10 07:37:50 UTC
*** Bug 524880 has been marked as a duplicate of this bug. ***
Comment 18 renesanso 2014-10-11 02:49:40 UTC
(In reply to Joshua Clayton from comment #16)
> ..what a script!
> 
> I can only imagine this is trying to operate in the absence of anything but
> a bourne compatible shell and sed.
> 
> if dirname can be assumed I would suggest 
> 
> bindir=`dirname $me`
> basedir=`dirname $bindir`
> 
> Otherwise, we should probably suggest the minimum change to make this horror
> work, which would be:
> 
> 
> basedir=`echo $me | sed -e 's;/bin/.*mysql_.*config.*;;'`
> [ -d $basedir ] || exit 1
> 
> 
> The second line helps future victims of this buggy script to at least know
> they've been ambushed.
> 
> I was able to successfully compile amarok with the second suggested change

Any patch or integrating to ebuild is available, or amarok in gentoo can be installed only in manual mode? :)
Comment 19 Jeroen Roovers (RETIRED) gentoo-dev 2014-10-19 21:19:22 UTC
*** Bug 525904 has been marked as a duplicate of this bug. ***
Comment 20 Brian Evans (RETIRED) gentoo-dev 2014-10-20 14:04:30 UTC
The errors with `mysql_config --libmysqld-libs` should be fixed with the latest revisions of mysql-5.6.21-r1 and mariadb-10.0.14-r1

This should not affect the stable 5.5 series of each.
Comment 21 Michael Palimaka (kensington) gentoo-dev 2014-12-09 12:07:57 UTC
Affected mysql versions appear to be no longer in the tree, so I don't think there's anything left to do.