aboutsummaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorfluffy <fluffy@FreeBSD.org>2010-05-11 22:52:58 +0800
committerfluffy <fluffy@FreeBSD.org>2010-05-11 22:52:58 +0800
commitb2cc3b15d05f2f9fba3f4ce66d87f6a39f4946de (patch)
treeb16780f0b44da194df144c793b36847883769ad9 /audio
parentf344eb28345f88e195ce65dd35afdb55be71361a (diff)
downloadfreebsd-ports-gnome-b2cc3b15d05f2f9fba3f4ce66d87f6a39f4946de.tar.gz
freebsd-ports-gnome-b2cc3b15d05f2f9fba3f4ce66d87f6a39f4946de.tar.zst
freebsd-ports-gnome-b2cc3b15d05f2f9fba3f4ce66d87f6a39f4946de.zip
- Update Amarok to 2.3.0 release
Approved by: maintainer (implicit) With hat on: kde@
Diffstat (limited to 'audio')
-rw-r--r--audio/amarok-kde4/Makefile15
-rw-r--r--audio/amarok-kde4/distinfo6
-rw-r--r--audio/amarok-kde4/files/patch-src__EngineController.cpp19
-rw-r--r--audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.cpp48
-rw-r--r--audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.h13
-rw-r--r--audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp375
-rw-r--r--audio/amarok-kde4/pkg-plist37
7 files changed, 117 insertions, 396 deletions
diff --git a/audio/amarok-kde4/Makefile b/audio/amarok-kde4/Makefile
index 5461e67191b0..07fc65ee98dd 100644
--- a/audio/amarok-kde4/Makefile
+++ b/audio/amarok-kde4/Makefile
@@ -5,8 +5,7 @@
# $FreeBSD$
PORTNAME= amarok
-PORTVERSION= 2.2.2
-PORTREVISION= 3
+PORTVERSION= 2.3.0
CATEGORIES= audio kde
MASTER_SITES= ${MASTER_SITE_KDE}
MASTER_SITE_SUBDIR= stable/${PORTNAME}/${PORTVERSION}/src
@@ -42,11 +41,7 @@ OPTIONS= GPOD "iPod support" on \
MTP "MTP device support" on \
LOUDMOUTH "Loudmouth support" on
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} < 700000
-CMAKE_USE_PTHREAD= yes
-.endif
+.include <bsd.port.options.mk>
.if defined(WITH_GPOD)
LIB_DEPENDS+= gpod.5:${PORTSDIR}/audio/libgpod
@@ -72,6 +67,10 @@ CMAKE_ARGS+= -DWITH_Loudmouth:BOOL=Off
PLIST_SUB+= LOUDMOUTH="@comment "
.endif
+.if ${OSVERSION} < 700000
+CMAKE_USE_PTHREAD= yes
+.endif
+
post-extract:
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' \
${WRKSRC}/cmake/modules/FindMySQLAmarok.cmake
@@ -80,4 +79,4 @@ post-extract:
${WRKSRC}/cmake/modules/FindLoudmouth.cmake \
${WRKSRC}/cmake/modules/FindGdk.cmake
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/audio/amarok-kde4/distinfo b/audio/amarok-kde4/distinfo
index 8ec71fbaacfc..91a40b4be32c 100644
--- a/audio/amarok-kde4/distinfo
+++ b/audio/amarok-kde4/distinfo
@@ -1,3 +1,3 @@
-MD5 (amarok-2.2.2.tar.bz2) = c2c4ae2f2ff7154a064b554cdee557a9
-SHA256 (amarok-2.2.2.tar.bz2) = 768d308572897a3100f0d87999f1bb1c68b2e2fa3b0961fd0b918bcfd33ae64d
-SIZE (amarok-2.2.2.tar.bz2) = 8788107
+MD5 (amarok-2.3.0.tar.bz2) = fc672a2848e36b3b44eb81dd1466e4f4
+SHA256 (amarok-2.3.0.tar.bz2) = fc7630f5b847449829e4ff514b7bd7fd6fa6128102d54e433e34cd283c364ca8
+SIZE (amarok-2.3.0.tar.bz2) = 9391281
diff --git a/audio/amarok-kde4/files/patch-src__EngineController.cpp b/audio/amarok-kde4/files/patch-src__EngineController.cpp
new file mode 100644
index 000000000000..a1e023bac072
--- /dev/null
+++ b/audio/amarok-kde4/files/patch-src__EngineController.cpp
@@ -0,0 +1,19 @@
+diff --git a/src/EngineController.cpp b/src/EngineController.cpp
+index 521e570..3d57dad 100644
+--- ./src/EngineController.cpp
++++ ./src/EngineController.cpp
+@@ -172,10 +172,14 @@
+ connect( m_controller, SIGNAL( titleChanged( int ) ), SLOT( slotTitleChanged( int ) ) );
+
+
++ // Gapless Playback is temporarily disabled. Reason: Trying to find a bug in this code that makes
++ // the EngineController stop after each track, with all Phonon backends except the xine backend.
++#if 0
+ if( AmarokConfig::trackDelayLength() > -1 )
+ m_media->setTransitionTime( AmarokConfig::trackDelayLength() ); // Also Handles gapless.
+ else if( AmarokConfig::crossfadeLength() > 0 ) // TODO: Handle the possible options on when to crossfade.. the values are not documented anywhere however
+ m_media->setTransitionTime( -AmarokConfig::crossfadeLength() );
++#endif
+ }
+
+
diff --git a/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.cpp b/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.cpp
new file mode 100644
index 000000000000..8bf95687b0a6
--- /dev/null
+++ b/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.cpp
@@ -0,0 +1,48 @@
+diff --git a/src/context/applets/info/InfoApplet.cpp b/src/context/applets/info/InfoApplet.cpp
+index 166da4c..e415e98 100644
+--- ./src/context/applets/info/InfoApplet.cpp
++++ ./src/context/applets/info/InfoApplet.cpp
+@@ -40,18 +40,30 @@ QString InfoApplet::s_defaultHtml = "<html>"
+
+ InfoApplet::InfoApplet( QObject* parent, const QVariantList& args )
+ : Context::Applet( parent, args )
++ , m_webView( 0 )
+ , m_initialized( false )
+ , m_currentPlaylist( 0 )
++
+ {
+ setHasConfigurationInterface( false );
+ setBackgroundHints( Plasma::Applet::NoBackground );
++}
++
++InfoApplet::~InfoApplet()
++{
++ delete m_webView;
++}
++
++
++void InfoApplet::init()
++{
+
+ dataEngine( "amarok-info" )->connectSource( "info", this );
+
+ m_webView = new AmarokWebView( this );
+
+ resize( 500, -1 );
+-
++
+ QPalette p = m_webView->palette();
+ p.setColor( QPalette::Dark, QColor( 255, 255, 255, 0) );
+ p.setColor( QPalette::Window, QColor( 255, 255, 255, 0) );
+@@ -62,11 +74,6 @@ InfoApplet::InfoApplet( QObject* parent, const QVariantList& args )
+ constraintsEvent();
+ }
+
+-InfoApplet::~InfoApplet()
+-{
+- delete m_webView;
+-}
+-
+ void InfoApplet::constraintsEvent( Plasma::Constraints constraints )
+ {
+ Q_UNUSED( constraints )
diff --git a/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.h b/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.h
new file mode 100644
index 000000000000..5ad4ce71e324
--- /dev/null
+++ b/audio/amarok-kde4/files/patch-src__context__applets__info__InfoApplet.h
@@ -0,0 +1,13 @@
+diff --git a/src/context/applets/info/InfoApplet.h b/src/context/applets/info/InfoApplet.h
+index 4be28fc..775ea7c 100644
+--- ./src/context/applets/info/InfoApplet.h
++++ ./src/context/applets/info/InfoApplet.h
+@@ -48,6 +48,8 @@ public:
+ InfoApplet( QObject* parent, const QVariantList& args );
+ virtual ~InfoApplet();
+
++ void init();
++
+ void paintInterface( QPainter *painter, const QStyleOptionGraphicsItem *option, const QRect &contentsRect );
+ void constraintsEvent( Plasma::Constraints constraints = Plasma::AllConstraints );
+
diff --git a/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp b/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp
deleted file mode 100644
index c9e59c9055c5..000000000000
--- a/audio/amarok-kde4/files/patch-src_collection_sqlcollection_ScanResultProcessor.cpp
+++ /dev/null
@@ -1,375 +0,0 @@
---- src/collection/sqlcollection/ScanResultProcessor.cpp.orig
-+++ src/collection/sqlcollection/ScanResultProcessor.cpp
-@@ -42,19 +42,59 @@ ScanResultProcessor::ScanResultProcessor( SqlCollection *collection )
- ScanResultProcessor::~ScanResultProcessor()
- {
- //everything has a URL, so enough to just delete from here
-+ QSet<QStringList*> currSet; //prevent double deletes
- foreach( QStringList *list, m_urlsHashByUid )
-- delete list;
-+ {
-+ if( list )
-+ {
-+ if( !currSet.contains( list ) )
-+ {
-+ delete list;
-+ currSet.insert( list );
-+ }
-+ }
-+ else
-+ debug() << "GAAH! Tried to double-delete a value in m_urlsHashByUid";
-+ }
- foreach( QLinkedList<QStringList*> *list, m_albumsHashByName )
- {
-- foreach( QStringList *slist, *list )
-- delete slist;
-- delete list;
-+ if( list )
-+ {
-+ foreach( QStringList *slist, *list )
-+ {
-+ if( slist )
-+ {
-+ if( !currSet.contains( slist ) )
-+ {
-+ delete slist;
-+ currSet.insert( slist );
-+ }
-+ else
-+ debug() << "GAAH! Tried to double-delete a value in m_albumsHashByName";
-+ }
-+ }
-+ delete list;
-+ }
- }
- foreach( QLinkedList<QStringList*> *list, m_tracksHashByAlbum )
- {
-- foreach( QStringList *slist, *list )
-- delete slist;
-- delete list;
-+ if( list )
-+ {
-+ foreach( QStringList *slist, *list )
-+ {
-+ if( slist )
-+ {
-+ if( !currSet.contains( slist ) )
-+ {
-+ delete slist;
-+ currSet.insert( slist );
-+ }
-+ else
-+ debug() << "GAAH! Tried to double-delete a value in m_tracksHashByAlbum";
-+ }
-+ }
-+ delete list;
-+ }
- }
- }
-
-@@ -67,11 +107,11 @@ ScanResultProcessor::setScanType( ScanType type )
- void
- ScanResultProcessor::addDirectory( const QString &dir, uint mtime )
- {
-- DEBUG_BLOCK
-- debug() << "SRP::addDirectory on " << dir << " with mtime " << mtime;
-+ //DEBUG_BLOCK
-+ //debug() << "SRP::addDirectory on " << dir << " with mtime " << mtime;
- if( dir.isEmpty() )
- {
-- debug() << "got directory with no path from the scanner, not adding";
-+ //debug() << "got directory with no path from the scanner, not adding";
- return;
- }
- setupDatabase();
-@@ -254,7 +294,7 @@ ScanResultProcessor::rollback()
- void
- ScanResultProcessor::processDirectory( const QList<QVariantMap > &data )
- {
--// DEBUG_BLOCK
-+ //DEBUG_BLOCK
- setupDatabase();
- //using the following heuristics:
- //if more than one album is in the dir, use the artist of each track as albumartist
-@@ -274,24 +314,54 @@ ScanResultProcessor::processDirectory( const QList<QVariantMap > &data )
- if( row.value( Field::ALBUM ).toString() != album )
- multipleAlbums = true;
- }
-+
- if( multipleAlbums || album.isEmpty() || artists.size() == 1 )
- {
- foreach( const QVariantMap &row, data )
- {
-- int artist = genericId( &m_artists, row.value( Field::ARTIST ).toString(), &m_nextArtistNum );
-- addTrack( row, artist );
-+ QString uid = row.value( Field::UNIQUEID ).toString();
-+ if( m_uidsSeenThisScan.contains( uid ) )
-+ {
-+ QString originalLocation = ( ( m_urlsHashByUid.contains( uid ) &&
-+ m_urlsHashByUid[uid] != 0 ) ?
-+ MountPointManager::instance()->getAbsolutePath( m_urlsHashByUid[uid]->at( 1 ).toInt(), m_urlsHashByUid[uid]->at( 2 ) ) : "(unknown)" );
-+ debug() << "Skipping file with uniqueid " << uid << " as it was already seen this scan," <<
-+ "file is at " << row.value( Field::URL ).toString() << ", original file is at " << originalLocation;
-+ }
-+ else
-+ {
-+ int artist = genericId( &m_artists, row.value( Field::ARTIST ).toString(), &m_nextArtistNum );
-+ //debug() << "artist found = " << artist;
-+ addTrack( row, artist );
-+ m_uidsSeenThisScan.insert( uid );
-+ }
- }
- }
- else
- {
- QString albumArtist = findAlbumArtist( artists, data.count() );
-+ //debug() << "albumArtist found = " << albumArtist;
- //an empty string means that no albumartist was found
- int artist = albumArtist.isEmpty() ? 0 : genericId( &m_artists, albumArtist, &m_nextArtistNum );
-+ //debug() << "artist found = " << artist;
-
- //debug() << "albumartist " << albumArtist << "for artists" << artists;
- foreach( const QVariantMap &row, data )
- {
-- addTrack( row, artist );
-+ QString uid = row.value( Field::UNIQUEID ).toString();
-+ if( m_uidsSeenThisScan.contains( uid ) )
-+ {
-+ QString originalLocation = ( ( m_urlsHashByUid.contains( uid ) &&
-+ m_urlsHashByUid[uid] != 0 ) ?
-+ MountPointManager::instance()->getAbsolutePath( m_urlsHashByUid[uid]->at( 1 ).toInt(), m_urlsHashByUid[uid]->at( 2 ) ) : "(unknown)" );
-+ debug() << "Skipping file with uniqueid " << uid << " as it was already seen this scan," <<
-+ "file is at " << row.value( Field::URL ).toString() << ", original file is at " << originalLocation;
-+ }
-+ else
-+ {
-+ addTrack( row, artist );
-+ m_uidsSeenThisScan.insert( uid );
-+ }
- }
- }
- }
-@@ -299,6 +369,7 @@ ScanResultProcessor::processDirectory( const QList<QVariantMap > &data )
- QString
- ScanResultProcessor::findAlbumArtist( const QSet<QString> &artists, int trackCount ) const
- {
-+ //DEBUG_BLOCK
- QMap<QString, int> artistCount;
- bool featuring;
- QStringList trackArtists;
-@@ -371,6 +442,7 @@ void
- ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId )
- {
- //DEBUG_BLOCK
-+ //debug() << "albumArtistId = " << albumArtistId;
- //amarok 1 stored all tracks of a compilation in different directories.
- //when using its "Organize Collection" feature
- //try to detect these cases
-@@ -419,7 +491,15 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId )
-
- //urlId will take care of the urls table part of AFT
- int url = urlId( path, uid );
--
-+/*
-+ foreach( QString key, m_urlsHashByUid.keys() )
-+ debug() << "Key: " << key << ", list: " << *m_urlsHashByUid[key];
-+ foreach( int key, m_urlsHashById.keys() )
-+ debug() << "Key: " << key << ", list: " << *m_urlsHashById[key];
-+ typedef QPair<int, QString> blahType; //QFOREACH is stupid when it comes to QPairs
-+ foreach( blahType key, m_urlsHashByLocation.keys() )
-+ debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key];
-+*/
- QStringList *trackList = new QStringList();
- int id = m_nextTrackNum;
- //debug() << "Appending new track number with tracknum: " << id;
-@@ -470,7 +550,7 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId )
- //insert into hashes
- if( m_tracksHashByUrl.contains( url ) && m_tracksHashByUrl[url] != 0 )
- {
-- //debug() << "m_tracksHashByUrl contains the url!";
-+ //debug() << "m_tracksHashByUrl already contains url " << url;
- //need to replace, not overwrite/add a new one
- QStringList *oldValues = m_tracksHashByUrl[url];
- QString oldId = oldValues->at( 0 );
-@@ -490,8 +570,24 @@ ScanResultProcessor::addTrack( const QVariantMap &trackData, int albumArtistId )
- m_tracksHashById.insert( id, trackList );
- }
-
-+ //debug() << "album = " << album;
-+
- if( m_tracksHashByAlbum.contains( album ) && m_tracksHashByAlbum[album] != 0 )
-- m_tracksHashByAlbum[album]->append( trackList );
-+ {
-+ //contains isn't the fastest on linked lists, but in reality this is on the order of maybe
-+ //ten quick pointer comparisons per track on average...probably lower
-+ //debug() << "trackList is " << trackList;
-+ if( !m_tracksHashByAlbum[album]->contains( trackList ) )
-+ {
-+ //debug() << "appending trackList to m_tracksHashByAlbum";
-+ m_tracksHashByAlbum[album]->append( trackList );
-+ }
-+ else
-+ {
-+ //debug() << "not appending trackList to m_tracksHashByAlbum";
-+ }
-+
-+ }
- else
- {
- QLinkedList<QStringList*> *list = new QLinkedList<QStringList*>();
-@@ -595,6 +691,8 @@ ScanResultProcessor::albumId( const QString &album, int albumArtistId )
- QLinkedList<QStringList*> *list = m_albumsHashByName[album];
- foreach( QStringList *slist, *list )
- {
-+ //debug() << "albumArtistId = " << albumArtistId;
-+ //debug() << "Checking list: " << *slist;
- if( slist->at( 2 ).isEmpty() && albumArtistId == 0 )
- {
- //debug() << "artist is empty and albumArtistId = 0, returning " << slist->at( 0 );
-@@ -631,7 +729,10 @@ ScanResultProcessor::albumInsert( const QString &album, int albumArtistId )
- albumList->append( QString() );
- m_albumsHashById[returnedNum] = albumList;
- if( m_albumsHashByName.contains( album ) && m_albumsHashByName[album] != 0 )
-- m_albumsHashByName[album]->append( albumList );
-+ {
-+ if( !m_albumsHashByName[album]->contains( albumList ) )
-+ m_albumsHashByName[album]->append( albumList );
-+ }
- else
- {
- QLinkedList<QStringList*> *list = new QLinkedList<QStringList*>();
-@@ -645,7 +746,7 @@ ScanResultProcessor::albumInsert( const QString &album, int albumArtistId )
- int
- ScanResultProcessor::urlId( const QString &url, const QString &uid )
- {
-- /*
-+/*
- DEBUG_BLOCK
- foreach( QString key, m_urlsHashByUid.keys() )
- debug() << "Key: " << key << ", list: " << *m_urlsHashByUid[key];
-@@ -654,8 +755,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- typedef QPair<int, QString> blahType; //QFOREACH is stupid when it comes to QPairs
- foreach( blahType key, m_urlsHashByLocation.keys() )
- debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key];
-- */
--
-+*/
- QFileInfo fileInfo( url );
- const QString dir = fileInfo.absoluteDir().absolutePath();
- int dirId = directoryId( dir );
-@@ -665,6 +765,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- QPair<int, QString> locationPair( deviceId, rpath );
- //debug() << "in urlId with url = " << url << " and uid = " << uid;
- //debug() << "checking locationPair " << locationPair;
-+/*
- if( m_urlsHashByLocation.contains( locationPair ) )
- {
- QStringList values;
-@@ -674,6 +775,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- values << "zero";
- //debug() << "m_urlsHashByLocation contains it! It is " << values;
- }
-+*/
- QStringList currUrlIdValues;
- if( m_urlsHashByUid.contains( uid ) && m_urlsHashByUid[uid] != 0 )
- currUrlIdValues = *m_urlsHashByUid[uid];
-@@ -717,6 +819,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- //debug() << "m_urlsHashByUid contains this UID, updating deviceId and path";
- QStringList *list = m_urlsHashByUid[uid];
- //debug() << "list from UID hash is " << list << " with values " << *list;
-+ QPair<int, QString> oldLocationPair( list->at( 1 ).toInt(), list->at( 2 ) );
- list->replace( 1, QString::number( deviceId ) );
- list->replace( 2, rpath );
- list->replace( 3, QString::number( dirId ) );
-@@ -737,6 +840,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- delete oldList;
- }
- m_urlsHashByLocation[locationPair] = list;
-+ m_urlsHashByLocation.remove( oldLocationPair );
- }
- m_permanentTablesUrlUpdates.insert( uid, url );
- m_changedUrls.insert( uid, QPair<QString, QString>( MountPointManager::instance()->getAbsolutePath( currUrlIdValues[1].toInt(), currUrlIdValues[2] ), url ) );
-@@ -751,6 +855,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- {
- QStringList *list = m_urlsHashByLocation[locationPair];
- //debug() << "Replacing hash " << list->at( 4 ) << " with " << uid;
-+ QString oldId = list->at( 4 );
- list->replace( 4, uid );
- if( m_urlsHashByUid.contains( uid )
- && m_urlsHashByUid[uid] != 0
-@@ -762,6 +867,7 @@ ScanResultProcessor::urlId( const QString &url, const QString &uid )
- delete oldList;
- }
- m_urlsHashByUid[uid] = list;
-+ m_urlsHashByUid.remove( oldId );
- }
- m_permanentTablesUidUpdates.insert( url, uid );
- m_changedUids.insert( currUrlIdValues[4], uid );
-@@ -855,7 +961,8 @@ ScanResultProcessor::directoryId( const QString &dir )
- int
- ScanResultProcessor::checkExistingAlbums( const QString &album )
- {
--// DEBUG_BLOCK
-+ //DEBUG_BLOCK
-+ //debug() << "looking for album " << album;
- // "Unknown" albums shouldn't be handled as compilations
- if( album.isEmpty() )
- return 0;
-@@ -865,7 +972,10 @@ ScanResultProcessor::checkExistingAlbums( const QString &album )
- //it's probably a compilation.
- //this handles A1 compilations that were automatically organized by Amarok
- if( !m_albumsHashByName.contains( album ) || m_albumsHashByName[album] == 0 )
-+ {
-+ //debug() << "hashByName doesn't contain album, or it's zero";
- return 0;
-+ }
-
- QStringList trackIds;
- QLinkedList<QStringList*> *llist = m_albumsHashByName[album];
-@@ -915,8 +1025,10 @@ ScanResultProcessor::checkExistingAlbums( const QString &album )
- }
- }
-
-+ //debug() << "trackIds = " << trackIds;
- if( trackIds.isEmpty() )
- {
-+ //debug() << "trackIds empty, returning zero";
- return 0;
- }
- else
-@@ -933,6 +1045,7 @@ ScanResultProcessor::checkExistingAlbums( const QString &album )
- list->replace( 3, compilationString );
- }
- }
-+ //debug() << "returning " << compilationId;
- return compilationId;
- }
- }
-@@ -1167,6 +1280,17 @@ ScanResultProcessor::copyHashesToTempTables()
- foreach( blahType key, m_urlsHashByLocation.keys() )
- debug() << "Key: " << key << ", list: " << *m_urlsHashByLocation[key];
- debug() << "Next album num: " << m_nextAlbumNum;
-+
-+ foreach( int key, m_tracksHashById.keys() )
-+ debug() << "Key: " << key << ", list: " << *m_tracksHashById[key];
-+ foreach( int key, m_tracksHashByUrl.keys() )
-+ debug() << "Key: " << key << ", list: " << *m_tracksHashByUrl[key];
-+ foreach( int key, m_tracksHashByAlbum.keys() )
-+ {
-+ debug() << "Key: " << key;
-+ foreach( QStringList* item, *m_tracksHashByAlbum[key] )
-+ debug() << "list: " << item << " is " << *item;
-+ }
- */
-
- DEBUG_BLOCK
---- src/collection/sqlcollection/ScanResultProcessor.h.orig
-+++ src/collection/sqlcollection/ScanResultProcessor.h
-@@ -94,6 +94,7 @@ class ScanResultProcessor : public QObject
- QMap<QString, int> m_directories;
- QMap<QString, QList< QPair< QString, QString > > > m_imageMap;
-
-+ QSet<QString> m_uidsSeenThisScan;
- QHash<QString, uint> m_filesInDirs;
-
- TrackUrls m_changedUids; //not really track urls
diff --git a/audio/amarok-kde4/pkg-plist b/audio/amarok-kde4/pkg-plist
index 62cc74ec0027..bdd19bb51c67 100644
--- a/audio/amarok-kde4/pkg-plist
+++ b/audio/amarok-kde4/pkg-plist
@@ -37,6 +37,9 @@ lib/kde4/kcm_amarok_service_ampache.so
lib/kde4/kcm_amarok_service_lastfm.so
lib/kde4/kcm_amarok_service_magnatunestore.so
%%LOUDMOUTH%%lib/kde4/kcm_amarok_service_mp3tunes.so
+lib/libamarok-sqlcollection.so
+lib/libamarok-sqlcollection.so.1
+lib/libamarok-sqlcollection.so.1.0.0
lib/libamaroklib.so
lib/libamaroklib.so.1
lib/libamaroklib.so.1.0.0
@@ -490,11 +493,13 @@ share/kde4/services/amarok_service_magnatunestore_config.desktop
%%LOUDMOUTH%%share/kde4/services/amarok_service_mp3tunes.desktop
%%LOUDMOUTH%%share/kde4/services/amarok_service_mp3tunes_config.desktop
share/kde4/services/amarok_service_opmldirectory.desktop
+share/kde4/services/amarokitpc.protocol
share/kde4/services/amaroklastfm.protocol
share/kde4/servicetypes/amarok_codecinstall.desktop
share/kde4/servicetypes/amarok_context_applet.desktop
share/kde4/servicetypes/amarok_data_engine.desktop
share/kde4/servicetypes/amarok_plugin.desktop
+share/locale/af/LC_MESSAGES/amarok.mo
share/locale/bg/LC_MESSAGES/amarok.mo
share/locale/bg/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/bg/LC_MESSAGES/amarokcollectionscanner_qt.mo
@@ -503,6 +508,10 @@ share/locale/ca/LC_MESSAGES/amarok.mo
share/locale/ca/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/ca/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/ca/LC_MESSAGES/amarokpkg.mo
+share/locale/ca@valencia/LC_MESSAGES/amarok.mo
+share/locale/ca@valencia/LC_MESSAGES/amarok_scriptengine_qscript.mo
+share/locale/ca@valencia/LC_MESSAGES/amarokcollectionscanner_qt.mo
+share/locale/ca@valencia/LC_MESSAGES/amarokpkg.mo
share/locale/cs/LC_MESSAGES/amarok.mo
share/locale/cs/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/cs/LC_MESSAGES/amarokcollectionscanner_qt.mo
@@ -541,10 +550,6 @@ share/locale/it/LC_MESSAGES/amarok.mo
share/locale/it/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/it/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/it/LC_MESSAGES/amarokpkg.mo
-share/locale/km/LC_MESSAGES/amarok.mo
-share/locale/km/LC_MESSAGES/amarok_scriptengine_qscript.mo
-share/locale/km/LC_MESSAGES/amarokcollectionscanner_qt.mo
-share/locale/km/LC_MESSAGES/amarokpkg.mo
share/locale/lv/LC_MESSAGES/amarok.mo
share/locale/lv/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/lv/LC_MESSAGES/amarokcollectionscanner_qt.mo
@@ -576,10 +581,18 @@ share/locale/pt_BR/LC_MESSAGES/amarok.mo
share/locale/pt_BR/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/pt_BR/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/pt_BR/LC_MESSAGES/amarokpkg.mo
+share/locale/ro/LC_MESSAGES/amarok.mo
+share/locale/ro/LC_MESSAGES/amarok_scriptengine_qscript.mo
+share/locale/ro/LC_MESSAGES/amarokcollectionscanner_qt.mo
+share/locale/ro/LC_MESSAGES/amarokpkg.mo
share/locale/ru/LC_MESSAGES/amarok.mo
share/locale/ru/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/ru/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/ru/LC_MESSAGES/amarokpkg.mo
+share/locale/sk/LC_MESSAGES/amarok.mo
+share/locale/sk/LC_MESSAGES/amarok_scriptengine_qscript.mo
+share/locale/sk/LC_MESSAGES/amarokcollectionscanner_qt.mo
+share/locale/sk/LC_MESSAGES/amarokpkg.mo
share/locale/sl/LC_MESSAGES/amarok.mo
share/locale/sl/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/sl/LC_MESSAGES/amarokcollectionscanner_qt.mo
@@ -588,11 +601,17 @@ share/locale/sr/LC_MESSAGES/amarok.mo
share/locale/sr/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/sr/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/sr/LC_MESSAGES/amarokpkg.mo
+share/locale/sr@ijekavian/LC_MESSAGES/amarok.mo
+share/locale/sr@ijekavian/LC_MESSAGES/amarok_scriptengine_qscript.mo
+share/locale/sr@ijekavian/LC_MESSAGES/amarokcollectionscanner_qt.mo
+share/locale/sr@ijekavian/LC_MESSAGES/amarokpkg.mo
+share/locale/sr@ijekavianlatin/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/sr@latin/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/sv/LC_MESSAGES/amarok.mo
share/locale/sv/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/sv/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/sv/LC_MESSAGES/amarokpkg.mo
+share/locale/th/LC_MESSAGES/amarok.mo
share/locale/tr/LC_MESSAGES/amarok.mo
share/locale/tr/LC_MESSAGES/amarok_scriptengine_qscript.mo
share/locale/tr/LC_MESSAGES/amarokcollectionscanner_qt.mo
@@ -609,18 +628,16 @@ share/locale/zh_CN/LC_MESSAGES/amarokcollectionscanner_qt.mo
share/locale/zh_CN/LC_MESSAGES/amarokpkg.mo
@dirrmtry share/locale/x-test/LC_MESSAGES
@dirrmtry share/locale/x-test
-@dirrmtry share/locale/wa/LC_MESSAGES
-@dirrmtry share/locale/wa
@dirrmtry share/locale/sr@latin/LC_MESSAGES
@dirrmtry share/locale/sr@latin
+@dirrmtry share/locale/sr@ijekavian/LC_MESSAGES
+@dirrmtry share/locale/sr@ijekavian
@dirrmtry share/locale/nds/LC_MESSAGES
@dirrmtry share/locale/nds
@dirrmtry share/locale/ku/LC_MESSAGES
@dirrmtry share/locale/ku
-@dirrmtry share/locale/km/LC_MESSAGES
-@dirrmtry share/locale/km
-@dirrmtry share/locale/en_GB/LC_MESSAGES
-@dirrmtry share/locale/en_GB
+@dirrmtry share/locale/ca@valencia/LC_MESSAGES
+@dirrmtry share/locale/ca@valencia
@dirrmtry share/locale
@dirrmtry share/dbus-1/interfaces
@dirrmtry share/apps/desktoptheme/default/widgets