By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.

Bug 1917

Summary: Build issue: Cannot compile amarok with cmake
Product: TDE Reporter: Darrell <darrella>
Component: non-core programsAssignee: Timothy Pearson <kb9vqf>
Status: RESOLVED FIXED    
Severity: major CC: bugwatch, darrella, michele.calgaro, slavek.banko
Priority: P5    
Version: R14.0.x [Trinity]   
Hardware: Other   
OS: Linux   
Compiler Version: TDE Version String:
Application Version: Application Name:
Bug Depends on:    
Bug Blocks: 3060    

Description Darrell 2014-02-08 13:13:42 CST
I am unable to build amarok using cmake. Although the cmake conversion is incomplete as noted in bug 818, the package should still compile. I am able to build with autotools.

I have the following packages installed:

libmp4v2-1.9.1
libid3tag-0.15.1b
taglib-1.7.2
taglib-extras

I am building with -DBUILD_ALL=OFF.

The build failure:

cannot find -ltagmp4-static

That linking error is from amarok/amarok/src/metadata/CMakeLists.txt.

When I delete that linking directive, I then experience the following build failures:

CMakeFiles/amarok-shared.dir/metabundle.cpp.o: In function `MetaBundle::setExtendedTag(TagLib::File*, int, TQString)':
/dev/shm/amarok/amarok/src/metabundle.cpp:1369: undefined reference to `TagLib::MP4::Tag::setComposer(TagLib::String const&)'
/dev/shm/amarok/amarok/src/metabundle.cpp:1370: undefined reference to `TagLib::MP4::Tag::setDisk(unsigned int)'
/dev/shm/amarok/amarok/src/metabundle.cpp:1371: undefined reference to `TagLib::MP4::Tag::setBpm(unsigned int)'
CMakeFiles/amarok-shared.dir/metabundle.cpp.o: In function `MetaBundle::embeddedImages(TQValueList<MetaBundle::EmbeddedImage>&) const':
/dev/shm/amarok/amarok/src/metabundle.cpp:486: undefined reference to `TagLib::MP4::Tag::cover() const'
/dev/shm/amarok/amarok/src/metabundle.cpp:487: undefined reference to `TagLib::MP4::Tag::cover() const'
CMakeFiles/amarok-shared.dir/metabundle.cpp.o: In function `MetaBundle::readTags(TagLib::AudioProperties::ReadStyle, TQValueList<MetaBundle::EmbeddedImage>*)':
/dev/shm/amarok/amarok/src/metabundle.cpp:604: undefined reference to `TagLib::MP4::Tag::composer() const'
/dev/shm/amarok/amarok/src/metabundle.cpp:605: undefined reference to `TagLib::MP4::Tag::bpm() const'
/dev/shm/amarok/amarok/src/metabundle.cpp:606: undefined reference to `TagLib::MP4::Tag::disk() const'
/dev/shm/amarok/amarok/src/metabundle.cpp:608: undefined reference to `TagLib::MP4::Tag::cover() const'
/dev/shm/amarok/amarok/src/metabundle.cpp:609: undefined reference to `TagLib::MP4::Tag::cover() const'
metadata/libmetadata.a(tplugins.cpp.o): In function `MP4FileTypeResolver':
/dev/shm/amarok/amarok/src/metadata/m4a/taglib_mp4filetyperesolver.h:29: undefined reference to `vtable for MP4FileTypeResolver'
Comment 1 Michele Calgaro 2014-02-09 06:41:49 CST
IMO this should not be a blocker, Amarok can still be built using autotools, so nothing is really broken to the bones.

Lowering to "major". Feel free to change the importance again if you have better reasons than mine for doing so.
Comment 2 Darrell 2014-02-15 21:49:39 CST
>so nothing is really broken to the bones.
I don't know that nothing is broken: refer to bug 1916. Building with cmake might have provided clues.
Comment 3 Darrell 2014-12-18 19:23:23 CST
The official R14 amarok source tarball does not include the autotools files, thereby forcing users to compile with cmake. I discovered this when building packages from the official tarballs.

If the tarball is not going to be updated to include the autotools files, then this bug report now seems to be a blocker.

The 'cannot find -ltagmp4-static' failure should be addressed to support compiling with cmake.

A temporary work-around is to create a patch that includes the autotools files.
Comment 4 Darrell 2014-12-18 20:02:22 CST
Never mind my comment about the tarball forcing users to build with cmake. I adjusted my build scripts to allow building with automake. Looks like the tarball contain the automake files but my build scripts were not working correctly with tarballs as opposed to git, which is all I have used the past two years.

Additional notes. I filed this report using Slackware 14.0. I have been using Slackware 14.1 since June. In 14.1 the versions of the previously mentioned packages:

libmp4v2-2.0.0
libid3tag-0.15.1b
taglib-1.8
taglib-extras-1.0.1

The original build failure bug remains.
Comment 5 Slávek Banko 2020-03-05 11:55:14 CST
CMake conversion has now been completed thanks to Greg's excellent work. See http://mirror.git.trinitydesktop.org/cgit/amarok/commit/?id=16ec57d25f