[PATCH all drivers] config: set more appropriate default drivers location

Dan Nicholson dbn.lists at gmail.com
Wed Mar 24 14:23:24 PDT 2010


On Wed, Mar 24, 2010 at 12:38 PM, Gaetan Nadon <memsize at videotron.ca> wrote:
> On Wed, 2010-03-24 at 11:25 -0700, Dan Nicholson wrote:
>
> On Wed, Mar 24, 2010 at 11:11 AM, Gaetan Nadon <memsize at videotron.ca> wrote:
>> The current value is based on $lib which is based on the driver package
>> $prefix. The driver object code will be installed in the correct xserver
>> location
>> only if both the driver package and the xserver package have the same
>> prefix.
>>
>> This patch obtains the drivers object code location from the installed
>> xserver
>> package through the xorg-server.pc file. The server default location for
>> drivers
>> object code is based on its own $lib but this may have been changed at
>> configuration
>> time (using with-module-dir). In any case, the resulting net location is
>> returned.
>>
>> Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
>> ---
>>  configure.ac |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index c1fae22..c3f33a2 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -55,9 +55,9 @@ AH_TOP([#include "xorg-server.h"])
>>
>>  AC_ARG_WITH(xorg-module-dir,
>>             AC_HELP_STRING([--with-xorg-module-dir=DIR],
>> -                           [Default xorg module directory
>> [[default=$libdir/xorg/modules]]]),
>> +                           [Default xorg module directory
>> [[default=$moduledir/xorg/modules]]]),
>>             [moduledir="$withval"],
>> -            [moduledir="$libdir/xorg/modules"])
>> +            [moduledir=`$PKG_CONFIG --variable=moduledir xorg-server`])
>>
>>  AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
>>                                   [Disable DRI support [[default=auto]]]),
>> --
>> 1.6.0.4
>>
>> My assumption is that the drivers can only be loaded if they are located
>> in the running server xorg/modules/drivers directory that it knows
>> about at configuration time. If that is correct, the only value that
>> with-xorg-module-dir can be given is the value that the server returns
>> through the xorg-server .pc file.
>
> You can set the module path with -modulepath on the command line or
> ModulePath in a Files section in xorg.conf.
>
> I wasn't aware of that. It's an additional workaround for a bad default
> value.
>
> So, you can definitely
> handle drivers that are in a different prefix. More problematic, this
> will break distcheck unless you set it back under $prefix with
> DISTCHECK_CONFIGURE_FLAGS. This is like the chat we had about drivers
> installing headers outside the xorg $includedir (which we might want
> to revisit since it's doing the opposite unnecessarily).
>
> I think this issue with distcheck (which fails for a user without write
> permission in moduledir) is quite
> exaggerated. All instructions I have seen on the net for people installing
> drivers require them to have root password.
> For someone who is creating a tarball to be published to others, it's the
> least to ask. Running this
> target is mandatory, there are other ways of testing.

I would agree that it's a not a very useful feature, but that's what
distcheck does. And we want distcheck to pass so that people rely on
it when they make tarballs. It's like adding code workarounds for
compiler warnings so that the important warnings don't get lost in the
noise.

> In any case, there 5 easy workarounds for distcheck:

Yep, I'm just noting that your patches need to have one because
breaking distcheck is not OK.

> - configure the driver package with moduledir=<some comfy location> and then
> run distcheck.
> - configure the driver package with libdir=<some comfy location> and then
> run distcheck.
> - we add DISTCHECK_CONFIGURE_FLAGS =
> --with-xorg-module-dir='$${libdir}/xorg/modules'.

I'd prefer this since it's the most foolproof.

> - we add DISTCHECK_CONFIGURE_FLAGS = --libdir='$${libdir}/xorg/modules'.
> - run 'make all dist distcheckclean' in a VPATH build which would be the
> exact equivalent of distcheck.
>
> The question remains: would `$PKG_CONFIG --variable=moduledir xorg-server`
> not be a "better" default option?
>
> - The configuration would not fail when different prefixes are used for
> driver and xserver (without config swicth)
> - Thousands of people would no longer be forced to hunt for and supply the
> correct driver location
> - All drivers could be build with no additional configure switches
> - With one workaround above, the few people creating tarball without
> password would not be affected.
>
> Example of instructions found on the net:
>
> ./configure --with-xorg-module-dir=/usr/lib/xorg/modules
>         make && sudo make install

I don't feel that strongly about the value as long as it doesn't break
things. I can see arguments in either direction.

--
Dan


More information about the xorg-devel mailing list