summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Dartiguelongue <eva@gentoo.org>2010-05-05 22:50:31 +0000
committerGilles Dartiguelongue <eva@gentoo.org>2010-05-05 22:50:31 +0000
commite93059c499bc7876f247f45c30575654b57c298a (patch)
treef7b9ac818dc333a259f6b5d31ee41e6e6c45a743 /media-sound
parentFix udev rules, bug #316027. Fix build problem with -O0, bug #306803. (diff)
downloadhistorical-e93059c499bc7876f247f45c30575654b57c298a.tar.gz
historical-e93059c499bc7876f247f45c30575654b57c298a.tar.bz2
historical-e93059c499bc7876f247f45c30575654b57c298a.zip
Fix segfault with recent python, bug #318333. Clean up old revisions.
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/rhythmbox/ChangeLog12
-rw-r--r--media-sound/rhythmbox/Manifest16
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-0.12-python-initialization.patch171
-rw-r--r--media-sound/rhythmbox/files/rhythmbox-0.12.5-fix-daap-plugin-linking.patch22
-rw-r--r--media-sound/rhythmbox/rhythmbox-0.12.6-r1.ebuild (renamed from media-sound/rhythmbox/rhythmbox-0.12.5-r2.ebuild)46
-rw-r--r--media-sound/rhythmbox/rhythmbox-0.12.8-r1.ebuild197
6 files changed, 410 insertions, 54 deletions
diff --git a/media-sound/rhythmbox/ChangeLog b/media-sound/rhythmbox/ChangeLog
index 054c5c203ec9..9645eea51403 100644
--- a/media-sound/rhythmbox/ChangeLog
+++ b/media-sound/rhythmbox/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for media-sound/rhythmbox
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.182 2010/04/21 18:02:44 fauli Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/ChangeLog,v 1.183 2010/05/05 22:50:30 eva Exp $
+
+*rhythmbox-0.12.8-r1 (05 May 2010)
+*rhythmbox-0.12.6-r1 (05 May 2010)
+
+ 05 May 2010; Gilles Dartiguelongue <eva@gentoo.org>
+ -rhythmbox-0.12.5-r2.ebuild,
+ -files/rhythmbox-0.12.5-fix-daap-plugin-linking.patch,
+ +rhythmbox-0.12.6-r1.ebuild, +rhythmbox-0.12.8-r1.ebuild,
+ +files/rhythmbox-0.12-python-initialization.patch:
+ Fix segfault with recent python, bug #318333. Clean up old revisions.
21 Apr 2010; Christian Faulhammer <fauli@gentoo.org>
rhythmbox-0.12.8.ebuild:
diff --git a/media-sound/rhythmbox/Manifest b/media-sound/rhythmbox/Manifest
index d3f98244d90d..13f4e156587f 100644
--- a/media-sound/rhythmbox/Manifest
+++ b/media-sound/rhythmbox/Manifest
@@ -1,19 +1,19 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-AUX rhythmbox-0.12.5-fix-daap-plugin-linking.patch 714 RMD160 f41f995764b8ac60172b8e8e6c1a9face9d3e408 SHA1 2ebd320ef650c9fe6dd06531afc697399a071ed6 SHA256 4617073fc7e275680b8ad3334009dbcf707725294f499df4912be83c6abbb2cd
-DIST rhythmbox-0.12.5.tar.bz2 5123204 RMD160 5286cda2e457d21627a8fe2392c85504bcd254b7 SHA1 b41bbb4e7e8f2dc64122ff6a0b334478a0cef42b SHA256 b26c45a715502d3b4d47bf532078bdf3dbed68c1cb68c61d8995a349dd488cd1
+AUX rhythmbox-0.12-python-initialization.patch 5167 RMD160 cacae6274841d595a0d55ed92c42815793081176 SHA1 0b306455b027f8f9c73e185acdbbb1d041ce882d SHA256 54f3f492d4c3204b93a1fed3886ca76aa42d36737e66c6424426fc0116b25d3e
DIST rhythmbox-0.12.6.tar.bz2 5202025 RMD160 cf860b1a42975d4dfea09b5c265bda297d18a7b9 SHA1 f1ba375329471ec47475a4b0ce3e8bba430a537b SHA256 ddffa5b7e0e0fe81044354998fd91a58d4ff526746b17a6b638e0e8ea1ac9684
DIST rhythmbox-0.12.8.tar.bz2 5358950 RMD160 072d4fa06408ebc181b40147db1575d0ef4c99fe SHA1 5d27923cc29b81d7bfbc73d867d7976a5295f964 SHA256 1752fab135808aa78a9afde78448e992020c58c07701f43c989fbabfc6352213
-EBUILD rhythmbox-0.12.5-r2.ebuild 4811 RMD160 552c4c989441bbb0b91bbe90ceb070d4309a226f SHA1 9e53e7bf34459b064bc8a3e06ca221445262f086 SHA256 7fb752710dd1adb756800c7147f637761a00ad9949e7e92fb13847c484a76cf4
+EBUILD rhythmbox-0.12.6-r1.ebuild 4794 RMD160 74eb78faea1182d2eccac6c4f2e1a8e7e7ee4a74 SHA1 a752be3ffa2899b61c242ae6aca3a23817b28cbd SHA256 e6e048344883d390ede9c8a2a4af5cb2a183c44b2f5ecdd149ec01b83d755273
EBUILD rhythmbox-0.12.6.ebuild 4535 RMD160 3ca2e90496ec7979cf0d578bcf1f156a40fd4261 SHA1 e7fa7615f17d426b37c4fb8f6e507cbe6208267b SHA256 6e1d2e68dbaf0991050ef9abfb24a6488e9aabe144c768fdf3e4b90f192bc259
+EBUILD rhythmbox-0.12.8-r1.ebuild 5165 RMD160 0d8d1d8a4915e6983689b08da9a1f631b4da92b6 SHA1 54663f001f08f7525c5d19f6953dd8d939f38ff9 SHA256 cfb61a15ededfcff3beb635efe6cb79cb6141314481f56f142253c9a76446d78
EBUILD rhythmbox-0.12.8.ebuild 5051 RMD160 59f830255cf73bf5d6f2ac63ec438f751a328248 SHA1 b918d2650ae3828eaec5825e39571186fc3cc81a SHA256 3b5ddc1dd337bcbe70286f9fa9b9ce885471c8e53679ee542e0dbfcf2ae4a992
-MISC ChangeLog 28078 RMD160 6fee98bcb5e0a69cba0740eff8abf9747ba1da83 SHA1 2e2b2257828241964cfc2ac4416d11980cc03e59 SHA256 7b458c724dba1f13d279040210ac047868e04893f35b139d9a90af5f5397d6ed
+MISC ChangeLog 28475 RMD160 9ad820c86f6a837bf88ae363e1f0c4c1dac41ca9 SHA1 a9769a3b5f65f037f433b3912270605e9a4b5813 SHA256 de9799188bfb91d947b971b1a45af6a602a827a8356190075712f316164dfdef
MISC metadata.xml 693 RMD160 1694899b1ecffa452a210fa7ee7f40d49bb1dc09 SHA1 2fecdcf02f751b816f6e853d6f7f15b7b3e6c9fe SHA256 e38fecefcfb59ecb89e3cd9c0c1c1b3af2d810de058860f41edcd9d6994788c3
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.14 (GNU/Linux)
+Version: GnuPG v2.0.15 (GNU/Linux)
-iEYEARECAAYFAkvPPckACgkQNQqtfCuFneOFIACgkqqAAwXphor1dQk+50ubB8wH
-kTMAnR3/YGT3VUvgx365SKHOMLqglgP7
-=Z/8e
+iEYEARECAAYFAkvh9jwACgkQ1fmVwcYIWAYD/gCdFOdbdd82HEHfJD18XHCwoiXb
+IIgAn1Loo50FBQXrwIyYlp0biyZXgMus
+=rFuC
-----END PGP SIGNATURE-----
diff --git a/media-sound/rhythmbox/files/rhythmbox-0.12-python-initialization.patch b/media-sound/rhythmbox/files/rhythmbox-0.12-python-initialization.patch
new file mode 100644
index 000000000000..deb34c0469a4
--- /dev/null
+++ b/media-sound/rhythmbox/files/rhythmbox-0.12-python-initialization.patch
@@ -0,0 +1,171 @@
+From 4394826f36fad0ad36ea773b6d4525dfcfcd389b Mon Sep 17 00:00:00 2001
+From: Jonathan Matthew <jonathan@d14n.org>
+Date: Wed, 05 May 2010 12:58:26 +0000
+Subject: python: fix a number of python initialization problems (bug #617587)
+
+- pygtk.require("2.8") doesn't work - it's only after a major version,
+ so we should pass in "2.0" instead
+- init_pygobject() is deprecated, use pygobject_init (and pass in the
+ version we require) instead
+- init_pygtk() is a macro that returns from the current function on
+ error, so we need to call it from a separate function for our error
+ handling to work
+- if some aspect of python initialization failed, we were still using
+ the pygobject GIL macros, which were crashing
+---
+diff --git a/shell/main.c b/shell/main.c
+index 1f27fee..a4dd50a 100644
+--- a/shell/main.c
++++ b/shell/main.c
+@@ -35,6 +35,7 @@
+ #define NO_IMPORT_PYGOBJECT
+ #define NO_IMPORT_PYGTK
+ #include <pygobject.h>
++#include "rb-python-module.h"
+
+ /* make sure it's defined somehow */
+ #ifndef _XOPEN_SOURCE
+@@ -327,11 +328,15 @@ main (int argc, char **argv)
+
+ rb_profile_start ("mainloop");
+ #ifdef ENABLE_PYTHON
+- pyg_begin_allow_threads;
+-#endif
++ if (rb_python_init_successful ()) {
++ pyg_begin_allow_threads;
++ gtk_main ();
++ pyg_end_allow_threads;
++ } else {
++ gtk_main ();
++ }
++#else
+ gtk_main ();
+-#ifdef ENABLE_PYTHON
+- pyg_end_allow_threads;
+ #endif
+ rb_profile_end ("mainloop");
+
+diff --git a/shell/rb-python-module.c b/shell/rb-python-module.c
+index 9e14731..1995a42 100644
+--- a/shell/rb-python-module.c
++++ b/shell/rb-python-module.c
+@@ -84,8 +84,16 @@ extern PyMethodDef pyrb_functions[];
+ /* We retreive this to check for correct class hierarchy */
+ static PyTypeObject *PyRBPlugin_Type;
+
++static gboolean python_init_successful;
++
+ G_DEFINE_TYPE (RBPythonModule, rb_python_module, G_TYPE_TYPE_MODULE);
+
++static void
++actually_init_pygtk (void)
++{
++ init_pygtk ();
++}
++
+ void
+ rb_python_module_init_python (void)
+ {
+@@ -98,6 +106,7 @@ rb_python_module_init_python (void)
+ char *argv[] = { "rb", "rhythmdb", NULL };
+ GList *paths;
+
++ python_init_successful = FALSE;
+ if (Py_IsInitialized ()) {
+ g_warning ("Python Should only be initialized once, since it's in class_init");
+ g_return_if_reached ();
+@@ -130,7 +139,7 @@ rb_python_module_init_python (void)
+
+ PySys_SetArgv (1, argv);
+
+- /* pygtk.require("2.8") */
++ /* pygtk.require("2.0") */
+ pygtk = PyImport_ImportModule ("pygtk");
+ if (pygtk == NULL) {
+ g_warning ("Could not import pygtk");
+@@ -140,11 +149,15 @@ rb_python_module_init_python (void)
+
+ mdict = PyModule_GetDict (pygtk);
+ require = PyDict_GetItemString (mdict, "require");
+- PyObject_CallObject (require, Py_BuildValue ("(S)", PyString_FromString ("2.8")));
++ PyObject_CallObject (require, Py_BuildValue ("(S)", PyString_FromString ("2.0")));
++ if (PyErr_Occurred ()) {
++ g_warning ("pygtk.require(2.0) failed");
++ PyErr_Print();
++ return;
++ }
+
+ /* import gobject */
+- init_pygobject ();
+- if (PyErr_Occurred ()) {
++ if (pygobject_init (2, 16, 0) == NULL) {
+ g_warning ("Could not initialize pygobject");
+ PyErr_Print();
+ return;
+@@ -154,7 +167,7 @@ rb_python_module_init_python (void)
+ pyg_disable_warning_redirections ();
+
+ /* import gtk */
+- init_pygtk ();
++ actually_init_pygtk ();
+ if (PyErr_Occurred ()) {
+ g_warning ("Could not initialize pygtk");
+ PyErr_Print();
+@@ -172,7 +185,7 @@ rb_python_module_init_python (void)
+
+ mdict = PyModule_GetDict (gtk);
+ pygtk_version = PyDict_GetItemString (mdict, "pygtk_version");
+- pygtk_required_version = Py_BuildValue ("(iii)", 2, 4, 0);
++ pygtk_required_version = Py_BuildValue ("(iii)", 2, 8, 0);
+ if (PyObject_Compare (pygtk_version, pygtk_required_version) == -1) {
+ g_warning("PyGTK %s required, but %s found.",
+ PyString_AsString (PyObject_Repr (pygtk_required_version)),
+@@ -264,6 +277,8 @@ rb_python_module_init_python (void)
+ gettext_args = Py_BuildValue ("ss", GETTEXT_PACKAGE, GNOMELOCALEDIR);
+ PyObject_CallObject (install, gettext_args);
+ Py_DECREF (gettext_args);
++
++ python_init_successful = TRUE;
+ }
+
+ static gboolean
+@@ -329,6 +344,11 @@ rb_python_module_load_with_gil (GTypeModule *module)
+ PyGILState_STATE state;
+ gboolean ret;
+
++ if (python_init_successful == FALSE) {
++ g_warning ("unable to load module as python runtime could not be initialized");
++ return FALSE;
++ }
++
+ state = pyg_gil_state_ensure ();
+ ret = rb_python_module_load (module);
+ pyg_gil_state_release (state);
+@@ -485,6 +505,12 @@ rb_python_module_new (const gchar *path,
+ return result;
+ }
+
++gboolean
++rb_python_init_successful (void)
++{
++ return python_init_successful;
++}
++
+ /* --- these are not module methods, they are here out of convenience --- */
+
+ #if 0
+diff --git a/shell/rb-python-module.h b/shell/rb-python-module.h
+index 5b2c152..30c1200 100644
+--- a/shell/rb-python-module.h
++++ b/shell/rb-python-module.h
+@@ -60,6 +60,8 @@ GObject *rb_python_module_new_object (RBPythonModule *module);
+
+ void rb_python_module_init_python (void);
+
++gboolean rb_python_init_successful (void);
++
+ void rb_python_garbage_collect (void);
+
+ void rb_python_shutdown (void);
+--
+cgit v0.8.3.1
diff --git a/media-sound/rhythmbox/files/rhythmbox-0.12.5-fix-daap-plugin-linking.patch b/media-sound/rhythmbox/files/rhythmbox-0.12.5-fix-daap-plugin-linking.patch
deleted file mode 100644
index 644615c3b35b..000000000000
--- a/media-sound/rhythmbox/files/rhythmbox-0.12.5-fix-daap-plugin-linking.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 3bf2e8b95d5a2c8000a7e46b73f0b92c5319e927 Mon Sep 17 00:00:00 2001
-From: Christophe Fergeau <cfergeau@mandriva.com>
-Date: Sat, 10 Oct 2009 12:16:35 +0000
-Subject: link daap plugin with RHYTHMBOX_LIBS (bug #597899)
-
-The DAAP plugin uses libsoup, so it needs to link with libsoup which is
-part of RHYTHMBOX_LIBS.
----
-diff --git a/plugins/daap/Makefile.am b/plugins/daap/Makefile.am
-index 90935ee..dfc1058 100644
---- a/plugins/daap/Makefile.am
-+++ b/plugins/daap/Makefile.am
-@@ -35,6 +35,7 @@ libdaap_la_LIBTOOLFLAGS = --tag=disable-static
- libdaap_la_LIBADD = \
- $(top_builddir)/shell/librhythmbox-core.la \
- $(DBUS_LIBS) \
-+ $(RHYTHMBOX_LIBS) \
- $(MDNS_LIBS)
-
- INCLUDES = \
---
-cgit v0.8.2
diff --git a/media-sound/rhythmbox/rhythmbox-0.12.5-r2.ebuild b/media-sound/rhythmbox/rhythmbox-0.12.6-r1.ebuild
index a076d04c30bf..c826d6c53124 100644
--- a/media-sound/rhythmbox/rhythmbox-0.12.5-r2.ebuild
+++ b/media-sound/rhythmbox/rhythmbox-0.12.6-r1.ebuild
@@ -1,16 +1,15 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-0.12.5-r2.ebuild,v 1.8 2010/02/17 22:58:40 eva Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-0.12.6-r1.ebuild,v 1.1 2010/05/05 22:50:30 eva Exp $
EAPI="2"
-WANT_AUTOMAKE="1.10"
-inherit autotools eutils gnome2 python multilib virtualx
+inherit eutils gnome2 python multilib virtualx
DESCRIPTION="Music management and playback software for GNOME"
HOMEPAGE="http://www.rhythmbox.org/"
LICENSE="GPL-2"
-KEYWORDS="amd64 ppc ppc64 sparc x86"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
IUSE="+brasero cdr daap doc gnome-keyring hal ipod libnotify lirc musicbrainz mtp nsplugin python test udev"
# FIXME: double check what to do with fm-radio plugin
@@ -18,13 +17,13 @@ IUSE="+brasero cdr daap doc gnome-keyring hal ipod libnotify lirc musicbrainz mt
SLOT="0"
-COMMON_DEPEND=">=dev-libs/glib-2.16.0
+COMMON_DEPEND=">=dev-libs/glib-2.16
dev-libs/libxml2
>=x11-libs/gtk+-2.16
>=dev-libs/dbus-glib-0.71
- >=dev-libs/totem-pl-parser-2.26.0
+ >=dev-libs/totem-pl-parser-2.26
>=gnome-base/gconf-2
- >=gnome-extra/gnome-media-2.14.0
+ >=gnome-extra/gnome-media-2.14
>=net-libs/libsoup-2.26:2.4
>=net-libs/libsoup-gnome-2.26:2.4
@@ -40,11 +39,11 @@ COMMON_DEPEND=">=dev-libs/glib-2.16.0
gnome-keyring? ( >=gnome-base/gnome-keyring-0.4.9 )
udev? (
ipod? ( >=media-libs/libgpod-0.6 )
- mtp? ( >=media-libs/libmtp-0.3.0 )
+ mtp? ( >=media-libs/libmtp-0.3 )
>=sys-fs/udev-145[extras] )
hal? (
ipod? ( >=media-libs/libgpod-0.6 )
- mtp? ( >=media-libs/libmtp-0.3.0 )
+ mtp? ( >=media-libs/libmtp-0.3 )
>=sys-apps/hal-0.5 )
libnotify? ( >=x11-libs/libnotify-0.4.1 )
lirc? ( app-misc/lirc )
@@ -55,9 +54,9 @@ COMMON_DEPEND=">=dev-libs/glib-2.16.0
>=dev-lang/python-2.5
dev-python/celementtree )
>=dev-python/pygtk-2.8
- >=dev-python/gnome-vfs-python-2.22.0
- >=dev-python/gconf-python-2.22.0
- >=dev-python/libgnome-python-2.22.0
+ >=dev-python/gnome-vfs-python-2.22
+ >=dev-python/gconf-python-2.22
+ >=dev-python/libgnome-python-2.22
>=dev-python/gst-python-0.10.8 )"
RDEPEND="${COMMON_DEPEND}
@@ -68,15 +67,12 @@ RDEPEND="${COMMON_DEPEND}
>=media-plugins/gst-plugins-cdio-0.10 )
>=media-plugins/gst-plugins-meta-0.10-r2:0.10
>=media-plugins/gst-plugins-taglib-0.10.6
- nsplugin? ( || (
- net-libs/xulrunner
- www-client/seamonkey
- www-client/mozilla-firefox ) )"
+ nsplugin? ( net-libs/xulrunner )"
# gtk-doc-am needed for eautoreconf
+# dev-util/gtk-doc-am
DEPEND="${COMMON_DEPEND}
dev-util/pkgconfig
- dev-util/gtk-doc-am
>=dev-util/intltool-0.40
app-text/scrollkeeper
>=app-text/gnome-doc-utils-0.9.1
@@ -141,15 +137,12 @@ pkg_setup() {
src_prepare() {
gnome2_src_prepare
- # Fix bug 291315 (patch taken from upstream repo)
- # DAAP plugin load failure when built with --as-needed
- epatch "${FILESDIR}/${P}-fix-daap-plugin-linking.patch"
-
- eautoreconf
-
# disable pyc compiling
mv py-compile py-compile.orig
ln -s $(type -P true) py-compile
+
+ # Fix python initialization problems, bug #318333
+ epatch "${FILESDIR}/${PN}-0.12-python-initialization.patch"
}
src_compile() {
@@ -164,6 +157,13 @@ src_test() {
Xemake check || die "test failed"
}
+src_install() {
+ gnome2_src_install
+
+ find "${D}/usr/$(get_libdir)/rhythmbox/plugins" -name "*.la" -delete \
+ || die "failed to remove *.la files"
+}
+
pkg_postinst() {
gnome2_pkg_postinst
use python && python_mod_optimize /usr/$(get_libdir)/rhythmbox/plugins
diff --git a/media-sound/rhythmbox/rhythmbox-0.12.8-r1.ebuild b/media-sound/rhythmbox/rhythmbox-0.12.8-r1.ebuild
new file mode 100644
index 000000000000..c81dafeef56d
--- /dev/null
+++ b/media-sound/rhythmbox/rhythmbox-0.12.8-r1.ebuild
@@ -0,0 +1,197 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-sound/rhythmbox/rhythmbox-0.12.8-r1.ebuild,v 1.1 2010/05/05 22:50:30 eva Exp $
+
+EAPI="2"
+
+inherit eutils gnome2 python multilib virtualx
+
+DESCRIPTION="Music management and playback software for GNOME"
+HOMEPAGE="http://www.rhythmbox.org/"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE="+brasero cdr daap doc gnome-keyring hal ipod libnotify lirc musicbrainz mtp nsplugin python test udev upnp webkit"
+
+# FIXME: double check what to do with fm-radio plugin
+# TODO: watchout for udev use flag changes
+
+SLOT="0"
+
+COMMON_DEPEND=">=dev-libs/glib-2.18
+ dev-libs/libxml2
+ >=x11-libs/gtk+-2.18
+ >=dev-libs/dbus-glib-0.71
+ >=dev-libs/totem-pl-parser-2.26
+ >=gnome-base/gconf-2
+ >=gnome-extra/gnome-media-2.14
+ >=net-libs/libsoup-2.26:2.4
+ >=net-libs/libsoup-gnome-2.26:2.4
+
+ >=media-libs/gst-plugins-base-0.10.20
+ || (
+ >=media-libs/gst-plugins-base-0.10.24
+ >=media-libs/gst-plugins-bad-0.10.6 )
+
+ cdr? (
+ brasero? ( >=app-cdr/brasero-0.9.1 )
+ !brasero? ( >=gnome-extra/nautilus-cd-burner-2.21.6 ) )
+ daap? ( >=net-dns/avahi-0.6 )
+ gnome-keyring? ( >=gnome-base/gnome-keyring-0.4.9 )
+ udev? (
+ ipod? ( >=media-libs/libgpod-0.6 )
+ mtp? ( >=media-libs/libmtp-0.3 )
+ >=sys-fs/udev-145[extras] )
+ hal? (
+ ipod? ( >=media-libs/libgpod-0.6 )
+ mtp? ( >=media-libs/libmtp-0.3 )
+ >=sys-apps/hal-0.5 )
+ libnotify? ( >=x11-libs/libnotify-0.4.1 )
+ lirc? ( app-misc/lirc )
+ musicbrainz? ( media-libs/musicbrainz:3 )
+ python? (
+ >=dev-lang/python-2.4.2
+ || (
+ >=dev-lang/python-2.5
+ dev-python/celementtree )
+ >=dev-python/pygtk-2.8
+ >=dev-python/pygobject-2.15.4
+ >=dev-python/gconf-python-2.22
+ >=dev-python/libgnome-python-2.22
+ >=dev-python/gnome-keyring-python-2.22
+ >=dev-python/gst-python-0.10.8
+ webkit? (
+ dev-python/mako
+ dev-python/pywebkitgtk )
+ upnp? ( media-video/coherence )
+ )"
+
+RDEPEND="${COMMON_DEPEND}
+ >=media-plugins/gst-plugins-soup-0.10
+ >=media-plugins/gst-plugins-libmms-0.10
+ || (
+ >=media-plugins/gst-plugins-cdparanoia-0.10
+ >=media-plugins/gst-plugins-cdio-0.10 )
+ >=media-plugins/gst-plugins-meta-0.10-r2:0.10
+ >=media-plugins/gst-plugins-taglib-0.10.6
+ nsplugin? ( net-libs/xulrunner )"
+
+# gtk-doc-am needed for eautoreconf
+# dev-util/gtk-doc-am
+DEPEND="${COMMON_DEPEND}
+ dev-util/pkgconfig
+ >=dev-util/intltool-0.40
+ app-text/scrollkeeper
+ >=app-text/gnome-doc-utils-0.9.1
+ doc? ( >=dev-util/gtk-doc-1.4 )
+ test? ( dev-libs/check )"
+
+DOCS="AUTHORS ChangeLog DOCUMENTERS INTERNALS \
+ MAINTAINERS MAINTAINERS.old NEWS README THANKS"
+
+pkg_setup() {
+ if ! use hal && ! use udev; then
+ if use ipod; then
+ ewarn "ipod support requires hal or udev support. Please"
+ ewarn "re-emerge with USE=udev to enable ipod support"
+ fi
+
+ if use mtp; then
+ ewarn "MTP support requires hal or udev support. Please"
+ ewarn "re-emerge with USE=udev to enable MTP support"
+ fi
+ fi
+
+ if use hal && use udev; then
+ einfo "udev support replaces hal support completely. You can disable"
+ einfo "hal on this package via /etc/portage/package.use."
+ 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 webkit; then
+ ewarn "You need python support in addition to webkit to be able to use"
+ ewarn "the context panel plugin."
+ fi
+
+ if use upnp; then
+ ewarn "You need python support in addition to upnp"
+ fi
+ fi
+
+ if use brasero; then
+ G2CONF="${G2CONF} $(use_with cdr libbrasero-media) --without-libnautilus-burn"
+ else
+ G2CONF="${G2CONF} $(use_with cdr libnautilus-burn) --without-libbrasero-media"
+ fi
+
+ G2CONF="${G2CONF}
+ MOZILLA_PLUGINDIR=/usr/$(get_libdir)/nsbrowser/plugins
+ $(use_with gnome-keyring)
+ $(use_with udev gudev)
+ $(use_with hal)
+ $(use_with ipod)
+ $(use_enable libnotify)
+ $(use_enable lirc)
+ $(use_enable musicbrainz)
+ $(use_with mtp)
+ $(use_enable nsplugin browser-plugin)
+ $(use_enable python)
+ $(use_enable daap)
+ $(use_with daap mdns avahi)
+ --enable-mmkeys
+ --disable-scrollkeeper
+ --disable-schemas-install
+ --disable-static
+ --disable-vala"
+
+ export GST_INSPECT=/bin/true
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # disable pyc compiling
+ mv py-compile py-compile.orig
+ ln -s $(type -P true) py-compile
+
+ # Fix python initialization problems, bug #318333
+ epatch "${FILESDIR}/${PN}-0.12-python-initialization.patch"
+}
+
+src_compile() {
+ addpredict "$(unset HOME; echo ~)/.gconf"
+ addpredict "$(unset HOME; echo ~)/.gconfd"
+ gnome2_src_compile
+}
+
+src_test() {
+ unset SESSION_MANAGER
+ unset DBUS_SESSION_BUS_ADDRESS
+ Xemake check || die "test failed"
+}
+
+src_install() {
+ gnome2_src_install
+
+ find "${D}/usr/$(get_libdir)/rhythmbox/plugins" -name "*.la" -delete \
+ || die "failed to remove *.la files"
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ use python && python_mod_optimize /usr/$(get_libdir)/rhythmbox/plugins
+
+ ewarn
+ ewarn "If ${PN} doesn't play some music format, please check your"
+ ewarn "USE flags on media-plugins/gst-plugins-meta"
+ ewarn
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+ python_mod_cleanup /usr/$(get_libdir)/rhythmbox/plugins
+}