Installing/Distributing Binaries After Modular Build

Joseph Parmelee jparmele at
Thu Jan 18 17:27:22 PST 2007

On Thu, 18 Jan 2007, Jeremy C. Reed wrote:

> On Thu, 18 Jan 2007, Barry Scott wrote:
>> Jeremy C. Reed wrote:
>>> On Tue, 16 Jan 2007, George McCollister wrote:
>>>> I'm using to build the modular source tree. The wiki suggests
>>>> setting
>>>> the prefix to /tmp/modular. What did the author intend to be done after
>>>> everything is built? Permanently running X from /tmp/modular doesn't seem
>>>> acceptable.
>>> I think that is just an example. Not a good one.
>>>> If I git the source tree to /home/georgem/X11R7.1 and build
>>>> everything under my user, what is the suggested way of installing
>>>> everything
>>>> as root to a normal location? seems to create tar balls for each
>>>> module, but they only include source. Is there a way to build binary tar
>>>> balls
>>>> (or packages) for each module that can be used to install to a different
>>>> location or used on a different system.
>>> Use DESTDIR for each separate component and then tar up that directory it
>>> creates to make separate tarballs of the binaries.
>> Each component uses the header files from /usr. You cannot, to my knowledge,
>> tell configure where you are staging the kits so that you leave /usr
>> untouched.
>> This means that after building each component you must install it into /usr.
>> You can also use DESTDIR to make a kit for a single component.
> That is right you do need the dependencies installed. I said basically the
> same thing in the email you replied to but you clipped it out.
>> You also have to get Mesa built at exactly the right point in the Xorg build
>> sequence. Mesa depends on Xorg files and Xorg server depends on Mesa.

Many of the build problems people are reporting are probably caused by
unwitting use of incompatible installed components from previous X/MESA
versions.  Finding these can be tricky unless the build is quarantined in a
staging directory.

I have developed a set of shell scripts that build and install the entire
7.1 tree in a staging directory so that it can done on a system without
disturbing an existing X setup, or even on a system with no existing X
setup.  This was done so that we could build installable tarballs of
experimental versions or versions optimized for various different CPU's on a
central development system without trashing its installed X.

I am a bit hesistant to post them because they were written for our internal
use and contain peculiarities of our setup that are probably not generally
applicable.  One of these is that we chose /usr/X11R7 as the install prefix. 
We did this to simplify transition from X11R6 for the many applications that
use X.  In fact we are still running with /usr/X11R7 as a symlink to
/usr/X11R6 without problems.  Other prefixes should work, but ... WMMV.

Another aspect that will displease people is that we do not use GL any
longer; the last time we had it working was with 6.9.0.  So our scripts
install mesa version 6.5 (apparently compatible with X11R7.1) for the server
build, but don't actually finish the process by building mesa.  Someone
needing mesa will need to add a compilation step to build mesa in the
staging directory after the rest of the mess is built.  Getting this to work
may not be altogether straightforward as mesa uses a somewhat different
configuration paradigm.

Moreover, the scripts will probably need to be significantly modified to
account for changes in the 7.2 release when it appears, a process that I am
not looking forward to.

Interested persons should contact me privately and I will send you what we

Joseph Parmelee

More information about the xorg mailing list