summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2012-01-16 03:47:24 +0000
committerNirbheek Chauhan <nirbheek@gentoo.org>2012-01-16 03:47:24 +0000
commitc6e8bb5a76205c8bdffa40ead2dc36678fe69e10 (patch)
tree2767a8b47f62ba5acc57f702ebcab3683c3f9fb1 /media-sound/rhythmbox
parentStable for HPPA (bug #397693). (diff)
downloadhistorical-c6e8bb5a76205c8bdffa40ead2dc36678fe69e10.tar.gz
historical-c6e8bb5a76205c8bdffa40ead2dc36678fe69e10.tar.bz2
historical-c6e8bb5a76205c8bdffa40ead2dc36678fe69e10.zip
Bump to 2.95 + patches, remove old, drop ~ppc64 due to unsatisfied deps
Package-Manager: portage-2.2.0_alpha84/cvs/Linux x86_64
Diffstat (limited to 'media-sound/rhythmbox')
-rw-r--r--media-sound/rhythmbox/ChangeLog11
-rw-r--r--media-sound/rhythmbox/Manifest29
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-2.95-fix-db-dbus-interface.patch58
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-2.95-port-im-status-plugin.patch247
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-2.95-port-rb-set-rating-py-example.patch42
-rw-r--r--media-sound/rhythmbox/rhythmbox-2.95.ebuild (renamed from media-sound/rhythmbox/rhythmbox-2.90.1_pre20111001.ebuild)77
6 files changed, 399 insertions, 65 deletions
diff --git a/media-sound/rhythmbox/ChangeLog b/media-sound/rhythmbox/ChangeLog
index f9b62c916641..e56b05a9ef33 100644
--- a/media-sound/rhythmbox/ChangeLog
+++ b/media-sound/rhythmbox/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for media-sound/rhythmbox
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.209 2012/01/05 06:38:12 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.210 2012/01/16 03:47:24 nirbheek Exp $
+
+*rhythmbox-2.95 (16 Jan 2012)
+
+ 16 Jan 2012; Nirbheek Chauhan <nirbheek@gentoo.org>
+ +files/rhythmbox-2.95-fix-db-dbus-interface.patch,
+ +files/rhythmbox-2.95-port-im-status-plugin.patch,
+ +files/rhythmbox-2.95-port-rb-set-rating-py-example.patch,
+ +rhythmbox-2.95.ebuild, -rhythmbox-2.90.1_pre20111001.ebuild:
+ Bump to 2.95 + patches, remove old, drop ~ppc64 due to unsatisfied deps
05 Jan 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
rhythmbox-0.12.8-r1.ebuild, rhythmbox-0.13.3.ebuild,
diff --git a/media-sound/rhythmbox/Manifest b/media-sound/rhythmbox/Manifest
index 549cd5d0b6d9..9466f1a49cd6 100644
--- a/media-sound/rhythmbox/Manifest
+++ b/media-sound/rhythmbox/Manifest
@@ -1,21 +1,34 @@
-----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
+Hash: SHA1
AUX rhythmbox-0.12-python-initialization.patch 5167 RMD160 cacae6274841d595a0d55ed92c42815793081176 SHA1 0b306455b027f8f9c73e185acdbbb1d041ce882d SHA256 54f3f492d4c3204b93a1fed3886ca76aa42d36737e66c6424426fc0116b25d3e
AUX rhythmbox-0.12.8-libnotify-0.7.patch 1156 RMD160 78ce782ffc424eefbe9fc59cb94e245714377c61 SHA1 cef431a34f3e82d3475229b3111ca234af8aee7d SHA256 39b66a3b8e439f0e0dbde63a1d7f5472c262f344db1334b24591e18be22fb46d
AUX rhythmbox-0.12.8-namespace-conflict.patch 2155 RMD160 2ed6fe3966c860845d0d12ca3e8023c78d7e1bdb SHA1 6e67ba7802d6dc1ff4131942d9aa1af91dec2586 SHA256 538b36af3824aa45b215b247d586c872ff1ee6cb174b8764e22a11410fd3a204
+AUX rhythmbox-2.95-fix-db-dbus-interface.patch 2044 RMD160 c4a594283fa2318efa762131dcb5ddfd5b01810d SHA1 620a876d45b567f8f3b9595f246aa6f1de7539bb SHA256 453a22767e3d8512bc99e9a1c0a5f93718a724c4fd04d2259ffe27f50bcf1a5e
+AUX rhythmbox-2.95-port-im-status-plugin.patch 9115 RMD160 44f2a3b175ca5628ab2ada1c472e019c26b2f8db SHA1 b54ce23ae53593d66bca38af6288c5f7bd65ebf8 SHA256 a2c291af6e6a0941f7868de6a5bc4bc9e2b529718a5cb7cfb70e711d5278c98a
+AUX rhythmbox-2.95-port-rb-set-rating-py-example.patch 1462 RMD160 34c384869d478efca80c9e8c8b6ff3be704c3e48 SHA1 9a630bd8bf047a14d61f08f9884ee6fa01a7a2c4 SHA256 044727d28e8552e019be9fa9fa11462a833dd2cd4485e7319cc4afbd9dbe902f
DIST rhythmbox-0.12.8.tar.bz2 5358950 RMD160 072d4fa06408ebc181b40147db1575d0ef4c99fe SHA1 5d27923cc29b81d7bfbc73d867d7976a5295f964 SHA256 1752fab135808aa78a9afde78448e992020c58c07701f43c989fbabfc6352213
DIST rhythmbox-0.13.3.tar.bz2 9978135 RMD160 f6f155768ce9c87d844ee47f7f1cc4f167d05052 SHA1 1c6e83972dcd7de8fc1a71586843e29092a0c706 SHA256 ad6532864bb4df30f1014ec81ddc0d2d3f69241235627f46abe5578cf629052a
-DIST rhythmbox-2.90.1_pre20111001.tar.xz 5630728 RMD160 a0feae3fd5b449e17783a3143d7b05162909bbd9 SHA1 d5aa06613a919f01ba348bd91b0b8783a57802da SHA256 092379718e17e81d0f9a35802489f091d7bb4b675da592dc4e90b11a41c7413f
+DIST rhythmbox-2.95.tar.xz 5942124 RMD160 aeaba12c053ec10dd2247704df4badc2a67d9fc5 SHA1 2730e58c970ed9dae8806243ce6a1a1b3651750b SHA256 12cab95c89514b5c01a2daf9d6bdf74c8652b35e49625e2906d51b487bc68c06
EBUILD rhythmbox-0.12.8-r1.ebuild 5045 RMD160 5afd5034a2d17f67059ad389272bea8fa90bd48f SHA1 5283c2df6122b664a86bce9775f860f3797b9041 SHA256 808ee057d3edd83a9e49679eb390e2c8bd8160a199078d777319d3a3577719c2
EBUILD rhythmbox-0.13.3.ebuild 4949 RMD160 91e6cec296b225d01aad68df5771be56c2523968 SHA1 e4257f20c5ab91bf4873fe296c41effe564394c9 SHA256 a462cd5198c0edf79fc9146f112ff38d256dc5e8a1b1db700182db4343786fed
-EBUILD rhythmbox-2.90.1_pre20111001.ebuild 5892 RMD160 c6cb271724e94199f341fc4c0bddda052859b1df SHA1 301ea10fa767efa86d926efa367065d508bb7cc4 SHA256 31cb48179d3da1e213c7e499a18467f5738c5102061490c422030f87bec7dead
-MISC ChangeLog 32357 RMD160 428ba8c3fa06380790c8fd9bdbaf15890de6ab7a SHA1 cead65b66ae48dc0ccffcb977cdc4d2c7b72bba8 SHA256 7da1e7ad3a8aae5383af1c82c3237d6960088f417fa963ae6c2df2128558a572
+EBUILD rhythmbox-2.95.ebuild 4939 RMD160 f0846db4b497ab63835c097fbd51dbd0c578e36c SHA1 e82e1333864a21fb6c8bc2340ba5d50889f1e5b8 SHA256 2b650442070fdc03f4c9e828bc405e84008f0983af04e87c9154fea51158a9f2
+MISC ChangeLog 32747 RMD160 88dbf95a674f60ab06b005053a4223fc89d28a5c SHA1 83c561622cca7374fdf3ad4a9157307a76567d98 SHA256 1511b656b1d2edd2c2fb4c390f23f7669b66aa04332068ae987d20dab7c824d5
MISC metadata.xml 1223 RMD160 f0e09761fed896f0fcd8d8fc1aea9301e223e3f6 SHA1 616307df851f306c7bcf25dd4c27447715d67a91 SHA256 1619b8bc7ab2a9473b2b27ce7317137325dbfac8dd7322517084b9e038988e53
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.18 (GNU/Linux)
+Version: GnuPG v2.0.17 (GNU/Linux)
-iF4EAREIAAYFAk8FRVoACgkQdjK8w9WeBnDOQAD/Qd2ivmGMj/ElNQ54bVaYMTKt
-2+M7pFIhZHu16wT+EhUA+wYhQZhp+bXf4uTScBa76NvBAuT3vfneCVR93hEV8Gev
-=8VvW
+iQIcBAEBAgAGBQJPE53RAAoJEO/kOhxWD91kwMYP/2GZ3r4/cgSUMP2MRQS4YQjH
+rJjfuJH5RNYzaxuJxoOk3qu5CvqiQ/dUjWDIHRZxJ6jMZeybOXEVlNmU8UYoWTn1
+kN/Yirf+KhsPG151YWHDoaDga4lnLVZY1tjjAfVK/TSFs3d6GDxnsWdmM9uR3WwL
+v++PfNr140p1sVT8Zy6VJPpbnzh6xQG2unMKEvWcaUJg09vv4pl3Ri4V7GREiC4L
+wfS1puYrt4YTPz0nf4jA56N0trYT5NIrO/zLojwANpSSXGILJX2G1BMWxfZTXi8B
+2YLed41nAfswXQfbHdiMFJ17N1maOincvfm4j0QIaplCnCB/nOSit1YSbJck7uxr
+hkS1dYaIburErU98Rc7OJ+xbqT9ThLMB9qkjk43eXh7SUGHjrFp4sDuZ5+Lpjz8A
+guaRZu6RkdUJSxEDzTNF2JQ1U0vQM6BHhogt41hPGL/jnfdD2rln7ejV4QJXpIID
+QKiLCS6q2qA5FmiR9mFkG2GSaJsAeyTH4Dg/ZPkThbGS70oyI8mj2NkD7g0HYa7J
+4WXjMm1rsDGNjxI+CavmPiOEWI2OF9X9opwYPyqLMxSFsDEonMgsSQfoIYlq41vA
+/haTaYOqvR5qPEQtkMyltkNAvL0kV6LdJh0Usq6klR/yYBgmVrPRq38owXwKJzy/
+ltiD/R6UCqass0eUKqKm
+=zXJr
-----END PGP SIGNATURE-----
diff --git a/media-sound/rhythmbox/files/rhythmbox-2.95-fix-db-dbus-interface.patch b/media-sound/rhythmbox/files/rhythmbox-2.95-fix-db-dbus-interface.patch
new file mode 100644
index 000000000000..fc73aba43757
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-2.95-fix-db-dbus-interface.patch
@@ -0,0 +1,58 @@
+Patch by moch, will enter upstream trunk soon
+
+diff --git a/rhythmdb/rhythmdb-dbus.c b/rhythmdb/rhythmdb-dbus.c
+index bf982ce..d31486e 100644
+--- a/rhythmdb/rhythmdb-dbus.c
++++ b/rhythmdb/rhythmdb-dbus.c
+@@ -111,19 +111,28 @@ rhythmdb_method_call (GDBusConnection *connection,
+ GVariant *v;
+
+ value = value_ptr;
++ v = NULL;
+ if (G_VALUE_HOLDS_STRING (value)) {
+- v = g_variant_new_string (g_value_get_string (value));
++ if (g_value_get_string (value) != NULL) {
++ v = g_variant_new_string (g_value_get_string (value));
++ }
+ } else if (G_VALUE_HOLDS_ULONG (value)) {
+ v = g_variant_new_uint32 (g_value_get_ulong (value));
+ } else if (G_VALUE_HOLDS_DOUBLE (value)) {
+ v = g_variant_new_double (g_value_get_double (value));
++ } else if (G_VALUE_HOLDS_BOOLEAN (value)) {
++ v = g_variant_new_boolean (g_value_get_boolean (value));
++ } else if (G_VALUE_HOLDS_UINT64 (value)) {
++ v = g_variant_new_uint64 (g_value_get_uint64 (value));
+ } else {
+ g_assert_not_reached ();
+ }
+- g_variant_builder_add (builder,
+- "{sv}",
+- (const char *)name_ptr,
+- v);
++ if (v != NULL) {
++ g_variant_builder_add (builder,
++ "{sv}",
++ (const char *)name_ptr,
++ v);
++ }
+ count++;
+ }
+ g_hash_table_destroy (prop_hash);
+@@ -133,7 +142,8 @@ rhythmdb_method_call (GDBusConnection *connection,
+ g_variant_builder_add (builder, "{sv}", "", g_variant_new_string (""));
+ }
+
+- g_dbus_method_invocation_return_value (invocation, g_variant_builder_end (builder));
++ g_dbus_method_invocation_return_value (invocation,
++ g_variant_new ("(a{sv})", builder));
+ g_variant_builder_unref (builder);
+
+ } else if (g_strcmp0 (method_name, "SetEntryProperties") == 0) {
+@@ -183,6 +193,7 @@ rhythmdb_method_call (GDBusConnection *connection,
+ g_value_unset (&v);
+ }
+
++ g_dbus_method_invocation_return_value (invocation, NULL);
+ } else {
+ g_dbus_method_invocation_return_error (invocation,
+ G_DBUS_ERROR,
diff --git a/media-sound/rhythmbox/files/rhythmbox-2.95-port-im-status-plugin.patch b/media-sound/rhythmbox/files/rhythmbox-2.95-port-im-status-plugin.patch
new file mode 100644
index 000000000000..f8453c084083
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-2.95-port-im-status-plugin.patch
@@ -0,0 +1,247 @@
+From ed98714cb111d2befbeebbfceeeb60fcf8dcdc1d Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <nirbheek@gentoo.org>
+Date: Sun, 15 Jan 2012 16:13:38 +0530
+Subject: [PATCH 1/2] Port im-status python plugin to Gio/GDBus
+
+Also drop Gossip support since it's a dead project with no way to test for it.
+---
+ plugins/im-status/im-status.py | 157 ++++++++++++++--------------------------
+ 1 files changed, 53 insertions(+), 104 deletions(-)
+
+diff --git a/plugins/im-status/im-status.py b/plugins/im-status/im-status.py
+index 17bcb2d..6bb5b89 100644
+--- a/plugins/im-status/im-status.py
++++ b/plugins/im-status/im-status.py
+@@ -2,6 +2,7 @@
+ # vim: set et sw=2:
+ #
+ # Copyright (C) 2007-2008 - Vincent Untz
++# Copyright (C) 2012 - Nirbheek Chauhan <nirbheek@gentoo.org>
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+@@ -26,19 +27,10 @@
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ import rb
+-from gi.repository import GObject, Peas
++import gi
++from gi.repository import Gio, GLib, GObject, Peas
+ from gi.repository import RB
+
+-try:
+- import dbus
+- use_gossip = True
+- use_mc5 = True
+- use_purple = True
+-except ImportError:
+- use_gossip = False
+- use_mc5 = False
+- use_purple = False
+-
+ import gettext
+ gettext.install('rhythmbox', RB.locale_dir(), unicode=True)
+
+@@ -49,10 +41,6 @@ STREAM_SONG_ARTIST = 'rb:stream-song-artist'
+ STREAM_SONG_TITLE = 'rb:stream-song-title'
+ STREAM_SONG_ALBUM = 'rb:stream-song-album'
+
+-GOSSIP_BUS_NAME = 'org.gnome.Gossip'
+-GOSSIP_OBJ_PATH = '/org/gnome/Gossip'
+-GOSSIP_IFACE_NAME = 'org.gnome.Gossip'
+-
+ PROPERTIES_IFACE_NAME = 'org.freedesktop.DBus.Properties'
+ MC5_BUS_NAME = 'org.freedesktop.Telepathy.MissionControl5'
+ MC5_AM_OBJ_PATH = '/org/freedesktop/Telepathy/AccountManager'
+@@ -70,6 +58,17 @@ class IMStatusPlugin (GObject.Object, Peas.Activatable):
+ def __init__ (self):
+ GObject.Object.__init__ (self)
+
++ def _init_dbus_proxies(self):
++ self.proxies = {}
++ bus_type = Gio.BusType.SESSION
++ flags = 0
++ iface_info = None
++ # Creating proxies doesn't do any blocking I/O, and never fails
++ self.proxies["purple"] = Gio.DBusProxy.new_for_bus_sync(bus_type, flags, iface_info,
++ PURPLE_BUS_NAME, PURPLE_OBJ_PATH, PURPLE_IFACE_NAME, None)
++ self.proxies["mc5_props"] = Gio.DBusProxy.new_for_bus_sync(bus_type, flags, iface_info,
++ MC5_BUS_NAME, MC5_AM_OBJ_PATH, PROPERTIES_IFACE_NAME, None)
++
+ def do_activate (self):
+ shell = self.object
+ sp = shell.props.shell_player
+@@ -85,6 +84,7 @@ class IMStatusPlugin (GObject.Object, Peas.Activatable):
+ self.current_title = None
+ self.current_album = None
+
++ self._init_dbus_proxies ()
+ self.save_status ()
+
+ if sp.get_playing ():
+@@ -185,124 +185,73 @@ class IMStatusPlugin (GObject.Object, Peas.Activatable):
+ else:
+ new_status = _(u"♫ Listening to music... ♫")
+
+- self.set_gossip_status (new_status)
+ self.set_mc5_status (new_status)
+ self.set_purple_status (new_status)
+
+ def save_status (self):
+- self.saved_gossip = self.get_gossip_status ()
+ self.saved_mc5 = self.get_mc5_status ()
+ self.saved_purple = self.get_purple_status ()
+
+ def restore_status (self):
+- if self.saved_gossip != None:
+- self.set_gossip_status (self.saved_gossip)
+ if self.saved_mc5 != None:
+ self.set_mc5_status (self.saved_mc5)
+ if self.saved_purple != None:
+ self.set_purple_status (self.saved_purple)
+
+- def set_gossip_status (self, new_status):
+- if not use_gossip:
+- return
+-
+- try:
+- bus = dbus.SessionBus ()
+- gossip_obj = bus.get_object (GOSSIP_BUS_NAME, GOSSIP_OBJ_PATH)
+- gossip = dbus.Interface (gossip_obj, GOSSIP_IFACE_NAME)
+-
+- state, status = gossip.GetPresence ("")
+- gossip.SetPresence (state, new_status)
+- except dbus.DBusException:
+- pass
+-
+- def get_gossip_status (self):
+- if not use_gossip:
+- return
+-
+- try:
+- bus = dbus.SessionBus ()
+- gossip_obj = bus.get_object (GOSSIP_BUS_NAME, GOSSIP_OBJ_PATH)
+- gossip = dbus.Interface (gossip_obj, GOSSIP_IFACE_NAME)
+-
+- state, status = gossip.GetPresence ("")
+- return status
+- except dbus.DBusException:
+- return None
+-
+ def set_mc5_status (self, new_status):
+- if not use_mc5:
+- return
+-
+ try:
+- bus = dbus.SessionBus ()
+- am_obj = bus.get_object (MC5_BUS_NAME, MC5_AM_OBJ_PATH)
+- am = dbus.Interface (am_obj, PROPERTIES_IFACE_NAME)
+-
+- for acct in am.Get (MC5_AM_IFACE_NAME, "ValidAccounts"):
+- acct_obj = bus.get_object (MC5_BUS_NAME, acct)
+- acct_iface = dbus.Interface (acct_obj, PROPERTIES_IFACE_NAME)
+- status = acct_iface.Get (MC5_ACCT_IFACE_NAME, "RequestedPresence")
+- acct_iface.Set (MC5_ACCT_IFACE_NAME, "RequestedPresence", (status[0], status[1], new_status))
+-
+- except dbus.DBusException, e:
+- print "dbus exception while setting status: " + str(e)
+-
++ proxy = self.proxies["mc5_props"]
++ for acct_obj_path in proxy.Get("(ss)", MC5_AM_IFACE_NAME, "ValidAccounts"):
++ # Create a new proxy connected to acct_obj_path
++ acct_proxy = Gio.DBusProxy.new_for_bus_sync(Gio.BusType.SESSION, 0, None,
++ MC5_BUS_NAME, acct_obj_path,
++ PROPERTIES_IFACE_NAME, None)
++ # status = (state, status, status_message)
++ status = acct_proxy.Get("(ss)", MC5_ACCT_IFACE_NAME, "RequestedPresence")
++ # Create the (uss) GVariant to set the new status message
++ vstatus = GLib.Variant("(uss)", (status[0], status[1], new_status))
++ # Set the status!
++ acct_proxy.Set("(ssv)", MC5_ACCT_IFACE_NAME, "RequestedPresence", vstatus)
++ except gi._glib.GError as e:
++ print ("GError while setting status: " + str(e))
+
+ def get_mc5_status (self):
+- if not use_mc5:
+- return
+-
+ try:
+- bus = dbus.SessionBus ()
+- am_obj = bus.get_object (MC5_BUS_NAME, MC5_AM_OBJ_PATH)
+- am = dbus.Interface (am_obj, PROPERTIES_IFACE_NAME)
++ proxy = self.proxies["mc5_props"]
+ got_status = False
+-
+ # a bit awful: this just returns the status text from the first account
+ # that has one.
+- for acct in am.Get (MC5_AM_IFACE_NAME, "ValidAccounts"):
+- acct_obj = bus.get_object (MC5_BUS_NAME, acct)
+- acct_iface = dbus.Interface (acct_obj, PROPERTIES_IFACE_NAME)
+- status = acct_iface.Get (MC5_ACCT_IFACE_NAME, "RequestedPresence")
++ for acct_obj_path in proxy.Get("(ss)", MC5_AM_IFACE_NAME, "ValidAccounts"):
++ # Create a new proxy connected to acct_obj_path
++ acct_proxy = Gio.DBusProxy.new_for_bus_sync (Gio.BusType.SESSION, 0, None,
++ MC5_BUS_NAME, acct_obj_path,
++ PROPERTIES_IFACE_NAME, None)
++ # Get (state, status, status_message)
++ ret = acct_proxy.Get("(ss)", MC5_ACCT_IFACE_NAME, "RequestedPresence")
+ got_status = True
+- if status[2] != "":
+- return status[2]
+-
++ if ret[2] != "":
++ return ret[2]
+ # if all accounts have empty status, return that
+ if got_status:
+ return ""
+- except dbus.DBusException, e:
+- print "dbus exception while getting status: " + str(e)
+-
++ except gi._glib.GError as e:
++ print ("GError while setting status: " + str(e))
+ return None
+
+ def set_purple_status (self, new_status):
+- if not use_purple:
+- return
+-
+ try:
+- bus = dbus.SessionBus ()
+- purple_obj = bus.get_object (PURPLE_BUS_NAME, PURPLE_OBJ_PATH)
+- purple = dbus.Interface (purple_obj, PURPLE_IFACE_NAME)
+-
+- status = purple.PurpleSavedstatusGetCurrent ()
+- purple.PurpleSavedstatusSetMessage (status, new_status)
+- purple.PurpleSavedstatusActivate (status)
+- except dbus.DBusException:
+- pass
++ proxy = self.proxies["purple"]
++ status = proxy.PurpleSavedstatusGetCurrent()
++ proxy.PurpleSavedstatusSetMessage("(is)", status, new_status)
++ proxy.PurpleSavedstatusActivate("(i)", status)
++ except gi._glib.GError as e:
++ print ("GError while setting status: " + str(e))
+
+ def get_purple_status (self):
+- if not use_purple:
+- return
+-
+ try:
+- bus = dbus.SessionBus ()
+- purple_obj = bus.get_object (PURPLE_BUS_NAME, PURPLE_OBJ_PATH)
+- purple = dbus.Interface (purple_obj, PURPLE_IFACE_NAME)
+-
+- current = purple.PurpleSavedstatusGetCurrent ()
+- status = purple.PurpleSavedstatusGetMessage (current)
+- return status
+- except dbus.DBusException:
+- return None
++ proxy = self.proxies["purple"]
++ status = proxy.PurpleSavedstatusGetCurrent()
++ return proxy.PurpleSavedstatusGetMessage("(i)", status)
++ except gi._glib.GError as e:
++ print ("GError while setting status: " + str(e))
++ return None
+--
+1.7.3.4
+
diff --git a/media-sound/rhythmbox/files/rhythmbox-2.95-port-rb-set-rating-py-example.patch b/media-sound/rhythmbox/files/rhythmbox-2.95-port-rb-set-rating-py-example.patch
new file mode 100644
index 000000000000..2a34868ab4ba
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-2.95-port-rb-set-rating-py-example.patch
@@ -0,0 +1,42 @@
+From a9e3286eec99cdd9d229aa0d9bcab925cc381889 Mon Sep 17 00:00:00 2001
+From: Nirbheek Chauhan <nirbheek@gentoo.org>
+Date: Mon, 16 Jan 2012 06:56:21 +0530
+Subject: [PATCH 2/2] Port the rb-set-rating.py example script to PyGI/GDBus
+
+---
+ remote/dbus/rb-set-rating.py | 19 ++++++++++++++-----
+ 1 files changed, 14 insertions(+), 5 deletions(-)
+
+diff --git a/remote/dbus/rb-set-rating.py b/remote/dbus/rb-set-rating.py
+index 82264d5..9fdd0d5 100755
+--- a/remote/dbus/rb-set-rating.py
++++ b/remote/dbus/rb-set-rating.py
+@@ -1,11 +1,20 @@
+ #!/usr/bin/python
++# vim: set sts=2 sw=2 et :
+ # Set the rating for a URI
+
+-import dbus, sys
++import sys
+
+-bus = dbus.SessionBus()
+-rbshellobj = bus.get_object('org.gnome.Rhythmbox', '/org/gnome/Rhythmbox/Shell')
+-rbshell = dbus.Interface(rbshellobj, 'org.gnome.Rhythmbox.Shell')
++from gi.repository import GLib, Gio
+
+-rbshell.setSongProperty(sys.argv[1], "rating", dbus.Double(float(sys.argv[2])))
++bus_type = Gio.BusType.SESSION
++flags = 0
++iface_info = None
++proxy = Gio.DBusProxy.new_for_bus_sync(bus_type, flags, iface_info,
++ "org.gnome.Rhythmbox3",
++ "/org/gnome/Rhythmbox3/RhythmDB",
++ "org.gnome.Rhythmbox3.RhythmDB", None)
+
++entry_uri = sys.argv[1]
++rating = float(sys.argv[2])
++vrating = GLib.Variant("u", rating)
++proxy.SetEntryProperties("(sa{sv})", entry_uri, {"rating": vrating})
+--
+1.7.3.4
+
diff --git a/media-sound/rhythmbox/rhythmbox-2.90.1_pre20111001.ebuild b/media-sound/rhythmbox/rhythmbox-2.95.ebuild
index 65315afb14fd..791413c05b43 100644
--- a/media-sound/rhythmbox/rhythmbox-2.90.1_pre20111001.ebuild
+++ b/media-sound/rhythmbox/rhythmbox-2.95.ebuild
@@ -1,30 +1,34 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-2.90.1_pre20111001.ebuild,v 1.2 2012/01/05 06:38:12 tetromino Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-2.95.ebuild,v 1.1 2012/01/16 03:47:24 nirbheek Exp $
-EAPI="3"
+EAPI="4"
GNOME2_LA_PUNT="yes"
PYTHON_DEPEND="python? 2:2.5"
PYTHON_USE_WITH="xml"
PYTHON_USE_WITH_OPT="python"
-inherit autotools gnome2 python multilib virtualx
+inherit eutils gnome2 python multilib virtualx
DESCRIPTION="Music management and playback software for GNOME"
HOMEPAGE="http://www.rhythmbox.org/"
-# Git snapshot
-SRC_URI="mirror://gentoo/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
IUSE="cdr clutter daap dbus doc gnome-keyring html ipod +lastfm libnotify lirc
-musicbrainz mtp nsplugin python test udev upnp webkit"
+musicbrainz mtp nsplugin +python test +udev upnp webkit"
# vala
KEYWORDS="~amd64 ~x86"
+REQUIRED_USE="
+ ipod? ( udev )
+ mtp? ( udev )
+ dbus? ( python )
+ gnome-keyring? ( python )
+ webkit? ( python )"
+
# FIXME: double check what to do with fm-radio plugin
# FIXME: Zeitgeist python plugin
-# NOTE: Rhythmbox uses both gdbus and dbus-python right now
# NOTE: gst-python is still needed because gstreamer introspection is incomplete
COMMON_DEPEND=">=dev-libs/glib-2.26.0:2
dev-libs/libxml2:2
@@ -37,6 +41,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.26.0:2
>=net-libs/libsoup-gnome-2.26:2.4
>=media-libs/gst-plugins-base-0.10.32:0.10
>=media-libs/gstreamer-0.10.32:0.10[introspection]
+ >=sys-libs/tdb-1.2.6
clutter? (
>=media-libs/clutter-1.2:1.0
@@ -55,7 +60,7 @@ COMMON_DEPEND=">=dev-libs/glib-2.26.0:2
musicbrainz? (
media-libs/musicbrainz:3
gnome-base/gconf:2 )
- python? ( >=dev-python/pygobject-2.28:2[introspection] )
+ python? ( dev-python/pygobject:3 )
udev? (
ipod? ( >=media-libs/libgpod-0.7.92[udev] )
mtp? ( >=media-libs/libmtp-0.3 )
@@ -79,7 +84,7 @@ RDEPEND="${COMMON_DEPEND}
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
- dbus? ( dev-python/dbus-python )
+ dbus? ( sys-apps/dbus )
gnome-keyring? ( dev-python/gnome-keyring-python )
webkit? (
dev-python/mako
@@ -87,12 +92,10 @@ RDEPEND="${COMMON_DEPEND}
"
# gtk-doc-am needed for eautoreconf
# dev-util/gtk-doc-am
-# gtk-doc is needed for gtkdocize
DEPEND="${COMMON_DEPEND}
dev-util/pkgconfig
>=dev-util/intltool-0.35
app-text/scrollkeeper
- dev-util/gtk-doc
>=app-text/gnome-doc-utils-0.9.1
doc? ( >=dev-util/gtk-doc-1.4 )
test? ( dev-libs/check )"
@@ -107,47 +110,11 @@ pkg_setup() {
G2CONF="${G2CONF} PYTHON=$(PYTHON -2)"
fi
- if ! use udev; then
- if use ipod; then
- ewarn "ipod support requires udev support. Please"
- ewarn "re-emerge with USE=udev to enable ipod support"
- G2CONF="${G2CONF} --without-ipod"
- fi
-
- if use mtp; then
- ewarn "MTP support requires udev support. Please"
- ewarn "re-emerge with USE=udev to enable MTP support"
- G2CONF="${G2CONF} --without-mtp"
- fi
- else
- G2CONF="${G2CONF} $(use_with ipod) $(use_with mtp)"
- fi
-
- if ! use cdr ; then
- ewarn "You have cdr USE flag disabled."
- ewarn "You will not be able to burn CDs."
- fi
-
- if ! use python; then
- if use dbus; then
- ewarn "You need python support to use the im-status plugin"
- fi
-
- if use webkit; then
- ewarn "You need python support in addition to webkit to be able to use"
- ewarn "the context panel plugin."
- fi
- fi
-
- if use gnome-keyring && ! use python; then
- ewarn "The magnatune plugin requires USE='python gnome-keyring'"
- fi
-
# --enable-vala just installs the sample vala plugin, and the configure
# checks are broken, so don't enable it
G2CONF="${G2CONF}
MOZILLA_PLUGINDIR=/usr/$(get_libdir)/nsbrowser/plugins
- VALAC=$(type -P valac-0.12)
+ VALAC=$(type -P valac-0.14)
--enable-mmkeys
--disable-more-warnings
--disable-scrollkeeper
@@ -178,15 +145,13 @@ pkg_setup() {
src_prepare() {
gnome2_src_prepare
- # Git snapshot, remove for release
- # make dist wasn't working, so no proper snapshot tarball
- gtkdocize || die
- gnome-doc-common || die
- gnome-doc-prepare --automake || die
- intltoolize --force || die
- eautoreconf
+ # Not needed for next release
+ # https://bugzilla.gnome.org/show_bug.cgi?id=667980
+ epatch "${FILESDIR}/${P}-port-im-status-plugin.patch"
+ epatch "${FILESDIR}/${P}-port-rb-set-rating-py-example.patch"
+ epatch "${FILESDIR}/${P}-fix-db-dbus-interface.patch"
- # disable pyc compiling
+ # Disable pyc compiling
echo > py-compile
}