Commit 95f01bdf authored by Dan Nicholson's avatar Dan Nicholson Committed by Peter Hutterer

xfree86: Search for a system xorg.conf.d

In addition to the conf files found in /etc/X11 or $sysconfdir/X11 used
for local administration, we also reserve a system directory for vendor
and package usage. The simple search path is:

	/usr/share/X11/xorg.conf.d
	$datadir/X11/xorg.conf.d

Files from these directories will have the lowest config priority. The
directory $datadir/X11/xorg.conf.d is exported from xorg-server.pc in
the variable "sysconfigdir". Packages should install their .conf files
to the directory specified by:

	`pkg-config --variable=sysconfigdir xorg-server`
Signed-off-by: Dan Nicholson's avatarDan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer's avatarPeter Hutterer <peter.hutterer@who-t.net>
parent a1bae63d
......@@ -1792,8 +1792,10 @@ if test "x$XORG" = xyes; then
AC_SUBST([driverdir])
sdkdir="$includedir/xorg"
extdir="$includedir/X11/extensions"
sysconfigdir="$datadir/X11/$XF86CONFIGDIR"
AC_SUBST([sdkdir])
AC_SUBST([extdir])
AC_SUBST([sysconfigdir])
AC_SUBST([logdir])
# stuff the ABI versions into the pc file too
......
......@@ -104,6 +104,9 @@ extern DeviceAssocRec mouse_assoc;
#define USER_CONFIGDIRPATH "/etc/X11/%R," "%C/X11/%R," \
"/etc/X11/%X," "%C/X11/%X"
#endif
#ifndef SYS_CONFIGDIRPATH
#define SYS_CONFIGDIRPATH "/usr/share/X11/%X," "%D/X11/%X"
#endif
#ifndef PROJECTROOT
#define PROJECTROOT "/usr/X11R6"
#endif
......@@ -2421,7 +2424,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;
......@@ -2444,6 +2447,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) {
......@@ -2464,7 +2469,10 @@ xf86HandleConfigFile(Bool autoconfig)
"Unable to locate/open config directory: \"%s\"\n",
xf86ConfigDir);
}
if (!filename && !dirname)
if (sysdirname)
xf86MsgVerb(X_DEFAULT, 0, "Using system config directory \"%s\"\n",
sysdirname);
if (!filename && !dirname && !sysdirname)
return CONFIG_NOFILE;
}
......
......@@ -138,6 +138,18 @@ is the path specified with the
.B \-configdir
command line option (which may be absolute or relative).
.PP
Finally, configuration files will also be searched for in directories
reserved for system use. These are to separate configuration files from
the vendor or 3rd party packages from those of local administration.
These files are found in the following directories:
.PP
.RS 4
.nf
.I /usr/share/X11/__xconfigdir__
.I __datadir__/X11/__xconfigdir__
.fi
.RE
.PP
The
.I __xconfigfile__
and
......
......@@ -2,8 +2,10 @@ prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
datarootdir=@datarootdir@
moduledir=@moduledir@
sdkdir=@sdkdir@
sysconfigdir=@sysconfigdir@
abi_ansic=@abi_ansic@
abi_videodrv=@abi_videodrv@
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment