From 8e3c045996ec9cfd6dc5c955ee7127127469a39b Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Feb 29 2008 10:03:26 +0000 Subject: #228383 (multilib), #427962 (assert) --- diff --git a/pulseaudio-0.9.8-ltdl-assert.patch b/pulseaudio-0.9.8-ltdl-assert.patch new file mode 100644 index 0000000..5a23451 --- /dev/null +++ b/pulseaudio-0.9.8-ltdl-assert.patch @@ -0,0 +1,12 @@ +Index: src/daemon/ltdl-bind-now.c +=================================================================== +--- src/daemon/ltdl-bind-now.c (revision 2098) ++++ src/daemon/ltdl-bind-now.c (working copy) +@@ -153,7 +153,6 @@ + } + + void pa_ltdl_done(void) { +- pa_assert_se(lt_dlexit() == 0); + pa_mutex_free(libtool_mutex); + libtool_mutex = NULL; + } diff --git a/pulseaudio-0.9.8-multilib.patch b/pulseaudio-0.9.8-multilib.patch new file mode 100644 index 0000000..e575260 --- /dev/null +++ b/pulseaudio-0.9.8-multilib.patch @@ -0,0 +1,94 @@ +diff -urp pulseaudio-0.9.8.orig/src/daemon/daemon.conf.in pulseaudio-0.9.8/src/daemon/daemon.conf.in +--- pulseaudio-0.9.8.orig/src/daemon/daemon.conf.in 2007-11-21 02:30:42.000000000 +0100 ++++ pulseaudio-0.9.8/src/daemon/daemon.conf.in 2008-02-29 09:04:27.000000000 +0100 +@@ -38,7 +38,7 @@ + ; module-idle-time = 20 + ; scache-idle-time = 20 + +-; dl-search-path = @PA_DLSEARCHPATH@ ++; dl-search-path = (depends on architecture) + + ; default-script-file = @PA_DEFAULT_CONFIG_FILE@ + +diff -urp pulseaudio-0.9.8.orig/src/daemon/default.pa.in pulseaudio-0.9.8/src/daemon/default.pa.in +--- pulseaudio-0.9.8.orig/src/daemon/default.pa.in 2008-02-29 06:40:07.000000000 +0100 ++++ pulseaudio-0.9.8/src/daemon/default.pa.in 2008-02-29 09:04:27.000000000 +0100 +@@ -37,7 +37,7 @@ load-sample-lazy pulse-hotplug /usr/shar + #load-module module-pipe-sink + + ### Automatically load driver modules depending on the hardware available +-.ifexists @PA_DLSEARCHPATH@/module-hal-detect@PA_SOEXT@ ++.ifexists module-hal-detect@PA_SOEXT@ + load-module module-hal-detect + .else + ### Alternatively use the static hardware detection module (for systems that +@@ -79,7 +79,7 @@ load-module module-suspend-on-idle + #load-module module-x11-bell sample=x11-bell + + ### Publish connection data in the X11 root window +-.ifexists @PA_DLSEARCHPATH@/module-x11-publish@PA_SOEXT@ ++.ifexists module-x11-publish@PA_SOEXT@ + load-module module-x11-publish + .endif + +@@ -91,7 +91,7 @@ load-module module-x11-publish + ### Load additional modules from GConf settings. This can be configured with the paprefs tool. + ### Please keep in mind that the modules configured by paprefs might conflict with manually + ### loaded modules. +-.ifexists @PA_DLSEARCHPATH@/module-gconf@PA_SOEXT@ ++.ifexists module-gconf@PA_SOEXT@ + load-module module-gconf + .endif + +diff -urp pulseaudio-0.9.8.orig/src/pulsecore/cli-command.c pulseaudio-0.9.8/src/pulsecore/cli-command.c +--- pulseaudio-0.9.8.orig/src/pulsecore/cli-command.c 2007-11-01 01:32:49.000000000 +0100 ++++ pulseaudio-0.9.8/src/pulsecore/cli-command.c 2008-02-29 09:04:27.000000000 +0100 +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + + #include + +@@ -1314,9 +1315,38 @@ int pa_cli_command_execute_line_stateful + return -1; + } else { + const char *filename = cs+l+strspn(cs+l, whitespace); ++ char *saveptr = NULL; ++ char *paths; ++ char *path; ++ ++ /* Search DL_SEARCH_PATH unless the filename is absolute */ ++ if (filename[0] == '/') { ++ paths = strdup ("/"); ++ } else { ++ paths = strdup (lt_dlgetsearchpath ()); ++ } + +- *ifstate = access(filename, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE; +- pa_log_debug("Checking for existance of '%s': %s", filename, *ifstate == IFSTATE_TRUE ? "success" : "failure"); ++ if (paths == NULL) ++ return -1; ++ ++ for (path = strtok_r (paths, ":", &saveptr); path; path = strtok_r (NULL, ":", &saveptr)) { ++ char *pathname = malloc (strlen(path) + strlen(filename) + 2); ++ if (pathname == NULL) ++ return -1; ++ ++ strcat(pathname, path); ++ strcat(pathname, '/'); /* XXX: Is this OK for Windows? */ ++ strcat(pathname, filename); ++ ++ *ifstate = access(pathname, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE; ++ pa_log_debug("Checking for existance of '%s': %s", pathname, *ifstate == IFSTATE_TRUE ? "success" : "failure"); ++ ++ pa_xfree (pathname); ++ ++ if (*ifstate == IFSTATE_TRUE) ++ break; ++ } ++ pa_xfree (paths); + } + } else { + pa_strbuf_printf(buf, "Invalid meta command: %s\n", cs); diff --git a/pulseaudio.spec b/pulseaudio.spec index c033e44..b7b8a7d 100644 --- a/pulseaudio.spec +++ b/pulseaudio.spec @@ -3,7 +3,7 @@ Name: pulseaudio Summary: Improved Linux sound server Version: 0.9.8 -Release: 7%{?dist} +Release: 8%{?dist} License: GPLv2+ Group: System Environment/Daemons Source0: http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-%{version}.tar.gz @@ -26,6 +26,8 @@ Patch2: pulseaudio-0.9.8-fix-sample-upload.patch Patch3: pulseaudio-0.9.8-unbreak-tunnels.patch Patch4: pulseaudio-0.9.8-create-dot-pulse.patch Patch5: pulseaudio-0.9.8-droproot.patch +Patch6: pulseaudio-0.9.8-multilib.patch +Patch7: pulseaudio-0.9.8-ltdl-assert.patch %description PulseAudio is a sound server for Linux and other Unix like operating @@ -162,10 +164,12 @@ This package contains command line utilities for the PulseAudio sound server. %prep %setup -q -T -b0 -%patch2 -p2 -%patch3 -p1 -%patch4 -p0 -%patch5 -p0 +%patch2 -p2 -b .fix-sample-upload +%patch3 -p1 -b .unbreak-tunnels +%patch4 -p0 -b .create-dot-pulse +%patch5 -p0 -b .droproot +%patch6 -p1 -b .multilib +%patch7 -p0 -b .ltdl-assert %build %configure --disable-ltdl-install --disable-static --disable-rpath --with-system-user=pulse --with-system-group=pulse --with-realtime-group=pulse-rt --with-access-group=pulse-access @@ -181,6 +185,15 @@ rm -rf $RPM_BUILD_ROOT%{_libdir}/*.a chmod 755 $RPM_BUILD_ROOT%{_bindir}/pulseaudio ln -s esdcompat $RPM_BUILD_ROOT%{_bindir}/esd rm $RPM_BUILD_ROOT/%{_libdir}/libpulsecore.so +# preserve time stamps, for multilib's sake +touch -r src/daemon/daemon.conf.in.multilib $RPM_BUILD_ROOT%{_sysconfdir}/pulse/daemon.conf +touch -r src/daemon/default.pa.in.multilib $RPM_BUILD_ROOT%{_sysconfdir}/pulse/default.pa +touch -r src/daemon/PulseAudio.policy $RPM_BUILD_ROOT%{_datadir}/PolicyKit/policy/PulseAudio.policy +touch -r man/pulseaudio.1.xml.in $RPM_BUILD_ROOT%{_mandir}/man1/pulseaudio.1 +touch -r man/default.pa.5.xml.in $RPM_BUILD_ROOT%{_mandir}/man5/default.pa.5 +touch -r man/pulse-client.conf.5.xml.in $RPM_BUILD_ROOT%{_mandir}/man5/pulse-client.conf.5 +touch -r man/pulse-daemon.conf.5.xml.in $RPM_BUILD_ROOT%{_mandir}/man5/pulse-daemon.conf.5 + %clean rm -rf $RPM_BUILD_ROOT @@ -381,6 +394,10 @@ fi %{_mandir}/man1/pax11publish.1.gz %changelog +* Fri Feb 29 2008 Lubomir Kundrak 0.9.8-8 +- Fix multilib issue (#228383) +- Prevent dumping core if exiting sooner that ltdl initializaion (#427962) + * Thu Feb 21 2008 Adam Tkac 0.9.8-7 - really rebuild against new libcap