summaryrefslogtreecommitdiff
path: root/libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch')
-rw-r--r--libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch670
1 files changed, 670 insertions, 0 deletions
diff --git a/libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch b/libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch
new file mode 100644
index 000000000..6008b2d28
--- /dev/null
+++ b/libre/clementine-libre/remove-nonfree-artwork-and-spotify.patch
@@ -0,0 +1,670 @@
+diff -rauN clementine-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m clementine-libre-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m
+--- clementine-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m 2011-12-02 19:24:43.000000000 -0200
++++ clementine-libre-1.0.1/3rdparty/SPMediaKeyTap/SPMediaKeyTap.m 2012-05-28 17:19:14.612750904 -0300
+@@ -98,7 +98,6 @@
+ {
+ return [NSArray arrayWithObjects:
+ [[NSBundle mainBundle] bundleIdentifier], // your app
+- @"com.spotify.client",
+ @"com.apple.iTunes",
+ @"com.apple.QuickTimePlayerX",
+ @"com.apple.quicktimeplayer",
+diff -rauN clementine-1.1.0/CMakeLists.txt clementine-libre-1.1.0/CMakeLists.txt
+--- clementine-1.1.0/CMakeLists.txt 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/CMakeLists.txt 2012-10-26 01:58:08.725496264 -0200
+@@ -7,7 +7,6 @@
+ include(cmake/Version.cmake)
+ include(cmake/Deb.cmake)
+ include(cmake/Rpm.cmake)
+-include(cmake/SpotifyVersion.cmake)
+ include(cmake/OptionalSource.cmake)
+ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+
+@@ -55,7 +54,6 @@
+ pkg_check_modules(USBMUXD libusbmuxd)
+ pkg_check_modules(LIBMTP libmtp>=1.0)
+ pkg_check_modules(INDICATEQT indicate-qt)
+-pkg_check_modules(SPOTIFY libspotify>=12.1.45)
+ pkg_check_modules(CDIO libcdio)
+ pkg_check_modules(QCA qca2)
+ pkg_check_modules(CHROMAPRINT libchromaprint)
+@@ -81,13 +79,6 @@
+ find_library(GROWL Growl)
+ find_library(SPARKLE Sparkle)
+
+- find_library(SPOTIFY libspotify)
+- if (SPOTIFY)
+- set (SPOTIFY_FOUND ON)
+- set (SPOTIFY_INCLUDE_DIRS ${SPOTIFY})
+- set (SPOTIFY_LIBRARIES ${SPOTIFY})
+- endif (SPOTIFY)
+-
+ add_subdirectory(3rdparty/SPMediaKeyTap)
+ set(SPMEDIAKEYTAP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/SPMediaKeyTap)
+ set(SPMEDIAKEYTAP_LIBRARIES SPMediaKeyTap)
+@@ -224,26 +215,16 @@
+ DEPENDS "D-Bus support" HAVE_DBUS
+ )
+
+-optional_component(SPOTIFY ON "Spotify support: core code"
++optional_component(SPOTIFY OFF "Spotify support: core code"
+ DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE
+ )
+
+-optional_component(SPOTIFY_BLOB ON "Spotify support: non-GPL binary helper"
++optional_component(SPOTIFY_BLOB OFF "Spotify support: non-GPL binary helper"
+ DEPENDS "protobuf" PROTOBUF_FOUND PROTOBUF_PROTOC_EXECUTABLE
+ DEPENDS "libspotify" SPOTIFY_FOUND
+ DEPENDS "Spotify support: core code" HAVE_SPOTIFY
+ )
+
+-set(NEED_SPOTIFY_DOWNLOADER OFF)
+-if(HAVE_SPOTIFY AND NOT HAVE_SPOTIFY_BLOB)
+- set(NEED_SPOTIFY_DOWNLOADER ON)
+-endif()
+-
+-optional_component(SPOTIFY_DOWNLOADER
+- ${NEED_SPOTIFY_DOWNLOADER} "Spotify support: blob downloader"
+- DEPENDS "qca2" QCA_FOUND
+-)
+-
+ optional_component(MOODBAR ON "Moodbar support"
+ DEPENDS "fftw3" FFTW3_FOUND
+ )
+@@ -411,14 +392,6 @@
+ add_subdirectory(3rdparty/google-breakpad)
+ endif(HAVE_BREAKPAD)
+
+-if(HAVE_SPOTIFY)
+- add_subdirectory(ext/libclementine-spotifyblob)
+-endif(HAVE_SPOTIFY)
+-
+-if(HAVE_SPOTIFY_BLOB)
+- add_subdirectory(ext/clementine-spotifyblob)
+-endif(HAVE_SPOTIFY_BLOB)
+-
+ if(HAVE_MOODBAR)
+ add_subdirectory(gst/moodbar)
+ endif()
+diff -rauN clementine-1.1.1/data/data.qrc clementine-libre-1.1.1/data/data.qrc
+--- clementine-1.1.1/data/data.qrc 2012-11-18 06:51:26.000000000 -0200
++++ clementine-libre-1.1.1/data/data.qrc 2013-05-13 02:55:19.579440533 -0300
+@@ -1,7 +1,6 @@
+ <RCC>
+ <qresource prefix="/">
+ <file>blank.ttf</file>
+- <file>clementine-spotify-public.pem</file>
+ <file>currenttrack_bar_left.png</file>
+ <file>currenttrack_bar_mid.png</file>
+ <file>currenttrack_bar_right.png</file>
+@@ -76,7 +75,6 @@
+ <file>icons/22x22/phone-nokia-n900.png</file>
+ <file>icons/22x22/phone-palm-pre.png</file>
+ <file>icons/22x22/phone.png</file>
+- <file>icons/22x22/spotify.png</file>
+ <file>icons/22x22/user-away.png</file>
+ <file>icons/22x22/view-choose.png</file>
+ <file>icons/22x22/view-fullscreen.png</file>
+@@ -153,7 +151,6 @@
+ <file>icons/32x32/phone-palm-pre.png</file>
+ <file>icons/32x32/phone.png</file>
+ <file>icons/32x32/search.png</file>
+- <file>icons/32x32/spotify.png</file>
+ <file>icons/32x32/tools-wizard.png</file>
+ <file>icons/32x32/view-choose.png</file>
+ <file>icons/32x32/view-fullscreen.png</file>
+@@ -229,7 +226,6 @@
+ <file>icons/48x48/phone-nokia-n900.png</file>
+ <file>icons/48x48/phone-palm-pre.png</file>
+ <file>icons/48x48/phone.png</file>
+- <file>icons/48x48/spotify.png</file>
+ <file>icons/48x48/view-choose.png</file>
+ <file>icons/48x48/view-fullscreen.png</file>
+ <file>icons/48x48/view-media-equalizer.png</file>
+@@ -261,10 +257,10 @@
+ <file>lumberjacksong.txt</file>
+ <file>lyrics/ultimate_providers.xml</file>
+ <file>mainwindow.css</file>
++ <file>moognu.png</file>
+ <file>nocover.png</file>
+ <file>nomusic.png</file>
+ <file>now_playing_tooltip.txt</file>
+- <file>nyancat.png</file>
+ <file>osd_background.png</file>
+ <file>osd_shadow_corner.png</file>
+ <file>osd_shadow_edge.png</file>
+@@ -339,7 +335,6 @@
+ <file>smartplaylistsearchterm.css</file>
+ <file>songinfo.css</file>
+ <file>spinner.gif</file>
+- <file>spotify-core-logo-128x128.png</file>
+ <file>star-off.png</file>
+ <file>star-on.png</file>
+ <file>tiny-pause.png</file>
+diff -rauN clementine-1.1.0/dist/macdeploy.py clementine-libre-1.1.0/dist/macdeploy.py
+--- clementine-1.1.0/dist/macdeploy.py 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/dist/macdeploy.py 2012-10-26 02:06:12.781965350 -0200
+@@ -387,10 +387,7 @@
+ FixPlugin(FindGioModule('libgiolibproxy.so'), 'gio-modules')
+
+ try:
+- FixPlugin('clementine-spotifyblob', '.')
+ FixPlugin('clementine-tagreader', '.')
+-except:
+- print 'Failed to find blob: %s' % traceback.format_exc()
+
+ for plugin in QT_PLUGINS:
+ FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
+diff -rauN clementine-1.1.0/dist/windows/clementine.nsi clementine-libre-1.1.0/dist/windows/clementine.nsi
+--- clementine-1.1.0/dist/windows/clementine.nsi 2012-10-22 04:27:00.000000000 -0200
++++ clementine-libre-1.1.0/dist/windows/clementine.nsi 2012-10-26 02:07:20.551540003 -0200
+@@ -94,9 +94,6 @@
+ Delete "$INSTDIR\gstreamer-plugins\libgstqueue2.dll"
+ Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
+
+- ; 1.0 prerelease
+- Delete "$INSTDIR\spotify.dll"
+-
+ ; 1.0
+ Delete "$INSTDIR\libofa.dll"
+ Delete "$INSTDIR\gstreamer-plugins\libgstofa.dll"
+@@ -110,7 +107,6 @@
+ File "avutil-50.dll"
+ File "clementine.exe"
+ File "clementine-tagreader.exe"
+- File "clementine-spotifyblob.exe"
+ File "clementine.ico"
+ File "glew32.dll"
+ File "intl.dll"
+@@ -164,7 +160,6 @@
+ File "libqjson.dll"
+ File "libsoup-2.4-1.dll"
+ File "libspeex-1.dll"
+- File "libspotify.dll"
+ File "libtag.dll"
+ File "libtasn1-3.dll"
+ File "libusbmuxd.dll"
+@@ -957,7 +952,6 @@
+ Delete "$INSTDIR\clementine.ico"
+ Delete "$INSTDIR\clementine.exe"
+ Delete "$INSTDIR\clementine-tagreader.exe"
+- Delete "$INSTDIR\clementine-spotifyblob.exe"
+ Delete "$INSTDIR\glew32.dll"
+ Delete "$INSTDIR\intl.dll"
+ Delete "$INSTDIR\libcdio-12.dll"
+@@ -1010,7 +1004,6 @@
+ Delete "$INSTDIR\libqjson.dll"
+ Delete "$INSTDIR\libsoup-2.4-1.dll"
+ Delete "$INSTDIR\libspeex-1.dll"
+- Delete "$INSTDIR\libspotify.dll"
+ Delete "$INSTDIR\libtag.dll"
+ Delete "$INSTDIR\libtasn1-3.dll"
+ Delete "$INSTDIR\libusbmuxd.dll"
+diff -rauN clementine-1.1.0/dist/windows/clementine.nsi.in clementine-libre-1.1.0/dist/windows/clementine.nsi.in
+--- clementine-1.1.0/dist/windows/clementine.nsi.in 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/dist/windows/clementine.nsi.in 2012-10-26 02:08:02.052572234 -0200
+@@ -94,9 +94,6 @@
+ Delete "$INSTDIR\gstreamer-plugins\libgstqueue2.dll"
+ Delete "$INSTDIR\gstreamer-plugins\libgstsoup.dll"
+
+- ; 1.0 prerelease
+- Delete "$INSTDIR\spotify.dll"
+-
+ ; 1.0
+ Delete "$INSTDIR\libofa.dll"
+ Delete "$INSTDIR\gstreamer-plugins\libgstofa.dll"
+@@ -110,7 +107,6 @@
+ File "avutil-50.dll"
+ File "clementine.exe"
+ File "clementine-tagreader.exe"
+- File "clementine-spotifyblob.exe"
+ File "clementine.ico"
+ File "glew32.dll"
+ File "intl.dll"
+@@ -164,7 +160,6 @@
+ File "libqjson.dll"
+ File "libsoup-2.4-1.dll"
+ File "libspeex-1.dll"
+- File "libspotify.dll"
+ File "libtag.dll"
+ File "libtasn1-3.dll"
+ File "libusbmuxd.dll"
+@@ -957,7 +952,6 @@
+ Delete "$INSTDIR\clementine.ico"
+ Delete "$INSTDIR\clementine.exe"
+ Delete "$INSTDIR\clementine-tagreader.exe"
+- Delete "$INSTDIR\clementine-spotifyblob.exe"
+ Delete "$INSTDIR\glew32.dll"
+ Delete "$INSTDIR\intl.dll"
+ Delete "$INSTDIR\libcdio-12.dll"
+@@ -1010,7 +1004,6 @@
+ Delete "$INSTDIR\libqjson.dll"
+ Delete "$INSTDIR\libsoup-2.4-1.dll"
+ Delete "$INSTDIR\libspeex-1.dll"
+- Delete "$INSTDIR\libspotify.dll"
+ Delete "$INSTDIR\libtag.dll"
+ Delete "$INSTDIR\libtasn1-3.dll"
+ Delete "$INSTDIR\libusbmuxd.dll"
+diff -rauN clementine-1.1.0/src/CMakeLists.txt clementine-libre-1.1.0/src/CMakeLists.txt
+--- clementine-1.1.0/src/CMakeLists.txt 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/src/CMakeLists.txt 2012-10-26 02:09:29.994361873 -0200
+@@ -630,7 +630,6 @@
+ internet/magnatunedownloaddialog.ui
+ internet/magnatunesettingspage.ui
+ internet/searchboxwidget.ui
+- internet/spotifysettingspage.ui
+
+ library/groupbydialog.ui
+ library/libraryfilterwidget.ui
+@@ -774,32 +773,6 @@
+ internet/lastfmstationdialog.ui
+ )
+
+-# Spotify
+-optional_source(HAVE_SPOTIFY
+- SOURCES
+- globalsearch/spotifysearchprovider.cpp
+- internet/spotifyserver.cpp
+- internet/spotifyservice.cpp
+- internet/spotifysettingspage.cpp
+- HEADERS
+- globalsearch/spotifysearchprovider.h
+- internet/spotifyserver.h
+- internet/spotifyservice.h
+- internet/spotifysettingspage.h
+- INCLUDE_DIRECTORIES
+- ${CMAKE_SOURCE_DIR}/ext/libclementine-spotifyblob
+- ${CMAKE_BINARY_DIR}/ext/libclementine-spotifyblob
+-)
+-
+-optional_source(HAVE_SPOTIFY_DOWNLOADER
+- SOURCES
+- internet/spotifyblobdownloader.cpp
+- HEADERS
+- internet/spotifyblobdownloader.h
+- INCLUDE_DIRECTORIES
+- ${QCA_INCLUDE_DIRS}
+-)
+-
+ # Platform specific - OS X
+ optional_source(APPLE
+ INCLUDE_DIRECTORIES
+@@ -1141,19 +1114,6 @@
+ endif (LINUX)
+ endif(HAVE_BREAKPAD)
+
+-if(HAVE_SPOTIFY)
+- target_link_libraries(clementine_lib
+- clementine-spotifyblob-messages
+- )
+-endif(HAVE_SPOTIFY)
+-
+-if(HAVE_SPOTIFY_DOWNLOADER)
+- target_link_libraries(clementine_lib
+- ${QCA_LIBRARIES}
+- )
+- link_directories(${QCA_LIBRARY_DIRS})
+-endif(HAVE_SPOTIFY_DOWNLOADER)
+-
+ if (APPLE)
+ target_link_libraries(clementine_lib
+ ${GROWL}
+@@ -1231,16 +1191,6 @@
+ clementine_lib
+ )
+
+-# macdeploy.py relies on the blob being built first.
+-if(HAVE_SPOTIFY_BLOB)
+- add_dependencies(clementine clementine-spotifyblob)
+-endif(HAVE_SPOTIFY_BLOB)
+-add_dependencies(clementine clementine-tagreader)
+-
+-set_target_properties(clementine PROPERTIES
+- MACOSX_BUNDLE_INFO_PLIST "../dist/Info.plist"
+-)
+-
+ if (APPLE)
+ install(FILES ../dist/clementine.icns
+ DESTINATION "${CMAKE_BINARY_DIR}/clementine.app/Contents/Resources")
+diff -rauN clementine-1.1.0/src/config.h.in clementine-libre-1.1.0/src/config.h.in
+--- clementine-1.1.0/src/config.h.in 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/src/config.h.in 2012-10-26 02:10:01.735935822 -0200
+@@ -38,8 +38,6 @@
+ #cmakedefine HAVE_QCA
+ #cmakedefine HAVE_SAC
+ #cmakedefine HAVE_SPARKLE
+-#cmakedefine HAVE_SPOTIFY
+-#cmakedefine HAVE_SPOTIFY_DOWNLOADER
+ #cmakedefine HAVE_STATIC_SQLITE
+ #cmakedefine HAVE_WIIMOTEDEV
+ #cmakedefine IMOBILEDEVICE_USES_UDIDS
+diff -rauN clementine-1.1.0/src/core/utilities.cpp clementine-libre-1.1.0/src/core/utilities.cpp
+--- clementine-1.1.0/src/core/utilities.cpp 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/src/core/utilities.cpp 2012-10-26 02:10:38.303908540 -0200
+@@ -310,9 +310,6 @@
+ return QDir::homePath();
+ #endif
+
+- case Path_LocalSpotifyBlob:
+- return GetConfigPath(Path_Root) + "/spotifyblob";
+-
+ default:
+ qFatal("%s", Q_FUNC_INFO);
+ return QString::null;
+diff -rauN clementine-1.1.0/src/core/utilities.h clementine-libre-1.1.0/src/core/utilities.h
+--- clementine-1.1.0/src/core/utilities.h 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/src/core/utilities.h 2012-10-26 02:11:04.965764358 -0200
+@@ -108,7 +108,6 @@
+ Path_NetworkCache,
+ Path_GstreamerRegistry,
+ Path_DefaultMusicLibrary,
+- Path_LocalSpotifyBlob,
+ Path_MoodbarCache,
+ };
+ QString GetConfigPath(ConfigPath config);
+diff -rauN clementine-1.1.0/src/covers/albumcoverloader.cpp clementine-libre-1.1.0/src/covers/albumcoverloader.cpp
+--- clementine-1.1.0/src/covers/albumcoverloader.cpp 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/src/covers/albumcoverloader.cpp 2012-10-26 03:59:14.488394050 -0200
+@@ -29,17 +29,12 @@
+ #include <QUrl>
+ #include <QNetworkReply>
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifyservice.h"
+-#endif
+-
+
+ AlbumCoverLoader::AlbumCoverLoader(QObject* parent)
+ : QObject(parent),
+ stop_requested_(false),
+ next_id_(1),
+- network_(new NetworkAccessManager(this)),
+- connected_spotify_(false)
++ network_(new NetworkAccessManager(this))
+ {
+ }
+
+@@ -167,30 +162,6 @@
+
+ remote_tasks_.insert(reply, task);
+ return TryLoadResult(true, false, QImage());
+- } else if (filename.toLower().startsWith("spotify://image/")) {
+- // HACK: we should add generic image URL handlers
+- #ifdef HAVE_SPOTIFY
+- SpotifyService* spotify = InternetModel::Service<SpotifyService>();
+-
+- if (!connected_spotify_) {
+- connect(spotify, SIGNAL(ImageLoaded(QString,QImage)),
+- SLOT(SpotifyImageLoaded(QString,QImage)));
+- connected_spotify_ = true;
+- }
+-
+- QString id = QUrl(filename).path();
+- if (id.startsWith('/')) {
+- id.remove(0, 1);
+- }
+- remote_spotify_tasks_.insert(id, task);
+-
+- // Need to schedule this in the spotify service's thread
+- QMetaObject::invokeMethod(spotify, "LoadImage", Qt::QueuedConnection,
+- Q_ARG(QString, id));
+- return TryLoadResult(true, false, QImage());
+- #else
+- return TryLoadResult(false, false, QImage());
+- #endif
+ }
+
+ QImage image(filename);
+@@ -198,16 +169,6 @@
+ image.isNull() ? task.options.default_output_image_: image);
+ }
+
+-void AlbumCoverLoader::SpotifyImageLoaded(const QString& id, const QImage& image) {
+- if (!remote_spotify_tasks_.contains(id))
+- return;
+-
+- Task task = remote_spotify_tasks_.take(id);
+- QImage scaled = ScaleAndPad(task.options, image);
+- emit ImageLoaded(task.id, scaled);
+- emit ImageLoaded(task.id, scaled, image);
+-}
+-
+ void AlbumCoverLoader::RemoteFetchFinished() {
+ QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
+ if (!reply)
+diff -rauN clementine-1.1.0/src/covers/albumcoverloader.h clementine-libre-1.1.0/src/covers/albumcoverloader.h
+--- clementine-1.1.0/src/covers/albumcoverloader.h 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/src/covers/albumcoverloader.h 2012-10-26 02:13:19.304984280 -0200
+@@ -62,7 +62,6 @@
+ protected slots:
+ void ProcessTasks();
+ void RemoteFetchFinished();
+- void SpotifyImageLoaded(const QString& url, const QImage& image);
+
+ protected:
+ enum State {
+@@ -102,13 +101,10 @@
+ QMutex mutex_;
+ QQueue<Task> tasks_;
+ QMap<QNetworkReply*, Task> remote_tasks_;
+- QMap<QString, Task> remote_spotify_tasks_;
+ quint64 next_id_;
+
+ NetworkAccessManager* network_;
+
+- bool connected_spotify_;
+-
+ static const int kMaxRedirects = 3;
+ };
+
+diff -rauN clementine-1.1.0/src/engines/gstenginepipeline.cpp clementine-libre-1.1.0/src/engines/gstenginepipeline.cpp
+--- clementine-1.1.0/src/engines/gstenginepipeline.cpp 2012-10-25 03:04:21.000000000 -0200
++++ clementine-libre-1.1.0/src/engines/gstenginepipeline.cpp 2012-10-26 02:14:35.834075631 -0200
+@@ -30,11 +30,6 @@
+ #include "core/utilities.h"
+ #include "internet/internetmodel.h"
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifyserver.h"
+-# include "internet/spotifyservice.h"
+-#endif
+-
+ const int GstEnginePipeline::kGstStateTimeoutNanosecs = 10000000;
+ const int GstEnginePipeline::kFaderFudgeMsec = 2000;
+
+@@ -139,42 +134,11 @@
+ bool GstEnginePipeline::ReplaceDecodeBin(const QUrl& url) {
+ GstElement* new_bin = NULL;
+
+- if (url.scheme() == "spotify") {
+- #ifdef HAVE_SPOTIFY
+- new_bin = gst_bin_new("spotify_bin");
+-
+- // Create elements
+- GstElement* src = engine_->CreateElement("tcpserversrc", new_bin);
+- GstElement* gdp = engine_->CreateElement("gdpdepay", new_bin);
+- if (!src || !gdp)
+- return false;
+-
+- // Pick a port number
+- const int port = Utilities::PickUnusedPort();
+- g_object_set(G_OBJECT(src), "host", "127.0.0.1", NULL);
+- g_object_set(G_OBJECT(src), "port", port, NULL);
+-
+- // Link the elements
+- gst_element_link(src, gdp);
+-
+- // Add a ghost pad
+- GstPad* pad = gst_element_get_static_pad(gdp, "src");
+- gst_element_add_pad(GST_ELEMENT(new_bin), gst_ghost_pad_new("src", pad));
+- gst_object_unref(GST_OBJECT(pad));
+-
+- // Tell spotify to start sending data to us.
+- InternetModel::Service<SpotifyService>()->server()->StartPlaybackLater(url.toString(), port);
+- #else // HAVE_SPOTIFY
+- qLog(Error) << "Tried to play a spotify:// url, but spotify support is not compiled in";
+- return false;
+- #endif
+- } else {
+ new_bin = engine_->CreateElement("uridecodebin");
+ g_object_set(G_OBJECT(new_bin), "uri", url.toEncoded().constData(), NULL);
+ CHECKED_GCONNECT(G_OBJECT(new_bin), "drained", &SourceDrainedCallback, this);
+ CHECKED_GCONNECT(G_OBJECT(new_bin), "pad-added", &NewPadCallback, this);
+ CHECKED_GCONNECT(G_OBJECT(new_bin), "notify::source", &SourceSetupCallback, this);
+- }
+
+ return ReplaceDecodeBin(new_bin);
+ }
+diff -rauN clementine-1.1.0/src/internet/internetmodel.cpp clementine-libre-1.1.0/src/internet/internetmodel.cpp
+--- clementine-1.1.0/src/internet/internetmodel.cpp 2012-10-22 04:24:28.000000000 -0200
++++ clementine-libre-1.1.0/src/internet/internetmodel.cpp 2012-10-26 02:15:18.005072563 -0200
+@@ -34,9 +34,6 @@
+ #ifdef HAVE_LIBLASTFM
+ #include "lastfmservice.h"
+ #endif
+-#ifdef HAVE_SPOTIFY
+- #include "spotifyservice.h"
+-#endif
+ #ifdef HAVE_GOOGLE_DRIVE
+ #include "googledriveservice.h"
+ #endif
+@@ -79,9 +76,6 @@
+ AddService(new SkyFmService(app, this));
+ AddService(new SomaFMService(app, this));
+ AddService(new SoundCloudService(app, this));
+-#ifdef HAVE_SPOTIFY
+- AddService(new SpotifyService(app, this));
+-#endif
+ }
+
+ void InternetModel::AddService(InternetService *service) {
+diff -rauN clementine-1.1.1/src/ui/about.cpp clementine-libre-1.1.1/src/ui/about.cpp
+--- clementine-1.1.1/src/ui/about.cpp 2012-10-11 09:16:40.000000000 -0200
++++ clementine-libre-1.1.1/src/ui/about.cpp 2013-05-13 02:19:40.262472593 -0300
+@@ -75,16 +75,9 @@
+
+ ret += QString("<br />%1</p>").arg(tr("...and all the Amarok contributors"));
+ ret += QString("<p><b>%1</b>").arg(tr("And:"));
+- ret += QString("<br /><a href=\"http://rainymood.com\">Rainy Mood</a>");
+ ret += QString("<br /><a href=\"http://www.smitelli.com/?page=blog&p=54\">Scott Smitelli</a>");
+ ret += QString("<br /><a href=\"http://hyperboleandahalf.blogspot.com\">Allie Brosh</a></p>");
+
+-#ifdef HAVE_SPOTIFY
+- ret += "<p>This product uses SPOTIFY(R) CORE but is not endorsed, certified "
+- "or otherwise approved in any way by Spotify. Spotify is the "
+- "registered trade mark of the Spotify Group.</p>";
+-#endif // HAVE_SPOTIFY
+-
+ return ret;
+ }
+
+diff -rauN clementine-1.1.0/src/ui/settingsdialog.cpp clementine-libre-1.1.0/src/ui/settingsdialog.cpp
+--- clementine-1.1.0/src/ui/settingsdialog.cpp 2012-10-11 09:16:40.000000000 -0200
++++ clementine-libre-1.1.0/src/ui/settingsdialog.cpp 2012-10-26 02:16:32.400950434 -0200
+@@ -55,10 +55,6 @@
+ # include "wiimotedev/wiimotesettingspage.h"
+ #endif
+
+-#ifdef HAVE_SPOTIFY
+-# include "internet/spotifysettingspage.h"
+-#endif
+-
+ #ifdef HAVE_GOOGLE_DRIVE
+ # include "internet/googledrivesettingspage.h"
+ #endif
+@@ -147,10 +143,6 @@
+ AddPage(Page_GoogleDrive, new GoogleDriveSettingsPage(this), providers);
+ #endif
+
+-#ifdef HAVE_SPOTIFY
+- AddPage(Page_Spotify, new SpotifySettingsPage(this), providers);
+-#endif
+-
+ AddPage(Page_Magnatune, new MagnatuneSettingsPage(this), providers);
+ AddPage(Page_DigitallyImported, new DigitallyImportedSettingsPage(this), providers);
+ AddPage(Page_BackgroundStreams, new BackgroundStreamsSettingsPage(this), providers);
+diff -rauN clementine-1.1.0/src/ui/settingsdialog.h clementine-libre-1.1.0/src/ui/settingsdialog.h
+--- clementine-1.1.0/src/ui/settingsdialog.h 2012-10-11 09:16:40.000000000 -0200
++++ clementine-libre-1.1.0/src/ui/settingsdialog.h 2012-10-26 02:16:56.596276994 -0200
+@@ -67,7 +67,6 @@
+ Page_Library,
+ Page_Lastfm,
+ Page_Grooveshark,
+- Page_Spotify,
+ Page_Magnatune,
+ Page_DigitallyImported,
+ Page_BackgroundStreams,
+diff -rauN clementine-1.1.0/ext/libclementine-common/core/logging.cpp clementine-libre-1.1.0/ext/libclementine-common/core/logging.cpp
+--- clementine-1.1.0/ext/libclementine-common/core/logging.cpp 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/ext/libclementine-common/core/logging.cpp 2012-10-26 02:20:08.682299778 -0200
+@@ -14,10 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+ #include <QtGlobal>
+
+ #include <cxxabi.h>
+diff -rauN clementine-1.1.0/ext/libclementine-common/core/logging.h clementine-libre-1.1.0/ext/libclementine-common/core/logging.h
+--- clementine-1.1.0/ext/libclementine-common/core/logging.h 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.0/ext/libclementine-common/core/logging.h 2012-10-26 02:20:34.937511945 -0200
+@@ -14,11 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+-
+ #ifndef LOGGING_H
+ #define LOGGING_H
+
+diff -rauN clementine-1.0.1/src/core/timeconstants.h clementine-libre-1.0.1/src/core/timeconstants.h
+--- clementine-1.0.1/src/core/timeconstants.h 2011-12-02 19:24:44.000000000 -0200
++++ clementine-libre-1.0.1/src/core/timeconstants.h 2012-05-30 03:10:10.338953893 -0300
+@@ -14,10 +14,6 @@
+ limitations under the License.
+ */
+
+-// Note: this file is licensed under the Apache License instead of GPL because
+-// it is used by the Spotify blob which links against libspotify and is not GPL
+-// compatible.
+-
+ #ifndef TIMECONSTANTS_H
+ #define TIMECONSTANTS_H
+
+diff -rauN clementine-1.1.1/src/core/backgroundstreams.cpp clementine-libre-1.1.1/src/core/backgroundstreams.cpp
+--- clementine-1.1.1/src/core/backgroundstreams.cpp 2012-10-11 09:16:39.000000000 -0200
++++ clementine-libre-1.1.1/src/core/backgroundstreams.cpp 2013-05-13 02:20:21.506864034 -0300
+@@ -9,7 +9,6 @@
+
+ const char* BackgroundStreams::kSettingsGroup = "BackgroundStreams";
+ const char* BackgroundStreams::kHypnotoadUrl = "hypnotoad:///";
+-const char* BackgroundStreams::kRainUrl = "http://data.clementine-player.org/rainymood";
+ const char* BackgroundStreams::kEnterpriseUrl = "enterprise:///";
+
+ BackgroundStreams::BackgroundStreams(EngineBase* engine, QObject* parent)
+@@ -28,7 +27,6 @@
+ int version = s.value("version", 0).toInt();
+ if (version < 1) {
+ AddStream(QT_TR_NOOP("Hypnotoad"), QUrl(kHypnotoadUrl));
+- AddStream(QT_TR_NOOP("Rain"), QUrl(kRainUrl));
+ }
+
+ if (version < kVersion) {
+diff -rauN clementine-1.1.1/src/analyzers/nyancatanalyzer.cpp clementine-libre-1.1.1/src/analyzers/nyancatanalyzer.cpp
+--- clementine-1.1.1/src/analyzers/nyancatanalyzer.cpp 2012-10-16 08:17:37.000000000 -0200
++++ clementine-libre-1.1.1/src/analyzers/nyancatanalyzer.cpp 2013-05-13 03:56:04.732771832 -0300
+@@ -29,7 +29,7 @@
+
+ NyanCatAnalyzer::NyanCatAnalyzer(QWidget* parent)
+ : Analyzer::Base(parent, 9),
+- cat_(":/nyancat.png"),
++ cat_(":/moognu.png"),
+ timer_id_(startTimer(kFrameIntervalMs)),
+ frame_(0),
+ current_buffer_(0),