All,
The latest amarok failure I experienced was due to tunepimp (an amarok dep) failing to be available any longer from Arch. Looking further at the musicbrainz.org site, tunepimp is deprecated and new development should not occur with the library due to the RDF database lookup no longer being supported.
Further information is here: http://musicbrainz.org/doc/History:libtunepimp/Download
Attempting to build tunepimp results in failure on gcc 4.7.1:
g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include/tunepimp-0.5 -I../../libltdl -Wall -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -MT mp4.lo -MD -MP -MF .deps/mp4.Tpo -c mp4.cpp -fPIC -DPIC -o .libs/mp4.o mp4.cpp:53:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] <snip> mp4.cpp: In function 'int mp4ReadMetadata(metadata_t*, const char*, int, const char*)': mp4.cpp:124:41: error: 'MP4GetMetadataName' was not declared in this scope <snip many others>
Apparently tunepimp has been replaced with one of the following:
http://musicbrainz.org/doc/Picard_Tagger http://musicbrainz.org/doc/Classic_Tagger http://musicbrainz.org/doc/CD_Lookup_Tool
I know nada about figuring out which one of the new musicbraiz lookups would be the one that amarok will need. What say the experts on how to fix amarok?
On 06/25/2012 04:06 PM, David C. Rankin wrote:
Apparently tunepimp has been replaced with one of the following:
http://musicbrainz.org/doc/Picard_Tagger http://musicbrainz.org/doc/Classic_Tagger http://musicbrainz.org/doc/CD_Lookup_Tool
I know nada about figuring out which one of the new musicbraiz lookups would be the one that amarok will need. What say the experts on how to fix amarok?
All,
Amarok builds fine without the tunepimp dependency installed, but it will lack the lookup functionality provided by that service. Whatever the reason for it going away is, it will no longer build against the current libmp4v2. So code gurus, you might want to take a look at the amarok code and see if we can figure out what impact that has.
The musicbrainz site provides a doxygen list of what the class members are:
http://users.musicbrainz.org/~luks/docs/libtunepimp/struct__metadata__t-memb...
This is the complete list of members for _metadata_t, including all inherited members.
album _metadata_t albumArtist _metadata_t albumArtistId _metadata_t albumArtistSortName _metadata_t albumId _metadata_t albumStatus _metadata_t albumType _metadata_t artist _metadata_t artistId _metadata_t duration _metadata_t fileFormat _metadata_t filePUID _metadata_t nonAlbum _metadata_t numPUIDIds _metadata_t releaseCountry _metadata_t releaseDay _metadata_t releaseMonth _metadata_t releaseYear _metadata_t sortName _metadata_t totalInSet _metadata_t track _metadata_t trackId _metadata_t trackNum _metadata_t variousArtist _metadata_t
The tunepimp class information itself is at http://users.musicbrainz.org/~luks/docs/libtunepimp/struct__metadata__t.html
Without knowing more, this looks like it might cripple amarok's ability to look up all the song, artist info online. My guess is that the CD_Lookup_Tool probably provides the replacement. It may already be implemented, but this is the first time I've run into the issue and Amarok was working with the old tunepimp dependency up until this round of builds.
On 06/25/2012 05:01 PM, David C. Rankin wrote:
Without knowing more, this looks like it might cripple amarok's ability to look up all the song, artist info online. My guess is that the CD_Lookup_Tool probably provides the replacement. It may already be implemented, but this is the first time I've run into the issue and Amarok was working with the old tunepimp dependency up until this round of builds.
grepping the git tree, it looks like the following is where the impact will be in the current code:
ktrm.cpp:#include <tunepimp-0.5/tp_c.h> ktrm.cpp:#include <tunepimp/tp_c.h> ktrm.cpp: static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId, TPFileStatus status); ktrm.cpp: static void TRMNotifyCallback(tunepimp_t pimp, void *data, TPCallbackEnum type, int fileId); ktrm.cpp: const tunepimp_t &tunePimp() const ktrm.cpp: TQString tunepimpHost = TQString(server); ktrm.cpp: TQString tunepimpHostWithPort = (tunepimpHost + ":%1").arg(port); ktrm.cpp: if(normalizedHost == tunepimpHost || ktrm.cpp: tunepimpHost.endsWith('.' + normalizedHost)) { ktrm.cpp: if(normalizedHost == tunepimpHostWithPort || ktrm.cpp: tunepimpHostWithPort.endsWith('.' + normalizedHost)) { ktrm.cpp: tunepimp_t m_pimp; ktrm.cpp:static void TRMNotifyCallback(tunepimp_t /*pimp*/, void */*data*/, TPCallbackEnum type, int fileId, TPFileStatus status) ktrm.cpp:static void TRMNotifyCallback(tunepimp_t pimp, void */*data*/, TPCallbackEnum type, int fileId) ktrm.h: * An abstraction for libtunepimp's TRM based lookup and file recognition.