Archive:Xorg/Modularization

Roadmap/timeline information
Modular X.Org X11R7 was released into Fedora development (rawhide) on November 16, 2005.

Modular X rpm downloads for FC5
In between daily rawhide pushes, I will be uploading new modular X packages created during the day to my personal Red Hat FTP space, which currently is not yum enabled, however will be sometime in the future when I rewrite the shell script I use to copy the files over. My download area for rawhide test packages is located at:

ftp://people.redhat.com/mharris/testing/unstable

The following text files list a 'group' of packages that must be built in-order within that group. Build and install the first group, then build and install the second group, etc. If you're using mock, pass the packages to it in the following order:


 * xorg-all-bootstrap.txt
 * xorg-all-libs.txt
 * xorg-all-apps.txt
 * xorg-all-drivers.txt

Modularization Schedule
The following components are packaged, and in reasonably complete or near-complete state - at least for initial experimental testing by anyone internally who has enough interest to guinea-pig test it on their systems. There are quite a few more packages not listed here which are works in progress, and not quite ready for wider distribution.

Status legend:

NOTYET	- Not yet started

STARTED	- Initial work has begun, but packages aren't avail yet.

WIP	- Work In Progress: Packages exist but contain known flaws.

DONE	- Considered complete and ready enough for rawhide

fc5 field indicates wether package is built in dist-fc5-test yet or not

Various other applications, utilities, etc. are works in progress, which will soon be added to the "ready for testing" list above.

Once we have implemented all of the proposed packages and got them to a reasonable state, we will be entering the next phase of modularization implementation, and scouring Fedora devel SRPMS and RPMS to detect dependency breakages and things that need to change in order to work properly with X.Org X11R7.

Impact of modularization on developers and package maintainers
Here is a short list of some of the more developer/package visible changes that are present in X11R7:


 * The entire buildsystem has changed from "Imake" to the GNU autotools collection.


 * All of the libraries now install pkgconfig *.pc files, which should now always be used by software that depends on these libraries, instead of hard coding paths to them in /usr/X11R6/lib or elsewhere.


 * Everything is now installed directly into /usr instead of /usr/X11R6. All software which hard codes paths to anything in /usr/X11R6, must now be changed preferably to dynamically detect the proper location of the object, or to hard code the new paths that X11R7 uses by default. It is strongly advised to use autodetection methods than to hard code paths.


 * Every library is in its own private src.rpm now, which creates a runtime binary subpackage, and a -devel subpackage. Any software package that previously picked up the development headers, etc. for X libraries by using "BuildRequires: (XFree86-devel|xorg-x11-devel)", must now individually list each library dependency individually. When doing this, it is greatly preferred and strongly recommended to use "virtual" build dependencies instead of hard coding the library rpm package names of the xorg implementation. This means you should use: "BuildRequires: libXft-devel" instead of using: "BuildRequires: xorg-x11-Xft-devel". If your software truly does depend on the X.Org X11 implementation of a specific library, and there is no other clean/safe way to state the dependency, then go ahead and use the "xorg-x11--devel" form. By sticking to the virtual provides/requires mechanism, this makes it painless if and when the libraries move to another location in the future.

Feel free to examine the spec files and critique them or make suggestions for improvements, etc. Any automated test build results you feel like trying, by all means go ahead. Also, if anyone feels like helping out, it would be very helpful if someone would examine FC5 rpms to see what deps need to be fixed/changed in them, and get started on it. That will ease integration in a few weeks.

Mike Harris will try to update the original page as work progresses, and make it a bit more organized and useful. Again, your suggestions are appreciated.