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

Gaetan Nadon memsize at videotron.ca
Wed Mar 24 12:38:05 PDT 2010

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]]]),
> > --
> >
> >
> > 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

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

In any case, there 5 easy workarounds for distcheck: 

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


> > After searching in 2005 archives, I found out some distro did not install
> > our .pc files or did not install the pkg-config package. Is it still the case?
> > Would all of our build not fail?
> > http://lists.x.org/archives/xorg/2006-November/019654.html
> I doubt it would happen nowadays, but you could easily make it
> fallback to $libdir/xorg/modules if nothing came from pkg-config.
> --
> Dan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100324/7b30d12f/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20100324/7b30d12f/attachment.pgp>

More information about the xorg-devel mailing list