Mac OS X love...

Original commit message from CVS:
2008-04-11  Julien Moutte  <julien@fluendo.com>

Mac OS X love...
* configure.ac: Merge platform specific defines, introduce a new
define on OS X to remember that forking when updating registry is
unsafe.
* docs/faq/gst-uninstalled: Updated to include gst-libs in the bad
module.
* gst/gst.c: Don't fork when updating registry if GST_HAVE_UNSAFE_FORK
is defined.
* gst/gstregistry.c: (gst_registry_scan_path_level): Fixed a bogus
condition that leads to absolutely no plugins being registered on
OS X.
This commit is contained in:
Julien Moutte 2008-04-11 09:27:44 +00:00
parent f273ee8c4b
commit 224b878ff7
5 changed files with 36 additions and 13 deletions

View file

@ -1,3 +1,17 @@
2008-04-11 Julien Moutte <julien@fluendo.com>
Mac OS X love...
* configure.ac: Merge platform specific defines, introduce a new
define on OS X to remember that forking when updating registry is
unsafe.
* docs/faq/gst-uninstalled: Updated to include gst-libs in the bad
module.
* gst/gst.c: Don't fork when updating registry if GST_HAVE_UNSAFE_FORK
is defined.
* gst/gstregistry.c: (gst_registry_scan_path_level): Fixed a bogus
condition that leads to absolutely no plugins being registered on
OS X.
2008-04-10 Tim-Philipp Müller <tim at centricular dot net> 2008-04-10 Tim-Philipp Müller <tim at centricular dot net>
Based on patch by: José Alburquerque <jaalburqu at svn dot gnome dot org> Based on patch by: José Alburquerque <jaalburqu at svn dot gnome dot org>

View file

@ -230,11 +230,19 @@ else
fi fi
AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE) AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE)
dnl check for extra platform specific plugin suffixes dnl check for platform specific settings
case $host_os in case $host_os in
darwin* | rhapsody*) rhapsody*)
AC_DEFINE_UNQUOTED(GST_EXTRA_MODULE_SUFFIX, [".dylib"], [Extra platform specific plugin suffix]) AC_DEFINE_UNQUOTED(GST_EXTRA_MODULE_SUFFIX, [".dylib"], [Extra platform specific plugin suffix])
;;
darwin*)
AC_DEFINE_UNQUOTED(GST_EXTRA_MODULE_SUFFIX, [".dylib"], [Extra platform specific plugin suffix])
AC_DEFINE_UNQUOTED(GST_HAVE_UNSAFE_FORK, 1, [Defined when registry scanning through fork is unsafe])
;; ;;
cygwin* | mingw* | msvc* | mks*)
dnl HAVE_WIN32 currently means "disable POSIXisms".
AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
;;
*) *)
;; ;;
esac esac
@ -245,15 +253,6 @@ dnl check for large file support
dnl affected plugins must include config.h dnl affected plugins must include config.h
AC_SYS_LARGEFILE AC_SYS_LARGEFILE
dnl HAVE_WIN32 currently means "disable POSIXisms".
case "$host" in
*-*-mingw*)
AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
;;
*)
;;
esac
dnl *** checks for programs *** dnl *** checks for programs ***
dnl find a compiler dnl find a compiler

View file

@ -52,11 +52,21 @@ PATH=$GST/gstreamer/tools:$GST/gst-plugins/tools:$GST/gst-player/src:$GST/gst-ed
LD_LIBRARY_PATH=$GST/prefix/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} LD_LIBRARY_PATH=$GST/prefix/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
DYLD_LIBRARY_PATH=$GST/prefix/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH} DYLD_LIBRARY_PATH=$GST/prefix/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
# GStreamer plugins bad libraries
for path in app
do
LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
done
# GStreamer plugins base libraries
for path in audio cdda fft interfaces pbutils netbuffer riff rtp rtsp sdp tag utils video for path in audio cdda fft interfaces pbutils netbuffer riff rtp rtsp sdp tag utils video
do do
LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
done done
# GStreamer core libraries
for path in base net check controller dataprotocol for path in base net check controller dataprotocol
do do
LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH

View file

@ -139,7 +139,7 @@ extern const gchar *priv_gst_dump_dot_dir;
#endif #endif
/* defaults */ /* defaults */
#ifdef HAVE_FORK #if defined(HAVE_FORK) && !defined(GST_HAVE_UNSAFE_FORK)
#define DEFAULT_FORK TRUE #define DEFAULT_FORK TRUE
#else #else
#define DEFAULT_FORK FALSE #define DEFAULT_FORK FALSE

View file

@ -830,7 +830,7 @@ gst_registry_scan_path_level (GstRegistry * registry, const gchar * path,
} }
if (!g_str_has_suffix (filename, G_MODULE_SUFFIX) if (!g_str_has_suffix (filename, G_MODULE_SUFFIX)
#ifdef GST_EXTRA_MODULE_SUFFIX #ifdef GST_EXTRA_MODULE_SUFFIX
|| !g_str_has_suffix (filename, GST_EXTRA_MODULE_SUFFIX) && !g_str_has_suffix (filename, GST_EXTRA_MODULE_SUFFIX)
#endif #endif
) { ) {
GST_LOG_OBJECT (registry, GST_LOG_OBJECT (registry,