On Sunday 28 December 2008 00:35:56 Alain G. Fabry wrote:
During the installation of amarok, I get the following error, what
is going
wrong here.
gmake[5]: Entering directory
`/usr/ports/audio/amarok/work/amarok-1.4.10/amarok/src/mediadevice/
mtp'
/bin/sh /usr/local/bin/libtool --silent --tag=CXX --mode=compile
c++
-DHAVE_CONFIG_H -I. -I../../../.. -I../../../../amarok/src
-I../../../../amarok/src -I../../../../amarok/src/amarokcore
-I../../../../amarok/src/amarokcore -I../../../../amarok/src/engine
-I../../../../amarok/src/engine -I../../../../amarok/src/mediadevice
-I/usr/local/include/taglib -I/usr/local/include -I/usr/local/
include
-D_THREAD_SAFE -pthread -DQT_THREAD_SUPPORT -I/usr/local/include
-I/usr/local/include -I/usr/local/include -D_GETOPT_H -
D_THREAD_SAFE
-Wno-long-long -Wundef -Wall -W -Wpointer-arith -O2 -fno-strict-
aliasing
-pipe -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-
common
-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT
-DQT_NO_TRANSLATION -MT mtpmediadevice.lo -MD -MP -MF
.deps/mtpmediadevice.Tpo -c -o mtpmediadevice.lo mtpmediadevice.cpp
/usr/local/include/libmtp.h: In member function 'virtual MediaItem*
MtpMediaDevice::copyTrackToDevice(const MetaBundle&)':
/usr/local/include/libmtp.h:489: error: too many arguments to
function 'int
LIBMTP_Send_Track_From_File(LIBMTP_mtpdevice_t*, const char*,
LIBMTP_track_t*, int (*)(uint64_t, uint64_t, const void*), const
void*)'
mtpmediadevice.cpp:302: error: at this point in file
mtpmediadevice.cpp: In member function 'uint32_t
MtpMediaDevice::getDefaultParentId()': mtpmediadevice.cpp:383:
warning:
deprecated conversion from string constant to 'char*'
/usr/local/include/libmtp.h: In member function 'LIBMTP_album_t*
MtpMediaDevice::getOrCreateAlbum(QPtrList<MediaItem>*)':
/usr/local/include/libmtp.h:533: error: too many arguments to
function 'int
LIBMTP_Create_New_Album(LIBMTP_mtpdevice_t*, LIBMTP_album_t*)'
mtpmediadevice.cpp:532: error: at this point in file
/usr/local/include/libmtp.h: In member function 'uint32_t
MtpMediaDevice::createFolder(const char*, uint32_t)':
/usr/local/include/libmtp.h:508: error: too few arguments to
function
'uint32_t LIBMTP_Create_Folder(LIBMTP_mtpdevice_t*, char*, uint32_t,
uint32_t)' mtpmediadevice.cpp:611: error: at this point in file
/usr/local/include/libmtp.h: In member function 'void
MtpMediaDevice::playlistFromItem(MtpMediaItem*)':
/usr/local/include/libmtp.h:521: error: too many arguments to
function 'int
LIBMTP_Create_New_Playlist(LIBMTP_mtpdevice_t*, LIBMTP_playlist_t*)'
mtpmediadevice.cpp:916: error: at this point in file
gmake[5]: *** [mtpmediadevice.lo] Error 1
gmake[5]: Leaving directory
`/usr/ports/audio/amarok/work/amarok-1.4.10/amarok/src/mediadevice/
mtp'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory
`/usr/ports/audio/amarok/work/amarok-1.4.10/amarok/src/mediadevice'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory
`/usr/ports/audio/amarok/work/amarok-1.4.10/amarok/src' gmake[2]:
***
[all-recursive] Error 1
gmake[2]: Leaving directory
`/usr/ports/audio/amarok/work/amarok-1.4.10/amarok' gmake[1]: ***
[all-recursive] Error 1
gmake[1]: Leaving directory `/usr/ports/audio/amarok/work/
amarok-1.4.10'
gmake: *** [all] Error 2
*** Error code 2
This is a result of libmtp update. Either don't use libmtp,
downgrade it to
previous version 0.2.6 or add the patch below my sig
as /usr/ports/audio/amarok/files/patch-
amarok_src_mediadevice_mtp_mtpmediadevice.cpp
--
Mel
--- amarok/src/mediadevice/mtp/mtpmediadevice.cpp.orig 2008-08-13
13:21:51.000000000 -0800
+++ amarok/src/mediadevice/mtp/mtpmediadevice.cpp 2008-12-28
08:47:14.000000000 -0900
@@ -296,9 +296,10 @@
m_critical_mutex.lock();
debug() << "Sending track... " << bundle.url().path().utf8() <<
endl;
+ trackmeta->parent_id = parent_id;
int ret = LIBMTP_Send_Track_From_File(
m_device, bundle.url().path().utf8(), trackmeta,
- progressCallback, this, parent_id
+ progressCallback, this
);
m_critical_mutex.unlock();
@@ -529,7 +530,8 @@
for( MtpMediaItem *it = dynamic_cast<MtpMediaItem*>(items-
>first());
it; it = dynamic_cast<MtpMediaItem*>(items->next()) )
album_object->tracks[i++] = it->track()->id();
album_object->no_tracks = items->count();
- ret = LIBMTP_Create_New_Album( m_device, album_object, 0 );
+ album_object->parent_id = 0;
+ ret = LIBMTP_Create_New_Album( m_device, album_object);
if( ret != 0 )
{
debug() << "creating album failed : " << ret << endl;
@@ -577,7 +579,7 @@
{
if( create )
{
- check_folder = createFolder( (*it).utf8() ,
parent_id );
+ check_folder = createFolder( (*it).utf8() ,
parent_id);
if( check_folder == 0 )
{
m_critical_mutex.unlock();
@@ -608,7 +610,9 @@
{
debug() << "Creating new folder '" << name << "' as a child of
"<<
parent_id << endl;
char *name_copy = qstrdup( name );
- uint32_t new_folder_id = LIBMTP_Create_Folder( m_device,
name_copy,
parent_id );
+ // XXX: storage_id not used anywhere, so pass in 0, but upstream
+ // should revisit this.
+ uint32_t new_folder_id = LIBMTP_Create_Folder( m_device,
name_copy,
parent_id, 0 );
delete(name_copy);
debug() << "New folder ID: " << new_folder_id << endl;
if( new_folder_id == 0 )
@@ -913,7 +917,8 @@
if( item->playlist()->id() == 0 )
{
debug() << "creating new playlist : " << metadata->name <<
endl;
- int ret = LIBMTP_Create_New_Playlist( m_device, metadata,
0 );
+ metadata->parent_id = 0;
+ int ret = LIBMTP_Create_New_Playlist( m_device, metadata);
if( ret == 0 )
{
item->playlist()->setId( metadata->playlist_id );