[ANNOUNCE] xorg-server 1.8.0

Dan Nicholson dbn.lists at gmail.com
Fri Apr 2 14:10:47 PDT 2010


On Fri, Apr 02, 2010 at 01:20:26PM -0700, Keith Packard wrote:
> On Fri, 2 Apr 2010 21:01:30 +0200, Julien Cristau <jcristau at debian.org> wrote:
> 
> > And I'll be using /usr/lib/X11/xorg.conf.d/ because using /etc for the
> > default "make my xserver work" snippets just seems wrong (and /usr
> > allows me to make sure they're in sync with the packages, not conflated
> > with configuration which is the admin's domain).
> 
> Yeah, that's why I picked the 'secondary' path supported by the server
> so that a directory in /etc/X11 would completely override these files.
> 
> Sounds like we need to fix the server config file search path to look in
> a sensible place rather than $(prefix)/etc/X11

This is untested, but I think the patch below is all it would take to
add support for a second "system" directory in $prefix/lib/X11 with
lowest priority.

--
Dan

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 718a078..06a3fa0 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -112,6 +112,10 @@ extern DeviceAssocRec mouse_assoc;
 				"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
 				"%P/lib/X11/%X"
 #endif
+#ifndef SYS_CONFIGDIRPATH
+#define SYS_CONFIGDIRPATH	"%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
+				"%P/lib/X11/%X"
+#endif
 #ifndef PROJECTROOT
 #define PROJECTROOT	"/usr/X11R6"
 #endif
@@ -2429,7 +2433,7 @@ checkInput(serverLayoutPtr layout, Bool implicit_layout) {
 ConfigStatus
 xf86HandleConfigFile(Bool autoconfig)
 {
-    const char *filename, *dirname;
+    const char *filename, *dirname, *sysdirname;
     char *filesearch, *dirsearch;
     MessageType filefrom = X_DEFAULT;
     MessageType dirfrom = X_DEFAULT;
@@ -2452,6 +2456,8 @@ xf86HandleConfigFile(Bool autoconfig)
 	    dirfrom = X_CMDLINE;
 
 	xf86initConfigFiles();
+	sysdirname = xf86openConfigDirFiles(SYS_CONFIGDIRPATH, NULL,
+					    PROJECTROOT);
 	dirname = xf86openConfigDirFiles(dirsearch, xf86ConfigDir, PROJECTROOT);
 	filename = xf86openConfigFile(filesearch, xf86ConfigFile, PROJECTROOT);
 	if (filename) {
@@ -2472,6 +2478,9 @@ xf86HandleConfigFile(Bool autoconfig)
 			"Unable to locate/open config directory: \"%s\"\n",
 			xf86ConfigDir);
 	}
+	if (sysdirname)
+	    xf86MsgVerb(X_DEFAULT, 0, "Using system config directory: \"%s\"\n",
+			sysdirname);
 	if (!filename && !dirname)
 	    return CONFIG_NOFILE;
     }




More information about the xorg mailing list