From 429d1fef7146a104826589394d943caa3011f751 Mon Sep 17 00:00:00 2001 From: Tom spot Callaway Date: Dec 08 2020 22:17:05 +0000 Subject: banshee has not had an upstream for 7 years now, the code is terrible and bitrotten and it no longer even works at all on modern Fedora. please do not revive unless you are prepared to rewrite very large chunks of C# code. --- diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3c3673a..0000000 --- a/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -banshee-1-1.6.1.tar.bz2 -banshee-1-1.7.4.tar.bz2 -/banshee-1-1.7.6.tar.bz2 -/banshee-1-1.8.0.tar.bz2 -/banshee-1-1.9.1.tar.bz2 -/banshee-1-1.9.2.tar.bz2 -/banshee-1-1.9.3.tar.bz2 -/banshee-1-1.9.4.tar.bz2 -/banshee-1-1.9.5.tar.bz2 -/banshee-1.9.6.tar.bz2 -/banshee-2.0.0.tar.bz2 -/banshee-2.0.1.tar.bz2 -/banshee-2.2.0.tar.xz -/banshee-2.2.1.tar.xz -/banshee-2.4.0.tar.xz -/banshee-2.4.1.tar.xz -/banshee-2.6.0.tar.xz -/banshee-2.6.1.tar.xz -/banshee-2.6.2.tar.xz diff --git a/1018-Fix-reference-to-gtk-stock-icons.patch b/1018-Fix-reference-to-gtk-stock-icons.patch deleted file mode 100644 index 07eb935..0000000 --- a/1018-Fix-reference-to-gtk-stock-icons.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 46590084ade13f5edc6c8046275ada1709501016 Mon Sep 17 00:00:00 2001 -From: Fabrice Bellet -Date: Wed, 24 Jul 2019 21:22:37 +0200 -Subject: [PATCH] Fix reference to gtk stock icons - ---- - src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs -index facf99ff4..207719e5a 100644 ---- a/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs -+++ b/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs -@@ -49,14 +49,13 @@ namespace Banshee.Dap.Gui - public DapActions () : base ("dap") - { - AddImportant ( -- new ActionEntry ("SyncDapAction", null, -+ new ActionEntry ("SyncDapAction", Stock.Refresh, - Catalog.GetString ("Sync"), null, - String.Empty, OnSyncDap) - ); - - AddUiFromFile ("GlobalUI.xml"); - -- this["SyncDapAction"].IconName = Stock.Refresh; - ServiceManager.SourceManager.ActiveSourceChanged += OnActiveSourceChanged; - Actions.SourceActions.Updated += delegate { UpdateActions (); }; - OnActiveSourceChanged (null); --- -2.21.0 - diff --git a/Don-t-use-the-new-decoded-pad-signal-of-decodebin.patch b/Don-t-use-the-new-decoded-pad-signal-of-decodebin.patch deleted file mode 100644 index 3a012c9..0000000 --- a/Don-t-use-the-new-decoded-pad-signal-of-decodebin.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Tue, 28 May 2013 11:36:04 +0200 -Subject: Don't use the new-decoded-pad signal of decodebin - -It is not available anymore in 1.0 and pad-added should be used. ---- - libbanshee/banshee-bpmdetector.c | 8 ++++---- - libbanshee/banshee-transcoder.c | 8 ++++---- - 2 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/libbanshee/banshee-bpmdetector.c b/libbanshee/banshee-bpmdetector.c -index 68b0419..131d2e5 100644 ---- a/libbanshee/banshee-bpmdetector.c -+++ b/libbanshee/banshee-bpmdetector.c -@@ -159,8 +159,8 @@ bbd_pipeline_bus_callback (GstBus *bus, GstMessage *message, gpointer data) - } - - static void --bbd_new_decoded_pad(GstElement *decodebin, GstPad *pad, -- gboolean last, gpointer data) -+bbd_pad_added(GstElement *decodebin, GstPad *pad, -+ gpointer data) - { - GstCaps *caps; - GstStructure *str; -@@ -244,8 +244,8 @@ bbd_pipeline_construct (BansheeBpmDetector *detector) - } - - // decodebin and audioconvert are linked dynamically when the decodebin creates a new pad -- g_signal_connect(detector->decodebin, "new-decoded-pad", -- G_CALLBACK(bbd_new_decoded_pad), detector); -+ g_signal_connect(detector->decodebin, "pad-added", -+ G_CALLBACK(bbd_pad_added), detector); - - if (!gst_element_link_many (detector->audioconvert, detector->bpmdetect, detector->fakesink, NULL)) { - bbd_raise_error (detector, _("Could not link pipeline elements"), NULL); -diff --git a/libbanshee/banshee-transcoder.c b/libbanshee/banshee-transcoder.c -index 0e241f0..f678838 100644 ---- a/libbanshee/banshee-transcoder.c -+++ b/libbanshee/banshee-transcoder.c -@@ -185,8 +185,8 @@ gst_transcoder_build_encoder(const gchar *encoder_pipeline) - } - - static void --gst_transcoder_new_decoded_pad(GstElement *decodebin, GstPad *pad, -- gboolean last, gpointer data) -+gst_transcoder_pad_added(GstElement *decodebin, GstPad *pad, -+ gpointer data) - { - GstCaps *caps; - GstStructure *str; -@@ -293,8 +293,8 @@ gst_transcoder_create_pipeline(GstTranscoder *transcoder, - - gst_element_link(source_elem, decoder_elem); - -- g_signal_connect(decoder_elem, "new-decoded-pad", -- G_CALLBACK(gst_transcoder_new_decoded_pad), transcoder); -+ g_signal_connect(decoder_elem, "pad-added", -+ G_CALLBACK(gst_transcoder_pad_added), transcoder); - - gst_bus_add_watch(gst_pipeline_get_bus(GST_PIPELINE(transcoder->pipeline)), - gst_transcoder_bus_callback, transcoder); diff --git a/Dont-try-to-mount-null-devices.patch b/Dont-try-to-mount-null-devices.patch deleted file mode 100644 index 2669a84..0000000 --- a/Dont-try-to-mount-null-devices.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d79cb9f5e693015eab0c9707da96fc3eb761b209 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andr=C3=A9s=20G=2E=20Aragoneses?= -Date: Wed, 19 Mar 2014 02:37:03 +0100 -Subject: [PATCH] Gio: don't try to mount null devices (bgo#726147) - -The log in bgo#726147 can tell us that we were forgetting a null -check in HandleMonitorMountAdded(). Turns out we had a similar -null check a bit later in this file in the VolumeRemoved() method, -which I copy-pasted here just by replacing the "unmount" word in -the log statement with "mount" in this case. ---- - src/Backends/Banshee.Gio/Banshee.Hardware.Gio/LowLevel/Manager.cs | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/LowLevel/Manager.cs b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/LowLevel/Manager.cs -index f1ff6c4..f635b93 100644 ---- a/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/LowLevel/Manager.cs -+++ b/src/Backends/Banshee.Gio/Banshee.Hardware.Gio/LowLevel/Manager.cs -@@ -78,6 +78,11 @@ void HandleMonitorMountAdded (object o, MountAddedArgs args) - return; - - var device = GudevDeviceFromGioMount (mount); -+ if (device == null) { -+ Hyena.Log.Debug (string.Format ("Tried to mount {0}/{1} with no matching udev device", mount.Volume.Name, mount.Volume.Uuid)); -+ return; -+ } -+ - volume_device_map [mount.Volume.Handle] = device; - var h = DeviceAdded; - if (h != null) { --- -1.9.3 diff --git a/Initial-port-to-GStreamer-1.0.patch b/Initial-port-to-GStreamer-1.0.patch deleted file mode 100644 index be65937..0000000 --- a/Initial-port-to-GStreamer-1.0.patch +++ /dev/null @@ -1,1022 +0,0 @@ -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Wed, 19 Sep 2012 11:34:06 +0200 -Subject: Initial port to GStreamer 1.0 - ---- - build/m4/banshee/gstreamer.m4 | 19 +++--- - data/audio-profiles/wav.xml.in | 5 +- - libbanshee/banshee-bpmdetector.c | 11 ++-- - libbanshee/banshee-gst.h | 4 +- - libbanshee/banshee-player-cdda.c | 5 +- - libbanshee/banshee-player-dvd.c | 4 +- - libbanshee/banshee-player-equalizer.c | 4 +- - libbanshee/banshee-player-missing-elements.c | 2 +- - libbanshee/banshee-player-pipeline.c | 37 ++++++----- - libbanshee/banshee-player-private.h | 13 ++-- - libbanshee/banshee-player-replaygain.c | 29 ++++----- - libbanshee/banshee-player-video.c | 89 +++++++++++++------------- - libbanshee/banshee-player-vis.c | 88 ++++++++----------------- - libbanshee/banshee-player.c | 11 ++-- - libbanshee/banshee-ripper.c | 16 ++--- - libbanshee/banshee-tagger.c | 2 +- - libbanshee/banshee-transcoder.c | 19 +++--- - 17 files changed, 156 insertions(+), 202 deletions(-) - -diff --git a/build/m4/banshee/gstreamer.m4 b/build/m4/banshee/gstreamer.m4 -index 6267cce..917cf58 100644 ---- a/build/m4/banshee/gstreamer.m4 -+++ b/build/m4/banshee/gstreamer.m4 -@@ -1,17 +1,18 @@ - AC_DEFUN([BANSHEE_CHECK_GSTREAMER], - [ -- GSTREAMER_REQUIRED_VERSION=0.10.26 -+ GSTREAMER_REQUIRED_VERSION=0.11.99 - AC_SUBST(GSTREAMER_REQUIRED_VERSION) - - PKG_CHECK_MODULES(GST, -- gstreamer-0.10 >= $GSTREAMER_REQUIRED_VERSION -- gstreamer-base-0.10 >= $GSTREAMER_REQUIRED_VERSION -- gstreamer-plugins-base-0.10 >= $GSTREAMER_REQUIRED_VERSION -- gstreamer-controller-0.10 >= $GSTREAMER_REQUIRED_VERSION -- gstreamer-dataprotocol-0.10 >= $GSTREAMER_REQUIRED_VERSION -- gstreamer-fft-0.10 >= $GSTREAMER_REQUIRED_VERSION) -- -- GST_LIBS="$GST_LIBS -lgstvideo-0.10 -lgstinterfaces-0.10 -lgstcdda-0.10 -lgstpbutils-0.10 -lgsttag-0.10" -+ gstreamer-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-base-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-controller-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-plugins-base-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-audio-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-fft-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-pbutils-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-tag-1.0 >= $GSTREAMER_REQUIRED_VERSION -+ gstreamer-video-1.0 >= $GSTREAMER_REQUIRED_VERSION) - - AC_SUBST(GST_CFLAGS) - AC_SUBST(GST_LIBS) -diff --git a/data/audio-profiles/wav.xml.in b/data/audio-profiles/wav.xml.in -index 35cd1d2..6dc1bab 100644 ---- a/data/audio-profiles/wav.xml.in -+++ b/data/audio-profiles/wav.xml.in -@@ -14,10 +14,7 @@ - "audioresample" - "audioconvert" - (+ "audio/x-raw-int, " -- "endianness=(int)1234, " -- "width=(int)16, " -- "depth=(int)16, " -- "signed=(boolean)true, " -+ "format=(string)S16LE, " - "rate=(int)44100, " - "channels=(int)2" ) - "wavenc") -diff --git a/libbanshee/banshee-bpmdetector.c b/libbanshee/banshee-bpmdetector.c -index c06ffcb..68b0419 100644 ---- a/libbanshee/banshee-bpmdetector.c -+++ b/libbanshee/banshee-bpmdetector.c -@@ -30,6 +30,7 @@ - # include "config.h" - #endif - -+#include - #include - #include - -@@ -50,7 +51,7 @@ struct BansheeBpmDetector { - - /* - * You can run this pipeline on the cmd line with: -- * gst-launch -m filesrc location=/path/to/my.mp3 ! decodebin2 ! \ -+ * gst-launch -m filesrc location=/path/to/my.mp3 ! decodebin ! \ - * audioconvert ! bpmdetect ! fakesink - */ - -@@ -168,14 +169,14 @@ bbd_new_decoded_pad(GstElement *decodebin, GstPad *pad, - - g_return_if_fail(detector != NULL); - -- audiopad = gst_element_get_pad(detector->audioconvert, "sink"); -+ audiopad = gst_element_get_static_pad(detector->audioconvert, "sink"); - - if(GST_PAD_IS_LINKED(audiopad)) { - g_object_unref(audiopad); - return; - } - -- caps = gst_pad_get_caps(pad); -+ caps = gst_pad_query_caps(pad, NULL); - str = gst_caps_get_structure(caps, 0); - - if(!g_strrstr(gst_structure_get_name(str), "audio")) { -@@ -209,9 +210,9 @@ bbd_pipeline_construct (BansheeBpmDetector *detector) - return FALSE; - } - -- detector->decodebin = gst_element_factory_make ("decodebin2", "decodebin2"); -+ detector->decodebin = gst_element_factory_make ("decodebin", "decodebin"); - if (detector->decodebin == NULL) { -- bbd_raise_error (detector, _("Could not create decodebin2 plugin"), NULL); -+ bbd_raise_error (detector, _("Could not create decodebin plugin"), NULL); - return FALSE; - } - -diff --git a/libbanshee/banshee-gst.h b/libbanshee/banshee-gst.h -index 85662cf..332f356 100644 ---- a/libbanshee/banshee-gst.h -+++ b/libbanshee/banshee-gst.h -@@ -41,9 +41,11 @@ - #define BANSHEE_GST_ITERATOR_ITERATE(iter,child_type,child_name,free,block) { \ - gboolean iter##_done = FALSE; \ - while (!iter##_done) { \ -+ GValue child_value = {0, }; \ - child_type child_name; \ -- switch (gst_iterator_next (iter, (gpointer)&child_name)) { \ -+ switch (gst_iterator_next (iter, &child_value)) { \ - case GST_ITERATOR_OK: { \ -+ child_name = (child_type) g_value_get_object(&child_value); \ - { block; } \ - break; \ - } \ -diff --git a/libbanshee/banshee-player-cdda.c b/libbanshee/banshee-player-cdda.c -index 8be2bdd..401edf0 100644 ---- a/libbanshee/banshee-player-cdda.c -+++ b/libbanshee/banshee-player-cdda.c -@@ -28,7 +28,8 @@ - // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - // - --#include -+#include -+#include - #include "banshee-player-cdda.h" - - // --------------------------------------------------------------------------- -@@ -46,7 +47,7 @@ bp_cdda_get_cdda_source (GstElement *playbin) - - g_object_get (playbin, "source", &source, NULL); - -- if (source == NULL || !GST_IS_CDDA_BASE_SRC (source)) { -+ if (source == NULL || !GST_IS_AUDIO_CD_SRC (source)) { - if (source != NULL) { - g_object_unref (source); - } -diff --git a/libbanshee/banshee-player-dvd.c b/libbanshee/banshee-player-dvd.c -index 55d499c..991b506 100644 ---- a/libbanshee/banshee-player-dvd.c -+++ b/libbanshee/banshee-player-dvd.c -@@ -296,7 +296,7 @@ bp_dvd_go_to_next_chapter (BansheePlayer *player) - { - gint64 index; - GstFormat format = gst_format_get_by_nick ("chapter"); -- gst_element_query_position (player->playbin, &format, &index); -+ gst_element_query_position (player->playbin, format, &index); - gst_element_seek (player->playbin, 1.0, format, GST_SEEK_FLAG_FLUSH, - GST_SEEK_TYPE_SET, index + 1, GST_SEEK_TYPE_NONE, 0); - } -@@ -306,7 +306,7 @@ bp_dvd_go_to_previous_chapter (BansheePlayer *player) - { - gint64 index; - GstFormat format = gst_format_get_by_nick ("chapter"); -- gst_element_query_position (player->playbin, &format, &index); -+ gst_element_query_position (player->playbin, format, &index); - gst_element_seek (player->playbin, 1.0, format, GST_SEEK_FLAG_FLUSH, - GST_SEEK_TYPE_SET, index - 1, GST_SEEK_TYPE_NONE, 0); - } -diff --git a/libbanshee/banshee-player-equalizer.c b/libbanshee/banshee-player-equalizer.c -index a496ada..0cbb3b7 100644 ---- a/libbanshee/banshee-player-equalizer.c -+++ b/libbanshee/banshee-player-equalizer.c -@@ -122,7 +122,7 @@ bp_equalizer_set_gain (BansheePlayer *player, guint bandnum, gdouble gain) - g_return_if_fail (IS_BANSHEE_PLAYER (player)); - - if (player->equalizer != NULL) { -- GstObject *band; -+ GObject *band; - - g_return_if_fail (bandnum < gst_child_proxy_get_children_count (GST_CHILD_PROXY (player->equalizer))); - -@@ -188,7 +188,7 @@ bp_equalizer_get_frequencies (BansheePlayer *player, gdouble **freq) - count = gst_child_proxy_get_children_count (GST_CHILD_PROXY (player->equalizer)); - - for (i = 0; i < count; i++) { -- GstObject *band; -+ GObject *band; - - band = gst_child_proxy_get_child_by_index (GST_CHILD_PROXY (player->equalizer), i); - g_object_get (G_OBJECT (band), "freq", &(*freq)[i], NULL); -diff --git a/libbanshee/banshee-player-missing-elements.c b/libbanshee/banshee-player-missing-elements.c -index 20804c4..30118c5 100644 ---- a/libbanshee/banshee-player-missing-elements.c -+++ b/libbanshee/banshee-player-missing-elements.c -@@ -170,7 +170,7 @@ _bp_missing_elements_handle_state_changed (BansheePlayer *player, GstState old, - } - #endif - -- install_return = gst_install_plugins_async (details, player->install_plugins_context, -+ install_return = gst_install_plugins_async ((const gchar * const*) details, player->install_plugins_context, - bp_missing_elements_handle_install_result, player); - - if (install_return != GST_INSTALL_PLUGINS_STARTED_OK) { -diff --git a/libbanshee/banshee-player-pipeline.c b/libbanshee/banshee-player-pipeline.c -index ed845f3..6c2af35 100644 ---- a/libbanshee/banshee-player-pipeline.c -+++ b/libbanshee/banshee-player-pipeline.c -@@ -76,7 +76,7 @@ playbin_stream_changed_cb (GstElement * element, BansheePlayer *player) - GstMessage *msg; - - // We're being called from the streaming thread, so don't do anything here -- msg = gst_message_new_application (GST_OBJECT (player->playbin), gst_structure_new ("stream-changed", NULL)); -+ msg = gst_message_new_application (GST_OBJECT (player->playbin), gst_structure_new_empty ("stream-changed")); - gst_element_post_message (player->playbin, msg); - } - -@@ -218,6 +218,11 @@ bp_pipeline_bus_callback (GstBus *bus, GstMessage *message, gpointer userdata) - break; - } - -+ case GST_MESSAGE_STREAM_START: { -+ bp_next_track_starting (player); -+ break; -+ } -+ - case GST_MESSAGE_APPLICATION: { - const gchar * name; - const GstStructure * s = gst_message_get_structure (message); -@@ -289,11 +294,11 @@ _bp_pipeline_construct (BansheePlayer *player) - - // Playbin is the core element that handles autoplugging (finding the right - // source and decoder elements) based on source URI and stream content -- player->playbin = gst_element_factory_make ("playbin2", "playbin"); -+ player->playbin = gst_element_factory_make ("playbin", "playbin"); - - #ifdef ENABLE_GAPLESS - // FIXME: Connect a proxy about-to-finish callback that will generate a next-track-starting callback. -- // This can be removed once playbin2 generates its own next-track signal. -+ // This can be removed once playbin generates its own next-track signal. - // bgo#584987 - this is included in >= 0.10.26 - g_signal_connect (player->playbin, "about-to-finish", G_CALLBACK (bp_about_to_finish_callback), player); - #endif //ENABLE_GAPLESS -@@ -305,18 +310,13 @@ _bp_pipeline_construct (BansheePlayer *player) - g_signal_connect (player->playbin, "audio-changed", G_CALLBACK (playbin_stream_changed_cb), player); - g_signal_connect (player->playbin, "text-changed", G_CALLBACK (playbin_stream_changed_cb), player); - -- // Try to find an audio sink, prefer gconf, which typically is set to auto these days, -- // fall back on auto, which should work on windows, and as a last ditch, try alsa -- audiosink = gst_element_factory_make ("gconfaudiosink", "audiosink"); -- if (audiosink == NULL) { -- audiosink = gst_element_factory_make ("directsoundsink", "audiosink"); -- if (audiosink != NULL) { -- g_object_set (G_OBJECT (audiosink), "volume", 1.0, NULL); -- } else { -- audiosink = gst_element_factory_make ("autoaudiosink", "audiosink"); -- if (audiosink == NULL) { -- audiosink = gst_element_factory_make ("alsasink", "audiosink"); -- } -+ audiosink = gst_element_factory_make ("directsoundsink", "audiosink"); -+ if (audiosink != NULL) { -+ g_object_set (G_OBJECT (audiosink), "volume", 1.0, NULL); -+ } else { -+ audiosink = gst_element_factory_make ("autoaudiosink", "audiosink"); -+ if (audiosink == NULL) { -+ audiosink = gst_element_factory_make ("alsasink", "audiosink"); - } - } - -@@ -341,7 +341,6 @@ _bp_pipeline_construct (BansheePlayer *player) - GstIterator *elem_iter = gst_bin_iterate_recurse (GST_BIN (audiosink)); - BANSHEE_GST_ITERATOR_ITERATE (elem_iter, GstElement *, element, TRUE, { - player->audiosink_has_volume |= g_object_class_find_property (G_OBJECT_GET_CLASS (element), "volume") != NULL; -- gst_object_unref (element); - }); - } - bp_debug ("Audiosink has volume: %s", -@@ -383,7 +382,7 @@ _bp_pipeline_construct (BansheePlayer *player) - } - - // Ghost pad the audio bin so audio is passed from the bin into the tee -- teepad = gst_element_get_pad (player->audiotee, "sink"); -+ teepad = gst_element_get_static_pad (player->audiotee, "sink"); - gst_element_add_pad (player->audiobin, gst_ghost_pad_new ("sink", teepad)); - gst_object_unref (teepad); - -@@ -411,8 +410,8 @@ _bp_pipeline_construct (BansheePlayer *player) - gst_bus_add_watch (bus, bp_pipeline_bus_callback, player); - - // Link the first tee pad to the primary audio sink queue -- GstPad *sinkpad = gst_element_get_pad (audiosinkqueue, "sink"); -- pad = gst_element_get_request_pad (player->audiotee, "src%d"); -+ GstPad *sinkpad = gst_element_get_static_pad (audiosinkqueue, "sink"); -+ pad = gst_element_get_request_pad (player->audiotee, "src_%u"); - g_object_set(player->audiotee, "alloc-pad", pad, NULL); - gst_pad_link (pad, sinkpad); - gst_object_unref (GST_OBJECT (pad)); -diff --git a/libbanshee/banshee-player-private.h b/libbanshee/banshee-player-private.h -index 9fed356..9346911 100644 ---- a/libbanshee/banshee-player-private.h -+++ b/libbanshee/banshee-player-private.h -@@ -42,14 +42,14 @@ - #include - #include - #include --#include -+#include - - #if defined(GDK_WINDOWING_X11) - # include --# include -+# include - #elif defined(GDK_WINDOWING_WIN32) - # include --# include -+# include - #endif - - #include "banshee-gst.h" -@@ -155,11 +155,11 @@ struct BansheePlayer { - // Video State - BpVideoDisplayContextType video_display_context_type; - #if defined(GDK_WINDOWING_X11) -- GstXOverlay *xoverlay; -+ GstVideoOverlay *video_overlay; - GdkWindow *video_window; - XID video_window_xid; - #elif defined(GDK_WINDOWING_WIN32) -- GstXOverlay *xoverlay; -+ GstVideoOverlay *video_overlay; - GdkWindow *video_window; - HWND video_window_xid; - #endif -@@ -179,6 +179,8 @@ struct BansheePlayer { - GstFFTF32 *vis_fft; - GstFFTF32Complex *vis_fft_buffer; - gfloat *vis_fft_sample_buffer; -+ GstPad *vis_event_probe_pad; -+ gulong vis_event_probe_id; - - // Plugin Installer State - GdkWindow *window; -@@ -197,6 +199,7 @@ struct BansheePlayer { - // http://replaygain.hydrogenaudio.org/player_scale.html - gdouble rg_gain_history[10]; - gint history_size; -+ gulong rg_pad_block_id; - - //dvd navigation - GstNavigation *navigation; -diff --git a/libbanshee/banshee-player-replaygain.c b/libbanshee/banshee-player-replaygain.c -index a479d4a..e42b197 100644 ---- a/libbanshee/banshee-player-replaygain.c -+++ b/libbanshee/banshee-player-replaygain.c -@@ -79,17 +79,13 @@ static void on_target_gain_changed (GstElement *rgvolume, GParamSpec *pspec, Ban - _bp_rgvolume_print_volume (player); - } - --static void --pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data) -+static GstPadProbeReturn -+pad_block_cb (GstPad *srcPad, GstPadProbeInfo *info, gpointer user_data) - { - BansheePlayer* player; - -- if (!blocked) { -- return; -- } -- - player = (BansheePlayer*) user_data; -- g_return_if_fail (IS_BANSHEE_PLAYER (player)); -+ g_return_val_if_fail (IS_BANSHEE_PLAYER (player), GST_PAD_PROBE_OK); - - // The pad_block_cb can get triggered multiple times, on different threads. - // Lock around the link/unlink code, so we don't end up going through here -@@ -99,11 +95,9 @@ pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data) - if ((player->replaygain_enabled && player->rgvolume_in_pipeline) || - (!player->replaygain_enabled && !player->rgvolume_in_pipeline)) { - // The pipeline is already in the correct state. Unblock the pad, and return. -+ player->rg_pad_block_id = 0; - g_mutex_unlock (player->replaygain_mutex); -- if (gst_pad_is_blocked (srcPad)) { -- gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player); -- } -- return; -+ return GST_PAD_PROBE_REMOVE; - } - - if (player->rgvolume_in_pipeline) { -@@ -139,13 +133,12 @@ pad_block_cb (GstPad *srcPad, gboolean blocked, gpointer user_data) - } - - // Our state is now consistent -+ player->rg_pad_block_id = 0; - g_mutex_unlock (player->replaygain_mutex); - -- if (gst_pad_is_blocked (srcPad)) { -- gst_pad_set_blocked_async (srcPad, FALSE, &pad_block_cb, player); -- } -- - _bp_rgvolume_print_volume (player); -+ -+ return GST_PAD_PROBE_REMOVE; - } - - // --------------------------------------------------------------------------- -@@ -187,9 +180,9 @@ void _bp_replaygain_pipeline_rebuild (BansheePlayer* player) - srcPad = gst_element_get_static_pad (player->before_rgvolume, "src"); - - if (gst_pad_is_active (srcPad) && !gst_pad_is_blocked (srcPad)) { -- gst_pad_set_blocked_async (srcPad, TRUE, &pad_block_cb, player); -- } else if (srcPad->block_callback == NULL) { -- pad_block_cb (srcPad, TRUE, player); -+ player->rg_pad_block_id = gst_pad_add_probe (srcPad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM, &pad_block_cb, player, NULL); -+ } else if (!player->rg_pad_block_id) { -+ pad_block_cb (srcPad, NULL, player); - } - } - -diff --git a/libbanshee/banshee-player-video.c b/libbanshee/banshee-player-video.c -index b901354..eb95c3f 100644 ---- a/libbanshee/banshee-player-video.c -+++ b/libbanshee/banshee-player-video.c -@@ -37,54 +37,54 @@ - #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32) - - static gboolean --bp_video_find_xoverlay (BansheePlayer *player) -+bp_video_find_video_overlay (BansheePlayer *player) - { - GstElement *video_sink = NULL; -- GstElement *xoverlay; -- GstXOverlay *previous_xoverlay; -- gboolean found_xoverlay; -+ GstElement *video_overlay; -+ GstVideoOverlay *previous_video_overlay; -+ gboolean found_video_overlay; - - g_object_get (player->playbin, "video-sink", &video_sink, NULL); - - g_mutex_lock (player->video_mutex); -- previous_xoverlay = player->xoverlay; -+ previous_video_overlay = player->video_overlay; - - if (video_sink == NULL) { -- player->xoverlay = NULL; -- if (previous_xoverlay != NULL) { -- gst_object_unref (previous_xoverlay); -+ player->video_overlay = NULL; -+ if (previous_video_overlay != NULL) { -+ gst_object_unref (previous_video_overlay); - } - g_mutex_unlock (player->video_mutex); - return FALSE; - } - -- xoverlay = GST_IS_BIN (video_sink) -- ? gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_X_OVERLAY) -+ video_overlay = GST_IS_BIN (video_sink) -+ ? gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_VIDEO_OVERLAY) - : video_sink; - -- player->xoverlay = GST_IS_X_OVERLAY (xoverlay) ? GST_X_OVERLAY (xoverlay) : NULL; -+ player->video_overlay = GST_IS_VIDEO_OVERLAY (video_overlay) ? GST_VIDEO_OVERLAY (video_overlay) : NULL; - -- if (previous_xoverlay != NULL) { -- gst_object_unref (previous_xoverlay); -+ if (previous_video_overlay != NULL) { -+ gst_object_unref (previous_video_overlay); - } - - #if !defined(GDK_WINDOWING_WIN32) // We can't rely on aspect ratio from dshowvideosink -- if (player->xoverlay != NULL && g_object_class_find_property ( -- G_OBJECT_GET_CLASS (player->xoverlay), "force-aspect-ratio")) { -- g_object_set (G_OBJECT (player->xoverlay), "force-aspect-ratio", TRUE, NULL); -+ if (player->video_overlay != NULL && g_object_class_find_property ( -+ G_OBJECT_GET_CLASS (player->video_overlay), "force-aspect-ratio")) { -+ g_object_set (G_OBJECT (player->video_overlay), "force-aspect-ratio", TRUE, NULL); - } - #endif - -- if (player->xoverlay != NULL && g_object_class_find_property ( -- G_OBJECT_GET_CLASS (player->xoverlay), "handle-events")) { -- g_object_set (G_OBJECT (player->xoverlay), "handle-events", FALSE, NULL); -+ if (player->video_overlay != NULL && g_object_class_find_property ( -+ G_OBJECT_GET_CLASS (player->video_overlay), "handle-events")) { -+ g_object_set (G_OBJECT (player->video_overlay), "handle-events", FALSE, NULL); - } - - gst_object_unref (video_sink); -- found_xoverlay = (player->xoverlay != NULL) ? TRUE : FALSE; -+ found_video_overlay = (player->video_overlay != NULL) ? TRUE : FALSE; - - g_mutex_unlock (player->video_mutex); -- return found_xoverlay; -+ return found_video_overlay; - } - - #endif /* GDK_WINDOWING_X11 || GDK_WINDOWING_WIN32 */ -@@ -130,27 +130,27 @@ bp_video_sink_element_added (GstBin *videosink, GstElement *element, BansheePlay - g_return_if_fail (IS_BANSHEE_PLAYER (player)); - - #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32) -- bp_video_find_xoverlay (player); -+ bp_video_find_video_overlay (player); - #endif - } - - static void - bp_video_bus_element_sync_message (GstBus *bus, GstMessage *message, BansheePlayer *player) - { -- gboolean found_xoverlay; -+ gboolean found_video_overlay; - - g_return_if_fail (IS_BANSHEE_PLAYER (player)); - - #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WIN32) - -- if (message->structure == NULL || !gst_structure_has_name (message->structure, "prepare-xwindow-id")) { -+ if (!gst_is_video_overlay_prepare_window_handle_message (message)) { - return; - } - -- found_xoverlay = bp_video_find_xoverlay (player); -+ found_video_overlay = bp_video_find_video_overlay (player); - -- if (found_xoverlay) { -- gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid); -+ if (found_video_overlay) { -+ gst_video_overlay_set_window_handle (player->video_overlay, player->video_window_xid); - } - - #endif -@@ -164,7 +164,7 @@ static void - cb_caps_set (GObject *obj, GParamSpec *pspec, BansheePlayer *p) - { - GstStructure * s = NULL; -- GstCaps * caps = gst_pad_get_negotiated_caps (GST_PAD (obj)); -+ GstCaps * caps = gst_pad_get_current_caps (GST_PAD (obj)); - - if (G_UNLIKELY (!caps)) { - return; -@@ -219,7 +219,7 @@ _bp_parse_stream_info (BansheePlayer *player) - } - - if (G_LIKELY (vpad)) { -- GstCaps *caps = gst_pad_get_negotiated_caps (vpad); -+ GstCaps *caps = gst_pad_get_current_caps (vpad); - if (G_LIKELY (caps)) { - cb_caps_set (G_OBJECT (vpad), NULL, player); - gst_caps_unref (caps); -@@ -249,21 +249,18 @@ _bp_video_pipeline_setup (BansheePlayer *player, GstBus *bus) - - player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_GDK_WINDOW; - -- videosink = gst_element_factory_make ("gconfvideosink", "videosink"); -+ videosink = gst_element_factory_make ("autovideosink", "videosink"); - if (videosink == NULL) { -- videosink = gst_element_factory_make ("autovideosink", "videosink"); -- if (videosink == NULL) { -- player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_UNSUPPORTED; -- videosink = gst_element_factory_make ("fakesink", "videosink"); -- if (videosink != NULL) { -- g_object_set (G_OBJECT (videosink), "sync", TRUE, NULL); -- } -+ player->video_display_context_type = BP_VIDEO_DISPLAY_CONTEXT_UNSUPPORTED; -+ videosink = gst_element_factory_make ("fakesink", "videosink"); -+ if (videosink != NULL) { -+ g_object_set (G_OBJECT (videosink), "sync", TRUE, NULL); - } - } - - g_object_set (G_OBJECT (player->playbin), "video-sink", videosink, NULL); - -- gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, player); -+ gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, player, NULL); - g_signal_connect (bus, "sync-message::element", G_CALLBACK (bp_video_bus_element_sync_message), player); - - if (GST_IS_BIN (videosink)) { -@@ -349,21 +346,21 @@ bp_video_window_expose (BansheePlayer *player, GdkWindow *window, gboolean direc - { - g_return_if_fail (IS_BANSHEE_PLAYER (player)); - -- if (direct && player->xoverlay != NULL && GST_IS_X_OVERLAY (player->xoverlay)) { -- gst_x_overlay_expose (player->xoverlay); -+ if (direct && player->video_overlay != NULL && GST_IS_VIDEO_OVERLAY (player->video_overlay)) { -+ gst_video_overlay_expose (player->video_overlay); - return; - } - -- if (player->xoverlay == NULL && !bp_video_find_xoverlay (player)) { -+ if (player->video_overlay == NULL && !bp_video_find_video_overlay (player)) { - return; - } - -- gst_object_ref (player->xoverlay); -+ gst_object_ref (player->video_overlay); - -- gst_x_overlay_set_xwindow_id (player->xoverlay, player->video_window_xid); -- gst_x_overlay_expose (player->xoverlay); -+ gst_video_overlay_set_window_handle (player->video_overlay, player->video_window_xid); -+ gst_video_overlay_expose (player->video_overlay); - -- gst_object_unref (player->xoverlay); -+ gst_object_unref (player->video_overlay); - } - - // MUST be called from the GTK main thread; calling it in OnRealized will do the right thing. -@@ -379,7 +376,7 @@ bp_video_window_realize (BansheePlayer *player, GdkWindow *window) - // //Explicitly create the native window. GDK_WINDOW_XWINDOW will call this - // //function anyway, but this way we can raise a more useful message should it fail. - // if (!gdk_window_ensure_native (window)) { --// banshee_log (BANSHEE_LOG_TYPE_ERROR, "player-video", "Couldn't create native window needed for GstXOverlay!"); -+// banshee_log (BANSHEE_LOG_TYPE_ERROR, "player-video", "Couldn't create native window needed for GstVideoOverlay!"); - // } - //#endif - -diff --git a/libbanshee/banshee-player-vis.c b/libbanshee/banshee-player-vis.c -index 5787c87..7e7dc78 100644 ---- a/libbanshee/banshee-player-vis.c -+++ b/libbanshee/banshee-player-vis.c -@@ -27,17 +27,17 @@ - // - - #include -+#include - - #include "banshee-player-vis.h" - - #define SLICE_SIZE 735 - - static GstStaticCaps vis_data_sink_caps = GST_STATIC_CAPS ( -- "audio/x-raw-float, " -+ "audio/x-raw, " -+ "format = (string) " GST_AUDIO_NE(F32) ", " - "rate = (int) 44100, " -- "channels = (int) 2, " -- "endianness = (int) BYTE_ORDER, " -- "width = (int) 32" -+ "channels = (int) 2" - ); - - // --------------------------------------------------------------------------- -@@ -48,6 +48,7 @@ static void - bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer userdata) - { - BansheePlayer *player = (BansheePlayer*)userdata; -+ GstCaps *caps; - GstStructure *structure; - gint channels, wanted_size; - gfloat *data; -@@ -69,14 +70,16 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u - player->vis_thawing = FALSE; - } - -- structure = gst_caps_get_structure (gst_buffer_get_caps (buffer), 0); -+ caps = gst_pad_get_current_caps (pad); -+ structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "channels", &channels); -+ gst_caps_unref (caps); - - wanted_size = channels * SLICE_SIZE * sizeof (gfloat); - -- gst_adapter_push (player->vis_buffer, gst_buffer_copy (buffer)); -+ gst_adapter_push (player->vis_buffer, gst_buffer_ref (buffer)); - -- while ((data = (gfloat *)gst_adapter_peek (player->vis_buffer, wanted_size)) != NULL) { -+ while ((data = (gfloat *)gst_adapter_map (player->vis_buffer, wanted_size)) != NULL) { - gfloat *deinterlaced = g_malloc (wanted_size); - gfloat *specbuf = g_new (gfloat, SLICE_SIZE * 2); - -@@ -124,6 +127,7 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u - g_free (deinterlaced); - g_free (specbuf); - -+ gst_adapter_unmap (player->vis_buffer); - gst_adapter_flush (player->vis_buffer, wanted_size); - } - } -@@ -132,65 +136,28 @@ bp_vis_pcm_handoff (GstElement *sink, GstBuffer *buffer, GstPad *pad, gpointer u - // Internal Functions - // --------------------------------------------------------------------------- - --static void --_bp_vis_pipeline_block_callback (GstPad *pad, gboolean blocked, gpointer data) -+static GstPadProbeReturn -+_bp_vis_pipeline_event_probe (GstPad *pad, GstPadProbeInfo *info, gpointer data) - { - BansheePlayer *player = (BansheePlayer *) data; -+ GstEvent *event; - -- if (!blocked) { -- // Set thawing mode (discards buffers that are too old from the queue). -- player->vis_thawing = TRUE; -- } --} -- --static void --_bp_vis_pipeline_set_blocked (BansheePlayer *player, gboolean blocked) --{ -- GstPad *queue_sink; -- -- if (player->vis_resampler == NULL) -- return; -- -- queue_sink = gst_element_get_static_pad (player->vis_resampler, "src"); -- -- gst_pad_set_blocked_async (queue_sink, blocked, _bp_vis_pipeline_block_callback, (gpointer) player); -- -- gst_object_unref (GST_OBJECT (queue_sink)); --} -- --static gboolean --_bp_vis_pipeline_event_probe (GstPad *pad, GstEvent *event, gpointer data) --{ -- BansheePlayer *player = (BansheePlayer *) data; -+ if ((info->type & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) == 0) -+ return GST_PAD_PROBE_PASS; - -+ event = GST_EVENT (info->data); - switch (GST_EVENT_TYPE (event)) { - case GST_EVENT_FLUSH_START: - case GST_EVENT_FLUSH_STOP: - case GST_EVENT_SEEK: -- case GST_EVENT_NEWSEGMENT: -+ case GST_EVENT_SEGMENT: - case GST_EVENT_CUSTOM_DOWNSTREAM: - player->vis_thawing = TRUE; - - default: break; - } - -- if (player->vis_enabled) -- return TRUE; -- -- switch (GST_EVENT_TYPE (event)) { -- case GST_EVENT_EOS: -- case GST_EVENT_CUSTOM_DOWNSTREAM_OOB: -- _bp_vis_pipeline_set_blocked (player, FALSE); -- break; -- case GST_EVENT_CUSTOM_DOWNSTREAM: -- case GST_EVENT_NEWSEGMENT: -- _bp_vis_pipeline_set_blocked (player, TRUE); -- break; -- -- default: break; -- } -- -- return TRUE; -+ return GST_PAD_PROBE_PASS; - } - - void -@@ -212,9 +179,8 @@ _bp_vis_pipeline_setup (BansheePlayer *player) - // Core elements, if something fails here, it's the end of the world - audiosinkqueue = gst_element_factory_make ("queue", "vis-queue"); - -- pad = gst_element_get_static_pad (audiosinkqueue, "sink"); -- gst_pad_add_event_probe (pad, G_CALLBACK (_bp_vis_pipeline_event_probe), player); -- gst_object_unref (GST_OBJECT (pad)); -+ player->vis_event_probe_pad = gst_element_get_static_pad (audiosinkqueue, "sink"); -+ player->vis_event_probe_id = gst_pad_add_probe (player->vis_event_probe_pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, _bp_vis_pipeline_event_probe, player, NULL); - - resampler = gst_element_factory_make ("audioresample", "vis-resample"); - converter = gst_element_factory_make ("audioconvert", "vis-convert"); -@@ -255,7 +221,7 @@ _bp_vis_pipeline_setup (BansheePlayer *player) - converter, fakesink, NULL); - - pad = gst_element_get_static_pad (audiosinkqueue, "sink"); -- teepad = gst_element_get_request_pad (player->audiotee, "src%d"); -+ teepad = gst_element_get_request_pad (player->audiotee, "src_%u"); - gst_pad_link (teepad, pad); - gst_object_unref (GST_OBJECT (teepad)); - gst_object_unref (GST_OBJECT (pad)); -@@ -270,14 +236,17 @@ _bp_vis_pipeline_setup (BansheePlayer *player) - player->vis_resampler = resampler; - player->vis_thawing = FALSE; - player->vis_enabled = FALSE; -- -- // Disable the pipeline till we hear otherwise from managed land. -- _bp_vis_pipeline_set_blocked (player, TRUE); - } - - void - _bp_vis_pipeline_destroy (BansheePlayer *player) - { -+ if (player->vis_event_probe_pad) { -+ gst_pad_remove_probe (player->vis_event_probe_pad, player->vis_event_probe_id); -+ gst_object_unref (GST_OBJECT (player->vis_event_probe_pad)); -+ player->vis_event_probe_pad = NULL; -+ } -+ - if (player->vis_buffer != NULL) { - gst_object_unref (player->vis_buffer); - player->vis_buffer = NULL; -@@ -315,6 +284,5 @@ bp_set_vis_data_callback (BansheePlayer *player, BansheePlayerVisDataCallback cb - - player->vis_data_cb = cb; - -- _bp_vis_pipeline_set_blocked (player, cb == NULL); - player->vis_enabled = cb != NULL; - } -diff --git a/libbanshee/banshee-player.c b/libbanshee/banshee-player.c -index c655a72..b8f98b8 100644 ---- a/libbanshee/banshee-player.c -+++ b/libbanshee/banshee-player.c -@@ -250,12 +250,11 @@ bp_set_position (BansheePlayer *player, guint64 time_ms) - P_INVOKE guint64 - bp_get_position (BansheePlayer *player) - { -- static GstFormat format = GST_FORMAT_TIME; - gint64 position; - - g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0); - -- if (player->playbin != NULL && gst_element_query_position (player->playbin, &format, &position)) { -+ if (player->playbin != NULL && gst_element_query_position (player->playbin, GST_FORMAT_TIME, &position)) { - return position / GST_MSECOND; - } - -@@ -265,12 +264,11 @@ bp_get_position (BansheePlayer *player) - P_INVOKE guint64 - bp_get_duration (BansheePlayer *player) - { -- static GstFormat format = GST_FORMAT_TIME; - gint64 duration; - - g_return_val_if_fail (IS_BANSHEE_PLAYER (player), 0); - -- if (player->playbin != NULL && gst_element_query_duration (player->playbin, &format, &duration)) { -+ if (player->playbin != NULL && gst_element_query_duration (player->playbin, GST_FORMAT_TIME, &duration)) { - return duration / GST_MSECOND; - } - -@@ -446,7 +444,6 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri) - g_return_if_fail (IS_BANSHEE_PLAYER (player)); - gint64 pos = -1; - GstState state; -- GstFormat format = GST_FORMAT_BYTES; - gboolean paused = FALSE; - - // Gstreamer playbin do not support to set suburi during playback -@@ -454,7 +451,7 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri) - gst_element_get_state (player->playbin, &state, NULL, 0); - paused = (state == GST_STATE_PAUSED); - if (state >= GST_STATE_PAUSED) { -- gst_element_query_position (player->playbin, &format, &pos); -+ gst_element_query_position (player->playbin, GST_FORMAT_BYTES, &pos); - gst_element_set_state (player->playbin, GST_STATE_READY); - // Force to wait asynch operation - gst_element_get_state (player->playbin, &state, NULL, -1); -@@ -467,7 +464,7 @@ bp_set_subtitle_uri (BansheePlayer *player, const gchar *uri) - gst_element_get_state (player->playbin, &state, NULL, -1); - - if (pos != -1) { -- gst_element_seek_simple (player->playbin, format, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, pos); -+ gst_element_seek_simple (player->playbin, GST_FORMAT_BYTES, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, pos); - } - } - -diff --git a/libbanshee/banshee-ripper.c b/libbanshee/banshee-ripper.c -index e0e8c85..b3f8fed 100644 ---- a/libbanshee/banshee-ripper.c -+++ b/libbanshee/banshee-ripper.c -@@ -85,7 +85,6 @@ br_raise_error (BansheeRipper *ripper, const gchar *error, const gchar *debug) - static gboolean - br_iterate_timeout (BansheeRipper *ripper) - { -- GstFormat format = GST_FORMAT_TIME; - GstState state; - gint64 position; - -@@ -96,7 +95,7 @@ br_iterate_timeout (BansheeRipper *ripper) - return TRUE; - } - -- if (!gst_element_query_position (ripper->cddasrc, &format, &position)) { -+ if (!gst_element_query_position (ripper->cddasrc, GST_FORMAT_TIME, &position)) { - return TRUE; - } - -@@ -142,8 +141,9 @@ br_encoder_probe_mime_type (GstBin *bin) - GstIterator *pad_iter = gst_element_iterate_src_pads (element); - - BANSHEE_GST_ITERATOR_ITERATE (pad_iter, GstPad *, pad, TRUE, { -- GstStructure *str = GST_PAD_CAPS (pad) != NULL -- ? gst_caps_get_structure (GST_PAD_CAPS (pad), 0) -+ GstCaps *caps = gst_pad_get_current_caps (pad); -+ GstStructure *str = caps != NULL -+ ? gst_caps_get_structure (caps, 0) - : NULL; - - if (str != NULL) { -@@ -171,11 +171,8 @@ br_encoder_probe_mime_type (GstBin *bin) - preferred_mimetype = mimetype; - } - } -- -- gst_object_unref (pad); -+ gst_caps_unref (caps); - }); -- -- gst_object_unref (element); - }); - - return preferred_mimetype; -@@ -271,7 +268,7 @@ br_pipeline_construct (BansheeRipper *ripper) - return FALSE; - } - -- ripper->cddasrc = gst_element_make_from_uri (GST_URI_SRC, "cdda://1", "cddasrc"); -+ ripper->cddasrc = gst_element_make_from_uri (GST_URI_SRC, "cdda://1", "cddasrc", NULL); - if (ripper->cddasrc == NULL) { - br_raise_error (ripper, _("Could not initialize element from cdda URI"), NULL); - return FALSE; -@@ -405,7 +402,6 @@ br_rip_track (BansheeRipper *ripper, gint track_number, gchar *output_path, - - // We'll warn the user in the UI if we can't tag the encoded audio files - *tagging_supported = TRUE; -- gst_object_unref (element); - } - }); - -diff --git a/libbanshee/banshee-tagger.c b/libbanshee/banshee-tagger.c -index ca15e8f..762dfa9 100644 ---- a/libbanshee/banshee-tagger.c -+++ b/libbanshee/banshee-tagger.c -@@ -69,7 +69,7 @@ bt_tag_list_foreach (const GstTagList *list, const gchar *tag, gpointer userdata - GstTagList * - bt_tag_list_new () - { -- return gst_tag_list_new (); -+ return gst_tag_list_new_empty (); - } - - void -diff --git a/libbanshee/banshee-transcoder.c b/libbanshee/banshee-transcoder.c -index 10fc35c..0e241f0 100644 ---- a/libbanshee/banshee-transcoder.c -+++ b/libbanshee/banshee-transcoder.c -@@ -64,14 +64,13 @@ gst_transcoder_raise_error(GstTranscoder *transcoder, const gchar *error, const - static gboolean - gst_transcoder_iterate_timeout(GstTranscoder *transcoder) - { -- GstFormat format = GST_FORMAT_TIME; - gint64 position; - gint64 duration; - - g_return_val_if_fail(transcoder != NULL, FALSE); - -- if(!gst_element_query_duration(transcoder->pipeline, &format, &duration) || -- !gst_element_query_position(transcoder->sink_bin, &format, &position)) { -+ if(!gst_element_query_duration(transcoder->pipeline, GST_FORMAT_TIME, &duration) || -+ !gst_element_query_position(transcoder->sink_bin, GST_FORMAT_TIME, &position)) { - return TRUE; - } - -@@ -196,14 +195,14 @@ gst_transcoder_new_decoded_pad(GstElement *decodebin, GstPad *pad, - - g_return_if_fail(transcoder != NULL); - -- audiopad = gst_element_get_pad(transcoder->sink_bin, "sink"); -+ audiopad = gst_element_get_static_pad(transcoder->sink_bin, "sink"); - - if(GST_PAD_IS_LINKED(audiopad)) { - g_object_unref(audiopad); - return; - } - -- caps = gst_pad_get_caps(pad); -+ caps = gst_pad_query_caps(pad, NULL); - str = gst_caps_get_structure(caps, 0); - - if(!g_strrstr(gst_structure_get_name(str), "audio")) { -@@ -235,19 +234,19 @@ gst_transcoder_create_pipeline(GstTranscoder *transcoder, - - transcoder->pipeline = gst_pipeline_new("pipeline"); - -- source_elem = gst_element_make_from_uri(GST_URI_SRC, input_uri, "source"); -+ source_elem = gst_element_make_from_uri(GST_URI_SRC, input_uri, "source", NULL); - if(source_elem == NULL) { - gst_transcoder_raise_error(transcoder, _("Could not create source element"), NULL); - return FALSE; - } - -- decoder_elem = gst_element_factory_make("decodebin2", "decodebin2"); -+ decoder_elem = gst_element_factory_make("decodebin", "decodebin"); - if(decoder_elem == NULL) { -- gst_transcoder_raise_error(transcoder, _("Could not create decodebin2 plugin"), NULL); -+ gst_transcoder_raise_error(transcoder, _("Could not create decodebin plugin"), NULL); - return FALSE; - } - -- sink_elem = gst_element_make_from_uri(GST_URI_SINK, output_uri, "sink"); -+ sink_elem = gst_element_make_from_uri(GST_URI_SINK, output_uri, "sink", NULL); - if(sink_elem == NULL) { - gst_transcoder_raise_error(transcoder, _("Could not create sink element"), NULL); - return FALSE; -@@ -277,7 +276,7 @@ gst_transcoder_create_pipeline(GstTranscoder *transcoder, - return FALSE; - } - -- encoder_pad = gst_element_get_pad(conv_elem, "sink"); -+ encoder_pad = gst_element_get_static_pad(conv_elem, "sink"); - if(encoder_pad == NULL) { - gst_transcoder_raise_error(transcoder, _("Could not get sink pad from encoder"), NULL); - return FALSE; diff --git a/Remove-build-time-enable-gapless-playback-option.patch b/Remove-build-time-enable-gapless-playback-option.patch deleted file mode 100644 index dec054b..0000000 --- a/Remove-build-time-enable-gapless-playback-option.patch +++ /dev/null @@ -1,202 +0,0 @@ -From: Chow Loong Jin -Date: Mon, 26 Nov 2012 00:10:19 +0800 -Subject: Remove build-time --enable-gapless-playback option - -This was previously added to check for a new enough playbin, but since we're now -using Gstreamer 1.0, the playbin version should be new enough, and we can drop -the conditionals. ---- - configure.ac | 15 --------- - libbanshee/Makefile.am | 4 --- - libbanshee/banshee-player-pipeline.c | 4 --- - libbanshee/banshee-player.c | 10 ------ - .../Banshee.GStreamer/PlayerEngine.cs | 32 ++++++-------------- - src/Backends/Banshee.GStreamer/Makefile.am | 4 --- - src/Backends/Banshee.GStreamerSharp/Makefile.am | 4 --- - 7 files changed, 10 insertions(+), 63 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ac949c7..5d66fb9 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -171,21 +171,6 @@ BANSHEE_CHECK_SOUNDMENU - dnl Ubuntu One Music Store (optional) - BANSHEE_CHECK_UBUNTUONE - --dnl Gapless, if we have a new-enough playbin2 --ENABLE_GAPLESS="no" --AC_ARG_ENABLE(gapless-playback, -- AC_HELP_STRING([--enable-gapless-playback], -- [Enable gapless playback engine (requires gst-plugins-base > 0.10.25.2)]), -- enable_gapless=$enableval, -- enable_gapless=auto) --if test "x$enable_gapless" != "xno" ; then -- PKG_CHECK_MODULES([GST_PLUGINS_BASE], [gstreamer-plugins-base-0.10 > 0.10.25.2], ENABLE_GAPLESS=yes, ENABLE_GAPLESS=no) -- if test "x$enable_gapless" == "xyes" -a "x$ENABLE_GAPLESS" == "xno" ; then -- AC_MSG_ERROR([Gapless playback requires gstreamer-plugins-base > 0.10.25.2]) -- fi --fi --AM_CONDITIONAL(ENABLE_GAPLESS, test "x$ENABLE_GAPLESS" = "xyes") -- - dnl i18n - SHAMROCK_CONFIGURE_I18N($PACKAGE) - -diff --git a/libbanshee/Makefile.am b/libbanshee/Makefile.am -index 6ed369a..a05c492 100644 ---- a/libbanshee/Makefile.am -+++ b/libbanshee/Makefile.am -@@ -6,10 +6,6 @@ INCLUDES = \ - $(LIBBANSHEE_CFLAGS) \ - $(GST_CFLAGS) - --if ENABLE_GAPLESS --INCLUDES += -DENABLE_GAPLESS --endif -- - bansheelibdir = $(pkglibdir) - bansheelib_LTLIBRARIES = libbanshee.la - -diff --git a/libbanshee/banshee-player-pipeline.c b/libbanshee/banshee-player-pipeline.c -index 6c2af35..d4977e1 100644 ---- a/libbanshee/banshee-player-pipeline.c -+++ b/libbanshee/banshee-player-pipeline.c -@@ -239,7 +239,6 @@ bp_pipeline_bus_callback (GstBus *bus, GstMessage *message, gpointer userdata) - return TRUE; - } - --#ifdef ENABLE_GAPLESS - static void bp_about_to_finish_callback (GstElement *playbin, BansheePlayer *player) - { - g_return_if_fail (IS_BANSHEE_PLAYER (player)); -@@ -257,7 +256,6 @@ static void bp_about_to_finish_callback (GstElement *playbin, BansheePlayer *pla - player->about_to_finish_cb (player); - } - } --#endif //ENABLE_GAPLESS - - static void bp_volume_changed_callback (GstElement *playbin, GParamSpec *spec, BansheePlayer *player) - { -@@ -296,12 +294,10 @@ _bp_pipeline_construct (BansheePlayer *player) - // source and decoder elements) based on source URI and stream content - player->playbin = gst_element_factory_make ("playbin", "playbin"); - --#ifdef ENABLE_GAPLESS - // FIXME: Connect a proxy about-to-finish callback that will generate a next-track-starting callback. - // This can be removed once playbin generates its own next-track signal. - // bgo#584987 - this is included in >= 0.10.26 - g_signal_connect (player->playbin, "about-to-finish", G_CALLBACK (bp_about_to_finish_callback), player); --#endif //ENABLE_GAPLESS - - g_return_val_if_fail (player->playbin != NULL, FALSE); - -diff --git a/libbanshee/banshee-player.c b/libbanshee/banshee-player.c -index b8f98b8..08c4f94 100644 ---- a/libbanshee/banshee-player.c -+++ b/libbanshee/banshee-player.c -@@ -303,16 +303,6 @@ bp_can_seek (BansheePlayer *player) - } - - P_INVOKE gboolean --bp_supports_gapless (BansheePlayer *player) --{ --#ifdef ENABLE_GAPLESS -- return TRUE; --#else -- return FALSE; --#endif //ENABLE_GAPLESS --} -- --P_INVOKE gboolean - bp_audiosink_has_volume (BansheePlayer *player) - { - g_return_val_if_fail (IS_BANSHEE_PLAYER (player), FALSE); -diff --git a/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs b/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs -index 278ff51..05b1905 100644 ---- a/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs -+++ b/src/Backends/Banshee.GStreamer/Banshee.GStreamer/PlayerEngine.cs -@@ -747,16 +747,11 @@ namespace Banshee.GStreamer - get { return gapless_enabled; } - set - { -- if (bp_supports_gapless (handle)) { -- gapless_enabled = value; -- if (value) { -- bp_set_about_to_finish_callback (handle, about_to_finish_callback); -- } else { -- bp_set_about_to_finish_callback (handle, null); -- } -+ gapless_enabled = value; -+ if (value) { -+ bp_set_about_to_finish_callback (handle, about_to_finish_callback); - } else { -- gapless_enabled = false; -- next_track_pending = false; -+ bp_set_about_to_finish_callback (handle, null); - } - } - } -@@ -881,13 +876,11 @@ namespace Banshee.GStreamer - Catalog.GetString ("For tracks that have ReplayGain data, automatically scale (normalize) playback volume"), - delegate { ReplayGainEnabled = ReplayGainEnabledSchema.Get (); } - )); -- if (bp_supports_gapless (handle)) { -- gapless_preference = service["general"]["misc"].Add (new SchemaPreference (GaplessEnabledSchema, -- Catalog.GetString ("Enable _gapless playback"), -- Catalog.GetString ("Eliminate the small playback gap on track change. Useful for concept albums and classical music"), -- delegate { GaplessEnabled = GaplessEnabledSchema.Get (); } -- )); -- } -+ gapless_preference = service["general"]["misc"].Add (new SchemaPreference (GaplessEnabledSchema, -+ Catalog.GetString ("Enable _gapless playback"), -+ Catalog.GetString ("Eliminate the small playback gap on track change. Useful for concept albums and classical music"), -+ delegate { GaplessEnabled = GaplessEnabledSchema.Get (); } -+ )); - } - - private void UninstallPreferences () -@@ -898,9 +891,7 @@ namespace Banshee.GStreamer - } - - service["general"]["misc"].Remove (replaygain_preference); -- if (bp_supports_gapless (handle)) { -- service["general"]["misc"].Remove (gapless_preference); -- } -+ service["general"]["misc"].Remove (gapless_preference); - replaygain_preference = null; - gapless_preference = null; - } -@@ -969,9 +960,6 @@ namespace Banshee.GStreamer - BansheePlayerAboutToFinishCallback cb); - - [DllImport ("libbanshee.dll")] -- private static extern bool bp_supports_gapless (HandleRef player); -- -- [DllImport ("libbanshee.dll")] - private static extern bool bp_open (HandleRef player, IntPtr uri, bool maybeVideo); - - [DllImport ("libbanshee.dll")] -diff --git a/src/Backends/Banshee.GStreamer/Makefile.am b/src/Backends/Banshee.GStreamer/Makefile.am -index 118e525..321b270 100644 ---- a/src/Backends/Banshee.GStreamer/Makefile.am -+++ b/src/Backends/Banshee.GStreamer/Makefile.am -@@ -16,7 +16,3 @@ include $(top_srcdir)/build/build.mk - - EXTRA_DIST += Banshee.GStreamer.dll.config - module_SCRIPTS += Banshee.GStreamer.dll.config -- --if ENABLE_GAPLESS --BUILD_DEFINES="-define:ENABLE_GAPLESS" --endif -\ No newline at end of file -diff --git a/src/Backends/Banshee.GStreamerSharp/Makefile.am b/src/Backends/Banshee.GStreamerSharp/Makefile.am -index 69424d7..769b260 100644 ---- a/src/Backends/Banshee.GStreamerSharp/Makefile.am -+++ b/src/Backends/Banshee.GStreamerSharp/Makefile.am -@@ -23,7 +23,3 @@ else - include $(top_srcdir)/build/build.dist.mk - EXTRA_DIST += Banshee.GStreamerSharp.dll.config - endif -- --if ENABLE_GAPLESS --BUILD_DEFINES="-define:ENABLE_GAPLESS" --endif diff --git a/Use-new-style-GStreamer-1.0-raw-audio-caps-in-the-WA.patch b/Use-new-style-GStreamer-1.0-raw-audio-caps-in-the-WA.patch deleted file mode 100644 index 2d2cc33..0000000 --- a/Use-new-style-GStreamer-1.0-raw-audio-caps-in-the-WA.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Tue, 28 May 2013 11:49:29 +0200 -Subject: Use new-style GStreamer 1.0 raw audio caps in the WAV audio profile - ---- - data/audio-profiles/wav.xml.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/audio-profiles/wav.xml.in b/data/audio-profiles/wav.xml.in -index 6dc1bab..1759f3c 100644 ---- a/data/audio-profiles/wav.xml.in -+++ b/data/audio-profiles/wav.xml.in -@@ -13,7 +13,7 @@ - (gst-construct-pipeline - "audioresample" - "audioconvert" -- (+ "audio/x-raw-int, " -+ (+ "audio/x-raw, " - "format=(string)S16LE, " - "rate=(int)44100, " - "channels=(int)2" ) diff --git a/banshee-2.6.2-cairo-fix.patch b/banshee-2.6.2-cairo-fix.patch deleted file mode 100644 index 36a3798..0000000 --- a/banshee-2.6.2-cairo-fix.patch +++ /dev/null @@ -1,1027 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.CairoGlyphs/BansheeLineLogo.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.CairoGlyphs/BansheeLineLogo.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.CairoGlyphs/BansheeLineLogo.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.CairoGlyphs/BansheeLineLogo.cs 2017-07-18 13:36:34.005318558 -0400 -@@ -84,14 +84,14 @@ namespace Banshee.CairoGlyphs - cr.LineJoin = LineJoin.Round; - - // inner 'b' note -- cr.Color = innerColor; -+ cr.SetSourceColor (innerColor); - cr.MoveTo (0, 2); - cr.LineTo (2, 0); - cr.Arc (4, 8, 2, Math.PI, Math.PI * 3); - cr.Stroke (); - - // outer 'cut' circle -- cr.Color = outerColor; -+ cr.SetSourceColor (outerColor); - cr.Arc (4, 8, 4, Math.PI * 1.5, Math.PI * 1.12); - cr.Stroke (); - -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkRenderer.cs 2017-07-18 13:36:34.005318558 -0400 -@@ -74,7 +74,7 @@ namespace Banshee.Collection.Gui - if (image != null) { - if (fill) { - CairoExtensions.RoundedRectangle (cr, x, y, width, height, radius, corners); -- cr.Color = fillColor; -+ cr.SetSourceColor (fillColor); - cr.Fill (); - } - -@@ -85,12 +85,12 @@ namespace Banshee.Collection.Gui - CairoExtensions.RoundedRectangle (cr, x, y, width, height, radius, corners); - - if (fill) { -- var grad = new LinearGradient (x, y, x, y + height); -- grad.AddColorStop (0, fillColor); -- grad.AddColorStop (1, CairoExtensions.ColorShade (fillColor, 1.3)); -- cr.Pattern = grad; -- cr.Fill (); -- grad.Destroy (); -+ using (var grad = new LinearGradient (x, y, x, y + height)) { -+ grad.AddColorStop (0, fillColor); -+ grad.AddColorStop (1, CairoExtensions.ColorShade (fillColor, 1.3)); -+ cr.SetSource (grad); -+ cr.Fill (); -+ } - } - - Banshee.CairoGlyphs.BansheeLineLogo.Render (cr, -@@ -112,12 +112,12 @@ namespace Banshee.Collection.Gui - cr.Antialias = Antialias.None; - - CairoExtensions.RoundedRectangle (cr, x + 1.5, y + 1.5, width - 3, height - 3, radius, corners); -- cr.Color = cover_border_light_color; -+ cr.SetSourceColor (cover_border_light_color); - cr.Stroke (); - } - - CairoExtensions.RoundedRectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1, radius, corners); -- cr.Color = cover_border_dark_color; -+ cr.SetSourceColor (cover_border_dark_color); - cr.Stroke (); - - if (dispose && image != null) { -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellAlbum.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -133,7 +133,7 @@ namespace Banshee.Collection.Gui - // Render the second line first since we have that state already - if (!String.IsNullOrEmpty (album.ArtistName)) { - context.Context.MoveTo (x, y + fl_height); -- context.Context.Color = text_color; -+ context.Context.SetSourceColor (text_color); - PangoCairoHelper.ShowLayout (context.Context, layout); - } - -@@ -147,7 +147,7 @@ namespace Banshee.Collection.Gui - - context.Context.MoveTo (x, y); - text_color.A = 1; -- context.Context.Color = text_color; -+ context.Context.SetSourceColor (text_color); - PangoCairoHelper.ShowLayout (context.Context, layout); - } - -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ColumnCellTrack.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -81,7 +81,7 @@ namespace Banshee.Collection.Gui - Cairo.Color color = context.Theme.Colors.GetWidgetColor ( - context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, state); - color.A = (!context.Opaque) ? 0.3 : 1.0; -- context.Context.Color = color; -+ context.Context.SetSourceColor (color); - - PangoCairoHelper.ShowLayout (context.Context, context.Layout); - } -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ClassicTrackInfoDisplay.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -210,7 +210,7 @@ namespace Banshee.Gui.Widgets - - if (renderTrack) { - cr.MoveTo (x, y); -- cr.Color = TextColor; -+ cr.SetSourceColor (TextColor); - PangoCairoHelper.ShowLayout (cr, first_line_layout); - } - -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/LargeTrackInfoDisplay.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -129,7 +129,7 @@ namespace Banshee.Gui.Widgets - } - - cr.Rectangle (x, y, asr, alloc.Height); -- cr.Color = BackgroundColor; -+ cr.SetSourceColor (BackgroundColor); - cr.Fill (); - - x += (asr - surface_w) / 2; -@@ -141,40 +141,42 @@ namespace Banshee.Gui.Widgets - - private Surface CreateScene (Cairo.Context window_cr, ImageSurface image, int reflect) - { -- Surface surface = window_cr.Target.CreateSimilar (window_cr.Target.Content, -- image.Width, image.Height + reflect); -- Cairo.Context cr = new Context (surface); -- -- cr.Save (); -+ Surface surface; -+ using (var t = window_cr.GetTarget ()) { -+ surface = t.CreateSimilar (t.Content, image.Width, image.Height + reflect); -+ } - -- cr.SetSource (image); -- cr.Paint (); -+ using (Cairo.Context cr = new Context (surface)) { -+ cr.Save (); -+ cr.SetSource (image); -+ cr.Paint (); - -- cr.Rectangle (0, image.Height, image.Width, reflect); -- cr.Clip (); -+ cr.Rectangle (0, image.Height, image.Width, reflect); -+ cr.Clip (); - -- Matrix matrix = new Matrix (); -- matrix.InitScale (1, -1); -- matrix.Translate (0, -(2 * image.Height) + 1); -- cr.Transform (matrix); -+ Matrix matrix = new Matrix (); -+ matrix.InitScale (1, -1); -+ matrix.Translate (0, -(2 * image.Height) + 1); -+ cr.Transform (matrix); - -- cr.SetSource (image); -- cr.Paint (); -+ cr.SetSource (image); -+ cr.Paint (); - -- cr.Restore (); -+ cr.Restore (); - -- Color bg_transparent = BackgroundColor; -- bg_transparent.A = 0.65; -+ Color bg_transparent = BackgroundColor; -+ bg_transparent.A = 0.65; - -- LinearGradient mask = new LinearGradient (0, image.Height, 0, image.Height + reflect); -- mask.AddColorStop (0, bg_transparent); -- mask.AddColorStop (1, BackgroundColor); -+ using (LinearGradient mask = new LinearGradient (0, image.Height, 0, image.Height + reflect)) { -+ mask.AddColorStop (0, bg_transparent); -+ mask.AddColorStop (1, BackgroundColor); - -- cr.Rectangle (0, image.Height, image.Width, reflect); -- cr.Pattern = mask; -- cr.Fill (); -+ cr.Rectangle (0, image.Height, image.Width, reflect); -+ cr.SetSource (mask); -+ cr.Fill (); -+ } - -- ((IDisposable)cr).Dispose (); -+ } - return surface; - } - -@@ -254,7 +256,7 @@ namespace Banshee.Gui.Widgets - - if (render_track) { - cr.MoveTo (track_info_alloc.X, track_info_alloc.Y); -- cr.Color = TextColor; -+ cr.SetSourceColor (TextColor); - PangoCairoHelper.ShowLayout (cr, first_line_layout); - - RenderTrackRating (cr, track); -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs.cairofix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Sources.Gui/SourceRowRenderer.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -269,9 +269,9 @@ namespace Banshee.Sources.Gui - // Draw the count - if (!hide_count) { - if (view != null && view.Cr != null) { -- view.Cr.Color = state == StateType.Normal || (view != null && state == StateType.Prelight) -+ view.Cr.SetSourceColor (state == StateType.Normal || (view != null && state == StateType.Prelight) - ? view.Theme.TextMidColor -- : view.Theme.Colors.GetWidgetColor (GtkColorClass.Text, state); -+ : view.Theme.Colors.GetWidgetColor (GtkColorClass.Text, state)); - - view.Cr.MoveTo ( - cell_area.X + cell_area.Width - count_layout_width - 2, -diff -up banshee-2.6.2/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs.cairofix banshee-2.6.2/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs ---- banshee-2.6.2/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs.cairofix 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Widgets/Banshee.Widgets/DiscUsageDisplay.cs 2017-07-18 13:36:34.006318533 -0400 -@@ -128,13 +128,13 @@ namespace Banshee.Widgets - cr.LineWidth = base_line_width / 1.5; - - cr.Arc(x, y, radius, 0, 2 * Math.PI); -- cr.Pattern = bg_gradient; -+ cr.SetSource (bg_gradient); - cr.Fill(); - - /*cr.LineTo(x, y); - cr.Arc(x, y, radius, a1 + 2 * Math.PI * 0.92, a1); - cr.LineTo(x, y); -- cr.Pattern = bound_gradient; -+ cr.SetSource (bound_gradient); - cr.Fill(); - cr.Stroke();*/ - -@@ -150,28 +150,28 @@ namespace Banshee.Widgets - cr.Pattern = Fraction >= 1.0 ? fg_gradient_full : fg_gradient; - cr.FillPreserve(); - -- cr.Color = stroke_color; -+ cr.SetSourceColor (stroke_color); - cr.Stroke(); - } - - cr.Arc(x, y, radius / 2.75, 0, 2 * Math.PI); -- cr.Color = fill_color_c; -+ cr.SetSourceColor (fill_color_c); - cr.FillPreserve(); -- cr.Color = new Cairo.Color(1, 1, 1, 0.75); -+ cr.SetSourceColor (new Cairo.Color(1, 1, 1, 0.75)); - cr.FillPreserve(); - - cr.LineWidth = base_line_width / 1.5; - -- cr.Color = stroke_color; -+ cr.SetSourceColor (stroke_color); - cr.Stroke(); - - cr.Arc(x, y, radius / 5.5, 0, 2 * Math.PI); -- cr.Color = fill_color_c; -+ cr.SetSourceColor (fill_color_c); - cr.FillPreserve(); - - cr.LineWidth = base_line_width / 2; - -- cr.Color = inner_stroke_color; -+ cr.SetSourceColor (inner_stroke_color); - cr.Stroke(); - - cr.Arc(x, y, radius, 0, 2 * Math.PI); -@@ -180,11 +180,11 @@ namespace Banshee.Widgets - if(Capacity <= 0) { - // this sucks balls - cr.Rectangle(0, 0, Allocation.Width, Allocation.Height); -- cr.Color = text_bg_color; -+ cr.SetSourceColor (text_bg_color); - cr.FillPreserve(); - - cr.SelectFontFace("Sans", FontSlant.Normal, FontWeight.Bold); -- cr.Color = text_color; -+ cr.SetSourceColor (text_color); - cr.SetFontSize(Allocation.Width * 0.2); - DrawText(cr, Mono.Unix.Catalog.GetString("Insert\nDisc"), 3); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ColumnCellText.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -112,7 +112,7 @@ namespace Hyena.Data.Gui - Cairo.Color color = context.Theme.Colors.GetWidgetColor ( - context.TextAsForeground ? GtkColorClass.Foreground : GtkColorClass.Text, context.State); - color.A = Alpha ?? (context.Opaque ? 1.0 : 0.5); -- context.Context.Color = color; -+ context.Context.SetSourceColor (color); - - PangoCairoHelper.ShowLayout (context.Context, context.Layout); - //context.Context.ResetClip (); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListView/ListView_Rendering.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -235,7 +235,7 @@ namespace Hyena.Data.Gui - GtkColorClass.Base, StateType.Normal), 0.0); - stroke_color.A = 0.3; - -- cairo_context.Color = stroke_color; -+ cairo_context.SetSourceColor (stroke_color); - cairo_context.MoveTo (area.X + 0.5, area.Y + 1.0); - cairo_context.LineTo (area.X + 0.5, area.Bottom); - cairo_context.MoveTo (area.Right - 0.5, area.Y + 1.0); -@@ -390,7 +390,7 @@ namespace Hyena.Data.Gui - cairo_context.Antialias = Cairo.Antialias.None; - cairo_context.MoveTo (single_list_alloc.Left, single_list_alloc.Top); - cairo_context.LineTo (single_list_alloc.Right, single_list_alloc.Top); -- cairo_context.Color = Theme.Colors.GetWidgetColor (GtkColorClass.Text, StateType.Normal); -+ cairo_context.SetSourceColor (Theme.Colors.GetWidgetColor (GtkColorClass.Text, StateType.Normal)); - cairo_context.Stroke (); - cairo_context.Restore (); - } -@@ -448,7 +448,7 @@ namespace Hyena.Data.Gui - if (dragging) { - Cairo.Color fill_color = Theme.Colors.GetWidgetColor (GtkColorClass.Base, StateType.Normal); - fill_color.A = 0.5; -- cairo_context.Color = fill_color; -+ cairo_context.SetSourceColor (fill_color); - cairo_context.Rectangle (area.X, area.Y, area.Width, area.Height); - cairo_context.Fill (); - } -@@ -483,7 +483,7 @@ namespace Hyena.Data.Gui - - cairo_context.Rectangle (x, header_rendering_alloc.Bottom + 1, column.Width - 2, - list_rendering_alloc.Bottom - header_rendering_alloc.Bottom - 1); -- cairo_context.Color = fill_color; -+ cairo_context.SetSourceColor (fill_color); - cairo_context.Fill (); - - cairo_context.MoveTo (x - 0.5, header_rendering_alloc.Bottom + 0.5); -@@ -491,7 +491,7 @@ namespace Hyena.Data.Gui - cairo_context.LineTo (x + column.Width - 1.5, list_rendering_alloc.Bottom + 0.5); - cairo_context.LineTo (x + column.Width - 1.5, header_rendering_alloc.Bottom + 0.5); - -- cairo_context.Color = stroke_color; -+ cairo_context.SetSourceColor (stroke_color); - cairo_context.LineWidth = 1.0; - cairo_context.Stroke (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Data.Gui/ListViewTestModule.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -240,7 +240,7 @@ namespace Hyena.Data.Gui.Tests - red = !red; - Cairo.Context cr = context.Context; - cr.Rectangle (0, 0, cellWidth, cellHeight); -- cr.Color = CairoExtensions.RgbaToColor (red ? 0xff000099 : 0x00000099); -+ cr.SetSourceColor (CairoExtensions.RgbaToColor (red ? 0xff000099 : 0x00000099)); - cr.Fill (); - - List points = Points; -@@ -252,7 +252,7 @@ namespace Hyena.Data.Gui.Tests - } - } - -- cr.Color = CairoExtensions.RgbToColor ((uint)random.Next (0xffffff)); -+ cr.SetSourceColor (CairoExtensions.RgbToColor ((uint)random.Next (0xffffff))); - cr.LineWidth = 1; - cr.Stroke (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoDamageDebugger.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoDamageDebugger.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoDamageDebugger.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoDamageDebugger.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -49,7 +49,7 @@ namespace Hyena.Gui - { - cr.Save (); - cr.LineWidth = 1.0; -- cr.Color = CairoExtensions.RgbToColor ((uint)rand.Next (0, 0xffffff)); -+ cr.SetSourceColor (CairoExtensions.RgbToColor ((uint)rand.Next (0, 0xffffff))); - cr.Rectangle (x + 0.5, y + 0.5, w - 1, h - 1); - cr.Stroke (); - cr.Restore (); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoExtensions.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoExtensions.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoExtensions.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/CairoExtensions.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -65,13 +65,17 @@ namespace Hyena.Gui - return layout; - } - -- public static Surface CreateSurfaceForPixbuf (Cairo.Context cr, Gdk.Pixbuf pixbuf) -+ public static Surface CreateSurfaceForPixbuf (Context cr, Pixbuf pixbuf) - { -- Surface surface = cr.Target.CreateSimilar (cr.Target.Content, pixbuf.Width, pixbuf.Height); -- Cairo.Context surface_cr = new Context (surface); -- Gdk.CairoHelper.SetSourcePixbuf (surface_cr, pixbuf, 0, 0); -- surface_cr.Paint (); -- ((IDisposable)surface_cr).Dispose (); -+ Surface surface; -+ using (var t = cr.GetTarget ()) { -+ surface = t.CreateSimilar (t.Content, pixbuf.Width, pixbuf.Height); -+ } -+ using (Context surface_cr = new Context (surface)) { -+ CairoHelper.SetSourcePixbuf (surface_cr, pixbuf, 0, 0); -+ surface_cr.Paint (); -+ surface_cr.Dispose (); -+ } - return surface; - } - -@@ -319,8 +323,7 @@ namespace Hyena.Gui - - public static void DisposeContext (Cairo.Context cr) - { -- ((IDisposable)cr.Target).Dispose (); -- ((IDisposable)cr).Dispose (); -+ cr.Dispose (); - } - - private struct CairoInteropCall -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Brush.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Brush.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Brush.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Brush.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -64,7 +64,7 @@ namespace Hyena.Gui.Canvas - - public virtual void Apply (Cairo.Context cr) - { -- cr.Color = color; -+ cr.SetSourceColor (color); - } - - public static readonly Brush Black = new Brush (0.0, 0.0, 0.0); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/CanvasHost.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/CanvasHost.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/CanvasHost.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/CanvasHost.cs 2017-07-18 13:36:34.007318509 -0400 -@@ -150,8 +150,7 @@ namespace Hyena.Gui.Canvas - - if (Debug) { - cr.LineWidth = 1.0; -- cr.Color = CairoExtensions.RgbToColor ( -- (uint)(rand = rand ?? new Random ()).Next (0, 0xffffff)); -+ cr.SetSourceColor (CairoExtensions.RgbToColor ((uint)(rand = rand ?? new Random ()).Next (0, 0xffffff))); - cr.Rectangle (damage.X + 0.5, damage.Y + 0.5, damage.Width - 1, damage.Height - 1); - cr.Stroke (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Prelight.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Prelight.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Prelight.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Prelight.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -41,13 +41,13 @@ namespace Hyena.Gui.Canvas - - var x = rect.Width / 2.0; - var y = rect.Height / 2.0; -- var grad = new Cairo.RadialGradient (x, y, 0, x, y, rect.Width / 2.0); -- grad.AddColorStop (0, new Cairo.Color (0, 0, 0, 0.1 * opacity)); -- grad.AddColorStop (1, new Cairo.Color (0, 0, 0, 0.35 * opacity)); -- cr.Pattern = grad; -- CairoExtensions.RoundedRectangle (cr, rect.X, rect.Y, rect.Width, rect.Height, theme.Context.Radius); -- cr.Fill (); -- grad.Destroy (); -+ using (var grad = new Cairo.RadialGradient (x, y, 0, x, y, rect.Width / 2.0)) { -+ grad.AddColorStop (0, new Cairo.Color (0, 0, 0, 0.1 * opacity)); -+ grad.AddColorStop (1, new Cairo.Color (0, 0, 0, 0.35 * opacity)); -+ cr.SetSource (grad); -+ CairoExtensions.RoundedRectangle (cr, rect.X, rect.Y, rect.Width, rect.Height, theme.Context.Radius); -+ cr.Fill (); -+ } - - cr.Restore (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/ShadowMarginStyle.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/ShadowMarginStyle.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/ShadowMarginStyle.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/ShadowMarginStyle.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -66,7 +66,7 @@ namespace Hyena.Gui.Canvas - steps - i); - - color.A = opacity_step * (i + 1); -- cr.Color = color; -+ cr.SetSourceColor (color); - cr.Stroke (); - } - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Slider.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Slider.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Slider.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/Slider.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -153,7 +153,7 @@ namespace Hyena.Gui.Canvas - double throbber_y = (Allocation.Height - ThrobberSize) / 2.0 - Margin.Top + throbber_r; - double bar_w = RenderSize.Width * Value; - -- cr.Color = Theme.Colors.GetWidgetColor (GtkColorClass.Base, Gtk.StateType.Normal); -+ cr.SetSourceColor (Theme.Colors.GetWidgetColor (GtkColorClass.Base, Gtk.StateType.Normal)); - cr.Rectangle (0, 0, RenderSize.Width, RenderSize.Height); - cr.Fill (); - -@@ -169,10 +169,10 @@ namespace Hyena.Gui.Canvas - fill.AddColorStop (1, light_fill_color); - - cr.Rectangle (0, 0, bar_w, RenderSize.Height); -- cr.Pattern = fill; -+ cr.SetSource (fill); - cr.Fill (); - -- cr.Color = fill_color; -+ cr.SetSourceColor (fill_color); - cr.Arc (throbber_x, throbber_y, throbber_r, 0, Math.PI * 2); - cr.Fill (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TestTile.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TestTile.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TestTile.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TestTile.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -55,7 +55,7 @@ namespace Hyena.Gui.Canvas - } - - CairoExtensions.RoundedRectangle (cr, 0, 0, RenderSize.Width, RenderSize.Height, 5); -- cr.Color = color; -+ cr.SetSourceColor (color); - cr.Fill (); - } - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TextBlock.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TextBlock.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TextBlock.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Canvas/TextBlock.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -217,7 +217,7 @@ namespace Hyena.Gui.Canvas - - cr.PopGroupToSource (); - cr.Mask (mask); -- mask.Destroy (); -+ mask.Dispose (); - } - - cr.ResetClip (); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/RatingRenderer.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/RatingRenderer.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/RatingRenderer.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/RatingRenderer.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -93,13 +93,13 @@ namespace Hyena.Gui - - if (fill || hover_fill) { - if (!isHovering || hoverValue >= Value) { -- cr.Color = fill ? fill_color : hover_fill_color; -+ cr.SetSourceColor (fill ? fill_color : hover_fill_color); - } else { -- cr.Color = hover_fill ? fill_color : hover_fill_color; -+ cr.SetSourceColor (hover_fill ? fill_color : hover_fill_color); - } - cr.Fill (); - } else { -- cr.Color = stroke_color; -+ cr.SetSourceColor (stroke_color); - cr.Stroke (); - } - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui/ShadingTestWindow.cs 2017-07-18 13:36:34.008318485 -0400 -@@ -58,7 +58,7 @@ namespace Hyena.Gui - double y = Allocation.Y + yi * step_height; - - cr.Rectangle (x, y, step_width, step_height); -- cr.Color = CairoExtensions.ColorFromHsb (h, s, bg_b); -+ cr.SetSourceColor (CairoExtensions.ColorFromHsb (h, s, bg_b)); - cr.Fill (); - - int tw, th; -@@ -68,7 +68,7 @@ namespace Hyena.Gui - - cr.Translate (0.5, 0.5); - cr.MoveTo (x + (step_width - tw) / 2.0, y + (step_height - th) / 2.0); -- cr.Color = CairoExtensions.ColorFromHsb (h, s, fg_b); -+ cr.SetSourceColor (CairoExtensions.ColorFromHsb (h, s, fg_b)); - PangoCairoHelper.ShowLayout (cr, layout); - cr.Translate (-0.5, -0.5); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Gui.Theming/GtkTheme.cs 2017-07-18 13:38:09.979993771 -0400 -@@ -87,17 +87,15 @@ namespace Hyena.Gui.Theming - Color color_a = Colors.GetWidgetColor (GtkColorClass.Background, StateType.Selected); - Color color_b = CairoExtensions.ColorShade (color_a, 1.4); - -- RadialGradient fill = new RadialGradient (Context.X, Context.Y, 0, -- Context.X, Context.Y, 2.0 * Context.Radius); -- fill.AddColorStop (0, color_a); -- fill.AddColorStop (1, color_b); -- Context.Cairo.Pattern = fill; -- -- Context.Cairo.FillPreserve (); -- fill.Destroy (); -+ using (RadialGradient fill = new RadialGradient (Context.X, Context.Y, 0, Context.X, Context.Y, 2.0 * Context.Radius)) { -+ fill.AddColorStop (0, color_a); -+ fill.AddColorStop (1, color_b); -+ Context.Cairo.SetSource (fill); -+ Context.Cairo.FillPreserve (); -+ } - - // Stroke the pie -- Context.Cairo.Color = CairoExtensions.ColorShade (color_a, 0.8); -+ Context.Cairo.SetSourceColor (CairoExtensions.ColorShade (color_a, 0.8)); - Context.Cairo.LineWidth = Context.LineWidth; - Context.Cairo.Stroke (); - } -@@ -134,9 +132,9 @@ namespace Hyena.Gui.Theming - cr.LineTo (x3, y2); - cr.LineTo (x1, y1); - -- cr.Color = Colors.GetWidgetColor (GtkColorClass.Base, StateType.Normal); -+ cr.SetSourceColor (Colors.GetWidgetColor (GtkColorClass.Base, StateType.Normal)); - cr.FillPreserve (); -- cr.Color = Colors.GetWidgetColor (GtkColorClass.Text, StateType.Normal); -+ cr.SetSourceColor (Colors.GetWidgetColor (GtkColorClass.Text, StateType.Normal)); - cr.Stroke (); - - cr.Translate (-dx, -dy); -@@ -152,9 +150,9 @@ namespace Hyena.Gui.Theming - { - color.A = Context.FillAlpha; - if (pattern != null) { -- cr.Pattern = pattern; -+ cr.SetSource (pattern); - } else { -- cr.Color = color; -+ cr.SetSourceColor (color); - } - CairoExtensions.RoundedRectangle (cr, alloc.X, alloc.Y, alloc.Width, alloc.Height, Context.Radius, CairoCorners.All); - cr.Fill (); -@@ -193,10 +191,10 @@ namespace Hyena.Gui.Theming - // FIXME Windows; shading the color by .8 makes it blend into the bg - if (Widget.HasFocus && !Hyena.PlatformDetection.IsWindows) { - cr.LineWidth = BorderWidth * 1.5; -- cr.Color = CairoExtensions.ColorShade (border_color, 0.8); -+ cr.SetSourceColor (CairoExtensions.ColorShade (border_color, 0.8)); - } else { - cr.LineWidth = BorderWidth; -- cr.Color = border_color; -+ cr.SetSourceColor (border_color); - } - - double offset = (double)cr.LineWidth / 2.0; -@@ -217,14 +215,13 @@ namespace Hyena.Gui.Theming - Cairo.Color light_color = CairoExtensions.ColorShade (color, 1.6); - Cairo.Color dark_color = CairoExtensions.ColorShade (color, 1.3); - -- LinearGradient grad = new LinearGradient (alloc.X, alloc.Y, alloc.X, alloc.Bottom - 1); -- grad.AddColorStop (0, light_color); -- grad.AddColorStop (1, dark_color); -- -- cr.Pattern = grad; -- cr.Rectangle (alloc.X + 1.5, alloc.Y + 1.5, alloc.Width - 3, alloc.Height - 2); -- cr.Fill (); -- grad.Destroy (); -+ using (LinearGradient grad = new LinearGradient (alloc.X, alloc.Y, alloc.X, alloc.Bottom - 1)) { -+ grad.AddColorStop (0, light_color); -+ grad.AddColorStop (1, dark_color); -+ cr.SetSource (grad); -+ cr.Rectangle (alloc.X + 1.5, alloc.Y + 1.5, alloc.Width - 3, alloc.Height - 2); -+ cr.Fill (); -+ } - } - - public override void DrawHeaderBackground (Cairo.Context cr, Gdk.Rectangle alloc) -@@ -235,19 +232,18 @@ namespace Hyena.Gui.Theming - - CairoCorners corners = CairoCorners.TopLeft | CairoCorners.TopRight; - -- LinearGradient grad = new LinearGradient (alloc.X, alloc.Y, alloc.X, alloc.Bottom); -- grad.AddColorStop (0, light_color); -- grad.AddColorStop (0.75, dark_color); -- grad.AddColorStop (0, light_color); -- -- cr.Pattern = grad; -- CairoExtensions.RoundedRectangle (cr, alloc.X, alloc.Y, alloc.Width, alloc.Height, Context.Radius, corners); -- cr.Fill (); -+ using (LinearGradient grad = new LinearGradient (alloc.X, alloc.Y, alloc.X, alloc.Bottom)) { -+ grad.AddColorStop (0, light_color); -+ grad.AddColorStop (0.75, dark_color); -+ grad.AddColorStop (0, light_color); -+ cr.SetSource (grad); -+ CairoExtensions.RoundedRectangle (cr, alloc.X, alloc.Y, alloc.Width, alloc.Height, Context.Radius, corners); -+ cr.Fill (); -+ } - -- cr.Color = border_color; -+ cr.SetSourceColor (border_color); - cr.Rectangle (alloc.X, alloc.Bottom, alloc.Width, BorderWidth); - cr.Fill (); -- grad.Destroy (); - } - - public override void DrawColumnHeaderFocus (Cairo.Context cr, Gdk.Rectangle alloc) -@@ -262,7 +258,7 @@ namespace Hyena.Gui.Theming - Colors.GetWidgetColor (GtkColorClass.Background, StateType.Selected), 0.8); - - stroke_color.A = 0.1; -- cr.Color = stroke_color; -+ cr.SetSourceColor (stroke_color); - - CairoExtensions.RoundedRectangle (cr, - alloc.X + margin + line_width + right_offset, -@@ -275,7 +271,7 @@ namespace Hyena.Gui.Theming - - stroke_color.A = 1.0; - cr.LineWidth = line_width; -- cr.Color = stroke_color; -+ cr.SetSourceColor (stroke_color); - CairoExtensions.RoundedRectangle (cr, - alloc.X + margin + line_width + right_offset, - alloc.Y + margin + line_width + top_offset, -@@ -297,12 +293,12 @@ namespace Hyena.Gui.Theming - cr.LineWidth = 1; - cr.Antialias = Cairo.Antialias.None; - -- cr.Color = dark_color; -+ cr.SetSourceColor (dark_color); - cr.MoveTo (x, y_1); - cr.LineTo (x, y_2); - cr.Stroke (); - -- cr.Color = light_color; -+ cr.SetSourceColor (light_color); - cr.MoveTo (x + 1, y_1); - cr.LineTo (x + 1, y_2); - cr.Stroke (); -@@ -313,7 +309,7 @@ namespace Hyena.Gui.Theming - public override void DrawListBackground (Context cr, Gdk.Rectangle alloc, Color color) - { - color.A = Context.FillAlpha; -- cr.Color = color; -+ cr.SetSourceColor (color); - cr.Rectangle (alloc.X, alloc.Y, alloc.Width, alloc.Height); - cr.Fill (); - } -@@ -322,7 +318,7 @@ namespace Hyena.Gui.Theming - Cairo.Color color, CairoCorners corners) - { - cr.LineWidth = 1.25; -- cr.Color = color; -+ cr.SetSourceColor (color); - CairoExtensions.RoundedRectangle (cr, x + cr.LineWidth/2.0, y + cr.LineWidth/2.0, - width - cr.LineWidth, height - cr.LineWidth, Context.Radius, corners, true); - cr.Stroke (); -@@ -342,11 +338,10 @@ namespace Hyena.Gui.Theming - Cairo.Color selection_stroke = CairoExtensions.ColorShade (selection_color, 0.85); - selection_highlight.A = 0.5; - selection_stroke.A = color.A; -- LinearGradient grad = null; - - if (filled) { - if (flat_fill) { -- cr.Color = selection_color; -+ cr.SetSourceColor (selection_color); - } else { - Cairo.Color selection_fill_light = CairoExtensions.ColorShade (selection_color, 1.12); - Cairo.Color selection_fill_dark = selection_color; -@@ -354,25 +349,22 @@ namespace Hyena.Gui.Theming - selection_fill_light.A = color.A; - selection_fill_dark.A = color.A; - -- grad = new LinearGradient (x, y, x, y + height); -- grad.AddColorStop (0, selection_fill_light); -- grad.AddColorStop (0.4, selection_fill_dark); -- grad.AddColorStop (1, selection_fill_light); -- -- cr.Pattern = grad; -+ using (LinearGradient grad = new LinearGradient (x, y, x, y + height)) { -+ grad.AddColorStop (0, selection_fill_light); -+ grad.AddColorStop (0.4, selection_fill_dark); -+ grad.AddColorStop (1, selection_fill_light); -+ cr.SetSource (grad); -+ } - } - - CairoExtensions.RoundedRectangle (cr, x, y, width, height, Context.Radius, corners, true); - cr.Fill (); - -- if (grad != null) { -- grad.Destroy (); -- } - } - - if (filled && stroked) { - cr.LineWidth = 1.0; -- cr.Color = selection_highlight; -+ cr.SetSourceColor (selection_highlight); - CairoExtensions.RoundedRectangle (cr, x + 1.5, y + 1.5, width - 3, height - 3, - Context.Radius - 1, corners, true); - cr.Stroke (); -@@ -380,7 +372,7 @@ namespace Hyena.Gui.Theming - - if (stroked) { - cr.LineWidth = 1.0; -- cr.Color = selection_stroke; -+ cr.SetSourceColor (selection_stroke); - CairoExtensions.RoundedRectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1, - Context.Radius, corners, true); - cr.Stroke (); -@@ -389,7 +381,7 @@ namespace Hyena.Gui.Theming - - public override void DrawRowRule (Cairo.Context cr, int x, int y, int width, int height) - { -- cr.Color = new Cairo.Color (rule_color.R, rule_color.G, rule_color.B, Context.FillAlpha); -+ cr.SetSourceRGBA (rule_color.R, rule_color.G, rule_color.B, Context.FillAlpha); - cr.Rectangle (x, y, width, height); - cr.Fill (); - } -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/PulsingButton.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/PulsingButton.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/PulsingButton.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/PulsingButton.cs 2017-07-18 13:36:34.009318461 -0400 -@@ -96,17 +96,17 @@ namespace Hyena.Widgets - double alpha = Choreographer.Compose (pulsator.Percent, Easing.Sine); - - Cairo.Color color = CairoExtensions.GdkColorToCairoColor (Style.Background (StateType.Selected)); -- Cairo.RadialGradient fill = new Cairo.RadialGradient (x, y, 0, x, y, r); -- color.A = alpha; -- fill.AddColorStop (0, color); -- fill.AddColorStop (0.5, color); -- color.A = 0; -- fill.AddColorStop (1, color); -+ using (Cairo.RadialGradient fill = new Cairo.RadialGradient (x, y, 0, x, y, r)) { -+ color.A = alpha; -+ fill.AddColorStop (0, color); -+ fill.AddColorStop (0.5, color); -+ color.A = 0; -+ fill.AddColorStop (1, color); - -- cr.Arc (x, y, r, 0, 2 * Math.PI); -- cr.Pattern = fill; -- cr.Fill (); -- fill.Destroy (); -+ cr.Arc (x, y, r, 0, 2 * Math.PI); -+ cr.SetSource (fill); -+ cr.Fill (); -+ } - - CairoExtensions.DisposeContext (cr); - return base.OnExposeEvent (evnt); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs.cairofix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs.cairofix 2014-02-18 15:40:26.000000000 -0500 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/SegmentedBar.cs 2017-07-18 13:36:34.009318461 -0400 -@@ -330,50 +330,48 @@ namespace Hyena.Widgets - bar_height + bar_label_spacing + layout_height)); - cr.Clip (); - -- Pattern bar = RenderBar (Allocation.Width - 2 * h_padding, bar_height); -- -- cr.Save (); -- cr.Source = bar; -- cr.Paint (); -- cr.Restore (); -- -- if (reflect) { -+ using (Pattern bar = RenderBar (Allocation.Width - 2 * h_padding, bar_height)) { - cr.Save (); -+ cr.SetSource (bar); -+ cr.Paint (); -+ cr.Restore (); - -- cr.Rectangle (0, bar_height, Allocation.Width - h_padding, bar_height); -- cr.Clip (); -+ if (reflect) { -+ cr.Save (); - -- Matrix matrix = new Matrix (); -- matrix.InitScale (1, -1); -- matrix.Translate (0, -(2 * bar_height) + 1); -- cr.Transform (matrix); -+ cr.Rectangle (0, bar_height, Allocation.Width - h_padding, bar_height); -+ cr.Clip (); - -- cr.Pattern = bar; -+ Matrix matrix = new Matrix (); -+ matrix.InitScale (1, -1); -+ matrix.Translate (0, -(2 * bar_height) + 1); -+ cr.Transform (matrix); - -- LinearGradient mask = new LinearGradient (0, 0, 0, bar_height); -+ cr.SetSource (bar); - -- mask.AddColorStop (0.25, new Color (0, 0, 0, 0)); -- mask.AddColorStop (0.5, new Color (0, 0, 0, 0.125)); -- mask.AddColorStop (0.75, new Color (0, 0, 0, 0.4)); -- mask.AddColorStop (1.0, new Color (0, 0, 0, 0.7)); -+ using (LinearGradient mask = new LinearGradient (0, 0, 0, bar_height)) { -+ mask.AddColorStop (0.25, new Color (0, 0, 0, 0)); -+ mask.AddColorStop (0.5, new Color (0, 0, 0, 0.125)); -+ mask.AddColorStop (0.75, new Color (0, 0, 0, 0.4)); -+ mask.AddColorStop (1.0, new Color (0, 0, 0, 0.7)); - -- cr.Mask (mask); -- mask.Destroy (); -+ cr.Mask (mask); -+ } - -- cr.Restore (); -+ cr.Restore (); - -- CairoExtensions.PopGroupToSource (cr); -- cr.Paint (); -- } -+ CairoExtensions.PopGroupToSource (cr); -+ cr.Paint (); -+ } - -- if (show_labels) { -- cr.Translate ((reflect ? Allocation.X : -h_padding) + (Allocation.Width - layout_width) / 2, -- (reflect ? Allocation.Y : 0) + bar_height + bar_label_spacing); -+ if (show_labels) { -+ cr.Translate ((reflect ? Allocation.X : -h_padding) + (Allocation.Width - layout_width) / 2, -+ (reflect ? Allocation.Y : 0) + bar_height + bar_label_spacing); - -- RenderLabels (cr); -- } -+ RenderLabels (cr); -+ } - -- bar.Destroy (); -+ } - CairoExtensions.DisposeContext (cr); - - return true; -@@ -401,29 +399,29 @@ namespace Hyena.Widgets - - private void RenderBarSegments (Context cr, int w, int h, int r) - { -- LinearGradient grad = new LinearGradient (0, 0, w, 0); -- double last = 0.0; -+ using (LinearGradient grad = new LinearGradient (0, 0, w, 0)) { -+ double last = 0.0; - -- foreach (Segment segment in segments) { -- if (segment.Percent > 0) { -- grad.AddColorStop (last, segment.Color); -- grad.AddColorStop (last += segment.Percent, segment.Color); -+ foreach (Segment segment in segments) { -+ if (segment.Percent > 0) { -+ grad.AddColorStop (last, segment.Color); -+ grad.AddColorStop (last += segment.Percent, segment.Color); -+ } - } -+ -+ CairoExtensions.RoundedRectangle (cr, 0, 0, w, h, r); -+ cr.SetSource (grad); -+ cr.FillPreserve (); - } - -- CairoExtensions.RoundedRectangle (cr, 0, 0, w, h, r); -- cr.Pattern = grad; -- cr.FillPreserve (); -- cr.Pattern.Destroy (); -- -- grad = new LinearGradient (0, 0, 0, h); -- grad.AddColorStop (0.0, new Color (1, 1, 1, 0.125)); -- grad.AddColorStop (0.35, new Color (1, 1, 1, 0.255)); -- grad.AddColorStop (1, new Color (0, 0, 0, 0.4)); -- -- cr.Pattern = grad; -- cr.Fill (); -- cr.Pattern.Destroy (); -+ using (LinearGradient grad = new LinearGradient (0, 0, 0, h)) { -+ grad.AddColorStop (0.0, new Color (1, 1, 1, 0.125)); -+ grad.AddColorStop (0.35, new Color (1, 1, 1, 0.255)); -+ grad.AddColorStop (1, new Color (0, 0, 0, 0.4)); -+ -+ cr.SetSource (grad); -+ cr.Fill (); -+ } - } - - private void RenderBarStrokes (Context cr, int w, int h, int r) -@@ -440,24 +438,24 @@ namespace Hyena.Widgets - while (x <= w - r) { - cr.MoveTo (x - 0.5, 1); - cr.LineTo (x - 0.5, h - 1); -- cr.Pattern = seg_sep_light; -+ cr.SetSource (seg_sep_light); - cr.Stroke (); - - cr.MoveTo (x + 0.5, 1); - cr.LineTo (x + 0.5, h - 1); -- cr.Pattern = seg_sep_dark; -+ cr.SetSource (seg_sep_dark); - cr.Stroke (); - - x += seg_w; - } - - CairoExtensions.RoundedRectangle (cr, 0.5, 0.5, w - 1, h - 1, r); -- cr.Pattern = stroke; -+ cr.SetSource (stroke); - cr.Stroke (); - -- stroke.Destroy (); -- seg_sep_light.Destroy (); -- seg_sep_dark.Destroy (); -+ stroke.Dispose (); -+ seg_sep_light.Dispose (); -+ seg_sep_dark.Dispose (); - } - - private LinearGradient MakeSegmentGradient (int h, Color color) -@@ -489,12 +487,12 @@ namespace Hyena.Widgets - foreach (Segment segment in segments) { - cr.LineWidth = 1; - cr.Rectangle (x + 0.5, 2 + 0.5, segment_box_size - 1, segment_box_size - 1); -- LinearGradient grad = MakeSegmentGradient (segment_box_size, segment.Color, true); -- cr.Pattern = grad; -- cr.FillPreserve (); -- cr.Color = box_stroke_color; -- cr.Stroke (); -- grad.Destroy (); -+ using (LinearGradient grad = MakeSegmentGradient (segment_box_size, segment.Color, true)) { -+ cr.SetSource (grad); -+ cr.FillPreserve (); -+ cr.SetSourceColor (box_stroke_color); -+ cr.Stroke (); -+ } - - x += segment_box_size + segment_box_spacing; - -@@ -505,7 +503,7 @@ namespace Hyena.Widgets - - cr.MoveTo (x, 0); - text_color.A = 0.9; -- cr.Color = text_color; -+ cr.SetSourceColor (text_color); - PangoCairoHelper.ShowLayout (cr, layout); - cr.Fill (); - -@@ -514,7 +512,7 @@ namespace Hyena.Widgets - - cr.MoveTo (x, lh); - text_color.A = 0.75; -- cr.Color = text_color; -+ cr.SetSourceColor (text_color); - PangoCairoHelper.ShowLayout (cr, layout); - cr.Fill (); - diff --git a/banshee-2.6.2-dbus2.patch b/banshee-2.6.2-dbus2.patch deleted file mode 100644 index 3e1afae..0000000 --- a/banshee-2.6.2-dbus2.patch +++ /dev/null @@ -1,99 +0,0 @@ -diff -up banshee-2.6.2/src/Clients/Beroe/Beroe/IndexerClient.cs.dbus2 banshee-2.6.2/src/Clients/Beroe/Beroe/IndexerClient.cs ---- banshee-2.6.2/src/Clients/Beroe/Beroe/IndexerClient.cs.dbus2 2017-07-18 12:03:47.804334294 -0400 -+++ banshee-2.6.2/src/Clients/Beroe/Beroe/IndexerClient.cs 2017-07-18 12:03:59.875023236 -0400 -@@ -43,7 +43,6 @@ using Banshee.Collection.Indexer; - - namespace Beroe - { -- [DBusExportable (ServiceName = "CollectionIndexer")] - public class IndexerClient : Client, IIndexerClient, IDBusExportable - { - public static void Main () -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs.dbus2 banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs.dbus2 2017-07-18 12:04:12.220705091 -0400 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexer.cs 2017-07-18 12:04:24.912378030 -0400 -@@ -42,7 +42,6 @@ using Banshee.Collection.Database; - - namespace Banshee.Collection.Indexer - { -- [DBusExportable (ServiceName = "CollectionIndexer")] - public class CollectionIndexer : ICollectionIndexer, IService, IDBusExportable, IDisposable - { - private static int instance_count = 0; -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs.dbus2 banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs.dbus2 2017-07-18 12:04:40.802968534 -0400 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Indexer/CollectionIndexerService.cs 2017-07-18 12:04:50.458719709 -0400 -@@ -41,7 +41,6 @@ using Banshee.Collection.Database; - - namespace Banshee.Collection.Indexer - { -- [DBusExportable (ServiceName = "CollectionIndexer")] - public class CollectionIndexerService : ICollectionIndexerService, IDBusExportable, IDisposable - { - private List libraries = new List (); -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs.dbus2 banshee-2.6.2/src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs.dbus2 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.ServiceStack/DBusServiceManager.cs 2017-07-18 12:07:03.823282943 -0400 -@@ -40,15 +40,6 @@ using Banshee.Base; - - namespace Banshee.ServiceStack - { -- public class DBusExportableAttribute : Attribute -- { -- private string service_name; -- public string ServiceName { -- get { return service_name; } -- set { service_name = value; } -- } -- } -- - public class DBusServiceManager : IService - { - public const string ObjectRoot = "/org/bansheeproject/Banshee"; -@@ -102,43 +93,21 @@ namespace Banshee.ServiceStack - - public ObjectPath RegisterObject (IDBusExportable o) - { -- return RegisterObject (DBusConnection.DefaultServiceName, o); -- } -- -- public ObjectPath RegisterObject (string serviceName, IDBusExportable o) -- { -- return RegisterObject (serviceName, o, MakeObjectPath (o)); -+ return RegisterObject (o, MakeObjectPath (o)); - } - - public ObjectPath RegisterObject (object o, string objectName) - { -- return RegisterObject (DBusConnection.DefaultServiceName, o, objectName); -- } -- -- public ObjectPath RegisterObject (string serviceName, object o, string objectName) -- { - ObjectPath path = null; - - if (DBusConnection.Enabled && Bus.Session != null) { -- object [] attrs = o.GetType ().GetCustomAttributes (typeof (DBusExportableAttribute), true); -- if (attrs != null && attrs.Length > 0) { -- DBusExportableAttribute dbus_attr = (DBusExportableAttribute)attrs[0]; -- if (!String.IsNullOrEmpty (dbus_attr.ServiceName)) { -- serviceName = dbus_attr.ServiceName; -- } -- } -- - lock (registered_objects) { - registered_objects.Add (o, path = new ObjectPath (objectName)); - } - -- string bus_name = DBusConnection.MakeBusName (serviceName); -- -- Log.DebugFormat ("Registering remote object {0} ({1}) on {2}", path, o.GetType (), bus_name); -+ Log.DebugFormat ("Registering remote object {0} ({1})", path, o.GetType ()); - -- #pragma warning disable 0618 -- Bus.Session.Register (bus_name, path, o); -- #pragma warning restore 0618 -+ Bus.Session.Register (path, o); - } - - return path; diff --git a/banshee-2.6.2-dos2unix-xml.patch b/banshee-2.6.2-dos2unix-xml.patch deleted file mode 100644 index 0405eea..0000000 --- a/banshee-2.6.2-dos2unix-xml.patch +++ /dev/null @@ -1,66 +0,0 @@ -diff -up banshee-2.6.2/src/Libraries/Migo/Migo.Syndication/RssParser.cs.dos2unix banshee-2.6.2/src/Libraries/Migo/Migo.Syndication/RssParser.cs ---- banshee-2.6.2/src/Libraries/Migo/Migo.Syndication/RssParser.cs.dos2unix 2014-02-18 15:35:24.000000000 -0500 -+++ banshee-2.6.2/src/Libraries/Migo/Migo.Syndication/RssParser.cs 2017-08-31 10:45:49.868223559 -0400 -@@ -54,26 +54,49 @@ namespace Migo.Syndication - try { - doc.LoadXml (xml); - } catch (XmlException e) { -- bool have_stripped_control = false; -- StringBuilder sb = new StringBuilder (); -- -- foreach (char c in xml) { -- if (Char.IsControl (c) && c != '\n') { -- have_stripped_control = true; -- } else { -- sb.Append (c); -- } -- } -- - bool loaded = false; -- if (have_stripped_control) { -+ string DosLineBreak = "\r\n"; -+ var encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: true); -+ string _byteOrderMarkUtf8 = encoding.GetString(encoding.GetPreamble()); -+ if (System.Text.RegularExpressions.Regex.IsMatch(xml, DosLineBreak, System.Text.RegularExpressions.RegexOptions.IgnoreCase)) { -+ Hyena.Log.Warning ("DosLineBreaks detected in xml"); -+ string result = xml.Replace("\r", ""); -+ if (result.StartsWith(_byteOrderMarkUtf8, StringComparison.Ordinal)) { -+ Hyena.Log.Warning ("UTF-8 BOM detected in xml"); -+ result = result.Remove(0, _byteOrderMarkUtf8.Length); -+ } -+ if (result.StartsWith("\uFEFF", StringComparison.Ordinal)) { -+ Hyena.Log.Warning ("UTF-16 BOM detected in xml"); -+ result.Trim(new char[]{'\uFEFF','\u200B'}); -+ } - try { -- doc.LoadXml (sb.ToString ()); -+ doc.LoadXml (result); - loaded = true; - } catch (Exception) { - } - } - -+ if (!loaded) { -+ bool have_stripped_control = false; -+ StringBuilder sb = new StringBuilder (); -+ -+ foreach (char c in xml) { -+ if (Char.IsControl (c) && c != '\n') { -+ have_stripped_control = true; -+ } else { -+ sb.Append (c); -+ } -+ } -+ -+ if (have_stripped_control) { -+ try { -+ doc.LoadXml (sb.ToString ()); -+ loaded = true; -+ } catch (Exception) { -+ } -+ } -+ } -+ - if (!loaded) { - Hyena.Log.Exception (e); - throw new FormatException ("Invalid XML document."); diff --git a/banshee-2.6.2-fix-CollectionExtensions-disambiguation.patch b/banshee-2.6.2-fix-CollectionExtensions-disambiguation.patch deleted file mode 100644 index fd2ec49..0000000 --- a/banshee-2.6.2-fix-CollectionExtensions-disambiguation.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Preferences/Collection.cs.spotfix banshee-2.6.2/src/Core/Banshee.Services/Banshee.Preferences/Collection.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Preferences/Collection.cs.spotfix 2019-07-29 15:14:20.349492489 -0400 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Preferences/Collection.cs 2019-07-29 15:14:38.901104368 -0400 -@@ -46,7 +46,7 @@ namespace Banshee.Preferences - { - lock (this) { - if (item is Page || item is Section) { -- CollectionExtensions.SortedInsert (list, item); -+ Hyena.Collections.CollectionExtensions.SortedInsert (list, item); - } else { - list.Add (item); - } diff --git a/banshee-2.6.2-fix-gnomesettings-connection.patch b/banshee-2.6.2-fix-gnomesettings-connection.patch deleted file mode 100644 index a8e4c98..0000000 --- a/banshee-2.6.2-fix-gnomesettings-connection.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs.gnomesession banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs.gnomesession 2017-07-22 22:11:29.422440027 -0400 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs 2017-07-22 22:11:55.030748961 -0400 -@@ -37,7 +37,7 @@ namespace Banshee.Networking - public class NetworkManager : INetworkAvailabilityService - { - [Interface ("org.freedesktop.NetworkManager")] -- private interface INetworkManager -+ public interface INetworkManager - { - event StateChangeHandler StateChange; - event StateChangeHandler StateChanged; -diff -up banshee-2.6.2/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs.gnomesession banshee-2.6.2/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs ---- banshee-2.6.2/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs.gnomesession 2017-07-22 22:12:09.598355838 -0400 -+++ banshee-2.6.2/src/Extensions/Banshee.MultimediaKeys/Banshee.MultimediaKeys/MultimediaKeysService.cs 2017-07-22 22:12:44.414416290 -0400 -@@ -44,11 +44,11 @@ namespace Banshee.MultimediaKeys - private const string BusName = "org.gnome.SettingsDaemon"; - private const string ObjectPath = "/org/gnome/SettingsDaemon"; - -- private delegate void MediaPlayerKeyPressedHandler (string application, string key); -+ public delegate void MediaPlayerKeyPressedHandler (string application, string key); - - // GNOME 2.20 - [Interface ("org.gnome.SettingsDaemon")] -- private interface ISettingsDaemon220 -+ public interface ISettingsDaemon220 - { - void GrabMediaPlayerKeys (string application, uint time); - void ReleaseMediaPlayerKeys (string application); -@@ -57,7 +57,7 @@ namespace Banshee.MultimediaKeys - - // GNOME 2.22 - [Interface ("org.gnome.SettingsDaemon.MediaKeys")] -- private interface ISettingsDaemon222 -+ public interface ISettingsDaemon222 - { - void GrabMediaPlayerKeys (string application, uint time); - void ReleaseMediaPlayerKeys (string application); -diff -up banshee-2.6.2/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu/SoundMenuProxy.cs.gnomesession banshee-2.6.2/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu/SoundMenuProxy.cs ---- banshee-2.6.2/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu/SoundMenuProxy.cs.gnomesession 2017-07-22 22:13:00.652978078 -0400 -+++ banshee-2.6.2/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu/SoundMenuProxy.cs 2017-07-22 22:13:29.612196584 -0400 -@@ -38,12 +38,12 @@ namespace Banshee.SoundMenu - private const string DBusPath = "/com/canonical/indicators/sound/service"; - private const string desktop_name = "banshee"; - -- private delegate void SoundStateUpdateHandler (int new_state); -+ public delegate void SoundStateUpdateHandler (int new_state); - - private ISoundMenu sound_menu; - - [Interface("com.canonical.indicators.sound")] -- private interface ISoundMenu -+ public interface ISoundMenu - { - bool BlacklistMediaPlayer (string player_desktop_name, bool blacklist); - bool IsBlacklisted (string player_desktop_name); diff --git a/banshee-2.6.2-fix-nm-connection-state-cases.patch b/banshee-2.6.2-fix-nm-connection-state-cases.patch deleted file mode 100644 index 456cab8..0000000 --- a/banshee-2.6.2-fix-nm-connection-state-cases.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs.fixnm banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs.fixnm 2017-07-22 22:15:31.176916037 -0400 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Networking/NetworkManager.cs 2017-07-22 22:15:53.335318068 -0400 -@@ -80,8 +80,8 @@ namespace Banshee.Networking - case 20: return State.Disconnected; - case 30: return State.Disconnected; - case 40: return State.Connecting; -- case 50: return State.Connected; -- case 60: return State.Connected; -+ case 50: return State.Disconnected; -+ case 60: return State.Disconnected; - case 70: return State.Connected; - } - return state; diff --git a/banshee-2.6.2-gst1.0-handle-events-fix.patch b/banshee-2.6.2-gst1.0-handle-events-fix.patch deleted file mode 100644 index 0cad243..0000000 --- a/banshee-2.6.2-gst1.0-handle-events-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- banshee-2.6.2.orig/libbanshee/banshee-player-video.c 2014-11-29 18:16:53.951304991 +0100 -+++ banshee-2.6.2.orig/libbanshee/banshee-player-video.c 2014-11-29 18:19:50.559560282 +0100 -@@ -75,9 +75,13 @@ bp_video_find_video_overlay (BansheePlay - } - #endif - -- if (player->video_overlay != NULL && g_object_class_find_property ( -- G_OBJECT_GET_CLASS (player->video_overlay), "handle-events")) { -- g_object_set (G_OBJECT (player->video_overlay), "handle-events", FALSE, NULL); -+ if (player->video_overlay != NULL) { -+ if (g_object_class_find_property ( -+ G_OBJECT_GET_CLASS (player->video_overlay), "handle-events")) { -+ g_object_set (G_OBJECT (player->video_overlay), "handle-events", FALSE, NULL); -+ } else { -+ gst_video_overlay_handle_events (player->video_overlay, FALSE); -+ } - } - - gst_object_unref (video_sink); diff --git a/banshee-2.6.2-icon-fix.patch b/banshee-2.6.2-icon-fix.patch deleted file mode 100644 index abaafed..0000000 --- a/banshee-2.6.2-icon-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs.iconfix banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs ---- banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs.iconfix 2017-07-18 13:53:20.214942088 -0400 -+++ banshee-2.6.2/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/TaskStatusIcon.cs 2017-07-18 13:53:41.294431376 -0400 -@@ -64,7 +64,7 @@ namespace Banshee.Gui.Widgets - - // Setup widgetry - try { -- Pixbuf = Gtk.IconTheme.Default.LoadIcon ("process-working", 22, IconLookupFlags.NoSvg); -+ Pixbuf = Gtk.IconTheme.Default.LoadIcon ("process-working-symbolic", 22, (Gtk.IconLookupFlags) 0); - FrameHeight = 22; - FrameWidth = 22; - Load (); -diff -up banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/MessageBar.cs.iconfix banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/MessageBar.cs ---- banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/MessageBar.cs.iconfix 2017-07-18 13:53:05.679294258 -0400 -+++ banshee-2.6.2/src/Hyena/Hyena.Gui/Hyena.Widgets/MessageBar.cs 2017-07-18 13:53:13.031116138 -0400 -@@ -68,7 +68,7 @@ namespace Hyena.Widgets - - image = new AnimatedImage (); - try { -- image.Pixbuf = Gtk.IconTheme.Default.LoadIcon ("process-working", 22, IconLookupFlags.NoSvg); -+ image.Pixbuf = Gtk.IconTheme.Default.LoadIcon ("process-working-symbolic", 22, (Gtk.IconLookupFlags) 0); - image.FrameHeight = 22; - image.FrameWidth = 22; - Spinning = false; diff --git a/banshee-2.6.2-mono-tls-provider-legacy.patch b/banshee-2.6.2-mono-tls-provider-legacy.patch deleted file mode 100644 index 16b513f..0000000 --- a/banshee-2.6.2-mono-tls-provider-legacy.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up banshee-2.6.2/src/Clients/Booter/banshee.linux.in.monotlsprovider banshee-2.6.2/src/Clients/Booter/banshee.linux.in ---- banshee-2.6.2/src/Clients/Booter/banshee.linux.in.monotlsprovider 2017-07-22 22:09:54.752995630 -0400 -+++ banshee-2.6.2/src/Clients/Booter/banshee.linux.in 2017-07-22 22:10:16.895397704 -0400 -@@ -7,6 +7,7 @@ MONO_EXE="@expanded_libdir@/@PACKAGE@/$e - BANSHEE_EXEC_NAME=$(basename $0) - BANSHEE_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/banshee-1" - -+export MONO_TLS_PROVIDER=legacy - export LD_LIBRARY_PATH=@expanded_libdir@/@PACKAGE@:@expanded_libdir@/@PACKAGE@/Extensions:@expanded_libdir@/@PACKAGE@/Backends:@expanded_libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} - export GST_PLUGIN_PATH=@expanded_libdir@/@PACKAGE@/gstreamer-0.10${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH} - if [ $BANSHEE_EXEC_NAME = "muinshee" ]; then diff --git a/banshee-2.6.2-sqlite-hints.patch b/banshee-2.6.2-sqlite-hints.patch deleted file mode 100644 index 22ae023..0000000 --- a/banshee-2.6.2-sqlite-hints.patch +++ /dev/null @@ -1,127 +0,0 @@ -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs.sqlite-hints 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumArtistListModel.cs 2016-02-12 13:49:54.560806549 -0500 -@@ -46,7 +46,7 @@ namespace Banshee.Collection.Database - ReloadFragmentFormat = @" - FROM CoreArtists WHERE CoreArtists.ArtistID IN - (SELECT CoreAlbums.ArtistID FROM CoreAlbums, CoreTracks, CoreCache{0} -- WHERE CoreCache.ModelID = {1} AND -+ WHERE {4}(CoreCache.ModelID = {1}) AND - CoreTracks.AlbumID = CoreAlbums.AlbumID AND - EXISTS (SELECT 1 FROM CoreArtists WHERE ArtistID = CoreAlbums.ArtistID) AND - CoreCache.ItemID = {2} {3}) -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs.sqlite-hints 2014-02-18 15:40:14.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseAlbumListModel.cs 2016-02-12 13:49:54.560806549 -0500 -@@ -56,7 +56,7 @@ namespace Banshee.Collection.Database - ReloadFragmentFormat = @" - FROM CoreAlbums WHERE CoreAlbums.AlbumID IN - (SELECT CoreTracks.AlbumID FROM CoreTracks, CoreCache{0} -- WHERE CoreCache.ModelID = {1} AND -+ WHERE {4}(CoreCache.ModelID = {1}) AND - CoreCache.ItemId = {2} {3}) - ORDER BY CoreAlbums.TitleSortKey, CoreAlbums.ArtistNameSortKey"; - } -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs.sqlite-hints 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseArtistListModel.cs 2016-02-12 13:49:54.560806549 -0500 -@@ -49,7 +49,7 @@ namespace Banshee.Collection.Database - ReloadFragmentFormat = @" - FROM CoreArtists WHERE CoreArtists.ArtistID IN - (SELECT CoreTracks.ArtistID FROM CoreTracks, CoreCache{0} -- WHERE CoreCache.ModelID = {1} AND -+ WHERE {4}(CoreCache.ModelID = {1}) AND - CoreCache.ItemID = {2} {3}) - ORDER BY NameSortKey"; - } -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs.sqlite-hints 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseFilterListModel.cs 2016-02-12 13:54:24.530444339 -0500 -@@ -57,10 +57,10 @@ namespace Banshee.Collection.Database - } - - protected readonly U select_all_item; -- private HyenaSqliteConnection connection; -+ private BansheeDbConnection connection; - - public DatabaseFilterListModel (string name, string label, Banshee.Sources.DatabaseSource source, -- DatabaseTrackListModel trackModel, HyenaSqliteConnection connection, SqliteModelProvider provider, U selectAllItem, string uuid) -+ DatabaseTrackListModel trackModel, BansheeDbConnection connection, SqliteModelProvider provider, U selectAllItem, string uuid) - : base (trackModel) - { - this.source = source; -@@ -124,7 +124,8 @@ namespace Banshee.Collection.Database - "{0}.{1} AND CoreTracks.TrackID = {0}.{2}", - FilteredModel.JoinTable, FilteredModel.JoinPrimaryKey, FilteredModel.JoinColumn) - : "CoreTracks.TrackID", -- filtered ? GetFilterFragment () : "" -+ filtered ? GetFilterFragment () : "", -+ connection.LikelihoodSupport ? "UNLIKELY" : "" - ); - } - -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs.sqlite-hints 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseQueryFilterModel.cs 2016-02-12 13:52:27.749466163 -0500 -@@ -37,6 +37,7 @@ using Hyena.Data.Sqlite; - using Mono.Unix; - - using Banshee.ServiceStack; -+using Banshee.Database; - - namespace Banshee.Collection.Database - { -@@ -51,7 +52,7 @@ namespace Banshee.Collection.Database - private string select_all_fmt; - - public DatabaseQueryFilterModel (Banshee.Sources.DatabaseSource source, DatabaseTrackListModel trackModel, -- HyenaSqliteConnection connection, string select_all_fmt, string uuid, QueryField field, string filter_column) -+ BansheeDbConnection connection, string select_all_fmt, string uuid, QueryField field, string filter_column) - : base (field.Name, field.Label, source, trackModel, connection, QueryFilterInfo.CreateProvider (filter_column, field), new QueryFilterInfo (), String.Format ("{0}-{1}", uuid, field.Name)) - { - this.field = field; -@@ -59,7 +60,7 @@ namespace Banshee.Collection.Database - - ReloadFragmentFormat = @" - FROM CoreTracks, CoreCache{0} -- WHERE CoreCache.ModelID = {1} AND CoreCache.ItemID = {2} {3} -+ WHERE {4}(CoreCache.ModelID = {1}) AND CoreCache.ItemID = {2} {3} - ORDER BY Value"; - - QueryFields = new QueryFieldSet (query_filter_field); -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs.sqlite-hints 2014-02-18 15:35:23.000000000 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Collection.Database/DatabaseYearListModel.cs 2016-02-12 13:49:54.561806540 -0500 -@@ -47,7 +47,7 @@ namespace Banshee.Collection.Database - FROM (SELECT MIN(CoreTracks.TrackID) AS TrackID, CoreTracks.Year FROM CoreTracks GROUP BY CoreTracks.Year) AS CoreTracks - WHERE CoreTracks.Year IN - (SELECT CoreTracks.Year FROM CoreTracks, CoreCache{0} -- WHERE CoreCache.ModelID = {1} AND -+ WHERE {4}(CoreCache.ModelID = {1}) AND - CoreCache.ItemID = {2} {3}) - ORDER BY Year"; - } -diff -up banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs.sqlite-hints banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs ---- banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs.sqlite-hints 2016-02-12 13:50:42.853383993 -0500 -+++ banshee-2.6.2/src/Core/Banshee.Services/Banshee.Database/BansheeDbConnection.cs 2016-02-12 13:56:29.789348335 -0500 -@@ -52,6 +52,20 @@ namespace Banshee.Database - get { return configuration; } - } - -+ private bool? likelihood_support = null; -+ public bool LikelihoodSupport { -+ get { -+ if (!likelihood_support.HasValue) { -+ // emulate the SQLITE_VERSION_NUMBER macro -+ string[] v = Query ("SELECT sqlite_version ()").Split ('.'); -+ likelihood_support = (Int32.Parse (v[0]) * 1000000 + -+ Int32.Parse (v[1]) * 1000 + -+ Int32.Parse (v[2])) >= 3008001; -+ } -+ return likelihood_support.Value; -+ } -+ } -+ - public BansheeDbConnection () : this (DatabaseFile) - { - validate_schema = ApplicationContext.CommandLine.Contains ("validate-db-schema"); diff --git a/banshee.spec b/banshee.spec deleted file mode 100644 index ea7ce07..0000000 --- a/banshee.spec +++ /dev/null @@ -1,781 +0,0 @@ -Name: banshee -Version: 2.6.2 -Release: 36%{?dist} -Summary: Easily import, manage, and play selections from your music collection - -License: MIT -URL: http://banshee.fm/ -Source0: http://ftp.gnome.org/pub/GNOME/sources/banshee/2.6/banshee-%{version}.tar.xz - -# GStreamer 1.0 patches from Debian: -Patch2: Initial-port-to-GStreamer-1.0.patch -Patch3: Remove-build-time-enable-gapless-playback-option.patch -Patch4: Don-t-use-the-new-decoded-pad-signal-of-decodebin.patch -Patch5: Use-new-style-GStreamer-1.0-raw-audio-caps-in-the-WA.patch -# Backported crash fix from upstream -Patch6: Dont-try-to-mount-null-devices.patch -# Bugzilla 1167029 -Patch7: banshee-2.6.2-gst1.0-handle-events-fix.patch -# Add sqlite-hints -# https://bugzilla.gnome.org/show_bug.cgi?id=740879 -Patch8: banshee-2.6.2-sqlite-hints.patch -# Support dbus-sharp 2.0 -Patch9: banshee-2.6.2-dbus2.patch -# clean up cairo warnings -Patch10: banshee-2.6.2-cairo-fix.patch -# clean up process-working exception -Patch11: banshee-2.6.2-icon-fix.patch -# force MONO_TLS_PROVIDER=legacy -Patch12: banshee-2.6.2-mono-tls-provider-legacy.patch -# fix gnome-settings connection -# Thanks to Fabrice Bellet -Patch13: banshee-2.6.2-fix-gnomesettings-connection.patch -# Fix NetworkManager connection state cases -# Thanks to Fabrice Bellet -Patch14: banshee-2.6.2-fix-nm-connection-state-cases.patch -# Convert failed xml streams from dos2unix and retry -Patch15: banshee-2.6.2-dos2unix-xml.patch -# More fixes from Fabrice Bellet -Patch16: 1018-Fix-reference-to-gtk-stock-icons.patch -Patch17: banshee-2.6.2-fix-CollectionExtensions-disambiguation.patch - -# Mono only available on these: -ExclusiveArch: %{mono_arches} - -BuildRequires: mono-devel -BuildRequires: mono-zeroconf-devel >= 0.9.0-2 -BuildRequires: sqlite-devel >= 3.4 -BuildRequires: gstreamer1-devel -BuildRequires: gstreamer1-plugins-base-devel -BuildRequires: gstreamer1-plugins-good -BuildRequires: libmtp-devel >= 0.2.0 -# explicitly depend on dbus-glib-devel for -# https://bugzilla.redhat.com/show_bug.cgi?id=867133 -BuildRequires: dbus-glib-devel -BuildRequires: GConf2-devel -BuildRequires: libappstream-glib - -# Web Browser -# OLD webkitgtk1 is dead. -# BuildRequires: webkitgtk-devel - -# Sharp -BuildRequires: gio-sharp-devel gtk-sharp-beans-devel -BuildRequires: gkeyfile-sharp-devel gudev-sharp-devel -BuildRequires: gtk-sharp2-devel taglib-sharp-devel -BuildRequires: gnome-sharp-devel notify-sharp-devel -%ifnarch s390 s390x -BuildRequires: libgpod-sharp-devel >= 0.8.2 -%endif -BuildRequires: gdata-sharp-devel -BuildRequires: dbus-sharp-devel >= 1:0.8.0 -BuildRequires: dbus-sharp-glib-devel - -# Extra mono deps -BuildRequires: mono-data mono-data-sqlite mono-addins-devel - -# Gnome/Glib -BuildRequires: gnome-desktop-devel - -# X -BuildRequires: libXxf86vm-devel - -# Misc -BuildRequires: gnome-doc-utils gettext-devel intltool perl(XML::Parser) - -# Disable boo support until boo is available again for Mono 2.8 -# BuildRequires: boo-devel - -# Building with nunit installed causes banshee to require it at runtime -#BuildRequires: mono-nunit-devel - -BuildRequires: desktop-file-utils - -# Snapshots only -BuildRequires: autoconf automake libtool - -Requires: shared-mime-info -Requires: gstreamer1-plugins-good -%ifnarch s390 s390x -Requires: libgpod-sharp >= 0.8.2 -Requires: gvfs-afc -%endif -Requires: gio-sharp gtk-sharp-beans -Requires: media-player-info - -Obsoletes: banshee-meego < 2.2.1-4 -Obsoletes: banshee-musicbrainz < 2.6.2 - -%description -Banshee allows you to import CDs, sync your music collection to an iPod, -play music directly from an iPod, create playlists with songs from your -library, and create audio and MP3 CDs from subsets of your library. - -%package devel -Summary: Development files for Banshee -Requires: %{name} = %{version}-%{release} -Obsoletes: banshee-musicbrainz-devel < 2.6.2 - -%description devel -Banshee allows you to import CDs, sync your music collection to an iPod, -play music directly from an iPod, create playlists with songs from your -library, and create audio and MP3 CDs from subsets of your library. - -The %{name}-devel package contains libraries and header files for -developing extensions for %{name}. - -%prep -%setup -q -%patch2 -p1 -b .gst1 -%patch3 -p1 -b .gapless -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -b .handle-events-fix -%patch8 -p1 -b .sqlite-hints -%patch9 -p1 -b .dbus2 -%patch10 -p1 -b .cairofix -%patch11 -p1 -b .iconfix -%patch12 -p1 -b .monotlsprovider -%patch13 -p1 -b .gnomesettings -%patch14 -p1 -b .fixnm -%patch15 -p1 -b .dos2unix -%patch16 -p1 -b .iconfix2 -%patch17 -p1 -b .fixCollectionExtensions - -sed -i "s#gmcs#mcs#g" configure.ac -sed -i "s#gmcs#mcs#g" configure* -sed -i "s#gmcs#mcs#g" Makefile.in -sed -i "s#gmcs#mcs#g" src/Libraries/Lastfm/Makefile.* -sed -i "s#gmcs#mcs#g" Makefile.* -sed -i "s#gmcs#mcs#g" src/Hyena/build/m4/shamrock/mono.m4 -sed -i "s#gmcs#mcs#g" build/m4/shamrock/mono.m4 -#dbus2 -sed -i "s#dbus-sharp-glib-1.0#dbus-sharp-glib-2.0#g" build/m4/banshee/dbus.m4 -sed -i "s#dbus-sharp-1.0#dbus-sharp-2.0#g" build/m4/banshee/dbus.m4 -sed -i "s#dbus-sharp-1.0#dbus-sharp-2.0#g" build/pkg-config/banshee-collection-indexer.pc.in -sed -i "s#dbus-sharp-1.0#dbus-sharp-2.0#g" build/pkg-config/banshee-core.pc.in -sed -i "s#dbus-sharp-glib-1.0#dbus-sharp-glib-2.0#g" build/pkg-config/banshee-collection-indexer.pc.in -sed -i "s#dbus-sharp-glib-1.0#dbus-sharp-glib-2.0#g" build/pkg-config/banshee-core.pc.in - -%build -NOCONFIGURE=1 ./autogen.sh - -sed -i "s#gmcs#mcs#g" configure -sed -i "s#mono/2.0#mono/4.5#g" configure -sed -i "s#Mono 2.0#Mono 4.5#g" configure - -%configure --disable-docs --enable-mtp \ -%ifarch s390 s390x - --disable-appledevice \ -%endif - --with-vendor-build-id=Fedora%{?fedora}-%{version}-%{release} \ - --disable-boo --disable-clutter --disable-meego --disable-webkit - -make %{?_smp_mflags} V=1 - -%install -make install DESTDIR=%{buildroot} - -# Update the screenshot shown in the software center -# -# NOTE: It would be *awesome* if this file was pushed upstream. -# -# See http://people.freedesktop.org/~hughsient/appdata/#screenshots for more details. -# -appstream-util replace-screenshots $RPM_BUILD_ROOT%{_datadir}/appdata/banshee.appdata.xml \ - https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/banshee/a.png \ - https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/banshee/b.png \ - https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/banshee/c.png \ - https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/banshee/d.png - -# clean-up .a archives -find %{buildroot} \( -name '*.la' -or -name '*.a' \) -exec rm -f {} \; - -# mono's .config files don't need to be executable -find $RPM_BUILD_ROOT -name '*.config' -exec chmod a-x {} \; - -%find_lang %{name} --with-gnome - -%check -make check V=1 - -desktop-file-validate %{buildroot}%{_datadir}/applications/banshee*.desktop - -%files -f %{name}.lang -%doc COPYING AUTHORS README NEWS -%{_bindir}/banshee -%{_bindir}/muinshee -%{_bindir}/bamz -%{_libdir}/banshee -%{_datadir}/appdata/banshee.appdata.xml -%{_datadir}/applications/*.desktop -%{_datadir}/dbus-1/services/org.bansheeproject.Banshee.service -%{_datadir}/dbus-1/services/org.bansheeproject.CollectionIndexer.service -%{_datadir}/banshee/ -%{_datadir}/icons/hicolor/*/apps/media-player-banshee.png -%{_datadir}/mime/packages/* - -%files devel -%{_libdir}/pkgconfig/banshee-*.pc - -%changelog -* Mon Jul 27 2020 Fedora Release Engineering - 2.6.2-36 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 2.6.2-35 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Mon Jul 29 2019 Tom Callaway - 2.6.2-34 -- apply fixes from Fabrice Bellet - -* Wed Jul 24 2019 Fedora Release Engineering - 2.6.2-33 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 2.6.2-32 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jul 12 2018 Fedora Release Engineering - 2.6.2-31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Mar 23 2018 Tom Callaway - 2.6.2-30 -- rebuild - -* Wed Feb 07 2018 Fedora Release Engineering - 2.6.2-29 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Sun Jan 07 2018 Igor Gnatenko - 2.6.2-28 -- Remove obsolete scriptlets - -* Wed Sep 6 2017 Tom Callaway - 2.6.2-27 -- fix .pc files in banshee-devel to have correct deps - -* Tue Sep 5 2017 Tom Callaway - 2.6.2-26 -- BUMP - -* Wed Aug 30 2017 Tom Callaway - 2.6.2-25 -- Convert failed xml streams from dos2unix and retry - -* Wed Aug 02 2017 Fedora Release Engineering - 2.6.2-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 2.6.2-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Sat Jul 22 2017 Tom Callaway - 2.6.2-22 -- set MONO_TLS_PROVIDER=legacy in banshee start script -- fix dbus connections to gnome-settings-daemon -- this fixes multimedia keys and networkmanager awareness -- update networkmanager connection cases -- many thanks to Fabrice Bellet - -* Tue Jul 18 2017 Tom Callaway - 2.6.2-21 -- fix up cairo warnings -- fix icon warning -- use complete dbus patch from upstream (not new, upstream still dead) - -* Mon Mar 20 2017 Tom Callaway - 2.6.2-20 -- rebuild without webkitgtk - -* Mon Feb 27 2017 Tom Callaway - 2.6.2-19 -- rebuild for dbus-sharp[-glib] - -* Fri Feb 10 2017 Fedora Release Engineering - 2.6.2-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue Oct 25 2016 Tom Callaway - 2.6.2-17 -- rebuild for new gudev-sharp - -* Thu Oct 13 2016 Fedora Release Engineering - 2.6.2-16 -- mono rebuild for aarch64 support - -* Fri Feb 12 2016 Tom Callaway - 2.6.2-15 -- fixup sqlite hints patch to do proper version checking and match upstream commit - -* Wed Feb 03 2016 Fedora Release Engineering - 2.6.2-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jan 26 2016 Claudio Rodrigo Pereyra Diaz - 2.6.2-13 -- Rebuild for taglib-sharp 2.1 - -* Wed Jun 17 2015 Fedora Release Engineering - 2.6.2-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue May 26 2015 Claudio Rodrigo Pereyra Diaz - 2.6.2-11 -- Fix for build with mono 4 - -* Mon May 18 2015 Peter Robinson 2.6.2-10 -- Rebuild (mono4) - -* Mon Mar 30 2015 Richard Hughes - 2.6.2-9 -- Use better AppData screenshots - -* Wed Dec 10 2014 Tom Callaway 2.6.2-8 -- add sqlite hinting - -* Tue Dec 2 2014 Tom Callaway 2.6.2-7 -- fixed version of last patch, thanks to Fabrice Bellet - -* Wed Nov 26 2014 Tom Callaway 2.6.2-6 -- add fix to allow vaapisink in gst1.0 to handle GstNavigation stuff properly (bz1167029) - -* Sat Aug 16 2014 Rex Dieter 2.6.2-5 -- update mime scriptlets - -* Fri Aug 15 2014 Fedora Release Engineering - 2.6.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 2.6.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue May 20 2014 Eric "Sparks" Christensen - 2.6.2-2 -- Added patch to fix BZ 1012176 - -* Sun Mar 09 2014 Kalev Lember - 2.6.2-1 -- Update to 2.6.2 -- Fold banshee-musicbrainz into the main package -- Add two more GStreamer 1.0 patches from Debian - -* Sat Aug 03 2013 Fedora Release Engineering - 2.6.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Apr 17 2013 Kalev Lember - 2.6.1-1 -- Update to 2.6.1 - -* Mon Apr 1 2013 Tom Callaway - 2.6.0-4 -- gstreamer 1.0 support - -* Sat Mar 30 2013 Kalev Lember - 2.6.0-3 -- Initialize dbus threads (#867133) - -* Wed Feb 13 2013 Fedora Release Engineering - 2.6.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Thu Oct 11 2012 Kalev Lember - 2.6.0-1 -- Update to 2.6.0 - -* Wed Jul 18 2012 Fedora Release Engineering - 2.4.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Sun Jun 03 2012 Christian Krause - 2.4.1-1 -- Update to 2.4.1 - -* Mon Mar 26 2012 Christian Krause - 2.4.0-1 -- Update to 2.4.0 - -* Sun Feb 26 2012 Christian Krause - 2.2.1-4 -- Drop MeeGo sub-package since the required mutter-meego package - is not available anymore - -* Thu Jan 12 2012 Fedora Release Engineering - 2.2.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Sun Dec 11 2011 Dan Horák - 2.2.1-2 -- fix Requires on s390(x) -- switch to a macro for the list of Mono arches - -* Thu Nov 17 2011 Christian Krause - 2.2.1-1 -- Update to 2.2.1 -- Comment out snapshot-only buildreqs -- Switch from ndesk dbus stuff to dbus-sharp -- Add requires on media-player-info -- Add patch to fix compiling with newer versions of libgpod-sharp -- Bump required version of libgpod-sharp-devel to 0.8.2 -- Disable clutter due to a compile issue - according to upstream - the clutter support is currently not functional: - https://bugzilla.gnome.org/show_bug.cgi?id=620073 - -* Wed Sep 28 2011 Ray - 2.2.0-1 -- Update to 2.2.0 - -* Sun May 22 2011 Christian Krause - 2.0.1-2 -- Require gvfs-afc for iPhone support (BZ 704313) - -* Thu May 05 2011 Christian Krause - 2.0.1-1 -- Update to stable release 2.0.1 - -* Wed Apr 06 2011 Christian Krause - 2.0.0-2 -- Rebuilt against gio-sharp-0.3 - -* Tue Apr 05 2011 Christian Krause - 2.0.0-1 -- Update to stable release 2.0.0 - -* Tue Mar 29 2011 Christian Krause - 1.9.6-1 -- Update to development release 1.9.6 - -* Thu Mar 10 2011 Christian Krause - 1.9.5-1 -- Update to development release 1.9.5 - -* Sat Feb 26 2011 Christian Krause - 1.9.4-1 -- Update to development release 1.9.4 - -* Mon Feb 07 2011 Fedora Release Engineering - 1.9.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Sat Feb 05 2011 Christian Krause - 1.9.3-1 -- Update to development release 1.9.3 - -* Sat Jan 15 2011 Christian Krause - 1.9.2-1 -- Update to development release 1.9.2 - -* Wed Jan 12 2011 Dan Horák - 1.9.1-2 -- updated the supported arch list - -* Sat Jan 08 2011 Christian Krause - 1.9.1-1 -- Update to development release 1.9.1 -- Drop upstreamed patches -- Some spec file cleanup - -* Fri Dec 31 2010 Christian Krause - 1.8.0-12 -- Add MeeGo sub-package (BZ 660334) -- Make all of mono *.config files non-executable - -* Fri Oct 29 2010 Christian Krause - 1.8.0-11 -- Rebuilt against Mono 2.8 -- Disable Boo support - -* Mon Oct 25 2010 Nathaniel McCallum - 1.8.0-10 -- Add a patch to fix CVE-2010-3998 - -* Tue Oct 19 2010 Dan Horák - 1.8.0-9 -- Update the Requires to match BR on s390(x) - -* Tue Oct 19 2010 Nathaniel McCallum - 1.8.0-8 -- Added gnome-doc-utils BR - -* Mon Oct 18 2010 Dan Horák - 1.8.0-7 -- Fix BRs and configure options on s390(x) -- Be verbose during build - -* Mon Oct 11 2010 Nathaniel McCallum - 1.8.0-6 -- Fix download URL - -* Fri Oct 08 2010 Nathaniel McCallum - 1.8.0-5 -- Add upstream patch to fix sync screen - -* Tue Oct 05 2010 Nathaniel McCallum - 1.8.0-4 -- Added manual requires for libgpod-sharp, gio-sharp, gtk-sharp-beans -- Remove podsleuth dependency - -* Tue Oct 05 2010 Nathaniel McCallum - 1.8.0-3 -- Removed hal and ipod-sharp BR -- Removed libmtp-hal Requires -- Added gio-sharp, gtk-sharp-beans, gudev-sharp and gkeyfile-sharp BR -- Enabled apple device building on s390 s390x (hopefully this works) -- Added --disable-hal and --disable-ipod to configure - -* Fri Oct 01 2010 Nathaniel McCallum - 1.8.0-2 -- Add versioned BR for libgpod - -* Fri Oct 01 2010 Nathaniel McCallum - 1.8.0-1 -- Update to 1.8.0 - -* Fri Oct 01 2010 Nathaniel McCallum - 1.7.6-1 -- Update to 1.7.6 -- Remove upstreamed build fix patch -- Remove upstreamed mimedb patch -- Update desktop-database patch to apply against 1.7.6 -- Fix gtkwebkit dependency to enable web music stores -- Add libgpod-sharp to build requires - -* Fri Oct 01 2010 Dan Horák - 1.7.4-3 -- Fix BRs and configure options on s390(x) and ppc(64) - -* Wed Sep 08 2010 Christian Krause - 1.7.4-2 -- Add patch to properly comment out some make rules (BZ 631387) - -* Tue Aug 17 2010 Christian Krause - 1.7.4-1 -- Update to development release 1.7.4 (BZ 623624) -- Remove upstreamed patches -- Add patches to avoid calling update-mime-database or - update-desktop-database during "make install" -- Cleanup scriptlets -- Add update-mime-database to %%post / %%postun - -* Sat Jun 26 2010 Christian Krause - 1.6.1-5 -- Fix status icon transparency (BZ 533308) - -* Fri Jun 18 2010 Christian Krause - 1.6.1-4 -- avoid "DllNotFoundException: libbnpx11" when switching to - fullscreen mode - -* Thu Jun 17 2010 Bastien Nocera - 1.6.1-3 -- Require libmtp-hal package to get device information, to be - removed when banshee uses udev - -* Tue Jun 01 2010 Christian Krause - 1.6.1-2 -- Add explicit Requires gstreamer-plugins-good (BZ 588063) to avoid - that gstreamer stucks when loading files -- Rebuilt against new mono-addins - -* Mon May 17 2010 Christian Krause - 1.6.1-1 -- Update to 1.6.1 release - -* Wed Mar 31 2010 Christian Krause - 1.6.0-1 -- Update to 1.6.0 release - -* Thu Mar 25 2010 Christian Krause - 1.5.6-1 -- Update to 1.5.6 release - -* Fri Mar 12 2010 Christian Krause - 1.5.5-1 -- Update to 1.5.5 release - -* Sun Feb 28 2010 Christian Krause - 1.5.4-1 -- Update to 1.5.4 release -- Remove upstreamed patch (Spanish translation update) - -* Thu Feb 18 2010 Karsten Hopp -2.1 -- disable ipod support on s390(x), enable boo support - -* Thu Feb 04 2010 Christian Krause - 1.5.3-2 -- Update Spanish translation - -* Wed Feb 03 2010 Christian Krause - 1.5.3-1 -- Update to final 1.5.3 release -- Remove upstreamed patch (last.fm integration) - -* Wed Dec 16 2009 Christian Krause - 1.5.3-0.1.20091216git -- Update to latest snapshot to pick up DeviceKit-disks integration - to fix iPod support (BZ 495240) -- Add a minor patch to fix the last.fm integration - -* Mon Nov 23 2009 Michel Salim - 1.5.2-1 -- Update to final 1.5.2 release - -* Wed Nov 18 2009 Christian Krause - 1.5.2-0.1.20091118git -- Update to latest snapshot -- Remove all *.la and *.a files during %%install - -* Mon Oct 26 2009 Dennis Gilmore - 1.5.1-3 -- ExcludeArch sparc64 - -* Thu Oct 22 2009 Michel Salim - 1.5.1%{?patchver}-2 -- Rebuild against new mono-zeroconf (bz #526132) - -* Mon Oct 19 2009 Michel Salim - 1.5.1-1 -- Update to final 1.5.1 release - -* Thu Sep 17 2009 Michel Salim - 1.5.1-0.3.git20090917%{?dist} -- Update to latest snapshot -- Drop clutter10 patch (fixed upstream) - -* Mon Aug 31 2009 Michel Salim - 1.5.1-0.2.git20090831%{?dist} -- Build with clutter support - -* Mon Aug 31 2009 Michel Salim - 1.5.1-0.1.git20090831%{?dist} -- Update to latest snapshot - -* Thu Aug 27 2009 Michel Salim - 1.5.0-3 -- Rebuild for boo update -- Remove unused dependency on nautilus-cd-burner - -* Fri Jul 24 2009 Fedora Release Engineering - 1.5.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Fri Jun 12 2009 Michel Salim - 1.5.0-1 -- Update to 1.5.0 - -* Thu Apr 02 2009 David Nielsen - 1.4.3-3 -- add patch to fix rh#492707 - Banshee use 100% when fetching cover art - -* Sat Mar 07 2009 David Nielsen - 1.4.3-2 -- add patch for gnomebz #536047 - -* Thu Mar 05 2009 David Nielsen - 1.4.3-1 -- Update to 1.4.3 -- Remove upstreamed patch - -* Wed Feb 25 2009 David Nielsen - 1.4.2-6 -- Rebuilt for updated taglib-sharp - -* Tue Feb 24 2009 David Nielsen - 1.4.2-5 -- Clean out obsolete configuration arguments -- Remove unneeded build dependency -- Enable compiletime vendor identification at the request of upstream (#486285) -- Enable threaded build as per the Fedora standards - -* Mon Feb 23 2009 Fedora Release Engineering - 1.4.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Wed Feb 11 2009 Michel Salim - 1.4.2-3 -- Enable video mode support -- Enable unit tests if nunit-2.4 is available -- MusicBrainz subpackage no longer depends on main package - -* Tue Feb 10 2009 Michel Salim - 1.4.2-2 -- Patch to correct timezone handling for podcasts (bz #484766) - -* Fri Jan 23 2009 Michel Salim - 1.4.2-1 -- Update to 1.4.2 -- Require mono-addins -- Enable menu entry on other desktops - -* Thu Jan 1 2009 Michel Salim - 1.4.1-4 -- Manually require libmtp - -* Thu Jan 1 2009 Michel Salim - 1.4.1-3 -- Split MusicBrainz libraries into separate subpackages -- Properly tag songs ripped from CDs (bug #477669) - -* Thu Dec 25 2008 Tom "spot" Callaway - 1.4.1-2 -- rebuild to fix broken deps - -* Thu Nov 27 2008 Michel Salim - 1.4.1-1 -- Update to 1.4.1 - -* Mon Nov 10 2008 Tom "spot" Callaway - 1.4.0.1-1 -- update to 1.4.0.1 - -* Tue Oct 28 2008 Tom "spot" Callaway - 1.2.1-3 -- bump for new gnome-sharp - -* Mon Aug 25 2008 Michel Salim - 1.2.1-2 -- Updated requirement: use podsleuth rather than libipoddevice - -* Sun Aug 24 2008 Michel Salim - 1.2.1-1 -- Update to 1.2.1 - -* Thu Jul 31 2008 Nigel Jones - 1.2.0-2.1 -- ifarching foo broke... now fixed - -* Wed Jul 30 2008 Nigel Jones - 1.2.0-2 -- Reenable boo, I can't see why not now... - -* Wed Jul 30 2008 Nigel Jones - 1.2.0-1 -- Update to 1.2.0 (new upstream release) -- Refer to: http://banshee-project.org/download/archives/1.2.0/ for more details - -* Fri Jul 4 2008 Nigel Jones - 1.0.0-2 -- Bump for new gnome-sharp - -* Fri Jun 6 2008 Nigel Jones - 1.0.0-1 -- Banshee goes GOLD! - -* Wed Jun 4 2008 Nigel Jones - 0.99.3-2 -- Disable boo (again) - Broken dependencies and 'issues' - -* Fri May 30 2008 Nigel Jones - 0.99.3-1 -- New Upstream Release (0.99.3) - RC 1 - -* Tue May 27 2008 Nigel Jones - 0.99.2-3 -- Rebuild for new gtk-sharp2 - -* Sat May 24 2008 Nigel Jones - 0.99.2-2 -- Rebuild & correct BR - -* Fri May 23 2008 Nigel Jones - 0.99.2-1 -- New Upstream Release (0.99.2) - Beta 2 -- Enable podcast & boo - -* Mon May 5 2008 Nigel Jones - 0.99.1-1.1 -- Fix brainfart... Comment out the cp for Source1 which I moved out of the way - -* Mon May 5 2008 Nigel Jones - 0.99.1-1 -- New Upstream Release (0.99.1) - Beta 1 (Closes: Bug# 445449) -- boo doesn't work quite yet for us, this will most likely be enabled in a -2 - build (README.Fedora hence removed from sources) -- Spec file improvements per guidelines -- Put .pc files in their proper place - -* Sat Apr 12 2008 Tom "spot" Callaway - 0.98.3-2 -- adding BR: mono-addins-devel - -* Sat Apr 12 2008 Tom "spot" Callaway - 0.98.3-1 -- update to 0.98.3 (which doesn't have any prebuilt binaries in it) - -* Thu Feb 21 2008 David Nielsen - 0.13.3-4 -- revert to using bundled boo as external has no ppc support currently - -* Thu Feb 21 2008 David Nielsen - 0.13.2-3 -- Use external boo and ndesk-dbus -- Nicer workaround to gstreamer-plugin detection problem - -* Fri Jan 18 2008 Matthias Clasen - 0.13.2-2 -- Add content-type support - -* Mon Jan 14 2008 Christopher Aillon - 0.13.2-1 -- Update to 0.13.2 - -* Fri Aug 31 2007 Christopher Aillon - 0.13.1-1 -- Update to 0.13.1 - -* Tue Aug 7 2007 Christopher Aillon - 0.13.0-1 -- Update to 0.13.0 - -* Sun May 6 2007 Matthias Clasen - 0.12.1-3 -- Own /usr/share/banshee (#233823) - -* Tue Apr 17 2007 Christopher Aillon - 0.12.1-2 -- Fix typo in schemas - -* Thu Apr 5 2007 Christopher Aillon - 0.12.1-1 -- Update to 0.12.1 - -* Fri Mar 30 2007 Christopher Aillon - 0.12.0-5 -- Fix up schema installs - -* Fri Mar 23 2007 Christopher Aillon - 0.12.0-4 -- Some more updates to the file list - -* Tue Mar 20 2007 Christopher Aillon - 0.12.0-3 -- Remove %%{_datadir}/icons/hicolor/* from %%files - -* Wed Mar 7 2007 Christopher Aillon - 0.12.0-2 -- Add gstreamer-plugins-good as a build dep for gconfaudiosink - -* Wed Mar 7 2007 Christopher Aillon - 0.12.0-1 -- Update to 0.12.0 - -* Fri Feb 2 2007 Christopher Aillon - 0.11.5-1 -- Update to 0.11.5 - -* Fri Sep 1 2006 Christopher Aillon - 0.10.12-4 -- Register banshee-notificationareaicon.schemas in %%post (bug 185605) -- Add dllmap for libdbus-glib so banshee works without dbus-glib-devel - (bug 202990) - -* Mon Aug 28 2006 Christopher Aillon - 0.10.12-3 -- Rebuild - -* Sat Aug 26 2006 Christopher Aillon - 0.10.12-2 -- For some reason, the last build picked up dependencies on both - mono(glib-sharp) = 2.8.0.0 and mono(glib-sharp) = 2.10.0.0 - Not sure why, but hopefully this rebuild fixes it.... - -* Wed Aug 23 2006 Christopher Aillon - 0.10.12-1 -- Update to 0.10.12 -- Build against newer mono stack - -* Mon Aug 7 2006 Nalin Dahyabhai - 0.10.11-1 -- Update to 0.10.11 -- Buildrequire: dbus-sharp-devel, because configure looks for it -- Buildrequire: gettext-devel, because configure looks for its copy of msgfmt - -* Fri Jun 16 2006 Jeremy Katz - 0.10.10-2 -- rebuild against new nautilus-cd-burner -- hack to get it to build - -* Tue May 2 2006 Christopher Aillon 0.10.10-1 -- Update to 0.10.10 - -* Tue Mar 21 2006 Christopher Aillon 0.10.9-1 -- Update to 0.10.9 - -* Tue Mar 14 2006 Christopher Aillon 0.10.8-1 -- Update to 0.10.8 - -* Thu Mar 9 2006 Christopher Aillon 0.10.7-2 -- Add explicit Requires on libipoddevice (#184482) - -* Tue Mar 7 2006 Christopher Aillon 0.10.7-1 -- Update to 0.10.7 -- Fix build on x86-64 - -* Mon Mar 6 2006 Christopher Aillon 0.10.6-3 -- Don't build with smp_mflags, as parallel make causes the build to fail - -* Sat Mar 4 2006 Christopher Aillon 0.10.6-2 -- Rebuild - -* Tue Feb 21 2006 Christopher Aillon 0.10.6-1 -- Initial RPM diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..9f3c4c3 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +banshee has not had an upstream for 7 years now, the code is terrible and bitrotten and it no longer even works at all on modern Fedora. please do not revive unless you are prepared to rewrite very large chunks of C# code. diff --git a/sources b/sources deleted file mode 100644 index 669447a..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -12dbb8a996783f7081d538062a8589b7 banshee-2.6.2.tar.xz