Archive:Xorg/Modularization

From FedoraProject

Jump to: navigation, search
Important.png
This page is outdated and is only retained for historical reference
All the Xorg moduralization development work has already been merged into Fedora.


Contents

X.Org X11R7 Modularization Status

Stop (medium size).png
Note
Please consult the original document for this page for updates and status changes at http://mharris.ca/xorg/xorg-modularization-status.html (Last updated: Nov 21, 2005 @ 2:35pm EST by Mike A. Harris), Notify BobJensen if you notice that this page is out of sync with the original.

Roadmap/timeline information

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

Modular X rpm downloads for FC5

These packages are a work in progress, and still fairly experimental. They are provided only for the purpose of testing the rpm packaging, and rpm upgrade scripts, etc. and are not intended for general purpose use at this point in time. Nonetheless, developers in the Fedora community are encouraged to hop into #fedora-devel on irc.freenode.net, install these packages and discuss any problems they encounter on IRC.

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:

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

Status FC5 SRPM Details
DONE Yes xorg-x11-util-macros Released into Fedora devel. Contains autoconf macros for X.Org versioning. Everything depends on this, so this is the first package to build.
DONE Yes xorg-x11-proto-devel Released into Fedora devel. Contains all of the X protocol headers. Required for building libs, server, and various other things.
DONE Yes xorg-x11-xtrans-devel Released into Fedora devel. X Transport C source. Required for building anything that uses Xtrans
DONE Yes lib* All X Libraries. Released into Fedora devel. libX11 has some compiler warnings to investigate (#172055 ). libXdamage - has compiler warnings needing investigation/fixing. libXfont - spews a lot of compiler warnings, which should be investigated and fixed for X11'R7. Bug #172055 libxkbfile - Worked around compiler warning with -fno-strict-aliasing, but this should get fixed correctly upstream.
DONE Yes mesa Released into Fedora devel. mesa contains 7 subpackages, including: mesa-libGL, mesa-libGL-devel, mesa-libGLU, mesa-libGLU-devel, mesa-libGLw, mesa-libGLw-devel, and mesa-source, which is used by the X server build. The DRI 3D driver modules are part of the "libGL" package, and now install into "%{_libdir}/dri". This one is considered "DONE" now so please report any problems to us.
DONE Yes xorg-x11-server Released into Fedora devel. All of the X servers (Xorg, Xnest, Xvfb, Xdmx) are all built from this new src.rpm now. The Xorg server driver modules are now built in their own separate src.rpms. The X server packaging and configuration requires additional work, and needs to be tested in a variety of ways before being considered "ready" as a full replacement for 6.8.2.
DONE Yes xorg-x11-drv-<name> Released into Fedora devel. Every driver is in its own src.rpm, which builds against the xorg-x11-server-sdk package now. By default, the driver src.rpm packages only build on the architectures we build a native X server for (x86, x86_64, ia64, ppc), and individual drivers only build on architectures they are appropriate for.
DONE Yes xorg-x11-font-utils Released into Fedora devel. Replaces package of same name from modular tree, and includes all of the same functionality. Packages should not depend on this package, but instead use one or more of the virtual Provides that it provides for mkfontdir, mkfontscale, bdftopcf, ucs2any, bdftruncate.
DONE Yes xorg-x11-fonts xorg-x11)-*fonts packages from previous OS releases. There are 18 subpackages now, which mostly correspond to previous packaging. The "base" fonts subpackage now contains only the 'fixed' and 'cursor' fonts that are required for the X server to start. The other 'misc' fonts that used to be in 'base', are now in the 'misc' subpackage. The ISO8859-1 fonts are now split out from the UCS masters into a separate subpackage for consistency. The fonts are currently installed into /usr/share/X11/fonts, as we don't want most of the ugly bitmap fonts being seen by fontconfig. This may or may not change for FC5 final release.
DONE Yes xorg-x11-xfs Released into Fedora devel. Updated to work with the modular fonts packages. Massages the xfs config on upgrades now to use the new font paths. The rpm script logic is completely rewritten to use modern "sed -i" syntax, and remove a lot of hideous scripting. There may be bugs however, but now is the time to make such changes and find out, by getting hundreds of unsuspecting victims to test it! ;o)
DONE Yes xorg-x11-twm Released into Fedora devel.
DONE Yes xorg-x11-xdm Released into Fedora devel. CAVEATS: Puts scripts called by xdm-config in /usr/lib/X11/xdm. Configs/scripts don't have Red Hat modifications applied to them yet. Need to import configs etc. from xinitrc package. *** NOTE: File a bug report upstream about xdm installing the manpages in the wrong location.
DONE Yes xorg-x11-xauth Released into Fedora devel.
DONE Yes xorg-x11-xinit Released into Fedora devel. This obsoletes the "xinitrc" package. It is also X11'R6 referenceless.
DONE Yes xorg-x11-xkb-utils Released into Fedora devel.
DONE Yes xorg-x11-xkbdata Released into Fedora devel.
DONE Yes xorg-x11-xbitmaps Released into Fedora devel.
DONE Yes xorg-x11-xsm Released into Fedora devel.
DONE Yes xorg-x11-utils Released into Fedora devel.
DONE Yes xorg-x11-server-utils Released into Fedora devel.
DONE Yes xorg-x11-resutils Released into Fedora devel.
DONE Yes xorg-x11-apps Released into Fedora devel.
DONE Yes xorg-x11-xfwp Released into Fedora devel.
DONE Yes imake Released into Fedora devel. imake, xmkmf, makedepend, and the imake config files.
DONE Yes xorg-x11-filesystem Released into Fedora devel. NOTE: This package is required when upgrading from FC4 to rawhide or FC5 final via anaconda or yum as one atomic upgrade. It attempts to workaround a very nasty problem described in bug #173384
NOTYET No Fedora Extras Stuff Stuff we're making available to the Fedora community to have the opportunity to maintain in Fedora Extras. Initial rpm packages will be produced and made available to interested parties in the future.

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.

Stop (medium size).png
Note
Please notify BobJensen if you notice that this page is out of sync with the original.