diff options
| author | Lennart Poettering <lennart@poettering.net> | 2008-03-27 20:52:59 +0000 | 
|---|---|---|
| committer | Lennart Poettering <lennart@poettering.net> | 2008-03-27 20:52:59 +0000 | 
| commit | a25a459cdf831a961bcbfa99ffa45154cc644e30 (patch) | |
| tree | bccbc4bccb51cd209a30602ceb35d14a92c3e3dd | |
| parent | 7ad0b640aa6f6882e76fb5e5ae790bb47b9a0d98 (diff) | |
Attempt to resolve the multilib conflicts by getting all the config files
look equally for all plattforms.  This includes getting rid go pathnames
with libdir; let's make ps search for files with relative paths there.
https://bugzilla.redhat.com/show_bug.cgi?id=228383
Modified patch, originally from Lubomir Kundrak <lkundrak@redhat.com>
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@2132 fefdeb5f-60dc-0310-8127-8f9354f1896f
| -rw-r--r-- | src/daemon/daemon.conf.in | 2 | ||||
| -rwxr-xr-x | src/daemon/default.pa.in | 6 | ||||
| -rw-r--r-- | src/pulsecore/cli-command.c | 32 | 
3 files changed, 34 insertions, 6 deletions
diff --git a/src/daemon/daemon.conf.in b/src/daemon/daemon.conf.in index d664962e..e4cfb82b 100644 --- a/src/daemon/daemon.conf.in +++ b/src/daemon/daemon.conf.in @@ -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 --git a/src/daemon/default.pa.in b/src/daemon/default.pa.in index 597993c4..56904f56 100755 --- a/src/daemon/default.pa.in +++ b/src/daemon/default.pa.in @@ -37,7 +37,7 @@ load-sample-lazy pulse-hotplug /usr/share/sounds/startup3.wav  #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 --git a/src/pulsecore/cli-command.c b/src/pulsecore/cli-command.c index 3110a271..423c3f2a 100644 --- a/src/pulsecore/cli-command.c +++ b/src/pulsecore/cli-command.c @@ -31,6 +31,7 @@  #include <stdlib.h>  #include <errno.h>  #include <unistd.h> +#include <ltdl.h>  #include <pulse/xmalloc.h> @@ -1315,8 +1316,35 @@ int pa_cli_command_execute_line_stateful(pa_core *c, const char *s, pa_strbuf *b                  } else {                      const char *filename = cs+l+strspn(cs+l, whitespace); -                    *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"); +                    /* Search DL_SEARCH_PATH unless the filename is absolute */ +                    if (filename[0] == PA_PATH_SEP_CHAR) { + +                        *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"); + +                    } else { +                        const char *paths, *state = NULL; +                        char *p; + +                        if (!(paths = lt_dlgetsearchpath())) +                            return -1; + +                        while ((p = pa_split(paths, ":", &state))) { +                            char *pathname; + +                            pathname = pa_sprintf_malloc("%s" PA_PATH_SEP "%s", p, filename); +                            pa_xfree(p); + +                            *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; +                        } +                    } +                  }              } else {                  pa_strbuf_printf(buf, "Invalid meta command: %s\n", cs);  | 
