diff --git a/.cvsignore b/.cvsignore
index e69de29..08688e3 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -0,0 +1 @@
+clementine-0.4.2.tar.gz
diff --git a/clementine-desktop-fix.patch b/clementine-desktop-fix.patch
new file mode 100644
index 0000000..ad4d075
--- /dev/null
+++ b/clementine-desktop-fix.patch
@@ -0,0 +1,9 @@
+diff -rupN clementine-0.4.2.old/dist/clementine.desktop clementine-0.4.2/dist/clementine.desktop
+--- clementine-0.4.2.old/dist/clementine.desktop 2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/dist/clementine.desktop 2010-07-05 14:37:36.000000000 -0400
+@@ -10,4 +10,4 @@ Icon=application-x-clementine
+ Terminal=false
+ Categories=AudioVideo;Player;Qt;
+ StartupNotify=false
+-MimeType=application/ogg;application/x-ogg;application/x-ogm-audio;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/ogg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/x-pn-realaudio;audio/x-scpls;audio/x-speex;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;video/x-ms-asf;x-content/audio-player
++MimeType=application/ogg;application/x-ogg;application/x-ogm-audio;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/ogg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/x-pn-realaudio;audio/x-scpls;audio/x-speex;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;video/x-ms-asf;x-content/audio-player;
diff --git a/clementine-font-paths.patch b/clementine-font-paths.patch
new file mode 100644
index 0000000..e24e5c5
--- /dev/null
+++ b/clementine-font-paths.patch
@@ -0,0 +1,12 @@
+diff -rupN clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp clementine-0.4.2/src/visualisations/projectmvisualisation.cpp
+--- clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp 2010-07-16 22:37:32.000000000 -0400
++++ clementine-0.4.2/src/visualisations/projectmvisualisation.cpp 2010-07-17 21:58:04.000000000 -0400
+@@ -106,6 +106,8 @@ void ProjectMVisualisation::InitProjectM
+ s.windowHeight = 512;
+ s.smoothPresetDuration = 5;
+ s.presetDuration = duration_;
++ s.titleFontURL = "/usr/share/fonts/bitstream-vera/Vera.ttf";
++ s.menuFontURL = "/usr/share/fonts/bitstream-vera/VeraMono.ttf";
+ s.presetURL = preset_path.toStdString();
+ s.shuffleEnabled = true;
+ s.easterEgg = 0; // ??
diff --git a/clementine-system-projectM.patch b/clementine-system-projectM.patch
new file mode 100644
index 0000000..e78e6cf
--- /dev/null
+++ b/clementine-system-projectM.patch
@@ -0,0 +1,120 @@
+diff -rupN clementine-0.4.2.old/CMakeLists.txt clementine-0.4.2/CMakeLists.txt
+--- clementine-0.4.2.old/CMakeLists.txt 2010-07-01 14:18:22.000000000 -0400
++++ clementine-0.4.2/CMakeLists.txt 2010-07-16 22:31:50.000000000 -0400
+@@ -123,7 +123,16 @@ endif(NOT GETTEXT_XGETTEXT_EXECUTABLE)
+ option(ENABLE_VISUALISATIONS "Use libprojectm visualisations" ON)
+ option(BUNDLE_PROJECTM_PRESETS "Install Clementine's own copies of libprojectm presets - disable this if you want to use a system package instead" ON)
+ if(ENABLE_VISUALISATIONS)
+- add_subdirectory(3rdparty/libprojectm)
++ # When/if upstream accepts our patches then these options can be used to link
++ # to system installed 3rdparty libraries instead.
++ option(USE_SYSTEM_PROJECTM "Don't set this option unless your system projectM library has been compiled with the Clementine patches in 3rdparty" OFF)
++ if(USE_SYSTEM_PROJECTM)
++ pkg_check_modules(LIBPROJECTM libprojectM)
++ else(USE_SYSTEM_PROJECTM)
++ add_subdirectory(3rdparty/libprojectm)
++ set(LIBPROJECTM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/libprojectm)
++ set(LIBPROJECTM_LIBRARIES projectM)
++ endif(USE_SYSTEM_PROJECTM)
+ endif(ENABLE_VISUALISATIONS)
+
+ # Test whether libsqlite3 is available and if FTS3 is enabled in it
+diff -rupN clementine-0.4.2.old/src/CMakeLists.txt clementine-0.4.2/src/CMakeLists.txt
+--- clementine-0.4.2.old/src/CMakeLists.txt 2010-07-01 14:17:36.000000000 -0400
++++ clementine-0.4.2/src/CMakeLists.txt 2010-07-16 22:34:36.000000000 -0400
+@@ -9,11 +9,11 @@ include_directories(../3rdparty/gmock/gt
+ include_directories(../3rdparty/qtsingleapplication)
+ include_directories(../3rdparty/qtiocompressor)
+ include_directories(../3rdparty/qxt)
+-include_directories(../3rdparty/libprojectm)
+
+-include_directories(${GLIB_INCLUDE_DIRECTORIES})
+-include_directories(${LIBXML_INCLUDE_DIRECTORIES})
+-include_directories(${GOBJECT_INCLUDE_DIRECTORIES})
++include_directories(${GLIB_INCLUDE_DIRS})
++include_directories(${LIBXML_INCLUDE_DIRS})
++include_directories(${GOBJECT_INCLUDE_DIRS})
++include_directories(${LIBPROJECTM_INCLUDE_DIRS})
+
+ cmake_policy(SET CMP0011 NEW)
+ include(../cmake/AddEngine.cmake)
+@@ -461,7 +461,7 @@ target_link_libraries(clementine_lib
+ )
+
+ if(ENABLE_VISUALISATIONS)
+- target_link_libraries(clementine_lib projectM)
++ target_link_libraries(clementine_lib ${LIBPROJECTM_LIBRARIES})
+ endif(ENABLE_VISUALISATIONS)
+
+ if (APPLE)
+diff -rupN clementine-0.4.2.old/src/config.h.in clementine-0.4.2/src/config.h.in
+--- clementine-0.4.2.old/src/config.h.in 2010-07-01 14:17:34.000000000 -0400
++++ clementine-0.4.2/src/config.h.in 2010-07-16 22:35:04.000000000 -0400
+@@ -27,6 +27,7 @@
+
+ #cmakedefine ENABLE_VISUALISATIONS
+ #cmakedefine VISUALISATIONS_USE_INSTALL_PREFIX
++#cmakedefine USE_SYSTEM_PROJECTM
+
+ #cmakedefine SNOW_LEOPARD
+ #cmakedefine LEOPARD
+diff -rupN clementine-0.4.2.old/src/visualisations/projectmpresetmodel.cpp clementine-0.4.2/src/visualisations/projectmpresetmodel.cpp
+--- clementine-0.4.2.old/src/visualisations/projectmpresetmodel.cpp 2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/visualisations/projectmpresetmodel.cpp 2010-07-16 22:36:19.000000000 -0400
+@@ -14,10 +14,15 @@
+ along with Clementine. If not, see .
+ */
+
++#include "config.h"
+ #include "projectmpresetmodel.h"
+ #include "projectmvisualisation.h"
+
+-#include
++#ifdef USE_SYSTEM_PROJECTM
++# include
++#else
++# include "projectM.hpp"
++#endif
+
+ #include
+ #include
+diff -rupN clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp clementine-0.4.2/src/visualisations/projectmvisualisation.cpp
+--- clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp 2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/visualisations/projectmvisualisation.cpp 2010-07-16 22:37:32.000000000 -0400
+@@ -30,7 +30,11 @@
+ #include
+ #include
+
+-#include
++#ifdef USE_SYSTEM_PROJECTM
++# include
++#else
++# include "projectM.hpp"
++#endif
+
+ #ifdef Q_OS_MAC
+ # include "core/mac_startup.h"
+diff -rupN clementine-0.4.2.old/src/visualisations/visualisationselector.cpp clementine-0.4.2/src/visualisations/visualisationselector.cpp
+--- clementine-0.4.2.old/src/visualisations/visualisationselector.cpp 2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/visualisations/visualisationselector.cpp 2010-07-16 22:38:00.000000000 -0400
+@@ -14,6 +14,7 @@
+ along with Clementine. If not, see .
+ */
+
++#include "config.h"
+ #include "projectmpresetmodel.h"
+ #include "projectmvisualisation.h"
+ #include "visualisationselector.h"
+@@ -21,7 +22,11 @@
+
+ #include
+
+-#include
++#ifdef USE_SYSTEM_PROJECTM
++# include
++#else
++# include "projectM.hpp"
++#endif
+
+ VisualisationSelector::VisualisationSelector(QWidget *parent)
+ : QDialog(parent),
diff --git a/clementine-system-qtiocompressor.patch b/clementine-system-qtiocompressor.patch
new file mode 100644
index 0000000..6bbcc90
--- /dev/null
+++ b/clementine-system-qtiocompressor.patch
@@ -0,0 +1,74 @@
+diff -rupN clementine-0.4.2.old/CMakeLists.txt clementine-0.4.2/CMakeLists.txt
+--- clementine-0.4.2.old/CMakeLists.txt 2010-07-16 22:42:41.000000000 -0400
++++ clementine-0.4.2/CMakeLists.txt 2010-07-16 22:46:52.000000000 -0400
+@@ -169,8 +169,17 @@ else(USE_SYSTEM_QTSINGLEAPPLICATION)
+ set(QTSINGLEAPPLICATION_LIBRARIES qtsingleapplication)
+ endif(USE_SYSTEM_QTSINGLEAPPLICATION)
+
++# QtIoCompressor isn't patched, so we can use a system version if it's
++# available
++find_path(QTIOCOMPRESSOR_INCLUDE_DIRS qtiocompressor.h PATH_SUFFIXES QtSolutions)
++find_library(QTIOCOMPRESSOR_LIBRARIES QtSolutions_IOCompressor-2.3)
++if(NOT QTIOCOMPRESSOR_INCLUDE_DIRS OR NOT QTIOCOMPRESSOR_LIBRARIES)
++ add_subdirectory(3rdparty/qtiocompressor)
++ set(QTIOCOMPRESSOR_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtiocompressor)
++ set(QTIOCOMPRESSOR_LIBRARIES qtiocompressor)
++endif(NOT QTIOCOMPRESSOR_INCLUDE_DIRS OR NOT QTIOCOMPRESSOR_LIBRARIES)
++
+ # Subdirectories
+-add_subdirectory(3rdparty/qtiocompressor)
+ add_subdirectory(src)
+ if (NOT APPLE)
+ add_subdirectory(3rdparty/qxt)
+diff -rupN clementine-0.4.2.old/src/CMakeLists.txt clementine-0.4.2/src/CMakeLists.txt
+--- clementine-0.4.2.old/src/CMakeLists.txt 2010-07-16 22:43:28.000000000 -0400
++++ clementine-0.4.2/src/CMakeLists.txt 2010-07-16 22:47:48.000000000 -0400
+@@ -6,7 +6,6 @@ set(CMAKE_CXX_FLAGS "-Woverloaded-virtua
+ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${SPARKLE})
+ include_directories(../3rdparty/gmock/gtest/include)
+-include_directories(../3rdparty/qtiocompressor)
+ include_directories(../3rdparty/qxt)
+
+ include_directories(${GLIB_INCLUDE_DIRS})
+@@ -14,6 +13,7 @@ include_directories(${LIBXML_INCLUDE_DIR
+ include_directories(${GOBJECT_INCLUDE_DIRS})
+ include_directories(${LIBPROJECTM_INCLUDE_DIRS})
+ include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS})
++include_directories(${QTIOCOMPRESSOR_INCLUDE_DIRS})
+
+ cmake_policy(SET CMP0011 NEW)
+ include(../cmake/AddEngine.cmake)
+@@ -449,7 +449,6 @@ add_library(clementine_lib STATIC
+ add_dependencies(clementine_lib pot)
+
+ target_link_libraries(clementine_lib
+- qtiocompressor
+ chardet
+ ${GOBJECT_LIBRARIES}
+ ${GLIB_LIBRARIES}
+@@ -458,6 +457,7 @@ target_link_libraries(clementine_lib
+ ${ENGINE_LIBRARIES}
+ ${LASTFM_LIBRARIES}
+ ${QTSINGLEAPPLICATION_LIBRARIES}
++ ${QTIOCOMPRESSOR_LIBRARIES}
+ )
+
+ if(ENABLE_VISUALISATIONS)
+diff -rupN clementine-0.4.2.old/src/radio/magnatuneservice.cpp clementine-0.4.2/src/radio/magnatuneservice.cpp
+--- clementine-0.4.2.old/src/radio/magnatuneservice.cpp 2010-07-01 14:16:36.000000000 -0400
++++ clementine-0.4.2/src/radio/magnatuneservice.cpp 2010-07-16 22:49:14.000000000 -0400
+@@ -28,11 +28,12 @@
+ #include "ui/iconloader.h"
+ #include "ui/settingsdialog.h"
+
++#include "qtiocompressor.h"
++
+ #include
+ #include
+ #include
+ #include
+-#include
+ #include
+ #include
+ #include
diff --git a/clementine-system-qtsingleapplication.patch b/clementine-system-qtsingleapplication.patch
new file mode 100644
index 0000000..8a6e2a7
--- /dev/null
+++ b/clementine-system-qtsingleapplication.patch
@@ -0,0 +1,68 @@
+diff -rupN clementine-0.4.2.old/CMakeLists.txt clementine-0.4.2/CMakeLists.txt
+--- clementine-0.4.2.old/CMakeLists.txt 2010-07-16 22:31:50.000000000 -0400
++++ clementine-0.4.2/CMakeLists.txt 2010-07-16 22:42:41.000000000 -0400
+@@ -124,7 +124,7 @@ option(ENABLE_VISUALISATIONS "Use libpro
+ option(BUNDLE_PROJECTM_PRESETS "Install Clementine's own copies of libprojectm presets - disable this if you want to use a system package instead" ON)
+ if(ENABLE_VISUALISATIONS)
+ # When/if upstream accepts our patches then these options can be used to link
+- # to system installed 3rdparty libraries instead.
++ # to system installed projectM instead.
+ option(USE_SYSTEM_PROJECTM "Don't set this option unless your system projectM library has been compiled with the Clementine patches in 3rdparty" OFF)
+ if(USE_SYSTEM_PROJECTM)
+ pkg_check_modules(LIBPROJECTM libprojectM)
+@@ -157,8 +157,19 @@ if(STATIC_SQLITE)
+ add_subdirectory(3rdparty/qsqlite)
+ endif(STATIC_SQLITE)
+
++# When/if upstream accepts our patches then these options can be used to link
++# to system installed qtsingleapplication instead.
++option(USE_SYSTEM_QTSINGLEAPPLICATION "Don't set this option unless your system QtSingleApplication library has been compiled with the Clementine patches in 3rdparty" OFF)
++if(USE_SYSTEM_QTSINGLEAPPLICATION)
++ find_path(QTSINGLEAPPLICATION_INCLUDE_DIRS qtsingleapplication.h PATH_SUFFIXES QtSolutions)
++ find_library(QTSINGLEAPPLICATION_LIBRARIES QtSolutions_SingleApplication-2.6)
++else(USE_SYSTEM_QTSINGLEAPPLICATION)
++ add_subdirectory(3rdparty/qtsingleapplication)
++ set(QTSINGLEAPPLICATION_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/qtsingleapplication)
++ set(QTSINGLEAPPLICATION_LIBRARIES qtsingleapplication)
++endif(USE_SYSTEM_QTSINGLEAPPLICATION)
++
+ # Subdirectories
+-add_subdirectory(3rdparty/qtsingleapplication)
+ add_subdirectory(3rdparty/qtiocompressor)
+ add_subdirectory(src)
+ if (NOT APPLE)
+diff -rupN clementine-0.4.2.old/src/CMakeLists.txt clementine-0.4.2/src/CMakeLists.txt
+--- clementine-0.4.2.old/src/CMakeLists.txt 2010-07-16 22:34:36.000000000 -0400
++++ clementine-0.4.2/src/CMakeLists.txt 2010-07-16 22:43:28.000000000 -0400
+@@ -6,7 +6,6 @@ set(CMAKE_CXX_FLAGS "-Woverloaded-virtua
+ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+ include_directories(${SPARKLE})
+ include_directories(../3rdparty/gmock/gtest/include)
+-include_directories(../3rdparty/qtsingleapplication)
+ include_directories(../3rdparty/qtiocompressor)
+ include_directories(../3rdparty/qxt)
+
+@@ -14,6 +13,7 @@ include_directories(${GLIB_INCLUDE_DIRS}
+ include_directories(${LIBXML_INCLUDE_DIRS})
+ include_directories(${GOBJECT_INCLUDE_DIRS})
+ include_directories(${LIBPROJECTM_INCLUDE_DIRS})
++include_directories(${QTSINGLEAPPLICATION_INCLUDE_DIRS})
+
+ cmake_policy(SET CMP0011 NEW)
+ include(../cmake/AddEngine.cmake)
+@@ -449,7 +449,6 @@ add_library(clementine_lib STATIC
+ add_dependencies(clementine_lib pot)
+
+ target_link_libraries(clementine_lib
+- qtsingleapplication
+ qtiocompressor
+ chardet
+ ${GOBJECT_LIBRARIES}
+@@ -458,6 +457,7 @@ target_link_libraries(clementine_lib
+ ${QT_LIBRARIES}
+ ${ENGINE_LIBRARIES}
+ ${LASTFM_LIBRARIES}
++ ${QTSINGLEAPPLICATION_LIBRARIES}
+ )
+
+ if(ENABLE_VISUALISATIONS)
diff --git a/clementine-system-qxt.patch b/clementine-system-qxt.patch
new file mode 100644
index 0000000..1c46119
--- /dev/null
+++ b/clementine-system-qxt.patch
@@ -0,0 +1,69 @@
+diff -rupN clementine-0.4.2.old/CMakeLists.txt clementine-0.4.2/CMakeLists.txt
+--- clementine-0.4.2.old/CMakeLists.txt 2010-07-16 22:46:52.000000000 -0400
++++ clementine-0.4.2/CMakeLists.txt 2010-07-18 14:42:16.000000000 -0400
+@@ -110,7 +110,6 @@ if (WIN32)
+ SET(CMAKE_RC_COMPILE_OBJECT " -O coff -o