Development/Packaging/Modular X

From Mandriva Community Wiki

Jump to: navigation, search
Modular X (X11R7)

This page is designed to give some details about the efforts being made in Mandriva to convert to a Modular X11 Architecture (aka X11R7)

Contents


[edit] Introduction

With the release of Xorg-6.9.0 came the parallel release of X11R7 aka Modular X.

Modular X is a move towards a more standard filesystem layout (no more /usr/X11R6 uglyness, it now uses /usr like every other app) and a separation of the monolithic Xserver package into many separate packages, comprising (approximately):

  • 37 fonts (including languages such as arabic, cyrilic, etc. and old terminals e.g. ibm, sun, dec)
  • 28 drivers for input devices (including some you've probably never hear of - jamstudio, hyperpen , penmount, tek4957 etc.)
  • 41 video drivers
  • 42 libraries (plus 30 packages for their headers etc. for developpers)
  • The X server itself.
  • The remaing 100 packages are old legacy X11 applications. Most of them are less nowadays (viewres, appres, xmessage, xwd, xwud, xcalc, xclipboard etc) although they still have there uses every now and then!

Although many applications look for libraries in /usr/X11R6/lib[64] by compiling with the flag -L/usr/X11R6/lib, as Modular X uses the standard library path of /usr/lib, most applications will still compile fine without modification (a handy side effect of moving to the standard file layout).

Obviously, there will be several packages/tools which assume/hardcode paths (e.g. /usr/X11R6/bin/xprog) for either their day-to-day operation or building. These packages will need to be detected and fixed accordingly.

[edit] Packaging

As Modular X is now made up of many separate packages, it no longer makes sense to package this in one massive src.rpm. Outlined below is a naming scheme for new src.rpm file that will make up the Modular X package collection.

x11-proto-devel-1.0.0-1mdk.src.rpm All proto header files. They end up in a single binary package because having them in separate packages only adds useless a) packages b) build-dependencies c) dependencies.

x11-server-xorg-1.0.1-1mdk.src.rpm The main Xorg X11 server package

x11-driver-<type>-<name>-x.y.z-1mdk.src.rpm A driver for Modular X. Where type is e.g input, video etc. This closely follows the file naming convention of the tarballs themselves (the xf86-*.tar.bz2 files), although is clearer to the user but specifically saying that they are drivers. The xorg part is left out of these packages as, technically, these drivers should also work with other X11 servers.

x11-font-<fontname>-x.y.z-1mdk.src.rpm A font as used by the X server.

libX<libname>-x.y.z-1mdk.src.rpm A required library for the X system (e.g. libxau, libxv, libice...). -devel packages will also be available.

<appname>-x.y.z-1mdk.src.rpm A package containing a "traditional" X application e.g. xcalc, xdpyinfo, xclock etc.

x11-drivers-1.0.1-1mdk.src.rpm A virtual package that is required by x11-server-xorg. It in turn requires all the individual driver packages. As a policy, we will always install all the drivers on each machine. This does not take up all that much room on a machine and will make life a lot easier for other tools that manage the setup of a an X server (e.g. drakx11/xconf etc.)

x11-apps-1.0.1-1mdk.src.rpm A virtual package that requires all the basic X11 applications (e.g. xcalc, xdpyinfo, xclock etc.). This will also be required by x11-server-xorg and ensures all the usual xorg apps are installed on a system.

x11-fonts-NNNdpi-1.0.1-1mdk.src.rpm (Note: depending on the build process, this may be the actual fonts themselves and the individual packages wont be needed. See below) Another virtual package. This will be required by either x11-server-xorg or by the xfs package? (personally, I think the latter feels correct tho' not really sure). It will in turn require all the individual font packages to ensure all the fonts are installed.

This structure will make it much easier to provide updated drivers for the X system. In addition, with Modular X it will become possible to package extensions such as Xgl with relative ease.

[edit] Old Questions

Fonts - Rather than individual font src.rpms, it may be neater to just have one big one. It depends what's needed to "build" the fonts and whether this will work neatly with multiple source packages. I'm guessing it will end up being neater for maintainers to have the fonts in one package.

X11R6-contrib: keep it as is to make transition a little easier (it survived XFree86->x.org already) or repackage the apps since we're changing everything anyway, so this is a good time to get rid of this package?

Related topics

Personal tools