Add coq-8.3rc1
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blobff6959e4b799b2cb4dfea50cecc38be64b2d65b5
1 /* This file composes the Nix Packages collection.  That is, it
2    imports the functions that build the various packages, and calls
3    them with appropriate arguments.  The result is a set of all the
4    packages in the Nix Packages collection for some particular
5    platform. */
8 { # The system (e.g., `i686-linux') for which to build the packages.
9   system ? builtins.currentSystem
11   # Usually, the system type uniquely determines the stdenv and thus
12   # how to build the packages.  But on some platforms we have
13   # different stdenvs, leading to different ways to build the
14   # packages.  For instance, on Windows we support both Cygwin and
15   # Mingw builds.  In both cases, `system' is `i686-cygwin'.  The
16   # attribute `stdenvType' is used to select the specific kind of
17   # stdenv to use, e.g., `i686-mingw'.
18 , stdenvType ? system
20 , # The standard environment to use.  Only used for bootstrapping.  If
21   # null, the default standard environment is used.
22   bootStdenv ? null
24   # More flags for the bootstrapping of stdenv.
25 , noSysDirs ? true
26 , gccWithCC ? true
27 , gccWithProfiling ? true
29 , # Allow a configuration attribute set to be passed in as an
30   # argument.  Otherwise, it's read from $NIXPKGS_CONFIG or
31   # ~/.nixpkgs/config.nix.
32   config ? null
34 , crossSystem ? null
35 , platform ? (import ./platforms.nix).pc
39 let config_ = config; in # rename the function argument
41 let
43   lib = import ../lib;
45   # The contents of the configuration file found at $NIXPKGS_CONFIG or
46   # $HOME/.nixpkgs/config.nix.
47   # for NIXOS (nixos-rebuild): use nixpkgs.config option
48   config =
49     let
50       toPath = builtins.toPath;
51       getEnv = x: if builtins ? getEnv then builtins.getEnv x else "";
52       pathExists = name:
53         builtins ? pathExists && builtins.pathExists (toPath name);
55       configFile = getEnv "NIXPKGS_CONFIG";
56       homeDir = getEnv "HOME";
57       configFile2 = homeDir + "/.nixpkgs/config.nix";
59       configExpr =
60         if config_ != null then config_
61         else if configFile != "" && pathExists configFile then import (toPath configFile)
62         else if homeDir != "" && pathExists configFile2 then import (toPath configFile2)
63         else {};
65     in
66       # allow both:
67       # { /* the config */ } and
68       # { pkgs, ... } : { /* the config */ }
69       if builtins.isFunction configExpr
70         then configExpr { inherit pkgs; }
71         else configExpr;
73   # Return an attribute from the Nixpkgs configuration file, or
74   # a default value if the attribute doesn't exist.
75   getConfig = attrPath: default: lib.attrByPath attrPath default config;
78   # Helper functions that are exported through `pkgs'.
79   helperFunctions =
80     stdenvAdapters //
81     (import ../build-support/trivial-builders.nix { inherit (pkgs) stdenv; inherit (pkgs.xorg) lndir; });
83   stdenvAdapters =
84     import ../stdenv/adapters.nix { inherit (pkgs) dietlibc fetchurl runCommand; };
87   # Allow packages to be overriden globally via the `packageOverrides'
88   # configuration option, which must be a function that takes `pkgs'
89   # as an argument and returns a set of new or overriden packages.
90   # The `packageOverrides' function is called with the *original*
91   # (un-overriden) set of packages, allowing packageOverrides
92   # attributes to refer to the original attributes (e.g. "foo =
93   # ... pkgs.foo ...").
94   pkgs = applyGlobalOverrides (getConfig ["packageOverrides"] (pkgs: {}));
97   # Return the complete set of packages, after applying the overrides
98   # returned by the `overrider' function (see above).
99   applyGlobalOverrides = overrider:
100     let
101       # Call the overrider function.  We don't want stdenv overrides
102       # in the case of cross-building, or otherwise the basic
103       # overrided packages will not be built with the crossStdenv
104       # adapter.
105       overrides = overrider pkgsOrig //
106         (lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) pkgsOrig.stdenv.overrides);
108       # The un-overriden packages, passed to `overrider'.
109       pkgsOrig = pkgsFun pkgs {}; 
111       # The overriden, final packages.
112       pkgs = pkgsFun pkgs overrides; 
113     in pkgs;
116   # The package compositions.  Yes, this isn't properly indented.
117   pkgsFun = pkgs: __overrides:
118     with helperFunctions;
119     let defaultScope = pkgs // pkgs.xorg; in
120     helperFunctions // rec {
122   # `__overrides' is a magic attribute that causes the attributes in
123   # its value to be added to the surrounding `rec'.  We'll remove this
124   # eventually.
125   inherit __overrides;
128   # We use `callPackage' to be able to omit function arguments that
129   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
130   # Use `newScope' for sets of packages in `pkgs' (see e.g. `gtkLibs'
131   # below).
132   callPackage = newScope {};
134   newScope = extra: lib.callPackageWith (defaultScope // extra);
136   
137   # Override system. This is useful to build i686 packages on x86_64-linux.
138   forceSystem = system: (import ./all-packages.nix) {
139     inherit system;
140     inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
141   };
143   
144   # Used by wine, firefox with debugging version of Flash, ...
145   pkgsi686Linux = forceSystem "i686-linux";
147   callPackage_i686 = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg);
150   # For convenience, allow callers to get the path to Nixpkgs.
151   path = ../..;
154   ### Symbolic names.
157   x11 = xlibsWrapper;
159   # `xlibs' is the set of X library components.  This used to be the
160   # old modular X libraries project (called `xlibs') but now it's just
161   # the set of packages in the modular X.org tree (which also includes
162   # non-library components like the server, drivers, fonts, etc.).
163   xlibs = xorg // {xlibs = xlibsWrapper;};
166   ### Helper functions.
169   inherit lib config getConfig stdenvAdapters;
171   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
173   # Applying this to an attribute set will cause nix-env to look
174   # inside the set for derivations.
175   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
177   # Return the first available value in the order: pkg.val, val, or default.
178   getPkgConfig = pkg : val : default : (getConfig [ pkg val ] (getConfig [ val ] default));
180   builderDefs = lib.composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
181     inherit stringsWithDeps lib stdenv writeScript
182       fetchurl fetchmtn fetchgit;
183   };
185   builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
187   stringsWithDeps = lib.stringsWithDeps;
190   ### STANDARD ENVIRONMENT
193   allStdenvs = import ../stdenv {
194     inherit system stdenvType;
195     allPackages = args: import ./all-packages.nix ({ inherit config; } // args);
196   };
198   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
200   stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
201     gccCrossStageFinal;
203   stdenv =
204     if bootStdenv != null then bootStdenv else
205       let changer = getConfig ["replaceStdenv"] null;
206       in if changer != null then
207         changer {
208           stdenv = stdenvCross;
209           overrideSetup = overrideSetup;
210         }
211       else if crossSystem != null then
212         stdenvCross
213       else
214         defaultStdenv;
216   forceBuildDrv = drv : if (crossSystem == null) then drv else
217     (drv // { hostDrv = drv.buildDrv; });
219   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
220   # it uses GCC compiled with multilib support; on i686-linux, it's
221   # just the plain stdenv.
222   stdenv_32bit =
223     if system == "x86_64-linux" then
224       overrideGCC stdenv gcc43_multi
225     else
226       stdenv;
229   ### BUILD SUPPORT
231   attrSetToDir = arg : import ../build-support/upstream-updater/attrset-to-dir.nix {
232     inherit writeTextFile stdenv lib;
233     theAttrSet = arg;
234   };
236   buildEnvScript = ../build-support/buildenv/builder.pl;
237   buildEnv = import ../build-support/buildenv {
238     inherit stdenv perl;
239   };
241   dotnetenv = import ../build-support/dotnetenv {
242     inherit stdenv;
243     dotnetfx = dotnetfx35;
244   };
246   vsenv = callPackage ../build-support/vsenv {
247     vs = vs90wrapper;
248   };
250   fetchbzr = import ../build-support/fetchbzr {
251     inherit stdenv bazaar;
252   };
254   fetchcvs = import ../build-support/fetchcvs {
255     inherit stdenv cvs;
256   };
258   fetchdarcs = import ../build-support/fetchdarcs {
259     inherit stdenv darcs nix;
260   };
262   fetchgit = import ../build-support/fetchgit {
263     inherit stdenv git;
264   };
266   fetchmtn = import ../build-support/fetchmtn {
267     inherit monotone stdenv;
268     cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
269     defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
270   };
272   fetchsvn = import ../build-support/fetchsvn {
273     inherit stdenv subversion openssh;
274     sshSupport = true;
275   };
277   fetchsvnssh = import ../build-support/fetchsvnssh {
278     inherit stdenv subversion openssh expect;
279     sshSupport = true;
280   };
282   fetchhg = import ../build-support/fetchhg {
283     inherit stdenv mercurial nix;
284   };
286   # `fetchurl' downloads a file from the network.
287   fetchurl = import ../build-support/fetchurl {
288     inherit curl stdenv;
289   };
291   # fetchurlBoot is used for curl and its dependencies in order to
292   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
293   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
294   # uses the curl from the previous bootstrap phase (e.g. a statically
295   # linked curl in the case of stdenv-linux).
296   fetchurlBoot = stdenv.fetchurlBoot;
298   resolveMirrorURLs = {url}: fetchurl {
299     showURLs = true;
300     inherit url;
301   };
303   makeDesktopItem = import ../build-support/make-desktopitem {
304     inherit stdenv;
305   };
307   makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
308     inherit stdenv perl cpio contents ubootChooser;
309   };
311   makeWrapper = makeSetupHook ../build-support/make-wrapper/make-wrapper.sh;
313   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
314     import ../build-support/kernel/modules-closure.nix {
315       inherit stdenv module_init_tools kernel nukeReferences
316         rootModules allowMissing;
317     };
319   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
321   srcOnly = args: (import ../build-support/src-only) ({inherit stdenv; } // args);
323   substituteAll = import ../build-support/substitute/substitute-all.nix {
324     inherit stdenv;
325   };
327   nukeReferences = callPackage ../build-support/nuke-references/default.nix { };
329   vmTools = import ../build-support/vm/default.nix {
330     inherit pkgs;
331   };
333   releaseTools = import ../build-support/release/default.nix {
334     inherit pkgs;
335   };
337   composableDerivation = (import ../lib/composable-derivation.nix) {
338     inherit pkgs lib;
339   };
341   platforms = import ./platforms.nix;
343   ### TOOLS
345   acct = callPackage ../tools/system/acct { };
347   aefs = callPackage ../tools/filesystems/aefs { };
349   aircrackng = callPackage ../tools/networking/aircrack-ng { };
351   asymptote = builderDefsPackage ../tools/graphics/asymptote {
352     inherit freeglut ghostscriptX imagemagick fftw boehmgc
353       mesa ncurses readline gsl libsigsegv python zlib perl
354       texinfo lzma;
355     texLive = texLiveAggregationFun {
356       paths = [
357         texLive texLiveExtra
358       ];
359     };
360   };
362   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
364   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
366   amule = callPackage ../tools/networking/p2p/amule { };
368   aria = builderDefsPackage (import ../tools/networking/aria) {
369   };
371   aria2 = callPackage ../tools/networking/aria2 { };
373   at = callPackage ../tools/system/at { };
375   autogen = callPackage ../development/tools/misc/autogen { };
377   autojump = callPackage ../tools/misc/autojump { };
379   avahi =
380     let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
381     in
382       makeOverridable (import ../development/libraries/avahi) {
383         inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
384           expat gettext intltool lib;
385         inherit (gtkLibs) glib gtk;
386         inherit qt4Support;
387         qt4 = if qt4Support then qt4 else null;
388       };
390   axel = callPackage ../tools/networking/axel { };
392   azureus = callPackage ../tools/networking/p2p/azureus { };
394   bc = callPackage ../tools/misc/bc { };
396   bfr = callPackage ../tools/misc/bfr { };
398   bootchart = callPackage ../tools/system/bootchart { };
400   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
401     inherit libuuid zlib acl;
402   };
404   catdoc = callPackage ../tools/text/catdoc { };
406   eggdrop = callPackage ../tools/networking/eggdrop { };
408   mcrl = callPackage ../tools/misc/mcrl { };
410   mcrl2 = callPackage ../tools/misc/mcrl2 { };
412   syslogng = callPackage ../tools/misc/syslog-ng { };
414   asciidoc = callPackage ../tools/typesetting/asciidoc { };
416   autossh = callPackage ../tools/networking/autossh { };
418   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
419     inherit (strategoPackages016) strategoxt sdf;
420   };
422   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
423     wxPython = wxPython26;
424     gui = true;
425   };
427   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
429   blueman = callPackage ../tools/bluetooth/blueman {
430     inherit (pythonPackages) notify;
431   };
433   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
434     inherit unzip;
435   };
437   bogofilter = callPackage ../tools/misc/bogofilter {
438     bdb = db4;
439   };
441   bsdiff = callPackage ../tools/compression/bsdiff { };
443   bzip2 = callPackage ../tools/compression/bzip2 { };
445   cabextract = callPackage ../tools/archivers/cabextract { };
447   ccid = callPackage ../tools/security/ccid { };
449   ccrypt = callPackage ../tools/security/ccrypt { };
451   cdecl = callPackage ../development/tools/cdecl { };
453   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
455   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
457   cfdg = builderDefsPackage ../tools/graphics/cfdg {
458     inherit libpng bison flex;
459   };
461   checkinstall = callPackage ../tools/package-management/checkinstall { };
463   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
464     inherit makeWrapper python;
465   };
467   chkrootkit = callPackage ../tools/security/chkrootkit { };
469   cksfv = callPackage ../tools/networking/cksfv { };
471   convertlit = callPackage ../tools/text/convertlit { };
473   unifdef = callPackage ../development/tools/misc/unifdef { };
475   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
477   cloogppl = callPackage ../development/libraries/cloog-ppl { };
479   convmv = callPackage ../tools/misc/convmv { };
481   coreutils = callPackage (if stdenv ? isDietLibC
482       then ../tools/misc/coreutils-5
483       else ../tools/misc/coreutils)
484     {
485       # TODO: Add ACL support for cross-Linux.
486       aclSupport = crossSystem == null && stdenv.isLinux;
487     };
489   cpio = callPackage ../tools/archivers/cpio { };
491   cromfs = callPackage ../tools/archivers/cromfs { };
493   cron = callPackage ../tools/system/cron {  # see also fcron
494   };
496   curl = makeOverridable (import ../tools/networking/curl) rec {
497     fetchurl = fetchurlBoot;
498     inherit stdenv zlib openssl libssh2;
499     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
500     sslSupport = zlibSupport;
501     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
502   };
504   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
506   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
507   };
509   dar = callPackage ../tools/archivers/dar { };
511   davfs2 = callPackage ../tools/filesystems/davfs2 {
512     neon = neon028;
513   };
515   dcraw = callPackage ../tools/graphics/dcraw { };
517   debootstrap = callPackage ../tools/misc/debootstrap { };
519   detox = callPackage ../tools/misc/detox { };
521   ddclient = callPackage ../tools/networking/ddclient { };
523   ddrescue = callPackage ../tools/system/ddrescue { };
525   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
527   dev86 = callPackage ../development/compilers/dev86 { };
529   dnsmasq = callPackage ../tools/networking/dnsmasq {
530     # TODO i18n can be installed as well, implement it?
531   };
533   dhcp = callPackage ../tools/networking/dhcp { };
535   dhcpcd = callPackage ../tools/networking/dhcpcd { };
537   diffstat = callPackage ../tools/text/diffstat { };
539   diffutils = callPackage ../tools/text/diffutils { };
541   dirmngr = callPackage ../tools/security/dirmngr { };
543   docbook2x = callPackage ../tools/typesetting/docbook2x {
544     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
545     libiconv = if stdenv.isDarwin then libiconv else null;
546   };
548   dosfstools = callPackage ../tools/filesystems/dosfstools { };
550   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
552   dropbear = callPackage ../tools/networking/dropbear {
553     enableStatic = true;
554     zlib = zlibStatic;
555   };
557   duplicity = callPackage ../tools/backup/duplicity {
558     inherit (pythonPackages) boto;
559     gnupg = gnupg1;
560   };
562   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
564   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
566   ebook_tools = callPackage ../tools/text/ebook-tools { };
568   ecryptfs = callPackage ../tools/security/ecryptfs { };
570   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
572   enscript = callPackage ../tools/text/enscript { };
574   ethtool = callPackage ../tools/misc/ethtool { };
576   exif = callPackage ../tools/graphics/exif { };
578   exiftags = callPackage ../tools/graphics/exiftags { };
580   expect = callPackage ../tools/misc/expect { };
582   fcron = callPackage ../tools/system/fcron {  # see also cron
583   };
585   fdisk = callPackage ../tools/system/fdisk { };
587   figlet = callPackage ../tools/misc/figlet { };
589   file = callPackage ../tools/misc/file { };
591   findutils =
592     if stdenv.isDarwin
593     then findutils4227
594     else callPackage ../tools/misc/findutils { };
596   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
598   finger_bsd = callPackage ../tools/networking/bsd-finger { };
600   fontforge = callPackage ../tools/misc/fontforge { };
602   fontforgeX = callPackage ../tools/misc/fontforge {
603     withX11 = true;
604   };
606   dos2unix = callPackage ../tools/text/dos2unix { };
608   unix2dos = callPackage ../tools/text/unix2dos { };
610   gawk = callPackage ../tools/text/gawk { };
612   gdmap = callPackage ../tools/system/gdmap {
613     inherit (gtkLibs216) gtk;
614   };
616   genext2fs = callPackage ../tools/filesystems/genext2fs { };
618   gengetopt = callPackage ../development/tools/misc/gengetopt { };
620   getopt = callPackage ../tools/misc/getopt { };
622   gftp = callPackage ../tools/networking/gftp { };
624   gifsicle = callPackage ../tools/graphics/gifsicle { };
626   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
627     inherit fuse;
628     bison = bison24;
629     flex = flex2535;
630   };
632   glxinfo = callPackage ../tools/graphics/glxinfo { };
634   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
635     inherit intltool perl gettext libusb pkgconfig;
636     inherit (gtkLibs) gtk glib;
637   };
639   gnugrep = callPackage ../tools/text/gnugrep { };
641   gnupatch = callPackage ../tools/text/gnupatch { };
643   gnupg1orig = callPackage ../tools/security/gnupg1 {
644     ideaSupport = false;
645   };
647   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
649   # use config.packageOverrides if you prefer original gnupg1
650   gnupg1 = gnupg1compat;
652   gnupg = callPackage ../tools/security/gnupg { };
654   gnuplot = callPackage ../tools/graphics/gnuplot {
655     inherit (gtkLibs) pango;
656     texLive = null;
657     lua = null;
658   };
660   gnused = callPackage ../tools/text/gnused { };
662   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
664   gnutar = callPackage ../tools/archivers/gnutar { };
666   gnuvd = callPackage ../tools/misc/gnuvd { };
668   graphviz = callPackage ../tools/graphics/graphviz {
669     inherit (gtkLibs) pango;
670   };
672   /* Readded by Michael Raskin. There are programs in the wild
673    * that do want 2.0 but not 2.22. Please give a day's notice for
674    * objections before removal.
675    */
676   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
677     inherit (gtkLibs) pango;
678   };
680   groff = callPackage ../tools/text/groff {
681     ghostscript = null;
682   };
684   grub = import ../tools/misc/grub {
685     inherit fetchurl autoconf automake;
686     stdenv = stdenv_32bit;
687     buggyBiosCDSupport = (getConfig ["grub" "buggyBiosCDSupport"] true);
688   };
690   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
692   gssdp = callPackage ../development/libraries/gssdp {
693     inherit (gnome) libsoup;
694   };
696   gt5 = callPackage ../tools/system/gt5 { };
698   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
700   gupnp = callPackage ../development/libraries/gupnp {
701     inherit (gnome) libsoup;
702   };
704   gupnptools = callPackage ../tools/networking/gupnp-tools {
705     inherit (gnome) libsoup libglade gnomeicontheme;
706   };
708   gvpe = builderDefsPackage ../tools/networking/gvpe {
709     inherit openssl gmp nettools iproute;
710   };
712   gzip = callPackage ../tools/compression/gzip { };
714   pigz = callPackage ../tools/compression/pigz { };
716   halibut = callPackage ../tools/typesetting/halibut { };
718   hddtemp = callPackage ../tools/misc/hddtemp { };
720   hdf5 = callPackage ../tools/misc/hdf5 { };
722   hevea = callPackage ../tools/typesetting/hevea { };
724   highlight = callPackage ../tools/text/highlight { };
726   host = callPackage ../tools/networking/host { };
728   httpfs2 = callPackage ../tools/filesystems/httpfs { };
730   iasl = callPackage ../development/compilers/iasl { };
732   idutils = callPackage ../tools/misc/idutils { };
734   iftop = callPackage ../tools/networking/iftop { };
736   imapsync = callPackage ../tools/networking/imapsync {
737     inherit (perlPackages) MailIMAPClient;
738   };
740   inetutils = callPackage ../tools/networking/inetutils { };
742   iodine = callPackage ../tools/networking/iodine { };
744   iperf = callPackage ../tools/networking/iperf { };
746   ipmitool = callPackage ../tools/system/ipmitool {
747     static = false;
748   };
750   jdiskreport = callPackage ../tools/misc/jdiskreport { };
752   jfsrec = callPackage ../tools/filesystems/jfsrec { };
754   jfsutils = callPackage ../tools/filesystems/jfsutils { };
756   jhead = callPackage ../tools/graphics/jhead { };
758   jing = callPackage ../tools/text/xml/jing { };
760   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
762   jnettop = callPackage ../tools/networking/jnettop {
763     inherit (gnome) glib;
764   };
766   jwhois = callPackage ../tools/networking/jwhois { };
768   keychain = callPackage ../tools/misc/keychain { };
770   kismet = callPackage ../applications/networking/sniffers/kismet { };
772   less = callPackage ../tools/misc/less { };
774   most = callPackage ../tools/misc/most { };
776   lftp = callPackage ../tools/networking/lftp { };
778   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
780   logrotate = callPackage ../tools/system/logrotate { };
782   lout = callPackage ../tools/typesetting/lout { };
784   lrzip = callPackage ../tools/compression/lrzip { };
786   lsh = callPackage ../tools/networking/lsh { };
788   lzma = xz;
790   xz = callPackage ../tools/compression/xz { };
792   lzop = callPackage ../tools/compression/lzop { };
794   mailutils = callPackage ../tools/networking/mailutils { };
796   man = callPackage ../tools/misc/man { };
798   man_db = callPackage ../tools/misc/man-db { };
800   memtest86 = callPackage ../tools/misc/memtest86 { };
802   mc = callPackage ../tools/misc/mc { };
804   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
806   mcron = callPackage ../tools/system/mcron { };
808   mdbtools = callPackage ../tools/misc/mdbtools {
809     flex = flex2535;
810   };
812   miniupnpd = callPackage ../tools/networking/miniupnpd { };
814   mjpegtools = callPackage ../tools/video/mjpegtools { };
816   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
818   mktemp = callPackage ../tools/security/mktemp { };
820   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
822   monit = builderDefsPackage ../tools/system/monit {
823     flex = flex2535;
824     bison = bison24;
825     inherit openssl;
826   };
828   mpage = callPackage ../tools/text/mpage { };
830   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
831     inherit ruby makeWrapper;
832   };
834   mssys = callPackage ../tools/misc/mssys { };
836   mtdutils = callPackage ../tools/filesystems/mtdutils { };
838   mtools = callPackage ../tools/filesystems/mtools { };
840   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
841     multitrandata = callPackage ../tools/text/multitran/data { };
843     libbtree = callPackage ../tools/text/multitran/libbtree { };
845     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
847     libfacet = callPackage ../tools/text/multitran/libfacet { };
849     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
851     mtutils = callPackage ../tools/text/multitran/mtutils { };
852   });
854   muscleframework = callPackage ../tools/security/muscleframework { };
856   muscletool = callPackage ../tools/security/muscletool { };
858   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
860   namazu = callPackage ../tools/text/namazu { };
862   nbd = callPackage ../tools/networking/nbd {
863     glib = gtkLibs.glib.override {
864       stdenv = makeStaticBinaries stdenv;
865     };
866   };
868   nc6 = callPackage ../tools/networking/nc6 { };
870   ncat = callPackage ../tools/networking/ncat { };
872   ncftp = callPackage ../tools/networking/ncftp { };
874   ncompress = callPackage ../tools/compression/ncompress { };
876   netcat = callPackage ../tools/networking/netcat { };
878   netkittftp = callPackage ../tools/networking/netkit/tftp { };
880   netpbm = callPackage ../tools/graphics/netpbm { };
882   netselect = callPackage ../tools/networking/netselect { };
884   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
886   nmap = callPackage ../tools/security/nmap {
887     inherit (pythonPackages) pysqlite;
888   };
890   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
892   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
894   ntp = callPackage ../tools/networking/ntp { };
896   nssmdns = callPackage ../tools/networking/nss-mdns { };
898   nylon = callPackage ../tools/networking/nylon { };
900   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
902   obexd = callPackage ../tools/bluetooth/obexd { };
904   obexfs = callPackage ../tools/bluetooth/obexfs { };
906   obexftp = callPackage ../tools/bluetooth/obexftp { };
908   offlineimap = import ../tools/networking/offlineimap {
909     inherit fetchurl;
910     # I did not find any better way of reusing buildPythonPackage+setuptools
911     # for a python with openssl support
912     buildPythonPackage = assert pythonFull.opensslSupport;
913       import ../development/python-modules/generic {
914         inherit makeWrapper lib;
915         python = pythonFull;
916         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
917           inherit makeWrapper;
918           python = pythonFull;
919         };
920       };
921   };
923   opendbx = callPackage ../development/libraries/opendbx { };
925   opendkim = callPackage ../development/libraries/opendkim { };
927   openjade = callPackage ../tools/text/sgml/openjade {
928     stdenv = overrideGCC stdenv gcc33;
929   };
931   openobex = callPackage ../tools/bluetooth/openobex { };
933   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
935   opensc = opensc_0_11_7;
937   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
939   openssh = callPackage ../tools/networking/openssh {
940     hpnSupport = false;
941     etcDir = "/etc/ssh";
942   };
944   opensp = callPackage ../tools/text/sgml/opensp { };
946   openvpn = callPackage ../tools/networking/openvpn { };
948   optipng = callPackage ../tools/graphics/optipng { };
950   p7zip = callPackage ../tools/archivers/p7zip { };
952   pal = callPackage ../tools/misc/pal { };
954   panomatic = callPackage ../tools/graphics/panomatic { };
956   par2cmdline = callPackage ../tools/networking/par2cmdline { };
958   parallel = callPackage ../tools/misc/parallel { };
960   patchutils = callPackage ../tools/text/patchutils { };
962   parted = callPackage ../tools/misc/parted { };
964   patch = gnupatch;
966   pbzip2 = callPackage ../tools/compression/pbzip2 { };
968   pciutils = callPackage ../tools/system/pciutils { };
970   pcsclite = callPackage ../tools/security/pcsclite { };
972   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
974   pdfjam = callPackage ../tools/typesetting/pdfjam { };
976   pdfread = callPackage ../tools/graphics/pdfread { };
978   pg_top = callPackage ../tools/misc/pg_top { };
980   pdsh = callPackage ../tools/networking/pdsh {
981     rsh = true;          # enable internal rsh implementation
982     ssh = openssh;
983   };
985   pfstools = callPackage ../tools/graphics/pfstools {
986     qt = qt3;
987   };
989   pinentry = callPackage ../tools/misc/pinentry {
990     inherit (gnome) glib gtk;
991   };
993   pius = callPackage ../tools/security/pius { };
995   pk2cmd = callPackage ../tools/misc/pk2cmd { };
997   plan9port = callPackage ../tools/system/plan9port { };
999   ploticus = callPackage ../tools/graphics/ploticus { };
1001   plotutils = callPackage ../tools/graphics/plotutils { };
1003   pngnq = callPackage ../tools/graphics/pngnq { };
1005   povray = callPackage ../tools/graphics/povray { };
1007   ppl = callPackage ../development/libraries/ppl { };
1009   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1010   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1011   };
1013   proxychains = callPackage ../tools/networking/proxychains { };
1015   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1017   psmisc = callPackage ../tools/misc/psmisc { };
1019   pstoedit = callPackage ../tools/graphics/pstoedit { };
1021   pv = callPackage ../tools/misc/pv { };
1023   pwgen = callPackage ../tools/security/pwgen { };
1025   pydb = callPackage ../tools/pydb { };
1027   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1029   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1030     inherit python pkgconfig dbus_glib;
1031     dbus = dbus.libs;
1032   };
1034   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1035     inherit python;
1036   };
1038   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1039     inherit python libsexy pkgconfig libxml2 pygtk;
1040     inherit (gtkLibs) pango gtk glib;
1041   };
1043   openmpi = callPackage ../development/libraries/openmpi { };
1045   qdu = callPackage ../tools/misc/qdu { };
1047   qhull = callPackage ../development/libraries/qhull { };
1049   qshowdiff = callPackage ../tools/text/qshowdiff {
1050     qt = qt4;
1051   };
1053   rtmpdump = callPackage ../tools/video/rtmpdump { };
1055   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1057   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1059   relfs = callPackage ../tools/filesystems/relfs {
1060     inherit (gnome) gnomevfs GConf;
1061   };
1063   remind = callPackage ../tools/misc/remind { };
1065   replace = callPackage ../tools/text/replace { };
1067   /*
1068   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1069     python=python;  };
1070   */
1072   rsnapshot = callPackage ../tools/backup/rsnapshot {
1074     # For the `logger' command, we can use either `utillinux' or
1075     # GNU Inetutils.  The latter is more portable.
1076     logger = inetutils;
1077   };
1079   rlwrap = callPackage ../tools/misc/rlwrap { };
1081   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1082     inherit ppp;
1083   };
1085   rpm = callPackage ../tools/package-management/rpm {
1086     db4 = db45;
1087   };
1089   rrdtool = callPackage ../tools/misc/rrdtool {
1090     inherit (gtkLibs) pango;
1091   };
1093   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1095   rubber = callPackage ../tools/typesetting/rubber { };
1097   rxp = callPackage ../tools/text/xml/rxp { };
1099   rzip = callPackage ../tools/compression/rzip { };
1101   s3backer = callPackage ../tools/filesystems/s3backer { };
1103   s3sync = callPackage ../tools/networking/s3sync { };
1105   sablotron = callPackage ../tools/text/xml/sablotron { };
1107   screen = callPackage ../tools/misc/screen { };
1109   scrot = callPackage ../tools/graphics/scrot { };
1111   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1113   setserial = builderDefsPackage (import ../tools/system/setserial) {
1114     inherit groff;
1115   };
1117   sharutils = callPackage ../tools/archivers/sharutils { };
1119   shebangfix = callPackage ../tools/misc/shebangfix { };
1121   slimrat = callPackage ../tools/networking/slimrat {
1122     inherit (perlPackages) WWWMechanize LWP;
1123   };
1125   slsnif = callPackage ../tools/misc/slsnif { };
1127   smartmontools = callPackage ../tools/system/smartmontools { };
1129   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1131   socat = callPackage ../tools/networking/socat { };
1133   sourceHighlight = callPackage ../tools/text/source-highlight { };
1135   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1136     inherit fetchurl stdenv openssl;
1137   };
1139   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1141   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1143   sudo = callPackage ../tools/security/sudo { };
1145   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1146   };
1148   ssmtp = callPackage ../tools/networking/ssmtp {
1149     tlsSupport = true;
1150   };
1152   ssss = callPackage ../tools/security/ssss { };
1154   stun = callPackage ../tools/networking/stun { };
1156   stunnel = callPackage ../tools/networking/stunnel { };
1158   su = shadow;
1160   swec = callPackage ../tools/networking/swec {
1161     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1162   };
1164   svnfs = callPackage ../tools/filesystems/svnfs { };
1166   system_config_printer = callPackage ../tools/misc/system-config-printer { };
1168   sitecopy = callPackage ../tools/networking/sitecopy { };
1170   privoxy = callPackage ../tools/networking/privoxy {
1171     autoconf = autoconf213;
1172   };
1174   tcpdump = callPackage ../tools/networking/tcpdump { };
1176   tcng = callPackage ../tools/networking/tcng {
1177     kernel = linux_2_6_28;
1178   };
1180   telnet = callPackage ../tools/networking/telnet { };
1182   texmacs = callPackage ../applications/office/texmacs { };
1184   tor = callPackage ../tools/security/tor { };
1186   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1188   ucl = callPackage ../development/libraries/ucl { };
1190   ufraw = callPackage ../applications/graphics/ufraw {
1191     inherit (gnome) gtk;
1192   };
1194   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1196   upx = callPackage ../tools/compression/upx { };
1198   vbetool = builderDefsPackage ../tools/system/vbetool {
1199     inherit pciutils libx86 zlib;
1200   };
1202   viking = callPackage ../applications/misc/viking { };
1204   vncrec = builderDefsPackage ../tools/video/vncrec {
1205     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1206       libXmu libXaw libXext xextproto libSM libICE libXpm
1207       libXp;
1208   };
1210   vpnc = callPackage ../tools/networking/vpnc { };
1212   vtun = callPackage ../tools/networking/vtun { };
1214   testdisk = callPackage ../tools/misc/testdisk { };
1216   htmlTidy = callPackage ../tools/text/html-tidy { };
1218   tigervnc = callPackage ../tools/admin/tigervnc {
1219     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1220       xorg.fontbhlucidatypewriter75dpi ];
1221   };
1223   tightvnc = callPackage ../tools/admin/tightvnc {
1224     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1225       xorg.fontbhlucidatypewriter75dpi ];
1226   };
1228   time = callPackage ../tools/misc/time { };
1230   tm = callPackage ../tools/system/tm { };
1232   trang = callPackage ../tools/text/xml/trang { };
1234   tre = callPackage ../development/libraries/tre { };
1236   ts = callPackage ../tools/system/ts { };
1238   transfig = callPackage ../tools/graphics/transfig { };
1240   truecrypt = callPackage ../applications/misc/truecrypt {
1241     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1242   };
1244   ttmkfdir = callPackage ../tools/misc/ttmkfdir {
1245     flex = flex2534;
1246   };
1248   unbound = callPackage ../tools/networking/unbound { };
1250   units = callPackage ../tools/misc/units { };
1252   unrar = callPackage ../tools/archivers/unrar { };
1254   unshield = callPackage ../tools/archivers/unshield { };
1256   unzip = unzip552;
1258   # TODO: remove in the next stdenv update.
1259   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1261   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1263   uptimed = callPackage ../tools/system/uptimed { };
1265   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1266     tomcat = tomcat6;
1267   };
1269   wdfs = callPackage ../tools/filesystems/wdfs { };
1271   wdiff = callPackage ../tools/text/wdiff { };
1273   webalizer = callPackage ../tools/networking/webalizer { };
1275   webdruid = builderDefsPackage ../tools/admin/webdruid {
1276     inherit zlib libpng freetype gd which
1277       libxml2 geoip;
1278   };
1280   wget = callPackage ../tools/networking/wget {
1281     inherit (perlPackages) LWP;
1282   };
1284   which = callPackage ../tools/system/which { };
1286   wicd = callPackage ../tools/networking/wicd { };
1288   wv = callPackage ../tools/misc/wv { };
1290   wv2 = callPackage ../tools/misc/wv2 { };
1292   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1294   xbursttools = import ../tools/misc/xburst-tools {
1295     inherit stdenv fetchgit autoconf automake libusb confuse;
1296     # It needs a cross compiler for mipsel to build the firmware it will
1297     # load into the Ben Nanonote
1298     gccCross =
1299       let
1300         pkgsCross = (import ./all-packages.nix) {
1301           inherit system;
1302           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1303           # Ben Nanonote system
1304           crossSystem = {
1305             config = "mipsel-unknown-linux";
1306             bigEndian = true;
1307             arch = "mips";
1308             float = "soft";
1309             withTLS = true;
1310             libc = "uclibc";
1311             platform = {
1312               name = "ben_nanonote";
1313               kernelMajor = "2.6";
1314               # It's not a bcm47xx processor, but for the headers this should work
1315               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1316               kernelArch = "mips";
1317             };
1318             gcc = {
1319               arch = "mips32";
1320             };
1321           };
1322         };
1323       in
1324         pkgsCross.gccCrossStageStatic;
1325   };
1327   xclip = callPackage ../tools/misc/xclip { };
1329   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1331   xmlroff = callPackage ../tools/typesetting/xmlroff {
1332     inherit (gtkLibs) glib pango gtk;
1333     inherit (gnome) libgnomeprint;
1334   };
1336   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1338   xmlto = callPackage ../tools/typesetting/xmlto { };
1340   xmltv = callPackage ../tools/misc/xmltv { };
1342   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1343     inherit python setuptools;
1344   };
1346   xpf = callPackage ../tools/text/xml/xpf {
1347     libxml2 = libxml2Python;
1348   };
1350   xsel = callPackage ../tools/misc/xsel { };
1352   zdelta = callPackage ../tools/compression/zdelta { };
1354   zile = callPackage ../applications/editors/zile { };
1356   zip = callPackage ../tools/archivers/zip { };
1358   zsync = callPackage ../tools/compression/zsync { };
1360   ### SHELLS
1363   bash = lowPrio (callPackage ../shells/bash {
1364     texinfo = null;
1365   });
1367   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
1368     interactive = true;
1369   });
1371   dash = callPackage ../shells/dash { };
1373   tcsh = callPackage ../shells/tcsh { };
1375   rush = callPackage ../shells/rush { };
1377   zsh = callPackage ../shells/zsh { };
1380   ### DEVELOPMENT / COMPILERS
1383   abc =
1384     abcPatchable [];
1386   abcPatchable = patches :
1387     import ../development/compilers/abc/default.nix {
1388       inherit stdenv fetchurl patches jre apacheAnt;
1389       javaCup = callPackage ../development/libraries/java/cup { };
1390     };
1392   aspectj = callPackage ../development/compilers/aspectj { };
1394   bigloo = callPackage ../development/compilers/bigloo { };
1396   ccl = builderDefsPackage ../development/compilers/ccl {};
1398   clang = llvm.override {
1399     buildClang = true;
1400   };
1402   dylan = callPackage ../development/compilers/gwydion-dylan {
1403     dylan =
1404       import ../development/compilers/gwydion-dylan/binary.nix {
1405         inherit fetchurl stdenv;
1406   };
1407   };
1409   ecl = builderDefsPackage ../development/compilers/ecl {
1410     inherit gmp mpfr;
1411   };
1413   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1415   fpc = callPackage ../development/compilers/fpc { };
1417   gambit = callPackage ../development/compilers/gambit { };
1419   gcc = gcc44;
1421   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1422     inherit fetchurl stdenv noSysDirs;
1423   });
1425   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1426     inherit fetchurl stdenv noSysDirs;
1427   });
1429   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1430     inherit fetchurl stdenv noSysDirs;
1431   });
1433   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1434   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1435   # expects a single digit after the dot.  As a workaround, we feed
1436   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1438   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1439     inherit fetchurl stdenv noSysDirs;
1440     texinfo = texinfo49;
1441     profiledCompiler = true;
1442   });
1444   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1445     inherit fetchurl stdenv noSysDirs;
1446     texinfo = texinfo49;
1447     profiledCompiler = false;
1448   });
1450   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1451     inherit fetchurl stdenv noSysDirs;
1452     profiledCompiler = false;
1453   });
1455   gcc44 = gcc44_real;
1457   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1458     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1459     profiledCompiler = true;
1460   }));
1462   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1463     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1464     binutilsCross = binutilsCross;
1465     libcCross = libcCross;
1466     profiledCompiler = false;
1467     enableMultilib = true;
1468     crossStageStatic = false;
1469     cross = assert crossSystem != null; crossSystem;
1470   };
1472   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1473     (makeOverridable (import ../development/compilers/gcc-4.4) {
1474       inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
1475           gettext which;
1476       binutilsCross = binutilsCross;
1477       libcCross = libcCross;
1478       profiledCompiler = false;
1479       enableMultilib = false;
1480       crossStageStatic = false;
1481       cross = assert crossSystem != null; crossSystem;
1482     });
1484   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1485     (makeOverridable (import ../development/compilers/gcc-4.5) {
1486       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1487         ppl cloogppl gettext which noSysDirs;
1488       binutilsCross = binutilsCross;
1489       libcCross = libcCross;
1490       profiledCompiler = false;
1491       enableMultilib = false;
1492       crossStageStatic = false;
1493       cross = assert crossSystem != null; crossSystem;
1494     });
1496   gcc_realCross = gcc45_realCross;
1498   gccCrossStageStatic = let
1499       isMingw = (stdenv.cross.libc == "msvcrt");
1500       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1501     in
1502       wrapGCCCross {
1503       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1504         gcc_realCross.override {
1505           crossStageStatic = true;
1506           langCC = false;
1507           libcCross = libcCross1;
1508           enableShared = false;
1509         }));
1510       libc = libcCross1;
1511       binutils = binutilsCross;
1512       cross = assert crossSystem != null; crossSystem;
1513   };
1515   # Only needed for mingw builds
1516   gccCrossMingw2 = wrapGCCCross {
1517     gcc = gccCrossStageStatic.gcc;
1518     libc = windows.mingw_headers2;
1519     binutils = binutilsCross;
1520     cross = assert crossSystem != null; crossSystem;
1521   };
1523   gccCrossStageFinal = wrapGCCCross {
1524     gcc = forceBuildDrv (gcc_realCross.override {
1525       libpthreadCross =
1526         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1527         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1528         then hurdLibpthreadCross
1529         else null;
1530      });
1531     libc = libcCross;
1532     binutils = binutilsCross;
1533     cross = assert crossSystem != null; crossSystem;
1534   };
1536   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1537     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1538     profiledCompiler = false;
1539     enableMultilib = true;
1540   }));
1542   gcc44_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1543     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1544       gettext which noSysDirs;
1545     profiledCompiler = true;
1546   }));
1548   gcc45 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1549     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1550       ppl cloogppl
1551       gettext which noSysDirs;
1552     profiledCompiler = true;
1553   }));
1555   gccApple =
1556     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1557       inherit fetchurl stdenv noSysDirs;
1558       profiledCompiler = true;
1559     }) ;
1561   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1562     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1563     texinfo = texinfo49;
1564   });
1566   gfortran = gfortran43;
1568   gfortran40 = wrapGCC (gcc40.gcc.override {
1569     langFortran = true;
1570     langCC = false;
1571     inherit gmp mpfr;
1572   });
1574   gfortran41 = wrapGCC (gcc41.gcc.override {
1575     name = "gfortran";
1576     langFortran = true;
1577     langCC = false;
1578     langC = false;
1579     inherit gmp mpfr;
1580   });
1582   gfortran42 = wrapGCC (gcc42.gcc.override {
1583     name = "gfortran";
1584     langFortran = true;
1585     langCC = false;
1586     langC = false;
1587     inherit gmp mpfr;
1588   });
1590   gfortran43 = wrapGCC (gcc43.gcc.override {
1591     name = "gfortran";
1592     langFortran = true;
1593     langCC = false;
1594     langC = false;
1595     profiledCompiler = false;
1596   });
1598   gfortran44 = wrapGCC (gcc44_real.gcc.override {
1599     name = "gfortran";
1600     langFortran = true;
1601     langCC = false;
1602     langC = false;
1603     profiledCompiler = false;
1604   });
1606   gcj = gcj45;
1608   gcj44 = wrapGCC (gcc44_real.gcc.override {
1609     name = "gcj";
1610     langJava = true;
1611     langFortran = false;
1612     langCC = true;
1613     langC = false;
1614     profiledCompiler = false;
1615     inherit zip unzip zlib boehmgc gettext pkgconfig;
1616     inherit (gtkLibs) gtk;
1617     inherit (gnome) libart_lgpl;
1618     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1619       libXrandr xproto renderproto xextproto inputproto randrproto;
1620   });
1622   gcj45 = wrapGCC (gcc45.gcc.override {
1623     name = "gcj";
1624     langJava = true;
1625     langFortran = false;
1626     langCC = true;
1627     langC = false;
1628     profiledCompiler = false;
1629     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1630     inherit (gtkLibs) gtk;
1631     inherit (gnome) libart_lgpl;
1632     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1633       libXrandr xproto renderproto xextproto inputproto randrproto;
1634   });
1636   gnat = gnat44;
1638   gnat44 = wrapGCC (gcc44_real.gcc.override {
1639     name = "gnat";
1640     langCC = false;
1641     langC = true;
1642     langAda = true;
1643     profiledCompiler = false;
1644     inherit gnatboot;
1645     # We can't use the ppl stuff, because we would have
1646     # libstdc++ problems.
1647     cloogppl = null;
1648     ppl = null;
1649   });
1651   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1652     inherit fetchurl stdenv;
1653   });
1655   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1656     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1657     name = "ghdl";
1658     langVhdl = true;
1659     langCC = false;
1660     langC = false;
1661     profiledCompiler = false;
1662     enableMultilib = false;
1663   });
1665   # Not officially supported version for ghdl
1666   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1667     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1668       ppl cloogppl;
1669     name = "ghdl";
1670     langVhdl = true;
1671     langCC = false;
1672     langC = false;
1673     profiledCompiler = false;
1674     enableMultilib = false;
1675   }));
1677   gcl = builderDefsPackage ../development/compilers/gcl {
1678     inherit mpfr m4 binutils fetchcvs emacs zlib which
1679       gmp texinfo;
1680     inherit (xlibs) libX11 xproto inputproto libXi
1681       libXext xextproto libXt libXaw libXmu;
1682     inherit stdenv;
1683     texLive = texLiveAggregationFun {
1684       paths = [
1685         texLive texLiveExtra
1686       ];
1687     };
1688   };
1690   # GHC
1692   # GHC binaries are around for bootstrapping purposes
1694   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1695   # need to reenable an old binary such as this.
1696   /*
1697   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1698     inherit fetchurl stdenv ncurses gmp;
1699     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1700     perl = perl58;
1701   });
1702   */
1704   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1705     inherit fetchurl stdenv perl ncurses gmp libedit;
1706   });
1708   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1709     inherit fetchurl stdenv perl ncurses gmp libedit;
1710   });
1712   # For several compiler versions, we export a large set of Haskell-related
1713   # packages.
1715   # This should point to the current default version.
1716   haskellPackages = haskellPackages_ghc6123;
1718   # Old versions of ghc that currently don't build because the binary
1719   # is broken.
1720   /*
1721   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1722     ghc = import ../development/compilers/ghc/6.4.2.nix {
1723       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1724       ghc = ghc642Binary;  };
1725   };
1727   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1728     ghc = import ../development/compilers/ghc/6.6.1.nix {
1729       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1730       ghc = ghc642Binary;
1731   };
1732   };
1734   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1735     ghc = import ../development/compilers/ghc/6.8.2.nix {
1736       inherit fetchurl stdenv perl gmp ncurses m4;
1737       readline = readline5;
1738       ghc = ghc642Binary;
1739   };
1740   };
1742   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1743     inherit pkgs;
1744     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1745       ghc = ghc642Binary;
1746       haddock = import ../development/tools/documentation/haddock/boot.nix {
1747         inherit gmp;
1748         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1749           inherit stdenv fetchurl lib;
1750           ghc = ghc642Binary;    };
1751       };
1752     };
1753   });
1754   */
1756   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1757   # currently available ghc versions. (Before, it used to be enabled only
1758   # for a selected few versions.) If someone complains about nix-env -qa
1759   # output being spammed by lots of Haskell packages, we can talk about
1760   # reducing the number or "enabled" versions again.
1762   # Helper functions to abstract away from repetitive instantiations.
1763   haskellPackagesFun610 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1764     inherit pkgs newScope;
1765     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1766     ghc = callPackage ghcPath {
1767       ghc = ghc6101Binary;    };
1768   });
1770   haskellPackagesFun612 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1771     inherit pkgs newScope;
1772     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1773     ghc = callPackage ghcPath {
1774       ghc = ghc6101Binary;    };
1775   });
1777   # Currently active GHC versions.
1778   haskellPackages_ghc6101 =
1779     haskellPackagesFun610 ../development/compilers/ghc/6.10.1.nix false;
1781   haskellPackages_ghc6102 =
1782     haskellPackagesFun610 ../development/compilers/ghc/6.10.2.nix false;
1784   haskellPackages_ghc6103 =
1785     haskellPackagesFun610 ../development/compilers/ghc/6.10.3.nix false;
1787   # Current default version.
1788   haskellPackages_ghc6104 =
1789     haskellPackagesFun610 ../development/compilers/ghc/6.10.4.nix false;
1791   haskellPackages_ghc6121 =
1792     haskellPackagesFun612 ../development/compilers/ghc/6.12.1.nix false;
1794   haskellPackages_ghc6122 =
1795     haskellPackagesFun612 ../development/compilers/ghc/6.12.2.nix false;
1797   haskellPackages_ghc6123 =
1798     haskellPackagesFun612 ../development/compilers/ghc/6.12.3.nix false;
1800   # Currently not pointing to the actual HEAD, therefore disabled
1801   /*
1802   haskellPackages_ghcHEAD = lowPrio (import ./haskell-packages.nix {
1803     inherit pkgs;
1804     ghc = callPackage ../development/compilers/ghc/6.11.nix {
1805       inherit (haskellPackages) happy alex; # hope these aren't required for the final version
1806       ghc = ghc6101Binary;    };
1807   });
1808   */
1810   haxeDist = import ../development/compilers/haxe {
1811     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1812   };
1813   haxe = haxeDist.haxe;
1814   haxelib = haxeDist.haxelib;
1816   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1817     inherit cmake;
1818   };
1820   go = callPackage ../development/compilers/go { };
1822   gprolog = callPackage ../development/compilers/gprolog { };
1824   gwt = callPackage ../development/compilers/gwt {
1825     inherit (gtkLibs) glib gtk pango atk;
1826     libstdcpp5 = gcc33.gcc;
1827   };
1829   ikarus = callPackage ../development/compilers/ikarus { };
1831   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1832   # commented out because it's using the new configuration style proposal which is unstable
1833   hugs = callPackage ../development/compilers/hugs { };
1835   path64 = callPackage ../development/compilers/path64 {
1836     stdenv = stdenv2;
1837   };
1839   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1841   j2sdk14x = (
1842     assert system == "i686-linux";
1843     import ../development/compilers/jdk/default-1.4.nix {
1844       inherit fetchurl stdenv;
1845     });
1847   jdk5 = (
1848     assert system == "i686-linux" || system == "x86_64-linux";
1849     import ../development/compilers/jdk/default-5.nix {
1850       inherit fetchurl stdenv unzip;
1851     });
1853   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1854   jre       = jdkdistro false false;
1856   jdkPlugin = jdkdistro true true;
1857   jrePlugin = jdkdistro false true;
1859   supportsJDK =
1860     system == "i686-linux" ||
1861     system == "x86_64-linux" ||
1862     system == "i686-cygwin" ||
1863     system == "powerpc-linux";
1865   jdkdistro = installjdk: pluginSupport:
1866        (assert supportsJDK;
1867     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
1868       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
1869     }));
1871   jikes = callPackage ../development/compilers/jikes { };
1873   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
1874     inherit fpc makeWrapper;
1875     inherit (gtkLibs) gtk glib pango atk;
1876     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
1877   };
1879   llvm = callPackage ../development/compilers/llvm { };
1881   mitscheme = callPackage ../development/compilers/mit-scheme { };
1883   mlton = callPackage ../development/compilers/mlton { };
1885   mono = callPackage ../development/compilers/mono { };
1887   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
1889   mozart = callPackage ../development/compilers/mozart { };
1891   neko = callPackage ../development/compilers/neko { };
1893   nasm = callPackage ../development/compilers/nasm { };
1895   ocaml = ocaml_3_11_1;
1897   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
1899   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
1901   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
1903   opencxx = callPackage ../development/compilers/opencxx {
1904     gcc = gcc33;
1905   };
1907   qcmm = callPackage ../development/compilers/qcmm {
1908     lua   = lua4;
1909     ocaml = ocaml_3_08_0;
1910   };
1912   roadsend = callPackage ../development/compilers/roadsend { };
1914   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
1915     inherit makeWrapper clisp;
1916   };
1918   scala = callPackage ../development/compilers/scala { };
1920   stalin = callPackage ../development/compilers/stalin { };
1922   strategoPackages = strategoPackages017;
1924   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
1925     stdenv = overrideInStdenv stdenv [gnumake380];
1926   };
1928   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
1929     readline = readline5;
1930   };
1932   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
1933     readline = readline5;
1934   };
1936   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
1938   swiProlog = callPackage ../development/compilers/swi-prolog { };
1940   tinycc = callPackage ../development/compilers/tinycc { };
1942   urweb = callPackage ../development/compilers/urweb { };
1944   vala = callPackage ../development/compilers/vala { };
1946   visualcpp = callPackage ../development/compilers/visual-c++ { };
1948   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
1950   webdsl = callPackage ../development/compilers/webdsl { };
1952   win32hello = callPackage ../development/compilers/visual-c++/test { };
1954   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
1955     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
1956     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
1957     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
1958     gcc = baseGCC;
1959     libc = glibc;
1960     inherit stdenv binutils coreutils zlib;
1961   };
1963   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
1965   # To be removed on stdenv-updates
1966   # By now this has at least the fix of setting the proper rpath when a file "libbla.so"
1967   # is passed directly to the linker.
1968   # This is of interest to programs built by cmake, because this is a common practice
1969   # in cmake builds.
1970   wrapGCC2 = wrapGCCWith (import ../build-support/gcc-wrapper/default2.nix) glibc;
1971   stdenv2 = if (gcc.nativeTools) then stdenv else (overrideGCC stdenv (wrapGCC2 gcc.gcc));
1973   wrapGCCCross =
1974     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
1976     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
1977       nativeTools = false;
1978       nativeLibc = false;
1979       noLibc = (libc == null);
1980       inherit stdenv gcc binutils libc shell name cross;
1981     });
1983   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
1984   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
1985   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
1986     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
1987     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
1988     gcc = baseGCC;
1989     libc = glibc;
1990     inherit stdenv binutils;
1991   };
1993   # prolog
1994   yap = callPackage ../development/compilers/yap { };
1996   yasm = callPackage ../development/compilers/yasm { };
1998   ### DEVELOPMENT / INTERPRETERS
2000   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2001     inherit sbcl;
2002   };
2004   clisp = callPackage ../development/interpreters/clisp { };
2006   # compatibility issues in 2.47 - at list 2.44.1 is known good
2007   # for sbcl bootstrap
2008   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2009     libsigsegv = libsigsegv_25;  };
2011   erlang = callPackage ../development/interpreters/erlang { };
2013   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2015   groovy = callPackage ../development/interpreters/groovy { };
2017   guile = callPackage ../development/interpreters/guile { };
2019   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2021   io = builderDefsPackage (import ../development/interpreters/io) {
2022     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2023       libpng libtiff libjpeg readline libsndfile libxml2
2024       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2025   };
2027   kaffe = callPackage ../development/interpreters/kaffe { };
2029   lua4 = callPackage ../development/interpreters/lua-4 { };
2031   lua5 = callPackage ../development/interpreters/lua-5 { };
2033   maude = callPackage ../development/interpreters/maude { };
2035   octave = callPackage ../development/interpreters/octave {
2036     # Needed because later gm versions require an initialization the actual octave is not
2037     # doing.
2038     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2039     graphicsmagick = graphicsmagick137;
2040   };
2042   # mercurial (hg) bleeding edge version
2043   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2045   perl58 = callPackage ../development/interpreters/perl-5.8 {
2046     impureLibcPath = if stdenv.isLinux then null else "/usr";
2047   };
2049   perl510 = callPackage ../development/interpreters/perl-5.10 {
2050     fetchurl = fetchurlBoot;
2051   };
2053   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2055   php = makeOverridable (import ../development/interpreters/php) {
2056     inherit
2057       stdenv fetchurl lib composableDerivation autoconf automake
2058       flex bison apacheHttpd mysql libxml2
2059       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2060   };
2062   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2064   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2065     inherit cairo fontconfig freetype libjpeg libpng openssl
2066       perl mesa zlib which;
2067     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2068       renderproto pixman libSM libxcb libXext xextproto libXmu
2069       libXt;
2070   };
2072   polyml = callPackage ../development/compilers/polyml { };
2074   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2075   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2076   python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
2077   pythonBase = python26Base;
2078   pythonFull = python26Full;
2080   pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
2082   python24 = lowPrio (callPackage ../development/interpreters/python/2.4 { });
2084   python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
2085     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2086     arch = if stdenv.isDarwin then darwinArchUtility else null;
2087     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2088   });
2090   python26Full = lowPrio (python26Base.override {
2091     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2092     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2093     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2094     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2095     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2096     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2097     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2098     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2099     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2100     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2101   });
2103   python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
2104     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2105     arch = if stdenv.isDarwin then darwinArchUtility else null;
2106     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2107   });
2109   python27Full = lowPrio (python27Base.override {
2110     inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
2111     inherit (pkgs.xlibs) libX11 xproto;
2112   });
2114   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2115     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2116     arch = if stdenv.isDarwin then darwinArchUtility else null;
2117     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2118   });
2120   pyrex = pyrex095;
2122   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2124   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2126   qi = callPackage ../development/compilers/qi { };
2128   ruby18 = callPackage ../development/interpreters/ruby { };
2129   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2130   ruby = ruby18;
2132   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2133     inherit pkgs stdenv;
2134   });
2136   rake = callPackage ../development/ruby-modules/rake { };
2138   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2140   rLang = callPackage ../development/interpreters/r-lang {
2141     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2142   };
2144   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2145     inherit ruby makeWrapper;
2146   };
2147   rubygems = rubygemsFun ruby;
2149   rq = callPackage ../applications/networking/cluster/rq { };
2151   scsh = callPackage ../development/interpreters/scsh { };
2153   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2154   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2156   sysPerl = callPackage ../development/interpreters/sys-perl { };
2158   tcl = callPackage ../development/interpreters/tcl { };
2160   xulrunnerWrapper = {application, launcher}:
2161     import ../development/interpreters/xulrunner/wrapper {
2162       inherit stdenv application launcher;
2163       xulrunner = firefox36Pkgs.xulrunner;
2164     };
2167   ### DEVELOPMENT / MISC
2169   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2170     gcc = gcc40;
2171   };
2173   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2175   /*
2176   toolbus = callPackage ../development/interpreters/toolbus { };
2177   */
2179   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2180     inherit getConfig;
2181   };
2183   ecj = callPackage ../development/eclipse/ecj { };
2185   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2187   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2189   jruby116 = callPackage ../development/interpreters/jruby { };
2191   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2193   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2194     gconf = gnome.GConf;
2195     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2196       libgnomeui pango;
2197   };
2199   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2201   windowssdk = (
2202     import ../development/misc/windows-sdk {
2203       inherit fetchurl stdenv cabextract;
2204     });
2207   ### DEVELOPMENT / TOOLS
2210   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2212   antlr3 = callPackage ../development/tools/parsing/antlr { };
2214   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin ; name = "ant-" + jdk.name ; } ;
2216   ant = apacheAnt;
2217   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2218     name = "ant-" + jdk.name;  };
2220   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2221     jdk = j2sdk14x;
2222     name = "ant-" + j2sdk14x.name;
2223   };
2225   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2226     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2227   };
2229   autobuild = callPackage ../development/tools/misc/autobuild { };
2231   autoconf = callPackage ../development/tools/misc/autoconf { };
2233   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2235   automake = automake110x;
2237   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2239   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2241   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2243   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
2245   avrdude = callPackage ../development/tools/misc/avrdude { };
2247   binutils = callPackage ../development/tools/misc/binutils {
2248     inherit noSysDirs;
2249   };
2251   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2252       inherit stdenv fetchurl;
2253       noSysDirs = true;
2254       cross = assert crossSystem != null; crossSystem;
2255   });
2257   bison = bison23;
2259   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2261   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2263   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2265   buildbot = callPackage ../development/tools/build-managers/buildbot {
2266     inherit (pythonPackages) twisted;
2267   };
2269   byacc = callPackage ../development/tools/parsing/byacc { };
2271   camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2273   camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2274     transitional = true;
2275   };
2277   ccache = callPackage ../development/tools/misc/ccache { };
2279   ctags = callPackage ../development/tools/misc/ctags { };
2281   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2282     inherit pkgs ctags writeScriptBin;
2283   };
2285   cmake = callPackage ../development/tools/build-managers/cmake { };
2287   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2289   cppi = callPackage ../development/tools/misc/cppi { };
2291   cproto = callPackage ../development/tools/misc/cproto { };
2293   cflow = callPackage ../development/tools/misc/cflow { };
2295   cscope = callPackage ../development/tools/misc/cscope { };
2297   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2299   ddd = callPackage ../development/tools/misc/ddd { };
2301   distcc = callPackage ../development/tools/misc/distcc {
2302     static = false;
2303   };
2305   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2306     inherit python pil makeWrapper;
2307   };
2309   doxygen = callPackage ../development/tools/documentation/doxygen {
2310     qt = qt4;
2311   };
2313   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2315   elfutils = callPackage ../development/tools/misc/elfutils { };
2317   epm = callPackage ../development/tools/misc/epm { };
2319   emma = callPackage ../development/tools/analysis/emma { };
2321   findbugs = callPackage ../development/tools/analysis/findbugs { };
2323   pmd = callPackage ../development/tools/analysis/pmd { };
2325   jdepend = callPackage ../development/tools/analysis/jdepend { };
2327   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2329   flex = flex254a;
2331   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2333   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2335   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2337   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2338   # alphabetically, hence the low priority.
2339   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2340     inherit fetchurl stdenv yacc;
2341   });
2343   m4 = gnum4;
2345   global = callPackage ../development/tools/misc/global { };
2347   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2349   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2351   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2353   gradle = callPackage ../development/tools/build-managers/gradle { };
2355   gperf = callPackage ../development/tools/misc/gperf { };
2357   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2359   guileLint = callPackage ../development/tools/guile/guile-lint { };
2361   gwrap = callPackage ../development/tools/guile/g-wrap { };
2363   help2man = callPackage ../development/tools/misc/help2man {
2364     inherit (perlPackages) LocaleGettext;
2365   };
2367   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2368     inherit (perlPackages) XMLSimple;
2369   };
2371   indent = callPackage ../development/tools/misc/indent { };
2373   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2375   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2377   jikespg = callPackage ../development/tools/parsing/jikespg { };
2379   lcov = callPackage ../development/tools/analysis/lcov { };
2381   libtool = libtool_2;
2383   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2385   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2387   lsof = callPackage ../development/tools/misc/lsof { };
2389   ltrace = callPackage ../development/tools/misc/ltrace { };
2391   mig = callPackage ../os-specific/gnu/mig { };
2393   mk = callPackage ../development/tools/build-managers/mk { };
2395   noweb = callPackage ../development/tools/literate-programming/noweb { };
2397   omake = callPackage ../development/tools/ocaml/omake { };
2400   openocd = callPackage ../development/tools/misc/openocd { };
2402   oprofile = import ../development/tools/profiling/oprofile {
2403     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep;
2405     # Optional build inputs for the (useless) GUI.
2406     /*
2407     qt = qt3;
2408     inherit (xlibs) libX11 libXext;
2409     inherit libpng;
2410      */
2411   };
2413   patchelf = callPackage ../development/tools/misc/patchelf { };
2415   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2417   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2419   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2420      because most usage of pkgconfig as buildInput (inheritance of
2421      pre-cross nixpkgs) means using it using as buildNativeInput
2422      cross_renaming: we should make all programs use pkgconfig as
2423      buildNativeInput after the renaming.
2424      */
2425   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2427   radare = callPackage ../development/tools/analysis/radare {
2428     inherit (gnome) vte;
2429     lua = lua5;
2430     useX11 = getConfig ["radare" "useX11"] false;
2431     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2432     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2433     luaBindings = getConfig ["radare" "luaBindings"] false;
2434   };
2436   ragel = callPackage ../development/tools/parsing/ragel { };
2438   remake = callPackage ../development/tools/build-managers/remake { };
2440   # couldn't find the source yet
2441   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2442     jre = jdk;  };
2444   scons = callPackage ../development/tools/build-managers/scons { };
2446   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2448   sloccount = callPackage ../development/tools/misc/sloccount { };
2450   sparse = callPackage ../development/tools/analysis/sparse { };
2452   spin = callPackage ../development/tools/analysis/spin { };
2454   splint = callPackage ../development/tools/analysis/splint { };
2456   strace = callPackage ../development/tools/misc/strace { };
2458   swig = callPackage ../development/tools/misc/swig { };
2460   swigWithJava = swig;
2462   swftools = callPackage ../tools/video/swftools { };
2464   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2466   texinfo = callPackage ../development/tools/misc/texinfo { };
2468   texi2html = callPackage ../development/tools/misc/texi2html { };
2470   uisp = callPackage ../development/tools/misc/uisp { };
2472   gdb = callPackage ../development/tools/misc/gdb {
2473     readline = readline5;
2474   };
2476   gdbCross = callPackage ../development/tools/misc/gdb {
2477     readline = readline5;
2478     target = crossSystem;
2479   };
2481   valgrind = callPackage ../development/tools/analysis/valgrind { };
2483   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2484     flex = flex2535;
2485     qt = qt3;
2486     inherit pkgconfig makeWrapper bison python;
2487     inherit (xlibs) libXext libX11;
2488   };
2490   yacc = bison;
2492   yodl = callPackage ../development/tools/misc/yodl { };
2495   ### DEVELOPMENT / LIBRARIES
2498   a52dec = callPackage ../development/libraries/a52dec { };
2500   aalib = callPackage ../development/libraries/aalib { };
2502   acl = callPackage ../development/libraries/acl { };
2504   adns = import ../development/libraries/adns/1.4.nix {
2505     inherit stdenv fetchurl;
2506     static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
2507   };
2509   agg = callPackage ../development/libraries/agg { };
2511   amrnb = callPackage ../development/libraries/amrnb { };
2513   amrwb = callPackage ../development/libraries/amrwb { };
2515   apr = callPackage ../development/libraries/apr { };
2517   aprutil = callPackage ../development/libraries/apr-util {
2518     bdbSupport = true;
2519   };
2521   aspell = callPackage ../development/libraries/aspell { };
2523   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2524     inherit fetchurl stdenv aspell which;
2525   });
2527   aterm = aterm25;
2529   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2530     inherit fetchurl stdenv;
2531   });
2533   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2535   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
2537   attr = callPackage ../development/libraries/attr { };
2539   aubio = callPackage ../development/libraries/aubio { };
2541   axis = callPackage ../development/libraries/axis { };
2543   babl = callPackage ../development/libraries/babl { };
2545   beecrypt = callPackage ../development/libraries/beecrypt { };
2547   boehmgc = callPackage ../development/libraries/boehm-gc { };
2549   boolstuff = callPackage ../development/libraries/boolstuff { };
2551   boost = callPackage ../development/libraries/boost { };
2553   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2554   boostFull = appendToName "full" (boost.override {
2555     enableDebug = true;
2556     enableSingleThreaded = true;
2557     enableStatic = true;
2558   });
2560   botan = builderDefsPackage (import ../development/libraries/botan) {
2561     inherit perl;
2562   };
2564   buddy = callPackage ../development/libraries/buddy { };
2566   cairo = callPackage ../development/libraries/cairo { };
2568   cairomm = callPackage ../development/libraries/cairomm { };
2570   scmccid = callPackage ../development/libraries/scmccid { };
2572   ccrtp = callPackage ../development/libraries/ccrtp { };
2574   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2575     inherit cmake freeglut mesa;
2576     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2577   };
2579   chmlib = callPackage ../development/libraries/chmlib { };
2581   cil = callPackage ../development/libraries/cil { };
2583   cilaterm = callPackage ../development/libraries/cil-aterm {
2584     stdenv = overrideInStdenv stdenv [gnumake380];
2585   };
2587   clanlib = callPackage ../development/libraries/clanlib { };
2589   clapack = callPackage ../development/libraries/clapack {
2590     stdenv = stdenv2;
2591   };
2593   classads = callPackage ../development/libraries/classads { };
2595   classpath = callPackage ../development/libraries/java/classpath {
2596     javac = gcj;
2597     jvm = gcj;
2598     gconf = gnome.GConf;
2599   };
2601   clearsilver = callPackage ../development/libraries/clearsilver { };
2603   cln = callPackage ../development/libraries/cln { };
2605   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2606   };
2608   cluceneCore = callPackage ../development/libraries/clucene-core { };
2610   clutter = callPackage ../development/libraries/clutter {
2611     inherit (gnome) glib pango gtk;
2612   };
2614   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2615     inherit (gnome) gtk;
2616   };
2618   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2620   confuse = callPackage ../development/libraries/confuse { };
2622   consolekit = callPackage ../development/libraries/consolekit { };
2624   coredumper = callPackage ../development/libraries/coredumper { };
2626   ctl = callPackage ../development/libraries/ctl { };
2628   cppunit = callPackage ../development/libraries/cppunit { };
2630   cracklib = callPackage ../development/libraries/cracklib { };
2632   cryptopp = callPackage ../development/libraries/crypto++ { };
2634   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2636   db4 = db45;
2638   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2640   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2642   dbus = callPackage ../development/libraries/dbus {
2643     useX11 = true; # !!! `false' doesn't build
2644   };
2646   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2647     inherit fetchurl stdenv pkgconfig gettext dbus expat glib;
2648     libiconv = if (stdenv.system == "i686-freebsd") then libiconv else null;
2649   };
2651   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2653   dclib = callPackage ../development/libraries/dclib { };
2655   directfb = callPackage ../development/libraries/directfb { };
2657   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2658     stdenv = overrideGCC stdenv gcc45;
2659   };
2661   enchant = callPackage ../development/libraries/enchant {
2662     inherit (gnome) glib;
2663   };
2665   enet = callPackage ../development/libraries/enet { };
2667   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2669   esdl = callPackage ../development/libraries/esdl { };
2671   exiv2 = callPackage ../development/libraries/exiv2 { };
2673   expat = callPackage ../development/libraries/expat { };
2675   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2676     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2677       libpng gettext intltool;
2678     inherit (xlibs) libX11 xproto libXi inputproto
2679       libXmu libXext xextproto libXt libSM libICE;
2680   };
2682   eventlog = callPackage ../development/libraries/eventlog { };
2684   facile = callPackage ../development/libraries/facile {
2685     # Actually, we don't need this version but we need native-code compilation
2686     ocaml = ocaml_3_10_0;
2687   };
2689   faac = callPackage ../development/libraries/faac { };
2691   faad2 = callPackage ../development/libraries/faad2 { };
2693   farsight2 = callPackage ../development/libraries/farsight2 {
2694     inherit (gnome) glib;
2695     inherit (gst_all) gstreamer gstPluginsBase;
2696   };
2698   fcgi = callPackage ../development/libraries/fcgi { };
2700   ffmpeg = callPackage ../development/libraries/ffmpeg { };
2702   fftw = callPackage ../development/libraries/fftw {
2703     singlePrecision = false;
2704   };
2706   fftwSinglePrec = callPackage ../development/libraries/fftw {
2707     singlePrecision = true;
2708   };
2710   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2712   fltk20 = callPackage ../development/libraries/fltk { };
2714   fmod = callPackage ../development/libraries/fmod { };
2716   freeimage = callPackage ../development/libraries/freeimage { };
2718   freetts = callPackage ../development/libraries/freetts { };
2720   cfitsio = callPackage ../development/libraries/cfitsio { };
2722   fontconfig = callPackage ../development/libraries/fontconfig { };
2724   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2725     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2726       inherit runCommand libxslt fontconfig fontDirectories;
2727     };
2729   freealut = callPackage ../development/libraries/freealut { };
2731   freeglut = callPackage ../development/libraries/freeglut { };
2733   freetype = callPackage ../development/libraries/freetype { };
2735   fribidi = callPackage ../development/libraries/fribidi { };
2737   fam = gamin;
2739   gamin = callPackage ../development/libraries/gamin { };
2741   gav = callPackage ../games/gav {
2742     stdenv = overrideGCC stdenv gcc41;
2743   };
2745   gdbm = callPackage ../development/libraries/gdbm { };
2747   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2748     inherit (gtkLibs1x) gtk;
2749   };
2751   gegl = callPackage ../development/libraries/gegl {
2752     #  avocodec avformat librsvg
2753     inherit (gtkLibs) pango glib gtk;
2754   };
2756   geoip = builderDefsPackage ../development/libraries/geoip {
2757     inherit zlib;
2758   };
2760   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2762   geos = callPackage ../development/libraries/geos { };
2764   gettext = callPackage ../development/libraries/gettext { };
2766   # XXX: Remove me when `stdenv-updates' is merged.
2767   gettext_0_18 = callPackage ../development/libraries/gettext/0.18.nix { };
2769   gd = callPackage ../development/libraries/gd { };
2771   gdal = callPackage ../development/libraries/gdal { };
2773   giblib = callPackage ../development/libraries/giblib { };
2775   glew = callPackage ../development/libraries/glew { };
2777   glfw = callPackage ../development/libraries/glfw { };
2779   glibc = glibc211;
2781   glibc25 = callPackage ../development/libraries/glibc-2.5 {
2782     kernelHeaders = linuxHeaders;
2783     installLocales = false;
2784   };
2786   glibc27 = callPackage ../development/libraries/glibc-2.7 {
2787     kernelHeaders = linuxHeaders;
2788     #installLocales = false;
2789   };
2791   glibc29 = callPackage ../development/libraries/glibc-2.9 {
2792     kernelHeaders = linuxHeaders;
2793     installLocales = getPkgConfig "glibc" "locales" false;
2794   };
2796   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
2797     inherit stdenv fetchurl;
2798     gccCross = gccCrossStageStatic;
2799     kernelHeaders = linuxHeadersCross;
2800     installLocales = getPkgConfig "glibc" "locales" false;
2801   });
2803   glibc211 = callPackage ../development/libraries/glibc-2.11 {
2804     kernelHeaders = linuxHeaders;
2805     installLocales = getPkgConfig "glibc" "locales" false;
2806     machHeaders = null;
2807     hurdHeaders = null;
2808     gccCross = null;
2809   };
2811   glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11)
2812     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
2813      in ({
2814        inherit stdenv fetchurl;
2815        gccCross = gccCrossStageStatic;
2816        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
2817        installLocales = getPkgConfig "glibc" "locales" false;
2818      }
2820      //
2822      (if crossGNU
2823       then { inherit machHeaders hurdHeaders mig fetchgit; }
2824       else { }))));
2826   glibcCross = glibc211Cross;
2828   # We can choose:
2829   libcCrossChooser = name : if (name == "glibc") then glibcCross
2830     else if (name == "uclibc") then uclibcCross
2831     else if (name == "msvcrt") then windows.mingw_headers3
2832     else throw "Unknown libc";
2834   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
2836   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
2838   libdwg = callPackage ../development/libraries/libdwg { };
2840   eglibc = callPackage ../development/libraries/eglibc {
2841     kernelHeaders = linuxHeaders;
2842     installLocales = getPkgConfig "glibc" "locales" false;
2843   };
2845   glibcLocales = callPackage ../development/libraries/glibc-2.11/locales.nix { };
2847   glibcInfo = callPackage ../development/libraries/glibc-2.11/info.nix { };
2849   glibc_multi =
2850       runCommand "${glibc.name}-multi"
2851         { glibc64 = glibc;
2852           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
2853         }
2854         ''
2855           ensureDir $out
2856           ln -s $glibc64/* $out/
2858           rm $out/lib $out/lib64
2859           ensureDir $out/lib
2860           ln -s $glibc64/lib/* $out/lib
2861           ln -s $glibc32/lib $out/lib/32
2862           ln -s lib $out/lib64
2864           rm $out/include
2865           cp -rs $glibc32/include $out
2866           chmod -R u+w $out/include
2867           cp -rsf $glibc64/include $out
2868         '' # */
2869         ;
2871   glpk = callPackage ../development/libraries/glpk { };
2873   gmime = callPackage ../development/libraries/gmime { };
2875   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
2877   gmm = callPackage ../development/libraries/gmm { };
2879   gmp =
2880     if stdenv.system == "i686-darwin" then
2881       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
2882       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
2883         inherit stdenv fetchurl m4;
2884         cxx = false;
2885       }
2886     else
2887       makeOverridable (import ../development/libraries/gmp) {
2888         inherit stdenv fetchurl m4;
2889         cxx = false;
2890       };
2892   gmpxx = gmp.override { cxx = true; };
2894   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
2896   goffice = callPackage ../development/libraries/goffice {
2897     inherit (gnome) glib gtk libglade libgnomeui pango;
2898     gconf = gnome.GConf;
2899     libart = gnome.libart_lgpl;
2900   };
2902   goocanvas = callPackage ../development/libraries/goocanvas {
2903     inherit (gnome) gtk glib;
2904   };
2906   #GMP ex-satellite, so better keep it near gmp
2907   mpfr = callPackage ../development/libraries/mpfr { };
2909   gst_all = recurseIntoAttrs (import ../development/libraries/gstreamer {
2910     inherit lib stdenv fetchurl perl bison pkgconfig libxml2
2911       python alsaLib cdparanoia libogg libvorbis libtheora freetype liboil
2912       libjpeg zlib speex libpng libdv aalib cairo libcaca flac hal libiec61883
2913       dbus libavc1394 ladspaH taglib pulseaudio gdbm bzip2 which makeOverridable
2914       libcap libtasn1;
2915     flex = flex2535;
2916     inherit (xorg) libX11 libXv libXext;
2917     inherit (gtkLibs) glib pango gtk;
2918     inherit (gnome) gnomevfs /* <- only passed for the no longer used older versions
2919              it is deprecated and didn't build on amd64 due to samba dependency */ gtkdoc
2920       libsoup;
2921   });
2923   gnet = callPackage ../development/libraries/gnet { };
2925   gnutls = callPackage ../development/libraries/gnutls {
2926     guileBindings = getConfig ["gnutls" "guile"] true;
2927   };
2929   gpgme = callPackage ../development/libraries/gpgme { };
2931   grantlee = callPackage ../development/libraries/grantlee { };
2933   gsasl = callPackage ../development/libraries/gsasl { };
2935   gsl = callPackage ../development/libraries/gsl { };
2937   gsoap = callPackage ../development/libraries/gsoap { };
2939   gss = callPackage ../development/libraries/gss { };
2941   gtkimageview = callPackage ../development/libraries/gtkimageview {
2942     inherit (gnome) gtk;
2943   };
2945   gtkLibs = gtkLibs220;
2947   glib = gtkLibs.glib;
2948   gtk = gtkLibs.gtk;
2950   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
2952     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
2954     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
2956   });
2958   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
2960     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
2962     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
2964     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
2966     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
2968     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
2970     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
2972     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
2974   });
2976   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
2978     glib = callPackage ../development/libraries/glib/2.22.x.nix {
2979       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
2980     };
2982     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
2984     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
2986     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
2988     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
2990     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
2992     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
2994   });
2996   gtkLibs220 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs220; in rec {
2998     glib = callPackage ../development/libraries/glib/2.24.x.nix {
2999       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
3000     };
3002     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3004     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3006     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3008     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3010     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3012     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3014   });
3016   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3017     inherit (gnome) gtk;
3018     gtksharp = gtksharp2;
3019   };
3021   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3022     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3023               libgnomecanvas libgnomeui libgnomeprint
3024               libgnomeprintui GConf;
3025   };
3027   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3028     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3029               libgnomecanvas libgnomeui libgnomeprint
3030               libgnomeprintui GConf gnomepanel;
3031   };
3033   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3034     inherit (gnome) gtksourceview;
3035     gtksharp = gtksharp2;
3036   };
3038   gtkspell = callPackage ../development/libraries/gtkspell { };
3040   # TODO : Add MIT Kerberos and let admin choose.
3041   kerberos = heimdal;
3043   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3045   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3047   hunspell = callPackage ../development/libraries/hunspell { };
3049   hwloc = callPackage ../development/libraries/hwloc { };
3051   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3053   icu = callPackage ../development/libraries/icu { };
3055   id3lib = callPackage ../development/libraries/id3lib { };
3057   ilbc = callPackage ../development/libraries/ilbc { };
3059   ilmbase = callPackage ../development/libraries/ilmbase { };
3061   imlib = callPackage ../development/libraries/imlib { };
3063   imlib2 = callPackage ../development/libraries/imlib2 { };
3065   indilib = callPackage ../development/libraries/indilib { };
3067   iniparser = callPackage ../development/libraries/iniparser { };
3069   intltool = gnome.intltool;
3071   isocodes = callPackage ../development/libraries/iso-codes { };
3073   itk = callPackage ../development/libraries/itk { };
3075   jamp = builderDefsPackage ../games/jamp {
3076     inherit mesa SDL SDL_image SDL_mixer;
3077   };
3079   jasper = callPackage ../development/libraries/jasper { };
3081   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3083   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3085   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3087   judy = callPackage ../development/libraries/judy { };
3089   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3091   lablgtk = callPackage ../development/libraries/lablgtk {
3092     inherit (gnome) libgnomecanvas;
3093   };
3095   lcms = lcms1;
3097   lcms1 = callPackage ../development/libraries/lcms { };
3099   lcms2 = callPackage ../development/libraries/lcms2 { };
3101   lensfun = callPackage ../development/libraries/lensfun {
3102     inherit (gnome) glib;
3103   };
3105   lesstif = callPackage ../development/libraries/lesstif { };
3107   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3109   levmar = callPackage ../development/libraries/levmar { };
3111   lib3ds = callPackage ../development/libraries/lib3ds { };
3113   libaal = callPackage ../development/libraries/libaal { };
3115   libao = callPackage ../development/libraries/libao {
3116     usePulseAudio = getConfig [ "pulseaudio" ] true;
3117   };
3119   libarchive = callPackage ../development/libraries/libarchive { };
3121   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3123   libassuan = callPackage ../development/libraries/libassuan { };
3125   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3127   libcaca = callPackage ../development/libraries/libcaca { };
3129   libcanberra = callPackage ../development/libraries/libcanberra {
3130     gstreamer = gst_all.gstreamer;
3131   };
3133   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3135   libcddb = callPackage ../development/libraries/libcddb { };
3137   libcdio = callPackage ../development/libraries/libcdio { };
3139   libchamplain = callPackage ../development/libraries/libchamplain {
3140     inherit (gnome) gtk glib libsoup;
3141   };
3143   libcm = callPackage ../development/libraries/libcm { };
3145   libcue = callPackage ../development/libraries/libcue { };
3147   libcv = builderDefsPackage (import ../development/libraries/libcv) {
3148     inherit libtiff libjpeg libpng pkgconfig;
3149     inherit (gtkLibs) gtk glib;
3150   };
3152   libdaemon = callPackage ../development/libraries/libdaemon { };
3154   libdbi = callPackage ../development/libraries/libdbi { };
3156   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3157     mysql = null;
3158     sqlite = null;
3159   };
3161   libdbiDrivers = libdbiDriversBase.override {
3162     inherit sqlite mysql;
3163   };
3165   libdiscid = callPackage ../development/libraries/libdiscid { };
3167   libdv = callPackage ../development/libraries/libdv { };
3169   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3170     inherit fetchurl stdenv pkgconfig;
3171     inherit (xorg) libpthreadstubs;
3172   });
3174   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3176   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3178   libdvdread = callPackage ../development/libraries/libdvdread { };
3180   libedit = callPackage ../development/libraries/libedit { };
3182   libelf = callPackage ../development/libraries/libelf { };
3184   liblo = callPackage ../development/libraries/liblo { };
3186   libev = builderDefsPackage ../development/libraries/libev {
3187   };
3189   libevent = callPackage ../development/libraries/libevent { };
3191   libewf = callPackage ../development/libraries/libewf { };
3193   libexif = callPackage ../development/libraries/libexif { };
3195   libextractor = callPackage ../development/libraries/libextractor {
3196     inherit (gnome) gtk;
3197     libmpeg2 = mpeg2dec;
3198   };
3200   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3201     inherit fetchcvs;
3202   };
3204   libffi = callPackage ../development/libraries/libffi { };
3206   libftdi = callPackage ../development/libraries/libftdi { };
3208   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3210   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3212   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3214   libgpod = callPackage ../development/libraries/libgpod { };
3216   libharu = callPackage ../development/libraries/libharu { };
3218   libical = callPackage ../development/libraries/libical { };
3220   libiodbc = callPackage ../development/libraries/libiodbc {
3221     useGTK = getPkgConfig "libiodbc" "gtk" false;
3222   };
3224   libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
3226   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3227     inherit (gnome) glib;
3228   };
3230   libmhash = callPackage ../development/libraries/libmhash {};
3232   libnice = callPackage ../development/libraries/libnice {
3233     inherit (gnome) glib;
3234   };
3236   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3238   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3240   libspectre = callPackage ../development/libraries/libspectre {
3241     ghostscript = ghostscriptX;
3242   };
3244   libgsf = callPackage ../development/libraries/libgsf {
3245     inherit (gnome) glib gnomevfs libbonobo;
3246   };
3248   libiconv = callPackage ../development/libraries/libiconv { };
3250   libid3tag = callPackage ../development/libraries/libid3tag { };
3252   libidn = callPackage ../development/libraries/libidn { };
3254   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3256   libinfinity = callPackage ../development/libraries/libinfinity {
3257     inherit (gnome) gtkdoc;
3258   };
3260   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3262   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3264   libjpeg = callPackage ../development/libraries/libjpeg { };
3266   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3268   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3269     libtool = libtool_1_5;
3270   };
3272   libksba = callPackage ../development/libraries/libksba { };
3274   libmad = callPackage ../development/libraries/libmad { };
3276   libmatchbox = callPackage ../development/libraries/libmatchbox {
3277     inherit (gtkLibs) pango;
3278   };
3280   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3282   libmcs = callPackage ../development/libraries/libmcs { };
3284   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3286   libmikmod = callPackage ../development/libraries/libmikmod { };
3288   libmilter = callPackage ../development/libraries/libmilter { };
3290   libmowgli = callPackage ../development/libraries/libmowgli { };
3292   libmng = callPackage ../development/libraries/libmng { };
3294   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3296   libmsn = callPackage ../development/libraries/libmsn { };
3298   libmspack = callPackage ../development/libraries/libmspack { };
3300   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3302   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3304   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3306   libmusicbrainz = libmusicbrainz3;
3308   libnih = callPackage ../development/libraries/libnih { };
3310   libnova = callPackage ../development/libraries/libnova { };
3312   libofa = callPackage ../development/libraries/libofa { };
3314   libofx = callPackage ../development/libraries/libofx { };
3316   libogg = callPackage ../development/libraries/libogg { };
3318   liboil = callPackage ../development/libraries/liboil { };
3320   liboop = callPackage ../development/libraries/liboop { };
3322   libosip = callPackage ../development/libraries/osip {};
3324   libotr = callPackage ../development/libraries/libotr { };
3326   libp11 = callPackage ../development/libraries/libp11 { };
3328   libpcap = callPackage ../development/libraries/libpcap { };
3330   libpng = callPackage ../development/libraries/libpng { };
3332   libproxy = callPackage ../development/libraries/libproxy { };
3334   libpseudo = callPackage ../development/libraries/libpseudo { };
3336   libqalculate = callPackage ../development/libraries/libqalculate { };
3338   librsync = callPackage ../development/libraries/librsync { };
3340   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3342   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
3344   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3346   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3347   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3349   libsndfile = callPackage ../development/libraries/libsndfile { };
3351   libssh = callPackage ../development/libraries/libssh { };
3353   libssh2 = callPackage ../development/libraries/libssh2 { };
3355   libstartup_notification = callPackage ../development/libraries/startup-notification { };
3357   libtasn1 = callPackage ../development/libraries/libtasn1 { };
3359   libtheora = callPackage ../development/libraries/libtheora { };
3361   libtiff = callPackage ../development/libraries/libtiff { };
3363   libtommath = callPackage ../development/libraries/libtommath { };
3365   libtunepimp = callPackage ../development/libraries/libtunepimp { };
3367   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3369   libunistring = callPackage ../development/libraries/libunistring { };
3371   libupnp = callPackage ../development/libraries/pupnp { };
3373   giflib = callPackage ../development/libraries/giflib { };
3375   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3377   libusb = callPackage ../development/libraries/libusb { };
3379   libunwind = callPackage ../development/libraries/libunwind { };
3381   libv4l = callPackage ../development/libraries/libv4l { };
3383   libvirt = callPackage ../development/libraries/libvirt { };
3385   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3386     inherit libtool libjpeg openssl zlib;
3387     inherit (xlibs) xproto libX11 damageproto libXdamage
3388       libXext xextproto fixesproto libXfixes xineramaproto
3389       libXinerama libXrandr randrproto libXtst;
3390   };
3392   libviper = callPackage ../development/libraries/libviper { };
3394   libvpx = callPackage ../development/libraries/libvpx { };
3396   libvterm = callPackage ../development/libraries/libvterm { };
3398   libvorbis = callPackage ../development/libraries/libvorbis { };
3400   libwmf = callPackage ../development/libraries/libwmf { };
3402   libwpd = callPackage ../development/libraries/libwpd {
3403     inherit (gnome) glib;
3404   };
3406   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3408   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3410   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3412   libxklavier = callPackage ../development/libraries/libxklavier { };
3414   libxmi = callPackage ../development/libraries/libxmi { };
3416   libxml2 = callPackage ../development/libraries/libxml2 {
3417     pythonSupport = false;
3418   };
3420   libxml2Python = libxml2.override {
3421     pythonSupport = true;
3422   };
3424   libxmlxx = callPackage ../development/libraries/libxmlxx {
3425     inherit (gtkLibs) glibmm;
3426   };
3428   libxslt = callPackage ../development/libraries/libxslt { };
3430   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3431     inherit fetchurl stdenv;
3432   });
3434   libyaml = callPackage ../development/libraries/libyaml { };
3436   libzip = callPackage ../development/libraries/libzip { };
3438   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3440   lightning = callPackage ../development/libraries/lightning { };
3442   liquidwar = builderDefsPackage ../games/liquidwar {
3443     inherit (xlibs) xproto libX11 libXrender;
3444     inherit gmp guile mesa libjpeg libpng
3445       expat gettext perl
3446       SDL SDL_image SDL_mixer SDL_ttf
3447       curl sqlite
3448       libogg libvorbis
3449       ;
3450   };
3452   log4cxx = callPackage ../development/libraries/log4cxx { };
3454   loudmouth = callPackage ../development/libraries/loudmouth { };
3456   lzo = callPackage ../development/libraries/lzo { };
3458   # failed to build
3459   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3461   mesaSupported =
3462     system == "i686-linux" ||
3463     system == "x86_64-linux" ||
3464     system == "x86_64-darwin" ||
3465     system == "i686-darwin";
3467   mesa = callPackage ../development/libraries/mesa {
3468     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3469   };
3471   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
3472     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
3473     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
3474     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
3475     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
3476     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
3477     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
3478     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
3479     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
3480     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
3481     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
3482     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
3483     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
3484     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
3485     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
3486   });
3488   ming = callPackage ../development/libraries/ming { };
3490   mlt = callPackage ../development/libraries/mlt {
3491     qt = qt4;
3492   };
3494   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3496   msilbc = callPackage ../development/libraries/msilbc { };
3498   mp4v2 = callPackage ../development/libraries/mp4v2 { };
3500   mpc = callPackage ../development/libraries/mpc { };
3502   mpich2 = callPackage ../development/libraries/mpich2 { };
3504   muparser = callPackage ../development/libraries/muparser { };
3506   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3507     inherit fetchurl stdenv;
3508     # The "! (stdenv ? cross)" is for the cross-built arm ncurses, which
3509     # don't build for me in unicode.
3510     unicode = (system != "i686-cygwin" && crossSystem == null);
3511   };
3513   neon = neon029;
3515   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3516     compressionSupport = true;
3517     sslSupport = true;
3518   };
3520   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3521     compressionSupport = true;
3522     sslSupport = true;
3523   };
3525   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3526     compressionSupport = true;
3527     sslSupport = true;
3528   };
3530   nethack = builderDefsPackage (import ../games/nethack) {
3531     inherit ncurses flex bison;
3532   };
3534   nettle = callPackage ../development/libraries/nettle { };
3536   nspr = callPackage ../development/libraries/nspr { };
3538   nss = callPackage ../development/libraries/nss { };
3540   nssTools = callPackage ../development/libraries/nss {
3541     includeTools = true;
3542   };
3544   ode = builderDefsPackage (import ../development/libraries/ode) {
3545   };
3547   openal = callPackage ../development/libraries/openal { };
3549   # added because I hope that it has been easier to compile on x86 (for blender)
3550   openalSoft = callPackage ../development/libraries/openal-soft { };
3552   openbabel = callPackage ../development/libraries/openbabel { };
3554   opencascade = callPackage ../development/libraries/opencascade { };
3556   openct = callPackage ../development/libraries/openct { };
3558   opencv = callPackage ../development/libraries/opencv {
3559     inherit (gst_all) gstreamer;
3560     stdenv = stdenv2;
3561   };
3563   # this ctl version is needed by openexr_viewers
3564   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3566   openexr = callPackage ../development/libraries/openexr { };
3568   openldap = callPackage ../development/libraries/openldap { };
3570   openlierox = builderDefsPackage ../games/openlierox {
3571     inherit (xlibs) libX11 xproto;
3572     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3573       pkgconfig;
3574   };
3576   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3577     opensc = opensc_0_11_7;
3578   };
3580   opal = callPackage ../development/libraries/opal {};
3582   openjpeg = callPackage ../development/libraries/openjpeg { };
3584   openssl = callPackage ../development/libraries/openssl {
3585     fetchurl = fetchurlBoot;
3586   };
3588   ortp = callPackage ../development/libraries/ortp { };
3590   pangoxsl = callPackage ../development/libraries/pangoxsl {
3591     inherit (gtkLibs) glib pango;
3592   };
3594   pcre = callPackage ../development/libraries/pcre {
3595     unicodeSupport = getConfig ["pcre" "unicode"] false;
3596     cplusplusSupport = !stdenv ? isDietLibC;
3597   };
3599   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
3601   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
3603   physfs = callPackage ../development/libraries/physfs { };
3605   plib = callPackage ../development/libraries/plib { };
3607   podofo = callPackage ../development/libraries/podofo { };
3609   polkit = callPackage ../development/libraries/polkit { };
3611   policykit = callPackage ../development/libraries/policykit { };
3613   poppler = callPackage ../development/libraries/poppler {
3614     qt4Support = false;
3615   };
3617   popplerQt4 = poppler.override {
3618     inherit qt4;
3619     qt4Support = true;
3620   };
3622   popt = callPackage ../development/libraries/popt { };
3624   portaudio = callPackage ../development/libraries/portaudio { };
3626   proj = callPackage ../development/libraries/proj { };
3628   postgis = callPackage ../development/libraries/postgis { };
3630   pth = callPackage ../development/libraries/pth { };
3632   ptlib = callPackage ../development/libraries/ptlib {};
3634   qjson = callPackage ../development/libraries/qjson { };
3636   qt3 = callPackage ../development/libraries/qt-3 {
3637     openglSupport = mesaSupported;
3638     mysqlSupport = getConfig ["qt" "mysql"] false;
3639   };
3641   qt3mysql = qt3.override {
3642     mysqlSupport = true;
3643   };
3645   qt4 = qt46;
3647   qt45 = callPackage ../development/libraries/qt-4.x/4.5 {
3648     inherit (gnome) glib;
3649   };
3651   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3652     inherit (gnome) glib;
3653   };
3655   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3656     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
3657     inherit (pkgs.gnome) glib;
3658   };
3660   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
3662   quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
3664   quesoglc = callPackage ../development/libraries/quesoglc { };
3666   readline = readline6;
3668   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3670   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3672   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3674   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3676   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3678   librdf = callPackage ../development/libraries/librdf { };
3680   qrupdate = callPackage ../development/libraries/qrupdate { };
3682   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3683     bdb = db4;
3684     postgresql = null;
3685   };
3687   rhino = callPackage ../development/libraries/java/rhino {
3688     ant = apacheAntGcj;
3689     javac = gcj;
3690     jvm = gcj;
3691   };
3693   rte = callPackage ../development/libraries/rte { };
3695   rubberband = callPackage ../development/libraries/rubberband {
3696     fftw = fftwSinglePrec;
3697     inherit (vamp) vampSDK;
3698   };
3700   schroedinger = callPackage ../development/libraries/schroedinger { };
3702   SDL = callPackage ../development/libraries/SDL {
3703     openglSupport = mesaSupported;
3704     alsaSupport = true;
3705     pulseaudioSupport = false; # better go through ALSA
3706   };
3708   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3710   SDL_image = callPackage ../development/libraries/SDL_image { };
3712   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3714   SDL_net = callPackage ../development/libraries/SDL_net { };
3716   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3718   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3720   slang = callPackage ../development/libraries/slang { };
3722   slibGuile = callPackage ../development/libraries/slib {
3723     scheme = guile;
3724   };
3726   snack = callPackage ../development/libraries/snack {
3727         # optional
3728   };
3730   speex = callPackage ../development/libraries/speex { };
3732   srtp = callPackage ../development/libraries/srtp {};
3734   sqlite = callPackage ../development/libraries/sqlite {
3735     readline = null;
3736     ncurses = null;
3737   };
3739   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
3740     readline = null;
3741     ncurses = null;
3742   };
3744   sqliteInteractive = appendToName "interactive" (sqlite.override {
3745     inherit readline ncurses;
3746   });
3748   stlport = callPackage ../development/libraries/stlport { };
3750   suitesparse = callPackage ../development/libraries/suitesparse { };
3752   t1lib = callPackage ../development/libraries/t1lib { };
3754   taglib = callPackage ../development/libraries/taglib { };
3756   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3758   talloc = callPackage ../development/libraries/talloc { };
3760 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3761 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3762 ##  };
3764   tdb = callPackage ../development/libraries/tdb { };
3766   tecla = callPackage ../development/libraries/tecla { };
3768   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3770   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3772   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3774   tk = callPackage ../development/libraries/tk { };
3776   unixODBC = callPackage ../development/libraries/unixODBC { };
3778   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3779     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3780     inherit postgresql mysql sqlite;
3781   });
3783   vamp = callPackage ../development/libraries/audio/vamp { };
3785   vigra = callPackage ../development/libraries/vigra { };
3787   vtk = callPackage ../development/libraries/vtk { };
3789   vxl = callPackage ../development/libraries/vxl { };
3791   webkit = ((builderDefsPackage ../development/libraries/webkit {
3792     inherit (gnome28) gtkdoc libsoup;
3793     inherit (gtkLibs) gtk atk pango glib;
3794     inherit freetype fontconfig gettext gperf curl
3795       libjpeg libtiff libpng libxml2 libxslt sqlite
3796       icu cairo perl intltool automake libtool
3797       pkgconfig autoconf bison libproxy enchant
3798       python ruby;
3799     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3800       gstPluginsGood;
3801     flex = flex2535;
3802     inherit (xlibs) libXt;
3803   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
3805   wvstreams = callPackage ../development/libraries/wvstreams { };
3807   wxGTK = wxGTK28;
3809   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
3810     inherit (gtkLibs216) gtk;
3811   };
3813   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
3814     inherit (gtkLibs216) gtk;
3815   };
3817   wtk = callPackage ../development/libraries/wtk { };
3819   x264 = callPackage ../development/libraries/x264 { };
3821   xapian = callPackage ../development/libraries/xapian { };
3823   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
3824   };
3826   Xaw3d = callPackage ../development/libraries/Xaw3d {
3827     flex = flex2533;
3828   };
3830   xineLib = callPackage ../development/libraries/xine-lib { };
3832   xautolock = callPackage ../misc/screensavers/xautolock { };
3834   xercesJava = callPackage ../development/libraries/java/xerces {
3835     ant   = apacheAntGcj;  # for bootstrap purposes
3836     javac = gcj;
3837     jvm   = gcj;
3838   };
3840   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
3841     packages = [
3842       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
3843       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
3844       xlibs.xextproto
3845     ];
3846   };
3848   xvidcore = callPackage ../development/libraries/xvidcore { };
3850   zangband = builderDefsPackage (import ../games/zangband) {
3851     inherit ncurses flex bison autoconf automake m4 coreutils;
3852   };
3854   zlib = callPackage ../development/libraries/zlib {
3855     fetchurl = fetchurlBoot;
3856   };
3858   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
3859     inherit fetchurl stdenv;
3860     static = true;
3861   }));
3863   zvbi = callPackage ../development/libraries/zvbi {
3864     pngSupport = true;
3865   };
3868   ### DEVELOPMENT / LIBRARIES / JAVA
3871   atermjava = callPackage ../development/libraries/java/aterm {
3872     stdenv = overrideInStdenv stdenv [gnumake380];
3874   };
3876   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
3878   fastjar = callPackage ../development/tools/java/fastjar { };
3880   httpunit = callPackage ../development/libraries/java/httpunit { };
3882   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
3884   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
3886   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
3887     regexp = jakartaregexp;
3888   };
3890   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
3892   javaCup = callPackage ../development/libraries/java/cup { };
3894   javasvn = callPackage ../development/libraries/java/javasvn { };
3896   jclasslib = callPackage ../development/tools/java/jclasslib {
3897     ant = apacheAnt14;
3898   };
3900   jdom = callPackage ../development/libraries/java/jdom { };
3902   jflex = callPackage ../development/libraries/java/jflex { };
3904   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
3905     stdenv = overrideInStdenv stdenv [gnumake380];
3906   };
3908   junit = callPackage ../development/libraries/java/junit { };
3910   lucene = callPackage ../development/libraries/java/lucene { };
3912   mockobjects = callPackage ../development/libraries/java/mockobjects { };
3914   saxon = callPackage ../development/libraries/java/saxon { };
3916   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
3918   sharedobjects = callPackage ../development/libraries/java/shared-objects {
3919     stdenv = overrideInStdenv stdenv [gnumake380];
3920   };
3922   smack = callPackage ../development/libraries/java/smack { };
3924   swt = callPackage ../development/libraries/java/swt { };
3926   xalanj = xalanJava;
3927   xalanJava = callPackage ../development/libraries/java/xalanj {
3928     ant    = apacheAntGcj;  # for bootstrap purposes
3929     javac  = gcj;
3930     jvm    = gcj;
3931     xerces = xercesJava;  };
3933   zziplib = callPackage ../development/libraries/zziplib { };
3936   ### DEVELOPMENT / PERL MODULES
3938   buildPerlPackage = import ../development/perl-modules/generic perl;
3940   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
3941     inherit pkgs;
3942   });
3944   perlXMLParser = perlPackages.XMLParser;
3946   ack = perlPackages.ack;
3948   perlcritic = perlPackages.PerlCritic;
3951   ### DEVELOPMENT / PYTHON MODULES
3953   buildPythonPackage = import ../development/python-modules/generic {
3954     inherit python setuptools makeWrapper lib;
3955   };
3957   buildPython26Package = import ../development/python-modules/generic {
3958     inherit makeWrapper lib;
3959     python = python26;
3960     setuptools = setuptools.override { python = python26; };
3961   };
3963   buildPython27Package = import ../development/python-modules/generic {
3964     inherit makeWrapper lib;
3965     python = python27;
3966     setuptools = setuptools.override { python = python27; doCheck = false; };
3967   };
3969   pythonPackages = python26Packages;
3971   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
3972     inherit pkgs;
3973     python = python26;
3974     buildPythonPackage = buildPython26Package;
3975   });
3977   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
3978     inherit pkgs;
3979     python = python27;
3980     buildPythonPackage = buildPython27Package;
3981   });
3983   foursuite = callPackage ../development/python-modules/4suite { };
3985   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
3987   flup = builderDefsPackage ../development/python-modules/flup {
3988     inherit fetchurl stdenv python setuptools;
3989   };
3991   numeric = callPackage ../development/python-modules/numeric { };
3993   pil = callPackage ../development/python-modules/pil { };
3995   psyco = callPackage ../development/python-modules/psyco { };
3997   pycairo = callPackage ../development/python-modules/pycairo { };
3999   pycrypto = callPackage ../development/python-modules/pycrypto { };
4001   pycups = callPackage ../development/python-modules/pycups { };
4003   pygame = callPackage ../development/python-modules/pygame { };
4005   pygobject = callPackage ../development/python-modules/pygobject { };
4007   pygtk = callPackage ../development/python-modules/pygtk { };
4009   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4010     inherit (gnome) libglade;
4011   };
4013   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4014     inherit python openssl;
4015   };
4017   rhpl = callPackage ../development/python-modules/rhpl { };
4019   sip = callPackage ../development/python-modules/python-sip { };
4021   pyqt4 = callPackage ../development/python-modules/pyqt { };
4023   pyx = callPackage ../development/python-modules/pyx { };
4025   pyxml = callPackage ../development/python-modules/pyxml { };
4027   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4028     inherit python makeWrapper;
4029   };
4031   wxPython = wxPython26;
4033   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4034     wxGTK = wxGTK26;
4035   };
4037   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4039   twisted = pythonPackages.twisted;
4041   ZopeInterface = pythonPackages.zopeInterface;
4043   zope = callPackage ../development/python-modules/zope {
4044     python = python24;
4045   };
4047   ### SERVERS
4049   rdf4store = callPackage ../servers/http/4store { };
4051   apacheHttpd = callPackage ../servers/http/apache-httpd {
4052     sslSupport = true;
4053   };
4055   sabnzbd = callPackage ../servers/sabnzbd { };
4057   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4058     inherit openssl libtool;
4059   };
4061   dico = callPackage ../servers/dico { };
4063   dict = callPackage ../servers/dict { };
4065   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4066     inherit builderDefs;
4067   });
4069   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4070     inherit stdenv lib dict;
4071   };
4073   dovecot = callPackage ../servers/mail/dovecot { };
4074   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4076   ejabberd = callPackage ../servers/xmpp/ejabberd {
4077     erlang = erlangR13B ;
4078   };
4080   couchdb = callPackage ../servers/http/couchdb { };
4082   felix = callPackage ../servers/felix { };
4084   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4086   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4088   firebird = callPackage ../servers/firebird { };
4090   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4092   jboss = callPackage ../servers/http/jboss { };
4094   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4096   jetty = callPackage ../servers/http/jetty { };
4098   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4100   lighttpd = callPackage ../servers/http/lighttpd { };
4102   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4104   mpd = callPackage ../servers/mpd { };
4106   myserver = callPackage ../servers/http/myserver { };
4108   nginx = builderDefsPackage (import ../servers/http/nginx) {
4109     inherit openssl pcre zlib libxml2 libxslt;
4110   };
4112   postfix = callPackage ../servers/mail/postfix { };
4114   pulseaudio = callPackage ../servers/pulseaudio {
4115     gconf = gnome.GConf;
4116   };
4118   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4120   portmap = callPackage ../servers/portmap { };
4122   monetdb = callPackage ../servers/sql/monetdb { };
4124   mysql4 = import ../servers/sql/mysql {
4125     inherit fetchurl stdenv ncurses zlib perl;
4126     ps = procps; /* !!! Linux only */
4127   };
4129   mysql5 = import ../servers/sql/mysql5 {
4130     inherit fetchurl stdenv ncurses zlib perl openssl;
4131     ps = procps; /* !!! Linux only */
4132   };
4134   mysql51 = import ../servers/sql/mysql51 {
4135     inherit fetchurl ncurses zlib perl openssl stdenv;
4136     ps = procps; /* !!! Linux only */
4137   };
4139   mysql = mysql5;
4141   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4143   nagios = callPackage ../servers/monitoring/nagios {
4144     gdSupport = true;
4145   };
4147   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4149   openfire = callPackage ../servers/xmpp/openfire { };
4151   postgresql = postgresql83;
4153   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4155   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4157   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4159   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4160     inherit xmpppy pythonIRClib python makeWrapper;
4161   };
4163   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4164     inherit xmpppy python makeWrapper fetchcvs;
4165   };
4167   radius = callPackage ../servers/radius { };
4169   redstore = callPackage ../servers/http/redstore { };
4171   samba = callPackage ../servers/samba { };
4173   shishi = callPackage ../servers/shishi { };
4175   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4176     inherit fetchurl stdenv perl lib composableDerivation;
4177   });
4178   squid = squids.squid3Beta; # has ipv6 support
4180   tomcat5 = callPackage ../servers/http/tomcat { };
4182   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4184   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4186   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4188   virtuoso = callPackage ../servers/sql/virtuoso { };
4190   vsftpd = callPackage ../servers/ftp/vsftpd { };
4192   xinetd = callPackage ../servers/xinetd { };
4194   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4195     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4196       libxslt expat libdrm libpng zlib perl mesa
4197       xkeyboard_config dbus hal libuuid openssl gperf m4
4198       automake autoconf libtool xmlto asciidoc udev;
4200     # !!! pythonBase is used instead of python because this causes an
4201     # infinite recursion when the flag python.full is set to true.
4202     # Packages contained in the loop are python, tk, xlibs-wrapper,
4203     # libX11, libxcd (and xcb-proto).
4204     python = pythonBase;
4205   });
4207   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4209   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4211   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4212     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4213   });
4216   ### OS-SPECIFIC
4218   afuse = callPackage ../os-specific/linux/afuse { };
4220   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4222   _915resolution = callPackage ../os-specific/linux/915resolution { };
4224   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4226   acpi = callPackage ../os-specific/linux/acpi { };
4228   acpid = callPackage ../os-specific/linux/acpid { };
4230   acpitool = callPackage ../os-specific/linux/acpitool { };
4232   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4234   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4235   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4237   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4239   bluez = callPackage ../os-specific/linux/bluez { };
4241   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
4243   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4245   conky = callPackage ../os-specific/linux/conky { };
4247   cpufrequtils = (
4248     import ../os-specific/linux/cpufrequtils {
4249     inherit fetchurl stdenv libtool gettext;
4250     glibc = stdenv.gcc.libc;
4251     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4252   });
4254   cryopid = callPackage ../os-specific/linux/cryopid { };
4256   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4258   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4260   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4262   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4264   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4266   devicemapper = lvm2;
4268   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4270   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4272   dietlibc = callPackage ../os-specific/linux/dietlibc {
4273     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4274     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4275   };
4277   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4278     inherit libjpeg pkgconfig zlib directfb;
4279     inherit (xlibs) xproto;
4280   };
4282   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4283     inherit devicemapper;
4284   };
4286   libuuid =
4287     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
4288     then (utillinuxng // {
4289       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
4290         # `libblkid' fails to build on GNU/Hurd.
4291         configureFlags = args.configureFlags
4292           + " --disable-libblkid --disable-mount --disable-fsck"
4293           + " --enable-static";
4294         doCheck = false;
4295         CPPFLAGS =                    # ugly hack for ugly software!
4296           lib.concatStringsSep " "
4297             (map (v: "-D${v}=4096")
4298                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
4299       });
4300     })
4301     else if stdenv.isLinux
4302     then utillinuxng
4303     else null;
4305   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4307   eject = callPackage ../os-specific/linux/eject { };
4309   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4310     inherit fontconfig gpm freetype pkgconfig ncurses;
4311   };
4313   fuse = callPackage ../os-specific/linux/fuse { };
4315   fxload = callPackage ../os-specific/linux/fxload { };
4317   gpm = callPackage ../servers/gpm {
4318     flex = flex2535;
4319   };
4321   hal = callPackage ../os-specific/linux/hal { };
4323   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4325   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4327   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4329   hdparm = callPackage ../os-specific/linux/hdparm { };
4331   hibernate = callPackage ../os-specific/linux/hibernate { };
4333   htop = callPackage ../os-specific/linux/htop { };
4335   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4336     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4337       mig glibcCross;
4338     automake = automake111x;
4339     headersOnly = false;
4340     cross = assert crossSystem != null; crossSystem;
4341     gccCross = gccCrossStageFinal;
4342   });
4344   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4345     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4346       mig glibcCross;
4347     automake = automake111x;
4348     headersOnly = false;
4349     cross = assert crossSystem != null; crossSystem;
4351     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4352     # particular) so we first need an intermediate Hurd built with the
4353     # intermediate GCC.
4354     gccCross = gccCrossStageStatic;
4356     # This intermediate Hurd is only needed to build libpthread, which really
4357     # only needs libihash.
4358     buildTarget = "libihash";
4359     installTarget = "libihash-install";
4360   });
4362   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4363     automake = automake111x;
4364     headersOnly = true;
4365     gccCross = null;
4366     glibcCross = null;
4367   };
4369   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4370     inherit fetchgit stdenv autoconf automake libtool
4371       machHeaders hurdHeaders glibcCross;
4372     hurd = hurdCrossIntermediate;
4373     gccCross = gccCrossStageStatic;
4374     cross = assert crossSystem != null; crossSystem;
4375   });
4377   hwdata = callPackage ../os-specific/linux/hwdata { };
4379   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4381   iproute = callPackage ../os-specific/linux/iproute { };
4383   iputils = (
4384     import ../os-specific/linux/iputils {
4385     inherit fetchurl stdenv;
4386     glibc = stdenv.gcc.libc;
4387     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4388   });
4390   iptables = callPackage ../os-specific/linux/iptables { };
4392   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4394   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4396   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4398   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4400   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4402   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4404   kbd = callPackage ../os-specific/linux/kbd { };
4406   libcroup = callPackage ../os-specific/linux/libcg { };
4408   linuxHeaders = linuxHeaders_2_6_28;
4410   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4411     inherit stdenv fetchurl perl;
4412     cross = assert crossSystem != null; crossSystem;
4413   });
4415   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4416     inherit stdenv fetchurl perl;
4417     cross = assert crossSystem != null; crossSystem;
4418   });
4420   # We can choose:
4421   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4422     else if (ver == "2.6") then linuxHeaders26Cross
4423     else throw "Unknown linux kernel version";
4425   linuxHeadersCross = assert crossSystem != null;
4426     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4428   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4430   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4432   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4434   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4436   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4437     inherit fetchurl stdenv perl mktemp module_init_tools;
4438     kernelPatches =
4439       [ kernelPatches.fbcondecor_2_6_25
4440         kernelPatches.sec_perm_2_6_24
4441       ];
4442   };
4444   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4445     inherit fetchurl stdenv perl mktemp module_init_tools;
4446     kernelPatches =
4447       [ kernelPatches.fbcondecor_2_6_27
4448         kernelPatches.sec_perm_2_6_24
4449       ];
4450   };
4452   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4453     inherit fetchurl stdenv perl mktemp module_init_tools;
4454     kernelPatches =
4455       [ kernelPatches.fbcondecor_2_6_28
4456         kernelPatches.sec_perm_2_6_24
4457         kernelPatches.ext4_softlockups_2_6_28
4458       ];
4459   };
4461   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4462     inherit fetchurl stdenv perl mktemp module_init_tools;
4463     kernelPatches =
4464       [ kernelPatches.fbcondecor_2_6_29
4465         kernelPatches.sec_perm_2_6_24
4466       ];
4467   };
4469   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4470     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4471     kernelPatches = [];
4472   };
4474   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4475     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4476     kernelPatches =
4477       [ kernelPatches.fbcondecor_2_6_31
4478         kernelPatches.sec_perm_2_6_24
4479         kernelPatches.aufs2_2_6_32
4480         kernelPatches.cifs_timeout
4481         kernelPatches.no_xsave
4482         kernelPatches.dell_rfkill
4483       ];
4484   };
4486   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
4487     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4488     kernelPatches =
4489       [ kernelPatches.fbcondecor_2_6_31
4490         kernelPatches.sec_perm_2_6_24
4491         kernelPatches.aufs2_2_6_32
4492         kernelPatches.cifs_timeout
4493         kernelPatches.no_xsave
4494         kernelPatches.dell_rfkill
4495       ];
4496   };
4498   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4499     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4500     extraConfig =
4501       ''
4502         DEBUG_KERNEL y
4503         KPROBES y # kernel probes (needs `utrace' for process probes)
4504         DEBUG_INFO y
4505         RELAY y
4506         DEBUG_FS y
4507       '';
4508     dontStrip = true;
4509     kernelPatches =
4510       [ kernelPatches.fbcondecor_2_6_31
4511         kernelPatches.sec_perm_2_6_24
4512         kernelPatches.tracehook_2_6_32
4513         kernelPatches.utrace_2_6_32
4514       ];
4515   };
4517   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4518     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4519   };
4521   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4522     features = {
4523       oldI686 = true;
4524     };
4525   };
4527   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4528     features = {
4529       ckSched = true;
4530     };
4531   };
4533   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4534     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4535     kernelPatches =
4536       [ kernelPatches.fbcondecor_2_6_33
4537         kernelPatches.sec_perm_2_6_24
4538       ];
4539   };
4541   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4542     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4543   };
4545   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4546     features = {
4547       oldI686 = true;
4548     };
4549   };
4551   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4552     features = {
4553       ckSched = true;
4554     };
4555   };
4557   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4558     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4559     kernelPatches =
4560       [ /*kernelPatches.fbcondecor_2_6_33*/
4561         kernelPatches.sec_perm_2_6_24
4562         kernelPatches.aufs2_2_6_34
4563       ];
4564   };
4566   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
4567     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4568     kernelPatches =
4569       [ #kernelPatches.fbcondecor_2_6_35
4570         kernelPatches.sec_perm_2_6_24
4571         kernelPatches.aufs2_2_6_35
4572       ];
4573   };
4575   linux_2_6_35_oldI686 = linux_2_6_35.override {
4576       extraConfig = ''
4577           HIGHMEM64G? n
4578           XEN? n
4579       '';
4580       extraMeta = {
4581         platforms = ["i686-linux"];
4582         maintainers = [lib.maintainers.raskin];
4583       };
4584   };
4586   /* Linux kernel modules are inherently tied to a specific kernel.  So
4587      rather than provide specific instances of those packages for a
4588      specific kernel, we have a function that builds those packages
4589      for a specific kernel.  This function can then be called for
4590      whatever kernel you're using. */
4592   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4594     inherit kernel;
4596     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4598     aufs = callPackage ../os-specific/linux/aufs { };
4600     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4602     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4604     blcr = callPackage ../os-specific/linux/blcr {
4605       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
4606     };
4608     exmap = callPackage ../os-specific/linux/exmap {
4609       inherit (gtkLibs) gtkmm;
4610     };
4612     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
4614     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4616     iwlwifi4965ucode =
4617       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4618           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4619        then iwlwifi4965ucodeV2
4620        else iwlwifi4965ucodeV1);
4622     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4624     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4626     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
4627     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
4629     openafsClient = callPackage ../servers/openafs-client { };
4630     
4631     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
4633     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4635     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4636       inherit kernel perl;
4637     };
4639     splashutils =
4640       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4642     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4643       kernel_ext3cowpatched = kernel;
4644     };
4646     /* compiles but has to be integrated into the kernel somehow
4647       Let's have it uncommented and finish it..
4648     */
4649     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4651     ov511 = callPackage ../os-specific/linux/ov511 {
4652       stdenv = overrideGCC stdenv gcc34;
4653     };
4655     # State Nix
4656     snix = callPackage ../tools/package-management/snix {
4658       aterm = aterm25;
4659       db4 = db45;
4661       flex = flex2533;
4662       ext3cow_kernel = kernel;    };
4664     sysprof = callPackage ../development/tools/profiling/sysprof {
4665       inherit (gnome) gtk glib pango libglade;
4666     };
4668     systemtap = callPackage ../development/tools/profiling/systemtap {
4669       linux = kernel;
4670       inherit (gnome) gtkmm libglademm;
4671     };
4673     virtualbox = callPackage ../applications/virtualization/virtualbox {
4674       stdenv = stdenv_32bit;
4675       inherit (gnome) libIDL;
4676     };
4678     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4679   };
4681   # Build the kernel modules for the some of the kernels.
4682   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4683   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4684   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4685   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4686   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4687   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4688   linuxPackages_2_6_32_systemtap =
4689     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4690   linuxPackages_2_6_32_xen =
4691     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
4692   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4693   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4694   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
4696   # The current default kernel / kernel modules.
4697   linux = linux_2_6_32;
4698   linuxPackages = linuxPackages_2_6_32;
4700   keyutils = callPackage ../os-specific/linux/keyutils { };
4702   libselinux = callPackage ../os-specific/linux/libselinux { };
4704   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4706   libsexy = callPackage ../development/libraries/libsexy {
4707     inherit (gtkLibs) glib gtk pango;
4708   };
4710   librsvg = gnome.librsvg;
4712   libsepol = callPackage ../os-specific/linux/libsepol { };
4714   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4716   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4718   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4720   klibc = callPackage ../os-specific/linux/klibc {
4721     linuxHeaders = glibc.kernelHeaders;
4722   };
4724   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4726   kvm = qemu_kvm;
4728   libcap = callPackage ../os-specific/linux/libcap { };
4730   libnscd = callPackage ../os-specific/linux/libnscd { };
4732   libnotify = callPackage ../development/libraries/libnotify { };
4734   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4736   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4738   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4739   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4740   # compiler for that host.
4741   mach = callPackage ../os-specific/gnu/mach {
4742     automake = automake111x;  };
4744   machHeaders = callPackage ../os-specific/gnu/mach {
4745     automake = automake111x;
4746     headersOnly = true;
4747     mig = null;
4748   };
4750   mdadm = callPackage ../os-specific/linux/mdadm { };
4752   mingetty = callPackage ../os-specific/linux/mingetty { };
4754   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4756   mountall = callPackage ../os-specific/linux/mountall {
4757     automake = automake111x;
4758   };
4760   aggregateModules = modules:
4761     import ../os-specific/linux/module-init-tools/aggregator.nix {
4762       inherit stdenv module_init_tools modules buildEnv;
4763     };
4765   modutils = callPackage ../os-specific/linux/modutils {
4766     stdenv = overrideGCC stdenv gcc34;
4767   };
4769   nettools = callPackage ../os-specific/linux/net-tools { };
4771   neverball = callPackage ../games/neverball { };
4773   numactl = callPackage ../os-specific/linux/numactl { };
4775   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
4776     inherit fetchurl stdenv nettools openssl procps iproute;
4777   };
4779   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
4781   pam = callPackage ../os-specific/linux/pam { };
4783   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
4785   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
4786     db = db4;
4787   };
4789   pam_console = callPackage ../os-specific/linux/pam_console {
4790     libtool = libtool_1_5;
4791     flex = if stdenv.system == "i686-linux" then flex else flex2533;
4792   };
4794   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
4796   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
4798   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
4800   pam_login = callPackage ../os-specific/linux/pam_login { };
4802   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
4804   pam_usb = callPackage ../os-specific/linux/pam_usb { };
4806   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
4807     firmware = getConfig ["pcmciaUtils" "firmware"] [];
4808     config = getConfig ["pcmciaUtils" "config"] null;
4809   };
4811   pmount = callPackage ../os-specific/linux/pmount { };
4813   pmutils = callPackage ../os-specific/linux/pm-utils { };
4815   powertop = callPackage ../os-specific/linux/powertop { };
4817   procps = callPackage ../os-specific/linux/procps { };
4819   pwdutils = callPackage ../os-specific/linux/pwdutils { };
4821   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
4823   radeontools = callPackage ../os-specific/linux/radeontools { };
4825   rfkill = callPackage ../os-specific/linux/rfkill { };
4827   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
4829   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
4831   sdparm = callPackage ../os-specific/linux/sdparm { };
4833   shadow = callPackage ../os-specific/linux/shadow { };
4835   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
4837   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
4839   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
4841   # Provided with sysfsutils.
4842   libsysfs = sysfsutils;
4843   systool = sysfsutils;
4845   sysklogd = callPackage ../os-specific/linux/sysklogd { };
4847   syslinux = callPackage ../os-specific/linux/syslinux { };
4849   sysstat = callPackage ../os-specific/linux/sysstat { };
4851   sysvinit = callPackage ../os-specific/linux/sysvinit { };
4853   sysvtools = callPackage ../os-specific/linux/sysvinit {
4854     withoutInitTools = true;
4855   };
4857   # FIXME: `tcp-wrapper' is actually not OS-specific.
4858   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
4860   trackballs = callPackage ../games/trackballs {
4861     debug = false;
4862   };
4864   tunctl = callPackage ../os-specific/linux/tunctl { };
4866   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
4867     inherit mesa tcl freeglut;
4868     inherit (xlibs) libX11 xproto;
4869   };*/
4871   ubootChooser = name : if (name == "upstream") then ubootUpstream
4872     else if (name == "sheevaplug") then ubootSheevaplug
4873     else throw "Unknown uboot";
4875   ubootUpstream = callPackage ../misc/uboot { };
4877   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
4879   uclibc = callPackage ../os-specific/linux/uclibc { };
4881   uclibcCross = import ../os-specific/linux/uclibc {
4882     inherit fetchurl stdenv;
4883     linuxHeaders = linuxHeadersCross;
4884     gccCross = gccCrossStageStatic;
4885     cross = assert crossSystem != null; crossSystem;
4886   };
4888   udev = callPackage ../os-specific/linux/udev { };
4890   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
4891     inherit fetchurl stdenv perl mktemp module_init_tools;
4892     userModeLinux = true;
4893   };
4895   umlutilities = callPackage ../os-specific/linux/uml-utilities {
4896     tunctl = true; mconsole = true;
4897   };
4899   upstart = callPackage ../os-specific/linux/upstart { };
4901   usbutils = callPackage ../os-specific/linux/usbutils { };
4903   utillinux = utillinuxng;
4905   utillinuxCurses = utillinuxngCurses;
4907   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
4908     ncurses = null;
4909   };
4911   utillinuxngCurses = utillinuxng.override {
4912     inherit ncurses;
4913   };
4915   windows = rec {
4916     w32api = callPackage ../os-specific/windows/w32api {
4917       gccCross = gccCrossStageStatic;
4918       binutilsCross = binutilsCross;
4919     };
4921     w32api_headers = w32api.override {
4922       onlyHeaders = true;
4923     };
4925     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
4926       gccCross = gccCrossMingw2;
4927       binutilsCross = binutilsCross;
4928     };
4930     mingw_runtime_headers = mingw_runtime.override {
4931       onlyHeaders = true;
4932     };
4934     mingw_headers1 = buildEnv {
4935       name = "mingw-headers-1";
4936       paths = [ w32api_headers mingw_runtime_headers ];
4937     };
4939     mingw_headers2 = buildEnv {
4940       name = "mingw-headers-2";
4941       paths = [ w32api mingw_runtime_headers ];
4942     };
4944     mingw_headers3 = buildEnv {
4945       name = "mingw-headers-3";
4946       paths = [ w32api mingw_runtime ];
4947     };
4949     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
4950   };
4952   wesnoth = callPackage ../games/wesnoth {
4953     inherit (gtkLibs) pango;
4954   };
4956   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
4958   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
4959     guiSupport = false;
4960   };
4961   # prebuild binaries:
4962   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
4964   # deprecated, but contains icon ? Does no longer build
4965   /* didn't build Sun Apr 25 20:34:18 CEST 2010
4966   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
4967   */
4969   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
4971   xmoto = builderDefsPackage (import ../games/xmoto) {
4972     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
4973       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
4974       lua5 ode libxdg_basedir;
4975   };
4977   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
4979   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
4981   ### DATA
4983   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
4984   };
4986   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
4988   cacert = callPackage ../data/misc/cacert { };
4990   corefonts = callPackage ../data/fonts/corefonts { };
4992   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
4993     inherit fetchurl stdenv builderDefs paths ttmkfdir;
4994     inherit (xorg) mkfontdir mkfontscale;
4995   });
4997   clearlyU = callPackage ../data/fonts/clearlyU { };
4999   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
5000     inherit (perlPackages) FontTTF;
5001   };
5003   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
5005   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
5007   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
5009   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
5011   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
5013   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
5015   docbook_xml_xslt = docbook_xsl;
5017   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
5019   docbook5_xsl = docbook_xsl_ns;
5021   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
5023   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
5025   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
5027   junicode = callPackage ../data/fonts/junicode { };
5029   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
5031   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
5032     inherit fontforge;
5033   };
5034   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
5035   };
5037   lmodern = callPackage ../data/fonts/lmodern { };
5039   manpages = callPackage ../data/documentation/man-pages { };
5041   miscfiles = callPackage ../data/misc/miscfiles { };
5043   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
5045   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
5047   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
5049   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
5051   stdmanpages = callPackage ../data/documentation/std-man-pages { };
5053   iana_etc = callPackage ../data/misc/iana-etc { };
5055   popplerData = callPackage ../data/misc/poppler-data { };
5057   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
5059   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
5061   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
5063   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
5064     inherit fetchurl;
5065   };
5067   terminus_font = callPackage ../data/fonts/terminus-font { };
5069   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5071   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5073   unifont = callPackage ../data/fonts/unifont { };
5075   vistafonts = callPackage ../data/fonts/vista-fonts { };
5077   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5079   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5081   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5084   ### APPLICATIONS
5087   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
5089   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
5091   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
5093   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
5095   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
5097   abcde = callPackage ../applications/audio/abcde { };
5099   abiword = callPackage ../applications/office/abiword {
5100     inherit (gnome) libglade libgnomecanvas;
5101   };
5103   adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
5104     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5105   };
5107   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5108     libstdcpp = gcc33.gcc;
5109   };
5111   ardour = callPackage ../applications/audio/ardour {
5112     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5113     inherit (gnome) libgnomecanvas;
5114   };
5116   audacious = callPackage ../applications/audio/audacious { };
5118   audacity = callPackage ../applications/audio/audacity { };
5120   aumix = callPackage ../applications/audio/aumix {
5121     gtkGUI = false;
5122   };
5124   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5126   avidemux = callPackage ../applications/video/avidemux {
5127     stdenv = stdenv2;
5128   };
5130   awesome = callPackage ../applications/window-managers/awesome {
5131     inherit (gtkLibs) glib pango;
5132     lua = lua5;
5133     cairo = cairo.override { xcbSupport = true; };
5134   };
5136   bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
5138   batik = callPackage ../applications/graphics/batik { };
5140   bazaar = callPackage ../applications/version-management/bazaar {
5141     python = pythonFull;
5142   };
5144   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5145     inherit bazaar;
5146   };
5148   beast = callPackage ../applications/audio/beast {
5149     inherit (gnome) libgnomecanvas libart_lgpl;
5150   };
5152   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5154   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5156   # commented out because it's using the new configuration style proposal which is unstable
5157   #biew = import ../applications/misc/biew {
5158   #  inherit lib stdenv fetchurl ncurses;
5159   #};
5161   # only to be able to compile blender - I couldn't compile the default openal software
5162   # Perhaps this can be removed - don't know which one openal{,soft} is better
5163   freealut_soft = callPackage ../development/libraries/freealut {
5164     openal = openalSoft;  };
5166   blender = callPackage ../applications/misc/blender/2.49.nix {
5167     python = python26Base;
5168     stdenv = stdenv2;
5169   };
5171   blender_2_50 = lowPrio (import ../applications/misc/blender {
5172     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5173       libsamplerate libtiff ilmbase;
5174     inherit (xlibs) libXi;
5175     python = python31Base;
5176     stdenv = stdenv2;
5177   });
5179   bmp = callPackage ../applications/audio/bmp {
5180     inherit (gnome) esound libglade;
5181   };
5183   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5185   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5187   bvi = callPackage ../applications/editors/bvi { };
5189   calibre = callPackage ../applications/misc/calibre {
5190     python = python26Full;
5191     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5192   };
5194   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5195     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5196       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5197       libtool automake autoconf;
5198     GStreamer = gst_all.gstreamer;
5199     inherit (gtkLibs) gtk glib;
5200     inherit (gnome) startupnotification GConf ;
5201     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5202   };
5203   funpidgin = carrier;
5205   cddiscid = callPackage ../applications/audio/cd-discid { };
5207   cdparanoia = cdparanoiaIII;
5209   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5211   cdrtools = callPackage ../applications/misc/cdrtools { };
5213   chatzilla =
5214     xulrunnerWrapper {
5215       launcher = "chatzilla";
5216       application = callPackage ../applications/networking/irc/chatzilla { };
5217     };
5219   chrome = callPackage ../applications/networking/browsers/chromium {
5220     inherit (gtkLibs) gtk glib pango atk;
5221     inherit (gnome) GConf;
5222     patchelf = patchelf06;
5223     libjpeg = libjpeg62;
5224   };
5226   chromeWrapper = wrapFirefox chrome "chrome" "";
5228   cinelerra = callPackage ../applications/video/cinelerra {
5229     fftw = fftwSinglePrec;
5230     inherit (gnome) esound;
5231   };
5233   compizBase = (builderDefsPackage (import ../applications/window-managers/compiz/0.8.0.nix)) {
5234     inherit lib stringsWithDeps builderDefs;
5235     inherit fetchurl stdenv pkgconfig libpng mesa perl perlXMLParser libxslt gettext
5236       intltool binutils;
5237     inherit (xorg) libXcomposite libXfixes libXdamage libXrandr
5238       libXinerama libICE libSM libXrender xextproto compositeproto fixesproto
5239       damageproto randrproto xineramaproto renderproto kbproto xproto libX11
5240       libxcb;
5241     inherit (gnome) startupnotification libwnck GConf;
5242     inherit (gtkLibs) gtk;
5243     inherit (gnome) libgnome libgnomeui metacity
5244       glib pango libglade libgtkhtml gtkhtml
5245       libgnomecanvas libgnomeprint
5246       libgnomeprintui gnomepanel;
5247     gnomegtk = gnome.gtk;
5248     inherit librsvg fuse;
5249     inherit dbus dbus_glib;
5250   };
5252   compiz = compizBase.passthru.function (x : x // {
5253     extraConfigureFlags = getConfig ["compiz" "extraConfigureFlags"] [];
5254   });
5256   compizFusion = callPackage ../applications/window-managers/compiz-fusion {
5257     version = getConfig ["compizFusion" "version"] "0.7.8";
5258     inherit (gnome) startupnotification libwnck GConf;
5259     inherit (gnome) libgnome libgnomeui metacity
5260       glib pango libglade libgtkhtml gtkhtml
5261       libgnomecanvas libgnomeprint
5262       libgnomeprintui gnomepanel gnomedesktop;
5263     inherit pyrex;
5264     gnomegtk = gnome.gtk;
5265   };
5267   compizExtra = callPackage ../applications/window-managers/compiz/extra.nix {
5268     inherit (gnome) GConf;
5269   };
5271   cinepaint = callPackage ../applications/graphics/cinepaint {
5272     fltk = fltk11;
5273   };
5275   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5276     inherit makeWrapper;
5277     python = pythonFull;
5278   };
5280   comical = callPackage ../applications/graphics/comical {
5281     wxGTK = wxGTK26;
5282   };
5284   conkeror = xulrunnerWrapper {
5285     launcher = "conkeror";
5286     application = callPackage ../applications/networking/browsers/conkeror { };
5287   };
5289   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5290     inherit cmake patchelf;
5291     imagemagick=imagemagick;
5292   };
5294   cvs = callPackage ../applications/version-management/cvs { };
5296   cvsps = callPackage ../applications/version-management/cvsps { };
5298   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5300   d4x = callPackage ../applications/misc/d4x { };
5302   darcs = haskellPackages.darcs;
5304   dia = callPackage ../applications/graphics/dia { };
5306   djvulibre = callPackage ../applications/misc/djvulibre { };
5308   djview4 = callPackage ../applications/graphics/djview { };
5310   dmenu = callPackage ../applications/misc/dmenu { };
5312   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5313     inherit libpng libtiff libjpeg imagemagick librsvg
5314       pkgconfig bzip2 zlib libtool freetype fontconfig
5315       ghostscript jasper;
5316     inherit (xlibs) libX11;
5317   };
5319   dvdauthor = callPackage ../applications/video/dvdauthor { };
5321   dwm = callPackage ../applications/window-managers/dwm {
5322     patches = getConfig [ "dwm" "patches" ] [];
5323   };
5325   eaglemode = callPackage ../applications/misc/eaglemode { };
5327   eclipse = callPackage ../applications/editors/eclipse {
5328     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5329     # working correctly.
5330     inherit (gtkLibs216) glib gtk;
5331   };
5332   eclipseLatest = eclipse.override { version = "latest"; };
5334   ed = callPackage ../applications/editors/ed { };
5336   elinks = callPackage ../applications/networking/browsers/elinks { };
5338   elvis = callPackage ../applications/editors/elvis { };
5340   emacs = emacs23;
5342   emacs22 = callPackage ../applications/editors/emacs-22 {
5343     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5344     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5345   };
5347   emacs23 = callPackage ../applications/editors/emacs-23 {
5348     # use override to select the appropriate gui toolkit
5349     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5350     Xaw3d = null;
5351     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5352     # TODO: these packages don't build on Darwin.
5353     gconf = if stdenv.isDarwin then null else gnome.GConf;
5354     librsvg = if stdenv.isDarwin then null else librsvg;
5355   };
5357   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
5358     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5359     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5360     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5361     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5362     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5363   });
5365   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5366     inherit emacs;
5368     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5370     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5372     cua = callPackage ../applications/editors/emacs-modes/cua { };
5374     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5376     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5378     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5380     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5382     emms = callPackage ../applications/editors/emacs-modes/emms { };
5384     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5385       # Requires Emacs 23, for `avl-tree'.
5386     };
5388     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5390     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5392     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5394     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
5396     magit = callPackage ../applications/editors/emacs-modes/magit { };
5398     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5400     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5402     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5403     # we want it to have higher precedence.
5404     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
5406     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5408     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5410     quack = callPackage ../applications/editors/emacs-modes/quack { };
5412     remember = callPackage ../applications/editors/emacs-modes/remember { };
5414     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5416     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5417   };
5419   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5420   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
5422   epdfview = callPackage ../applications/misc/epdfview { };
5424   espeak = callPackage ../applications/audio/espeak { };
5426   evince = callPackage ../applications/misc/evince {
5427     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5428       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5429   };
5431   evolution_data_server = (newScope (gnome // gtkLibs))
5432   ../servers/evolution-data-server {
5433   };
5435   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5436     fltk = fltk20;
5437   };
5439   fbpanel = callPackage ../applications/window-managers/fbpanel { };
5441   fetchmail = import ../applications/misc/fetchmail {
5442     inherit stdenv fetchurl openssl;
5443   };
5445   fossil = callPackage ../applications/version-management/fossil { };
5447   grass = import ../applications/misc/grass {
5448     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5449       libXaw libXrender;
5450     inherit getConfig composableDerivation stdenv fetchurl
5451       lib flex bison cairo fontconfig
5452       gdal zlib ncurses gdbm proj pkgconfig swig
5453       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5454       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5455     fftw = fftwSinglePrec;
5456     motif = lesstif;
5457     opendwg = libdwg;
5458     wxPython = wxPython28;
5459   };
5461   grip = callPackage ../applications/misc/grip {
5462     inherit (gnome) libgnome libgnomeui vte;
5463   };
5465   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5467   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
5469   wvdial = callPackage ../os-specific/linux/wvdial { };
5471   fbida = builderDefsPackage ../applications/graphics/fbida {
5472     inherit libjpeg libexif giflib libtiff libpng
5473       imagemagick ghostscript which curl pkgconfig
5474       freetype fontconfig;
5475   };
5477   fdupes = callPackage ../tools/misc/fdupes { };
5479   feh = callPackage ../applications/graphics/feh { };
5481   firefox = firefox36Pkgs.firefox;
5482   firefoxWrapper = firefox36Wrapper;
5484   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5485     inherit (gtkLibs) gtk pango;
5486     inherit (gnome) libIDL;
5487   };
5489   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5491   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5492     inherit (gtkLibs) gtk pango;
5493     inherit (gnome) libIDL;
5494   };
5496   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5498   flac = callPackage ../applications/audio/flac { };
5500   flashplayer = flashplayer10;
5502   flashplayer9 = (
5503     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5504       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5505       inherit (xlibs) libX11 libXext libXrender libXt;
5506       inherit (gtkLibs) gtk glib pango atk;
5507     });
5509   flashplayer10 = (
5510     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5511       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat;
5512       inherit (xlibs) libX11 libXext libXrender libXt ;
5513       inherit (gtkLibs) gtk glib pango atk;
5514       debug = getConfig ["flashplayer" "debug"] false;
5515     });
5517   flite = callPackage ../applications/misc/flite { };
5519   freemind = callPackage ../applications/misc/freemind {
5520     jdk = jdk;
5521     jre = jdk;
5522   };
5524   freepv = callPackage ../applications/graphics/freepv { };
5526   xfontsel = callPackage ../applications/misc/xfontsel { };
5527   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5529   fspot = callPackage ../applications/graphics/f-spot {
5530     inherit (gnome) libgnome libgnomeui;
5531     gtksharp = gtksharp1;
5532   };
5534   gimp = callPackage ../applications/graphics/gimp {
5535     inherit (gnome) gtk libart_lgpl;
5536   };
5538   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5539     inherit pkgs gimp;
5540   });
5542   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5543     inherit pkgs;
5544   });
5545   git = gitAndTools.git;
5546   gitFull = gitAndTools.gitFull;
5548   gnucash = callPackage ../applications/office/gnucash {
5549     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5550       libgnomeprint;
5551     gconf = gnome.GConf;
5552   };
5554   qcad = callPackage ../applications/misc/qcad { };
5556   qjackctl = callPackage ../applications/audio/qjackctl {
5557     qt4 = qt4;
5558   };
5560   gkrellm = callPackage ../applications/misc/gkrellm { };
5562   gnash = callPackage ../applications/video/gnash {
5563     inherit (gnome) gtkglext;
5564     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
5565   };
5567   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5568     inherit (gnome) GConf;
5569   };
5571   gnunet = callPackage ../applications/networking/p2p/gnunet {
5572     inherit (gnome) gtk libglade;
5573     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5574   };
5576   gocr = callPackage ../applications/graphics/gocr { };
5578   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5580   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5581     inherit libgphoto2 fuse pkgconfig glib;
5582   };
5584   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5586   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5588   gtkpod = callPackage ../applications/audio/gtkpod {
5589     inherit (gnome) libglade;
5590   };
5592   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5593     inherit libpng libcv;
5594   };
5596   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5597     inherit libpng pkgconfig;
5598   };
5600   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5601     inherit (gnome) GConf;
5602     browser = firefox;
5603   };
5605   geeqie = callPackage ../applications/graphics/geeqie { };
5607   gqview = callPackage ../applications/graphics/gqview { };
5609   googleearth = callPackage_i686 ../applications/misc/googleearth { };
5611   gosmore = builderDefsPackage ../applications/misc/gosmore {
5612     inherit fetchsvn curl pkgconfig libxml2;
5613     inherit (gtkLibs) gtk;
5614   };
5616   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5618   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
5620   gpsd = callPackage ../servers/gpsd {
5621     # We need a Python with NCurses bindings.
5622     python = pythonFull;
5623   };
5625   gv = callPackage ../applications/misc/gv { };
5627   hello = callPackage ../applications/misc/hello/ex-2 { };
5629   homebank = callPackage ../applications/office/homebank { };
5631   htmldoc = callPackage ../applications/misc/htmldoc {
5632     fltk = fltk11;
5633   };
5635   hugin = callPackage ../applications/graphics/hugin {
5636     stdenv = stdenv2;
5637   };
5639   i810switch = callPackage ../os-specific/linux/i810switch { };
5641   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5642     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5643       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5644       wirelesstools;
5645     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5646     inherit (xlibs) pixman;
5647     inherit (pythonPackages) ply;
5648   });
5650   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5651     application = "xulrunner";
5652     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5653       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5654       wirelesstools;
5655     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5656     inherit (xlibs) pixman;
5657     inherit (pythonPackages) ply;
5658   });
5660   icecat3Xul =
5661     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5662        [ icecat3 icecatXulrunner3 ])
5663     // { inherit (icecat3) gtk isFirefox3Like meta; };
5665   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5667   icewm = callPackage ../applications/window-managers/icewm { };
5669   id3v2 = callPackage ../applications/audio/id3v2 { };
5671   ikiwiki = callPackage ../applications/misc/ikiwiki {
5672     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5673       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5674       RpcXML XMLSimple PerlMagick;
5675     gitSupport = getPkgConfig "ikiwiki" "git" false;
5676     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5677     extraUtils = [];
5678   };
5680   imagemagick = callPackage ../applications/graphics/ImageMagick {
5681     tetex = null;
5682     librsvg = null;
5683   };
5685   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5687   # Impressive, formerly known as "KeyJNote".
5688   impressive = callPackage ../applications/office/impressive {
5690     # XXX These are the PyOpenGL dependencies, which we need here.
5692     inherit (pythonPackages) pyopengl;  };
5694   inkscape = callPackage ../applications/graphics/inkscape {
5695     inherit (pythonPackages) lxml;
5696     inherit (gtkLibs) gtk glib glibmm gtkmm;
5697   };
5699   ion3 = callPackage ../applications/window-managers/ion-3 {
5700     lua = lua5;
5701   };
5703   iptraf = callPackage ../applications/networking/iptraf { };
5705   irssi = callPackage ../applications/networking/irc/irssi { };
5707   jackmeter = callPackage ../applications/audio/jackmeter { };
5709   jedit = callPackage ../applications/editors/jedit { };
5711   jigdo = callPackage ../applications/misc/jigdo { };
5713   joe = callPackage ../applications/editors/joe { };
5715   jwm = callPackage ../applications/window-managers/jwm { };
5717   kermit = callPackage ../tools/misc/kermit { };
5719   kino = import ../applications/video/kino {
5720     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5721       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5722     inherit libsamplerate ffmpeg;
5723     inherit (gnome) libglade gtk glib;
5724     inherit (xlibs) libXv libX11;
5725   };
5727   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
5729   ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
5731   lame = callPackage ../applications/audio/lame { };
5733   larswm = callPackage ../applications/window-managers/larswm { };
5735   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
5737   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
5738     fftw = fftwSinglePrec;
5739   };
5741   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
5742     inherit (gnome) libglade;
5743   };
5745   links = callPackage ../applications/networking/browsers/links { };
5747   ledger = callPackage ../applications/office/ledger { };
5749   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
5750     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
5751       gpm openssl SDL SDL_image SDL_net pkgconfig;
5752     inherit (xlibs) libX11 libXau xproto libXt;
5753   };
5755   lynx = callPackage ../applications/networking/browsers/lynx { };
5757   lyx = callPackage ../applications/misc/lyx {
5758    qt = qt4;
5759   };
5761   matchbox = callPackage ../applications/window-managers/matchbox { };
5763   meld = callPackage ../applications/version-management/meld {
5764     inherit (gnome) scrollkeeper;
5765     pygtk = pyGtkGlade;
5766   };
5768   mercurial = callPackage ../applications/version-management/mercurial {
5769     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
5770     python = # allow cloning sources from https servers.
5771       if getConfig ["mercurial" "httpsSupport"] true
5772       then pythonFull
5773       else pythonBase;
5774   };
5776   merkaartor = callPackage ../applications/misc/merkaartor {
5777     qt = qt4;
5778   };
5780   meshlab = callPackage ../applications/graphics/meshlab {
5781     qt = qt4;
5782   };
5784   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
5785     inherit imagemagick intltool python pkgconfig webkit libxml2
5786       which gettext makeWrapper file libidn sqlite docutils libnotify
5787       vala dbus_glib;
5788     inherit (gtkLibs) gtk glib;
5789     inherit (gnome28) gtksourceview;
5790     inherit (webkit.passthru.args) libsoup;
5791     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
5792   };
5794   minicom = callPackage ../tools/misc/minicom { };
5796   mmex = callPackage ../applications/office/mmex { };
5798   monodevelop = callPackage ../applications/editors/monodevelop {
5799     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
5800     mozilla = firefox;
5801     gtksharp = gtksharp2;
5802   };
5804   monodoc = callPackage ../applications/editors/monodoc {
5805     gtksharp = gtksharp1;
5806   };
5808   monotone = callPackage ../applications/version-management/monotone {
5809     lua = lua5;
5810   };
5812   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
5813     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
5814     inherit (gnome) gtk libgnomecanvas glib;
5815   };
5817   mozilla = callPackage ../applications/networking/browsers/mozilla {
5818     inherit (gnome) libIDL;
5819   };
5821   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
5822     inherit firefox;
5823     inherit (xlibs) libX11 xproto;
5824   };
5826   mpc123 = callPackage ../applications/audio/mpc123 { };
5828   mpg321 = callPackage ../applications/audio/mpg321 { };
5830   MPlayer = callPackage ../applications/video/MPlayer { };
5832   MPlayerPlugin = browser:
5833     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
5834       inherit browser;
5835       inherit fetchurl stdenv pkgconfig gettext;
5836       inherit (xlibs) libXpm;
5837       # !!! should depend on MPlayer
5838     };
5840   mrxvt = callPackage ../applications/misc/mrxvt { };
5842   multisync = callPackage ../applications/misc/multisync {
5843     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
5844   };
5846   mutt = callPackage ../applications/networking/mailreaders/mutt { };
5848   msmtp = callPackage ../applications/networking/msmtp { };
5850   mupdf = callPackage ../applications/misc/mupdf {
5851   };
5853   mythtv = callPackage ../applications/video/mythtv {
5854     qt3 = qt3mysql;
5855   };
5857   nano = callPackage ../applications/editors/nano { };
5859   navipowm = callPackage ../applications/misc/navipowm {
5860   };
5862   navit = callPackage ../applications/misc/navit { };
5864   nedit = callPackage ../applications/editors/nedit {
5865       motif = lesstif;
5866   };
5868   netsurfBrowser = netsurf.browser;
5869   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
5871   nvi = callPackage ../applications/editors/nvi { };
5873   openjump = callPackage ../applications/misc/openjump { };
5875   openoffice = callPackage ../applications/office/openoffice {
5876     inherit (perlPackages) ArchiveZip CompressZlib;
5877     inherit (gnome) GConf ORBit2;
5878     neon = neon029;
5879     stdenv = stdenv2;
5880   };
5882   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
5883     inherit (perlPackages) ArchiveZip CompressZlib;
5884     inherit (gnome) GConf ORBit2;
5885     neon = neon029;
5886     stdenv = stdenv2;
5887   };
5889   opera = callPackage ../applications/networking/browsers/opera {
5890     qt = qt3;
5891   };
5893   pan = callPackage ../applications/networking/newsreaders/pan {
5894     gmime = gmime_2_2;
5895     spellChecking = false;
5896   };
5898   panotools = callPackage ../applications/graphics/panotools { };
5900   pavucontrol = callPackage ../applications/audio/pavucontrol {
5901     inherit (gtkLibs) gtkmm;
5902     inherit (gnome) libglademm;
5903   };
5905   paraview = callPackage ../applications/graphics/paraview {
5906     stdenv = stdenv2;
5907   };
5909   partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
5911   pdftk = callPackage ../tools/typesetting/pdftk { };
5913   pidgin = import ../applications/networking/instant-messengers/pidgin {
5914     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
5915       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
5916     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
5917     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
5918     GStreamer = gst_all.gstreamer;
5919     inherit (gtkLibs) gtk;
5920     inherit (gnome) startupnotification;
5921     inherit (xlibs) libXScrnSaver;
5922     inherit (gst_all) gstPluginsBase;
5923   };
5925   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
5926     imagemagick = imagemagickBig;
5927   };
5929   pidginlatexSF = builderDefsPackage
5930     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
5931     {
5932       inherit pkgconfig pidgin texLive imagemagick which;
5933       inherit (gtkLibs) glib gtk;
5934     };
5936   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
5938   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
5940   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
5942   pinfo = callPackage ../applications/misc/pinfo { };
5944   pinta = callPackage ../applications/graphics/pinta {
5945     gtksharp = gtksharp2;
5946   };
5948   pqiv = callPackage ../applications/graphics/pqiv { };
5950   # perhaps there are better apps for this task? It's how I had configured my preivous system.
5951   # And I don't want to rewrite all rules
5952   procmail = callPackage ../applications/misc/procmail { };
5954   pstree = callPackage ../applications/misc/pstree { };
5956   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
5958   qemu = callPackage ../applications/virtualization/qemu/0.12.3.nix { };
5960   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
5962   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
5964   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
5966   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
5968   ratpoison = callPackage ../applications/window-managers/ratpoison { };
5970   rawtherapee = callPackage ../applications/graphics/rawtherapee {
5971     inherit (gtkLibs) gtk gtkmm;
5972   };
5974   rcs = callPackage ../applications/version-management/rcs { };
5976   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
5978   RealPlayer = callPackage ../applications/video/RealPlayer {
5979       inherit (gtkLibs) glib pango atk gtk;
5980       libstdcpp5 = gcc33.gcc;
5981   };
5983   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
5985   rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
5987   rsync = callPackage ../applications/networking/sync/rsync {
5988     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
5989   };
5991   rxvt = callPackage ../applications/misc/rxvt { };
5993   # = urxvt
5994   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
5995     perlSupport = false;  };
5997   sakura = callPackage ../applications/misc/sakura {
5998     inherit (gnome) vte;
5999   };
6001   sbagen = callPackage ../applications/misc/sbagen { };
6003   scribus = callPackage ../applications/office/scribus {
6004     inherit (gnome) libart_lgpl;
6005     qt = qt3;
6006   };
6008   seeks = callPackage ../tools/networking/p2p/seeks { };
6010   seg3d = callPackage ../applications/graphics/seg3d {
6011     wxGTK = wxGTK28.override {
6012       unicode = false;
6013   };
6014   };
6016   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
6018   skype_linux = callPackage_i686 ../applications/networking/skype { };
6020   slim = callPackage ../applications/display-managers/slim { };
6022   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6023     inherit fetchurl stdenv stringsWithDeps lib fftw;
6024     inherit pkgconfig gmp gettext;
6025     inherit (xlibs) libXpm libX11;
6026     inherit (gtkLibs) gtk glib;
6027   };
6029   snd = sndBase.passthru.function {
6030     inherit guile mesa libtool jackaudio alsaLib;
6031   };
6033   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6034     inherit (vamp) vampSDK;
6035     qt = qt4;
6036   };
6038   sox = callPackage ../applications/misc/audio/sox { };
6040   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6041     inherit texinfo;
6042     clisp = clisp_2_44_1;
6043   };
6045   subversion = callPackage ../applications/version-management/subversion/default.nix {
6046     neon = neon029;
6047     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6048     httpServer = getConfig ["subversion" "httpServer"] false;
6049     httpSupport = getConfig ["subversion" "httpSupport"] true;
6050     sslSupport = getConfig ["subversion" "sslSupport"] true;
6051     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6052     perlBindings = getConfig ["subversion" "perlBindings"] false;
6053     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6054     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6055     httpd = apacheHttpd;
6056   };
6058   svk = perlPackages.SVK;
6060   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6061     sslSupport = true;
6062     gpgSupport = true;
6063   };
6065   # linux only by now
6066   synergy = callPackage ../applications/misc/synergy { };
6068   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6069     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6070       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6071       numpy pyasn1;
6072     mock = pythonPackages.mock060;
6073   };
6075   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6076     inherit makeWrapper python;
6077   };
6079   tangogps = callPackage ../applications/misc/tangogps {
6080     gconf = gnome.GConf;
6081   };
6083   /* does'nt work yet i686-linux only (32bit version)
6084   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6085   */
6087   taskJuggler = callPackage ../applications/misc/taskjuggler {
6088     qt = qt3;
6090     # KDE support is not working yet.
6091     inherit (kde3) kdelibs kdebase;
6092     withKde = getPkgConfig "taskJuggler" "kde" false;
6093   };
6095   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6097   thunderbird = thunderbird3;
6099   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6100     inherit (gnome) libIDL;
6101   };
6103   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6104     inherit (gnome) libIDL;
6105   };
6107   timidity = callPackage ../tools/misc/timidity { };
6109   tkcvs = callPackage ../applications/version-management/tkcvs { };
6111   tla = callPackage ../applications/version-management/arch { };
6113   transmission = callPackage ../applications/networking/p2p/transmission { };
6115   twinkle = callPackage ../applications/networking/twinkle {
6116     qt = qt3;
6117     boost = boostFull;
6118   };
6120   unison = callPackage ../applications/networking/sync/unison { };
6122   uucp = callPackage ../tools/misc/uucp { };
6124   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6125     inherit pkgconfig webkit makeWrapper;
6126     inherit (gtkLibs) gtk glib;
6127     inherit (xlibs) libX11;
6128     libsoup = gnome28.libsoup_2_31;
6129   };
6131   valknut = callPackage ../applications/networking/p2p/valknut {
6132     qt = qt3;
6133   };
6135   veracity = callPackage ../applications/version-management/veracity {};
6137   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6138   {
6139     inherit
6140       monotone flup cheetahTemplate highlight ctags
6141       makeWrapper graphviz which python;
6142   };
6144   vim = callPackage ../applications/editors/vim { };
6146   vimHugeX = vim_configurable;
6148   vim_configurable = import ../applications/editors/vim/configurable.nix {
6149     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6150     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
6151         libXt libXaw libXau libXmu libICE;
6152     inherit (pkgs.gtkLibs) glib gtk;
6153     features = "huge"; # one of  tiny, small, normal, big or huge
6154     # optional features by passing
6155     # python
6156     # TODO mzschemeinterp perlinterp
6157     inherit (pkgs) python perl tcl ruby /*x11*/;
6159     lua = pkgs.lua5;
6161     # optional features by flags
6162     flags = [ "X11" ]; # only flag "X11" by now
6163   };
6165   virtualgl = callPackage ../tools/X11/virtualgl { };
6167   vlc = callPackage ../applications/video/vlc {
6168     dbus = dbus.libs;
6169     alsa = alsaLib;
6170     lua = lua5;
6171   };
6173   vnstat = callPackage ../applications/networking/vnstat { };
6175   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6177   vwm = callPackage ../applications/window-managers/vwm { };
6179   w3m = callPackage ../applications/networking/browsers/w3m {
6180     graphicsSupport = false;
6181   };
6183   weechat = callPackage ../applications/networking/irc/weechat { };
6185   wings = callPackage ../applications/graphics/wings { };
6187   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6188   wmiimenu = import ../applications/window-managers/wmii31 {
6189     libixp = libixp_for_wmii;
6190     inherit fetchurl /* fetchhg */ stdenv gawk;
6191     inherit (xlibs) libX11;
6192   };
6194   wmiiSnap = import ../applications/window-managers/wmii {
6195     libixp = libixp_for_wmii;
6196     inherit fetchurl /* fetchhg */ stdenv gawk;
6197     inherit (xlibs) libX11 xextproto libXt libXext;
6198     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6199   };
6201   wordnet = callPackage ../applications/misc/wordnet { };
6203   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6204     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6205     plugins =
6206       let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6207       in
6208        ([]
6209         ++ lib.optional (!enableAdobeFlash) gnash
6210         ++ lib.optional enableAdobeFlash flashplayer
6211         # RealPlayer is disabled by default for legal reasons.
6212         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6213         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6214         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6215         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6216        );
6217   };
6219   x11vnc = callPackage ../tools/X11/x11vnc { };
6221   x2vnc = callPackage ../tools/X11/x2vnc { };
6223   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6224     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6225     inherit gsl aalib zlib libpng intltool gettext perl;
6226   };
6228   xara = callPackage ../applications/graphics/xara {
6229     wxGTK = wxGTK26;
6230   };
6232   xawtv = callPackage ../applications/video/xawtv { };
6234   xchat = callPackage ../applications/networking/irc/xchat { };
6236   xchm = callPackage ../applications/misc/xchm { };
6238   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6240   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6242   xen = callPackage ../applications/virtualization/xen {
6243     python = pythonFull;
6244   };
6246   xfig = callPackage ../applications/graphics/xfig {
6247     stdenv = overrideGCC stdenv gcc34;
6248   };
6250   xineUI = callPackage ../applications/video/xine-ui { };
6252   xmms = callPackage ../applications/audio/xmms {
6253     inherit (gnome) esound;
6254     inherit (gtkLibs1x) glib gtk;
6255     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6256   };
6258   xneur = callPackage ../applications/misc/xneur {
6259     GStreamer=gst_all.gstreamer;
6260     inherit (gtkLibs) glib gtk pango atk;
6261   };
6263   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6264     GStreamer = gst_all.gstreamer;
6265   };
6267   xournal = callPackage ../applications/graphics/xournal {
6268     inherit (gtkLibs) gtk atk pango glib;
6269     inherit (gnome) libgnomeprint libgnomeprintui
6270       libgnomecanvas;
6271   };
6273   xpdf = callPackage ../applications/misc/xpdf {
6274     motif = lesstif;
6275     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6276   };
6278   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
6279   };
6281   xpra = callPackage ../tools/X11/xpra {
6282     pyrex = pyrex095;
6283   };
6285   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6286     inherit (gnome) libglade;
6287   };
6289   xterm = callPackage ../applications/misc/xterm { };
6291   xtrace = callPackage ../tools/X11/xtrace { };
6293   xlaunch = callPackage ../tools/X11/xlaunch { };
6295   xmacro = callPackage ../tools/X11/xmacro { };
6297   xmove = callPackage ../applications/misc/xmove { };
6299   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6300     inherit (gtkLibs) gtk;
6301     inherit (xlibs) libX11 libXtst xextproto libXext
6302       inputproto libXi xproto recordproto;
6303     inherit pkgconfig;
6304   };
6306   xvidcap = callPackage ../applications/video/xvidcap {
6307     inherit (gnome) scrollkeeper libglade;
6308   };
6310   yate = callPackage ../applications/misc/yate {
6311     qt = qt4;
6312   };
6314   # doesn't compile yet - in case someone else want's to continue ..
6315   # use Trunk because qgisReleased segfaults no resize for now
6316   qgis = qgisTrunk;
6317   qgisReleased = (import ../applications/misc/qgis) {
6318     inherit composableDerivation fetchsvn stdenv flex lib
6319             ncurses fetchurl perl cmake gdal geos proj x11
6320             gsl libpng zlib bison
6321             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6322             python postgresql pyqt4;
6323     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6324     inherit (xorg) libICE;
6325     qt = qt4;
6327     # optional features
6328     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6329   };
6331   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6332     qgis = qgisReleased;
6333   };
6335   yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
6337   zapping = callPackage ../applications/video/zapping {
6338     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6339     teletextSupport = true;
6340     jpegSupport = true;
6341     pngSupport = true;
6342     recordingSupport = true;
6343   };
6345   zathura = callPackage ../applications/misc/zathura { };
6347   ### GAMES
6349   asc = callPackage ../games/asc {
6350     lua = lua5;
6351     libsigcxx = libsigcxx12;
6352   };
6354   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6356   blackshades = callPackage ../games/blackshades { };
6358   blackshadeselite = callPackage ../games/blackshadeselite { };
6360   bsdgames = callPackage ../games/bsdgames { };
6362   castle_combat = callPackage ../games/castle-combat { };
6364   construoBase = callPackage ../games/construo {
6365     mesa = null;
6366     freeglut = null;
6367   };
6369   construo = construoBase.override {
6370     inherit mesa freeglut;
6371   };
6373   eduke32 = callPackage ../games/eduke32 { };
6375   egoboo = callPackage ../games/egoboo { };
6377   exult = callPackage ../games/exult {
6378     stdenv = overrideGCC stdenv gcc42;
6379   };
6381   /*
6382   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6383     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6384       autoconf automake libtool flex bison;
6385   });
6386   */
6388   freedink = callPackage ../games/freedink { };
6390   fsg = callPackage ../games/fsg {
6391     wxGTK = wxGTK28.override { unicode = false; };
6392   };
6394   gemrb = callPackage ../games/gemrb { };
6396   gltron = callPackage ../games/gltron { };
6398   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6399     flex = flex2535;
6400   };
6402   gnugo = callPackage ../games/gnugo { };
6404   gparted = callPackage ../tools/misc/gparted {
6405     inherit (gtkLibs) gtk glib gtkmm;
6406     inherit (gnome) gnomedocutils;
6407   };
6409   hexen = callPackage ../games/hexen { };
6411   kobodeluxe = callPackage ../games/kobodeluxe { };
6413   lincity = builderDefsPackage (import ../games/lincity) {
6414     inherit (xlibs) libX11 libXext xextproto
6415       libICE libSM xproto;
6416     inherit libpng zlib;
6417   };
6419   micropolis = callPackage ../games/micropolis { };
6421   openttd = callPackage ../games/openttd {
6422     zlib = zlibStatic;
6423   };
6425   pioneers = callPackage ../games/pioneers { };
6427   quake3demo = callPackage ../games/quake3/wrapper {
6428     name = "quake3-demo-${quake3game.name}";
6429     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6430     game = quake3game;
6431     paks = [quake3demodata];
6432   };
6434   quake3demodata = callPackage ../games/quake3/demo { };
6436   quake3game = callPackage ../games/quake3/game { };
6438   rogue = callPackage ../games/rogue { };
6440   scummvm = callPackage ../games/scummvm { };
6442   scorched3d = callPackage ../games/scorched3d {
6443     wxGTK = wxGTK26;
6444   };
6446   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6447     inherit (gtkLibs) gtk;
6448     inherit pkgconfig fetchsvn perl;
6449     inherit (xlibs) libX11;
6450   };
6452   six = callPackage ../games/six {
6453     inherit (kde3) arts kdelibs;
6454   };
6456   # You still can override by passing more arguments.
6457   spaceOrbit = callPackage ../games/orbit {
6458     inherit (gnome) esound;  };
6460   superTux = callPackage ../games/super-tux { };
6462   superTuxKart = callPackage ../games/super-tux-kart { };
6464   teeworlds = callPackage ../games/teeworlds { };
6466   tennix = callPackage ../games/tennix { };
6468   /*tpm = import ../games/thePenguinMachine {
6469     inherit stdenv fetchurl pil pygame SDL;
6470     python24 = python;
6471   };*/
6473   tremulous = callPackage ../games/tremulous { };
6475   torcs = callPackage ../games/torcs {
6476     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
6477     # i686 is the only platform I know than can do that linking without plib built with -fPIC
6478     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
6479   };
6481   ufoai = callPackage ../games/ufoai {
6482     inherit (gnome) gtksourceview gtkglext;
6483   };
6485   ultimatestunts = callPackage ../games/ultimatestunts { };
6487   urbanterror = callPackage ../games/urbanterror { };
6489   ut2004demo = callPackage ../games/ut2004demo { };
6491   warsow = callPackage ../games/warsow {
6492     libjpeg = libjpeg62;
6493   };
6495   warzone2100 = callPackage ../games/warzone2100 {
6496     flex = flex2535;
6497   };
6499   xboard = builderDefsPackage (import ../games/xboard) {
6500     inherit (xlibs) libX11 xproto libXt libXaw libSM
6501       libICE libXmu libXext libXpm;
6502     inherit gnuchess texinfo;
6503   };
6505   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6506     inherit (xlibs) libX11 xproto libXpm libXt;
6507   };
6509   zdoom = callPackage ../games/zdoom { };
6511   zoom = callPackage ../games/zoom { };
6513   keen4 = callPackage ../games/keen4 { };
6516   ### DESKTOP ENVIRONMENTS
6519   enlightenment = callPackage ../desktops/enlightenment { };
6521   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6523   gnome = gnome28;
6525   kde3 = recurseIntoAttrs {
6527     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6528       stdenv = overrideGCC stdenv gcc43;
6529       qt = qt3;
6530     };
6532     kdebase = callPackage ../desktops/kde-3/kdebase {
6533       stdenv = overrideGCC stdenv gcc43;
6534       inherit (kde3) kdelibs;
6535       qt = qt3;
6536     };
6538     arts = callPackage ../development/libraries/arts {
6539       qt = qt3;
6540       inherit (gnome) glib;
6541       inherit (kde3) kdelibs;
6542     };
6544     k3b = callPackage ../applications/misc/k3b {
6545       inherit (kde3) kdelibs;
6546     };
6548     kbasket = callPackage ../applications/misc/kbasket {
6549       stdenv = overrideGCC stdenv gcc43;
6550       inherit (kde3) kdelibs;
6551     };
6553     kile = callPackage ../applications/editors/kile {
6554       inherit (kde3) arts kdelibs;
6555       qt = qt3;
6556     };
6558     kphone = callPackage ../applications/networking/kphone {
6559       qt = qt3;
6560       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6561     };
6563     kuickshow = callPackage ../applications/graphics/kuickshow {
6564       inherit (kde3) arts kdelibs;
6565       qt = qt3;
6566     };
6568     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6569       inherit (kde3) kdelibs;
6570       qt = qt3;
6571     };
6573   };
6575   kde4 = kde44;
6577   kde44 = makeOverridable (import ../desktops/kde-4.4) (pkgs // {
6578     qt4 = pkgs.qt46;
6579     stdenv = pkgs.stdenv2;
6580   });
6582   kde45 = callPackage ../desktops/kde-4.5 {
6583     callPackage = newScope ({
6584       qjson  = pkgs.qjson.override { inherit (pkgs.kde45) qt4; };
6585       pyqt4 = pkgs.pyqt4.override { inherit (pkgs.kde45) qt4; };
6586       libdbusmenu_qt = pkgs.libdbusmenu_qt.override { inherit (pkgs.kde45) qt4; };
6587       libktorrent = pkgs.libktorrent.override {
6588         inherit (pkgs.kde45) qt4 kdelibs;
6589       };
6590       shared_desktop_ontologies = pkgs.shared_desktop_ontologies.override { v = "0.5"; };
6591       stdenv = pkgs.stdenv2;
6592     } // pkgs.kde45);
6593   };
6595   xfce = xfce4;
6597   xfce4 = recurseIntoAttrs
6598     (let callPackage = newScope pkgs.xfce4; in
6599      import ../desktops/xfce-4 { inherit callPackage pkgs; });
6602   ### SCIENCE
6604   xplanet = callPackage ../applications/science/xplanet {
6605     inherit (gtkLibs) pango;
6606   };
6609   ### SCIENCE/GEOMETRY
6611   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6612     inherit (gnome) libglade gtk;
6613     inherit libxml2 guile perl intltool libtool pkgconfig;
6614   };
6616   tetgen = callPackage ../applications/science/geometry/tetgen { };
6619   ### SCIENCE/BIOLOGY
6621   alliance = callPackage ../applications/science/electronics/alliance {
6622     motif = lesstif;
6623   };
6625   arb = callPackage ../applications/science/biology/arb {
6626     lesstif = lesstif93;
6627     stdenv = overrideGCC stdenv gcc42;
6628   };
6630   biolib = callPackage ../development/libraries/science/biology/biolib { };
6632   emboss = callPackage ../applications/science/biology/emboss { };
6634   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6636   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6637     inherit tcsh mesa lesstif;
6638     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6639       libXmu libXext;
6640   };
6642   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6644   paml = callPackage ../applications/science/biology/paml { };
6646   /* slr = import ../applications/science/biology/slr {
6647     inherit fetchurl stdenv liblapack;
6648   }; */
6650   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6653   ### SCIENCE/MATH
6655   atlas = callPackage ../development/libraries/science/math/atlas { };
6657   blas = callPackage ../development/libraries/science/math/blas { };
6659   content = builderDefsPackage ../applications/science/math/content {
6660     inherit mesa lesstif;
6661     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6662       libXmu libXext libXcursor;
6663   };
6665   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6668   ### SCIENCE/LOGIC
6670   coq = callPackage ../applications/science/logic/coq {
6671     camlp5 = camlp5_transitional;
6672   };
6674   coq8_3 = callPackage ../applications/science/logic/coq/8.3rc1.nix {
6675     camlp5 = camlp5_transitional;
6676   };
6678   coq_beta = callPackage ../applications/science/logic/coq/beta.nix {
6679     camlp5 = camlp5_transitional;
6680   };
6682   eprover = callPackage ../applications/science/logic/eProver {
6683     texLive = texLiveAggregationFun {
6684       paths = [
6685         texLive texLiveExtra
6686       ];
6687   };
6688   };
6690   hol = callPackage ../applications/science/logic/hol { };
6692   hol_light = callPackage ../applications/science/logic/hol_light { };
6694   hol_light_binaries = callPackage ../applications/science/logic/hol_light/binaries.nix { };
6696   isabelle = import ../applications/science/logic/isabelle {
6697     inherit (pkgs) stdenv fetchurl nettools perl polyml;
6698     inherit (pkgs.emacs23Packages) proofgeneral;
6699   };
6701   prover9 = callPackage ../applications/science/logic/prover9 { };
6703   ssreflect = callPackage ../applications/science/logic/ssreflect {
6704     camlp5 = camlp5_transitional;
6705   };
6707   ### SCIENCE / ELECTRONICS
6709   kicad = callPackage ../applications/science/electronics/kicad {
6710     stdenv = stdenv2;
6711   };
6713   ngspice = callPackage ../applications/science/electronics/ngspice { };
6715   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
6717   xoscope = callPackage ../applications/science/electronics/xoscope { };
6720   ### SCIENCE / MATH
6722   maxima = callPackage ../applications/science/math/maxima { };
6724   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
6726   scilab = callPackage ../applications/science/math/scilab {
6727     withXaw3d = false;
6728     withTk = true;
6729     withGtk = false;
6730     withOCaml = true;
6731     withX = true;
6732   };
6734   yacas = callPackage ../applications/science/math/yacas { };
6736   ### SCIENCE / MISC
6738   golly = callPackage ../applications/science/misc/golly { };
6740   simgrid = callPackage ../applications/science/misc/simgrid {
6741     stdenv = stdenv2;
6742   };
6744   tulip = callPackage ../applications/science/misc/tulip {
6745     qt = qt4;
6746   };
6748   vite = callPackage ../applications/science/misc/vite {
6749     qt = qt4;
6750     stdenv = stdenv2;
6751   };
6753   ### MISC
6755   atari800 = callPackage ../misc/emulators/atari800 { };
6757   ataripp = callPackage ../misc/emulators/atari++ { };
6759   auctex = callPackage ../misc/tex/auctex { };
6761   busybox = callPackage ../misc/busybox {
6762     enableStatic = true;
6763   };
6765   cups = callPackage ../misc/cups { };
6767   gutenprint = callPackage ../misc/drivers/gutenprint { };
6769   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
6771   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
6773   dblatex = callPackage ../misc/tex/dblatex { };
6775   dosbox = callPackage ../misc/emulators/dosbox { };
6777   dpkg = callPackage ../tools/package-management/dpkg { };
6779   ekiga = lib.callPackageWith (pkgs // pkgs.xorg // pkgs.gtkLibs // pkgs.gnome)
6780     ../applications/networking/ekiga {};
6782   electricsheep = callPackage ../misc/screensavers/electricsheep { };
6784   foldingathome = callPackage ../misc/foldingathome { };
6786   freestyle = callPackage ../misc/freestyle {
6787     #stdenv = overrideGCC stdenv gcc41;
6788   };
6790   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
6791     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
6792       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
6793       docutils;
6794     dbus = dbus.libs;
6795     inherit (gnome) gtk libglade;
6796     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
6797       scrnsaverproto;
6798     python = pythonFull;
6799   };
6801   generator = callPackage ../misc/emulators/generator {
6802     inherit (gtkLibs1x) gtk;
6803   };
6805   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
6807   ghostscript = callPackage ../misc/ghostscript {
6808     x11Support = false;
6809     cupsSupport = getPkgConfig "ghostscript" "cups" true;
6810   };
6812   ghostscriptX = lowPrio (appendToName "with-X" (ghostscript.override {
6813     x11Support = true;
6814   }));
6816   gxemul = callPackage ../misc/gxemul { };
6818   hplip = callPackage ../misc/drivers/hplip {
6819     qtSupport = true;
6820   };
6822   # using the new configuration style proposal which is unstable
6823   jackaudio = callPackage ../misc/jackaudio { };
6825   keynav = callPackage ../tools/X11/keynav { };
6827   lazylist = callPackage ../misc/tex/lazylist { };
6829   lilypond = callPackage ../misc/lilypond {
6830     inherit (gtkLibs) pango;
6831     flex = flex2535;
6832   };
6834   martyr = callPackage ../development/libraries/martyr { };
6836   maven = callPackage ../misc/maven/maven-1.0.nix { };
6838   maven2 = callPackage ../misc/maven { };
6840   mess = callPackage ../misc/emulators/mess { };
6842   nix = nixStable;
6844   nixStable = callPackage ../tools/package-management/nix {
6845     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6846     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6847   };
6849   nixUnstable = nixStable;
6850   /*
6851   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
6852     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6853     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6854   };
6855   */
6857   # The SQLite branch.
6858   nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
6859     inherit fetchurl stdenv perl curl bzip2 openssl sqlite;
6860     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6861     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6862   });
6864   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
6865     import ../tools/package-management/nix/custom.nix {
6866       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
6867         autoconf libtool configureFlags enableScripts lib bison libxml2;
6868       flex = flex2533;
6869       aterm = aterm25;
6870       db4 = db45;
6871       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
6872     };
6874   disnix = callPackage ../tools/package-management/disnix { };
6876   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts { };
6878   DisnixService = callPackage ../tools/package-management/disnix/DisnixService { };
6880   latex2html = callPackage ../misc/tex/latex2html/default.nix {
6881     tex = tetex;
6882   };
6884   pgadmin = callPackage ../applications/misc/pgadmin { };
6886   pgf = pgf2;
6888   # Keep the old PGF since some documents don't render properly with
6889   # the new one.
6890   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
6892   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
6894   polytable = callPackage ../misc/tex/polytable { };
6896   psi = makeOverridable (callPackage ../applications/networking/instant-messengers/psi) {
6897     qca2 = kde45.qca2;
6898     qca2_ossl = kde45.qca2_ossl;
6899     qt4 = qt47;
6900   };
6902   putty = callPackage ../applications/networking/remote/putty { };
6904   rssglx = callPackage ../misc/screensavers/rss-glx { };
6906   xlockmore = callPackage ../misc/screensavers/xlockmore {
6907     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
6908   };
6910   saneBackends = callPackage ../misc/sane-backends {
6911     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
6912   };
6914   saneFrontends = callPackage ../misc/sane-front { };
6916   sourceAndTags = import ../misc/source-and-tags {
6917     inherit pkgs stdenv unzip lib ctags;
6918     hasktags = haskellPackages.myhasktags;
6919   };
6921   splix = callPackage ../misc/cups/drivers/splix { };
6923   tetex = callPackage ../misc/tex/tetex { };
6925   tex4ht = callPackage ../misc/tex/tex4ht { };
6927   texFunctions = import ../misc/tex/nix pkgs;
6929   texLive = builderDefsPackage (import ../misc/tex/texlive) {
6930     inherit builderDefs zlib bzip2 ncurses libpng ed
6931       gd t1lib freetype icu perl ruby expat curl
6932       libjpeg bison python fontconfig;
6933     inherit (xlibs) libXaw libX11 xproto libXt libXpm
6934       libXmu libXext xextproto libSM libICE;
6935     flex = flex2535;
6936     ghostscript = ghostscriptX;
6937   };
6939   /* Look in configurations/misc/raskin.nix for usage example (around revisions
6940   where TeXLive was added)
6942   (texLiveAggregationFun {
6943     paths = [texLive texLiveExtra texLiveCMSuper
6944       texLiveBeamer
6945     ];
6946   })
6948   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
6949   Just installing a few packages doesn't work.
6950   */
6951   texLiveAggregationFun =
6952     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
6954   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
6955     inherit texLive;
6956   };
6958   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
6959     inherit texLive;
6960   };
6962   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
6963     inherit texLive;
6964   };
6966   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
6967     inherit texLive;
6968   };
6970   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
6971     inherit texLiveLatexXColor texLive;
6972   };
6974   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
6975     inherit texLiveLatexXColor texLivePGF texLive;
6976   };
6978   trac = callPackage ../misc/trac {
6979     inherit (pythonPackages) pysqlite;
6980   };
6982   vice = callPackage ../misc/emulators/vice { };
6984   # Wine cannot be built in 64-bit; use a 32-bit build instead.
6985   wine = callPackage_i686 ../misc/emulators/wine {
6986     flex = pkgsi686Linux.flex2535;
6987   };
6989   x2x = callPackage ../tools/X11/x2x { };
6991   xosd = callPackage ../misc/xosd { };
6993   xsane = callPackage ../misc/xsane { };
6995   yafc = callPackage ../applications/networking/yafc { };
6997   myEnvFun = import ../misc/my-env {
6998     inherit substituteAll pkgs;
6999     inherit (stdenv) mkDerivation;
7000   };
7002   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
7004 }; in pkgs