1.8 KiB
X.org
The Nix expressions for the X.org packages reside in
pkgs/servers/x11/xorg/default.nix
. This file is automatically generated from
lists of tarballs in an X.org release. As such it should not be modified
directly; rather, you should modify the lists, the generator script or the
file pkgs/servers/x11/xorg/overrides.nix
, in which you can override or add
to the derivations produced by the generator.
The generator is invoked as follows:
cd pkgs/servers/x11/xorg
cat tarballs-7.4.list extra.list old.list | perl ./generate-expr-from-tarballs.pl
For each of the tarballs in the .list
files, the script downloads it,
unpacks it, and searches its configure.ac
and *.pc.in
files for
dependencies. This information is used to generate default.nix
. The
generator caches downloaded tarballs between runs. Pay close attention to the
NOT FOUND: $NAME
messages at the end of the run, since they may indicate
missing dependencies. (Some might be optional dependencies, however.)
A file like tarballs-7.4.list
contains all tarballs in a X.org release. It
can be generated like this:
export i="mirror://xorg/X11R7.4/src/everything/"
cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) \
| perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' \
| sort > tarballs-7.4.list
extra.list
contains libraries that aren’t part of X.org proper, but are
closely related to it, such as libxcb
. old.list
contains some packages
that were removed from X.org, but are still needed by some people or by other
packages (such as imake
).
If the expression for a package requires derivation attributes that the
generator cannot figure out automatically (say, patches
or a postInstall
hook), you should modify pkgs/servers/x11/xorg/overrides.nix
.