Summary: | media-sound/amarok-2.8.0-r1 fails linking of amarok_collection-mysqlecollection.so | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Achim Derigs <achim> |
Component: | [OLD] KDE | Assignee: | Jorge Manuel B. S. Vicetto <jmbsvicetto> |
Status: | VERIFIED FIXED | ||
Severity: | major | CC: | ao, bitlord0xff, grknight, kde, kredba, martijn.schmidt, phajdan.jr, renesanso, robcab666, rose |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | amarok.tar.bz2 |
Description
Achim Derigs
2014-04-25 15:58:37 UTC
Same problem here. same here. Seems to be caused by mysql upgrade. My report bug #508696 I originally made about a minute after this, is a duplicate and should be marked as such. Created attachment 375746 [details]
amarok.tar.bz2
Same here, since mysql update yesterday. Regards *** Bug 508696 has been marked as a duplicate of this bug. *** 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. *** Bug 508744 has been marked as a duplicate of this bug. *** 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. 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. This should be fixed in media-sound/amarok-2.8.0-r3 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. 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)
(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.... (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. ..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 *** Bug 524880 has been marked as a duplicate of this bug. *** (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? :) *** Bug 525904 has been marked as a duplicate of this bug. *** 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. Affected mysql versions appear to be no longer in the tree, so I don't think there's anything left to do. |