summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZaheer Abbas Merali <zaheerm@gentoo.org>2005-04-30 10:26:13 +0000
committerZaheer Abbas Merali <zaheerm@gentoo.org>2005-04-30 10:26:13 +0000
commit87781c9e34346573596c3ded274e26b07f67dc16 (patch)
tree2eccbee9d788199175c1bcd2f9b07f944ad9b271 /media-libs
parentAdded to ~ppc (diff)
downloadgentoo-2-87781c9e34346573596c3ded274e26b07f67dc16.tar.gz
gentoo-2-87781c9e34346573596c3ded274e26b07f67dc16.tar.bz2
gentoo-2-87781c9e34346573596c3ded274e26b07f67dc16.zip
mark ~ppc-macos with plugin loading fix just for os x
(Portage version: 2.0.51.19)
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/gstreamer/ChangeLog7
-rw-r--r--media-libs/gstreamer/Manifest13
-rw-r--r--media-libs/gstreamer/files/gstreamer-0.8.9-fixpluginload.patch134
-rw-r--r--media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild7
4 files changed, 147 insertions, 14 deletions
diff --git a/media-libs/gstreamer/ChangeLog b/media-libs/gstreamer/ChangeLog
index 9f7371379a5f..a57761367811 100644
--- a/media-libs/gstreamer/ChangeLog
+++ b/media-libs/gstreamer/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for media-libs/gstreamer
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/ChangeLog,v 1.102 2005/04/29 22:52:34 gustavoz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/ChangeLog,v 1.103 2005/04/30 10:26:13 zaheerm Exp $
+
+ 30 Apr 2005; Zaheer Abbas Merali <zaheerm@gentoo.org>
+ +files/gstreamer-0.8.9-fixpluginload.patch, gstreamer-0.8.9-r3.ebuild:
+ mark ~ppc-macos with plugin loading fix just for os x...works for all
+ platforms but only needed on os x
29 Apr 2005; Gustavo Zacarias <gustavoz@gentoo.org>
gstreamer-0.8.9-r3.ebuild:
diff --git a/media-libs/gstreamer/Manifest b/media-libs/gstreamer/Manifest
index af96367947bd..e77f0b34d4a9 100644
--- a/media-libs/gstreamer/Manifest
+++ b/media-libs/gstreamer/Manifest
@@ -1,10 +1,7 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
MD5 ac832308ff65da62e5106207d991c87c gstreamer-0.8.1.ebuild 2182
MD5 fba41fba3e573b788bab61d24c36af1f gstreamer-0.8.9-r1.ebuild 2808
MD5 648d0d2817efa61471dc0c28ee7a27d9 gstreamer-0.8.8.ebuild 2193
-MD5 1ebae132c765e0ec3ae8b2f3bc2983f4 gstreamer-0.8.9-r3.ebuild 3010
+MD5 8827e8a5e013c2b5fbaa10edc24fcf6a gstreamer-0.8.9-r3.ebuild 3123
MD5 5e025d896f851f83d6fb44b6658b74a4 gstreamer-0.8.5.ebuild 2191
MD5 abf62d66d038341af9fd3f7baae1003a gstreamer-0.8.7.ebuild 2156
MD5 898c7bf46170e72b9e6945a6401aebab gstreamer-0.8.3-r1.ebuild 2287
@@ -24,10 +21,4 @@ MD5 3abab202e8f94756a8828e3af3bb7be5 files/digest-gstreamer-0.8.1 69
MD5 26c3b4e584edb9b835fbe421dc950ea3 files/digest-gstreamer-0.8.5 69
MD5 b37a41b09ac79fad924ab6233b4724f5 files/digest-gstreamer-0.8.7 69
MD5 825ffa19cfde6dde54aca626be3a8b11 files/digest-gstreamer-0.8.8 69
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
-
-iD8DBQFCcrq7KRy60XGEcJIRArMGAJ93+oeqrqDf0bZffByebcqsvfH+UACgmapj
-eDu45uYuK5vFbrrlibih96I=
-=OVKj
------END PGP SIGNATURE-----
+MD5 5adc10998a8ad71887996272e5775022 files/gstreamer-0.8.9-fixpluginload.patch 3982
diff --git a/media-libs/gstreamer/files/gstreamer-0.8.9-fixpluginload.patch b/media-libs/gstreamer/files/gstreamer-0.8.9-fixpluginload.patch
new file mode 100644
index 000000000000..e62488469b48
--- /dev/null
+++ b/media-libs/gstreamer/files/gstreamer-0.8.9-fixpluginload.patch
@@ -0,0 +1,134 @@
+--- gstreamer0.8-0.8.9/gst/gstplugin.c 2005-04-23 08:21:59.000000000 +1000
++++ gstreamer0.8-0.8.9-patched/gst/gstplugin.c 2005-04-23 08:22:11.000000000 +1000
+@@ -302,6 +302,45 @@
+ static void _gst_plugin_fault_handler_setup ();
+
+ /**
++ * gst_plugin_check_module:
++ * @module: GModule handle to check for pluginness
++ * @error: pointer to a NULL-valued GError
++ * @pptr: pointer to a gpointer used to return the gst_plugin_desc symbol
++ * (can be NULL)
++ *
++ * Checks if the given module is a GStreamer plugin
++ *
++ * Returns: TRUE if the given module is a GStreamer plugin
++ */
++static gboolean
++gst_plugin_check_module (GModule *module, const char *filename, GError **error, gpointer *pptr)
++{
++ gpointer ptr;
++
++ if (pptr == NULL)
++ pptr = &ptr;
++
++ if (module == NULL) {
++ GST_DEBUG ("Error loading plugin %s, reason: %s", filename,
++ g_module_error ());
++ g_set_error (error, GST_PLUGIN_ERROR, GST_PLUGIN_ERROR_MODULE,
++ "Error loading plugin %s, reason: %s", filename, g_module_error ());
++ return FALSE;
++ }
++
++ if (!g_module_symbol (module, "gst_plugin_desc", pptr)) {
++ GST_DEBUG ("Could not find plugin entry point in \"%s\"", filename);
++ g_set_error (error,
++ GST_PLUGIN_ERROR,
++ GST_PLUGIN_ERROR_MODULE,
++ "Could not find plugin entry point in \"%s\"", filename);
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++/**
+ * gst_plugin_check_file:
+ * @filename: the plugin filename to check for pluginness
+ * @error: pointer to a NULL-valued GError
+@@ -315,7 +354,7 @@
+ {
+ GModule *module;
+ struct stat file_status;
+- gpointer ptr;
++ gboolean check;
+
+ g_return_val_if_fail (filename != NULL, FALSE);
+
+@@ -335,28 +374,11 @@
+ }
+
+ module = g_module_open (filename, G_MODULE_BIND_LAZY);
+-
+- if (module == NULL) {
+- GST_DEBUG ("Error loading plugin %s, reason: %s\n", filename,
+- g_module_error ());
+- g_set_error (error, GST_PLUGIN_ERROR, GST_PLUGIN_ERROR_MODULE,
+- "Error loading plugin %s, reason: %s\n", filename, g_module_error ());
+- return FALSE;
+- }
+-
+- if (!g_module_symbol (module, "gst_plugin_desc", &ptr)) {
+- GST_DEBUG ("Could not find plugin entry point in \"%s\"", filename);
+- g_set_error (error,
+- GST_PLUGIN_ERROR,
+- GST_PLUGIN_ERROR_MODULE,
+- "Could not find plugin entry point in \"%s\"", filename);
+- g_module_close (module);
+- return FALSE;
+- }
+- /* it's a plugin */
+- GST_INFO ("looks like a gst plugin \"%s\"", filename);
++ check = gst_plugin_check_module (module, filename, error, NULL);
+ g_module_close (module);
+- return TRUE;
++
++ GST_INFO ("file \"%s\" %s look like a gst plugin", filename, check ? "does" : "doesn't");
++ return check;
+ }
+
+ /**
+@@ -382,16 +404,11 @@
+ GST_CAT_DEBUG (GST_CAT_PLUGIN_LOADING, "attempt to load plugin \"%s\"",
+ filename);
+
+- if (!gst_plugin_check_file (filename, error))
+- return NULL;
+
+ module = g_module_open (filename, G_MODULE_BIND_LAZY);
+
+- if (module == NULL)
+- goto load_error;
+-
+- if (!g_module_symbol (module, "gst_plugin_desc", &ptr))
+- goto load_error;
++ if (!gst_plugin_check_module (module, filename, error, &ptr)) /* handles module == NULL case */
++ return NULL;
+
+ desc = (GstPluginDesc *) ptr;
+
+@@ -404,6 +421,7 @@
+ } else {
+ free_plugin = FALSE;
+ if (gst_plugin_is_loaded (plugin)) {
++ g_module_close (module);
+ if (plugin->filename && strcmp (plugin->filename, filename) != 0) {
+ GST_WARNING
+ ("plugin %p from file \"%s\" with same name %s is already "
+@@ -456,15 +474,11 @@
+ GST_PLUGIN_ERROR,
+ GST_PLUGIN_ERROR_MODULE,
+ "gst_plugin_register_func failed for plugin \"%s\"", filename);
++ g_module_close (module);
+ if (free_plugin)
+ g_free (plugin);
+ return NULL;
+ }
+-load_error:
+- g_set_error (error,
+- GST_PLUGIN_ERROR,
+- GST_PLUGIN_ERROR_MODULE, "generic load error for \"%s\"", filename);
+- return NULL;
+ }
+
+ static void
diff --git a/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild b/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild
index 96864bb8645e..d339d14c845f 100644
--- a/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild
+++ b/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild,v 1.6 2005/04/29 22:52:34 gustavoz Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gstreamer/gstreamer-0.8.9-r3.ebuild,v 1.7 2005/04/30 10:26:13 zaheerm Exp $
inherit eutils flag-o-matic libtool gnome2 flag-o-matic
@@ -14,7 +14,7 @@ SRC_URI="http://gstreamer.freedesktop.org/src/gstreamer/${P}.tar.bz2"
LICENSE="LGPL-2"
SLOT=${PV_MAJ_MIN}
-KEYWORDS="x86 ppc sparc ~alpha ~hppa amd64 ~ia64 ~mips ppc64 ~arm"
+KEYWORDS="x86 ppc sparc ~alpha ~hppa amd64 ~ia64 ~mips ppc64 ~arm ~ppc-macos"
IUSE="doc"
RDEPEND=">=dev-libs/glib-2.2
@@ -40,6 +40,9 @@ src_unpack() {
# fix queue locking bug - fixes bug #84864
cd ${S}/gst
epatch ${FILESDIR}/${P}-gstqueue_lock.patch
+ # fix plugin loading on macos
+ cd ${S}
+ use ppc-macos && epatch ${FILESDIR}/${P}-fixpluginload.patch
}