"Monolithic" vs. "modular" build / was: Re: [Xorg] DocBook SGML/XML manual pages...

Roland Mainz roland.mainz at nrubsig.org
Wed May 5 16:56:54 PDT 2004


Keith Packard wrote:
> > Erm... when was the decision made to introduce "autotool" stuff into the
> > X.org tree (which implies SERIOUS legal questions when the Xorg tree
> > starts to depend on non-X.org/MIT-licensed stuff) ?
> 
> I guess I don't understand the problem here -- the tree won't contain any
> non-MIT licensed material, and when ready for distribution won't require
> any GPL licensed utilities to build.  Yes, if you want to build from CVS,
> you'll have to get automake, autoconf and libtool installed, or build
> compatible systems.

What if someone wants to build an OS which is completely free of GPL
stuff ? Right now it's possible (and mandatory for some commercial
vendors) ... but after the modularisation it will be unavoidable to use
GPL-licensed tools to build the tree. That's not a problem for
OpenSource OSes like Linux... but what about the commercial vendors ?

> Note that the libtool script includes an exception clause which permits
> distribution under any license at all when used with autoconf.
> 
> Our alternatives are not good -- imake is not up to the task of producing
> a modular build without a whole lot of hacking, and I (for one) would
> really rather see people hacking X code rather than fixing up yet another
> build system.

I am not sure whether a "modular build" is something Xorg really wants.
Other projects tried to split itself into "modules" and FAILED HORRIBLY
with that (even mozilla.org tries to avoid adding such complex
dependicies - right now all products (Mozilla/Seamonkey, FireFox,
ThunderBird, SunBird, etc.) are build from ONE tree, even NSPR (Netscape
Portable Runtime library), libPNG, libJPEG, etc are part of the tree).
The release management and syncronisation between the single parts will
be much more difficult and you have to deal with the interactions
between the modules. Did anyone actually thought about the consequences
of introducing a "modular" build ? And a modular build will requires a
very well working project management (and I think Xorg is currently
still far away from having a similar good communication tools as
Mozilla.org had during the Netscape times) ... and if different people
owning different modules disagree with some decisions all hell will
break loose.
For example: What will happen when the module for X11 includes was build
without Xrender support and someone wants to build a Xserver binary with
Xrender enabled ? This won't work with the modular design.

Right now the "monolithic" build as one serious advantage: ONE build,
ONE test whether everything compiles and works, ONE distribution.
Splitting that into pieces will result in a maintaince nightmare - and
many many hours of engineering time will be spend to deal with fixing
the problem.
Maybe... in one year after the switch to the "modular" build many people
will BEG to get the monolithic tree back. It's much easier to syncronize
the single parts and test them together than having 20 or more pieces.
The Xorg tree was build and tested within the last twenty years and it
was working well - do you think that undoing these twenty years of
experience is wise ?

> Autotools have the significant advantage of generating widely portable
> configuration scripts which don't depend on any tools which are not part of
> a standard POSIX system, that seems as license neutral as we can get.

Autotools have the disadvantage of being a PAIN if you have many build
options. And right now the Xorg tree has a few hundred build options.
How do you want to deal with that ? Pass everything as arguments to
"configure" or what ? The Mozilla "configure" script does that... which
results very often in broken builds or confusion about which "configure"
options were used. And the people who are qualified to build Mozilla
dropped significantly... it's now something like "black magic" to get a
working Mozilla binary without shooting yourself into the feet with the
wrong "configure" options. All these "issues" thanks to the "superiour"
autotools stuff... fun... ;-(((((

> Egbert has asked that I not push to remove the imake-based build system
> any time soon, so if you really want to, you can continue building the
> system with that.  But, don't expect my sympathy when it's broken...

I know that... you're known for not careing when you break something
which is not your pet project... =:-))))))))

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 2426 901568 FAX +49 2426 901569
 (;O/ \/ \O;)




More information about the xorg mailing list