[Gentoo] Modularizing X, chapter III

Just finished up the fonts. I’m thinking of adding a post-dependency in all of them on alias, to make sure it gets merged last. Hope the package manager can handle it.

Now for the important part: the ebuild layout. Here’s the categories I’m looking at so far, which is mostly a mirror of how upstream breaks it down:

  • x11-apps: The various applications that come along.72 ebuilds.
  • x11-proto: The protocol headers. 30 ebuilds.
  • x11-libs: 41 ebuilds.
  • media-fonts: 35 ebuilds.
  • x11-drivers: Haven’t done this yet, but there are 72 directories upstream.
  • x11-base: The actual X server.
  • app-doc: Old-format docs that haven’t been broken into individual packages yet. Probably just a couple ebuilds.
  • x11-misc: The data module, which contains bitmaps and xkbdata. Also the util module, with imake, etc.

My plan is to have a series of “submetabuilds” that combine into a “supermetabuild,” which will be the actual xorg-x11 ebuild. There will be one submetabuild for each major component: apps, drivers, libraries, etc. This will allow me to split USE flags out a bit (so e.g., x11-fonts would have 100dpi, 75dpi, truetype as flags) as well as allow people who only want e.g. libraries for a headless server to get them cleanly.

I’d enjoy hearing thoughts on this.

[Gentoo] Modularizing X ebuilds

Tonight I started work on the modular X ebuilds for 7.0. It went reasonably quickly after I wrote a script to autogenerate tarballs and ebuilds, then install them. I’m still fixing up their dependencies manually, however, so that’s a bit of a slowdown. I made 71 packages — all of the protocol headers and libraries — out of roughly 230 available and autotooled in Xorg CVS.

The main weirdness was module-name overlap between proto/X11 and lib/X11, so I switched the proto one’s name to xproto. I wonder why it isn’t called that in CVS.