summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2013-09-13 20:42:56 +0000
committerNirbheek Chauhan <nirbheek@gentoo.org>2013-09-13 20:42:56 +0000
commitd3ad3375bfa7fc954af0ae927920292c07e0698e (patch)
tree5c1be91f8da8dd89b06d90143b72d4e8cc34effe /media-sound/rhythmbox
parentmoving quantumclient to neutronclient (diff)
downloadgentoo-2-d3ad3375bfa7fc954af0ae927920292c07e0698e.tar.gz
gentoo-2-d3ad3375bfa7fc954af0ae927920292c07e0698e.tar.bz2
gentoo-2-d3ad3375bfa7fc954af0ae927920292c07e0698e.zip
Fix a hang (reported by pva), fix deps, and port a plugin to Python 3
(Portage version: 2.2.0_alpha186/cvs/Linux x86_64, signed Manifest commit with key 560FDD64)
Diffstat (limited to 'media-sound/rhythmbox')
-rw-r--r--media-sound/rhythmbox/ChangeLog10
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-3.0-gdbus-return-value.patch50
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-3.0-rbzeitgeist-python3.patch85
-rw-r--r--media-sound/rhythmbox/rhythmbox-3.0-r1.ebuild (renamed from media-sound/rhythmbox/rhythmbox-3.0.ebuild)12
4 files changed, 155 insertions, 2 deletions
diff --git a/media-sound/rhythmbox/ChangeLog b/media-sound/rhythmbox/ChangeLog
index 43e6c32a5c27..7d061d192bed 100644
--- a/media-sound/rhythmbox/ChangeLog
+++ b/media-sound/rhythmbox/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-sound/rhythmbox
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.244 2013/09/13 09:16:13 nirbheek Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.245 2013/09/13 20:42:56 nirbheek Exp $
+
+*rhythmbox-3.0-r1 (13 Sep 2013)
+
+ 13 Sep 2013; Nirbheek Chauhan <nirbheek@gentoo.org>
+ +files/rhythmbox-3.0-gdbus-return-value.patch,
+ +files/rhythmbox-3.0-rbzeitgeist-python3.patch, +rhythmbox-3.0-r1.ebuild,
+ -rhythmbox-3.0.ebuild:
+ Fix a hang (reported by pva), fix deps, and port a plugin to Python 3
*rhythmbox-3.0 (13 Sep 2013)
diff --git a/media-sound/rhythmbox/files/rhythmbox-3.0-gdbus-return-value.patch b/media-sound/rhythmbox/files/rhythmbox-3.0-gdbus-return-value.patch
new file mode 100644
index 000000000000..3b8723b9d15f
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-3.0-gdbus-return-value.patch
@@ -0,0 +1,50 @@
+From 76540fdaa7baf56b01d8d269cbe482b1dbc58f09 Mon Sep 17 00:00:00 2001
+From: Jonathan Matthew <jonathan@d14n.org>
+Date: Fri, 13 Sep 2013 12:19:13 +0000
+Subject: metadata: GDBusServer new-connection signal needs a return value
+
+Turns out this is kind of important and has been working mostly by
+luck until now. When compiled with gcc's -fstack-protector-strong,
+we ended up returning 0, which in this case means that the connection
+isn't interesting, so it stops processing messages on it.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=706470
+---
+diff --git a/metadata/rb-metadata-dbus-service.c b/metadata/rb-metadata-dbus-service.c
+index cb29d33..8280b2c 100644
+--- a/metadata/rb-metadata-dbus-service.c
++++ b/metadata/rb-metadata-dbus-service.c
+@@ -220,7 +220,7 @@ connection_closed_cb (GDBusConnection *connection,
+ svc->connection = NULL;
+ }
+
+-static void
++static gboolean
+ new_connection_cb (GDBusServer *server,
+ GDBusConnection *connection,
+ ServiceData *svc)
+@@ -231,7 +231,7 @@ new_connection_cb (GDBusServer *server,
+ /* don't allow more than one connection at a time */
+ if (svc->connection) {
+ rb_debug ("metadata service already has a client. go away.");
+- return;
++ return FALSE;
+ }
+ g_dbus_connection_register_object (connection,
+ RB_METADATA_DBUS_OBJECT_PATH,
+@@ -243,11 +243,13 @@ new_connection_cb (GDBusServer *server,
+ if (error != NULL) {
+ rb_debug ("unable to register metadata object: %s", error->message);
+ g_clear_error (&error);
++ return FALSE;
+ } else {
+ svc->connection = g_object_ref (connection);
+ g_signal_connect (connection, "closed", G_CALLBACK (connection_closed_cb), svc);
+
+ g_dbus_connection_set_exit_on_close (connection, (svc->external == FALSE));
++ return TRUE;
+ }
+ }
+
+--
+cgit v0.9.2
diff --git a/media-sound/rhythmbox/files/rhythmbox-3.0-rbzeitgeist-python3.patch b/media-sound/rhythmbox/files/rhythmbox-3.0-rbzeitgeist-python3.patch
new file mode 100644
index 000000000000..4dd07d832ebe
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-3.0-rbzeitgeist-python3.patch
@@ -0,0 +1,85 @@
+From 693b013c02d54522e54ad15e980b5f46539888ec Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <nirbheek.chauhan@collabora.co.uk>
+Date: Sat, 14 Sep 2013 01:47:52 +0530
+Subject: [PATCH] plugins/rbzeitgeist: Port to Python3
+
+---
+ plugins/rbzeitgeist/rbzeitgeist.py | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/plugins/rbzeitgeist/rbzeitgeist.py b/plugins/rbzeitgeist/rbzeitgeist.py
+index 984fd5b..a3a2630 100644
+--- a/plugins/rbzeitgeist/rbzeitgeist.py
++++ b/plugins/rbzeitgeist/rbzeitgeist.py
+@@ -37,8 +37,8 @@ from zeitgeist.datamodel import Event, Subject, Interpretation, Manifestation
+
+ try:
+ IFACE = ZeitgeistClient()
+-except RuntimeError, e:
+- print "Unable to connect to Zeitgeist, won't send events. Reason: '%s'" %e
++except RuntimeError as e:
++ print("Unable to connect to Zeitgeist, won't send events. Reason: '{0}'".format(e))
+ IFACE = None
+
+ class ZeitgeistPlugin(GObject.Object, Peas.Activatable):
+@@ -46,12 +46,12 @@ class ZeitgeistPlugin(GObject.Object, Peas.Activatable):
+ object = GObject.property(type=GObject.Object)
+
+ def __init__(self):
+- GObject.Object.__init__(self)
++ GObject.Object.__init__(self)
+
+ def do_activate(self):
+- print "Loading Zeitgeist plugin..."
++ print("Loading Zeitgeist plugin...")
+ if IFACE is not None:
+- shell = self.object
++ shell = self.object
+ shell_player = shell.props.shell_player
+ self.__psc_id = shell_player.connect("playing-song-changed", self.playing_song_changed)
+
+@@ -109,7 +109,7 @@ class ZeitgeistPlugin(GObject.Object, Peas.Activatable):
+ idle, it means there are no more signals scheduled, so we
+ will have already received the eos if it was coming.
+ """
+- shell = self.object
++ shell = self.object
+ db = shell.props.db
+ GLib.idle_add(self.send_to_zeitgeist, db, entry, event_type)
+
+@@ -131,16 +131,16 @@ class ZeitgeistPlugin(GObject.Object, Peas.Activatable):
+
+ subject = Subject.new_for_values(
+ uri=song["location"],
+- interpretation=unicode(Interpretation.AUDIO),
+- manifestation=unicode(Manifestation.FILE_DATA_OBJECT),
++ interpretation=str(Interpretation.AUDIO),
++ manifestation=str(Manifestation.FILE_DATA_OBJECT),
+ origin=song["location"].rpartition("/")[0],
+ mimetype=uri_mimetype,
+ text=" - ".join([song["title"], song["artist"], song["album"]])
+ )
+ event = Event.new_for_values(
+ timestamp=int(time.time()*1000),
+- interpretation=unicode(event_type),
+- manifestation=unicode(manifest),
++ interpretation=str(event_type),
++ manifestation=str(manifest),
+ actor="application://rhythmbox.desktop",
+ subjects=[subject,]
+ )
+@@ -150,9 +150,9 @@ class ZeitgeistPlugin(GObject.Object, Peas.Activatable):
+ f.query_info_async(Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, Gio.FileQueryInfoFlags.NONE, GLib.PRIORITY_DEFAULT, None, file_info_complete, None)
+
+ def do_deactivate(self):
+- print "Deactivating Zeitgeist plugin..."
++ print("Deactivating Zeitgeist plugin...")
+ if IFACE is not None:
+- shell = self.object
++ shell = self.object
+ shell_player = shell.props.shell_player
+ shell_player.disconnect(self.__psc_id)
+ self.__psc_id = None
+--
+1.8.1.5
+
diff --git a/media-sound/rhythmbox/rhythmbox-3.0.ebuild b/media-sound/rhythmbox/rhythmbox-3.0-r1.ebuild
index 7aa798383f45..39e57d7517c1 100644
--- a/media-sound/rhythmbox/rhythmbox-3.0.ebuild
+++ b/media-sound/rhythmbox/rhythmbox-3.0-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-3.0.ebuild,v 1.1 2013/09/13 09:16:13 nirbheek Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-3.0-r1.ebuild,v 1.1 2013/09/13 20:42:56 nirbheek Exp $
EAPI="4"
GNOME2_LA_PUNT="yes"
@@ -31,6 +31,8 @@ REQUIRED_USE="
# FIXME: double check what to do with fm-radio plugin
# webkit-gtk-1.10 is needed because it uses gstreamer-1.0
+#
+# To add support for libdmapsharing-2.9.19, use commit 92d75eaa from git
COMMON_DEPEND=">=dev-libs/glib-2.34.0:2
dev-libs/json-glib
>=dev-libs/libxml2-2.7.8:2
@@ -54,6 +56,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.34.0:2
cdr? ( >=app-cdr/brasero-2.91.90 )
daap? (
>=net-libs/libdmapsharing-2.9.16:3.0
+ <net-libs/libdmapsharing-2.9.19:3.0
media-plugins/gst-plugins-soup:1.0 )
libsecret? ( >=app-crypt/libsecret-0.14 )
html? ( >=net-libs/webkit-gtk-1.10:3 )
@@ -137,6 +140,13 @@ pkg_setup() {
}
src_prepare() {
+ # https://bugzilla.gnome.org/show_bug.cgi?id=706470
+ # In git, remove for bump
+ epatch "${FILESDIR}/${P}-gdbus-return-value.patch"
+
+ # https://bugzilla.gnome.org/show_bug.cgi?id=708044
+ epatch "${FILESDIR}/${P}-rbzeitgeist-python3.patch"
+
gnome2_src_prepare
echo > py-compile
}