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
This commit is contained in:
Lennart Poettering 2008-03-27 20:52:59 +00:00
parent 7ad0b640aa
commit a25a459cdf
3 changed files with 34 additions and 6 deletions

View file

@ -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@

View file

@ -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

View file

@ -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);