summaryrefslogtreecommitdiffstats
path: root/source/kde/patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/kde/patch')
-rw-r--r--source/kde/patch/amarok.patch3
-rw-r--r--source/kde/patch/amarok/amarok-liblastfm1.patch704
-rw-r--r--source/kde/patch/calligra.patch3
-rw-r--r--source/kde/patch/calligra/calligra.words.fix_overflow.diff16
-rw-r--r--source/kde/patch/kde-workspace.patch3
-rw-r--r--source/kde/patch/kde-workspace/kde-workspace.batteryapplet.diff27
-rw-r--r--source/kde/patch/kde-workspace/kde-workspace.shadow.changeset_r7777194da6154375fc8103b8c4e29e385cd7ae2e.diff92
-rw-r--r--source/kde/patch/kdelibs.patch8
-rw-r--r--source/kde/patch/kdelibs/coding-style-fixes.patch62
-rw-r--r--source/kde/patch/kdelibs/return-application-icons-properly.patch56
-rw-r--r--source/kde/patch/kdelibs/return-not-break.-copy-paste-error.patch31
-rw-r--r--source/kde/patch/kdepim.patch3
-rw-r--r--source/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch124
-rw-r--r--source/kde/patch/korundum.patch4
-rw-r--r--source/kde/patch/korundum/korundum_ruby19.patch31
15 files changed, 263 insertions, 904 deletions
diff --git a/source/kde/patch/amarok.patch b/source/kde/patch/amarok.patch
deleted file mode 100644
index 35d438318..000000000
--- a/source/kde/patch/amarok.patch
+++ /dev/null
@@ -1,3 +0,0 @@
-# Build against liblastfm 1.0.1.
-cat $CWD/patch/amarok/amarok-liblastfm1.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
-
diff --git a/source/kde/patch/amarok/amarok-liblastfm1.patch b/source/kde/patch/amarok/amarok-liblastfm1.patch
deleted file mode 100644
index 434993121..000000000
--- a/source/kde/patch/amarok/amarok-liblastfm1.patch
+++ /dev/null
@@ -1,704 +0,0 @@
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/CMakeLists.txt amarok-2.5.96/CMakeLists.txt
---- amarok-2.5.96.orig/CMakeLists.txt 2012-07-31 12:17:20.000000000 +0200
-+++ amarok-2.5.96/CMakeLists.txt 2012-08-02 16:34:08.465503197 +0200
-@@ -129,7 +129,7 @@
- # macro_log_feature( STRIGI_FOUND "strigi" "Index metadata of files" "http://strigi.sourceforge.net" FALSE "" "" )
-
- macro_optional_find_package(LibLastFm)
-- macro_log_feature( LIBLASTFM_FOUND "liblastfm" "Enable Last.Fm service, including scrobbling, song submissions, and suggested song dynamic playlists" "http://cdn.last.fm/src/liblastfm-0.3.0.tar.bz2" FALSE "" "version 0.3.x (versions 1.0 or higher are incompatible)" )
-+ macro_log_feature( LIBLASTFM_FOUND "liblastfm" "Enable Last.Fm service, including scrobbling, song submissions, and suggested song dynamic playlists" "http://cdn.last.fm/src/liblastfm-1.0.0.tar.gz" FALSE "1.0.0" "" )
- macro_bool_to_01( LIBLASTFM_FOUND HAVE_LIBLASTFM )
-
- macro_optional_find_package( FFmpeg )
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/cmake/modules/FindLibLastFm.cmake amarok-2.5.96/cmake/modules/FindLibLastFm.cmake
---- amarok-2.5.96.orig/cmake/modules/FindLibLastFm.cmake 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/cmake/modules/FindLibLastFm.cmake 2012-08-02 16:32:36.418653940 +0200
-@@ -6,7 +6,7 @@
- # LIBLASTFM_FOUND, whether liblastfm was found
-
-
--find_path(LIBLASTFM_INCLUDE_DIR NAMES Audioscrobbler
-+find_path(LIBLASTFM_INCLUDE_DIR NAMES lastfm
- HINTS
- ~/usr/include
- /opt/local/include
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/LastfmReadLabelCapability.cpp amarok-2.5.96/src/LastfmReadLabelCapability.cpp
---- amarok-2.5.96.orig/src/LastfmReadLabelCapability.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/LastfmReadLabelCapability.cpp 2012-08-02 16:32:36.419653927 +0200
-@@ -22,8 +22,7 @@
- #include <QMap>
- #include <QNetworkReply>
-
--#include <lastfm/XmlQuery>
--#include <ws.h>
-+#include <lastfm/XmlQuery.h>
- #include "core/support/Amarok.h"
-
- namespace Capabilities
-@@ -72,7 +71,8 @@
- {
- case QNetworkReply::NoError:
- {
-- lastfm::XmlQuery lfm = m_job->readAll();
-+ lastfm::XmlQuery lfm;
-+ lfm.parse(m_job->readAll());
- QList<lastfm::XmlQuery> tags = lfm.children( "tag" );
- QStringList ret;
- foreach( const lastfm::XmlQuery &child, tags )
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp amarok-2.5.96/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp
---- amarok-2.5.96.orig/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/context/engines/upcomingevents/UpcomingEventsEngine.cpp 2012-08-02 16:32:35.962659642 +0200
-@@ -27,10 +27,6 @@
- #include "EngineController.h"
- #include "LastFmEventXmlParser.h"
-
--// LastFm
--#include <lastfm/XmlQuery>
--#include <lastfm/ws.h>
--
- // KDE
- #include <KDateTime>
-
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/core/support/Amarok.h amarok-2.5.96/src/core/support/Amarok.h
---- amarok-2.5.96.orig/src/core/support/Amarok.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/core/support/Amarok.h 2012-08-02 16:32:35.962659642 +0200
-@@ -203,6 +203,7 @@
-
- inline const char* discogsApiKey() { return "91734dd989"; }
- inline const char* lastfmApiKey() { return "402d3ca8e9bc9d3cf9b85e1202944ca5"; }
-+ inline const char* lastfmApiSharedSecret() { return "fe0dcde9fcd14c2d1d50665b646335e9"; }
- inline const char* yahooBossApiKey() { return "oQepTNrV34G9Satb1dgRZ8hdl1uhJvguDSU5Knl2Xd4ALK85knYt6ylr.FTA57XMRBA-"; }
- inline const char* flickrApiKey() { return "9c5a288116c34c17ecee37877397fe31"; }
- }
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/ampache/LastfmInfoParser.cpp amarok-2.5.96/src/services/ampache/LastfmInfoParser.cpp
---- amarok-2.5.96.orig/src/services/ampache/LastfmInfoParser.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/ampache/LastfmInfoParser.cpp 2012-08-02 16:32:35.954659742 +0200
-@@ -20,8 +20,7 @@
- #include "core/support/Amarok.h"
- #include "core/support/Debug.h"
-
--#include <lastfm/XmlQuery>
--#include <lastfm/ws.h>
-+#include <lastfm/XmlQuery.h>
-
- #include <KLocale>
-
-@@ -55,7 +54,8 @@
- {
- case QNetworkReply::NoError:
- {
-- lastfm::XmlQuery lfm = m_jobs[ "getTrackInfo" ]->readAll();
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_jobs[ "getTrackInfo" ]->readAll() );
- lastfm::XmlQuery wiki = lfm["track"]["wiki"];
- const QString contentText = wiki["content"].text();
- const QString publishedDate = wiki["published"].text();
-@@ -103,7 +103,8 @@
- {
- case QNetworkReply::NoError:
- {
-- lastfm::XmlQuery lfm = m_jobs[ "getAlbumInfo" ]->readAll();
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_jobs[ "getAlbumInfo" ]->readAll() );
- lastfm::XmlQuery wiki = lfm["album"]["wiki"];
- const QString summaryText = wiki["summary"].text();
- const QString contentText = wiki["content"].text();
-@@ -155,7 +156,8 @@
- {
- case QNetworkReply::NoError:
- {
-- lastfm::XmlQuery lfm = m_jobs[ "getArtistInfo" ]->readAll();
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_jobs[ "getArtistInfo" ]->readAll() );
- debug() << lfm.text();
- lastfm::XmlQuery bio = lfm["artist"]["bio"];
- const QString summaryText = bio["summary"].text();
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmService.cpp amarok-2.5.96/src/services/lastfm/LastFmService.cpp
---- amarok-2.5.96.orig/src/services/lastfm/LastFmService.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/LastFmService.cpp 2012-08-02 16:32:35.955659729 +0200
-@@ -46,8 +46,8 @@
- #include "widgets/SearchWidget.h"
- #include "NetworkAccessManagerProxy.h"
-
--#include <lastfm/Audioscrobbler> // from liblastfm
--#include <lastfm/XmlQuery>
-+#include <lastfm/Audioscrobbler.h> // from liblastfm
-+#include <lastfm/XmlQuery.h>
-
- #include <KLocale>
- #include <KPasswordDialog>
-@@ -224,10 +224,7 @@
- {
- // set the global static Lastfm::Ws stuff
- lastfm::ws::ApiKey = Amarok::lastfmApiKey();
-- lastfm::ws::SharedSecret = "fe0dcde9fcd14c2d1d50665b646335e9";
-- // testing w/ official keys
-- //Ws::SharedSecret = "73582dfc9e556d307aead069af110ab8";
-- //Ws::ApiKey = "c8c7b163b11f92ef2d33ba6cd3c2c3c3";
-+ lastfm::ws::SharedSecret = Amarok::lastfmApiSharedSecret();
- m_userNameArray = qstrdup( m_userName.toLatin1().data() );
- lastfm::ws::Username = m_userNameArray;
- if( lastfm::nam() != The::networkAccessManager() )
-@@ -309,7 +306,8 @@
- case QNetworkReply::NoError:
- {
-
-- lastfm::XmlQuery lfm = lastfm::XmlQuery( m_jobs[ "auth" ]->readAll() );
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_jobs[ "auth" ]->readAll() );
- LastFmServiceConfig config;
-
- if( lfm.children( "error" ).size() > 0 )
-@@ -359,10 +357,8 @@
- {
- case QNetworkReply::NoError:
- {
-- try
-- {
-- lastfm::XmlQuery lfm( m_jobs[ "getUserInfo" ]->readAll() );
--
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "getUserInfo" ]->readAll() ) ) {
- m_country = lfm["user"]["country"].text();
- m_age = lfm["user"]["age"].text();
- m_gender = lfm["user"]["gender"].text();
-@@ -381,9 +377,10 @@
- }
- updateProfileInfo();
-
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- break;
- } case QNetworkReply::AuthenticationRequiredError:
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceCollection.cpp amarok-2.5.96/src/services/lastfm/LastFmServiceCollection.cpp
---- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceCollection.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/LastFmServiceCollection.cpp 2012-08-02 16:32:35.956659716 +0200
-@@ -26,7 +26,7 @@
- #include "core-impl/collections/support/MemoryQueryMaker.h"
-
- #include <lastfm/ws.h>
--#include <lastfm/XmlQuery>
-+#include <lastfm/XmlQuery.h>
-
- #include <QNetworkReply>
-
-@@ -154,10 +154,9 @@
- case QNetworkReply::NoError:
- {
- // iterate through each neighbour
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "user.getNeighbours" ]->readAll() ) )
- {
-- lastfm::XmlQuery lfm( m_jobs[ "user.getNeighbours" ]->readAll() );
--
- foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children( "user" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -168,9 +167,10 @@
- addTrack( trackPtr );
- }
-
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- break;
- }
-@@ -195,15 +195,14 @@
- case QNetworkReply::NoError:
- {
- // iterate through each neighbour
-- try
-+ if( !m_jobs[ "user.getNeighbours" ] )
-+ {
-+ debug() << "BAD! got no result object";
-+ return;
-+ }
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "user.getNeighbours" ]->readAll() ) )
- {
-- if( !m_jobs[ "user.getNeighbours" ] )
-- {
-- debug() << "BAD! got no result object";
-- return;
-- }
-- lastfm::XmlQuery lfm( m_jobs[ "user.getNeighbours" ]->readAll() );
--
- // iterate through each neighbour
- foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children( "user" ) )
- {
-@@ -218,9 +217,10 @@
-
- // should be safe, as both slots SHOULD get called before we return to the event loop...
- m_jobs[ "user.getNeighbours" ]->deleteLater();
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- break;
- }
-@@ -248,10 +248,9 @@
- {
- case QNetworkReply::NoError:
- {
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "user.getFriends" ]->readAll() ) )
- {
-- lastfm::XmlQuery lfm( m_jobs[ "user.getFriends" ]->readAll() );
--
- foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children( "user" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -261,9 +260,10 @@
- addTrack( trackPtr );
- }
-
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- break;
- }
-@@ -293,10 +293,9 @@
- {
- case QNetworkReply::NoError:
- {
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "user.getFriends" ]->readAll() ) )
- {
-- lastfm::XmlQuery lfm( m_jobs[ "user.getFriends" ]->readAll() );
--
- foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children( "user" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -306,9 +305,10 @@
- addTrack( trackPtr );
- }
-
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- break;
- }
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceSettings.cpp amarok-2.5.96/src/services/lastfm/LastFmServiceSettings.cpp
---- amarok-2.5.96.orig/src/services/lastfm/LastFmServiceSettings.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/LastFmServiceSettings.cpp 2012-08-02 16:32:35.957659703 +0200
-@@ -23,9 +23,9 @@
- #include "NetworkAccessManagerProxy.h"
- #include "ui_LastFmConfigWidget.h"
-
--#include <lastfm/Audioscrobbler> // from liblastfm
-+#include <lastfm/Audioscrobbler.h> // from liblastfm
- #include <lastfm/ws.h>
--#include <lastfm/XmlQuery>
-+#include <lastfm/XmlQuery.h>
-
- #include <QCryptographicHash>
- #include <QNetworkAccessManager>
-@@ -100,7 +100,7 @@
- m_configDialog->testLogin->setText( i18n( "Testing..." ) );
- // set the global static Lastfm::Ws stuff
- lastfm::ws::ApiKey = Amarok::lastfmApiKey();
-- lastfm::ws::SharedSecret = "fe0dcde9fcd14c2d1d50665b646335e9";
-+ lastfm::ws::SharedSecret = Amarok::lastfmApiSharedSecret();
- lastfm::ws::Username = qstrdup( m_configDialog->kcfg_ScrobblerUsername->text().toLatin1().data() );
- if( lastfm::nam() != The::networkAccessManager() )
- lastfm::setNetworkAccessManager( The::networkAccessManager() );
-@@ -126,7 +126,8 @@
- {
- DEBUG_BLOCK
-
-- lastfm::XmlQuery lfm = lastfm::XmlQuery( m_authQuery->readAll() );
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_authQuery->readAll() );
-
- switch( m_authQuery->error() )
- {
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.cpp amarok-2.5.96/src/services/lastfm/LastFmTreeModel.cpp
---- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/LastFmTreeModel.cpp 2012-08-02 16:32:35.958659691 +0200
-@@ -26,8 +26,8 @@
- #include "AmarokMimeData.h"
-
- #include <lastfm/ws.h>
--#include <lastfm/Tag>
--#include <lastfm/XmlQuery>
-+#include <lastfm/Tag.h>
-+#include <lastfm/XmlQuery.h>
-
- #include <KIcon>
- #include <KLocale>
-@@ -68,11 +68,12 @@
- {
- DEBUG_BLOCK
-
-- try
-- {
- // Iterate over each neighbor, in two passes: 1) Get data 2) Sort data, store in model
-
-- lastfm::XmlQuery lfm( m_jobs[ "getNeighbours" ]->readAll() );
-+ lastfm::XmlQuery lfm;
-+ lfm.parse( m_jobs[ "getNeighbours" ]->readAll() );
-+ if( lfm.parseError().enumValue() == lastfm::ws::NoError )
-+ {
- foreach( const lastfm::XmlQuery &e, lfm[ "neighbours" ].children ( "user" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -88,11 +89,11 @@
- appendUserStations( neighbor, name );
- }
- m_neighbors.sort();
-+ } else {
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
-+ return;
- }
-- catch( lastfm::ws::ParseError e )
-- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-- }
-+
- emitRowChanged(LastFm::Neighbors);
- m_jobs[ "getNeighbours" ]->deleteLater();
- }
-@@ -102,11 +103,11 @@
- {
- DEBUG_BLOCK
-
-- try
-- {
-- // Iterate over each friend, in two passes: 1) Get data 2) Sort data, store in model
-+ // Iterate over each friend, in two passes: 1) Get data 2) Sort data, store in model
-
-- lastfm::XmlQuery lfm( m_jobs[ "getFriends" ]->readAll() );
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "getFriends" ]->readAll() ) )
-+ {
- foreach( const lastfm::XmlQuery &e, lfm[ "friends" ].children ( "user" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -123,11 +124,11 @@
- appendUserStations( afriend, name );
- }
- m_friends.sort();
-+ } else {
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
-+ return;
- }
-- catch( lastfm::ws::ParseError e )
-- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-- }
-+
- emitRowChanged(LastFm::Friends);
- m_jobs[ "getFriends" ]->deleteLater();
- }
-@@ -137,10 +138,9 @@
- {
- DEBUG_BLOCK
- WeightedStringList list;
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( m_jobs[ "getTopArtists" ]->readAll() ) )
- {
-- lastfm::XmlQuery lfm( m_jobs[ "getTopArtists" ]->readAll() );
--
- foreach( const lastfm::XmlQuery &e, lfm[ "topartists" ].children ( "artist" ) )
- {
- const QString name = e[ "name" ].text();
-@@ -158,9 +158,10 @@
- m_myTopArtists->appendChild ( artist );
- }
-
-- } catch( lastfm::ws::ParseError e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- emitRowChanged(LastFm::TopArtists);
- m_jobs[ "getTopArtists" ]->deleteLater();
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.h amarok-2.5.96/src/services/lastfm/LastFmTreeModel.h
---- amarok-2.5.96.orig/src/services/lastfm/LastFmTreeModel.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/LastFmTreeModel.h 2012-08-02 16:32:35.957659703 +0200
-@@ -22,7 +22,7 @@
- #include "core/meta/Meta.h"
- #include "WeightedStringList.h"
-
--#include <lastfm/User>
-+#include <lastfm/User.h>
-
- #include <QAbstractItemModel>
- #include <QHash>
-@@ -136,7 +136,7 @@
- LastFmTreeItem *m_myTopArtists;
-
- QString m_userName;
-- lastfm::AuthenticatedUser m_user;
-+ lastfm::User m_user;
-
- QStringList m_friends;
- QStringList m_neighbors;
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/ScrobblerAdapter.h amarok-2.5.96/src/services/lastfm/ScrobblerAdapter.h
---- amarok-2.5.96.orig/src/services/lastfm/ScrobblerAdapter.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/ScrobblerAdapter.h 2012-08-02 16:32:35.958659691 +0200
-@@ -20,8 +20,8 @@
-
- #include "core/meta/Meta.h"
-
--#include <lastfm/Audioscrobbler>
--#include <lastfm/Track>
-+#include <lastfm/Audioscrobbler.h>
-+#include <lastfm/Track.h>
-
- #include <QVariant>
-
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/biases/LastFmBias.cpp amarok-2.5.96/src/services/lastfm/biases/LastFmBias.cpp
---- amarok-2.5.96.orig/src/services/lastfm/biases/LastFmBias.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/biases/LastFmBias.cpp 2012-08-02 16:32:35.958659691 +0200
-@@ -34,9 +34,8 @@
- #include "core/collections/QueryMaker.h"
- #include "core-impl/collections/support/CollectionManager.h"
-
--#include "lastfm/Artist"
--#include "lastfm/ws.h"
--#include "lastfm/XmlQuery"
-+#include <lastfm/Artist.h>
-+#include <lastfm/ws.h>
-
- #include <QLabel>
- #include <QComboBox>
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/biases/WeeklyTopBias.cpp amarok-2.5.96/src/services/lastfm/biases/WeeklyTopBias.cpp
---- amarok-2.5.96.orig/src/services/lastfm/biases/WeeklyTopBias.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/biases/WeeklyTopBias.cpp 2012-08-02 16:32:35.960659667 +0200
-@@ -34,9 +34,9 @@
- #include "core/collections/QueryMaker.h"
- #include "core-impl/collections/support/CollectionManager.h"
-
--#include "lastfm/Artist"
--#include "lastfm/ws.h"
--#include "lastfm/XmlQuery"
-+#include <lastfm/Artist.h>
-+#include <lastfm/ws.h>
-+#include <lastfm/XmlQuery.h>
-
- #include <QNetworkReply>
-
-@@ -371,10 +371,9 @@
- }
-
-
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( reply->readAll() ) )
- {
-- lastfm::XmlQuery lfm( reply->readAll() );
--
- // debug() << "got response:" << lfm;
- QStringList artists;
- for( int i = 0; i < lfm[ "weeklyartistchart" ].children( "artist" ).size(); i++ )
-@@ -398,10 +397,10 @@
- warning() << "Got a reply for a week"<<week<<"that was not requested.";
- return;
- }
--
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "caught exception parsing weekly artist chart.";
-+ debug() << "failed to parse weekly artist chart.";
- }
-
- reply->deleteLater();
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.cpp amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.cpp
---- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.cpp 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.cpp 2012-08-02 16:32:35.961659655 +0200
-@@ -41,7 +41,7 @@
- #include <QWeakPointer>
- #include <QUrl>
-
--#include <lastfm/Track>
-+#include <lastfm/Track.h>
-
- namespace LastFm {
-
-@@ -451,8 +451,7 @@
- DEBUG_BLOCK
-
- debug() << "info:" << d->lastFmTrack.artist() << d->lastFmTrack.title();
-- d->wsReply = lastfm::MutableTrack( d->lastFmTrack ).love();
-- connect( d->wsReply, SIGNAL( finished() ), this, SLOT( slotWsReply() ) );
-+ lastfm::MutableTrack( d->lastFmTrack ).love();
- }
-
- void
-@@ -477,9 +476,9 @@
- {
- if( d->trackFetch->error() == QNetworkReply::NoError )
- {
-- try
-+ lastfm::XmlQuery lfm;
-+ if( lfm.parse( d->trackFetch->readAll() ) )
- {
-- lastfm::XmlQuery lfm( d->trackFetch->readAll() );
- QString id = lfm[ "track" ][ "id" ].text();
- QString streamable = lfm[ "track" ][ "streamable" ].text();
- if( streamable.toInt() == 1 )
-@@ -487,9 +486,10 @@
- else
- init();
-
-- } catch( lastfm::ws::ParseError& e )
-+ }
-+ else
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
- }
- } else
- {
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.h amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.h
---- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta.h 2012-08-02 16:32:35.960659667 +0200
-@@ -24,7 +24,7 @@
- #include "ServiceMetaBase.h" // for the SourceInfoProvider
-
-
--#include <lastfm/Track>
-+#include <lastfm/Track.h>
-
-
- #include <QObject>
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta_p.h amarok-2.5.96/src/services/lastfm/meta/LastFmMeta_p.h
---- amarok-2.5.96.orig/src/services/lastfm/meta/LastFmMeta_p.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/meta/LastFmMeta_p.h 2012-08-02 16:32:35.961659655 +0200
-@@ -26,10 +26,10 @@
- #include "core/statistics/StatisticsProvider.h"
- #include "core-impl/statistics/providers/tag/TagStatisticsProvider.h"
-
--#include <lastfm/Track>
-+#include <lastfm/Track.h>
- #include <lastfm/ws.h>
--#include <lastfm/RadioTuner>
--#include <lastfm/XmlQuery>
-+#include <lastfm/RadioTuner.h>
-+#include <lastfm/XmlQuery.h>
-
- #include <kio/job.h>
- #include <kio/jobclasses.h>
-@@ -144,26 +144,24 @@
- return;
- if( m_userFetch->error() == QNetworkReply::NoError )
- {
-- try
-+ lastfm::XmlQuery lfm;
-+ if( !lfm.parse( m_userFetch->readAll() ) )
- {
-- lastfm::XmlQuery lfm( m_userFetch->readAll() );
-- albumUrl = lfm[ "track" ][ "album" ][ "url" ].text();
-- trackUrl = lfm[ "track" ][ "url" ].text();
-- artistUrl = lfm[ "track" ][ "artist" ][ "url" ].text();
--
-- notifyObservers();
-+ debug() << "Got exception in parsing from last.fm:" << lfm.parseError().message();
-+ return;
-+ }
-+ albumUrl = lfm[ "track" ][ "album" ][ "url" ].text();
-+ trackUrl = lfm[ "track" ][ "url" ].text();
-+ artistUrl = lfm[ "track" ][ "artist" ][ "url" ].text();
-
-- imageUrl = lfm[ "track" ][ "album" ][ "image size=large" ].text();
-+ notifyObservers();
-
-- if( !imageUrl.isEmpty() )
-- {
-- KIO::Job* job = KIO::storedGet( KUrl( imageUrl ), KIO::Reload, KIO::HideProgressInfo );
-- connect( job, SIGNAL( result( KJob* ) ), this, SLOT( fetchImageFinished( KJob* ) ) );
-- }
-+ imageUrl = lfm[ "track" ][ "album" ][ "image size=large" ].text();
-
-- } catch( lastfm::ws::ParseError& e )
-+ if( !imageUrl.isEmpty() )
- {
-- debug() << "Got exception in parsing from last.fm:" << e.what();
-+ KIO::Job* job = KIO::storedGet( KUrl( imageUrl ), KIO::Reload, KIO::HideProgressInfo );
-+ connect( job, SIGNAL( result( KJob* ) ), this, SLOT( fetchImageFinished( KJob* ) ) );
- }
- }
-
-diff -U 3 -H -d -r -N -- amarok-2.5.96.orig/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h amarok-2.5.96/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h
---- amarok-2.5.96.orig/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h 2012-07-31 12:10:56.000000000 +0200
-+++ amarok-2.5.96/src/services/lastfm/meta/MultiPlayableCapabilityImpl_p.h 2012-08-02 16:32:35.962659642 +0200
-@@ -25,8 +25,9 @@
- #include "core/meta/Meta.h"
- #include "core/capabilities/MultiPlayableCapability.h"
-
--#include <lastfm/Track>
--#include <lastfm/RadioTuner>
-+#include <lastfm/Track.h>
-+#include <lastfm/RadioStation.h>
-+#include <lastfm/RadioTuner.h>
- #include <lastfm/ws.h>
-
- #include <KLocale>
-@@ -55,24 +56,23 @@
- {
- DEBUG_BLOCK
- m_tuner = new lastfm::RadioTuner( lastfm::RadioStation( m_track->uidUrl() ) );
--
-+
- connect( m_tuner, SIGNAL( trackAvailable() ), this, SLOT( slotNewTrackAvailable() ) );
-- connect( m_tuner, SIGNAL( error( lastfm::ws::Error ) ), this, SLOT( error( lastfm::ws::Error ) ) );
-+ connect( m_tuner, SIGNAL( error(lastfm::ws::Error,QString) ), this, SLOT( error( lastfm::ws::Error ) ) );
- }
--
-+
- virtual void fetchNext()
- {
- DEBUG_BLOCK
- m_currentTrack = m_tuner->takeNextTrack();
- m_track->setTrackInfo( m_currentTrack );
--
- }
--
-+
- using Observer::metadataChanged;
- virtual void metadataChanged( Meta::TrackPtr track )
- {
- const LastFm::TrackPtr ltrack = LastFm::TrackPtr::dynamicCast( track );
--
-+
- if( ltrack.isNull() )
- return;
-
-@@ -94,7 +94,7 @@
- m_track->setTrackInfo( m_currentTrack );
- }
- }
--
-+
- virtual void skip()
- {
- fetchNext();
diff --git a/source/kde/patch/calligra.patch b/source/kde/patch/calligra.patch
deleted file mode 100644
index aac4ebf95..000000000
--- a/source/kde/patch/calligra.patch
+++ /dev/null
@@ -1,3 +0,0 @@
-# Patch an overflow vulnerability in calligra:
-zcat $CWD/patch/calligra/calligra.words.fix_overflow.diff.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
-
diff --git a/source/kde/patch/calligra/calligra.words.fix_overflow.diff b/source/kde/patch/calligra/calligra.words.fix_overflow.diff
deleted file mode 100644
index 1a68b3f9d..000000000
--- a/source/kde/patch/calligra/calligra.words.fix_overflow.diff
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/filters/words/msword-odf/wv2/src/styles.cpp b/filters/words/msword-odf/wv2/src/styles.cpp
-index 02a82a0..78ac31d 100644
---- a/filters/words/msword-odf/wv2/src/styles.cpp
-+++ b/filters/words/msword-odf/wv2/src/styles.cpp
-@@ -248,6 +248,11 @@ throw(InvalidFormatException)
- #ifdef WV2_DEBUG_STYLESHEET
- wvlog << "cbUPX: " << cbUPX << endl;
- #endif
-+ // do not overflow the allocated buffer grupx
-+ if (offset + cbUPX > grupxLen) {
-+ wvlog << "====> Error: grupx would overflow!" << endl;
-+ return false;
-+ }
- for ( U16 j = 0; j < cbUPX; ++j ) {
- grupx[ offset + j ] = stream->readU8(); // read the whole UPX
- #ifdef WV2_DEBUG_STYLESHEET
diff --git a/source/kde/patch/kde-workspace.patch b/source/kde/patch/kde-workspace.patch
index 27eab8742..6cc98a91e 100644
--- a/source/kde/patch/kde-workspace.patch
+++ b/source/kde/patch/kde-workspace.patch
@@ -3,3 +3,6 @@ zcat $CWD/patch/kde-workspace/kde-workspace.kdm.server.timeout.diff.gz | patch -
# Always show 'remaining time' in the popup of the battery plasmoid:
zcat $CWD/patch/kde-workspace/kde-workspace.batteryapplet.diff.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Fix issues with recent glibc crypt() returning NULL:
+zcat $CWD/patch/kde-workspace/kde-workspace.shadow.changeset_r7777194da6154375fc8103b8c4e29e385cd7ae2e.diff.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/kde/patch/kde-workspace/kde-workspace.batteryapplet.diff b/source/kde/patch/kde-workspace/kde-workspace.batteryapplet.diff
index ef899e83f..795827805 100644
--- a/source/kde/patch/kde-workspace/kde-workspace.batteryapplet.diff
+++ b/source/kde/patch/kde-workspace/kde-workspace.batteryapplet.diff
@@ -1,16 +1,13 @@
-diff -ur kdebase-workspace-4.5.80/plasma/generic/applets/battery/battery.cpp kdebase-workspace-4.5.80-battery-plasmoid-showremainingtime/plasma/generic/applets/battery/battery.cpp
---- kdebase-workspace-4.5.80/plasma/generic/applets/battery/battery.cpp 2010-11-19 11:51:21.000000000 +0100
-+++ kdebase-workspace-4.5.80-battery-plasmoid-showremainingtime/plasma/generic/applets/battery/battery.cpp 2010-11-20 20:39:11.000000000 +0100
-@@ -712,7 +712,11 @@
- m_acInfoLabel->setText(i18n("<b>Not plugged in</b>"));
- }
+diff -ur kde-workspace-4.8.80/plasma/generic/applets/batterymonitor/contents/config/main.xml kde-workspace-4.8.80-battery-plasmoid-showremainingtime/plasma/generic/applets/batterymonitor/contents/config/main.xml
+--- kde-workspace-4.8.80/plasma/generic/applets/batterymonitor/contents/config/main.xml 2012-05-23 01:55:18.000000000 +0200
++++ kde-workspace-4.8.80-battery-plasmoid-showremainingtime/plasma/generic/applets/batterymonitor/contents/config/main.xml 2012-05-26 22:09:44.000000000 +0200
+@@ -10,7 +10,7 @@
+ <default>false</default>
+ </entry>
+ <entry name="showRemainingTime" type="Bool">
+- <default>false</default>
++ <default>true</default>
+ </entry>
+ </group>
-- if (batteryCount && showRemainingTime && m_remainingMSecs > 0) {
-+ // Always show the remaining time in the popup.
-+ // We don't just set m_showRemainingTime to true by default because
-+ // that'd try to use the time also for the icon. That won't fit on
-+ // small panels.
-+ if (batteryCount && m_remainingMSecs > 0) {
- m_remainingTimeLabel->show();
- m_remainingInfoLabel->show();
- // we don't have too much accuracy so only give hours and minutes
+
diff --git a/source/kde/patch/kde-workspace/kde-workspace.shadow.changeset_r7777194da6154375fc8103b8c4e29e385cd7ae2e.diff b/source/kde/patch/kde-workspace/kde-workspace.shadow.changeset_r7777194da6154375fc8103b8c4e29e385cd7ae2e.diff
new file mode 100644
index 000000000..dbb4614c2
--- /dev/null
+++ b/source/kde/patch/kde-workspace/kde-workspace.shadow.changeset_r7777194da6154375fc8103b8c4e29e385cd7ae2e.diff
@@ -0,0 +1,92 @@
+commit 7777194da6154375fc8103b8c4e29e385cd7ae2e
+Author: Michael Pyne <mpyne@kde.org>
+Date: Sat Jun 29 16:13:20 2013 -0400
+
+ kdm, kcheckpass: Check for NULL return from crypt(3) and friends.
+
+ Potential issue noted and fixed by Mancha <mancha1@hush.com>.
+
+ Patch reviewed by myself and ossi. Review request was closed out by the
+ backport commit.
+
+diff --git a/kcheckpass/checkpass_etcpasswd.c b/kcheckpass/checkpass_etcpasswd.c
+index 1dbe06f..e261b7c 100644
+--- a/kcheckpass/checkpass_etcpasswd.c
++++ b/kcheckpass/checkpass_etcpasswd.c
+@@ -35,6 +35,7 @@ AuthReturn Authenticate(const char *method,
+ {
+ struct passwd *pw;
+ char *passwd;
++ char *crpt_passwd;
+
+ if (strcmp(method, "classic"))
+ return AuthError;
+@@ -49,7 +50,7 @@ AuthReturn Authenticate(const char *method,
+ if (!(passwd = conv(ConvGetHidden, 0)))
+ return AuthAbort;
+
+- if (!strcmp(pw->pw_passwd, crypt(passwd, pw->pw_passwd))) {
++ if ((crpt_passwd = crypt(passwd, pw->pw_passwd)) && !strcmp(pw->pw_passwd, crpt_passwd)) {
+ dispose(passwd);
+ return AuthOk; /* Success */
+ }
+diff --git a/kcheckpass/checkpass_osfc2passwd.c b/kcheckpass/checkpass_osfc2passwd.c
+index 9a074f9..d181233 100644
+--- a/kcheckpass/checkpass_osfc2passwd.c
++++ b/kcheckpass/checkpass_osfc2passwd.c
+@@ -38,6 +38,7 @@ AuthReturn Authenticate(const char *method,
+ const char *login, char *(*conv) (ConvRequest, const char *))
+ {
+ char *passwd;
++ char *crpt_passwd;
+ char c2passwd[256];
+
+ if (strcmp(method, "classic"))
+@@ -52,7 +53,7 @@ AuthReturn Authenticate(const char *method,
+ if (!(passwd = conv(ConvGetHidden, 0)))
+ return AuthAbort;
+
+- if (!strcmp(c2passwd, osf1c2crypt(passwd, c2passwd))) {
++ if ((crpt_passwd = osf1c2crypt(passwd, c2passwd)) && !strcmp(c2passwd, crpt_passwd)) {
+ dispose(passwd);
+ return AuthOk; /* Success */
+ }
+diff --git a/kcheckpass/checkpass_shadow.c b/kcheckpass/checkpass_shadow.c
+index ec3a4e0..c0f6913 100644
+--- a/kcheckpass/checkpass_shadow.c
++++ b/kcheckpass/checkpass_shadow.c
+@@ -69,7 +69,7 @@ AuthReturn Authenticate(const char *method,
+ crpt_passwd = crypt(typed_in_password, password);
+ #endif
+
+- if (!strcmp(password, crpt_passwd )) {
++ if (crpt_passwd && !strcmp(password, crpt_passwd )) {
+ dispose(typed_in_password);
+ return AuthOk; /* Success */
+ }
+diff --git a/kdm/backend/client.c b/kdm/backend/client.c
+index bdff6da..26bb0b4 100644
+--- a/kdm/backend/client.c
++++ b/kdm/backend/client.c
+@@ -540,6 +540,9 @@ verify(GConvFunc gconv, int rootok)
+ # if defined(HAVE_STRUCT_PASSWD_PW_EXPIRE) || defined(USESHADOW)
+ int tim, expir, warntime, quietlog;
+ # endif
++# if !defined(ultrix) && !defined(__ultrix__) && (defined(HAVE_PW_ENCRYPT) || defined(HAVE_CRYPT))
++ char *crpt_passwd;
++# endif
+ #endif
+
+ debug("verify ...\n");
+@@ -752,9 +755,9 @@ verify(GConvFunc gconv, int rootok)
+ # if defined(ultrix) || defined(__ultrix__)
+ if (authenticate_user(p, curpass, 0) < 0)
+ # elif defined(HAVE_PW_ENCRYPT)
+- if (strcmp(pw_encrypt(curpass, p->pw_passwd), p->pw_passwd))
++ if (!(crpt_passwd = pw_encrypt(curpass, p->pw_passwd)) || strcmp(crpt_passwd, p->pw_passwd))
+ # elif defined(HAVE_CRYPT)
+- if (strcmp(crypt(curpass, p->pw_passwd), p->pw_passwd))
++ if (!(crpt_passwd = crypt(curpass, p->pw_passwd)) || strcmp(crpt_passwd, p->pw_passwd))
+ # else
+ if (strcmp(curpass, p->pw_passwd))
+ # endif
diff --git a/source/kde/patch/kdelibs.patch b/source/kde/patch/kdelibs.patch
index d66622e08..c314b559c 100644
--- a/source/kde/patch/kdelibs.patch
+++ b/source/kde/patch/kdelibs.patch
@@ -4,5 +4,11 @@ zcat $CWD/patch/kdelibs/kdelibs.docbook.patch.gz | patch -p1 --verbose || { touc
# Make uPnP support depend on the environment variable SOLID_UPNP,
# e.g. by creating an /etc/profile.d/upnp.sh file with the following contents:
# export SOLID_UPNP=1
-cat $CWD/patch/kdelibs/kdelibs.upnp_conditional.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/kdelibs/kdelibs.upnp_conditional.patch.gz | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+
+# Revert 3 patches which (although they probably follow the FDo spec better),
+# cause incorrect icon overrides:
+zcat $CWD/patch/kdelibs/return-not-break.-copy-paste-error.patch.gz | patch -R -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/kdelibs/coding-style-fixes.patch.gz | patch -R -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
+zcat $CWD/patch/kdelibs/return-application-icons-properly.patch.gz | patch -R -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
diff --git a/source/kde/patch/kdelibs/coding-style-fixes.patch b/source/kde/patch/kdelibs/coding-style-fixes.patch
new file mode 100644
index 000000000..11108f0a4
--- /dev/null
+++ b/source/kde/patch/kdelibs/coding-style-fixes.patch
@@ -0,0 +1,62 @@
+From 2173580f070e806d4715e13048c697c49ec262e2 Mon Sep 17 00:00:00 2001
+From: Aaron Seigo <aseigo@kde.org>
+Date: Thu, 21 Feb 2013 17:59:58 +0100
+Subject: [PATCH 047/111] coding style fixes
+
+---
+ kdeui/icons/kiconloader.cpp | 27 ++++++++++++---------------
+ 1 file changed, 12 insertions(+), 15 deletions(-)
+
+diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
+index 6fed667..dba474d 100644
+--- a/kdeui/icons/kiconloader.cpp
++++ b/kdeui/icons/kiconloader.cpp
+@@ -938,32 +938,29 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
+ }
+ }
+
+- foreach (KIconThemeNode *themeNode, links)
+- {
++ foreach (KIconThemeNode *themeNode, links) {
+ QString currentName = name;
+
+- while (!currentName.isEmpty())
+- {
+-
++ while (!currentName.isEmpty()) {
+ //kDebug(264) << "Looking up" << currentName;
+
+-// The following code has been commented out because the Qt SVG renderer needs
+-// to be improved. If you are going to change/remove some code from this part,
+-// please contact me before (ereslibre@kde.org), or kde-core-devel@kde.org. (ereslibre)
+- for (int i = 0 ; i < 4 ; i++)
+- {
++ for (int i = 0 ; i < 4 ; i++) {
+ icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchExact);
+- if (icon.isValid())
+- return icon;
++ if (icon.isValid()) {
++ break;
++ }
+
+ icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchBest);
+- if (icon.isValid())
+- return icon;
++ if (icon.isValid()) {
++ break;
++ }
+ }
++ //kDebug(264) << "Looking up" << currentName;
+
+- if (genericFallback)
++ if (genericFallback) {
+ // we already tested the base name
+ break;
++ }
+
+ int rindex = currentName.lastIndexOf('-');
+ if (rindex > 1) { // > 1 so that we don't split x-content or x-epoc
+--
+1.8.1.4
+
+
diff --git a/source/kde/patch/kdelibs/return-application-icons-properly.patch b/source/kde/patch/kdelibs/return-application-icons-properly.patch
new file mode 100644
index 000000000..2bdb53adf
--- /dev/null
+++ b/source/kde/patch/kdelibs/return-application-icons-properly.patch
@@ -0,0 +1,56 @@
+From 613c951a1157df0d8a907a155a5eaa706816d5f9 Mon Sep 17 00:00:00 2001
+From: Aaron Seigo <aseigo@kde.org>
+Date: Thu, 21 Feb 2013 17:58:11 +0100
+Subject: return application icons properly
+
+BUG:315578
+---
+ kdeui/icons/kiconloader.cpp | 31 ++++++++++++++++++++++++++++++-
+ 1 file changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
+index f65e941..6fed667 100644
+--- a/kdeui/icons/kiconloader.cpp
++++ b/kdeui/icons/kiconloader.cpp
+@@ -909,7 +909,36 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
+ const char * const ext[4] = { ".png", ".svgz", ".svg", ".xpm" };
+ bool genericFallback = name.endsWith(QLatin1String("-x-generic"));
+
+- foreach(KIconThemeNode *themeNode, links)
++ // Do two passes through themeNodes.
++ //
++ // The first pass looks for an exact match in each themeNode one after the other.
++ // If one is found and it is an app icon then return that icon.
++ //
++ // In the next pass (assuming the first pass failed), it looks for exact matches
++ // and then generic fallbacks in each themeNode one after the other
++ //
++ // The reasoning is that application icons should always match exactly, all other
++ // icons may fallback. Since we do not know what the context is here when we start
++ // looking for it, we can only go by the path found.
++ foreach (KIconThemeNode *themeNode, links) {
++ for (int i = 0 ; i < 4 ; i++) {
++ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchExact);
++ if (icon.isValid()) {
++ break;
++ }
++
++ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchBest);
++ if (icon.isValid()) {
++ break;
++ }
++ }
++
++ if (icon.isValid() && icon.path.contains("/apps/")) {
++ return icon;
++ }
++ }
++
++ foreach (KIconThemeNode *themeNode, links)
+ {
+ QString currentName = name;
+
+--
+1.8.1.4
+
+
diff --git a/source/kde/patch/kdelibs/return-not-break.-copy-paste-error.patch b/source/kde/patch/kdelibs/return-not-break.-copy-paste-error.patch
new file mode 100644
index 000000000..b62818ed6
--- /dev/null
+++ b/source/kde/patch/kdelibs/return-not-break.-copy-paste-error.patch
@@ -0,0 +1,31 @@
+From 0edfd42151ad57322a10a24ab4971b638e220e6e Mon Sep 17 00:00:00 2001
+From: Aaron Seigo <aseigo@kde.org>
+Date: Thu, 21 Feb 2013 18:14:54 +0100
+Subject: [PATCH 049/111] return, not break. copy/paste error
+
+---
+ kdeui/icons/kiconloader.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
+index dba474d..ce6aeea 100644
+--- a/kdeui/icons/kiconloader.cpp
++++ b/kdeui/icons/kiconloader.cpp
+@@ -947,12 +947,12 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
+ for (int i = 0 ; i < 4 ; i++) {
+ icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchExact);
+ if (icon.isValid()) {
+- break;
++ return icon;
+ }
+
+ icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchBest);
+ if (icon.isValid()) {
+- break;
++ return icon;
+ }
+ }
+ //kDebug(264) << "Looking up" << currentName;
+--
+1.8.1.4
+
diff --git a/source/kde/patch/kdepim.patch b/source/kde/patch/kdepim.patch
deleted file mode 100644
index 7618dc8a8..000000000
--- a/source/kde/patch/kdepim.patch
+++ /dev/null
@@ -1,3 +0,0 @@
-# Install the kleopatra headers, or else kopete-cryptography will not build:
-cat $CWD/patch/kdepim/kdepim-4.5.85-install-headers.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
-
diff --git a/source/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch b/source/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch
deleted file mode 100644
index aa43059af..000000000
--- a/source/kde/patch/kdepim/kdepim-4.5.85-install-headers.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/CMakeLists.txt
---- kdepim-4.5.85/kleopatra/libkleopatraclient/CMakeLists.txt 2010-01-27 01:22:34.000000000 +0100
-+++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/CMakeLists.txt 2010-12-08 14:40:45.000000000 +0100
-@@ -6,3 +6,7 @@
-
- add_subdirectory( tests )
-
-+install(
-+ FILES kleopatraclient_export.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient
-+ )
-diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/core/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/core/CMakeLists.txt
---- kdepim-4.5.85/kleopatra/libkleopatraclient/core/CMakeLists.txt 2010-11-19 11:51:51.000000000 +0100
-+++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/core/CMakeLists.txt 2010-12-08 14:42:12.000000000 +0100
-@@ -55,4 +55,12 @@
- DESTINATION ${LIB_INSTALL_DIR}
- )
-
--
-+install(
-+ FILES
-+ initialization.h
-+ command.h
-+ selectcertificatecommand.h
-+ signencryptfilescommand.h
-+ decryptverifyfilescommand.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/core
-+ )
-diff -ur kdepim-4.5.85/kleopatra/libkleopatraclient/gui/CMakeLists.txt kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/gui/CMakeLists.txt
---- kdepim-4.5.85/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2010-07-29 11:58:45.000000000 +0200
-+++ kdepim-4.5.85-install-headers/kleopatra/libkleopatraclient/gui/CMakeLists.txt 2010-12-08 14:42:41.000000000 +0100
-@@ -20,3 +20,8 @@
- DESTINATION ${LIB_INSTALL_DIR}
- )
-
-+install(
-+ FILES
-+ certificaterequester.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/libkleopatraclient/gui
-+ )
-diff -ur kdepim-4.5.85/libkleo/CMakeLists.txt kdepim-4.5.85-install-headers/libkleo/CMakeLists.txt
---- kdepim-4.5.85/libkleo/CMakeLists.txt 2010-12-01 23:23:12.000000000 +0100
-+++ kdepim-4.5.85-install-headers/libkleo/CMakeLists.txt 2010-12-08 15:22:00.000000000 +0100
-@@ -112,6 +112,64 @@
- set_target_properties(kleo PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
- install(TARGETS kleo ${INSTALL_TARGETS_DEFAULT_ARGS})
-
-+install( FILES
-+ kleo/kleo_export.h
-+ kleo/enum.h
-+ kleo/oidmap.h
-+ kleo/cryptobackend.h
-+ kleo/cryptobackendfactory.h
-+ kleo/cryptoconfig.h
-+ kleo/dn.h
-+ kleo/job.h
-+ kleo/keylistjob.h
-+ kleo/keygenerationjob.h
-+ kleo/abstractimportjob.h
-+ kleo/importjob.h
-+ kleo/importfromkeyserverjob.h
-+ kleo/exportjob.h
-+ kleo/changeexpiryjob.h
-+ kleo/changeownertrustjob.h
-+ kleo/downloadjob.h
-+ kleo/deletejob.h
-+ kleo/encryptjob.h
-+ kleo/decryptjob.h
-+ kleo/signjob.h
-+ kleo/specialjob.h
-+ kleo/verifydetachedjob.h
-+ kleo/verifyopaquejob.h
-+ kleo/decryptverifyjob.h
-+ kleo/signencryptjob.h
-+ kleo/signkeyjob.h
-+ kleo/adduseridjob.h
-+ kleo/refreshkeysjob.h
-+ kleo/multideletejob.h
-+ kleo/hierarchicalkeylistjob.h
-+ kleo/keyfilter.h
-+ kleo/keyfiltermanager.h
-+ kleo/changepasswdjob.h
-+ kleo/checksumdefinition.h
-+ kleo/exception.h
-+ kleo/kconfigbasedkeyfilter.h
-+ kleo/listallkeysjob.h
-+ kleo/stl_util.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/kleo COMPONENT Devel)
-+
-+install ( FILES
-+ ui/kdhorizontalline.h
-+ ui/messagebox.h
-+ ui/progressbar.h
-+ ui/progressdialog.h
-+ ui/keylistview.h
-+ ui/keyselectiondialog.h
-+ ui/keyrequester.h
-+ ui/keyapprovaldialog.h
-+ ui/dnattributeorderconfigwidget.h
-+ ui/cryptoconfigmodule.h
-+ ui/cryptoconfigdialog.h
-+ ui/directoryserviceswidget.h
-+ ui/filenamerequester.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/kleo/ui COMPONENT Devel)
-+
- if ( WIN32 )
- install ( FILES libkleopatrarc-win32.desktop DESTINATION ${CONFIG_INSTALL_DIR} RENAME libkleopatrarc )
- else ( WIN32 )
-diff -ur kdepim-4.5.85/libkpgp/CMakeLists.txt kdepim-4.5.85-install-headers/libkpgp/CMakeLists.txt
---- kdepim-4.5.85/libkpgp/CMakeLists.txt 2010-07-29 11:59:00.000000000 +0200
-+++ kdepim-4.5.85-install-headers/libkpgp/CMakeLists.txt 2010-12-08 14:43:33.000000000 +0100
-@@ -35,3 +35,11 @@
- install(FILES kpgp.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR})
- install(PROGRAMS kpgp-3.1-upgrade-address-data.pl DESTINATION ${KCONF_UPDATE_INSTALL_DIR})
-
-+install(FILES
-+ kpgp.h
-+ kpgpbase.h
-+ kpgpblock.h
-+ kpgpkey.h
-+ kpgpui.h
-+ libkpgp_export.h
-+ DESTINATION ${INCLUDE_INSTALL_DIR}/kpgp COMPONENT Devel )
-
diff --git a/source/kde/patch/korundum.patch b/source/kde/patch/korundum.patch
deleted file mode 100644
index 7a8b7cfaa..000000000
--- a/source/kde/patch/korundum.patch
+++ /dev/null
@@ -1,4 +0,0 @@
-# Build against Ruby 1.9.3.
-# See also https://bugs.kde.org/show_bug.cgi?id=287057
-cat $CWD/patch/korundum/korundum_ruby19.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; }
-
diff --git a/source/kde/patch/korundum/korundum_ruby19.patch b/source/kde/patch/korundum/korundum_ruby19.patch
deleted file mode 100644
index 561d8de13..000000000
--- a/source/kde/patch/korundum/korundum_ruby19.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff -up korundum-4.8.0/src/krubypluginfactory.cpp.ruby19 korundum-4.8.0/src/krubypluginfactory.cpp
---- korundum-4.8.0/src/krubypluginfactory.cpp.ruby19 2011-07-27 13:37:29.000000000 -0500
-+++ korundum-4.8.0/src/krubypluginfactory.cpp 2012-02-17 08:30:38.785635819 -0600
-@@ -39,7 +39,7 @@
- extern "C" {
- extern VALUE rb_load_path;
- extern VALUE qt_internal_module;
--void Init_prelude(void);
-+// void Init_prelude(void);
- }
-
- //
-@@ -165,7 +165,7 @@ QObject *KRubyPluginFactory::create(cons
- #if RUBY_VERSION >= 0x10900
- VALUE gem = rb_define_module("Gem");
- rb_const_set(gem, rb_intern("Enable"), Qtrue);
-- Init_prelude();
-+// Init_prelude();
- #endif
-
- ruby_incpush(QFile::encodeName(program.path()));
-@@ -342,7 +342,7 @@ int kdemain(int argc, char **argv)
- #if RUBY_VERSION >= 0x10900
- VALUE gem = rb_define_module("Gem");
- rb_const_set(gem, rb_intern("Enable"), Qtrue);
-- Init_prelude();
-+// Init_prelude();
- #endif
-
- ruby_incpush(QFile::encodeName(program.path()));
-