<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Wed, 2010-03-24 at 11:25 -0700, Dan Nicholson wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
On Wed, Mar 24, 2010 at 11:11 AM, Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt; wrote:
&gt; The current value is based on $lib which is based on the driver package
&gt; $prefix. The driver object code will be installed in the correct xserver location
&gt; only if both the driver package and the xserver package have the same prefix.
&gt;
&gt; This patch obtains the drivers object code location from the installed xserver
&gt; package through the xorg-server.pc file. The server default location for drivers
&gt; object code is based on its own $lib but this may have been changed at configuration
&gt; time (using with-module-dir). In any case, the resulting net location is returned.
&gt;
&gt; Signed-off-by: Gaetan Nadon &lt;<A HREF="mailto:memsize@videotron.ca">memsize@videotron.ca</A>&gt;
&gt; ---
&gt; &nbsp;configure.ac | &nbsp; &nbsp;4 ++--
&gt; &nbsp;1 files changed, 2 insertions(+), 2 deletions(-)
&gt;
&gt; diff --git a/configure.ac b/configure.ac
&gt; index c1fae22..c3f33a2 100644
&gt; --- a/configure.ac
&gt; +++ b/configure.ac
&gt; @@ -55,9 +55,9 @@ AH_TOP([#include &quot;xorg-server.h&quot;])
&gt;
&gt; &nbsp;AC_ARG_WITH(xorg-module-dir,
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AC_HELP_STRING([--with-xorg-module-dir=DIR],
&gt; - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [Default xorg module directory [[default=$libdir/xorg/modules]]]),
&gt; + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [Default xorg module directory [[default=$moduledir/xorg/modules]]]),
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [moduledir=&quot;$withval&quot;],
&gt; - &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[moduledir=&quot;$libdir/xorg/modules&quot;])
&gt; + &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;[moduledir=`$PKG_CONFIG --variable=moduledir xorg-server`])
&gt;
&gt; &nbsp;AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [Disable DRI support [[default=auto]]]),
&gt; --
&gt; 1.6.0.4
&gt;
&gt; My assumption is that the drivers can only be loaded if they are located
&gt; in the running server xorg/modules/drivers directory that it knows
&gt; about at configuration time. If that is correct, the only value that
&gt; with-xorg-module-dir can be given is the value that the server returns
&gt; 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. 
</PRE>
</BLOCKQUOTE>
I wasn't aware of that. It's an additional workaround for a bad default value.
<BLOCKQUOTE TYPE=CITE>
<PRE>
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).
</PRE>
</BLOCKQUOTE>
I think this issue with distcheck (which fails for a user without write permission in moduledir) is quite<BR>
exaggerated. All instructions I have seen on the net for people installing drivers require them to have root password.<BR>
For someone who is creating a tarball to be published to others, it's the least to ask. Running this<BR>
target is mandatory, there are other ways of testing.<BR>
<BR>
In any case, there 5 easy workarounds for distcheck: <BR>
<BLOCKQUOTE>
    - configure the driver package with moduledir=&lt;some comfy location&gt; and then run distcheck. <BR>
    - configure the driver package with libdir=&lt;some comfy location&gt; and then run distcheck. <BR>
    - we add DISTCHECK_CONFIGURE_FLAGS = --with-xorg-module-dir='$${libdir}/xorg/modules'. <BR>
    - we add DISTCHECK_CONFIGURE_FLAGS = --libdir='$${libdir}/xorg/modules'.<BR>
    - run 'make all dist distcheckclean' in a VPATH build which would be the exact equivalent of distcheck.<BR>
</BLOCKQUOTE>
<BR>
The question remains: would `$PKG_CONFIG --variable=moduledir xorg-server` not be a &quot;better&quot; default option?<BR>
<BLOCKQUOTE>
    - The configuration would not fail when different prefixes are used for driver and xserver (without config swicth)<BR>
    - Thousands of people would no longer be forced to hunt for and supply the correct driver location<BR>
    - All drivers could be build with no additional configure switches<BR>
    - With one workaround above, the few people creating tarball without password would not be affected.<BR>
</BLOCKQUOTE>
Example of instructions found on the net:
<BLOCKQUOTE>
<PRE>
./configure --with-xorg-module-dir=/usr/lib/xorg/modules
        make &amp;&amp; sudo make install
</PRE>
</BLOCKQUOTE>
<PRE>
Thanks
</PRE>
<BLOCKQUOTE TYPE=CITE>
<PRE>

&gt; After searching in 2005 archives, I found out some distro did not install
&gt; our .pc files or did not install the pkg-config package. Is it still the case?
&gt; Would all of our build not fail?
&gt; <A HREF="http://lists.x.org/archives/xorg/2006-November/019654.html">http://lists.x.org/archives/xorg/2006-November/019654.html</A>

I doubt it would happen nowadays, but you could easily make it
fallback to $libdir/xorg/modules if nothing came from pkg-config.

--
Dan
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>