* Add ocaml packages findlib, camlzip, ocaml-ssl, ocaml-batteries, menhir, camomile...
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blob34a112d1978647fef2f693722c3f6867b5aebdbd
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);
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   };
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   buildEnv = import ../build-support/buildenv {
237     inherit runCommand perl;
238   };
240   dotnetenv = import ../build-support/dotnetenv {
241     inherit stdenv;
242     dotnetfx = dotnetfx35;
243   };
245   vsenv = callPackage ../build-support/vsenv {
246     vs = vs90wrapper;
247   };
249   fetchbzr = import ../build-support/fetchbzr {
250     inherit stdenv bazaar;
251   };
253   fetchcvs = import ../build-support/fetchcvs {
254     inherit stdenv cvs;
255   };
257   fetchdarcs = import ../build-support/fetchdarcs {
258     inherit stdenv darcs nix;
259   };
261   fetchgit = import ../build-support/fetchgit {
262     inherit stdenv git;
263   };
265   fetchmtn = import ../build-support/fetchmtn {
266     inherit monotone stdenv;
267     cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
268     defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
269   };
271   fetchsvn = import ../build-support/fetchsvn {
272     inherit stdenv subversion openssh;
273     sshSupport = true;
274   };
276   fetchsvnssh = import ../build-support/fetchsvnssh {
277     inherit stdenv subversion openssh expect;
278     sshSupport = true;
279   };
281   fetchhg = import ../build-support/fetchhg {
282     inherit stdenv mercurial nix;
283   };
285   # `fetchurl' downloads a file from the network.
286   fetchurl = import ../build-support/fetchurl {
287     inherit curl stdenv;
288   };
290   # fetchurlBoot is used for curl and its dependencies in order to
291   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
292   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
293   # uses the curl from the previous bootstrap phase (e.g. a statically
294   # linked curl in the case of stdenv-linux).
295   fetchurlBoot = stdenv.fetchurlBoot;
297   resolveMirrorURLs = {url}: fetchurl {
298     showURLs = true;
299     inherit url;
300   };
302   makeDesktopItem = import ../build-support/make-desktopitem {
303     inherit stdenv;
304   };
306   makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
307     inherit stdenv perl cpio contents ubootChooser;
308   };
310   makeWrapper = makeSetupHook ../build-support/make-wrapper/make-wrapper.sh;
312   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
313     import ../build-support/kernel/modules-closure.nix {
314       inherit stdenv module_init_tools kernel nukeReferences
315         rootModules allowMissing;
316     };
318   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
320   srcOnly = args: (import ../build-support/src-only) ({inherit stdenv; } // args);
322   substituteAll = import ../build-support/substitute/substitute-all.nix {
323     inherit stdenv;
324   };
326   nukeReferences = callPackage ../build-support/nuke-references/default.nix { };
328   vmTools = import ../build-support/vm/default.nix {
329     inherit pkgs;
330   };
332   releaseTools = import ../build-support/release/default.nix {
333     inherit pkgs;
334   };
336   composableDerivation = (import ../lib/composable-derivation.nix) {
337     inherit pkgs lib;
338   };
340   platforms = import ./platforms.nix;
342   ### TOOLS
344   acct = callPackage ../tools/system/acct { };
346   aefs = callPackage ../tools/filesystems/aefs { };
348   aircrackng = callPackage ../tools/networking/aircrack-ng { };
350   asymptote = builderDefsPackage ../tools/graphics/asymptote {
351     inherit freeglut ghostscriptX imagemagick fftw boehmgc
352       mesa ncurses readline gsl libsigsegv python zlib perl
353       texinfo lzma;
354     texLive = texLiveAggregationFun {
355       paths = [
356         texLive texLiveExtra
357       ];
358     };
359   };
361   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
363   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
365   altermime = callPackage ../tools/networking/altermime {};
367   amule = callPackage ../tools/networking/p2p/amule { };
369   amuleDaemon = appendToName "daemon" (amule.override {
370     monolithic = false;
371     daemon = true;
372   });
374   amuleGui = appendToName "gui" (amule.override {
375     monolithic = false;
376     client = true;
377   });
379   aria = builderDefsPackage (import ../tools/networking/aria) {
380   };
382   aria2 = callPackage ../tools/networking/aria2 { };
384   at = callPackage ../tools/system/at { };
386   autogen = callPackage ../development/tools/misc/autogen { };
388   autojump = callPackage ../tools/misc/autojump { };
390   avahi =
391     let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
392     in
393       makeOverridable (import ../development/libraries/avahi) {
394         inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
395           expat gettext intltool lib;
396         inherit (gtkLibs) glib gtk;
397         inherit qt4Support;
398         qt4 = if qt4Support then qt4 else null;
399       };
401   axel = callPackage ../tools/networking/axel { };
403   azureus = callPackage ../tools/networking/p2p/azureus { };
405   barcode = callPackage ../tools/graphics/barcode {};
407   bc = callPackage ../tools/misc/bc { };
409   bfr = callPackage ../tools/misc/bfr { };
411   bootchart = callPackage ../tools/system/bootchart { };
413   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
414     inherit libuuid zlib acl;
415   };
417   catdoc = callPackage ../tools/text/catdoc { };
419   eggdrop = callPackage ../tools/networking/eggdrop { };
421   mcrl = callPackage ../tools/misc/mcrl { };
423   mcrl2 = callPackage ../tools/misc/mcrl2 { };
425   syslogng = callPackage ../tools/misc/syslog-ng { };
427   asciidoc = callPackage ../tools/typesetting/asciidoc { };
429   autossh = callPackage ../tools/networking/autossh { };
431   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
432     inherit (strategoPackages016) strategoxt sdf;
433   };
435   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
436     wxPython = wxPython26;
437     gui = true;
438   };
440   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
442   blueman = callPackage ../tools/bluetooth/blueman {
443     inherit (pythonPackages) notify;
444   };
446   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
447     inherit unzip;
448   };
450   bogofilter = callPackage ../tools/misc/bogofilter {
451     bdb = db4;
452   };
454   bsdiff = callPackage ../tools/compression/bsdiff { };
456   bzip2 = callPackage ../tools/compression/bzip2 { };
458   cabextract = callPackage ../tools/archivers/cabextract { };
460   ccid = callPackage ../tools/security/ccid { };
462   ccrypt = callPackage ../tools/security/ccrypt { };
464   cdecl = callPackage ../development/tools/cdecl { };
466   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
468   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
470   cfdg = builderDefsPackage ../tools/graphics/cfdg {
471     inherit libpng bison flex;
472   };
474   checkinstall = callPackage ../tools/package-management/checkinstall { };
476   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
477     inherit makeWrapper python;
478   };
480   chkrootkit = callPackage ../tools/security/chkrootkit { };
482   cksfv = callPackage ../tools/networking/cksfv { };
484   convertlit = callPackage ../tools/text/convertlit { };
486   unifdef = callPackage ../development/tools/misc/unifdef { };
488   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
490   cloogppl = callPackage ../development/libraries/cloog-ppl { };
492   convmv = callPackage ../tools/misc/convmv { };
494   coreutils = callPackage (if stdenv ? isDietLibC
495       then ../tools/misc/coreutils-5
496       else ../tools/misc/coreutils)
497     {
498       # TODO: Add ACL support for cross-Linux.
499       aclSupport = crossSystem == null && stdenv.isLinux;
500     };
502   cpio = callPackage ../tools/archivers/cpio { };
504   cromfs = callPackage ../tools/archivers/cromfs { };
506   cron = callPackage ../tools/system/cron {  # see also fcron
507   };
509   curl = makeOverridable (import ../tools/networking/curl) rec {
510     fetchurl = fetchurlBoot;
511     inherit stdenv zlib openssl libssh2;
512     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
513     sslSupport = zlibSupport;
514     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
515   };
517   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
519   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
520   };
522   dar = callPackage ../tools/archivers/dar { };
524   davfs2 = callPackage ../tools/filesystems/davfs2 {
525     neon = neon028;
526   };
528   dcraw = callPackage ../tools/graphics/dcraw { };
530   debootstrap = callPackage ../tools/misc/debootstrap { };
532   detox = callPackage ../tools/misc/detox { };
534   ddclient = callPackage ../tools/networking/ddclient { };
536   dd_rescue = callPackage ../tools/system/dd_rescue { };
538   ddrescue = callPackage ../tools/system/ddrescue { };
540   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
542   dev86 = callPackage ../development/compilers/dev86 { };
544   dnsmasq = callPackage ../tools/networking/dnsmasq {
545     # TODO i18n can be installed as well, implement it?
546   };
548   dhcp = callPackage ../tools/networking/dhcp { };
550   dhcpcd = callPackage ../tools/networking/dhcpcd { };
552   diffstat = callPackage ../tools/text/diffstat { };
554   diffutils = callPackage ../tools/text/diffutils { };
556   dirmngr = callPackage ../tools/security/dirmngr { };
558   docbook2x = callPackage ../tools/typesetting/docbook2x {
559     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
560     libiconv = if stdenv.isDarwin then libiconv else null;
561   };
563   dosfstools = callPackage ../tools/filesystems/dosfstools { };
565   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
567   dropbear = callPackage ../tools/networking/dropbear {
568     enableStatic = true;
569     zlib = zlibStatic;
570   };
572   duplicity = callPackage ../tools/backup/duplicity {
573     inherit (pythonPackages) boto;
574     gnupg = gnupg1;
575   };
577   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
579   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
581   ebook_tools = callPackage ../tools/text/ebook-tools { };
583   ecryptfs = callPackage ../tools/security/ecryptfs { };
585   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
587   encfs = callPackage ../tools/filesystems/encfs { };
589   enscript = callPackage ../tools/text/enscript { };
591   ethtool = callPackage ../tools/misc/ethtool { };
593   exif = callPackage ../tools/graphics/exif { };
595   exiftags = callPackage ../tools/graphics/exiftags { };
597   expect = callPackage ../tools/misc/expect { };
599   fcron = callPackage ../tools/system/fcron {  # see also cron
600   };
602   fdisk = callPackage ../tools/system/fdisk { };
604   fdm = callPackage ../tools/networking/fdm {};
606   figlet = callPackage ../tools/misc/figlet { };
608   file = callPackage ../tools/misc/file { };
610   fileschanged = callPackage ../tools/misc/fileschanged { };
612   findutils =
613     if stdenv.isDarwin
614     then findutils4227
615     else callPackage ../tools/misc/findutils { };
617   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
619   finger_bsd = callPackage ../tools/networking/bsd-finger { };
621   flvstreamer = callPackage ../tools/networking/flvstreamer { };
623   fontforge = callPackage ../tools/misc/fontforge { };
625   fontforgeX = callPackage ../tools/misc/fontforge {
626     withX11 = true;
627   };
629   ftgl = callPackage ../development/libraries/ftgl { };
631   dos2unix = callPackage ../tools/text/dos2unix { };
633   unix2dos = callPackage ../tools/text/unix2dos { };
635   uni2ascii = callPackage ../tools/text/uni2ascii { };
637   gawk = callPackage ../tools/text/gawk { };
639   gdmap = callPackage ../tools/system/gdmap {
640     inherit (gtkLibs216) gtk;
641   };
643   genext2fs = callPackage ../tools/filesystems/genext2fs { };
645   gengetopt = callPackage ../development/tools/misc/gengetopt { };
647   getmail = callPackage ../tools/networking/getmail {
648     python = pythonFull;
649   };
651   getopt = callPackage ../tools/misc/getopt { };
653   gftp = callPackage ../tools/networking/gftp { };
655   gifsicle = callPackage ../tools/graphics/gifsicle { };
657   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
658     inherit fuse;
659     bison = bison24;
660     flex = flex2535;
661   };
663   glxinfo = callPackage ../tools/graphics/glxinfo { };
665   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
666     inherit intltool perl gettext libusb pkgconfig;
667     inherit (gtkLibs) gtk glib;
668   };
670   gnugrep = callPackage ../tools/text/gnugrep { };
672   gnupatch = callPackage ../tools/text/gnupatch { };
674   gnupg1orig = callPackage ../tools/security/gnupg1 {
675     ideaSupport = false;
676   };
678   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
680   # use config.packageOverrides if you prefer original gnupg1
681   gnupg1 = gnupg1compat;
683   gnupg = callPackage ../tools/security/gnupg { };
685   gnuplot = callPackage ../tools/graphics/gnuplot {
686     inherit (gtkLibs) pango;
687     texLive = null;
688     lua = null;
689   };
691   gnused = callPackage ../tools/text/gnused { };
693   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
695   gnutar = callPackage ../tools/archivers/gnutar { };
697   gnuvd = callPackage ../tools/misc/gnuvd { };
699   gource = callPackage ../tools/misc/gource { };
701   graphviz = callPackage ../tools/graphics/graphviz {
702     inherit (gtkLibs) pango;
703   };
705   /* Readded by Michael Raskin. There are programs in the wild
706    * that do want 2.0 but not 2.22. Please give a day's notice for
707    * objections before removal.
708    */
709   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
710     inherit (gtkLibs) pango;
711   };
713   groff = callPackage ../tools/text/groff {
714     ghostscript = null;
715   };
717   grub = import ../tools/misc/grub {
718     inherit fetchurl autoconf automake;
719     stdenv = stdenv_32bit;
720     buggyBiosCDSupport = (getConfig ["grub" "buggyBiosCDSupport"] true);
721   };
723   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
725   gssdp = callPackage ../development/libraries/gssdp {
726     inherit (gnome) libsoup;
727   };
729   gt5 = callPackage ../tools/system/gt5 { };
731   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
733   gupnp = callPackage ../development/libraries/gupnp {
734     inherit (gnome) libsoup;
735   };
737   gupnptools = callPackage ../tools/networking/gupnp-tools {
738     inherit (gnome) libsoup libglade gnomeicontheme;
739   };
741   gvpe = builderDefsPackage ../tools/networking/gvpe {
742     inherit openssl gmp nettools iproute;
743   };
745   gzip = callPackage ../tools/compression/gzip { };
747   pigz = callPackage ../tools/compression/pigz { };
749   halibut = callPackage ../tools/typesetting/halibut { };
751   hddtemp = callPackage ../tools/misc/hddtemp { };
753   hdf5 = callPackage ../tools/misc/hdf5 { };
754   
755   hevea = callPackage ../tools/typesetting/hevea { };
757   highlight = callPackage ../tools/text/highlight { };
759   host = callPackage ../tools/networking/host { };
761   httpfs2 = callPackage ../tools/filesystems/httpfs { };
763   iasl = callPackage ../development/compilers/iasl { };
765   idutils = callPackage ../tools/misc/idutils { };
767   iftop = callPackage ../tools/networking/iftop { };
769   imapsync = callPackage ../tools/networking/imapsync {
770     inherit (perlPackages) MailIMAPClient;
771   };
773   inetutils = callPackage ../tools/networking/inetutils { };
775   iodine = callPackage ../tools/networking/iodine { };
777   iperf = callPackage ../tools/networking/iperf { };
779   ipmitool = callPackage ../tools/system/ipmitool {
780     static = false;
781   };
783   jdiskreport = callPackage ../tools/misc/jdiskreport { };
785   jfsrec = callPackage ../tools/filesystems/jfsrec { };
787   jfsutils = callPackage ../tools/filesystems/jfsutils { };
789   jhead = callPackage ../tools/graphics/jhead { };
791   jing = callPackage ../tools/text/xml/jing { };
793   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
795   jnettop = callPackage ../tools/networking/jnettop {
796     inherit (gnome) glib;
797   };
799   jwhois = callPackage ../tools/networking/jwhois { };
801   kdiff3 = newScope pkgs.kde4 ../tools/text/kdiff3 { };
803   keychain = callPackage ../tools/misc/keychain { };
805   kismet = callPackage ../applications/networking/sniffers/kismet { };
807   less = callPackage ../tools/misc/less { };
809   most = callPackage ../tools/misc/most { };
811   lftp = callPackage ../tools/networking/lftp { };
813   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
815   logrotate = callPackage ../tools/system/logrotate { };
817   lout = callPackage ../tools/typesetting/lout { };
819   lrzip = callPackage ../tools/compression/lrzip { };
821   lsh = callPackage ../tools/networking/lsh { };
823   lshw = callPackage ../tools/system/lshw { };
825   lxc = callPackage ../tools/system/lxc { };
827   lzma = xz;
829   xz = callPackage ../tools/compression/xz { };
831   lzop = callPackage ../tools/compression/lzop { };
833   mailutils = callPackage ../tools/networking/mailutils { };
835   man = callPackage ../tools/misc/man { };
837   man_db = callPackage ../tools/misc/man-db { };
839   memtest86 = callPackage ../tools/misc/memtest86 { };
841   mc = callPackage ../tools/misc/mc { };
843   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
845   mcron = callPackage ../tools/system/mcron { };
847   mdbtools = callPackage ../tools/misc/mdbtools {
848     flex = flex2535;
849   };
851   mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix {
852     flex = flex2535;
853   };
855   miniupnpd = callPackage ../tools/networking/miniupnpd { };
857   mjpegtools = callPackage ../tools/video/mjpegtools { };
859   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
861   mktemp = callPackage ../tools/security/mktemp { };
863   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
865   monit = builderDefsPackage ../tools/system/monit {
866     flex = flex2535;
867     bison = bison24;
868     inherit openssl;
869   };
871   mpage = callPackage ../tools/text/mpage { };
873   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
874     inherit ruby makeWrapper;
875   };
877   mssys = callPackage ../tools/misc/mssys { };
879   mtdutils = callPackage ../tools/filesystems/mtdutils { };
881   mtools = callPackage ../tools/filesystems/mtools { };
883   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
884     multitrandata = callPackage ../tools/text/multitran/data { };
886     libbtree = callPackage ../tools/text/multitran/libbtree { };
888     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
890     libfacet = callPackage ../tools/text/multitran/libfacet { };
892     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
894     mtutils = callPackage ../tools/text/multitran/mtutils { };
895   });
897   muscleframework = callPackage ../tools/security/muscleframework { };
899   muscletool = callPackage ../tools/security/muscletool { };
901   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
903   namazu = callPackage ../tools/text/namazu { };
905   nbd = callPackage ../tools/networking/nbd {
906     glib = gtkLibs.glib.override {
907       stdenv = makeStaticBinaries stdenv;
908     };
909   };
911   netcdf = callPackage ../development/libraries/netcdf { };
913   nc6 = callPackage ../tools/networking/nc6 { };
915   ncat = callPackage ../tools/networking/ncat { };
917   ncftp = callPackage ../tools/networking/ncftp { };
919   ncompress = callPackage ../tools/compression/ncompress { };
921   netcat = callPackage ../tools/networking/netcat { };
923   netkittftp = callPackage ../tools/networking/netkit/tftp { };
925   netpbm = callPackage ../tools/graphics/netpbm { };
927   netselect = callPackage ../tools/networking/netselect { };
929   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
931   nmap = callPackage ../tools/security/nmap {
932     inherit (pythonPackages) pysqlite;
933   };
935   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
937   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
939   ntp = callPackage ../tools/networking/ntp { };
941   nssmdns = callPackage ../tools/networking/nss-mdns { };
943   nylon = callPackage ../tools/networking/nylon { };
945   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
947   obexd = callPackage ../tools/bluetooth/obexd { };
949   obexfs = callPackage ../tools/bluetooth/obexfs { };
951   obexftp = callPackage ../tools/bluetooth/obexftp { };
953   offlineimap = import ../tools/networking/offlineimap {
954     inherit fetchurl;
955     # I did not find any better way of reusing buildPythonPackage+setuptools
956     # for a python with openssl support
957     buildPythonPackage = assert pythonFull.opensslSupport;
958       import ../development/python-modules/generic {
959         inherit makeWrapper lib;
960         python = pythonFull;
961         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
962           inherit makeWrapper;
963           python = pythonFull;
964         };
965       };
966   };
968   opendbx = callPackage ../development/libraries/opendbx { };
970   opendkim = callPackage ../development/libraries/opendkim { };
972   openjade = callPackage ../tools/text/sgml/openjade {
973     stdenv = overrideGCC stdenv gcc33;
974     opensp = opensp.override { stdenv = overrideGCC stdenv gcc33; };
975   };
977   openobex = callPackage ../tools/bluetooth/openobex { };
979   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
981   opensc = opensc_0_11_7;
983   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
985   openssh = callPackage ../tools/networking/openssh {
986     hpnSupport = false;
987     etcDir = "/etc/ssh";
988   };
990   opensp = callPackage ../tools/text/sgml/opensp { };
992   openvpn = callPackage ../tools/networking/openvpn { };
994   optipng = callPackage ../tools/graphics/optipng { };
996   p7zip = callPackage ../tools/archivers/p7zip { };
998   pal = callPackage ../tools/misc/pal { };
1000   panomatic = callPackage ../tools/graphics/panomatic { };
1002   par2cmdline = callPackage ../tools/networking/par2cmdline { };
1004   parallel = callPackage ../tools/misc/parallel { };
1006   patchutils = callPackage ../tools/text/patchutils { };
1008   parted = callPackage ../tools/misc/parted { };
1010   patch = gnupatch;
1012   pbzip2 = callPackage ../tools/compression/pbzip2 { };
1014   pciutils = callPackage ../tools/system/pciutils { };
1016   pcsclite = callPackage ../tools/security/pcsclite { };
1018   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
1020   pdfjam = callPackage ../tools/typesetting/pdfjam { };
1022   pdfread = callPackage ../tools/graphics/pdfread { };
1024   pg_top = callPackage ../tools/misc/pg_top { };
1026   pdsh = callPackage ../tools/networking/pdsh {
1027     rsh = true;          # enable internal rsh implementation
1028     ssh = openssh;
1029   };
1031   pfstools = callPackage ../tools/graphics/pfstools {
1032     qt = qt3;
1033   };
1035   philter = callPackage ../tools/networking/philter { };
1037   pinentry = callPackage ../tools/misc/pinentry {
1038     inherit (gnome) glib gtk;
1039   };
1041   pius = callPackage ../tools/security/pius { };
1043   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1045   plan9port = callPackage ../tools/system/plan9port { };
1047   ploticus = callPackage ../tools/graphics/ploticus { };
1049   plotutils = callPackage ../tools/graphics/plotutils { };
1051   pngnq = callPackage ../tools/graphics/pngnq { };
1053   povray = callPackage ../tools/graphics/povray { };
1055   ppl = callPackage ../development/libraries/ppl { };
1057   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1058   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1059   };
1061   proxychains = callPackage ../tools/networking/proxychains { };
1063   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1065   psmisc = callPackage ../os-specific/linux/psmisc { };
1067   pstoedit = callPackage ../tools/graphics/pstoedit { };
1069   pv = callPackage ../tools/misc/pv { };
1071   pwgen = callPackage ../tools/security/pwgen { };
1073   pydb = callPackage ../tools/pydb { };
1075   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1077   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1078     inherit python pkgconfig dbus_glib;
1079     dbus = dbus.libs;
1080   };
1082   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1083     inherit python;
1084   };
1086   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1087     inherit python libsexy pkgconfig libxml2 pygtk;
1088     inherit (gtkLibs) pango gtk glib;
1089   };
1091   openmpi = callPackage ../development/libraries/openmpi { };
1093   qdu = callPackage ../tools/misc/qdu { };
1095   qhull = callPackage ../development/libraries/qhull { };
1097   qshowdiff = callPackage ../tools/text/qshowdiff {
1098     qt = qt4;
1099   };
1101   rtmpdump = callPackage ../tools/video/rtmpdump { };
1103   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1105   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1107   relfs = callPackage ../tools/filesystems/relfs {
1108     inherit (gnome) gnomevfs GConf;
1109   };
1111   remind = callPackage ../tools/misc/remind { };
1113   replace = callPackage ../tools/text/replace { };
1115   /*
1116   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1117     python=python;  };
1118   */
1120   ripmime = callPackage ../tools/networking/ripmime {};
1122   rsnapshot = callPackage ../tools/backup/rsnapshot {
1124     # For the `logger' command, we can use either `utillinux' or
1125     # GNU Inetutils.  The latter is more portable.
1126     logger = inetutils;
1127   };
1129   rlwrap = callPackage ../tools/misc/rlwrap { };
1131   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1132     inherit ppp;
1133   };
1135   rpm = callPackage ../tools/package-management/rpm {
1136     db4 = db45;
1137   };
1139   rrdtool = callPackage ../tools/misc/rrdtool {
1140     inherit (gtkLibs) pango;
1141   };
1143   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1145   rubber = callPackage ../tools/typesetting/rubber { };
1147   rxp = callPackage ../tools/text/xml/rxp { };
1149   rzip = callPackage ../tools/compression/rzip { };
1151   s3backer = callPackage ../tools/filesystems/s3backer { };
1153   s3sync = callPackage ../tools/networking/s3sync { };
1155   sablotron = callPackage ../tools/text/xml/sablotron { };
1157   screen = callPackage ../tools/misc/screen { };
1159   scrot = callPackage ../tools/graphics/scrot { };
1161   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1163   setserial = builderDefsPackage (import ../tools/system/setserial) {
1164     inherit groff;
1165   };
1167   sg3_utils = callPackage ../tools/system/sg3_utils { };
1169   sharutils = callPackage ../tools/archivers/sharutils { };
1171   shebangfix = callPackage ../tools/misc/shebangfix { };
1173   slimrat = callPackage ../tools/networking/slimrat {
1174     inherit (perlPackages) WWWMechanize LWP;
1175   };
1177   slsnif = callPackage ../tools/misc/slsnif { };
1179   smartmontools = callPackage ../tools/system/smartmontools { };
1181   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1183   socat = callPackage ../tools/networking/socat { };
1185   sourceHighlight = callPackage ../tools/text/source-highlight { };
1187   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1188     inherit fetchurl stdenv openssl;
1189   };
1191   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1193   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1195   sudo = callPackage ../tools/security/sudo { };
1197   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1198   };
1200   ssmtp = callPackage ../tools/networking/ssmtp {
1201     tlsSupport = true;
1202   };
1204   ssss = callPackage ../tools/security/ssss { };
1206   stun = callPackage ../tools/networking/stun { };
1208   stunnel = callPackage ../tools/networking/stunnel { };
1210   su = shadow;
1212   swec = callPackage ../tools/networking/swec {
1213     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1214   };
1216   svnfs = callPackage ../tools/filesystems/svnfs { };
1218   system_config_printer = callPackage ../tools/misc/system-config-printer {
1219     inherit (pythonPackages) notify;
1220     libxml2 = libxml2Python;
1221    };
1223   sitecopy = callPackage ../tools/networking/sitecopy { };
1225   privoxy = callPackage ../tools/networking/privoxy {
1226     autoconf = autoconf213;
1227   };
1229   tcpdump = callPackage ../tools/networking/tcpdump { };
1231   tcng = callPackage ../tools/networking/tcng {
1232     kernel = linux_2_6_28;
1233   };
1235   telnet = callPackage ../tools/networking/telnet { };
1237   texmacs = callPackage ../applications/editors/texmacs {
1238     tex = texLive; /* tetex is also an option */
1239     extraFonts = true;
1240   };
1242   tmux = callPackage ../tools/misc/tmux { };
1244   tor = callPackage ../tools/security/tor { };
1246   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
1248   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1249   ttf2pt1_cl_pdf = callPackage ../tools/misc/ttf2pt1 { };
1251   ucl = callPackage ../development/libraries/ucl { };
1253   ufraw = callPackage ../applications/graphics/ufraw {
1254     inherit (gnome) gtk;
1255   };
1257   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1259   upx = callPackage ../tools/compression/upx { };
1261   usbmuxd = callPackage ../tools/misc/usbmuxd {};
1263   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
1265   vbetool = builderDefsPackage ../tools/system/vbetool {
1266     inherit pciutils libx86 zlib;
1267   };
1269   verilog = callPackage ../applications/science/electronics/verilog {};
1271   viking = callPackage ../applications/misc/viking { };
1273   vncrec = builderDefsPackage ../tools/video/vncrec {
1274     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1275       libXmu libXaw libXext xextproto libSM libICE libXpm
1276       libXp;
1277   };
1279   vpnc = callPackage ../tools/networking/vpnc { };
1281   vtun = callPackage ../tools/networking/vtun { };
1283   testdisk = callPackage ../tools/misc/testdisk { };
1285   htmlTidy = callPackage ../tools/text/html-tidy { };
1287   tigervnc = callPackage ../tools/admin/tigervnc {
1288     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1289       xorg.fontbhlucidatypewriter75dpi ];
1290   };
1292   tightvnc = callPackage ../tools/admin/tightvnc {
1293     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1294       xorg.fontbhlucidatypewriter75dpi ];
1295   };
1297   time = callPackage ../tools/misc/time { };
1299   tm = callPackage ../tools/system/tm { };
1301   trang = callPackage ../tools/text/xml/trang { };
1303   tre = callPackage ../development/libraries/tre { };
1305   ts = callPackage ../tools/system/ts { };
1307   transfig = callPackage ../tools/graphics/transfig { };
1309   truecrypt = callPackage ../applications/misc/truecrypt {
1310     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1311   };
1313   ttmkfdir = callPackage ../tools/misc/ttmkfdir {
1314     flex = flex2534;
1315   };
1317   unbound = callPackage ../tools/networking/unbound { };
1319   units = callPackage ../tools/misc/units { };
1321   unrar = callPackage ../tools/archivers/unrar { };
1323   unarj = callPackage ../tools/archivers/unarj { };
1325   unshield = callPackage ../tools/archivers/unshield { };
1327   unzip = unzip552;
1329   # TODO: remove in the next stdenv update.
1330   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1332   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1334   uptimed = callPackage ../tools/system/uptimed { };
1336   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1337     tomcat = tomcat6;
1338   };
1340   wdfs = callPackage ../tools/filesystems/wdfs { };
1342   wdiff = callPackage ../tools/text/wdiff { };
1344   webalizer = callPackage ../tools/networking/webalizer { };
1346   webdruid = builderDefsPackage ../tools/admin/webdruid {
1347     inherit zlib libpng freetype gd which
1348       libxml2 geoip;
1349   };
1351   wget = callPackage ../tools/networking/wget {
1352     inherit (perlPackages) LWP;
1353   };
1355   which = callPackage ../tools/system/which { };
1357   wicd = callPackage ../tools/networking/wicd { };
1359   wv = callPackage ../tools/misc/wv { };
1361   wv2 = callPackage ../tools/misc/wv2 { };
1363   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1365   xbursttools = import ../tools/misc/xburst-tools {
1366     inherit stdenv fetchgit autoconf automake libusb confuse;
1367     # It needs a cross compiler for mipsel to build the firmware it will
1368     # load into the Ben Nanonote
1369     gccCross =
1370       let
1371         pkgsCross = (import ./all-packages.nix) {
1372           inherit system;
1373           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1374           # Ben Nanonote system
1375           crossSystem = {
1376             config = "mipsel-unknown-linux";
1377             bigEndian = true;
1378             arch = "mips";
1379             float = "soft";
1380             withTLS = true;
1381             libc = "uclibc";
1382             platform = {
1383               name = "ben_nanonote";
1384               kernelMajor = "2.6";
1385               # It's not a bcm47xx processor, but for the headers this should work
1386               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1387               kernelArch = "mips";
1388             };
1389             gcc = {
1390               arch = "mips32";
1391             };
1392           };
1393         };
1394       in
1395         pkgsCross.gccCrossStageStatic;
1396   };
1398   xclip = callPackage ../tools/misc/xclip { };
1400   xdelta = callPackage ../tools/compression/xdelta { };
1402   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1404   xmlroff = callPackage ../tools/typesetting/xmlroff {
1405     inherit (gtkLibs) glib pango gtk;
1406     inherit (gnome) libgnomeprint;
1407   };
1409   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1411   xmlto = callPackage ../tools/typesetting/xmlto { };
1413   xmltv = callPackage ../tools/misc/xmltv { };
1415   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1416     inherit python setuptools;
1417   };
1419   xpf = callPackage ../tools/text/xml/xpf {
1420     libxml2 = libxml2Python;
1421   };
1423   xsel = callPackage ../tools/misc/xsel { };
1425   zdelta = callPackage ../tools/compression/zdelta { };
1427   zile = callPackage ../applications/editors/zile { };
1429   zip = callPackage ../tools/archivers/zip { };
1431   zsync = callPackage ../tools/compression/zsync { };
1433   ### SHELLS
1436   bash = lowPrio (callPackage ../shells/bash {
1437     texinfo = null;
1438   });
1440   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
1441     interactive = true;
1442   });
1444   dash = callPackage ../shells/dash { };
1446   ipython = callPackage ../shells/ipython {
1447     # I did not find any better way of reusing buildPythonPackage+setuptools
1448     # for a python with openssl support
1449     buildPythonPackage = assert pythonFull.readlineSupport;
1450       import ../development/python-modules/generic {
1451         inherit makeWrapper lib;
1452         python = pythonFull;
1453         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
1454           inherit makeWrapper;
1455           python = pythonFull;
1456         };
1457       };
1458  };
1460   tcsh = callPackage ../shells/tcsh { };
1462   rush = callPackage ../shells/rush { };
1464   zsh = callPackage ../shells/zsh { };
1467   ### DEVELOPMENT / COMPILERS
1470   abc =
1471     abcPatchable [];
1473   abcPatchable = patches :
1474     import ../development/compilers/abc/default.nix {
1475       inherit stdenv fetchurl patches jre apacheAnt;
1476       javaCup = callPackage ../development/libraries/java/cup { };
1477     };
1479   aspectj = callPackage ../development/compilers/aspectj { };
1481   bigloo = callPackage ../development/compilers/bigloo { };
1483   ccl = builderDefsPackage ../development/compilers/ccl {};
1485   clang = llvm.override {
1486     buildClang = true;
1487   };
1489   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
1491   dylan = callPackage ../development/compilers/gwydion-dylan {
1492     dylan =
1493       import ../development/compilers/gwydion-dylan/binary.nix {
1494         inherit fetchurl stdenv;
1495   };
1496   };
1498   ecl = builderDefsPackage ../development/compilers/ecl {
1499     inherit gmp mpfr;
1500   };
1502   eql = callPackage ../development/compilers/eql {};
1504   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1506   fpc = callPackage ../development/compilers/fpc { };
1507   fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { };
1509   gambit = callPackage ../development/compilers/gambit { };
1511   gcc = gcc44;
1513   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1514     inherit fetchurl stdenv noSysDirs;
1515   });
1517   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1518     inherit fetchurl stdenv noSysDirs;
1519   });
1521   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1522     inherit fetchurl stdenv noSysDirs;
1523   });
1525   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1526   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1527   # expects a single digit after the dot.  As a workaround, we feed
1528   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1530   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1531     inherit fetchurl stdenv noSysDirs;
1532     texinfo = texinfo49;
1533     profiledCompiler = true;
1534   });
1536   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1537     inherit fetchurl stdenv noSysDirs;
1538     texinfo = texinfo49;
1539     profiledCompiler = false;
1540   });
1542   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1543     inherit fetchurl stdenv noSysDirs;
1544     profiledCompiler = false;
1545   });
1547   gcc44 = gcc44_real;
1549   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1550     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1551     profiledCompiler = true;
1552   }));
1554   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1555     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1556     binutilsCross = binutilsCross;
1557     libcCross = libcCross;
1558     profiledCompiler = false;
1559     enableMultilib = true;
1560     crossStageStatic = false;
1561     cross = assert crossSystem != null; crossSystem;
1562   };
1564   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1565     (makeOverridable (import ../development/compilers/gcc-4.4) {
1566       inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
1567           gettext which;
1568       binutilsCross = binutilsCross;
1569       libcCross = libcCross;
1570       profiledCompiler = false;
1571       enableMultilib = false;
1572       crossStageStatic = false;
1573       cross = assert crossSystem != null; crossSystem;
1574     });
1576   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1577     (makeOverridable (import ../development/compilers/gcc-4.5) {
1578       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1579         ppl cloogppl gettext which noSysDirs;
1580       binutilsCross = binutilsCross;
1581       libcCross = libcCross;
1582       profiledCompiler = false;
1583       enableMultilib = false;
1584       crossStageStatic = false;
1585       cross = assert crossSystem != null; crossSystem;
1586     });
1588   gcc_realCross = gcc45_realCross;
1590   gccCrossStageStatic = let
1591       isMingw = (stdenv.cross.libc == "msvcrt");
1592       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1593     in
1594       wrapGCCCross {
1595       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1596         gcc_realCross.override {
1597           crossStageStatic = true;
1598           langCC = false;
1599           libcCross = libcCross1;
1600           enableShared = false;
1601         }));
1602       libc = libcCross1;
1603       binutils = binutilsCross;
1604       cross = assert crossSystem != null; crossSystem;
1605   };
1607   # Only needed for mingw builds
1608   gccCrossMingw2 = wrapGCCCross {
1609     gcc = gccCrossStageStatic.gcc;
1610     libc = windows.mingw_headers2;
1611     binutils = binutilsCross;
1612     cross = assert crossSystem != null; crossSystem;
1613   };
1615   gccCrossStageFinal = wrapGCCCross {
1616     gcc = forceBuildDrv (gcc_realCross.override {
1617       libpthreadCross =
1618         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1619         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1620         then hurdLibpthreadCross
1621         else null;
1622      });
1623     libc = libcCross;
1624     binutils = binutilsCross;
1625     cross = assert crossSystem != null; crossSystem;
1626   };
1628   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1629     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1630     profiledCompiler = false;
1631     enableMultilib = true;
1632   }));
1634   gcc44_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1635     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1636       gettext which noSysDirs;
1637     profiledCompiler = true;
1638   }));
1640   gcc45 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1641     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1642       ppl cloogppl
1643       gettext which noSysDirs;
1644     profiledCompiler = true;
1645   }));
1647   gccApple =
1648     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1649       inherit fetchurl stdenv noSysDirs;
1650       profiledCompiler = true;
1651     }) ;
1653   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1654     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1655     texinfo = texinfo49;
1656   });
1658   gfortran = gfortran43;
1660   gfortran40 = wrapGCC (gcc40.gcc.override {
1661     langFortran = true;
1662     langCC = false;
1663     inherit gmp mpfr;
1664   });
1666   gfortran41 = wrapGCC (gcc41.gcc.override {
1667     name = "gfortran";
1668     langFortran = true;
1669     langCC = false;
1670     langC = false;
1671     inherit gmp mpfr;
1672   });
1674   gfortran42 = wrapGCC (gcc42.gcc.override {
1675     name = "gfortran";
1676     langFortran = true;
1677     langCC = false;
1678     langC = false;
1679     inherit gmp mpfr;
1680   });
1682   gfortran43 = wrapGCC (gcc43.gcc.override {
1683     name = "gfortran";
1684     langFortran = true;
1685     langCC = false;
1686     langC = false;
1687     profiledCompiler = false;
1688   });
1690   gfortran44 = wrapGCC (gcc44_real.gcc.override {
1691     name = "gfortran";
1692     langFortran = true;
1693     langCC = false;
1694     langC = false;
1695     profiledCompiler = false;
1696   });
1698   gcj = gcj45;
1700   gcj44 = wrapGCC (gcc44_real.gcc.override {
1701     name = "gcj";
1702     langJava = true;
1703     langFortran = false;
1704     langCC = true;
1705     langC = false;
1706     profiledCompiler = false;
1707     inherit zip unzip zlib boehmgc gettext pkgconfig;
1708     inherit (gtkLibs) gtk;
1709     inherit (gnome) libart_lgpl;
1710     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1711       libXrandr xproto renderproto xextproto inputproto randrproto;
1712   });
1714   gcj45 = wrapGCC (gcc45.gcc.override {
1715     name = "gcj";
1716     langJava = true;
1717     langFortran = false;
1718     langCC = true;
1719     langC = false;
1720     profiledCompiler = false;
1721     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1722     inherit (gtkLibs) gtk;
1723     inherit (gnome) libart_lgpl;
1724     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1725       libXrandr xproto renderproto xextproto inputproto randrproto;
1726   });
1728   gnat = gnat44;
1730   gnat44 = wrapGCC (gcc44_real.gcc.override {
1731     name = "gnat";
1732     langCC = false;
1733     langC = true;
1734     langAda = true;
1735     profiledCompiler = false;
1736     inherit gnatboot;
1737     # We can't use the ppl stuff, because we would have
1738     # libstdc++ problems.
1739     cloogppl = null;
1740     ppl = null;
1741   });
1743   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1744     inherit fetchurl stdenv;
1745   });
1747   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1748     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1749     name = "ghdl";
1750     langVhdl = true;
1751     langCC = false;
1752     langC = false;
1753     profiledCompiler = false;
1754     enableMultilib = false;
1755   });
1757   # Not officially supported version for ghdl
1758   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1759     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1760       ppl cloogppl;
1761     name = "ghdl";
1762     langVhdl = true;
1763     langCC = false;
1764     langC = false;
1765     profiledCompiler = false;
1766     enableMultilib = false;
1767   }));
1769   gcl = builderDefsPackage ../development/compilers/gcl {
1770     inherit mpfr m4 binutils fetchcvs emacs zlib which
1771       gmp texinfo;
1772     inherit (xlibs) libX11 xproto inputproto libXi
1773       libXext xextproto libXt libXaw libXmu;
1774     inherit stdenv;
1775     texLive = texLiveAggregationFun {
1776       paths = [
1777         texLive texLiveExtra
1778       ];
1779     };
1780   };
1782   # GHC
1784   # GHC binaries are around for bootstrapping purposes
1786   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1787   # need to reenable an old binary such as this.
1788   /*
1789   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1790     inherit fetchurl stdenv ncurses gmp;
1791     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1792     perl = perl58;
1793   });
1794   */
1796   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1797     inherit fetchurl stdenv perl ncurses gmp libedit;
1798   });
1800   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1801     inherit fetchurl stdenv perl ncurses gmp libedit;
1802   });
1804   # For several compiler versions, we export a large set of Haskell-related
1805   # packages.
1807   # This should point to the current default version.
1808   haskellPackages = haskellPackages_ghc6123;
1810   # Old versions of ghc that currently don't build because the binary
1811   # is broken.
1812   /*
1813   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1814     ghc = import ../development/compilers/ghc/6.4.2.nix {
1815       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1816       ghc = ghc642Binary;  };
1817   };
1819   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1820     ghc = import ../development/compilers/ghc/6.6.1.nix {
1821       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1822       ghc = ghc642Binary;
1823   };
1824   };
1826   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1827     ghc = import ../development/compilers/ghc/6.8.2.nix {
1828       inherit fetchurl stdenv perl gmp ncurses m4;
1829       readline = readline5;
1830       ghc = ghc642Binary;
1831   };
1832   };
1834   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1835     inherit pkgs;
1836     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1837       ghc = ghc642Binary;
1838       haddock = import ../development/tools/documentation/haddock/boot.nix {
1839         inherit gmp;
1840         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1841           inherit stdenv fetchurl lib;
1842           ghc = ghc642Binary;    };
1843       };
1844     };
1845   });
1846   */
1848   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1849   # currently available ghc versions. (Before, it used to be enabled only
1850   # for a selected few versions.) If someone complains about nix-env -qa
1851   # output being spammed by lots of Haskell packages, we can talk about
1852   # reducing the number or "enabled" versions again.
1854   # Helper functions to abstract away from repetitive instantiations.
1855   haskellPackagesFun = ghcPath : profDefault : modifyPrio : recurseIntoAttrs (import ./haskell-packages.nix {
1856     inherit pkgs newScope modifyPrio;
1857     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1858     ghc = callPackage ghcPath {
1859       ghc = ghc6101Binary;    };
1860   });
1862   # Currently active GHC versions.
1863   haskellPackages_ghc6101 =
1864     haskellPackagesFun ../development/compilers/ghc/6.10.1.nix false (x : x);
1866   haskellPackages_ghc6102 =
1867     haskellPackagesFun ../development/compilers/ghc/6.10.2.nix false (x : x);
1869   haskellPackages_ghc6103 =
1870     haskellPackagesFun ../development/compilers/ghc/6.10.3.nix false (x : x);
1872   haskellPackages_ghc6104 =
1873     haskellPackagesFun ../development/compilers/ghc/6.10.4.nix false (x : x);
1875   haskellPackages_ghc6121 =
1876     haskellPackagesFun ../development/compilers/ghc/6.12.1.nix false (x : x);
1878   haskellPackages_ghc6122 =
1879     haskellPackagesFun ../development/compilers/ghc/6.12.2.nix false (x : x);
1881   # Current default version.
1882   haskellPackages_ghc6123 =
1883     haskellPackagesFun ../development/compilers/ghc/6.12.3.nix false (x : x);
1885   haskellPackages_ghc701 =
1886     haskellPackagesFun ../development/compilers/ghc/7.0.1.nix  false lowPrio;
1888   haskellPackages_ghcHEAD =
1889     haskellPackagesFun ../development/compilers/ghc/head.nix   false lowPrio;
1891   haxeDist = import ../development/compilers/haxe {
1892     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1893   };
1894   haxe = haxeDist.haxe;
1895   haxelib = haxeDist.haxelib;
1897   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1898     inherit cmake;
1899   };
1901   go = callPackage ../development/compilers/go { };
1903   gprolog = callPackage ../development/compilers/gprolog { };
1905   gwt = callPackage ../development/compilers/gwt {
1906     inherit (gtkLibs) glib gtk pango atk;
1907     libstdcpp5 = gcc33.gcc;
1908   };
1910   ikarus = callPackage ../development/compilers/ikarus { };
1912   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1913   # commented out because it's using the new configuration style proposal which is unstable
1914   hugs = callPackage ../development/compilers/hugs { };
1916   path64 = callPackage ../development/compilers/path64 {
1917     stdenv = stdenv2;
1918   };
1920   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1922   j2sdk14x = (
1923     assert system == "i686-linux";
1924     import ../development/compilers/jdk/default-1.4.nix {
1925       inherit fetchurl stdenv;
1926     });
1928   jdk5 = (
1929     assert system == "i686-linux" || system == "x86_64-linux";
1930     callPackage ../development/compilers/jdk/default-5.nix { });
1932   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1933   jre       = jdkdistro false false;
1935   jdkPlugin = jdkdistro true true;
1936   jrePlugin = jdkdistro false true;
1938   supportsJDK =
1939     system == "i686-linux" ||
1940     system == "x86_64-linux" ||
1941     system == "i686-cygwin" ||
1942     system == "powerpc-linux";
1944   jdkdistro = installjdk: pluginSupport:
1945        (assert supportsJDK;
1946     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
1947       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
1948     }));
1950   jikes = callPackage ../development/compilers/jikes { };
1952   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
1953     inherit makeWrapper;
1954     inherit (gtkLibs) gtk glib pango atk;
1955     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
1956     fpc = fpc_2_4_0;
1957   };
1959   llvm = callPackage ../development/compilers/llvm { };
1961   mitscheme = callPackage ../development/compilers/mit-scheme { };
1963   mlton = callPackage ../development/compilers/mlton { };
1965   mono = callPackage ../development/compilers/mono { };
1967   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
1969   mozart = callPackage ../development/compilers/mozart { };
1971   neko = callPackage ../development/compilers/neko { };
1973   nasm = callPackage ../development/compilers/nasm { };
1975   ocaml = ocaml_3_11_1;
1977   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
1979   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
1981   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
1983   ocaml_3_12_0 = callPackage ../development/compilers/ocaml/3.12.0.nix { };
1985   mkOcamlPackages = ocaml: self: let callPackage = newScope self; in rec {
1986     inherit ocaml;
1988     camlzip = callPackage ../development/ocaml-modules/camlzip { };
1990     camomile = camomile_0_7_3;
1991     camomile_0_7_3 = callPackage ../development/ocaml-modules/camomile/0.7.3.nix { };
1992     camomile_0_8_1 = callPackage ../development/ocaml-modules/camomile/0.8.1.nix { };
1994     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
1996     findlib = callPackage ../development/tools/ocaml/findlib { };
1998     menhir = callPackage ../development/ocaml-modules/menhir { };
2000     ocaml_batteries = callPackage ../development/ocaml-modules/batteries { };
2002     ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
2004     ocaml_lwt = callPackage ../development/ocaml-modules/lwt { };
2006     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {
2007       inherit pcre;
2008     };
2010     ocaml_react = callPackage ../development/ocaml-modules/react { };
2012     ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
2014     ounit = callPackage ../development/ocaml-modules/ounit { };
2015   };
2017   ocamlPackages = recurseIntoAttrs ocamlPackages_3_11_1;
2018   ocamlPackages_3_10_0 = mkOcamlPackages ocaml_3_10_0 pkgs.ocamlPackages_3_10_0;
2019   ocamlPackages_3_11_1 = mkOcamlPackages ocaml_3_11_1 pkgs.ocamlPackages_3_11_1;
2020   ocamlPackages_3_12_0 = mkOcamlPackages ocaml_3_12_0 pkgs.ocamlPackages_3_12_0;
2022   opencxx = callPackage ../development/compilers/opencxx {
2023     gcc = gcc33;
2024   };
2026   qcmm = callPackage ../development/compilers/qcmm {
2027     lua   = lua4;
2028     ocaml = ocaml_3_08_0;
2029   };
2031   roadsend = callPackage ../development/compilers/roadsend { };
2033   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
2034     inherit makeWrapper clisp;
2035   };
2037   scala = callPackage ../development/compilers/scala { };
2039   stalin = callPackage ../development/compilers/stalin { };
2041   strategoPackages = strategoPackages018;
2043   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
2044     stdenv = overrideInStdenv stdenv [gnumake380];
2045   };
2047   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
2048     readline = readline5;
2049   };
2051   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
2052     readline = readline5;
2053   };
2055   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
2057   swiProlog = callPackage ../development/compilers/swi-prolog { };
2059   tinycc = callPackage ../development/compilers/tinycc { };
2061   urweb = callPackage ../development/compilers/urweb { };
2063   vala = callPackage ../development/compilers/vala { };
2065   visualcpp = callPackage ../development/compilers/visual-c++ { };
2067   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
2069   webdsl = callPackage ../development/compilers/webdsl { };
2071   win32hello = callPackage ../development/compilers/visual-c++/test { };
2073   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
2074     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2075     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2076     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
2077     gcc = baseGCC;
2078     libc = glibc;
2079     inherit stdenv binutils coreutils zlib;
2080   };
2082   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
2084   # To be removed on stdenv-updates
2085   # By now this has at least the fix of setting the proper rpath when a file "libbla.so"
2086   # is passed directly to the linker.
2087   # This is of interest to programs built by cmake, because this is a common practice
2088   # in cmake builds.
2089   wrapGCC2 = wrapGCCWith (import ../build-support/gcc-wrapper/default2.nix) glibc;
2090   stdenv2 = if (gcc.nativeTools) then stdenv else (overrideGCC stdenv (wrapGCC2 gcc.gcc));
2092   wrapGCCCross =
2093     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
2095     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
2096       nativeTools = false;
2097       nativeLibc = false;
2098       noLibc = (libc == null);
2099       inherit stdenv gcc binutils libc shell name cross;
2100     });
2102   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
2103   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2104   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2105     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2106     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2107     gcc = baseGCC;
2108     libc = glibc;
2109     inherit stdenv binutils;
2110   };
2112   # prolog
2113   yap = callPackage ../development/compilers/yap { };
2115   yasm = callPackage ../development/compilers/yasm { };
2117   ### DEVELOPMENT / INTERPRETERS
2119   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2120     inherit sbcl;
2121   };
2123   clisp = callPackage ../development/interpreters/clisp { };
2125   # compatibility issues in 2.47 - at list 2.44.1 is known good
2126   # for sbcl bootstrap
2127   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2128     libsigsegv = libsigsegv_25;  };
2130   erlang = callPackage ../development/interpreters/erlang { };
2132   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2134   groovy = callPackage ../development/interpreters/groovy { };
2136   guile = callPackage ../development/interpreters/guile { };
2138   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2140   io = builderDefsPackage (import ../development/interpreters/io) {
2141     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2142       libpng libtiff libjpeg readline libsndfile libxml2
2143       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2144   };
2146   kaffe = callPackage ../development/interpreters/kaffe { };
2148   lua4 = callPackage ../development/interpreters/lua-4 { };
2150   lua5 = callPackage ../development/interpreters/lua-5 { };
2152   maude = callPackage ../development/interpreters/maude { };
2154   octave = callPackage ../development/interpreters/octave {
2155     # Needed because later gm versions require an initialization the actual octave is not
2156     # doing.
2157     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2158     graphicsmagick = graphicsmagick137;
2159   };
2161   # mercurial (hg) bleeding edge version
2162   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2164   perl58 = callPackage ../development/interpreters/perl-5.8 {
2165     impureLibcPath = if stdenv.isLinux then null else "/usr";
2166   };
2168   perl510 = callPackage ../development/interpreters/perl-5.10 {
2169     fetchurl = fetchurlBoot;
2170   };
2172   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2174   php = php5_3;
2176   php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) {
2177     inherit
2178       stdenv fetchurl lib composableDerivation autoconf automake
2179       flex bison apacheHttpd mysql libxml2
2180       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2181   };
2183   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
2184     inherit
2185       stdenv fetchurl lib composableDerivation autoconf automake
2186       flex bison apacheHttpd mysql libxml2
2187       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2188   };
2190   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2192   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2193     inherit cairo fontconfig freetype libjpeg libpng openssl
2194       perl mesa zlib which;
2195     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2196       renderproto pixman libSM libxcb libXext xextproto libXmu
2197       libXt;
2198   };
2200   polyml = callPackage ../development/compilers/polyml { };
2202   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2203   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2204   python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
2205   pythonBase = python26Base;
2206   pythonFull = python26Full;
2208   pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
2210   python24 = callPackage ../development/interpreters/python/2.4 { };
2212   python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
2213     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2214     arch = if stdenv.isDarwin then darwinArchUtility else null;
2215     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2216   });
2218   python26Full = lowPrio (python26Base.override {
2219     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2220     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2221     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2222     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2223     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2224     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2225     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2226     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2227     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2228     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2229   });
2231   python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
2232     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2233     arch = if stdenv.isDarwin then darwinArchUtility else null;
2234     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2235   });
2237   python27Full = lowPrio (python27Base.override {
2238     inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
2239     inherit (pkgs.xlibs) libX11 xproto;
2240   });
2242   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2243     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2244     arch = if stdenv.isDarwin then darwinArchUtility else null;
2245     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2246   });
2248   pyrex = pyrex095;
2250   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2252   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2254   qi = callPackage ../development/compilers/qi { };
2256   racket = callPackage ../development/interpreters/racket { };
2258   ruby18 = callPackage ../development/interpreters/ruby { };
2259   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2260   ruby = ruby18;
2262   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2263     inherit pkgs stdenv;
2264   });
2266   rake = callPackage ../development/ruby-modules/rake { };
2268   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2270   rLang = callPackage ../development/interpreters/r-lang {
2271     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2272   };
2274   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2275     inherit ruby makeWrapper;
2276   };
2277   rubygems = rubygemsFun ruby;
2279   rq = callPackage ../applications/networking/cluster/rq { };
2281   scsh = callPackage ../development/interpreters/scsh { };
2283   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2284   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2286   sysPerl = callPackage ../development/interpreters/sys-perl { };
2288   tcl = callPackage ../development/interpreters/tcl { };
2290   xulrunnerWrapper = {application, launcher}:
2291     import ../development/interpreters/xulrunner/wrapper {
2292       inherit stdenv application launcher;
2293       xulrunner = firefox36Pkgs.xulrunner;
2294     };
2297   ### DEVELOPMENT / MISC
2299   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2300     gcc = gcc40;
2301   };
2303   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2305   /*
2306   toolbus = callPackage ../development/interpreters/toolbus { };
2307   */
2309   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2310     inherit getConfig;
2311   };
2313   ecj = callPackage ../development/eclipse/ecj { };
2315   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2317   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2319   jruby116 = callPackage ../development/interpreters/jruby { };
2321   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2323   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2324     gconf = gnome.GConf;
2325     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2326       libgnomeui pango;
2327   };
2329   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2331   windowssdk = (
2332     import ../development/misc/windows-sdk {
2333       inherit fetchurl stdenv cabextract;
2334     });
2337   ### DEVELOPMENT / TOOLS
2340   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2342   antlr3 = callPackage ../development/tools/parsing/antlr { };
2344   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin; name = "ant-" + jdk.name; } ;
2346   ant = apacheAnt;
2348   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2349     name = "ant-" + jdk.name;
2350   };
2352   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2353     jdk = j2sdk14x;
2354     name = "ant-" + j2sdk14x.name;
2355   };
2357   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2358     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2359   };
2361   autobuild = callPackage ../development/tools/misc/autobuild { };
2363   autoconf = callPackage ../development/tools/misc/autoconf { };
2365   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2367   automake = automake111x;
2369   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2371   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2373   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2375   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
2377   avrdude = callPackage ../development/tools/misc/avrdude { };
2379   binutils = callPackage ../development/tools/misc/binutils {
2380     inherit noSysDirs;
2381   };
2383   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2384       inherit stdenv fetchurl;
2385       noSysDirs = true;
2386       cross = assert crossSystem != null; crossSystem;
2387   });
2389   bison = bison23;
2391   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2393   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2395   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2397   buildbot = callPackage ../development/tools/build-managers/buildbot {
2398     inherit (pythonPackages) twisted;
2399   };
2401   byacc = callPackage ../development/tools/parsing/byacc { };
2403   camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2405   camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2406     transitional = true;
2407   };
2409   ccache = callPackage ../development/tools/misc/ccache { };
2411   ctags = callPackage ../development/tools/misc/ctags { };
2413   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2414     inherit pkgs ctags writeScriptBin;
2415   };
2417   cmake = callPackage ../development/tools/build-managers/cmake { };
2419   cmakeCurses = cmake.override { useNcurses = true; };
2421   cmakeWithGui = cmakeCurses.override { useQt4 = true; };
2423   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2425   cppi = callPackage ../development/tools/misc/cppi { };
2427   cproto = callPackage ../development/tools/misc/cproto { };
2429   cflow = callPackage ../development/tools/misc/cflow { };
2431   cscope = callPackage ../development/tools/misc/cscope { };
2433   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2435   ddd = callPackage ../development/tools/misc/ddd { };
2437   distcc = callPackage ../development/tools/misc/distcc { };
2439   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2440     inherit python pil makeWrapper;
2441   };
2443   doxygen = callPackage ../development/tools/documentation/doxygen {
2444     qt = qt4;
2445   };
2447   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2449   elfutils = callPackage ../development/tools/misc/elfutils { };
2451   epm = callPackage ../development/tools/misc/epm { };
2453   emma = callPackage ../development/tools/analysis/emma { };
2455   findbugs = callPackage ../development/tools/analysis/findbugs { };
2457   pmd = callPackage ../development/tools/analysis/pmd { };
2459   jdepend = callPackage ../development/tools/analysis/jdepend { };
2461   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2463   flex = flex254a;
2465   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2467   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2469   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2471   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2472   # alphabetically, hence the low priority.
2473   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2474     inherit fetchurl stdenv yacc;
2475   });
2477   m4 = gnum4;
2479   global = callPackage ../development/tools/misc/global { };
2481   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2483   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2485   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2487   gradle = callPackage ../development/tools/build-managers/gradle { };
2489   gperf = callPackage ../development/tools/misc/gperf { };
2491   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2493   guileLint = callPackage ../development/tools/guile/guile-lint { };
2495   gwrap = callPackage ../development/tools/guile/g-wrap { };
2497   help2man = callPackage ../development/tools/misc/help2man {
2498     inherit (perlPackages) LocaleGettext;
2499   };
2501   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2502     inherit (perlPackages) XMLSimple;
2503   };
2505   indent = callPackage ../development/tools/misc/indent { };
2507   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2509   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2511   jikespg = callPackage ../development/tools/parsing/jikespg { };
2513   lcov = callPackage ../development/tools/analysis/lcov { };
2515   libtool = libtool_2;
2517   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2519   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2521   lsof = callPackage ../development/tools/misc/lsof { };
2523   ltrace = callPackage ../development/tools/misc/ltrace { };
2525   mig = callPackage ../os-specific/gnu/mig { };
2527   mk = callPackage ../development/tools/build-managers/mk { };
2529   noweb = callPackage ../development/tools/literate-programming/noweb { };
2531   omake = callPackage ../development/tools/ocaml/omake { };
2534   openocd = callPackage ../development/tools/misc/openocd { };
2536   oprofile = import ../development/tools/profiling/oprofile {
2537     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep;
2539     # Optional build inputs for the (useless) GUI.
2540     /*
2541     qt = qt3;
2542     inherit (xlibs) libX11 libXext;
2543     inherit libpng;
2544      */
2545   };
2547   patchelf = callPackage ../development/tools/misc/patchelf { };
2549   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2551   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2553   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2554      because most usage of pkgconfig as buildInput (inheritance of
2555      pre-cross nixpkgs) means using it using as buildNativeInput
2556      cross_renaming: we should make all programs use pkgconfig as
2557      buildNativeInput after the renaming.
2558      */
2559   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2561   radare = callPackage ../development/tools/analysis/radare {
2562     inherit (gnome) vte;
2563     lua = lua5;
2564     useX11 = getConfig ["radare" "useX11"] false;
2565     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2566     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2567     luaBindings = getConfig ["radare" "luaBindings"] false;
2568   };
2570   ragel = callPackage ../development/tools/parsing/ragel { };
2572   remake = callPackage ../development/tools/build-managers/remake { };
2574   # couldn't find the source yet
2575   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2576     jre = jdk;  };
2578   scons = callPackage ../development/tools/build-managers/scons { };
2580   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2582   sloccount = callPackage ../development/tools/misc/sloccount { };
2584   sparse = callPackage ../development/tools/analysis/sparse { };
2586   spin = callPackage ../development/tools/analysis/spin { };
2588   splint = callPackage ../development/tools/analysis/splint { };
2590   strace = callPackage ../development/tools/misc/strace { };
2592   swig = callPackage ../development/tools/misc/swig { };
2594   swigWithJava = swig;
2596   swftools = callPackage ../tools/video/swftools { };
2598   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2600   texinfo = callPackage ../development/tools/misc/texinfo { };
2602   texi2html = callPackage ../development/tools/misc/texi2html { };
2604   uisp = callPackage ../development/tools/misc/uisp { };
2606   gdb = callPackage ../development/tools/misc/gdb {
2607     readline = readline5;
2608   };
2610   gdbCross = callPackage ../development/tools/misc/gdb {
2611     readline = readline5;
2612     target = crossSystem;
2613   };
2615   valgrind = callPackage ../development/tools/analysis/valgrind { };
2617   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
2619   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2620     flex = flex2535;
2621     qt = qt3;
2622     inherit pkgconfig makeWrapper bison python;
2623     inherit (xlibs) libXext libX11;
2624   };
2626   yacc = bison;
2628   yodl = callPackage ../development/tools/misc/yodl { };
2631   ### DEVELOPMENT / LIBRARIES
2634   a52dec = callPackage ../development/libraries/a52dec { };
2636   aalib = callPackage ../development/libraries/aalib { };
2638   acl = callPackage ../development/libraries/acl { };
2640   adns = import ../development/libraries/adns/1.4.nix {
2641     inherit stdenv fetchurl;
2642     static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
2643   };
2645   agg = callPackage ../development/libraries/agg { };
2647   allegro = callPackage ../development/libraries/allegro {};
2649   amrnb = callPackage ../development/libraries/amrnb { };
2651   amrwb = callPackage ../development/libraries/amrwb { };
2653   apr = callPackage ../development/libraries/apr { };
2655   aprutil = callPackage ../development/libraries/apr-util {
2656     bdbSupport = true;
2657   };
2659   aspell = callPackage ../development/libraries/aspell { };
2661   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2662     inherit fetchurl stdenv aspell which;
2663   });
2665   aterm = aterm25;
2667   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2668     inherit fetchurl stdenv;
2669   });
2671   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2673   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
2675   attr = callPackage ../development/libraries/attr { };
2677   aubio = callPackage ../development/libraries/aubio { };
2679   axis = callPackage ../development/libraries/axis { };
2681   babl = callPackage ../development/libraries/babl { };
2683   beecrypt = callPackage ../development/libraries/beecrypt { };
2685   boehmgc = callPackage ../development/libraries/boehm-gc { };
2687   boolstuff = callPackage ../development/libraries/boolstuff { };
2689   boost = callPackage ../development/libraries/boost { };
2691   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2692   boostFull = appendToName "full" (boost.override {
2693     enableDebug = true;
2694     enableSingleThreaded = true;
2695     enableStatic = true;
2696   });
2698   botan = callPackage ../development/libraries/botan { };
2700   buddy = callPackage ../development/libraries/buddy { };
2702   cairo = callPackage ../development/libraries/cairo { };
2703   cairo_1_10_0 = callPackage ../development/libraries/cairo/1.10.nix {
2704     pixman = xlibs.pixman_0_20_0;
2705   };
2707   cairomm = callPackage ../development/libraries/cairomm { };
2709   scmccid = callPackage ../development/libraries/scmccid { };
2711   ccrtp = callPackage ../development/libraries/ccrtp { };
2713   cgui = callPackage ../development/libraries/cgui {};
2715   check = callPackage ../development/libraries/check { };
2717   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2718     inherit cmake freeglut mesa;
2719     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2720   };
2722   chmlib = callPackage ../development/libraries/chmlib { };
2724   cil = callPackage ../development/libraries/cil { };
2726   cilaterm = callPackage ../development/libraries/cil-aterm {
2727     stdenv = overrideInStdenv stdenv [gnumake380];
2728   };
2730   clanlib = callPackage ../development/libraries/clanlib { };
2732   clapack = callPackage ../development/libraries/clapack {
2733     stdenv = stdenv2;
2734   };
2736   classads = callPackage ../development/libraries/classads { };
2738   classpath = callPackage ../development/libraries/java/classpath {
2739     javac = gcj;
2740     jvm = gcj;
2741     gconf = gnome.GConf;
2742   };
2744   clearsilver = callPackage ../development/libraries/clearsilver { };
2746   cln = callPackage ../development/libraries/cln { };
2748   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2749   };
2751   cluceneCore = callPackage ../development/libraries/clucene-core { };
2753   clutter = callPackage ../development/libraries/clutter {
2754     inherit (gnome) glib pango gtk;
2755   };
2757   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2758     inherit (gnome) gtk;
2759   };
2761   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2763   confuse = callPackage ../development/libraries/confuse { };
2765   consolekit = callPackage ../development/libraries/consolekit { };
2767   coredumper = callPackage ../development/libraries/coredumper { };
2769   ctl = callPackage ../development/libraries/ctl { };
2771   cppunit = callPackage ../development/libraries/cppunit { };
2773   cracklib = callPackage ../development/libraries/cracklib { };
2775   cryptopp = callPackage ../development/libraries/crypto++ { };
2777   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2779   db4 = db45;
2781   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2783   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2785   dbus = callPackage ../development/libraries/dbus {
2786     useX11 = true; # !!! `false' doesn't build
2787   };
2789   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2790     inherit fetchurl stdenv pkgconfig gettext dbus expat glib libiconv;
2791   };
2793   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2795   dclib = callPackage ../development/libraries/dclib { };
2797   directfb = callPackage ../development/libraries/directfb { };
2799   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2800     stdenv = overrideGCC stdenv gcc45;
2801   };
2803   enchant = callPackage ../development/libraries/enchant {
2804     inherit (gnome) glib;
2805   };
2807   enet = callPackage ../development/libraries/enet { };
2809   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2811   esdl = callPackage ../development/libraries/esdl { };
2813   exiv2 = callPackage ../development/libraries/exiv2 { };
2815   expat = callPackage ../development/libraries/expat { };
2817   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2818     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2819       libpng gettext intltool;
2820     inherit (xlibs) libX11 xproto libXi inputproto
2821       libXmu libXext xextproto libXt libSM libICE;
2822   };
2824   eventlog = callPackage ../development/libraries/eventlog { };
2826   facile = callPackage ../development/libraries/facile {
2827     # Actually, we don't need this version but we need native-code compilation
2828     ocaml = ocaml_3_10_0;
2829   };
2831   faac = callPackage ../development/libraries/faac { };
2833   faad2 = callPackage ../development/libraries/faad2 { };
2835   farsight2 = callPackage ../development/libraries/farsight2 {
2836     inherit (gnome) glib;
2837     inherit (gst_all) gstreamer gstPluginsBase;
2838   };
2840   fcgi = callPackage ../development/libraries/fcgi { };
2842   ffmpeg = callPackage ../development/libraries/ffmpeg { };
2844   fftw = callPackage ../development/libraries/fftw {
2845     singlePrecision = false;
2846   };
2848   fftwSinglePrec = callPackage ../development/libraries/fftw {
2849     singlePrecision = true;
2850   };
2852   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2854   fltk20 = callPackage ../development/libraries/fltk { };
2856   fmod = callPackage ../development/libraries/fmod { };
2858   freeimage = callPackage ../development/libraries/freeimage { };
2860   freetts = callPackage ../development/libraries/freetts { };
2862   cfitsio = callPackage ../development/libraries/cfitsio { };
2864   fontconfig = callPackage ../development/libraries/fontconfig { };
2866   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2867     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2868       inherit runCommand libxslt fontconfig fontDirectories;
2869     };
2871   freealut = callPackage ../development/libraries/freealut { };
2873   freeglut = callPackage ../development/libraries/freeglut { };
2875   freetype = callPackage ../development/libraries/freetype { };
2877   fribidi = callPackage ../development/libraries/fribidi { };
2879   fam = gamin;
2881   gamin = callPackage ../development/libraries/gamin { };
2883   gav = callPackage ../games/gav {
2884     stdenv = overrideGCC stdenv gcc41;
2885   };
2887   gdbm = callPackage ../development/libraries/gdbm { };
2889   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2890     inherit (gtkLibs1x) gtk;
2891   };
2893   gegl = callPackage ../development/libraries/gegl {
2894     #  avocodec avformat librsvg
2895     inherit (gtkLibs) pango glib gtk;
2896   };
2898   geoip = builderDefsPackage ../development/libraries/geoip {
2899     inherit zlib;
2900   };
2902   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2904   geos = callPackage ../development/libraries/geos { };
2906   gettext = gettext_0_17;
2908   gettext_0_17 = callPackage ../development/libraries/gettext { };
2909   gettext_0_18 = callPackage ../development/libraries/gettext/0.18.nix { };
2911   gd = callPackage ../development/libraries/gd { };
2913   gdal = callPackage ../development/libraries/gdal { };
2915   giblib = callPackage ../development/libraries/giblib { };
2917   glew = callPackage ../development/libraries/glew { };
2919   glfw = callPackage ../development/libraries/glfw { };
2921   glibc = glibc211;
2923   glibc25 = callPackage ../development/libraries/glibc-2.5 {
2924     kernelHeaders = linuxHeaders;
2925     installLocales = false;
2926   };
2928   glibc27 = callPackage ../development/libraries/glibc-2.7 {
2929     kernelHeaders = linuxHeaders;
2930     #installLocales = false;
2931   };
2933   glibc29 = callPackage ../development/libraries/glibc-2.9 {
2934     kernelHeaders = linuxHeaders;
2935     installLocales = getPkgConfig "glibc" "locales" false;
2936   };
2938   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
2939     inherit stdenv fetchurl;
2940     gccCross = gccCrossStageStatic;
2941     kernelHeaders = linuxHeadersCross;
2942     installLocales = getPkgConfig "glibc" "locales" false;
2943   });
2945   glibc211 = callPackage ../development/libraries/glibc-2.11 {
2946     kernelHeaders = linuxHeaders;
2947     installLocales = getPkgConfig "glibc" "locales" false;
2948     machHeaders = null;
2949     hurdHeaders = null;
2950     gccCross = null;
2951   };
2953   glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11)
2954     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
2955      in ({
2956        inherit stdenv fetchurl;
2957        gccCross = gccCrossStageStatic;
2958        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
2959        installLocales = getPkgConfig "glibc" "locales" false;
2960      }
2962      //
2964      (if crossGNU
2965       then { inherit machHeaders hurdHeaders mig fetchgit; }
2966       else { }))));
2968   glibcCross = glibc211Cross;
2970   # We can choose:
2971   libcCrossChooser = name : if (name == "glibc") then glibcCross
2972     else if (name == "uclibc") then uclibcCross
2973     else if (name == "msvcrt") then windows.mingw_headers3
2974     else throw "Unknown libc";
2976   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
2978   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
2980   libdwg = callPackage ../development/libraries/libdwg { };
2982   libgadu = callPackage ../development/libraries/libgadu { };
2984   eglibc = callPackage ../development/libraries/eglibc {
2985     kernelHeaders = linuxHeaders;
2986     installLocales = getPkgConfig "glibc" "locales" false;
2987   };
2989   glibcLocales = callPackage ../development/libraries/glibc-2.11/locales.nix { };
2991   glibcInfo = callPackage ../development/libraries/glibc-2.11/info.nix { };
2993   glibc_multi =
2994       runCommand "${glibc.name}-multi"
2995         { glibc64 = glibc;
2996           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
2997         }
2998         ''
2999           ensureDir $out
3000           ln -s $glibc64/* $out/
3002           rm $out/lib $out/lib64
3003           ensureDir $out/lib
3004           ln -s $glibc64/lib/* $out/lib
3005           ln -s $glibc32/lib $out/lib/32
3006           ln -s lib $out/lib64
3008           rm $out/include
3009           cp -rs $glibc32/include $out
3010           chmod -R u+w $out/include
3011           cp -rsf $glibc64/include $out
3012         '' # */
3013         ;
3015   glpk = callPackage ../development/libraries/glpk { };
3017   gmime = callPackage ../development/libraries/gmime { };
3019   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
3021   gmm = callPackage ../development/libraries/gmm { };
3023   gmp =
3024     if stdenv.system == "i686-darwin" then
3025       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
3026       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
3027         inherit stdenv fetchurl m4;
3028         cxx = false;
3029       }
3030     else
3031       makeOverridable (import ../development/libraries/gmp) {
3032         inherit stdenv fetchurl m4;
3033         cxx = false;
3034       };
3036   gmpxx = gmp.override { cxx = true; };
3038   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
3040   goffice = callPackage ../development/libraries/goffice {
3041     inherit (gnome) glib gtk libglade libgnomeui pango;
3042     gconf = gnome.GConf;
3043     libart = gnome.libart_lgpl;
3044   };
3046   goocanvas = callPackage ../development/libraries/goocanvas {
3047     inherit (gnome) gtk glib;
3048   };
3050   #GMP ex-satellite, so better keep it near gmp
3051   mpfr = callPackage ../development/libraries/mpfr { };
3053   gst_all = recurseIntoAttrs
3054     (let callPackage = newScope pkgs.gst_all; in
3055      import ../development/libraries/gstreamer { inherit callPackage pkgs; });
3057   gnet = callPackage ../development/libraries/gnet { };
3059   gnutls = callPackage ../development/libraries/gnutls {
3060     guileBindings = getConfig ["gnutls" "guile"] true;
3061   };
3063   gpgme = callPackage ../development/libraries/gpgme { };
3065   grantlee = callPackage ../development/libraries/grantlee { };
3067   gsasl = callPackage ../development/libraries/gsasl { };
3069   gsl = callPackage ../development/libraries/gsl { };
3071   gsoap = callPackage ../development/libraries/gsoap { };
3073   gss = callPackage ../development/libraries/gss { };
3075   gtkimageview = callPackage ../development/libraries/gtkimageview {
3076     inherit (gnome) gtk;
3077   };
3079   gtkLibs = gtkLibs220;
3081   glib = gtkLibs.glib;
3082   gtk = gtkLibs.gtk;
3083   pango = gtkLibs.pango;
3085   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
3087     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
3089     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
3091   });
3093   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
3095     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
3097     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
3099     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
3101     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
3103     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
3105     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
3107     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
3109   });
3111   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
3113     glib = callPackage ../development/libraries/glib/2.22.x.nix { };
3115     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3117     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
3119     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
3121     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3123     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
3125     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3127   });
3129   gtkLibs220 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs220; in rec {
3131     glib = callPackage ../development/libraries/glib/2.24.x.nix { };
3133     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3135     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3137     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3139     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3141     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3143     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3145   });
3147   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3148     inherit (gnome) gtk;
3149     gtksharp = gtksharp2;
3150   };
3152   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3153     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3154               libgnomecanvas libgnomeui libgnomeprint
3155               libgnomeprintui GConf;
3156   };
3158   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3159     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3160               libgnomecanvas libgnomeui libgnomeprint
3161               libgnomeprintui GConf gnomepanel;
3162   };
3164   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3165     inherit (gnome) gtksourceview;
3166     gtksharp = gtksharp2;
3167   };
3169   gtkspell = callPackage ../development/libraries/gtkspell { };
3171   # TODO : Add MIT Kerberos and let admin choose.
3172   kerberos = heimdal;
3174   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3176   hspell = callPackage ../development/libraries/hspell { };
3178   hspellDicts = callPackage ../development/libraries/hspell/dicts.nix { };
3180   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3182   hunspell = callPackage ../development/libraries/hunspell { };
3184   hwloc = callPackage ../development/libraries/hwloc { };
3186   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3188   icedtea = callPackage ../development/libraries/java/icedtea {
3189     ant = apacheAntGcj;
3190     xerces = xercesJava;
3191     xulrunner = icecatXulrunner3;
3192     inherit (xlibs) libX11 libXp libXtst libXinerama libXt
3193       libXrender xproto;
3194   };
3196   icu = callPackage ../development/libraries/icu { };
3198   id3lib = callPackage ../development/libraries/id3lib { };
3200   ilbc = callPackage ../development/libraries/ilbc { };
3202   ilmbase = callPackage ../development/libraries/ilmbase { };
3204   imlib = callPackage ../development/libraries/imlib { };
3206   imlib2 = callPackage ../development/libraries/imlib2 { };
3208   incrtcl = callPackage ../development/libraries/incrtcl { };
3210   indilib = callPackage ../development/libraries/indilib { };
3212   iniparser = callPackage ../development/libraries/iniparser { };
3214   intltool = gnome.intltool;
3216   isocodes = callPackage ../development/libraries/iso-codes { };
3218   itk = callPackage ../development/libraries/itk { };
3220   jamp = builderDefsPackage ../games/jamp {
3221     inherit mesa SDL SDL_image SDL_mixer;
3222   };
3224   jasper = callPackage ../development/libraries/jasper { };
3226   jama = callPackage ../development/libraries/jama { };
3228   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3230   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3232   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3234   json_glib = callPackage ../development/libraries/json-glib { };
3236   judy = callPackage ../development/libraries/judy { };
3238   kdevplatform = newScope pkgs.kde4 ../development/libraries/kdevplatform { };
3240   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3242   lablgtk = callPackage ../development/libraries/lablgtk {
3243     inherit (gnome) libgnomecanvas;
3244   };
3246   lcms = lcms1;
3248   lcms1 = callPackage ../development/libraries/lcms { };
3250   lcms2 = callPackage ../development/libraries/lcms2 { };
3252   lensfun = callPackage ../development/libraries/lensfun {
3253     inherit (gnome) glib;
3254   };
3256   lesstif = callPackage ../development/libraries/lesstif { };
3258   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3260   levmar = callPackage ../development/libraries/levmar { };
3262   lib3ds = callPackage ../development/libraries/lib3ds { };
3264   libaal = callPackage ../development/libraries/libaal { };
3266   libao = callPackage ../development/libraries/libao {
3267     usePulseAudio = getConfig [ "pulseaudio" ] true;
3268   };
3270   libarchive = callPackage ../development/libraries/libarchive { };
3272   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3274   libassuan = callPackage ../development/libraries/libassuan { };
3276   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3278   libcaca = callPackage ../development/libraries/libcaca { };
3280   libcanberra = callPackage ../development/libraries/libcanberra {
3281     gstreamer = gst_all.gstreamer;
3282   };
3284   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3286   libcddb = callPackage ../development/libraries/libcddb { };
3288   libcdio = callPackage ../development/libraries/libcdio { };
3290   libchamplain = callPackage ../development/libraries/libchamplain {
3291     inherit (gnome) gtk glib libsoup;
3292   };
3294   libcm = callPackage ../development/libraries/libcm { };
3296   libctemplate = callPackage ../development/libraries/libctemplate { };
3298   libcue = callPackage ../development/libraries/libcue { };
3300   libdaemon = callPackage ../development/libraries/libdaemon { };
3302   libdbi = callPackage ../development/libraries/libdbi { };
3304   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3305     mysql = null;
3306     sqlite = null;
3307   };
3309   libdbiDrivers = libdbiDriversBase.override {
3310     inherit sqlite mysql;
3311   };
3313   libdevil = callPackage ../development/libraries/libdevil { };
3315   libdiscid = callPackage ../development/libraries/libdiscid { };
3317   libdv = callPackage ../development/libraries/libdv { };
3319   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3320     inherit fetchurl stdenv pkgconfig;
3321     inherit (xorg) libpthreadstubs;
3322   });
3324   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3326   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3328   libdvdread = callPackage ../development/libraries/libdvdread { };
3330   libedit = callPackage ../development/libraries/libedit { };
3332   libelf = callPackage ../development/libraries/libelf { };
3334   liblo = callPackage ../development/libraries/liblo { };
3336   libev = builderDefsPackage ../development/libraries/libev {
3337   };
3339   libevent = callPackage ../development/libraries/libevent { };
3341   libewf = callPackage ../development/libraries/libewf { };
3343   libexif = callPackage ../development/libraries/libexif { };
3345   libextractor = callPackage ../development/libraries/libextractor {
3346     inherit (gnome) gtk;
3347     libmpeg2 = mpeg2dec;
3348   };
3350   libfixposix = callPackage ../development/libraries/libfixposix {};
3352   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3353     inherit fetchcvs;
3354   };
3356   libffi = callPackage ../development/libraries/libffi { };
3358   libftdi = callPackage ../development/libraries/libftdi { };
3360   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3362   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3364   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3366   libgpod = callPackage ../development/libraries/libgpod {
3367     inherit (pkgs.pythonPackages) mutagen;
3368   };
3370   libharu = callPackage ../development/libraries/libharu { };
3372   libical = callPackage ../development/libraries/libical { };
3374   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
3376   libiodbc = callPackage ../development/libraries/libiodbc {
3377     useGTK = getPkgConfig "libiodbc" "gtk" false;
3378   };
3380   libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
3382   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
3384   liblastfm = callPackage ../development/libraries/liblastfm { };
3386   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3387     inherit (gnome) glib;
3388   };
3390   libmhash = callPackage ../development/libraries/libmhash {};
3392   libmtp = callPackage ../development/libraries/libmtp { };
3394   libnice = callPackage ../development/libraries/libnice {
3395     inherit (gnome) glib;
3396   };
3398   libplist = callPackage ../development/libraries/libplist { stdenv = stdenv2; };
3400   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3402   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3404   libspectre = callPackage ../development/libraries/libspectre {
3405     ghostscript = ghostscriptX;
3406   };
3408   libgsf = callPackage ../development/libraries/libgsf {
3409     inherit (gnome) glib gnomevfs libbonobo;
3410   };
3412   libiconv = callPackage ../development/libraries/libiconv { };
3414   libid3tag = callPackage ../development/libraries/libid3tag { };
3416   libidn = callPackage ../development/libraries/libidn { };
3418   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3420   libinfinity = callPackage ../development/libraries/libinfinity {
3421     inherit (gnome) gtkdoc;
3422   };
3424   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3426   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3428   libjpeg = callPackage ../development/libraries/libjpeg { };
3430   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3432   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3433     libtool = libtool_1_5;
3434   };
3436   libksba = callPackage ../development/libraries/libksba { };
3438   libmad = callPackage ../development/libraries/libmad { };
3440   libmatchbox = callPackage ../development/libraries/libmatchbox {
3441     inherit (gtkLibs) pango;
3442   };
3444   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3446   libmcs = callPackage ../development/libraries/libmcs { };
3448   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3450   libmikmod = callPackage ../development/libraries/libmikmod { };
3452   libmilter = callPackage ../development/libraries/libmilter { };
3454   libmowgli = callPackage ../development/libraries/libmowgli { };
3456   libmng = callPackage ../development/libraries/libmng { };
3458   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3460   libmsn = callPackage ../development/libraries/libmsn { };
3462   libmspack = callPackage ../development/libraries/libmspack { };
3464   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3466   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3468   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3470   libmusicbrainz = libmusicbrainz3;
3472   libnih = callPackage ../development/libraries/libnih { };
3474   libnova = callPackage ../development/libraries/libnova { };
3476   libofa = callPackage ../development/libraries/libofa { };
3478   libofx = callPackage ../development/libraries/libofx { };
3480   libogg = callPackage ../development/libraries/libogg { };
3482   liboil = callPackage ../development/libraries/liboil { };
3484   liboop = callPackage ../development/libraries/liboop { };
3486   libosip = callPackage ../development/libraries/osip {};
3488   libotr = callPackage ../development/libraries/libotr { };
3490   libp11 = callPackage ../development/libraries/libp11 { };
3492   libpcap = callPackage ../development/libraries/libpcap { };
3494   libpng = callPackage ../development/libraries/libpng { };
3495   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
3497   libproxy = callPackage ../development/libraries/libproxy { };
3499   libpseudo = callPackage ../development/libraries/libpseudo { };
3501   libqalculate = callPackage ../development/libraries/libqalculate { };
3503   librsync = callPackage ../development/libraries/librsync { };
3505   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3507   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
3509   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3511   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3512   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3514   libsndfile = callPackage ../development/libraries/libsndfile { };
3516   libssh = callPackage ../development/libraries/libssh { };
3518   libssh2 = callPackage ../development/libraries/libssh2 { };
3520   libstartup_notification = callPackage ../development/libraries/startup-notification { };
3522   libtasn1 = callPackage ../development/libraries/libtasn1 { };
3524   libtheora = callPackage ../development/libraries/libtheora { };
3526   libtiff = callPackage ../development/libraries/libtiff { };
3528   libtommath = callPackage ../development/libraries/libtommath { };
3530   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
3532   libtunepimp = callPackage ../development/libraries/libtunepimp { };
3534   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3536   libunistring = callPackage ../development/libraries/libunistring { };
3538   libupnp = callPackage ../development/libraries/pupnp { };
3540   giflib = callPackage ../development/libraries/giflib { };
3542   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3544   libusb = callPackage ../development/libraries/libusb { };
3546   libusb1 = callPackage ../development/libraries/libusb1 { };
3548   libunwind = callPackage ../development/libraries/libunwind { };
3550   libv4l = callPackage ../development/libraries/libv4l { };
3552   libvirt = callPackage ../development/libraries/libvirt { };
3554   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3555     inherit libtool libjpeg openssl zlib;
3556     inherit (xlibs) xproto libX11 damageproto libXdamage
3557       libXext xextproto fixesproto libXfixes xineramaproto
3558       libXinerama libXrandr randrproto libXtst;
3559   };
3561   libviper = callPackage ../development/libraries/libviper { };
3563   libvpx = callPackage ../development/libraries/libvpx { };
3565   libvterm = callPackage ../development/libraries/libvterm { };
3567   libvorbis = callPackage ../development/libraries/libvorbis { };
3569   libwmf = callPackage ../development/libraries/libwmf { };
3571   libwpd = callPackage ../development/libraries/libwpd {
3572     inherit (gnome) glib;
3573   };
3575   libwpg = callPackage ../development/libraries/libwpg { };
3577   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3579   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3581   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3583   libxklavier = callPackage ../development/libraries/libxklavier { };
3585   libxmi = callPackage ../development/libraries/libxmi { };
3587   libxml2 = callPackage ../development/libraries/libxml2 {
3588     pythonSupport = false;
3589   };
3591   libxml2Python = libxml2.override {
3592     pythonSupport = true;
3593   };
3595   libxmlxx = callPackage ../development/libraries/libxmlxx {
3596     inherit (gtkLibs) glibmm;
3597   };
3599   libxslt = callPackage ../development/libraries/libxslt { };
3601   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3602     inherit fetchurl stdenv;
3603   });
3605   libyaml = callPackage ../development/libraries/libyaml { };
3607   libzip = callPackage ../development/libraries/libzip { };
3609   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3611   lightning = callPackage ../development/libraries/lightning { };
3613   liquidwar = builderDefsPackage ../games/liquidwar {
3614     inherit (xlibs) xproto libX11 libXrender;
3615     inherit gmp guile mesa libjpeg libpng
3616       expat gettext perl
3617       SDL SDL_image SDL_mixer SDL_ttf
3618       curl sqlite
3619       libogg libvorbis
3620       ;
3621   };
3623   log4cxx = callPackage ../development/libraries/log4cxx { };
3625   loudmouth = callPackage ../development/libraries/loudmouth { };
3627   lzo = callPackage ../development/libraries/lzo { };
3629   # failed to build
3630   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3632   mesaSupported =
3633     system == "i686-linux" ||
3634     system == "x86_64-linux" ||
3635     system == "x86_64-darwin" ||
3636     system == "i686-darwin";
3638   mesa = callPackage ../development/libraries/mesa {
3639     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3640   };
3642   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
3643     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
3644     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
3645     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
3646     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
3647     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
3648     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
3649     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
3650     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
3651     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
3652     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
3653     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
3654     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
3655     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
3656     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
3657   });
3659   ming = callPackage ../development/libraries/ming { };
3661   mlt = callPackage ../development/libraries/mlt {
3662     qt = qt4;
3663   };
3665   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3667   msilbc = callPackage ../development/libraries/msilbc { };
3669   mp4v2 = callPackage ../development/libraries/mp4v2 { };
3671   mpc = callPackage ../development/libraries/mpc { };
3673   mpich2 = callPackage ../development/libraries/mpich2 { };
3675   muparser = callPackage ../development/libraries/muparser { };
3677   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3678     inherit fetchurl stdenv;
3679     # The "! (stdenv ? cross)" is for the cross-built arm ncurses, which
3680     # don't build for me in unicode.
3681     unicode = (system != "i686-cygwin" && crossSystem == null);
3682   };
3684   neon = neon029;
3686   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3687     compressionSupport = true;
3688     sslSupport = true;
3689   };
3691   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3692     compressionSupport = true;
3693     sslSupport = true;
3694   };
3696   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3697     compressionSupport = true;
3698     sslSupport = true;
3699   };
3701   nethack = builderDefsPackage (import ../games/nethack) {
3702     inherit ncurses flex bison;
3703   };
3705   nettle = callPackage ../development/libraries/nettle { };
3707   nspr = callPackage ../development/libraries/nspr { };
3709   nss = callPackage ../development/libraries/nss { };
3711   nssTools = callPackage ../development/libraries/nss {
3712     includeTools = true;
3713   };
3715   ode = builderDefsPackage (import ../development/libraries/ode) {
3716   };
3718   openal = callPackage ../development/libraries/openal { };
3720   # added because I hope that it has been easier to compile on x86 (for blender)
3721   openalSoft = callPackage ../development/libraries/openal-soft { };
3723   openbabel = callPackage ../development/libraries/openbabel { };
3725   opencascade = callPackage ../development/libraries/opencascade { };
3727   openct = callPackage ../development/libraries/openct { };
3729   opencv = callPackage ../development/libraries/opencv {
3730     inherit (gst_all) gstreamer;
3731     stdenv = stdenv2;
3732   };
3734   # this ctl version is needed by openexr_viewers
3735   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3737   openexr = callPackage ../development/libraries/openexr { };
3739   openldap = callPackage ../development/libraries/openldap { };
3741   openlierox = builderDefsPackage ../games/openlierox {
3742     inherit (xlibs) libX11 xproto;
3743     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3744       pkgconfig;
3745   };
3747   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3748     opensc = opensc_0_11_7;
3749   };
3751   opal = callPackage ../development/libraries/opal {};
3753   openjpeg = callPackage ../development/libraries/openjpeg { };
3755   openssl = callPackage ../development/libraries/openssl {
3756     fetchurl = fetchurlBoot;
3757   };
3759   ortp = callPackage ../development/libraries/ortp { };
3761   pangoxsl = callPackage ../development/libraries/pangoxsl {
3762     inherit (gtkLibs) glib pango;
3763   };
3765   pcre = callPackage ../development/libraries/pcre {
3766     unicodeSupport = getConfig ["pcre" "unicode"] false;
3767     cplusplusSupport = !stdenv ? isDietLibC;
3768   };
3770   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
3772   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
3774   physfs = callPackage ../development/libraries/physfs { };
3776   plib = callPackage ../development/libraries/plib { };
3778   podofo = callPackage ../development/libraries/podofo {
3779     stdenv = stdenv2;
3780   };
3782   polkit = callPackage ../development/libraries/polkit { };
3784   policykit = callPackage ../development/libraries/policykit { };
3786   poppler = callPackage ../development/libraries/poppler {
3787     qt4Support = false;
3788   };
3790   popplerQt4 = poppler.override {
3791     inherit qt4;
3792     qt4Support = true;
3793   };
3795   popt = callPackage ../development/libraries/popt { };
3797   portaudio = callPackage ../development/libraries/portaudio { };
3799   proj = callPackage ../development/libraries/proj { };
3801   postgis = callPackage ../development/libraries/postgis { };
3803   protobuf = callPackage ../development/libraries/protobuf { };
3805   pth = callPackage ../development/libraries/pth { };
3807   ptlib = callPackage ../development/libraries/ptlib {};
3809   qjson = callPackage ../development/libraries/qjson { };
3811   qt3 = callPackage ../development/libraries/qt-3 {
3812     openglSupport = mesaSupported;
3813     mysqlSupport = getConfig ["qt" "mysql"] false;
3814   };
3816   qt3mysql = qt3.override {
3817     mysqlSupport = true;
3818   };
3820   qt4 = pkgs.kde4.qt4;
3822   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3823     inherit (gnome) glib;
3824   };
3826   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3827     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
3828     inherit (pkgs.gnome) glib;
3829   };
3831   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
3833   quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
3835   quasselDaemon = appendToName "daemon" (quassel.override {
3836     monolithic = false;
3837     daemon = true;
3838   });
3840   quasselClient = appendToName "client" (quassel.override {
3841     monolithic = false;
3842     client = true;
3843   });
3845   quesoglc = callPackage ../development/libraries/quesoglc { };
3847   readline = readline6;
3849   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3851   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3853   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3855   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3857   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3859   librdf = callPackage ../development/libraries/librdf { };
3861   qrupdate = callPackage ../development/libraries/qrupdate { };
3863   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3864     bdb = db4;
3865     postgresql = null;
3866   };
3868   rhino = callPackage ../development/libraries/java/rhino {
3869     ant = apacheAntGcj;
3870     javac = gcj;
3871     jvm = gcj;
3872   };
3874   rlog = callPackage ../development/libraries/rlog { };
3876   rte = callPackage ../development/libraries/rte { };
3878   rubberband = callPackage ../development/libraries/rubberband {
3879     fftw = fftwSinglePrec;
3880     inherit (vamp) vampSDK;
3881   };
3883   schroedinger = callPackage ../development/libraries/schroedinger { };
3885   SDL = callPackage ../development/libraries/SDL {
3886     openglSupport = mesaSupported;
3887     alsaSupport = true;
3888     pulseaudioSupport = false; # better go through ALSA
3889   };
3891   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3893   SDL_image = callPackage ../development/libraries/SDL_image { };
3895   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3897   SDL_net = callPackage ../development/libraries/SDL_net { };
3899   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3901   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3903   slang = callPackage ../development/libraries/slang { };
3905   slibGuile = callPackage ../development/libraries/slib {
3906     scheme = guile;
3907   };
3909   snack = callPackage ../development/libraries/snack {
3910         # optional
3911   };
3913   speex = callPackage ../development/libraries/speex { };
3915   srtp = callPackage ../development/libraries/srtp {};
3917   sqlite = callPackage ../development/libraries/sqlite {
3918     readline = null;
3919     ncurses = null;
3920   };
3922   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
3923     readline = null;
3924     ncurses = null;
3925   };
3927   sqliteInteractive = appendToName "interactive" (sqlite.override {
3928     inherit readline ncurses;
3929   });
3931   stlport = callPackage ../development/libraries/stlport { };
3933   suitesparse = callPackage ../development/libraries/suitesparse { };
3935   sword = callPackage ../development/libraries/sword { };
3937   szip = callPackage ../development/libraries/szip { };
3939   t1lib = callPackage ../development/libraries/t1lib { };
3941   taglib = callPackage ../development/libraries/taglib { };
3943   taglib17 = callPackage ../development/libraries/taglib/1.7.nix { };
3945   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3947   talloc = callPackage ../development/libraries/talloc { };
3949 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3950 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3951 ##  };
3953   tdb = callPackage ../development/libraries/tdb { };
3955   tecla = callPackage ../development/libraries/tecla { };
3957   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3959   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3961   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3963   tk = callPackage ../development/libraries/tk { };
3965   tnt = callPackage ../development/libraries/tnt { };
3967   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
3969   unicap = callPackage ../development/libraries/unicap {};
3971   unixODBC = callPackage ../development/libraries/unixODBC { };
3973   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3974     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3975     inherit postgresql mysql sqlite;
3976   });
3978   urt = callPackage ../development/libraries/urt { };
3980   vamp = callPackage ../development/libraries/audio/vamp { };
3982   vigra = callPackage ../development/libraries/vigra { };
3984   vtk = callPackage ../development/libraries/vtk { };
3986   vxl = callPackage ../development/libraries/vxl { };
3988   webkit = ((builderDefsPackage ../development/libraries/webkit {
3989     inherit (gnome28) gtkdoc libsoup;
3990     inherit (gtkLibs) gtk atk pango glib;
3991     inherit freetype fontconfig gettext gperf curl
3992       libjpeg libtiff libpng libxml2 libxslt sqlite
3993       icu cairo perl intltool automake libtool
3994       pkgconfig autoconf bison libproxy enchant
3995       python ruby which;
3996     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3997       gstPluginsGood;
3998     flex = flex2535;
3999     inherit (xlibs) libXt renderproto libXrender;
4000   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
4002   wvstreams = callPackage ../development/libraries/wvstreams { };
4004   wxGTK = wxGTK28;
4006   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
4007     inherit (gtkLibs216) gtk;
4008   };
4010   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
4011     inherit (gtkLibs) gtk;
4012   };
4014   wtk = callPackage ../development/libraries/wtk { };
4016   x264 = callPackage ../development/libraries/x264 { };
4018   xapian = callPackage ../development/libraries/xapian { };
4020   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
4021   };
4023   Xaw3d = callPackage ../development/libraries/Xaw3d {
4024     flex = flex2533;
4025   };
4027   xbase = callPackage ../development/libraries/xbase { };
4029   xineLib = callPackage ../development/libraries/xine-lib { };
4031   xautolock = callPackage ../misc/screensavers/xautolock { };
4033   xercesJava = callPackage ../development/libraries/java/xerces {
4034     ant   = apacheAntGcj;  # for bootstrap purposes
4035     javac = gcj;
4036     jvm   = gcj;
4037   };
4039   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
4040     packages = [
4041       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
4042       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
4043       xlibs.xextproto
4044     ];
4045   };
4047   xvidcore = callPackage ../development/libraries/xvidcore { };
4049   zangband = builderDefsPackage (import ../games/zangband) {
4050     inherit ncurses flex bison autoconf automake m4 coreutils;
4051   };
4053   zlib = callPackage ../development/libraries/zlib {
4054     fetchurl = fetchurlBoot;
4055   };
4057   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
4058     inherit fetchurl stdenv;
4059     static = true;
4060   }));
4062   zvbi = callPackage ../development/libraries/zvbi {
4063     pngSupport = true;
4064   };
4067   ### DEVELOPMENT / LIBRARIES / JAVA
4070   atermjava = callPackage ../development/libraries/java/aterm {
4071     stdenv = overrideInStdenv stdenv [gnumake380];
4073   };
4075   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
4077   fastjar = callPackage ../development/tools/java/fastjar { };
4079   httpunit = callPackage ../development/libraries/java/httpunit { };
4081   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
4083   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
4085   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
4086     regexp = jakartaregexp;
4087   };
4089   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
4091   javaCup = callPackage ../development/libraries/java/cup { };
4093   javasvn = callPackage ../development/libraries/java/javasvn { };
4095   jclasslib = callPackage ../development/tools/java/jclasslib {
4096     ant = apacheAnt14;
4097   };
4099   jdom = callPackage ../development/libraries/java/jdom { };
4101   jflex = callPackage ../development/libraries/java/jflex { };
4103   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
4104     stdenv = overrideInStdenv stdenv [gnumake380];
4105   };
4107   junit = callPackage ../development/libraries/java/junit { };
4109   lucene = callPackage ../development/libraries/java/lucene { };
4111   mockobjects = callPackage ../development/libraries/java/mockobjects { };
4113   saxon = callPackage ../development/libraries/java/saxon { };
4115   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
4117   sharedobjects = callPackage ../development/libraries/java/shared-objects {
4118     stdenv = overrideInStdenv stdenv [gnumake380];
4119   };
4121   smack = callPackage ../development/libraries/java/smack { };
4123   swt = callPackage ../development/libraries/java/swt { };
4125   v8 = callPackage ../development/libraries/v8 { };
4127   xalanj = xalanJava;
4128   xalanJava = callPackage ../development/libraries/java/xalanj {
4129     ant    = apacheAntGcj;  # for bootstrap purposes
4130     javac  = gcj;
4131     jvm    = gcj;
4132     xerces = xercesJava;  };
4134   zziplib = callPackage ../development/libraries/zziplib { };
4137   ### DEVELOPMENT / PERL MODULES
4139   buildPerlPackage = import ../development/perl-modules/generic perl;
4141   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
4142     inherit pkgs;
4143   });
4145   perlXMLParser = perlPackages.XMLParser;
4147   ack = perlPackages.ack;
4149   perlcritic = perlPackages.PerlCritic;
4152   ### DEVELOPMENT / PYTHON MODULES
4154   buildPythonPackage = import ../development/python-modules/generic {
4155     inherit python setuptools makeWrapper lib;
4156   };
4158   buildPython26Package = import ../development/python-modules/generic {
4159     inherit makeWrapper lib;
4160     python = python26;
4161     setuptools = setuptools.override { python = python26; };
4162   };
4164   buildPython27Package = import ../development/python-modules/generic {
4165     inherit makeWrapper lib;
4166     python = python27;
4167     setuptools = setuptools.override { python = python27; doCheck = false; };
4168   };
4170   pythonPackages = python26Packages;
4172   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
4173     inherit pkgs;
4174     python = python26;
4175     buildPythonPackage = buildPython26Package;
4176   });
4178   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
4179     inherit pkgs;
4180     python = python27;
4181     buildPythonPackage = buildPython27Package;
4182   });
4184   foursuite = callPackage ../development/python-modules/4suite { };
4186   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
4188   numeric = callPackage ../development/python-modules/numeric { };
4190   pil = callPackage ../development/python-modules/pil { };
4192   psyco = callPackage ../development/python-modules/psyco { };
4194   pycairo = callPackage ../development/python-modules/pycairo { };
4196   pycrypto = callPackage ../development/python-modules/pycrypto { };
4198   pycups = callPackage ../development/python-modules/pycups { };
4200   pygame = callPackage ../development/python-modules/pygame { };
4202   pygobject = callPackage ../development/python-modules/pygobject { };
4204   pygtk = callPackage ../development/python-modules/pygtk { };
4206   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4207     inherit (gnome) libglade;
4208   };
4210   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4211     inherit python openssl;
4212   };
4214   rhpl = callPackage ../development/python-modules/rhpl { };
4216   sip = callPackage ../development/python-modules/python-sip { };
4218   pyqt4 = callPackage ../development/python-modules/pyqt { };
4220   pyx = callPackage ../development/python-modules/pyx { };
4222   pyxml = callPackage ../development/python-modules/pyxml { };
4224   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4225     inherit python makeWrapper;
4226   };
4228   wxPython = wxPython26;
4230   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4231     wxGTK = wxGTK26;
4232   };
4234   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4236   twisted = pythonPackages.twisted;
4238   ZopeInterface = pythonPackages.zopeInterface;
4240   zope = callPackage ../development/python-modules/zope {
4241     python = python24;
4242   };
4244   ### SERVERS
4246   rdf4store = callPackage ../servers/http/4store { };
4248   apacheHttpd = callPackage ../servers/http/apache-httpd {
4249     sslSupport = true;
4250   };
4252   sabnzbd = callPackage ../servers/sabnzbd { };
4254   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4255     inherit openssl libtool;
4256   };
4258   dico = callPackage ../servers/dico { };
4260   dict = callPackage ../servers/dict { };
4262   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4263     inherit builderDefs;
4264   });
4266   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4267     inherit stdenv lib dict;
4268   };
4270   dovecot = callPackage ../servers/mail/dovecot { };
4271   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4273   ejabberd = callPackage ../servers/xmpp/ejabberd {
4274     erlang = erlangR13B ;
4275   };
4277   couchdb = callPackage ../servers/http/couchdb { };
4279   felix = callPackage ../servers/felix { };
4281   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4283   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4285   firebird = callPackage ../servers/firebird { };
4287   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4289   jboss = callPackage ../servers/http/jboss { };
4291   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4293   jetty = callPackage ../servers/http/jetty { };
4295   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4297   lighttpd = callPackage ../servers/http/lighttpd { };
4299   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4301   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
4303   mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { };
4305   mpd = callPackage ../servers/mpd { };
4307   myserver = callPackage ../servers/http/myserver { };
4309   nginx = builderDefsPackage (import ../servers/http/nginx) {
4310     inherit openssl pcre zlib libxml2 libxslt;
4311   };
4313   postfix = callPackage ../servers/mail/postfix { };
4315   pulseaudio = callPackage ../servers/pulseaudio {
4316     gconf = gnome.GConf;
4317   };
4319   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4321   portmap = callPackage ../servers/portmap { };
4323   monetdb = callPackage ../servers/sql/monetdb { };
4325   mysql4 = import ../servers/sql/mysql {
4326     inherit fetchurl stdenv ncurses zlib perl;
4327     ps = procps; /* !!! Linux only */
4328   };
4330   mysql5 = import ../servers/sql/mysql5 {
4331     inherit fetchurl stdenv ncurses zlib perl openssl;
4332     ps = procps; /* !!! Linux only */
4333   };
4335   mysql51 = import ../servers/sql/mysql51 {
4336     inherit fetchurl ncurses zlib perl openssl stdenv;
4337     ps = procps; /* !!! Linux only */
4338   };
4340   mysql = mysql5;
4342   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4344   nagios = callPackage ../servers/monitoring/nagios {
4345     gdSupport = true;
4346   };
4348   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4350   openfire = callPackage ../servers/xmpp/openfire { };
4352   postgresql = postgresql83;
4354   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4356   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4358   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4360   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4361     inherit xmpppy pythonIRClib python makeWrapper;
4362   };
4364   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4365     inherit xmpppy python makeWrapper fetchcvs;
4366   };
4368   radius = callPackage ../servers/radius { };
4370   redstore = callPackage ../servers/http/redstore { };
4372   samba = callPackage ../servers/samba { };
4374   shishi = callPackage ../servers/shishi { };
4376   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4377     inherit fetchurl stdenv perl lib composableDerivation;
4378   });
4379   squid = squids.squid3Beta; # has ipv6 support
4381   tomcat5 = callPackage ../servers/http/tomcat/5.0.nix { };
4383   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4385   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4387   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4389   virtuoso = callPackage ../servers/sql/virtuoso { };
4391   vsftpd = callPackage ../servers/ftp/vsftpd { };
4393   xinetd = callPackage ../servers/xinetd { };
4395   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4396     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4397       libxslt expat libdrm libpng zlib perl mesa
4398       xkeyboard_config dbus hal libuuid openssl gperf m4
4399       autoconf libtool xmlto asciidoc udev;
4401     # XXX: Update to newer Automake on the next big rebuild; better yet:
4402     # remove the dependency on Automake.
4403     automake = automake110x;
4405     # !!! pythonBase is used instead of python because this causes an
4406     # infinite recursion when the flag python.full is set to true.
4407     # Packages contained in the loop are python, tk, xlibs-wrapper,
4408     # libX11, libxcd (and xcb-proto).
4409     python = pythonBase;
4410   });
4412   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4414   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4416   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4417     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4418   });
4421   ### OS-SPECIFIC
4423   afuse = callPackage ../os-specific/linux/afuse { };
4425   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4427   _915resolution = callPackage ../os-specific/linux/915resolution { };
4429   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4431   acpi = callPackage ../os-specific/linux/acpi { };
4433   acpid = callPackage ../os-specific/linux/acpid { };
4435   acpitool = callPackage ../os-specific/linux/acpitool { };
4437   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4439   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4440   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4442   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4444   bluez = callPackage ../os-specific/linux/bluez { };
4446   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
4448   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4450   conky = callPackage ../os-specific/linux/conky { };
4452   cpufrequtils = (
4453     import ../os-specific/linux/cpufrequtils {
4454     inherit fetchurl stdenv libtool gettext;
4455     glibc = stdenv.gcc.libc;
4456     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4457   });
4459   cryopid = callPackage ../os-specific/linux/cryopid { };
4461   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4463   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4465   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4467   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4469   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4471   devicemapper = lvm2;
4473   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4475   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4477   dietlibc = callPackage ../os-specific/linux/dietlibc {
4478     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4479     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4480   };
4482   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4483     inherit libjpeg pkgconfig zlib directfb;
4484     inherit (xlibs) xproto;
4485   };
4487   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4488     inherit devicemapper;
4489   };
4491   libuuid =
4492     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
4493     then (utillinuxng // {
4494       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
4495         # `libblkid' fails to build on GNU/Hurd.
4496         configureFlags = args.configureFlags
4497           + " --disable-libblkid --disable-mount --disable-fsck"
4498           + " --enable-static";
4499         doCheck = false;
4500         CPPFLAGS =                    # ugly hack for ugly software!
4501           lib.concatStringsSep " "
4502             (map (v: "-D${v}=4096")
4503                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
4504       });
4505     })
4506     else if stdenv.isLinux
4507     then utillinuxng
4508     else null;
4510   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4512   eject = callPackage ../os-specific/linux/eject { };
4514   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4515     inherit fontconfig gpm freetype pkgconfig ncurses;
4516   };
4518   fuse = callPackage ../os-specific/linux/fuse { };
4520   fxload = callPackage ../os-specific/linux/fxload { };
4522   gpm = callPackage ../servers/gpm {
4523     flex = flex2535;
4524   };
4526   hal = callPackage ../os-specific/linux/hal { };
4528   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4530   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4532   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4534   hdparm = callPackage ../os-specific/linux/hdparm { };
4536   hibernate = callPackage ../os-specific/linux/hibernate { };
4538   htop = callPackage ../os-specific/linux/htop { };
4540   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4541     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4542       mig glibcCross;
4543     automake = automake111x;
4544     headersOnly = false;
4545     cross = assert crossSystem != null; crossSystem;
4546     gccCross = gccCrossStageFinal;
4547   });
4549   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4550     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4551       mig glibcCross;
4552     automake = automake111x;
4553     headersOnly = false;
4554     cross = assert crossSystem != null; crossSystem;
4556     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4557     # particular) so we first need an intermediate Hurd built with the
4558     # intermediate GCC.
4559     gccCross = gccCrossStageStatic;
4561     # This intermediate Hurd is only needed to build libpthread, which really
4562     # only needs libihash.
4563     buildTarget = "libihash";
4564     installTarget = "libihash-install";
4565   });
4567   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4568     automake = automake111x;
4569     headersOnly = true;
4570     gccCross = null;
4571     glibcCross = null;
4572   };
4574   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4575     inherit fetchgit stdenv autoconf automake libtool
4576       machHeaders hurdHeaders glibcCross;
4577     hurd = hurdCrossIntermediate;
4578     gccCross = gccCrossStageStatic;
4579     cross = assert crossSystem != null; crossSystem;
4580   });
4582   hwdata = callPackage ../os-specific/linux/hwdata { };
4584   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4586   iotop = callPackage ../os-specific/linux/iotop {
4587     python = pythonFull;
4588   };
4590   iproute = callPackage ../os-specific/linux/iproute { };
4592   iputils = (
4593     import ../os-specific/linux/iputils {
4594     inherit fetchurl stdenv;
4595     glibc = stdenv.gcc.libc;
4596     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4597   });
4599   iptables = callPackage ../os-specific/linux/iptables { };
4601   ipw2100fw = callPackage ../os-specific/linux/firmware/ipw2100 { };
4603   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4605   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4607   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4609   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4611   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4613   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4615   kbd = callPackage ../os-specific/linux/kbd { };
4617   libcroup = callPackage ../os-specific/linux/libcg { };
4619   libnl = callPackage ../os-specific/linux/libnl {
4620     flex = flex2535;
4621     bison = bison24;
4622   };
4624   linuxHeaders = linuxHeaders_2_6_28;
4626   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4627     inherit stdenv fetchurl perl;
4628     cross = assert crossSystem != null; crossSystem;
4629   });
4631   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4632     inherit stdenv fetchurl perl;
4633     cross = assert crossSystem != null; crossSystem;
4634   });
4636   # We can choose:
4637   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4638     else if (ver == "2.6") then linuxHeaders26Cross
4639     else throw "Unknown linux kernel version";
4641   linuxHeadersCross = assert crossSystem != null;
4642     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4644   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4646   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4648   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4650   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4652   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4653     inherit fetchurl stdenv perl mktemp module_init_tools;
4654     kernelPatches =
4655       [ kernelPatches.fbcondecor_2_6_25
4656         kernelPatches.sec_perm_2_6_24
4657       ];
4658   };
4660   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4661     inherit fetchurl stdenv perl mktemp module_init_tools;
4662     kernelPatches =
4663       [ kernelPatches.fbcondecor_2_6_27
4664         kernelPatches.sec_perm_2_6_24
4665       ];
4666   };
4668   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4669     inherit fetchurl stdenv perl mktemp module_init_tools;
4670     kernelPatches =
4671       [ kernelPatches.fbcondecor_2_6_28
4672         kernelPatches.sec_perm_2_6_24
4673         kernelPatches.ext4_softlockups_2_6_28
4674       ];
4675   };
4677   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4678     inherit fetchurl stdenv perl mktemp module_init_tools;
4679     kernelPatches =
4680       [ kernelPatches.fbcondecor_2_6_29
4681         kernelPatches.sec_perm_2_6_24
4682       ];
4683   };
4685   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4686     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4687     kernelPatches = [];
4688   };
4690   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4691     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4692     kernelPatches =
4693       [ kernelPatches.fbcondecor_2_6_31
4694         kernelPatches.sec_perm_2_6_24
4695         kernelPatches.aufs2_2_6_32
4696         kernelPatches.cifs_timeout
4697         kernelPatches.no_xsave
4698         kernelPatches.dell_rfkill
4699         kernelPatches.xen_pvclock_resume
4700       ];
4701   };
4703   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
4704     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4705     kernelPatches =
4706       [ kernelPatches.fbcondecor_2_6_31
4707         kernelPatches.sec_perm_2_6_24
4708         kernelPatches.aufs2_2_6_32
4709         kernelPatches.cifs_timeout
4710         kernelPatches.no_xsave
4711         kernelPatches.dell_rfkill
4712       ];
4713   };
4715   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4716     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4717     extraConfig =
4718       ''
4719         DEBUG_KERNEL y
4720         KPROBES y # kernel probes (needs `utrace' for process probes)
4721         DEBUG_INFO y
4722         RELAY y
4723         DEBUG_FS y
4724       '';
4725     dontStrip = true;
4726     kernelPatches =
4727       [ kernelPatches.fbcondecor_2_6_31
4728         kernelPatches.sec_perm_2_6_24
4729         kernelPatches.tracehook_2_6_32
4730         kernelPatches.utrace_2_6_32
4731       ];
4732   };
4734   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4735     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4736   };
4738   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4739     features = {
4740       oldI686 = true;
4741     };
4742   };
4744   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4745     features = {
4746       ckSched = true;
4747     };
4748   };
4750   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4751     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4752     kernelPatches =
4753       [ kernelPatches.fbcondecor_2_6_33
4754         kernelPatches.sec_perm_2_6_24
4755       ];
4756   };
4758   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4759     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4760   };
4762   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4763     features = {
4764       oldI686 = true;
4765     };
4766   };
4768   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4769     features = {
4770       ckSched = true;
4771     };
4772   };
4774   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4775     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4776     kernelPatches =
4777       [ /*kernelPatches.fbcondecor_2_6_33*/
4778         kernelPatches.sec_perm_2_6_24
4779         kernelPatches.aufs2_2_6_34
4780       ];
4781   };
4783   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
4784     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4785     kernelPatches =
4786       [ #kernelPatches.fbcondecor_2_6_35
4787         kernelPatches.sec_perm_2_6_24
4788         kernelPatches.aufs2_2_6_35
4789       ];
4790   };
4792   linux_2_6_35_oldI686 = linux_2_6_35.override {
4793       extraConfig = ''
4794           HIGHMEM64G? n
4795           XEN? n
4796       '';
4797       extraMeta = {
4798         platforms = ["i686-linux"];
4799         maintainers = [lib.maintainers.raskin];
4800       };
4801   };
4803   linux_2_6_36 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.36.nix) {
4804     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4805     kernelPatches =
4806       [ #kernelPatches.fbcondecor_2_6_35
4807         kernelPatches.sec_perm_2_6_24
4808         #kernelPatches.aufs2_2_6_35
4809       ];
4810   };
4812   /* Linux kernel modules are inherently tied to a specific kernel.  So
4813      rather than provide specific instances of those packages for a
4814      specific kernel, we have a function that builds those packages
4815      for a specific kernel.  This function can then be called for
4816      whatever kernel you're using. */
4818   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4820     inherit kernel;
4822     acpi_call = callPackage ../os-specific/linux/acpi-call {};
4824     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4826     aufs = callPackage ../os-specific/linux/aufs { };
4828     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4830     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4832     blcr = callPackage ../os-specific/linux/blcr {
4833       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
4834     };
4836     exmap = callPackage ../os-specific/linux/exmap {
4837       inherit (gtkLibs) gtkmm;
4838     };
4840     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
4842     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4844     iwlwifi4965ucode =
4845       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4846           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4847        then iwlwifi4965ucodeV2
4848        else iwlwifi4965ucodeV1);
4850     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4852     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4854     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
4855     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
4857     openafsClient = callPackage ../servers/openafs-client { };
4859     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
4861     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4863     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4864       inherit kernel perl;
4865     };
4867     splashutils =
4868       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4870     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4871       kernel_ext3cowpatched = kernel;
4872     };
4874     /* compiles but has to be integrated into the kernel somehow
4875       Let's have it uncommented and finish it..
4876     */
4877     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4879     ov511 = callPackage ../os-specific/linux/ov511 {
4880       stdenv = overrideGCC stdenv gcc34;
4881     };
4883     # State Nix
4884     snix = callPackage ../tools/package-management/snix {
4886       aterm = aterm25;
4887       db4 = db45;
4889       flex = flex2533;
4890       ext3cow_kernel = kernel;    };
4892     sysprof = callPackage ../development/tools/profiling/sysprof {
4893       inherit (gnome) gtk glib pango libglade;
4894     };
4896     systemtap = callPackage ../development/tools/profiling/systemtap {
4897       linux = kernel;
4898       inherit (gnome) gtkmm libglademm;
4899     };
4901     virtualbox = callPackage ../applications/virtualization/virtualbox {
4902       stdenv = stdenv_32bit;
4903       inherit (gnome) libIDL;
4904     };
4906     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4907   };
4909   # Build the kernel modules for the some of the kernels.
4910   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4911   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4912   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4913   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4914   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4915   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4916   linuxPackages_2_6_32_systemtap =
4917     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4918   linuxPackages_2_6_32_xen =
4919     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
4920   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4921   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4922   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
4923   linuxPackages_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_2_6_36 pkgs.linuxPackages_2_6_36);
4925   # The current default kernel / kernel modules.
4926   linux = linux_2_6_32;
4927   linuxPackages = linuxPackages_2_6_32;
4929   keyutils = callPackage ../os-specific/linux/keyutils { };
4931   libselinux = callPackage ../os-specific/linux/libselinux { };
4933   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4935   libsexy = callPackage ../development/libraries/libsexy {
4936     inherit (gtkLibs) glib gtk pango;
4937   };
4939   librsvg = gnome.librsvg;
4941   libsepol = callPackage ../os-specific/linux/libsepol { };
4943   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4945   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4947   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4949   klibc = callPackage ../os-specific/linux/klibc {
4950     linuxHeaders = glibc.kernelHeaders;
4951   };
4953   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4955   kvm = qemu_kvm;
4957   libcap = callPackage ../os-specific/linux/libcap { };
4959   libnscd = callPackage ../os-specific/linux/libnscd { };
4961   libnotify = callPackage ../development/libraries/libnotify { };
4963   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4965   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4967   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4968   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4969   # compiler for that host.
4970   mach = callPackage ../os-specific/gnu/mach {
4971     automake = automake111x;  };
4973   machHeaders = callPackage ../os-specific/gnu/mach {
4974     automake = automake111x;
4975     headersOnly = true;
4976     mig = null;
4977   };
4979   mdadm = callPackage ../os-specific/linux/mdadm { };
4981   mingetty = callPackage ../os-specific/linux/mingetty { };
4983   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4985   mountall = callPackage ../os-specific/linux/mountall {
4986     automake = automake111x;
4987   };
4989   aggregateModules = modules:
4990     import ../os-specific/linux/module-init-tools/aggregator.nix {
4991       inherit stdenv module_init_tools modules buildEnv;
4992     };
4994   modutils = callPackage ../os-specific/linux/modutils {
4995     stdenv = overrideGCC stdenv gcc34;
4996   };
4998   nettools = callPackage ../os-specific/linux/net-tools { };
5000   neverball = callPackage ../games/neverball { };
5002   numactl = callPackage ../os-specific/linux/numactl { };
5004   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
5005     inherit fetchurl stdenv nettools openssl procps iproute;
5006   };
5008   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
5010   pam = callPackage ../os-specific/linux/pam { };
5012   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
5014   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
5015     db = db4;
5016   };
5018   pam_console = callPackage ../os-specific/linux/pam_console {
5019     libtool = libtool_1_5;
5020     flex = if stdenv.system == "i686-linux" then flex else flex2533;
5021   };
5023   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
5025   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
5027   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
5029   pam_login = callPackage ../os-specific/linux/pam_login { };
5031   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
5033   pam_usb = callPackage ../os-specific/linux/pam_usb { };
5035   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
5036     firmware = getConfig ["pcmciaUtils" "firmware"] [];
5037     config = getConfig ["pcmciaUtils" "config"] null;
5038   };
5040   pmount = callPackage ../os-specific/linux/pmount { };
5042   pmutils = callPackage ../os-specific/linux/pm-utils { };
5044   powertop = callPackage ../os-specific/linux/powertop { };
5046   procps = callPackage ../os-specific/linux/procps { };
5048   pwdutils = callPackage ../os-specific/linux/pwdutils { };
5050   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
5052   radeontools = callPackage ../os-specific/linux/radeontools { };
5054   rfkill = callPackage ../os-specific/linux/rfkill { };
5056   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
5058   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
5060   sdparm = callPackage ../os-specific/linux/sdparm { };
5062   shadow = callPackage ../os-specific/linux/shadow { };
5064   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
5066   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
5068   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
5070   # Provided with sysfsutils.
5071   libsysfs = sysfsutils;
5072   systool = sysfsutils;
5074   sysklogd = callPackage ../os-specific/linux/sysklogd { };
5076   syslinux = callPackage ../os-specific/linux/syslinux { };
5078   sysstat = callPackage ../os-specific/linux/sysstat { };
5080   sysvinit = callPackage ../os-specific/linux/sysvinit { };
5082   sysvtools = callPackage ../os-specific/linux/sysvinit {
5083     withoutInitTools = true;
5084   };
5086   # FIXME: `tcp-wrapper' is actually not OS-specific.
5087   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
5089   trackballs = callPackage ../games/trackballs {
5090     debug = false;
5091   };
5093   tunctl = callPackage ../os-specific/linux/tunctl { };
5095   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
5096     inherit mesa tcl freeglut;
5097     inherit (xlibs) libX11 xproto;
5098   };*/
5100   ubootChooser = name : if (name == "upstream") then ubootUpstream
5101     else if (name == "sheevaplug") then ubootSheevaplug
5102     else throw "Unknown uboot";
5104   ubootUpstream = callPackage ../misc/uboot { };
5106   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
5108   ubootGuruplug = callPackage ../misc/uboot/guruplug.nix { };
5110   uclibc = callPackage ../os-specific/linux/uclibc { };
5112   uclibcCross = import ../os-specific/linux/uclibc {
5113     inherit fetchurl stdenv;
5114     linuxHeaders = linuxHeadersCross;
5115     gccCross = gccCrossStageStatic;
5116     cross = assert crossSystem != null; crossSystem;
5117   };
5119   udev = callPackage ../os-specific/linux/udev { };
5121   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
5122     inherit fetchurl stdenv perl mktemp module_init_tools;
5123     userModeLinux = true;
5124   };
5126   umlutilities = callPackage ../os-specific/linux/uml-utilities {
5127     tunctl = true; mconsole = true;
5128   };
5130   untie = callPackage ../os-specific/linux/untie {};
5132   upstart = callPackage ../os-specific/linux/upstart { };
5134   usbutils = callPackage ../os-specific/linux/usbutils { };
5136   utillinux = utillinuxng;
5138   utillinuxCurses = utillinuxngCurses;
5140   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
5141     ncurses = null;
5142   };
5144   utillinuxngCurses = utillinuxng.override {
5145     inherit ncurses;
5146   };
5148   windows = rec {
5149     w32api = callPackage ../os-specific/windows/w32api {
5150       gccCross = gccCrossStageStatic;
5151       binutilsCross = binutilsCross;
5152     };
5154     w32api_headers = w32api.override {
5155       onlyHeaders = true;
5156     };
5158     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
5159       gccCross = gccCrossMingw2;
5160       binutilsCross = binutilsCross;
5161     };
5163     mingw_runtime_headers = mingw_runtime.override {
5164       onlyHeaders = true;
5165     };
5167     mingw_headers1 = buildEnv {
5168       name = "mingw-headers-1";
5169       paths = [ w32api_headers mingw_runtime_headers ];
5170     };
5172     mingw_headers2 = buildEnv {
5173       name = "mingw-headers-2";
5174       paths = [ w32api mingw_runtime_headers ];
5175     };
5177     mingw_headers3 = buildEnv {
5178       name = "mingw-headers-3";
5179       paths = [ w32api mingw_runtime ];
5180     };
5182     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
5183   };
5185   wesnoth = callPackage ../games/wesnoth {
5186     inherit (gtkLibs) pango;
5187     lua = lua5;
5188   };
5190   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
5192   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
5193     guiSupport = false;
5194   };
5195   # prebuild binaries:
5196   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
5198   # deprecated, but contains icon ? Does no longer build
5199   /* didn't build Sun Apr 25 20:34:18 CEST 2010
5200   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
5201   */
5203   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
5205   xmoto = builderDefsPackage (import ../games/xmoto) {
5206     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
5207       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
5208       lua5 ode libxdg_basedir;
5209   };
5211   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
5213   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
5215   ### DATA
5217   andagii = callPackage ../data/fonts/andagii {};
5219   anonymousPro = callPackage ../data/fonts/anonymous-pro {};
5221   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
5222   };
5224   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
5226   cacert = callPackage ../data/misc/cacert { };
5228   corefonts = callPackage ../data/fonts/corefonts { };
5230   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
5231     inherit fetchurl stdenv builderDefs paths;
5232     inherit (xorg) mkfontdir mkfontscale;
5233   });
5235   clearlyU = callPackage ../data/fonts/clearlyU { };
5237   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
5238     inherit (perlPackages) FontTTF;
5239   };
5241   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
5243   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
5245   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
5247   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
5249   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
5251   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
5253   docbook_xml_xslt = docbook_xsl;
5255   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
5257   docbook5_xsl = docbook_xsl_ns;
5259   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
5261   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
5263   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
5265   inconsolata = callPackage ../data/fonts/inconsolata {};
5267   junicode = callPackage ../data/fonts/junicode { };
5269   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
5271   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
5272     inherit fontforge;
5273   };
5274   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
5275   };
5277   lmodern = callPackage ../data/fonts/lmodern { };
5279   manpages = callPackage ../data/documentation/man-pages { };
5281   miscfiles = callPackage ../data/misc/miscfiles { };
5283   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
5285   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
5287   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
5289   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
5291   stdmanpages = callPackage ../data/documentation/std-man-pages { };
5293   iana_etc = callPackage ../data/misc/iana-etc { };
5295   popplerData = callPackage ../data/misc/poppler-data { };
5297   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
5299   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
5301   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
5303   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
5304     inherit fetchurl;
5305   };
5307   terminus_font = callPackage ../data/fonts/terminus-font { };
5309   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5311   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5313   unifont = callPackage ../data/fonts/unifont { };
5315   vistafonts = callPackage ../data/fonts/vista-fonts { };
5317   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5319   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5321   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5324   ### APPLICATIONS
5327   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
5329   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
5331   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
5333   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
5335   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
5337   abcde = callPackage ../applications/audio/abcde { };
5339   abiword = callPackage ../applications/office/abiword {
5340     inherit (gnome) libglade libgnomecanvas;
5341   };
5343   adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
5344     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5345   };
5347   amarok = newScope pkgs.kde4 ../applications/audio/amarok { };
5349   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5350     libstdcpp = gcc33.gcc;
5351   };
5353   ardour = callPackage ../applications/audio/ardour {
5354     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5355     inherit (gnome) libgnomecanvas;
5356   };
5358   arora = callPackage ../applications/networking/browsers/arora { };
5360   audacious = callPackage ../applications/audio/audacious { };
5362   audacity = callPackage ../applications/audio/audacity { };
5364   aumix = callPackage ../applications/audio/aumix {
5365     gtkGUI = false;
5366   };
5368   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5370   avidemux = callPackage ../applications/video/avidemux {
5371     stdenv = stdenv2;
5372   };
5374   awesome = callPackage ../applications/window-managers/awesome {
5375     inherit (gtkLibs) glib pango;
5376     lua = lua5;
5377     cairo = cairo.override { xcbSupport = true; };
5378   };
5380   bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
5382   batik = callPackage ../applications/graphics/batik { };
5384   bazaar = callPackage ../applications/version-management/bazaar {
5385     python = pythonFull;
5386   };
5388   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5389     inherit bazaar;
5390   };
5392   beast = callPackage ../applications/audio/beast {
5393     inherit (gnome) libgnomecanvas libart_lgpl;
5394   };
5396   bibletime = newScope pkgs.kde45 ../applications/misc/bibletime {
5397     qt = qt4;
5398   } ;
5400   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5402   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5404   # commented out because it's using the new configuration style proposal which is unstable
5405   #biew = import ../applications/misc/biew {
5406   #  inherit lib stdenv fetchurl ncurses;
5407   #};
5409   # only to be able to compile blender - I couldn't compile the default openal software
5410   # Perhaps this can be removed - don't know which one openal{,soft} is better
5411   freealut_soft = callPackage ../development/libraries/freealut {
5412     openal = openalSoft;  };
5414   blender = callPackage ../applications/misc/blender/2.49.nix {
5415     python = python26Base;
5416     stdenv = stdenv2;
5417   };
5419   blender_2_50 = lowPrio (import ../applications/misc/blender {
5420     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5421       libsamplerate libtiff ilmbase;
5422     inherit (xlibs) libXi;
5423     python = python31Base;
5424     stdenv = stdenv2;
5425   });
5427   bmp = callPackage ../applications/audio/bmp {
5428     inherit (gnome) esound libglade;
5429   };
5431   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5433   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5435   bvi = callPackage ../applications/editors/bvi { };
5437   calibre = callPackage ../applications/misc/calibre {
5438     python = python26Full;
5439     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5440   };
5442   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5443     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5444       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5445       libtool automake autoconf;
5446     GStreamer = gst_all.gstreamer;
5447     inherit (gtkLibs) gtk glib;
5448     inherit (gnome) startupnotification GConf ;
5449     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5450   };
5451   funpidgin = carrier;
5453   cddiscid = callPackage ../applications/audio/cd-discid { };
5455   cdparanoia = cdparanoiaIII;
5457   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5459   cdrtools = callPackage ../applications/misc/cdrtools { };
5461   chatzilla =
5462     xulrunnerWrapper {
5463       launcher = "chatzilla";
5464       application = callPackage ../applications/networking/irc/chatzilla { };
5465     };
5467   chrome = callPackage ../applications/networking/browsers/chromium {
5468     inherit (gtkLibs) gtk glib pango atk;
5469     inherit (gnome) GConf;
5470     patchelf = patchelf06;
5471     libjpeg = libjpeg62;
5472   };
5474   chromeWrapper = wrapFirefox chrome "chrome" "";
5476   cinelerra = callPackage ../applications/video/cinelerra {
5477     fftw = fftwSinglePrec;
5478     inherit (gnome) esound;
5479   };
5481   cmus = callPackage ../applications/audio/cmus { };
5483   compiz = callPackage ../applications/window-managers/compiz/core.nix { };
5485   compiz_ccsm = callPackage ../applications/window-managers/compiz/ccsm.nix { };
5487   compizconfig_python = callPackage ../applications/window-managers/compiz/config-python.nix { };
5489   libcompizconfig = callPackage ../applications/window-managers/compiz/libcompizconfig.nix { };
5491   compiz_bcop = callPackage ../applications/window-managers/compiz/bcop.nix { };
5493   compiz_plugins_main = callPackage ../applications/window-managers/compiz/plugins-main.nix { };
5495   compiz_plugins_extra = callPackage ../applications/window-managers/compiz/plugins-extra.nix { };
5497   cinepaint = callPackage ../applications/graphics/cinepaint {
5498     fltk = fltk11;
5499   };
5501   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5502     inherit makeWrapper;
5503     python = pythonFull;
5504   };
5506   comical = callPackage ../applications/graphics/comical {
5507     wxGTK = wxGTK26;
5508   };
5510   conkeror = xulrunnerWrapper {
5511     launcher = "conkeror";
5512     application = callPackage ../applications/networking/browsers/conkeror { };
5513   };
5515   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5516     inherit cmake patchelf;
5517     imagemagick=imagemagick;
5518   };
5520   cvs = callPackage ../applications/version-management/cvs { };
5522   cvsps = callPackage ../applications/version-management/cvsps { };
5524   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5526   d4x = callPackage ../applications/misc/d4x { };
5528   darcs = haskellPackages.darcs;
5530   dia = callPackage ../applications/graphics/dia { };
5532   digikam = newScope pkgs.kde4 ../applications/graphics/digikam { };
5534   djvulibre = callPackage ../applications/misc/djvulibre { };
5536   djview4 = callPackage ../applications/graphics/djview { };
5538   dmenu = callPackage ../applications/misc/dmenu { };
5540   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5541     inherit libpng libtiff libjpeg imagemagick librsvg
5542       pkgconfig bzip2 zlib libtool freetype fontconfig
5543       ghostscript jasper;
5544     inherit (xlibs) libX11;
5545   };
5547   dvdauthor = callPackage ../applications/video/dvdauthor { };
5549   dwm = callPackage ../applications/window-managers/dwm {
5550     patches = getConfig [ "dwm" "patches" ] [];
5551   };
5553   eaglemode = callPackage ../applications/misc/eaglemode {
5554     stdenv = stdenv2;
5555   };
5557   eclipse = callPackage ../applications/editors/eclipse {
5558     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5559     # working correctly.
5560     inherit (gtkLibs216) glib gtk;
5561   };
5562   eclipseLatest = eclipse.override { version = "latest"; };
5563   eclipse36 = callPackage ../applications/editors/eclipse {
5564       version = "3.6.1";
5565   };
5567   ed = callPackage ../applications/editors/ed { };
5569   elinks = callPackage ../applications/networking/browsers/elinks { };
5571   elvis = callPackage ../applications/editors/elvis { };
5573   emacs = emacs23;
5575   emacs22 = callPackage ../applications/editors/emacs-22 {
5576     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5577     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5578   };
5580   emacs23 = callPackage ../applications/editors/emacs-23 {
5581     # use override to select the appropriate gui toolkit
5582     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5583     Xaw3d = null;
5584     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5585     # TODO: these packages don't build on Darwin.
5586     gconf = if stdenv.isDarwin then null else gnome.GConf;
5587     librsvg = if stdenv.isDarwin then null else librsvg;
5588   };
5590   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
5591     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5592     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5593     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5594     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5595     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5596   });
5598   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5599     inherit emacs;
5601     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5603     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5605     cua = callPackage ../applications/editors/emacs-modes/cua { };
5607     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5609     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5611     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5613     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5615     emms = callPackage ../applications/editors/emacs-modes/emms { };
5617     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5618       # Requires Emacs 23, for `avl-tree'.
5619     };
5621     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5623     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5625     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5627     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
5629     magit = callPackage ../applications/editors/emacs-modes/magit { };
5631     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5633     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5635     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5636     # we want it to have higher precedence.
5637     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
5639     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5641     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5643     quack = callPackage ../applications/editors/emacs-modes/quack { };
5645     remember = callPackage ../applications/editors/emacs-modes/remember { };
5647     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5649     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5650   };
5652   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5653   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
5655   epdfview = callPackage ../applications/misc/epdfview { };
5657   espeak = callPackage ../applications/audio/espeak { };
5659   evince = callPackage ../applications/misc/evince {
5660     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5661       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5662   };
5664   evolution_data_server = (newScope (gnome // gtkLibs))
5665   ../servers/evolution-data-server {
5666   };
5668   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5669     fltk = fltk20;
5670   };
5672   fbpanel = callPackage ../applications/window-managers/fbpanel { };
5674   fetchmail = import ../applications/misc/fetchmail {
5675     inherit stdenv fetchurl openssl;
5676   };
5678   fossil = callPackage ../applications/version-management/fossil { };
5680   grass = import ../applications/misc/grass {
5681     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5682       libXaw libXrender;
5683     inherit getConfig composableDerivation stdenv fetchurl
5684       lib flex bison cairo fontconfig
5685       gdal zlib ncurses gdbm proj pkgconfig swig
5686       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5687       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5688     fftw = fftwSinglePrec;
5689     motif = lesstif;
5690     opendwg = libdwg;
5691     wxPython = wxPython28;
5692   };
5694   grip = callPackage ../applications/misc/grip {
5695     inherit (gnome) libgnome libgnomeui vte;
5696   };
5698   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5700   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
5702   wvdial = callPackage ../os-specific/linux/wvdial { };
5704   fbida = builderDefsPackage ../applications/graphics/fbida {
5705     inherit libjpeg libexif giflib libtiff libpng
5706       imagemagick ghostscript which curl pkgconfig
5707       freetype fontconfig;
5708   };
5710   fdupes = callPackage ../tools/misc/fdupes { };
5712   feh = callPackage ../applications/graphics/feh { };
5714   filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
5716   firefox = firefox36Pkgs.firefox;
5717   firefoxWrapper = firefox36Wrapper;
5719   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5720     inherit (gtkLibs) gtk pango;
5721     inherit (gnome) libIDL;
5722   };
5724   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5726   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5727     inherit (gtkLibs) gtk pango;
5728     inherit (gnome) libIDL;
5729   };
5731   firefox40Pkgs = let p = (applyGlobalOverrides (x : {cairo = x.cairo_1_10_0;}));
5732   in p.callPackage 
5733       ../applications/networking/browsers/firefox/4.0.nix {
5734     inherit (p.gtkLibs) gtk pango;
5735     inherit (p.gnome) libIDL;
5736   };
5738   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5740   flac = callPackage ../applications/audio/flac { };
5742   flashplayer = flashplayer10;
5744   flashplayer9 = (
5745     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5746       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5747       inherit (xlibs) libX11 libXext libXrender libXt;
5748       inherit (gtkLibs) gtk glib pango atk;
5749     });
5751   flashplayer10 = (
5752     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5753       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat cairo;
5754       inherit (xlibs) libX11 libXext libXrender libXt ;
5755       inherit (gtkLibs) gtk glib pango atk;
5756       debug = getConfig ["flashplayer" "debug"] false;
5757     });
5759   flite = callPackage ../applications/misc/flite { };
5761   freemind = callPackage ../applications/misc/freemind {
5762     jdk = jdk;
5763     jre = jdk;
5764   };
5766   freepv = callPackage ../applications/graphics/freepv { };
5768   xfontsel = callPackage ../applications/misc/xfontsel { };
5769   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5771   fspot = callPackage ../applications/graphics/f-spot {
5772     inherit (gnome) libgnome libgnomeui;
5773     gtksharp = gtksharp1;
5774   };
5776   gimp = callPackage ../applications/graphics/gimp {
5777     inherit (gnome) gtk libart_lgpl;
5778   };
5780   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5781     inherit pkgs gimp;
5782   });
5784   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5785     inherit pkgs;
5786   });
5787   git = gitAndTools.git;
5788   gitFull = gitAndTools.gitFull;
5790   gnucash = callPackage ../applications/office/gnucash {
5791     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5792       libgnomeprint;
5793     gconf = gnome.GConf;
5794   };
5796   qcad = callPackage ../applications/misc/qcad { };
5798   qjackctl = callPackage ../applications/audio/qjackctl { };
5800   gkrellm = callPackage ../applications/misc/gkrellm { };
5802   gnash = callPackage ../applications/video/gnash {
5803     inherit (gnome) gtkglext;
5804     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
5805   };
5807   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5808     inherit (gnome) GConf;
5809   };
5811   gnunet = callPackage ../applications/networking/p2p/gnunet {
5812     inherit (gnome) gtk libglade;
5813     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5814   };
5816   gocr = callPackage ../applications/graphics/gocr { };
5818   gobby5 = callPackage ../applications/editors/gobby {
5819     inherit (gtkLibs) gtkmm;
5820     inherit (gnome) gtksourceview;
5821   };
5823   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5825   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5826     inherit libgphoto2 fuse pkgconfig glib;
5827   };
5829   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5831   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5833   gtkpod = callPackage ../applications/audio/gtkpod {
5834     inherit (gnome) libglade;
5835   };
5837   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5838     inherit libpng opencv;
5839   };
5841   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5842     inherit libpng pkgconfig;
5843   };
5845   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5846     inherit (gnome) GConf;
5847     browser = firefox;
5848   };
5850   geeqie = callPackage ../applications/graphics/geeqie { };
5852   gqview = callPackage ../applications/graphics/gqview { };
5854   googleearth = callPackage_i686 ../applications/misc/googleearth { };
5856   gosmore = builderDefsPackage ../applications/misc/gosmore {
5857     inherit fetchsvn curl pkgconfig libxml2;
5858     inherit (gtkLibs) gtk;
5859   };
5861   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5863   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
5865   gpsd = callPackage ../servers/gpsd {
5866     # We need a Python with NCurses bindings.
5867     python = pythonFull;
5868   };
5870   guitone = callPackage ../applications/version-management/guitone { };
5872   gv = callPackage ../applications/misc/gv { };
5874   hello = callPackage ../applications/misc/hello/ex-2 { };
5876   homebank = callPackage ../applications/office/homebank { };
5878   htmldoc = callPackage ../applications/misc/htmldoc {
5879     fltk = fltk11;
5880   };
5882   hugin = callPackage ../applications/graphics/hugin {
5883     stdenv = stdenv2;
5884   };
5886   i810switch = callPackage ../os-specific/linux/i810switch { };
5888   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5889     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5890       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5891       wirelesstools;
5892     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5893     inherit (xlibs) pixman;
5894     inherit (pythonPackages) ply;
5895   });
5897   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5898     application = "xulrunner";
5899     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5900       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5901       wirelesstools;
5902     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5903     inherit (xlibs) pixman;
5904     inherit (pythonPackages) ply;
5905   });
5907   icecat3Xul =
5908     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5909        [ icecat3 icecatXulrunner3 ])
5910     // { inherit (icecat3) gtk isFirefox3Like meta; };
5912   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5914   icewm = callPackage ../applications/window-managers/icewm { };
5916   id3v2 = callPackage ../applications/audio/id3v2 { };
5918   ikiwiki = callPackage ../applications/misc/ikiwiki {
5919     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5920       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5921       RpcXML XMLSimple PerlMagick;
5922     gitSupport = getPkgConfig "ikiwiki" "git" false;
5923     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5924     extraUtils = [];
5925   };
5927   imagemagick = callPackage ../applications/graphics/ImageMagick {
5928     tetex = null;
5929     librsvg = null;
5930   };
5932   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5934   # Impressive, formerly known as "KeyJNote".
5935   impressive = callPackage ../applications/office/impressive {
5937     # XXX These are the PyOpenGL dependencies, which we need here.
5939     inherit (pythonPackages) pyopengl;  };
5941   inkscape = callPackage ../applications/graphics/inkscape {
5942     inherit (pythonPackages) lxml;
5943     inherit (gtkLibs) gtk glib glibmm gtkmm;
5944   };
5946   ion3 = callPackage ../applications/window-managers/ion-3 {
5947     lua = lua5;
5948   };
5950   iptraf = callPackage ../applications/networking/iptraf { };
5952   irssi = callPackage ../applications/networking/irc/irssi { };
5954   jackmeter = callPackage ../applications/audio/jackmeter { };
5956   jedit = callPackage ../applications/editors/jedit { };
5958   jigdo = callPackage ../applications/misc/jigdo { };
5960   joe = callPackage ../applications/editors/joe { };
5962   jwm = callPackage ../applications/window-managers/jwm { };
5964   k3b = newScope pkgs.kde4 ../applications/misc/k3b { };
5966   kadu = newScope pkgs.kde45 ../applications/networking/instant-messengers/kadu { };
5968   kbluetooth = newScope pkgs.kde4 ../tools/bluetooth/kbluetooth { };
5970   kdenlive = newScope pkgs.kde4 ../applications/video/kdenlive { };
5972   kdesvn = newScope pkgs.kde4 ../applications/version-management/kdesvn { };
5974   kdevelop = newScope pkgs.kde4 ../applications/editors/kdevelop { };
5976   keepnote = callPackage ../applications/office/keepnote {
5977     # I did not find any better way of reusing buildPythonPackage+setuptools
5978     # for a python with openssl support
5979     buildPythonPackage = assert pythonFull.sqliteSupport;
5980       import ../development/python-modules/generic {
5981         inherit makeWrapper lib;
5982         python = pythonFull;
5983         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
5984           inherit makeWrapper;
5985           python = pythonFull;
5986         };
5987       };
5988     # How could this pygtk use also pythonFull, I don't know.
5989     pygtk = pyGtkGlade;
5990   };
5992   kermit = callPackage ../tools/misc/kermit { };
5994   kino = import ../applications/video/kino {
5995     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5996       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5997     inherit libsamplerate ffmpeg;
5998     inherit (gnome) libglade gtk glib;
5999     inherit (xlibs) libXv libX11;
6000   };
6002   kipi_plugins = newScope pkgs.kde4 ../applications/graphics/kipi-plugins { };
6004   kmplayer = newScope pkgs.kde4 ../applications/video/kmplayer {
6005     inherit (pkgs.gtkLibs) pango;
6006   };
6008   koffice = newScope pkgs.kde4 ../applications/office/koffice { };
6010   konq_plugins = newScope pkgs.kde4 ../applications/networking/browsers/konq-plugins { };
6012   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
6014   krename = newScope pkgs.kde4 ../applications/misc/krename { };
6016   krusader = newScope pkgs.kde4 ../applications/misc/krusader { };
6018   ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
6020   lame = callPackage ../applications/audio/lame { };
6022   larswm = callPackage ../applications/window-managers/larswm { };
6024   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
6026   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
6027     fftw = fftwSinglePrec;
6028   };
6030   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
6031     inherit (gnome) libglade;
6032   };
6034   links = callPackage ../applications/networking/browsers/links { };
6036   ledger = callPackage ../applications/office/ledger { };
6038   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
6039     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
6040       gpm openssl SDL SDL_image SDL_net pkgconfig;
6041     inherit (xlibs) libX11 libXau xproto libXt;
6042   };
6044   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
6046   lynx = callPackage ../applications/networking/browsers/lynx { };
6048   lyx = callPackage ../applications/misc/lyx {
6049    qt = qt4;
6050   };
6052   matchbox = callPackage ../applications/window-managers/matchbox { };
6054   meld = callPackage ../applications/version-management/meld {
6055     inherit (gnome) scrollkeeper;
6056     pygtk = pyGtkGlade;
6057   };
6059   mercurial = callPackage ../applications/version-management/mercurial {
6060     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
6061     python = # allow cloning sources from https servers.
6062       if getConfig ["mercurial" "httpsSupport"] true
6063       then pythonFull
6064       else pythonBase;
6065   };
6067   merkaartor = callPackage ../applications/misc/merkaartor {
6068     qt = qt4;
6069   };
6071   meshlab = callPackage ../applications/graphics/meshlab {
6072     qt = qt4;
6073   };
6075   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
6076     inherit imagemagick intltool python pkgconfig webkit libxml2
6077       which gettext makeWrapper file libidn sqlite docutils libnotify
6078       vala dbus_glib;
6079     inherit (gtkLibs) gtk glib;
6080     inherit (gnome28) gtksourceview;
6081     inherit (webkit.passthru.args) libsoup;
6082     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
6083   };
6085   minicom = callPackage ../tools/misc/minicom { };
6087   mmex = callPackage ../applications/office/mmex { };
6089   monodevelop = callPackage ../applications/editors/monodevelop {
6090     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
6091     mozilla = firefox;
6092     gtksharp = gtksharp2;
6093   };
6095   monodoc = callPackage ../applications/editors/monodoc {
6096     gtksharp = gtksharp1;
6097   };
6099   monotone = callPackage ../applications/version-management/monotone {
6100     lua = lua5;
6101   };
6103   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
6104     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
6105     inherit (gnome) gtk libgnomecanvas glib;
6106   };
6108   mozilla = callPackage ../applications/networking/browsers/mozilla {
6109     inherit (gnome) libIDL;
6110   };
6112   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
6113     inherit firefox;
6114     inherit (xlibs) libX11 xproto;
6115   };
6117   mp3info = callPackage ../applications/audio/mp3info { };
6119   mpc123 = callPackage ../applications/audio/mpc123 { };
6121   mpg321 = callPackage ../applications/audio/mpg321 { };
6123   MPlayer = callPackage ../applications/video/MPlayer { };
6125   MPlayerPlugin = browser:
6126     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
6127       inherit browser;
6128       inherit fetchurl stdenv pkgconfig gettext;
6129       inherit (xlibs) libXpm;
6130       # !!! should depend on MPlayer
6131     };
6133   mrxvt = callPackage ../applications/misc/mrxvt { };
6135   multisync = callPackage ../applications/misc/multisync {
6136     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
6137   };
6139   mutt = callPackage ../applications/networking/mailreaders/mutt { };
6141   msmtp = callPackage ../applications/networking/msmtp { };
6143   mupdf = callPackage ../applications/misc/mupdf {
6144   };
6146   mythtv = callPackage ../applications/video/mythtv {
6147     qt3 = qt3mysql;
6148   };
6150   nano = callPackage ../applications/editors/nano { };
6152   navipowm = callPackage ../applications/misc/navipowm {
6153   };
6155   navit = callPackage ../applications/misc/navit { };
6157   nedit = callPackage ../applications/editors/nedit {
6158       motif = lesstif;
6159   };
6161   netsurfBrowser = netsurf.browser;
6162   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
6164   nvi = callPackage ../applications/editors/nvi { };
6166   openbox = callPackage ../applications/window-managers/openbox { };
6168   openjump = callPackage ../applications/misc/openjump { };
6170   openoffice = callPackage ../applications/office/openoffice {
6171     inherit (perlPackages) ArchiveZip CompressZlib;
6172     inherit (gnome) GConf ORBit2;
6173     neon = neon029;
6174     stdenv = stdenv2;
6175   };
6177   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
6178     inherit (perlPackages) ArchiveZip CompressZlib;
6179     inherit (gnome) GConf ORBit2;
6180     neon = neon029;
6181     stdenv = stdenv2;
6182   };
6184   opera = callPackage ../applications/networking/browsers/opera {
6185     qt = qt3;
6186   };
6188   pan = callPackage ../applications/networking/newsreaders/pan {
6189     gmime = gmime_2_2;
6190     spellChecking = false;
6191   };
6193   panotools = callPackage ../applications/graphics/panotools { };
6195   pavucontrol = callPackage ../applications/audio/pavucontrol {
6196     inherit (gtkLibs) gtkmm;
6197     inherit (gnome) libglademm;
6198   };
6200   paraview = callPackage ../applications/graphics/paraview {
6201     stdenv = stdenv2;
6202   };
6204   partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
6206   pdftk = callPackage ../tools/typesetting/pdftk { };
6208   pidgin = import ../applications/networking/instant-messengers/pidgin {
6209     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
6210       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
6211     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
6212     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
6213     GStreamer = gst_all.gstreamer;
6214     inherit (gtkLibs) gtk;
6215     inherit (gnome) startupnotification;
6216     inherit (xlibs) libXScrnSaver;
6217     inherit (gst_all) gstPluginsBase;
6218   };
6220   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
6221     imagemagick = imagemagickBig;
6222   };
6224   pidginlatexSF = builderDefsPackage
6225     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
6226     {
6227       inherit pkgconfig pidgin texLive imagemagick which;
6228       inherit (gtkLibs) glib gtk;
6229     };
6231   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
6233   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
6235   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
6237   pinfo = callPackage ../applications/misc/pinfo { };
6239   pinta = callPackage ../applications/graphics/pinta {
6240     gtksharp = gtksharp2;
6241   };
6243   pqiv = callPackage ../applications/graphics/pqiv { };
6245   # perhaps there are better apps for this task? It's how I had configured my preivous system.
6246   # And I don't want to rewrite all rules
6247   procmail = callPackage ../applications/misc/procmail { };
6249   pstree = callPackage ../applications/misc/pstree { };
6251   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
6253   qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
6255   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
6257   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
6259   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
6261   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
6263   ratpoison = callPackage ../applications/window-managers/ratpoison { };
6265   rawtherapee = callPackage ../applications/graphics/rawtherapee {
6266     inherit (gtkLibs) gtk gtkmm;
6267   };
6269   rcs = callPackage ../applications/version-management/rcs { };
6271   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
6273   RealPlayer = callPackage ../applications/video/RealPlayer {
6274       inherit (gtkLibs) glib pango atk gtk;
6275       libstdcpp5 = gcc33.gcc;
6276   };
6278   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
6280   rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
6282   recode = callPackage ../tools/text/recode { };
6284   rsync = callPackage ../applications/networking/sync/rsync {
6285     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
6286   };
6288   rxvt = callPackage ../applications/misc/rxvt { };
6290   # = urxvt
6291   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
6292     perlSupport = false;  };
6294   sakura = callPackage ../applications/misc/sakura {
6295     inherit (gnome) vte;
6296   };
6298   sbagen = callPackage ../applications/misc/sbagen { };
6300   scribus = callPackage ../applications/office/scribus {
6301     inherit (gnome) libart_lgpl;
6302     qt = qt3;
6303   };
6305   seeks = callPackage ../tools/networking/p2p/seeks { };
6307   seg3d = callPackage ../applications/graphics/seg3d {
6308     wxGTK = wxGTK28.override {
6309       unicode = false;
6310   };
6311   };
6313   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
6315   skype_linux = callPackage_i686 ../applications/networking/skype { };
6317   slim = callPackage ../applications/display-managers/slim { };
6319   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6320     inherit fetchurl stdenv stringsWithDeps lib fftw;
6321     inherit pkgconfig gmp gettext;
6322     inherit (xlibs) libXpm libX11;
6323     inherit (gtkLibs) gtk glib;
6324   };
6326   snd = sndBase.passthru.function {
6327     inherit guile mesa libtool jackaudio alsaLib;
6328   };
6330   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6331     inherit (vamp) vampSDK;
6332     qt = qt4;
6333   };
6335   sox = callPackage ../applications/misc/audio/sox { };
6337   stalonetray = callPackage ../applications/window-managers/stalonetray {};
6339   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6340     inherit texinfo;
6341     clisp = clisp_2_44_1;
6342   };
6344   subversion = callPackage ../applications/version-management/subversion/default.nix {
6345     neon = neon029;
6346     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6347     httpServer = getConfig ["subversion" "httpServer"] false;
6348     httpSupport = getConfig ["subversion" "httpSupport"] true;
6349     sslSupport = getConfig ["subversion" "sslSupport"] true;
6350     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6351     perlBindings = getConfig ["subversion" "perlBindings"] false;
6352     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6353     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6354     httpd = apacheHttpd;
6355   };
6357   svk = perlPackages.SVK;
6359   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6360     sslSupport = true;
6361     gpgSupport = true;
6362   };
6364   # linux only by now
6365   synergy = callPackage ../applications/misc/synergy { };
6367   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6368     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6369       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6370       numpy pyasn1;
6371     mock = pythonPackages.mock060;
6372   };
6374   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6375     inherit makeWrapper python;
6376   };
6378   tangogps = callPackage ../applications/misc/tangogps {
6379     gconf = gnome.GConf;
6380   };
6382   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6384   taskJuggler = callPackage ../applications/misc/taskjuggler {
6385     qt = qt3;
6387     # KDE support is not working yet.
6388     inherit (kde3) kdelibs kdebase;
6389     withKde = getPkgConfig "taskJuggler" "kde" false;
6390   };
6392   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6394   thunderbird = thunderbird3;
6396   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6397     inherit (gnome) libIDL;
6398   };
6400   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6401     inherit (gnome) libIDL;
6402   };
6404   timidity = callPackage ../tools/misc/timidity { };
6406   tkcvs = callPackage ../applications/version-management/tkcvs { };
6408   tla = callPackage ../applications/version-management/arch { };
6410   transmission = callPackage ../applications/networking/p2p/transmission { };
6412   twinkle = callPackage ../applications/networking/twinkle {
6413     qt = qt3;
6414     boost = boostFull;
6415   };
6417   unison = callPackage ../applications/networking/sync/unison { };
6419   uucp = callPackage ../tools/misc/uucp { };
6421   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6422     inherit pkgconfig webkit makeWrapper;
6423     inherit (gtkLibs) gtk glib;
6424     inherit (xlibs) libX11 kbproto;
6425     libsoup = gnome28.libsoup_2_31;
6426   };
6428   valknut = callPackage ../applications/networking/p2p/valknut {
6429     qt = qt3;
6430   };
6432   veracity = callPackage ../applications/version-management/veracity {};
6434   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6435   {
6436     inherit monotone cheetahTemplate highlight ctags
6437       makeWrapper graphviz which python;
6438     flup = pythonPackages.flup;
6439   };
6441   vim = callPackage ../applications/editors/vim { };
6443   vimHugeX = vim_configurable;
6445   vim_configurable = import ../applications/editors/vim/configurable.nix {
6446     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6447     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
6448         libXt libXaw libXau libXmu libICE;
6449     inherit (pkgs.gtkLibs) glib gtk;
6450     features = "huge"; # one of  tiny, small, normal, big or huge
6451     # optional features by passing
6452     # python
6453     # TODO mzschemeinterp perlinterp
6454     inherit (pkgs) python perl tcl ruby /*x11*/;
6456     lua = pkgs.lua5;
6458     # optional features by flags
6459     flags = [ "X11" ]; # only flag "X11" by now
6460   };
6462   virtualgl = callPackage ../tools/X11/virtualgl { };
6464   vlc = callPackage ../applications/video/vlc {
6465     dbus = dbus.libs;
6466     alsa = alsaLib;
6467     lua = lua5;
6468   };
6470   vnstat = callPackage ../applications/networking/vnstat { };
6472   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6474   vwm = callPackage ../applications/window-managers/vwm { };
6476   w3m = callPackage ../applications/networking/browsers/w3m {
6477     graphicsSupport = false;
6478   };
6480   weechat = callPackage ../applications/networking/irc/weechat { };
6482   wings = callPackage ../applications/graphics/wings { };
6484   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6485   wmiimenu = import ../applications/window-managers/wmii31 {
6486     libixp = libixp_for_wmii;
6487     inherit fetchurl /* fetchhg */ stdenv gawk;
6488     inherit (xlibs) libX11;
6489   };
6491   wmiiSnap = import ../applications/window-managers/wmii {
6492     libixp = libixp_for_wmii;
6493     inherit fetchurl /* fetchhg */ stdenv gawk;
6494     inherit (xlibs) libX11 xextproto libXt libXext;
6495     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6496   };
6498   wordnet = callPackage ../applications/misc/wordnet { };
6500   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6501     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6502     plugins =
6503       let
6504         enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6505         enableGnash = getConfig [ browserName "enableGnash" ] false;
6506       in
6507        assert !(enableGnash && enableAdobeFlash);
6508        ([]
6509         ++ lib.optional enableGnash gnash
6510         ++ lib.optional enableAdobeFlash flashplayer
6511         # RealPlayer is disabled by default for legal reasons.
6512         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6513         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6514         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6515         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6516        );
6517   };
6519   x11vnc = callPackage ../tools/X11/x11vnc { };
6521   x2vnc = callPackage ../tools/X11/x2vnc { };
6523   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6524     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6525     inherit gsl aalib zlib libpng intltool gettext perl;
6526   };
6528   xara = callPackage ../applications/graphics/xara {
6529     wxGTK = wxGTK26;
6530   };
6532   xawtv = callPackage ../applications/video/xawtv { };
6534   xchat = callPackage ../applications/networking/irc/xchat { };
6536   xchm = callPackage ../applications/misc/xchm { };
6538   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6540   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6542   xen = callPackage ../applications/virtualization/xen {
6543     python = pythonFull;
6544   };
6546   xfig = callPackage ../applications/graphics/xfig {
6547     stdenv = overrideGCC stdenv gcc34;
6548   };
6550   xineUI = callPackage ../applications/video/xine-ui { };
6552   xmms = callPackage ../applications/audio/xmms {
6553     inherit (gnome) esound;
6554     inherit (gtkLibs1x) glib gtk;
6555     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6556   };
6558   xneur = callPackage ../applications/misc/xneur {
6559     GStreamer=gst_all.gstreamer;
6560     inherit (gtkLibs) glib gtk pango atk;
6561   };
6563   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6564     GStreamer = gst_all.gstreamer;
6565   };
6567   xournal = callPackage ../applications/graphics/xournal {
6568     inherit (gtkLibs) gtk atk pango glib;
6569     inherit (gnome) libgnomeprint libgnomeprintui
6570       libgnomecanvas;
6571   };
6573   xpdf = callPackage ../applications/misc/xpdf {
6574     motif = lesstif;
6575     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6576   };
6578   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
6579   };
6581   xpra = callPackage ../tools/X11/xpra {
6582     pyrex = pyrex095;
6583   };
6585   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6586     inherit (gnome) libglade;
6587   };
6589   xterm = callPackage ../applications/misc/xterm { };
6591   xtrace = callPackage ../tools/X11/xtrace { };
6593   xlaunch = callPackage ../tools/X11/xlaunch { };
6595   xmacro = callPackage ../tools/X11/xmacro { };
6597   xmove = callPackage ../applications/misc/xmove { };
6599   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6600     inherit (gtkLibs) gtk;
6601     inherit (xlibs) libX11 libXtst xextproto libXext
6602       inputproto libXi xproto recordproto;
6603     inherit pkgconfig;
6604   };
6606   xvidcap = callPackage ../applications/video/xvidcap {
6607     inherit (gnome) scrollkeeper libglade;
6608   };
6610   yate = callPackage ../applications/misc/yate {
6611     qt = qt4;
6612   };
6614   # doesn't compile yet - in case someone else want's to continue ..
6615   # use Trunk because qgisReleased segfaults no resize for now
6616   qgis = qgisTrunk;
6617   qgisReleased = (import ../applications/misc/qgis) {
6618     inherit composableDerivation fetchsvn stdenv flex lib
6619             ncurses fetchurl perl cmake gdal geos proj x11
6620             gsl libpng zlib bison
6621             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6622             python postgresql pyqt4;
6623     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6624     inherit (xorg) libICE;
6625     qt = qt4;
6627     # optional features
6628     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6629   };
6631   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6632     qgis = qgisReleased;
6633   };
6635   yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
6637   zapping = callPackage ../applications/video/zapping {
6638     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6639     teletextSupport = true;
6640     jpegSupport = true;
6641     pngSupport = true;
6642     recordingSupport = true;
6643   };
6645   zathura = callPackage ../applications/misc/zathura { };
6647   ### GAMES
6649   asc = callPackage ../games/asc {
6650     lua = lua5;
6651     libsigcxx = libsigcxx12;
6652   };
6654   atanks = callPackage ../games/atanks {};
6656   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6658   blackshades = callPackage ../games/blackshades { };
6660   blackshadeselite = callPackage ../games/blackshadeselite { };
6662   bsdgames = callPackage ../games/bsdgames { };
6664   castle_combat = callPackage ../games/castle-combat { };
6666   construoBase = callPackage ../games/construo {
6667     mesa = null;
6668     freeglut = null;
6669   };
6671   construo = construoBase.override {
6672     inherit mesa freeglut;
6673   };
6675   crack_attack = callPackage ../games/crack-attack { };
6677   crrcsim = callPackage ../games/crrcsim {};
6679   dwarf_fortress = callPackage_i686 ../games/dwarf-fortress { 
6680     gnomegtk = pkgsi686Linux.gnome.gtk;
6681   };
6683   eduke32 = callPackage ../games/eduke32 { };
6685   egoboo = callPackage ../games/egoboo { };
6687   exult = callPackage ../games/exult {
6688     stdenv = overrideGCC stdenv gcc42;
6689   };
6691   /*
6692   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6693     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6694       autoconf automake libtool flex bison;
6695   });
6696   */
6698   freedink = callPackage ../games/freedink { };
6700   fsg = callPackage ../games/fsg {
6701     wxGTK = wxGTK28.override { unicode = false; };
6702   };
6704   gemrb = callPackage ../games/gemrb {
6705     stdenv = stdenv2;
6706   };
6708   gl117 = callPackage ../games/gl-117 {};
6710   gltron = callPackage ../games/gltron { };
6712   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6713     flex = flex2535;
6714   };
6716   gnugo = callPackage ../games/gnugo { };
6718   gparted = callPackage ../tools/misc/gparted {
6719     inherit (gtkLibs) gtk glib gtkmm;
6720     inherit (gnome) gnomedocutils;
6721   };
6723   hexen = callPackage ../games/hexen { };
6725   instead = callPackage ../games/instead {
6726     lua = lua5;
6727   };
6729   kobodeluxe = callPackage ../games/kobodeluxe { };
6731   lincity = builderDefsPackage (import ../games/lincity) {
6732     inherit (xlibs) libX11 libXext xextproto
6733       libICE libSM xproto;
6734     inherit libpng zlib;
6735   };
6737   micropolis = callPackage ../games/micropolis { };
6739   openttd = callPackage ../games/openttd {
6740     zlib = zlibStatic;
6741   };
6743   pioneers = callPackage ../games/pioneers { };
6745   quake3demo = callPackage ../games/quake3/wrapper {
6746     name = "quake3-demo-${quake3game.name}";
6747     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6748     game = quake3game;
6749     paks = [quake3demodata];
6750   };
6752   quake3demodata = callPackage ../games/quake3/demo { };
6754   quake3game = callPackage ../games/quake3/game { };
6756   rogue = callPackage ../games/rogue { };
6758   scummvm = callPackage ../games/scummvm { };
6760   scorched3d = callPackage ../games/scorched3d {
6761     wxGTK = wxGTK26;
6762   };
6764   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6765     inherit (gtkLibs) gtk;
6766     inherit pkgconfig fetchsvn perl;
6767     inherit (xlibs) libX11;
6768   };
6770   six = callPackage ../games/six {
6771     inherit (kde3) arts kdelibs;
6772   };
6774   # You still can override by passing more arguments.
6775   spaceOrbit = callPackage ../games/orbit {
6776     inherit (gnome) esound;  };
6778   spring = callPackage ../games/spring {
6779     stdenv = stdenv2;
6780   };
6782   springLobby = callPackage ../games/spring/spring-lobby.nix { 
6783     stdenv = stdenv2;
6784   };
6786   stardust = callPackage ../games/stardust {};
6788   superTux = callPackage ../games/super-tux { };
6790   superTuxKart = callPackage ../games/super-tux-kart { };
6792   teeworlds = callPackage ../games/teeworlds { };
6794   tennix = callPackage ../games/tennix { };
6796   /*tpm = import ../games/thePenguinMachine {
6797     inherit stdenv fetchurl pil pygame SDL;
6798     python24 = python;
6799   };*/
6801   tremulous = callPackage ../games/tremulous { };
6803   torcs = callPackage ../games/torcs {
6804     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
6805     # i686 is the only platform I know than can do that linking without plib built with -fPIC
6806     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
6807   };
6809   ufoai = callPackage ../games/ufoai {
6810     inherit (gnome) gtksourceview gtkglext;
6811   };
6813   ultimatestunts = callPackage ../games/ultimatestunts { };
6815   urbanterror = callPackage ../games/urbanterror { };
6817   ut2004demo = callPackage ../games/ut2004demo { };
6819   warsow = callPackage ../games/warsow {
6820     libjpeg = libjpeg62;
6821   };
6823   warzone2100 = callPackage ../games/warzone2100 {
6824     flex = flex2535;
6825   };
6827   xboard = builderDefsPackage (import ../games/xboard) {
6828     inherit (xlibs) libX11 xproto libXt libXaw libSM
6829       libICE libXmu libXext libXpm;
6830     inherit gnuchess texinfo;
6831   };
6833   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6834     inherit (xlibs) libX11 xproto libXpm libXt;
6835   };
6837   zdoom = callPackage ../games/zdoom { };
6839   zoom = callPackage ../games/zoom { };
6841   keen4 = callPackage ../games/keen4 { };
6844   ### DESKTOP ENVIRONMENTS
6847   enlightenment = callPackage ../desktops/enlightenment { };
6849   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6851   gnome = gnome28;
6853   kde3 = recurseIntoAttrs {
6855     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6856       stdenv = overrideGCC stdenv gcc43;
6857       qt = qt3;
6858     };
6860     kdebase = callPackage ../desktops/kde-3/kdebase {
6861       stdenv = overrideGCC stdenv gcc43;
6862       inherit (kde3) kdelibs;
6863       qt = qt3;
6864     };
6866     arts = callPackage ../development/libraries/arts {
6867       qt = qt3;
6868       inherit (gnome) glib;
6869       inherit (kde3) kdelibs;
6870     };
6872     k3b = callPackage ../applications/misc/k3b/1.0.nix {
6873       inherit (kde3) kdelibs;
6874     };
6876     kbasket = callPackage ../applications/misc/kbasket {
6877       stdenv = overrideGCC stdenv gcc43;
6878       inherit (kde3) kdelibs;
6879     };
6881     kile = callPackage ../applications/editors/kile {
6882       inherit (kde3) arts kdelibs;
6883       qt = qt3;
6884     };
6886     kphone = callPackage ../applications/networking/kphone {
6887       qt = qt3;
6888       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6889     };
6891     kuickshow = callPackage ../applications/graphics/kuickshow {
6892       inherit (kde3) arts kdelibs;
6893       qt = qt3;
6894     };
6896     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6897       inherit (kde3) kdelibs;
6898       qt = qt3;
6899     };
6901   };
6903   kde4 = kde45;
6905   kde44 = makeOverridable (import ../desktops/kde-4.4) (
6906     applyGlobalOverrides (p: { kde4 = p.kde44; qt4 = p.qt46; }) //
6907     { stdenv = pkgs.stdenv2; });
6909   kde45 = callPackage ../desktops/kde-4.5 {
6910     callPackage =
6911       let
6912         # !!! Ugly, inefficient.
6913         pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; }));
6914       in
6915         pkgs_for_45.newScope pkgs_for_45.kde45;
6916     stdenv = pkgs.stdenv2;
6917   };
6919   xfce = xfce4;
6921   xfce4 = recurseIntoAttrs
6922     (let callPackage = newScope pkgs.xfce4; in
6923      import ../desktops/xfce-4 { inherit callPackage pkgs; });
6926   ### SCIENCE
6928   xplanet = callPackage ../applications/science/xplanet {
6929     inherit (gtkLibs) pango;
6930   };
6933   ### SCIENCE/GEOMETRY
6935   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6936     inherit (gnome) libglade gtk;
6937     inherit libxml2 guile perl intltool libtool pkgconfig;
6938   };
6940   tetgen = callPackage ../applications/science/geometry/tetgen { };
6943   ### SCIENCE/BIOLOGY
6945   alliance = callPackage ../applications/science/electronics/alliance {
6946     motif = lesstif;
6947   };
6949   arb = callPackage ../applications/science/biology/arb {
6950     lesstif = lesstif93;
6951     stdenv = overrideGCC stdenv gcc42;
6952   };
6954   biolib = callPackage ../development/libraries/science/biology/biolib { };
6956   emboss = callPackage ../applications/science/biology/emboss { };
6958   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6960   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6961     inherit tcsh mesa lesstif;
6962     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6963       libXmu libXext;
6964   };
6966   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6968   paml = callPackage ../applications/science/biology/paml { };
6970   /* slr = import ../applications/science/biology/slr {
6971     inherit fetchurl stdenv liblapack;
6972   }; */
6974   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6977   ### SCIENCE/MATH
6979   atlas = callPackage ../development/libraries/science/math/atlas { };
6981   blas = callPackage ../development/libraries/science/math/blas { };
6983   content = builderDefsPackage ../applications/science/math/content {
6984     inherit mesa lesstif;
6985     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6986       libXmu libXext libXcursor;
6987   };
6989   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6992   ### SCIENCE/LOGIC
6994   coq = callPackage ../applications/science/logic/coq {
6995     camlp5 = camlp5_transitional;
6996   };
6998   cvc3 = callPackage ../applications/science/logic/cvc3 {};
7000   eprover = callPackage ../applications/science/logic/eProver {
7001     texLive = texLiveAggregationFun {
7002       paths = [
7003         texLive texLiveExtra
7004       ];
7005   };
7006   };
7008   hol = callPackage ../applications/science/logic/hol { };
7010   hol_light = callPackage ../applications/science/logic/hol_light { };
7012   hol_light_sources = callPackage ../applications/science/logic/hol_light/sources.nix { };
7014   hol_light_checkpoint_dmtcp =
7015      recurseIntoAttrs (callPackage ../applications/science/logic/hol_light/dmtcp_checkpoint.nix { });
7017   isabelle = import ../applications/science/logic/isabelle {
7018     inherit (pkgs) stdenv fetchurl nettools perl polyml;
7019     inherit (pkgs.emacs23Packages) proofgeneral;
7020   };
7022   iprover = callPackage ../applications/science/logic/iprover {};
7024   leo2 = callPackage ../applications/science/logic/leo2 {};
7026   minisat = callPackage ../applications/science/logic/minisat {};
7028   opensmt = callPackage ../applications/science/logic/opensmt {
7029     flex = flex2535;
7030   };
7032   prover9 = callPackage ../applications/science/logic/prover9 { };
7034   satallax = callPackage ../applications/science/logic/satallax {};
7036   spass = callPackage ../applications/science/logic/spass {};
7038   ssreflect = callPackage ../applications/science/logic/ssreflect {
7039     camlp5 = camlp5_transitional;
7040   };
7042   ### SCIENCE / ELECTRONICS
7044   caneda = callPackage ../applications/science/electronics/caneda {
7045     stdenv = stdenv2;
7046     # At the time of writing, it fails to build with qt47
7047     qt4 = qt46;
7048   };
7050   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
7052   kicad = callPackage ../applications/science/electronics/kicad {
7053     stdenv = stdenv2;
7054   };
7056   ngspice = callPackage ../applications/science/electronics/ngspice { };
7058   qucs = callPackage ../applications/science/electronics/qucs {
7059     qt = qt3;
7060   };
7062   xoscope = callPackage ../applications/science/electronics/xoscope { };
7065   ### SCIENCE / MATH
7067   maxima = callPackage ../applications/science/math/maxima { };
7069   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
7071   pari = callPackage ../applications/science/math/pari {};
7073   singular = callPackage ../applications/science/math/singular {};
7075   scilab = callPackage ../applications/science/math/scilab {
7076     withXaw3d = false;
7077     withTk = true;
7078     withGtk = false;
7079     withOCaml = true;
7080     withX = true;
7081   };
7083   yacas = callPackage ../applications/science/math/yacas { };
7085   ### SCIENCE / MISC
7087   golly = callPackage ../applications/science/misc/golly { };
7089   simgrid = callPackage ../applications/science/misc/simgrid {
7090     stdenv = stdenv2;
7091   };
7093   tulip = callPackage ../applications/science/misc/tulip {
7094     qt = qt4;
7095   };
7097   vite = callPackage ../applications/science/misc/vite {
7098     qt = qt4;
7099     stdenv = stdenv2;
7100   };
7102   ### MISC
7104   atari800 = callPackage ../misc/emulators/atari800 { };
7106   ataripp = callPackage ../misc/emulators/atari++ { };
7108   auctex = callPackage ../misc/tex/auctex { };
7110   busybox = callPackage ../misc/busybox {
7111     enableStatic = true;
7112   };
7114   cups = callPackage ../misc/cups { };
7116   gutenprint = callPackage ../misc/drivers/gutenprint { };
7118   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
7120   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
7122   dblatex = callPackage ../misc/tex/dblatex { };
7124   dosbox = callPackage ../misc/emulators/dosbox { };
7126   dpkg = callPackage ../tools/package-management/dpkg { };
7128   ekiga = newScope (pkgs.gtkLibs // pkgs.gnome) ../applications/networking/ekiga { };
7130   electricsheep = callPackage ../misc/screensavers/electricsheep { };
7132   foldingathome = callPackage ../misc/foldingathome { };
7134   freestyle = callPackage ../misc/freestyle {
7135     #stdenv = overrideGCC stdenv gcc41;
7136   };
7138   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
7139     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
7140       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
7141       docutils;
7142     dbus = dbus.libs;
7143     inherit (gnome) gtk libglade;
7144     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
7145       scrnsaverproto;
7146     python = pythonFull;
7147   };
7149   generator = callPackage ../misc/emulators/generator {
7150     inherit (gtkLibs1x) gtk;
7151   };
7153   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
7155   ghostscript = callPackage ../misc/ghostscript {
7156     x11Support = false;
7157     cupsSupport = getPkgConfig "ghostscript" "cups" true;
7158   };
7160   ghostscriptX = appendToName "with-X" (ghostscript.override {
7161     x11Support = true;
7162   });
7164   gxemul = callPackage ../misc/gxemul { };
7166   hplip = callPackage ../misc/drivers/hplip {
7167     qtSupport = true;
7168   };
7170   # using the new configuration style proposal which is unstable
7171   jackaudio = callPackage ../misc/jackaudio { };
7173   keynav = callPackage ../tools/X11/keynav { };
7175   lazylist = callPackage ../misc/tex/lazylist { };
7177   lilypond = callPackage ../misc/lilypond {
7178     inherit (gtkLibs) pango;
7179     flex = flex2535;
7180   };
7182   martyr = callPackage ../development/libraries/martyr { };
7184   maven = callPackage ../misc/maven/maven-1.0.nix { };
7185   maven2 = callPackage ../misc/maven { };
7186   maven3 = callPackage ../misc/maven/3.0.nix { };
7188   mess = callPackage ../misc/emulators/mess { };
7190   nix = nixStable;
7192   nixStable = callPackage ../tools/package-management/nix {
7193     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7194     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7195   };
7197   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
7198     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7199     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7200   };
7202   # The SQLite branch.
7203   nixSqlite = lowPrio (callPackage ../tools/package-management/nix/sqlite.nix {
7204     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7205     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7206     sqlite = sqlite36;
7207   });
7209   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
7210     import ../tools/package-management/nix/custom.nix {
7211       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
7212         autoconf libtool configureFlags enableScripts lib libxml2 boehmgc
7213         pkgconfig;
7214       flex = flex2535;
7215       bison = bison24;
7216       aterm = aterm25;
7217       db4 = db45;
7218       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
7219     };
7221   disnix = callPackage ../tools/package-management/disnix { };
7223   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
7224     enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
7225     enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
7226     enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
7227     enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
7228     enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
7229   };
7231   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
7233   latex2html = callPackage ../misc/tex/latex2html/default.nix {
7234     tex = tetex;
7235   };
7237   mysqlWorkbench = newScope gnome ../applications/misc/mysql-workbench {
7238     lua = lua5;
7239     inherit (pythonPackages) pexpect paramiko;
7240   };
7242   pgadmin = callPackage ../applications/misc/pgadmin { };
7244   pgf = pgf2;
7246   # Keep the old PGF since some documents don't render properly with
7247   # the new one.
7248   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
7250   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
7252   polytable = callPackage ../misc/tex/polytable { };
7254   psi = newScope pkgs.kde45 ../applications/networking/instant-messengers/psi { };
7256   putty = callPackage ../applications/networking/remote/putty { };
7258   rssglx = callPackage ../misc/screensavers/rss-glx { };
7260   xlockmore = callPackage ../misc/screensavers/xlockmore {
7261     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
7262   };
7264   saneBackends = callPackage ../misc/sane-backends {
7265     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
7266   };
7268   saneFrontends = callPackage ../misc/sane-front { };
7270   sourceAndTags = import ../misc/source-and-tags {
7271     inherit pkgs stdenv unzip lib ctags;
7272     hasktags = haskellPackages.myhasktags;
7273   };
7275   splix = callPackage ../misc/cups/drivers/splix { };
7277   tetex = callPackage ../misc/tex/tetex { };
7279   tex4ht = callPackage ../misc/tex/tex4ht { };
7281   texFunctions = import ../misc/tex/nix pkgs;
7283   texLive = builderDefsPackage (import ../misc/tex/texlive) {
7284     inherit builderDefs zlib bzip2 ncurses libpng ed
7285       gd t1lib freetype icu perl ruby expat curl
7286       libjpeg bison python fontconfig;
7287     inherit (xlibs) libXaw libX11 xproto libXt libXpm
7288       libXmu libXext xextproto libSM libICE;
7289     flex = flex2535;
7290     ghostscript = ghostscriptX;
7291   };
7293   /* Look in configurations/misc/raskin.nix for usage example (around revisions
7294   where TeXLive was added)
7296   (texLiveAggregationFun {
7297     paths = [texLive texLiveExtra texLiveCMSuper
7298       texLiveBeamer
7299     ];
7300   })
7302   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
7303   Just installing a few packages doesn't work.
7304   */
7305   texLiveAggregationFun =
7306     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
7308   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
7309     inherit texLive;
7310   };
7312   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
7313     inherit texLive;
7314   };
7316   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
7317     inherit texLive;
7318   };
7320   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
7321     inherit texLive;
7322   };
7324   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
7325     inherit texLiveLatexXColor texLive;
7326   };
7328   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
7329     inherit texLiveLatexXColor texLivePGF texLive;
7330   };
7332   trac = callPackage ../misc/trac {
7333     inherit (pythonPackages) pysqlite;
7334   };
7336   vice = callPackage ../misc/emulators/vice { };
7338   # Wine cannot be built in 64-bit; use a 32-bit build instead.
7339   wine = callPackage_i686 ../misc/emulators/wine {
7340     flex = pkgsi686Linux.flex2535;
7341   };
7343   wineWarcraft = callPackage_i686 ../misc/emulators/wine/wine-warcraft.nix {
7344     flex = pkgsi686Linux.flex2535;
7345   };
7347   x2x = callPackage ../tools/X11/x2x { };
7349   xosd = callPackage ../misc/xosd { };
7351   xsane = callPackage ../misc/xsane { };
7353   yafc = callPackage ../applications/networking/yafc { };
7355   myEnvFun = import ../misc/my-env {
7356     inherit substituteAll pkgs;
7357     inherit (stdenv) mkDerivation;
7358   };
7360   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
7362 }; in pkgs