Depending on external libraries

Kendall Bennett release-wranglers@freedesktop.org
Thu Mar 11 18:36:14 PST 2004


Egbert Eich <eich@pdx.freedeskop.org> wrote:

> That's what I call 'external dependencies'.
> Freetype: probably available on many systems nowdays.
>           It was however required to build the Xserver module
> 	  and still is if you don't want to build an .so module.
> 	  Freetype is explicitely desinged to be included 
> 	  in projects and reconfigured for their purposes.
> libxml: is gone. I've just deleted the last remains.
> Expat: convenience.
> zlib: can probably go. available almost everywhere today. convenience.
> Mesa: The DRI client libs still have some strong dependencies into Mesa.
>       I don't know when this is going to change. As soon as it does we
>       can make it optional.

I don't think you can remove Mesa from the core X server source code. In 
fact I would argue that Mesa and DRI should in fact be merged *into* the 
core X server source code tree (as in CVS tree - it can still be built 
modularly). The 3D code in X is broken up into two pieces. One piece is 
the client side GLX libraries and the other piece is the back end 3D 
rendering drivers. The back end code is tightly integrated with the 2D 
display driver modules (as it should be), so it is important that both of 
those modules are shipped and built together.

IMHO the primary reason why DRI exists in a separate place today is 
because the DRI developers didn't get the access to the XFree86 tree that 
they needed. Perhaps now is the time to merge the projects into one CVS 
location.

BTW, the other reason why I think it is important to at least provide the 
ability for externally dependent libs to be included in an official 
tarball, is for minimal platform support such as industrial and embedded 
platforms. There is nothing to stop X working on industrial and embedded 
platforms, but I would hate for those developers to have to require an 
entire *nix install just to be able to build the X server they want.

Perhaps part of the solution would be to build a system such that 
externally dependant libraries are developed and maintained elsewhere, 
yet when a tarball source release is done for the X server, the sources 
necessary for the dependent libs can be pulled down via CVS from external 
sources? If there is a proper versioning system implemented so that the 
tarball build process knows exactly what CVS 'tag' is required for this 
server release to bring down the libs.

Then you can provide a clean build environment for casual developers who 
just grab the tarball, and require developers using CVS to use jhbuild or 
whatever to grab and build the appropriate pieces (ie: core developers 
and distro vendors etc).

Regards,

---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com

~ SciTech SNAP - The future of device driver technology! ~





More information about the release-wranglers mailing list