diff options
author | Nirbheek Chauhan <nirbheek@gentoo.org> | 2012-01-16 03:47:24 +0000 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@gentoo.org> | 2012-01-16 03:47:24 +0000 |
commit | c6e8bb5a76205c8bdffa40ead2dc36678fe69e10 (patch) | |
tree | 2767a8b47f62ba5acc57f702ebcab3683c3f9fb1 /media-sound/rhythmbox | |
parent | Stable for HPPA (bug #397693). (diff) | |
download | historical-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/ChangeLog | 11 | ||||
-rw-r--r-- | media-sound/rhythmbox/Manifest | 29 | ||||
-rw-r--r-- | media-sound/rhythmbox/files/rhythmbox-2.95-fix-db-dbus-interface.patch | 58 | ||||
-rw-r--r-- | media-sound/rhythmbox/files/rhythmbox-2.95-port-im-status-plugin.patch | 247 | ||||
-rw-r--r-- | media-sound/rhythmbox/files/rhythmbox-2.95-port-rb-set-rating-py-example.patch | 42 | ||||
-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 } |