Update to 0.10.11

This commit is contained in:
Michael Johnson 2006-12-07 23:49:51 +00:00
parent fec50a7f0e
commit b68e8c74ec
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=179144
4 changed files with 7 additions and 103 deletions

View file

@ -7,8 +7,7 @@
#
PORTNAME= gstreamer
PORTVERSION= 0.10.10
PORTREVISION= 1
PORTVERSION= 0.10.11
CATEGORIES= multimedia
MASTER_SITES= http://gstreamer.freedesktop.org/src/gstreamer/ \
${MASTER_SITE_LOCAL}
@ -30,7 +29,8 @@ USE_AUTOTOOLS= libtool:15
CONFIGURE_ARGS= --disable-tests \
--disable-examples \
--disable-docs-build \
--disable-failing-tests
--disable-failing-tests \
--mandir=${PREFIX}/man
CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib" \
ac_cv_func_register_printf_function="no"

View file

@ -1,3 +1,3 @@
MD5 (gstreamer-0.10.10.tar.bz2) = 6875bf0bd3cf38b9ae1362b9e644e6fc
SHA256 (gstreamer-0.10.10.tar.bz2) = d31981baee6a59ea87086f3bec19d2ab3e14f2ea75e47e70e39ca8acf4e87e59
SIZE (gstreamer-0.10.10.tar.bz2) = 1794450
MD5 (gstreamer-0.10.11.tar.bz2) = 67240094e08c845b7bbcfba755c95695
SHA256 (gstreamer-0.10.11.tar.bz2) = d7130fbcbcac945c28402361b60e8d24d97f75d795ba91401617f81e595a7dd5
SIZE (gstreamer-0.10.11.tar.bz2) = 1869307

View file

@ -1,97 +0,0 @@
diff -Nur gst/gst.c gst/gst.c
--- gst/gst.c 2006-09-14 16:02:23.000000000 +0200
+++ gst/gst.c 2006-10-05 21:46:11.000000000 +0200
@@ -683,10 +683,16 @@
{
#ifdef HAVE_FORK
pid_t pid;
+ int pfd[2];
/* We fork here, and let the child read and possibly rebuild the registry.
* After that, the parent will re-read the freshly generated registry. */
GST_DEBUG ("forking");
+
+ if (pipe (pfd) == -1) {
+ return FALSE;
+ }
+
pid = fork ();
if (pid == -1) {
GST_ERROR ("Failed to fork()");
@@ -695,8 +701,11 @@
if (pid == 0) {
gboolean res;
+ gchar res_byte;
- /* this is the child */
+ /* this is the child. Close the read pipe */
+ close (pfd[0]);
+
GST_DEBUG ("child reading registry cache");
res = scan_and_update_registry (default_registry, registry_file, TRUE);
_gst_registry_remove_cache_plugins (default_registry);
@@ -708,38 +717,42 @@
/* make valgrind happy (yes, you can call it insane) */
g_free ((char *) registry_file);
- _exit ((res) ? EXIT_SUCCESS : EXIT_FAILURE);
+ /* write a result byte to the pipe */
+ res_byte = res ? '1' : '0';
+ write (pfd[1], &res_byte, 1);
+ _exit (0);
} else {
- /* parent */
- int status;
- pid_t ret;
+ int ret;
+ gchar res_byte;
+
+ /* parent. Close write pipe */
+ close (pfd[1]);
+
+ /* Wait for result from the pipe */
+ GST_DEBUG ("Waiting for data from child");
+ ret = read (pfd[0], &res_byte, 1);
- GST_DEBUG ("parent waiting on child");
- ret = waitpid (pid, &status, 0);
- GST_DEBUG ("parent done waiting on child");
if (ret == -1) {
- GST_ERROR ("error during waitpid: %s", g_strerror (errno));
+ close (pfd[0]);
return FALSE;
}
+ close (pfd[0]);
- if (!WIFEXITED (status)) {
- if (WIFSIGNALED (status)) {
- GST_ERROR ("child did not exit normally, terminated by signal %d",
- WTERMSIG (status));
- } else {
- GST_ERROR ("child did not exit normally, status: %d", status);
- }
+ /* Wait to ensure the child is reaped, but ignore the result */
+ GST_DEBUG ("parent waiting on child");
+ waitpid (pid, NULL, 0);
+ GST_DEBUG ("parent done waiting on child");
+
+ if (ret == 0) {
+ GST_ERROR ("child did not exit normally, terminated by signal");
return FALSE;
}
- GST_DEBUG ("child exited normally with return value %d",
- WEXITSTATUS (status));
-
- if (WEXITSTATUS (status) == EXIT_SUCCESS) {
- GST_DEBUG ("parent reading registry cache");
+ if (res_byte == '1') {
+ GST_DEBUG ("Child succeeded. Parent reading registry cache");
gst_registry_xml_read_cache (default_registry, registry_file);
} else {
- GST_DEBUG ("parent re-scanning registry");
+ GST_DEBUG ("Child failed. Parent re-scanning registry, ignoring errors.");
scan_and_update_registry (default_registry, registry_file, FALSE);
}
}

View file

@ -29,6 +29,7 @@ include/gstreamer-%%VERSION%%/gst/gstchildproxy.h
include/gstreamer-%%VERSION%%/gst/gstclock.h
include/gstreamer-%%VERSION%%/gst/gstcompat.h
include/gstreamer-%%VERSION%%/gst/gstconfig.h
include/gstreamer-%%VERSION%%/gst/base/gstdataqueue.h
include/gstreamer-%%VERSION%%/gst/gstelement.h
include/gstreamer-%%VERSION%%/gst/gstelementfactory.h
include/gstreamer-%%VERSION%%/gst/gstenumtypes.h