5ca56d8
Attempt to resolve the multilib conflicts by getting all the config files
5ca56d8
look equally for all plattforms.  This includes getting rid go pathnames
5ca56d8
with libdir; let's make ps search for files with relative paths there.
5ca56d8
5ca56d8
https://bugzilla.redhat.com/show_bug.cgi?id=228383
5ca56d8
Lubomir Kundrak <lkundrak@redhat.com>
5ca56d8
8e3c045
diff -urp pulseaudio-0.9.8.orig/src/daemon/daemon.conf.in pulseaudio-0.9.8/src/daemon/daemon.conf.in
5ca56d8
--- pulseaudio-0.9.8.orig/src/daemon/daemon.conf.in	2008-02-29 12:44:07.000000000 +0100
5ca56d8
+++ pulseaudio-0.9.8/src/daemon/daemon.conf.in	2008-02-29 12:43:27.000000000 +0100
8e3c045
@@ -38,7 +38,7 @@
8e3c045
 ; module-idle-time = 20
8e3c045
 ; scache-idle-time = 20
8e3c045
 
8e3c045
-; dl-search-path = @PA_DLSEARCHPATH@
8e3c045
+; dl-search-path = (depends on architecture)
8e3c045
 
8e3c045
 ; default-script-file = @PA_DEFAULT_CONFIG_FILE@
8e3c045
 
8e3c045
diff -urp pulseaudio-0.9.8.orig/src/daemon/default.pa.in pulseaudio-0.9.8/src/daemon/default.pa.in
5ca56d8
--- pulseaudio-0.9.8.orig/src/daemon/default.pa.in	2008-02-29 12:44:07.000000000 +0100
5ca56d8
+++ pulseaudio-0.9.8/src/daemon/default.pa.in	2008-02-29 12:43:27.000000000 +0100
8e3c045
@@ -37,7 +37,7 @@ load-sample-lazy pulse-hotplug /usr/shar
8e3c045
 #load-module module-pipe-sink
8e3c045
 
8e3c045
 ### Automatically load driver modules depending on the hardware available
8e3c045
-.ifexists @PA_DLSEARCHPATH@/module-hal-detect@PA_SOEXT@
8e3c045
+.ifexists module-hal-detect@PA_SOEXT@
8e3c045
 load-module module-hal-detect
8e3c045
 .else
8e3c045
 ### Alternatively use the static hardware detection module (for systems that
8e3c045
@@ -79,7 +79,7 @@ load-module module-suspend-on-idle
8e3c045
 #load-module module-x11-bell sample=x11-bell
8e3c045
 
8e3c045
 ### Publish connection data in the X11 root window
8e3c045
-.ifexists @PA_DLSEARCHPATH@/module-x11-publish@PA_SOEXT@
8e3c045
+.ifexists module-x11-publish@PA_SOEXT@
8e3c045
 load-module module-x11-publish
8e3c045
 .endif
8e3c045
 
8e3c045
@@ -91,7 +91,7 @@ load-module module-x11-publish
8e3c045
 ### Load additional modules from GConf settings. This can be configured with the paprefs tool.
8e3c045
 ### Please keep in mind that the modules configured by paprefs might conflict with manually
8e3c045
 ### loaded modules.
8e3c045
-.ifexists @PA_DLSEARCHPATH@/module-gconf@PA_SOEXT@
8e3c045
+.ifexists module-gconf@PA_SOEXT@
8e3c045
 load-module module-gconf
8e3c045
 .endif
8e3c045
 
8e3c045
diff -urp pulseaudio-0.9.8.orig/src/pulsecore/cli-command.c pulseaudio-0.9.8/src/pulsecore/cli-command.c
5ca56d8
--- pulseaudio-0.9.8.orig/src/pulsecore/cli-command.c	2008-02-29 12:44:07.000000000 +0100
5ca56d8
+++ pulseaudio-0.9.8/src/pulsecore/cli-command.c	2008-02-29 12:44:48.000000000 +0100
8e3c045
@@ -31,6 +31,7 @@
8e3c045
 #include <stdlib.h>
8e3c045
 #include <errno.h>
8e3c045
 #include <unistd.h>
8e3c045
+#include <ltdl.h>
8e3c045
 
8e3c045
 #include <pulse/xmalloc.h>
8e3c045
 
5ca56d8
@@ -1314,9 +1315,39 @@ int pa_cli_command_execute_line_stateful
8e3c045
                     return -1;
8e3c045
                 } else {
8e3c045
                     const char *filename = cs+l+strspn(cs+l, whitespace);
8e3c045
+                    char *saveptr = NULL; 
8e3c045
+                    char *paths;
8e3c045
+                    char *path;
8e3c045
+
8e3c045
+                    /* Search DL_SEARCH_PATH unless the filename is absolute */
8e3c045
+                    if (filename[0] == '/') {
8e3c045
+                        paths = strdup ("/");
8e3c045
+                    } else {
8e3c045
+                        paths = strdup (lt_dlgetsearchpath ());
8e3c045
+                    }
8e3c045
 
8e3c045
-                    *ifstate = access(filename, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE;
8e3c045
-                    pa_log_debug("Checking for existance of '%s': %s", filename, *ifstate == IFSTATE_TRUE ? "success" : "failure");
8e3c045
+                    if (paths == NULL)
8e3c045
+                        return -1;
8e3c045
+
8e3c045
+                    for (path = strtok_r (paths, ":", &saveptr); path; path = strtok_r (NULL, ":", &saveptr)) {
8e3c045
+                        char *pathname = malloc (strlen(path) + strlen(filename) + 2);
8e3c045
+                        if (pathname == NULL)
8e3c045
+                            return -1;
5ca56d8
+                        pathname[0] = '\0';
8e3c045
+
8e3c045
+                        strcat(pathname, path);
5ca56d8
+                        strcat(pathname, "/"); /* XXX: Is this OK for Windows? */
8e3c045
+                        strcat(pathname, filename);
8e3c045
+
8e3c045
+                        *ifstate = access(pathname, F_OK) == 0 ? IFSTATE_TRUE : IFSTATE_FALSE;
8e3c045
+                        pa_log_debug("Checking for existance of '%s': %s", pathname, *ifstate == IFSTATE_TRUE ? "success" : "failure");
8e3c045
+
8e3c045
+                        pa_xfree (pathname);
8e3c045
+
8e3c045
+                        if (*ifstate == IFSTATE_TRUE)
8e3c045
+                                break;
8e3c045
+                    }     
8e3c045
+                    pa_xfree (paths);
8e3c045
                 }
8e3c045
             } else {
8e3c045
                 pa_strbuf_printf(buf, "Invalid meta command: %s\n", cs);