system-config-printer: fix runtime errors. Patch by Karn Kallio.
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blob11baab26eb2900075d53991b9f5bc8e5926043f5
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   enscript = callPackage ../tools/text/enscript { };
589   ethtool = callPackage ../tools/misc/ethtool { };
591   exif = callPackage ../tools/graphics/exif { };
593   exiftags = callPackage ../tools/graphics/exiftags { };
595   expect = callPackage ../tools/misc/expect { };
597   fcron = callPackage ../tools/system/fcron {  # see also cron
598   };
600   fdisk = callPackage ../tools/system/fdisk { };
602   fdm = callPackage ../tools/networking/fdm {};
604   figlet = callPackage ../tools/misc/figlet { };
606   file = callPackage ../tools/misc/file { };
608   fileschanged = callPackage ../tools/misc/fileschanged { };
610   findutils =
611     if stdenv.isDarwin
612     then findutils4227
613     else callPackage ../tools/misc/findutils { };
615   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
617   finger_bsd = callPackage ../tools/networking/bsd-finger { };
619   flvstreamer = callPackage ../tools/networking/flvstreamer { };
621   fontforge = callPackage ../tools/misc/fontforge { };
623   fontforgeX = callPackage ../tools/misc/fontforge {
624     withX11 = true;
625   };
627   ftgl = callPackage ../development/libraries/ftgl { };
629   dos2unix = callPackage ../tools/text/dos2unix { };
631   unix2dos = callPackage ../tools/text/unix2dos { };
633   uni2ascii = callPackage ../tools/text/uni2ascii { };
635   gawk = callPackage ../tools/text/gawk { };
637   gdmap = callPackage ../tools/system/gdmap {
638     inherit (gtkLibs216) gtk;
639   };
641   genext2fs = callPackage ../tools/filesystems/genext2fs { };
643   gengetopt = callPackage ../development/tools/misc/gengetopt { };
645   getmail = callPackage ../tools/networking/getmail {
646     python = pythonFull;
647   };
649   getopt = callPackage ../tools/misc/getopt { };
651   gftp = callPackage ../tools/networking/gftp { };
653   gifsicle = callPackage ../tools/graphics/gifsicle { };
655   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
656     inherit fuse;
657     bison = bison24;
658     flex = flex2535;
659   };
661   glxinfo = callPackage ../tools/graphics/glxinfo { };
663   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
664     inherit intltool perl gettext libusb pkgconfig;
665     inherit (gtkLibs) gtk glib;
666   };
668   gnugrep = callPackage ../tools/text/gnugrep { };
670   gnupatch = callPackage ../tools/text/gnupatch { };
672   gnupg1orig = callPackage ../tools/security/gnupg1 {
673     ideaSupport = false;
674   };
676   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
678   # use config.packageOverrides if you prefer original gnupg1
679   gnupg1 = gnupg1compat;
681   gnupg = callPackage ../tools/security/gnupg { };
683   gnuplot = callPackage ../tools/graphics/gnuplot {
684     inherit (gtkLibs) pango;
685     texLive = null;
686     lua = null;
687   };
689   gnused = callPackage ../tools/text/gnused { };
691   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
693   gnutar = callPackage ../tools/archivers/gnutar { };
695   gnuvd = callPackage ../tools/misc/gnuvd { };
697   gource = callPackage ../tools/misc/gource { };
699   graphviz = callPackage ../tools/graphics/graphviz {
700     inherit (gtkLibs) pango;
701   };
703   /* Readded by Michael Raskin. There are programs in the wild
704    * that do want 2.0 but not 2.22. Please give a day's notice for
705    * objections before removal.
706    */
707   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
708     inherit (gtkLibs) pango;
709   };
711   groff = callPackage ../tools/text/groff {
712     ghostscript = null;
713   };
715   grub = import ../tools/misc/grub {
716     inherit fetchurl autoconf automake;
717     stdenv = stdenv_32bit;
718     buggyBiosCDSupport = (getConfig ["grub" "buggyBiosCDSupport"] true);
719   };
721   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
723   gssdp = callPackage ../development/libraries/gssdp {
724     inherit (gnome) libsoup;
725   };
727   gt5 = callPackage ../tools/system/gt5 { };
729   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
731   gupnp = callPackage ../development/libraries/gupnp {
732     inherit (gnome) libsoup;
733   };
735   gupnptools = callPackage ../tools/networking/gupnp-tools {
736     inherit (gnome) libsoup libglade gnomeicontheme;
737   };
739   gvpe = builderDefsPackage ../tools/networking/gvpe {
740     inherit openssl gmp nettools iproute;
741   };
743   gzip = callPackage ../tools/compression/gzip { };
745   pigz = callPackage ../tools/compression/pigz { };
747   halibut = callPackage ../tools/typesetting/halibut { };
749   hddtemp = callPackage ../tools/misc/hddtemp { };
751   hdf5 = callPackage ../tools/misc/hdf5 { };
752   
753   hevea = callPackage ../tools/typesetting/hevea { };
755   highlight = callPackage ../tools/text/highlight { };
757   host = callPackage ../tools/networking/host { };
759   httpfs2 = callPackage ../tools/filesystems/httpfs { };
761   iasl = callPackage ../development/compilers/iasl { };
763   idutils = callPackage ../tools/misc/idutils { };
765   iftop = callPackage ../tools/networking/iftop { };
767   imapsync = callPackage ../tools/networking/imapsync {
768     inherit (perlPackages) MailIMAPClient;
769   };
771   inetutils = callPackage ../tools/networking/inetutils { };
773   iodine = callPackage ../tools/networking/iodine { };
775   iperf = callPackage ../tools/networking/iperf { };
777   ipmitool = callPackage ../tools/system/ipmitool {
778     static = false;
779   };
781   jdiskreport = callPackage ../tools/misc/jdiskreport { };
783   jfsrec = callPackage ../tools/filesystems/jfsrec { };
785   jfsutils = callPackage ../tools/filesystems/jfsutils { };
787   jhead = callPackage ../tools/graphics/jhead { };
789   jing = callPackage ../tools/text/xml/jing { };
791   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
793   jnettop = callPackage ../tools/networking/jnettop {
794     inherit (gnome) glib;
795   };
797   jwhois = callPackage ../tools/networking/jwhois { };
799   kdiff3 = newScope pkgs.kde4 ../tools/text/kdiff3 { };
801   keychain = callPackage ../tools/misc/keychain { };
803   kismet = callPackage ../applications/networking/sniffers/kismet { };
805   less = callPackage ../tools/misc/less { };
807   most = callPackage ../tools/misc/most { };
809   lftp = callPackage ../tools/networking/lftp { };
811   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
813   logrotate = callPackage ../tools/system/logrotate { };
815   lout = callPackage ../tools/typesetting/lout { };
817   lrzip = callPackage ../tools/compression/lrzip { };
819   lsh = callPackage ../tools/networking/lsh { };
821   lshw = callPackage ../tools/system/lshw { };
823   lxc = callPackage ../tools/system/lxc { };
825   lzma = xz;
827   xz = callPackage ../tools/compression/xz { };
829   lzop = callPackage ../tools/compression/lzop { };
831   mailutils = callPackage ../tools/networking/mailutils { };
833   man = callPackage ../tools/misc/man { };
835   man_db = callPackage ../tools/misc/man-db { };
837   memtest86 = callPackage ../tools/misc/memtest86 { };
839   mc = callPackage ../tools/misc/mc { };
841   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
843   mcron = callPackage ../tools/system/mcron { };
845   mdbtools = callPackage ../tools/misc/mdbtools {
846     flex = flex2535;
847   };
849   mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix {
850     flex = flex2535;
851   };
853   miniupnpd = callPackage ../tools/networking/miniupnpd { };
855   mjpegtools = callPackage ../tools/video/mjpegtools { };
857   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
859   mktemp = callPackage ../tools/security/mktemp { };
861   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
863   monit = builderDefsPackage ../tools/system/monit {
864     flex = flex2535;
865     bison = bison24;
866     inherit openssl;
867   };
869   mpage = callPackage ../tools/text/mpage { };
871   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
872     inherit ruby makeWrapper;
873   };
875   mssys = callPackage ../tools/misc/mssys { };
877   mtdutils = callPackage ../tools/filesystems/mtdutils { };
879   mtools = callPackage ../tools/filesystems/mtools { };
881   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
882     multitrandata = callPackage ../tools/text/multitran/data { };
884     libbtree = callPackage ../tools/text/multitran/libbtree { };
886     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
888     libfacet = callPackage ../tools/text/multitran/libfacet { };
890     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
892     mtutils = callPackage ../tools/text/multitran/mtutils { };
893   });
895   muscleframework = callPackage ../tools/security/muscleframework { };
897   muscletool = callPackage ../tools/security/muscletool { };
899   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
901   namazu = callPackage ../tools/text/namazu { };
903   nbd = callPackage ../tools/networking/nbd {
904     glib = gtkLibs.glib.override {
905       stdenv = makeStaticBinaries stdenv;
906     };
907   };
909   netcdf = callPackage ../development/libraries/netcdf { };
911   nc6 = callPackage ../tools/networking/nc6 { };
913   ncat = callPackage ../tools/networking/ncat { };
915   ncftp = callPackage ../tools/networking/ncftp { };
917   ncompress = callPackage ../tools/compression/ncompress { };
919   netcat = callPackage ../tools/networking/netcat { };
921   netkittftp = callPackage ../tools/networking/netkit/tftp { };
923   netpbm = callPackage ../tools/graphics/netpbm { };
925   netselect = callPackage ../tools/networking/netselect { };
927   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
929   nmap = callPackage ../tools/security/nmap {
930     inherit (pythonPackages) pysqlite;
931   };
933   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
935   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
937   ntp = callPackage ../tools/networking/ntp { };
939   nssmdns = callPackage ../tools/networking/nss-mdns { };
941   nylon = callPackage ../tools/networking/nylon { };
943   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
945   obexd = callPackage ../tools/bluetooth/obexd { };
947   obexfs = callPackage ../tools/bluetooth/obexfs { };
949   obexftp = callPackage ../tools/bluetooth/obexftp { };
951   offlineimap = import ../tools/networking/offlineimap {
952     inherit fetchurl;
953     # I did not find any better way of reusing buildPythonPackage+setuptools
954     # for a python with openssl support
955     buildPythonPackage = assert pythonFull.opensslSupport;
956       import ../development/python-modules/generic {
957         inherit makeWrapper lib;
958         python = pythonFull;
959         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
960           inherit makeWrapper;
961           python = pythonFull;
962         };
963       };
964   };
966   opendbx = callPackage ../development/libraries/opendbx { };
968   opendkim = callPackage ../development/libraries/opendkim { };
970   openjade = callPackage ../tools/text/sgml/openjade {
971     stdenv = overrideGCC stdenv gcc33;
972     opensp = opensp.override { stdenv = overrideGCC stdenv gcc33; };
973   };
975   openobex = callPackage ../tools/bluetooth/openobex { };
977   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
979   opensc = opensc_0_11_7;
981   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
983   openssh = callPackage ../tools/networking/openssh {
984     hpnSupport = false;
985     etcDir = "/etc/ssh";
986   };
988   opensp = callPackage ../tools/text/sgml/opensp { };
990   openvpn = callPackage ../tools/networking/openvpn { };
992   optipng = callPackage ../tools/graphics/optipng { };
994   p7zip = callPackage ../tools/archivers/p7zip { };
996   pal = callPackage ../tools/misc/pal { };
998   panomatic = callPackage ../tools/graphics/panomatic { };
1000   par2cmdline = callPackage ../tools/networking/par2cmdline { };
1002   parallel = callPackage ../tools/misc/parallel { };
1004   patchutils = callPackage ../tools/text/patchutils { };
1006   parted = callPackage ../tools/misc/parted { };
1008   patch = gnupatch;
1010   pbzip2 = callPackage ../tools/compression/pbzip2 { };
1012   pciutils = callPackage ../tools/system/pciutils { };
1014   pcsclite = callPackage ../tools/security/pcsclite { };
1016   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
1018   pdfjam = callPackage ../tools/typesetting/pdfjam { };
1020   pdfread = callPackage ../tools/graphics/pdfread { };
1022   pg_top = callPackage ../tools/misc/pg_top { };
1024   pdsh = callPackage ../tools/networking/pdsh {
1025     rsh = true;          # enable internal rsh implementation
1026     ssh = openssh;
1027   };
1029   pfstools = callPackage ../tools/graphics/pfstools {
1030     qt = qt3;
1031   };
1033   philter = callPackage ../tools/networking/philter { };
1035   pinentry = callPackage ../tools/misc/pinentry {
1036     inherit (gnome) glib gtk;
1037   };
1039   pius = callPackage ../tools/security/pius { };
1041   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1043   plan9port = callPackage ../tools/system/plan9port { };
1045   ploticus = callPackage ../tools/graphics/ploticus { };
1047   plotutils = callPackage ../tools/graphics/plotutils { };
1049   pngnq = callPackage ../tools/graphics/pngnq { };
1051   povray = callPackage ../tools/graphics/povray { };
1053   ppl = callPackage ../development/libraries/ppl { };
1055   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1056   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1057   };
1059   proxychains = callPackage ../tools/networking/proxychains { };
1061   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1063   psmisc = callPackage ../os-specific/linux/psmisc { };
1065   pstoedit = callPackage ../tools/graphics/pstoedit { };
1067   pv = callPackage ../tools/misc/pv { };
1069   pwgen = callPackage ../tools/security/pwgen { };
1071   pydb = callPackage ../tools/pydb { };
1073   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1075   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1076     inherit python pkgconfig dbus_glib;
1077     dbus = dbus.libs;
1078   };
1080   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1081     inherit python;
1082   };
1084   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1085     inherit python libsexy pkgconfig libxml2 pygtk;
1086     inherit (gtkLibs) pango gtk glib;
1087   };
1089   openmpi = callPackage ../development/libraries/openmpi { };
1091   qdu = callPackage ../tools/misc/qdu { };
1093   qhull = callPackage ../development/libraries/qhull { };
1095   qshowdiff = callPackage ../tools/text/qshowdiff {
1096     qt = qt4;
1097   };
1099   rtmpdump = callPackage ../tools/video/rtmpdump { };
1101   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1103   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1105   relfs = callPackage ../tools/filesystems/relfs {
1106     inherit (gnome) gnomevfs GConf;
1107   };
1109   remind = callPackage ../tools/misc/remind { };
1111   replace = callPackage ../tools/text/replace { };
1113   /*
1114   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1115     python=python;  };
1116   */
1118   ripmime = callPackage ../tools/networking/ripmime {};
1120   rsnapshot = callPackage ../tools/backup/rsnapshot {
1122     # For the `logger' command, we can use either `utillinux' or
1123     # GNU Inetutils.  The latter is more portable.
1124     logger = inetutils;
1125   };
1127   rlwrap = callPackage ../tools/misc/rlwrap { };
1129   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1130     inherit ppp;
1131   };
1133   rpm = callPackage ../tools/package-management/rpm {
1134     db4 = db45;
1135   };
1137   rrdtool = callPackage ../tools/misc/rrdtool {
1138     inherit (gtkLibs) pango;
1139   };
1141   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1143   rubber = callPackage ../tools/typesetting/rubber { };
1145   rxp = callPackage ../tools/text/xml/rxp { };
1147   rzip = callPackage ../tools/compression/rzip { };
1149   s3backer = callPackage ../tools/filesystems/s3backer { };
1151   s3sync = callPackage ../tools/networking/s3sync { };
1153   sablotron = callPackage ../tools/text/xml/sablotron { };
1155   screen = callPackage ../tools/misc/screen { };
1157   scrot = callPackage ../tools/graphics/scrot { };
1159   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1161   setserial = builderDefsPackage (import ../tools/system/setserial) {
1162     inherit groff;
1163   };
1165   sg3_utils = callPackage ../tools/system/sg3_utils { };
1167   sharutils = callPackage ../tools/archivers/sharutils { };
1169   shebangfix = callPackage ../tools/misc/shebangfix { };
1171   slimrat = callPackage ../tools/networking/slimrat {
1172     inherit (perlPackages) WWWMechanize LWP;
1173   };
1175   slsnif = callPackage ../tools/misc/slsnif { };
1177   smartmontools = callPackage ../tools/system/smartmontools { };
1179   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1181   socat = callPackage ../tools/networking/socat { };
1183   sourceHighlight = callPackage ../tools/text/source-highlight { };
1185   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1186     inherit fetchurl stdenv openssl;
1187   };
1189   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1191   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1193   sudo = callPackage ../tools/security/sudo { };
1195   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1196   };
1198   ssmtp = callPackage ../tools/networking/ssmtp {
1199     tlsSupport = true;
1200   };
1202   ssss = callPackage ../tools/security/ssss { };
1204   stun = callPackage ../tools/networking/stun { };
1206   stunnel = callPackage ../tools/networking/stunnel { };
1208   su = shadow;
1210   swec = callPackage ../tools/networking/swec {
1211     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1212   };
1214   svnfs = callPackage ../tools/filesystems/svnfs { };
1216   system_config_printer = callPackage ../tools/misc/system-config-printer {
1217     inherit (pythonPackages) notify;
1218     libxml2 = libxml2Python;
1219    };
1221   sitecopy = callPackage ../tools/networking/sitecopy { };
1223   privoxy = callPackage ../tools/networking/privoxy {
1224     autoconf = autoconf213;
1225   };
1227   tcpdump = callPackage ../tools/networking/tcpdump { };
1229   tcng = callPackage ../tools/networking/tcng {
1230     kernel = linux_2_6_28;
1231   };
1233   telnet = callPackage ../tools/networking/telnet { };
1235   texmacs = callPackage ../applications/editors/texmacs {
1236     tex = texLive; /* tetex is also an option */
1237     extraFonts = true;
1238   };
1240   tor = callPackage ../tools/security/tor { };
1242   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
1244   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1245   ttf2pt1_cl_pdf = callPackage ../tools/misc/ttf2pt1 { };
1247   ucl = callPackage ../development/libraries/ucl { };
1249   ufraw = callPackage ../applications/graphics/ufraw {
1250     inherit (gnome) gtk;
1251   };
1253   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1255   upx = callPackage ../tools/compression/upx { };
1257   usbmuxd = callPackage ../tools/misc/usbmuxd {};
1259   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
1261   vbetool = builderDefsPackage ../tools/system/vbetool {
1262     inherit pciutils libx86 zlib;
1263   };
1265   verilog = callPackage ../applications/science/electronics/verilog {};
1267   viking = callPackage ../applications/misc/viking { };
1269   vncrec = builderDefsPackage ../tools/video/vncrec {
1270     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1271       libXmu libXaw libXext xextproto libSM libICE libXpm
1272       libXp;
1273   };
1275   vpnc = callPackage ../tools/networking/vpnc { };
1277   vtun = callPackage ../tools/networking/vtun { };
1279   testdisk = callPackage ../tools/misc/testdisk { };
1281   htmlTidy = callPackage ../tools/text/html-tidy { };
1283   tigervnc = callPackage ../tools/admin/tigervnc {
1284     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1285       xorg.fontbhlucidatypewriter75dpi ];
1286   };
1288   tightvnc = callPackage ../tools/admin/tightvnc {
1289     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1290       xorg.fontbhlucidatypewriter75dpi ];
1291   };
1293   time = callPackage ../tools/misc/time { };
1295   tm = callPackage ../tools/system/tm { };
1297   trang = callPackage ../tools/text/xml/trang { };
1299   tre = callPackage ../development/libraries/tre { };
1301   ts = callPackage ../tools/system/ts { };
1303   transfig = callPackage ../tools/graphics/transfig { };
1305   truecrypt = callPackage ../applications/misc/truecrypt {
1306     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1307   };
1309   ttmkfdir = callPackage ../tools/misc/ttmkfdir {
1310     flex = flex2534;
1311   };
1313   unbound = callPackage ../tools/networking/unbound { };
1315   units = callPackage ../tools/misc/units { };
1317   unrar = callPackage ../tools/archivers/unrar { };
1319   unarj = callPackage ../tools/archivers/unarj { };
1321   unshield = callPackage ../tools/archivers/unshield { };
1323   unzip = unzip552;
1325   # TODO: remove in the next stdenv update.
1326   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1328   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1330   uptimed = callPackage ../tools/system/uptimed { };
1332   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1333     tomcat = tomcat6;
1334   };
1336   wdfs = callPackage ../tools/filesystems/wdfs { };
1338   wdiff = callPackage ../tools/text/wdiff { };
1340   webalizer = callPackage ../tools/networking/webalizer { };
1342   webdruid = builderDefsPackage ../tools/admin/webdruid {
1343     inherit zlib libpng freetype gd which
1344       libxml2 geoip;
1345   };
1347   wget = callPackage ../tools/networking/wget {
1348     inherit (perlPackages) LWP;
1349   };
1351   which = callPackage ../tools/system/which { };
1353   wicd = callPackage ../tools/networking/wicd { };
1355   wv = callPackage ../tools/misc/wv { };
1357   wv2 = callPackage ../tools/misc/wv2 { };
1359   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1361   xbursttools = import ../tools/misc/xburst-tools {
1362     inherit stdenv fetchgit autoconf automake libusb confuse;
1363     # It needs a cross compiler for mipsel to build the firmware it will
1364     # load into the Ben Nanonote
1365     gccCross =
1366       let
1367         pkgsCross = (import ./all-packages.nix) {
1368           inherit system;
1369           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1370           # Ben Nanonote system
1371           crossSystem = {
1372             config = "mipsel-unknown-linux";
1373             bigEndian = true;
1374             arch = "mips";
1375             float = "soft";
1376             withTLS = true;
1377             libc = "uclibc";
1378             platform = {
1379               name = "ben_nanonote";
1380               kernelMajor = "2.6";
1381               # It's not a bcm47xx processor, but for the headers this should work
1382               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1383               kernelArch = "mips";
1384             };
1385             gcc = {
1386               arch = "mips32";
1387             };
1388           };
1389         };
1390       in
1391         pkgsCross.gccCrossStageStatic;
1392   };
1394   xclip = callPackage ../tools/misc/xclip { };
1396   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1398   xmlroff = callPackage ../tools/typesetting/xmlroff {
1399     inherit (gtkLibs) glib pango gtk;
1400     inherit (gnome) libgnomeprint;
1401   };
1403   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1405   xmlto = callPackage ../tools/typesetting/xmlto { };
1407   xmltv = callPackage ../tools/misc/xmltv { };
1409   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1410     inherit python setuptools;
1411   };
1413   xpf = callPackage ../tools/text/xml/xpf {
1414     libxml2 = libxml2Python;
1415   };
1417   xsel = callPackage ../tools/misc/xsel { };
1419   zdelta = callPackage ../tools/compression/zdelta { };
1421   zile = callPackage ../applications/editors/zile { };
1423   zip = callPackage ../tools/archivers/zip { };
1425   zsync = callPackage ../tools/compression/zsync { };
1427   ### SHELLS
1430   bash = lowPrio (callPackage ../shells/bash {
1431     texinfo = null;
1432   });
1434   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
1435     interactive = true;
1436   });
1438   dash = callPackage ../shells/dash { };
1440   tcsh = callPackage ../shells/tcsh { };
1442   rush = callPackage ../shells/rush { };
1444   zsh = callPackage ../shells/zsh { };
1447   ### DEVELOPMENT / COMPILERS
1450   abc =
1451     abcPatchable [];
1453   abcPatchable = patches :
1454     import ../development/compilers/abc/default.nix {
1455       inherit stdenv fetchurl patches jre apacheAnt;
1456       javaCup = callPackage ../development/libraries/java/cup { };
1457     };
1459   aspectj = callPackage ../development/compilers/aspectj { };
1461   bigloo = callPackage ../development/compilers/bigloo { };
1463   ccl = builderDefsPackage ../development/compilers/ccl {};
1465   clang = llvm.override {
1466     buildClang = true;
1467   };
1469   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
1471   dylan = callPackage ../development/compilers/gwydion-dylan {
1472     dylan =
1473       import ../development/compilers/gwydion-dylan/binary.nix {
1474         inherit fetchurl stdenv;
1475   };
1476   };
1478   ecl = builderDefsPackage ../development/compilers/ecl {
1479     inherit gmp mpfr;
1480   };
1482   eql = callPackage ../development/compilers/eql {};
1484   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1486   fpc = callPackage ../development/compilers/fpc { };
1487   fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { };
1489   gambit = callPackage ../development/compilers/gambit { };
1491   gcc = gcc44;
1493   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1494     inherit fetchurl stdenv noSysDirs;
1495   });
1497   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1498     inherit fetchurl stdenv noSysDirs;
1499   });
1501   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1502     inherit fetchurl stdenv noSysDirs;
1503   });
1505   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1506   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1507   # expects a single digit after the dot.  As a workaround, we feed
1508   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1510   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1511     inherit fetchurl stdenv noSysDirs;
1512     texinfo = texinfo49;
1513     profiledCompiler = true;
1514   });
1516   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1517     inherit fetchurl stdenv noSysDirs;
1518     texinfo = texinfo49;
1519     profiledCompiler = false;
1520   });
1522   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1523     inherit fetchurl stdenv noSysDirs;
1524     profiledCompiler = false;
1525   });
1527   gcc44 = gcc44_real;
1529   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1530     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1531     profiledCompiler = true;
1532   }));
1534   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1535     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1536     binutilsCross = binutilsCross;
1537     libcCross = libcCross;
1538     profiledCompiler = false;
1539     enableMultilib = true;
1540     crossStageStatic = false;
1541     cross = assert crossSystem != null; crossSystem;
1542   };
1544   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1545     (makeOverridable (import ../development/compilers/gcc-4.4) {
1546       inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
1547           gettext which;
1548       binutilsCross = binutilsCross;
1549       libcCross = libcCross;
1550       profiledCompiler = false;
1551       enableMultilib = false;
1552       crossStageStatic = false;
1553       cross = assert crossSystem != null; crossSystem;
1554     });
1556   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1557     (makeOverridable (import ../development/compilers/gcc-4.5) {
1558       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1559         ppl cloogppl gettext which noSysDirs;
1560       binutilsCross = binutilsCross;
1561       libcCross = libcCross;
1562       profiledCompiler = false;
1563       enableMultilib = false;
1564       crossStageStatic = false;
1565       cross = assert crossSystem != null; crossSystem;
1566     });
1568   gcc_realCross = gcc45_realCross;
1570   gccCrossStageStatic = let
1571       isMingw = (stdenv.cross.libc == "msvcrt");
1572       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1573     in
1574       wrapGCCCross {
1575       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1576         gcc_realCross.override {
1577           crossStageStatic = true;
1578           langCC = false;
1579           libcCross = libcCross1;
1580           enableShared = false;
1581         }));
1582       libc = libcCross1;
1583       binutils = binutilsCross;
1584       cross = assert crossSystem != null; crossSystem;
1585   };
1587   # Only needed for mingw builds
1588   gccCrossMingw2 = wrapGCCCross {
1589     gcc = gccCrossStageStatic.gcc;
1590     libc = windows.mingw_headers2;
1591     binutils = binutilsCross;
1592     cross = assert crossSystem != null; crossSystem;
1593   };
1595   gccCrossStageFinal = wrapGCCCross {
1596     gcc = forceBuildDrv (gcc_realCross.override {
1597       libpthreadCross =
1598         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1599         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1600         then hurdLibpthreadCross
1601         else null;
1602      });
1603     libc = libcCross;
1604     binutils = binutilsCross;
1605     cross = assert crossSystem != null; crossSystem;
1606   };
1608   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1609     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1610     profiledCompiler = false;
1611     enableMultilib = true;
1612   }));
1614   gcc44_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1615     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1616       gettext which noSysDirs;
1617     profiledCompiler = true;
1618   }));
1620   gcc45 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1621     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1622       ppl cloogppl
1623       gettext which noSysDirs;
1624     profiledCompiler = true;
1625   }));
1627   gccApple =
1628     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1629       inherit fetchurl stdenv noSysDirs;
1630       profiledCompiler = true;
1631     }) ;
1633   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1634     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1635     texinfo = texinfo49;
1636   });
1638   gfortran = gfortran43;
1640   gfortran40 = wrapGCC (gcc40.gcc.override {
1641     langFortran = true;
1642     langCC = false;
1643     inherit gmp mpfr;
1644   });
1646   gfortran41 = wrapGCC (gcc41.gcc.override {
1647     name = "gfortran";
1648     langFortran = true;
1649     langCC = false;
1650     langC = false;
1651     inherit gmp mpfr;
1652   });
1654   gfortran42 = wrapGCC (gcc42.gcc.override {
1655     name = "gfortran";
1656     langFortran = true;
1657     langCC = false;
1658     langC = false;
1659     inherit gmp mpfr;
1660   });
1662   gfortran43 = wrapGCC (gcc43.gcc.override {
1663     name = "gfortran";
1664     langFortran = true;
1665     langCC = false;
1666     langC = false;
1667     profiledCompiler = false;
1668   });
1670   gfortran44 = wrapGCC (gcc44_real.gcc.override {
1671     name = "gfortran";
1672     langFortran = true;
1673     langCC = false;
1674     langC = false;
1675     profiledCompiler = false;
1676   });
1678   gcj = gcj45;
1680   gcj44 = wrapGCC (gcc44_real.gcc.override {
1681     name = "gcj";
1682     langJava = true;
1683     langFortran = false;
1684     langCC = true;
1685     langC = false;
1686     profiledCompiler = false;
1687     inherit zip unzip zlib boehmgc gettext pkgconfig;
1688     inherit (gtkLibs) gtk;
1689     inherit (gnome) libart_lgpl;
1690     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1691       libXrandr xproto renderproto xextproto inputproto randrproto;
1692   });
1694   gcj45 = wrapGCC (gcc45.gcc.override {
1695     name = "gcj";
1696     langJava = true;
1697     langFortran = false;
1698     langCC = true;
1699     langC = false;
1700     profiledCompiler = false;
1701     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1702     inherit (gtkLibs) gtk;
1703     inherit (gnome) libart_lgpl;
1704     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1705       libXrandr xproto renderproto xextproto inputproto randrproto;
1706   });
1708   gnat = gnat44;
1710   gnat44 = wrapGCC (gcc44_real.gcc.override {
1711     name = "gnat";
1712     langCC = false;
1713     langC = true;
1714     langAda = true;
1715     profiledCompiler = false;
1716     inherit gnatboot;
1717     # We can't use the ppl stuff, because we would have
1718     # libstdc++ problems.
1719     cloogppl = null;
1720     ppl = null;
1721   });
1723   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1724     inherit fetchurl stdenv;
1725   });
1727   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1728     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1729     name = "ghdl";
1730     langVhdl = true;
1731     langCC = false;
1732     langC = false;
1733     profiledCompiler = false;
1734     enableMultilib = false;
1735   });
1737   # Not officially supported version for ghdl
1738   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1739     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1740       ppl cloogppl;
1741     name = "ghdl";
1742     langVhdl = true;
1743     langCC = false;
1744     langC = false;
1745     profiledCompiler = false;
1746     enableMultilib = false;
1747   }));
1749   gcl = builderDefsPackage ../development/compilers/gcl {
1750     inherit mpfr m4 binutils fetchcvs emacs zlib which
1751       gmp texinfo;
1752     inherit (xlibs) libX11 xproto inputproto libXi
1753       libXext xextproto libXt libXaw libXmu;
1754     inherit stdenv;
1755     texLive = texLiveAggregationFun {
1756       paths = [
1757         texLive texLiveExtra
1758       ];
1759     };
1760   };
1762   # GHC
1764   # GHC binaries are around for bootstrapping purposes
1766   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1767   # need to reenable an old binary such as this.
1768   /*
1769   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1770     inherit fetchurl stdenv ncurses gmp;
1771     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1772     perl = perl58;
1773   });
1774   */
1776   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1777     inherit fetchurl stdenv perl ncurses gmp libedit;
1778   });
1780   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1781     inherit fetchurl stdenv perl ncurses gmp libedit;
1782   });
1784   # For several compiler versions, we export a large set of Haskell-related
1785   # packages.
1787   # This should point to the current default version.
1788   haskellPackages = haskellPackages_ghc6123;
1790   # Old versions of ghc that currently don't build because the binary
1791   # is broken.
1792   /*
1793   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1794     ghc = import ../development/compilers/ghc/6.4.2.nix {
1795       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1796       ghc = ghc642Binary;  };
1797   };
1799   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1800     ghc = import ../development/compilers/ghc/6.6.1.nix {
1801       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1802       ghc = ghc642Binary;
1803   };
1804   };
1806   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1807     ghc = import ../development/compilers/ghc/6.8.2.nix {
1808       inherit fetchurl stdenv perl gmp ncurses m4;
1809       readline = readline5;
1810       ghc = ghc642Binary;
1811   };
1812   };
1814   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1815     inherit pkgs;
1816     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1817       ghc = ghc642Binary;
1818       haddock = import ../development/tools/documentation/haddock/boot.nix {
1819         inherit gmp;
1820         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1821           inherit stdenv fetchurl lib;
1822           ghc = ghc642Binary;    };
1823       };
1824     };
1825   });
1826   */
1828   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1829   # currently available ghc versions. (Before, it used to be enabled only
1830   # for a selected few versions.) If someone complains about nix-env -qa
1831   # output being spammed by lots of Haskell packages, we can talk about
1832   # reducing the number or "enabled" versions again.
1834   # Helper functions to abstract away from repetitive instantiations.
1835   haskellPackagesFun = ghcPath : profDefault : modifyPrio : recurseIntoAttrs (import ./haskell-packages.nix {
1836     inherit pkgs newScope modifyPrio;
1837     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1838     ghc = callPackage ghcPath {
1839       ghc = ghc6101Binary;    };
1840   });
1842   # Currently active GHC versions.
1843   haskellPackages_ghc6101 =
1844     haskellPackagesFun ../development/compilers/ghc/6.10.1.nix false (x : x);
1846   haskellPackages_ghc6102 =
1847     haskellPackagesFun ../development/compilers/ghc/6.10.2.nix false (x : x);
1849   haskellPackages_ghc6103 =
1850     haskellPackagesFun ../development/compilers/ghc/6.10.3.nix false (x : x);
1852   haskellPackages_ghc6104 =
1853     haskellPackagesFun ../development/compilers/ghc/6.10.4.nix false (x : x);
1855   haskellPackages_ghc6121 =
1856     haskellPackagesFun ../development/compilers/ghc/6.12.1.nix false (x : x);
1858   haskellPackages_ghc6122 =
1859     haskellPackagesFun ../development/compilers/ghc/6.12.2.nix false (x : x);
1861   # Current default version.
1862   haskellPackages_ghc6123 =
1863     haskellPackagesFun ../development/compilers/ghc/6.12.3.nix false (x : x);
1865   haskellPackages_ghc701 =
1866     haskellPackagesFun ../development/compilers/ghc/7.0.1.nix  false lowPrio;
1868   haskellPackages_ghcHEAD =
1869     haskellPackagesFun ../development/compilers/ghc/head.nix   false lowPrio;
1871   haxeDist = import ../development/compilers/haxe {
1872     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1873   };
1874   haxe = haxeDist.haxe;
1875   haxelib = haxeDist.haxelib;
1877   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1878     inherit cmake;
1879   };
1881   go = callPackage ../development/compilers/go { };
1883   gprolog = callPackage ../development/compilers/gprolog { };
1885   gwt = callPackage ../development/compilers/gwt {
1886     inherit (gtkLibs) glib gtk pango atk;
1887     libstdcpp5 = gcc33.gcc;
1888   };
1890   ikarus = callPackage ../development/compilers/ikarus { };
1892   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1893   # commented out because it's using the new configuration style proposal which is unstable
1894   hugs = callPackage ../development/compilers/hugs { };
1896   path64 = callPackage ../development/compilers/path64 {
1897     stdenv = stdenv2;
1898   };
1900   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1902   j2sdk14x = (
1903     assert system == "i686-linux";
1904     import ../development/compilers/jdk/default-1.4.nix {
1905       inherit fetchurl stdenv;
1906     });
1908   jdk5 = (
1909     assert system == "i686-linux" || system == "x86_64-linux";
1910     import ../development/compilers/jdk/default-5.nix {
1911       inherit fetchurl stdenv unzip;
1912     });
1914   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1915   jre       = jdkdistro false false;
1917   jdkPlugin = jdkdistro true true;
1918   jrePlugin = jdkdistro false true;
1920   supportsJDK =
1921     system == "i686-linux" ||
1922     system == "x86_64-linux" ||
1923     system == "i686-cygwin" ||
1924     system == "powerpc-linux";
1926   jdkdistro = installjdk: pluginSupport:
1927        (assert supportsJDK;
1928     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
1929       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
1930     }));
1932   jikes = callPackage ../development/compilers/jikes { };
1934   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
1935     inherit makeWrapper;
1936     inherit (gtkLibs) gtk glib pango atk;
1937     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
1938     fpc = fpc_2_4_0;
1939   };
1941   llvm = callPackage ../development/compilers/llvm { };
1943   mitscheme = callPackage ../development/compilers/mit-scheme { };
1945   mlton = callPackage ../development/compilers/mlton { };
1947   mono = callPackage ../development/compilers/mono { };
1949   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
1951   mozart = callPackage ../development/compilers/mozart { };
1953   neko = callPackage ../development/compilers/neko { };
1955   nasm = callPackage ../development/compilers/nasm { };
1957   ocaml = ocaml_3_11_1;
1959   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
1961   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
1963   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
1965   opencxx = callPackage ../development/compilers/opencxx {
1966     gcc = gcc33;
1967   };
1969   qcmm = callPackage ../development/compilers/qcmm {
1970     lua   = lua4;
1971     ocaml = ocaml_3_08_0;
1972   };
1974   roadsend = callPackage ../development/compilers/roadsend { };
1976   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
1977     inherit makeWrapper clisp;
1978   };
1980   scala = callPackage ../development/compilers/scala { };
1982   stalin = callPackage ../development/compilers/stalin { };
1984   strategoPackages = strategoPackages018;
1986   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
1987     stdenv = overrideInStdenv stdenv [gnumake380];
1988   };
1990   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
1991     readline = readline5;
1992   };
1994   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
1995     readline = readline5;
1996   };
1998   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
2000   swiProlog = callPackage ../development/compilers/swi-prolog { };
2002   tinycc = callPackage ../development/compilers/tinycc { };
2004   urweb = callPackage ../development/compilers/urweb { };
2006   vala = callPackage ../development/compilers/vala { };
2008   visualcpp = callPackage ../development/compilers/visual-c++ { };
2010   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
2012   webdsl = callPackage ../development/compilers/webdsl { };
2014   win32hello = callPackage ../development/compilers/visual-c++/test { };
2016   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
2017     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2018     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2019     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
2020     gcc = baseGCC;
2021     libc = glibc;
2022     inherit stdenv binutils coreutils zlib;
2023   };
2025   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
2027   # To be removed on stdenv-updates
2028   # By now this has at least the fix of setting the proper rpath when a file "libbla.so"
2029   # is passed directly to the linker.
2030   # This is of interest to programs built by cmake, because this is a common practice
2031   # in cmake builds.
2032   wrapGCC2 = wrapGCCWith (import ../build-support/gcc-wrapper/default2.nix) glibc;
2033   stdenv2 = if (gcc.nativeTools) then stdenv else (overrideGCC stdenv (wrapGCC2 gcc.gcc));
2035   wrapGCCCross =
2036     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
2038     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
2039       nativeTools = false;
2040       nativeLibc = false;
2041       noLibc = (libc == null);
2042       inherit stdenv gcc binutils libc shell name cross;
2043     });
2045   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
2046   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2047   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2048     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2049     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2050     gcc = baseGCC;
2051     libc = glibc;
2052     inherit stdenv binutils;
2053   };
2055   # prolog
2056   yap = callPackage ../development/compilers/yap { };
2058   yasm = callPackage ../development/compilers/yasm { };
2060   ### DEVELOPMENT / INTERPRETERS
2062   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2063     inherit sbcl;
2064   };
2066   clisp = callPackage ../development/interpreters/clisp { };
2068   # compatibility issues in 2.47 - at list 2.44.1 is known good
2069   # for sbcl bootstrap
2070   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2071     libsigsegv = libsigsegv_25;  };
2073   erlang = callPackage ../development/interpreters/erlang { };
2075   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2077   groovy = callPackage ../development/interpreters/groovy { };
2079   guile = callPackage ../development/interpreters/guile { };
2081   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2083   io = builderDefsPackage (import ../development/interpreters/io) {
2084     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2085       libpng libtiff libjpeg readline libsndfile libxml2
2086       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2087   };
2089   kaffe = callPackage ../development/interpreters/kaffe { };
2091   lua4 = callPackage ../development/interpreters/lua-4 { };
2093   lua5 = callPackage ../development/interpreters/lua-5 { };
2095   maude = callPackage ../development/interpreters/maude { };
2097   octave = callPackage ../development/interpreters/octave {
2098     # Needed because later gm versions require an initialization the actual octave is not
2099     # doing.
2100     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2101     graphicsmagick = graphicsmagick137;
2102   };
2104   # mercurial (hg) bleeding edge version
2105   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2107   perl58 = callPackage ../development/interpreters/perl-5.8 {
2108     impureLibcPath = if stdenv.isLinux then null else "/usr";
2109   };
2111   perl510 = callPackage ../development/interpreters/perl-5.10 {
2112     fetchurl = fetchurlBoot;
2113   };
2115   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2117   php = php5_3;
2119   php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) {
2120     inherit
2121       stdenv fetchurl lib composableDerivation autoconf automake
2122       flex bison apacheHttpd mysql libxml2
2123       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2124   };
2126   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
2127     inherit
2128       stdenv fetchurl lib composableDerivation autoconf automake
2129       flex bison apacheHttpd mysql libxml2
2130       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2131   };
2133   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2135   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2136     inherit cairo fontconfig freetype libjpeg libpng openssl
2137       perl mesa zlib which;
2138     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2139       renderproto pixman libSM libxcb libXext xextproto libXmu
2140       libXt;
2141   };
2143   polyml = callPackage ../development/compilers/polyml { };
2145   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2146   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2147   python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
2148   pythonBase = python26Base;
2149   pythonFull = python26Full;
2151   pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
2153   python24 = callPackage ../development/interpreters/python/2.4 { };
2155   python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
2156     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2157     arch = if stdenv.isDarwin then darwinArchUtility else null;
2158     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2159   });
2161   python26Full = lowPrio (python26Base.override {
2162     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2163     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2164     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2165     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2166     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2167     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2168     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2169     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2170     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2171     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2172   });
2174   python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
2175     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2176     arch = if stdenv.isDarwin then darwinArchUtility else null;
2177     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2178   });
2180   python27Full = lowPrio (python27Base.override {
2181     inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
2182     inherit (pkgs.xlibs) libX11 xproto;
2183   });
2185   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2186     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2187     arch = if stdenv.isDarwin then darwinArchUtility else null;
2188     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2189   });
2191   pyrex = pyrex095;
2193   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2195   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2197   qi = callPackage ../development/compilers/qi { };
2199   racket = callPackage ../development/interpreters/racket { };
2201   ruby18 = callPackage ../development/interpreters/ruby { };
2202   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2203   ruby = ruby18;
2205   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2206     inherit pkgs stdenv;
2207   });
2209   rake = callPackage ../development/ruby-modules/rake { };
2211   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2213   rLang = callPackage ../development/interpreters/r-lang {
2214     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2215   };
2217   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2218     inherit ruby makeWrapper;
2219   };
2220   rubygems = rubygemsFun ruby;
2222   rq = callPackage ../applications/networking/cluster/rq { };
2224   scsh = callPackage ../development/interpreters/scsh { };
2226   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2227   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2229   sysPerl = callPackage ../development/interpreters/sys-perl { };
2231   tcl = callPackage ../development/interpreters/tcl { };
2233   xulrunnerWrapper = {application, launcher}:
2234     import ../development/interpreters/xulrunner/wrapper {
2235       inherit stdenv application launcher;
2236       xulrunner = firefox36Pkgs.xulrunner;
2237     };
2240   ### DEVELOPMENT / MISC
2242   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2243     gcc = gcc40;
2244   };
2246   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2248   /*
2249   toolbus = callPackage ../development/interpreters/toolbus { };
2250   */
2252   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2253     inherit getConfig;
2254   };
2256   ecj = callPackage ../development/eclipse/ecj { };
2258   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2260   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2262   jruby116 = callPackage ../development/interpreters/jruby { };
2264   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2266   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2267     gconf = gnome.GConf;
2268     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2269       libgnomeui pango;
2270   };
2272   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2274   windowssdk = (
2275     import ../development/misc/windows-sdk {
2276       inherit fetchurl stdenv cabextract;
2277     });
2280   ### DEVELOPMENT / TOOLS
2283   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2285   antlr3 = callPackage ../development/tools/parsing/antlr { };
2287   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin; name = "ant-" + jdk.name; } ;
2289   ant = apacheAnt;
2291   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2292     name = "ant-" + jdk.name;
2293   };
2295   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2296     jdk = j2sdk14x;
2297     name = "ant-" + j2sdk14x.name;
2298   };
2300   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2301     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2302   };
2304   autobuild = callPackage ../development/tools/misc/autobuild { };
2306   autoconf = callPackage ../development/tools/misc/autoconf { };
2308   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2310   automake = automake111x;
2312   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2314   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2316   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2318   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
2320   avrdude = callPackage ../development/tools/misc/avrdude { };
2322   binutils = callPackage ../development/tools/misc/binutils {
2323     inherit noSysDirs;
2324   };
2326   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2327       inherit stdenv fetchurl;
2328       noSysDirs = true;
2329       cross = assert crossSystem != null; crossSystem;
2330   });
2332   bison = bison23;
2334   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2336   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2338   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2340   buildbot = callPackage ../development/tools/build-managers/buildbot {
2341     inherit (pythonPackages) twisted;
2342   };
2344   byacc = callPackage ../development/tools/parsing/byacc { };
2346   camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2348   camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2349     transitional = true;
2350   };
2352   ccache = callPackage ../development/tools/misc/ccache { };
2354   ctags = callPackage ../development/tools/misc/ctags { };
2356   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2357     inherit pkgs ctags writeScriptBin;
2358   };
2360   cmake = callPackage ../development/tools/build-managers/cmake { };
2362   cmakeCurses = cmake.override { useNcurses = true; };
2364   cmakeWithGui = cmakeCurses.override { useQt4 = true; };
2366   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2368   cppi = callPackage ../development/tools/misc/cppi { };
2370   cproto = callPackage ../development/tools/misc/cproto { };
2372   cflow = callPackage ../development/tools/misc/cflow { };
2374   cscope = callPackage ../development/tools/misc/cscope { };
2376   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2378   ddd = callPackage ../development/tools/misc/ddd { };
2380   distcc = callPackage ../development/tools/misc/distcc { };
2382   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2383     inherit python pil makeWrapper;
2384   };
2386   doxygen = callPackage ../development/tools/documentation/doxygen {
2387     qt = qt4;
2388   };
2390   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2392   elfutils = callPackage ../development/tools/misc/elfutils { };
2394   epm = callPackage ../development/tools/misc/epm { };
2396   emma = callPackage ../development/tools/analysis/emma { };
2398   findbugs = callPackage ../development/tools/analysis/findbugs { };
2400   pmd = callPackage ../development/tools/analysis/pmd { };
2402   jdepend = callPackage ../development/tools/analysis/jdepend { };
2404   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2406   flex = flex254a;
2408   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2410   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2412   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2414   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2415   # alphabetically, hence the low priority.
2416   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2417     inherit fetchurl stdenv yacc;
2418   });
2420   m4 = gnum4;
2422   global = callPackage ../development/tools/misc/global { };
2424   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2426   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2428   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2430   gradle = callPackage ../development/tools/build-managers/gradle { };
2432   gperf = callPackage ../development/tools/misc/gperf { };
2434   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2436   guileLint = callPackage ../development/tools/guile/guile-lint { };
2438   gwrap = callPackage ../development/tools/guile/g-wrap { };
2440   help2man = callPackage ../development/tools/misc/help2man {
2441     inherit (perlPackages) LocaleGettext;
2442   };
2444   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2445     inherit (perlPackages) XMLSimple;
2446   };
2448   indent = callPackage ../development/tools/misc/indent { };
2450   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2452   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2454   jikespg = callPackage ../development/tools/parsing/jikespg { };
2456   lcov = callPackage ../development/tools/analysis/lcov { };
2458   libtool = libtool_2;
2460   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2462   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2464   lsof = callPackage ../development/tools/misc/lsof { };
2466   ltrace = callPackage ../development/tools/misc/ltrace { };
2468   mig = callPackage ../os-specific/gnu/mig { };
2470   mk = callPackage ../development/tools/build-managers/mk { };
2472   noweb = callPackage ../development/tools/literate-programming/noweb { };
2474   omake = callPackage ../development/tools/ocaml/omake { };
2477   openocd = callPackage ../development/tools/misc/openocd { };
2479   oprofile = import ../development/tools/profiling/oprofile {
2480     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep;
2482     # Optional build inputs for the (useless) GUI.
2483     /*
2484     qt = qt3;
2485     inherit (xlibs) libX11 libXext;
2486     inherit libpng;
2487      */
2488   };
2490   patchelf = callPackage ../development/tools/misc/patchelf { };
2492   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2494   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2496   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2497      because most usage of pkgconfig as buildInput (inheritance of
2498      pre-cross nixpkgs) means using it using as buildNativeInput
2499      cross_renaming: we should make all programs use pkgconfig as
2500      buildNativeInput after the renaming.
2501      */
2502   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2504   radare = callPackage ../development/tools/analysis/radare {
2505     inherit (gnome) vte;
2506     lua = lua5;
2507     useX11 = getConfig ["radare" "useX11"] false;
2508     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2509     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2510     luaBindings = getConfig ["radare" "luaBindings"] false;
2511   };
2513   ragel = callPackage ../development/tools/parsing/ragel { };
2515   remake = callPackage ../development/tools/build-managers/remake { };
2517   # couldn't find the source yet
2518   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2519     jre = jdk;  };
2521   scons = callPackage ../development/tools/build-managers/scons { };
2523   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2525   sloccount = callPackage ../development/tools/misc/sloccount { };
2527   sparse = callPackage ../development/tools/analysis/sparse { };
2529   spin = callPackage ../development/tools/analysis/spin { };
2531   splint = callPackage ../development/tools/analysis/splint { };
2533   strace = callPackage ../development/tools/misc/strace { };
2535   swig = callPackage ../development/tools/misc/swig { };
2537   swigWithJava = swig;
2539   swftools = callPackage ../tools/video/swftools { };
2541   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2543   texinfo = callPackage ../development/tools/misc/texinfo { };
2545   texi2html = callPackage ../development/tools/misc/texi2html { };
2547   uisp = callPackage ../development/tools/misc/uisp { };
2549   gdb = callPackage ../development/tools/misc/gdb {
2550     readline = readline5;
2551   };
2553   gdbCross = callPackage ../development/tools/misc/gdb {
2554     readline = readline5;
2555     target = crossSystem;
2556   };
2558   valgrind = callPackage ../development/tools/analysis/valgrind { };
2560   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
2562   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2563     flex = flex2535;
2564     qt = qt3;
2565     inherit pkgconfig makeWrapper bison python;
2566     inherit (xlibs) libXext libX11;
2567   };
2569   yacc = bison;
2571   yodl = callPackage ../development/tools/misc/yodl { };
2574   ### DEVELOPMENT / LIBRARIES
2577   a52dec = callPackage ../development/libraries/a52dec { };
2579   aalib = callPackage ../development/libraries/aalib { };
2581   acl = callPackage ../development/libraries/acl { };
2583   adns = import ../development/libraries/adns/1.4.nix {
2584     inherit stdenv fetchurl;
2585     static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
2586   };
2588   agg = callPackage ../development/libraries/agg { };
2590   allegro = callPackage ../development/libraries/allegro {};
2592   amrnb = callPackage ../development/libraries/amrnb { };
2594   amrwb = callPackage ../development/libraries/amrwb { };
2596   apr = callPackage ../development/libraries/apr { };
2598   aprutil = callPackage ../development/libraries/apr-util {
2599     bdbSupport = true;
2600   };
2602   aspell = callPackage ../development/libraries/aspell { };
2604   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2605     inherit fetchurl stdenv aspell which;
2606   });
2608   aterm = aterm25;
2610   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2611     inherit fetchurl stdenv;
2612   });
2614   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2616   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
2618   attr = callPackage ../development/libraries/attr { };
2620   aubio = callPackage ../development/libraries/aubio { };
2622   axis = callPackage ../development/libraries/axis { };
2624   babl = callPackage ../development/libraries/babl { };
2626   beecrypt = callPackage ../development/libraries/beecrypt { };
2628   boehmgc = callPackage ../development/libraries/boehm-gc { };
2630   boolstuff = callPackage ../development/libraries/boolstuff { };
2632   boost = callPackage ../development/libraries/boost { };
2634   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2635   boostFull = appendToName "full" (boost.override {
2636     enableDebug = true;
2637     enableSingleThreaded = true;
2638     enableStatic = true;
2639   });
2641   botan = callPackage ../development/libraries/botan { };
2643   buddy = callPackage ../development/libraries/buddy { };
2645   cairo = callPackage ../development/libraries/cairo { };
2646   cairo_1_10_0 = callPackage ../development/libraries/cairo/1.10.nix {
2647     pixman = xlibs.pixman_0_20_0;
2648   };
2650   cairomm = callPackage ../development/libraries/cairomm { };
2652   scmccid = callPackage ../development/libraries/scmccid { };
2654   ccrtp = callPackage ../development/libraries/ccrtp { };
2656   cgui = callPackage ../development/libraries/cgui {};
2658   check = callPackage ../development/libraries/check { };
2660   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2661     inherit cmake freeglut mesa;
2662     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2663   };
2665   chmlib = callPackage ../development/libraries/chmlib { };
2667   cil = callPackage ../development/libraries/cil { };
2669   cilaterm = callPackage ../development/libraries/cil-aterm {
2670     stdenv = overrideInStdenv stdenv [gnumake380];
2671   };
2673   clanlib = callPackage ../development/libraries/clanlib { };
2675   clapack = callPackage ../development/libraries/clapack {
2676     stdenv = stdenv2;
2677   };
2679   classads = callPackage ../development/libraries/classads { };
2681   classpath = callPackage ../development/libraries/java/classpath {
2682     javac = gcj;
2683     jvm = gcj;
2684     gconf = gnome.GConf;
2685   };
2687   clearsilver = callPackage ../development/libraries/clearsilver { };
2689   cln = callPackage ../development/libraries/cln { };
2691   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2692   };
2694   cluceneCore = callPackage ../development/libraries/clucene-core { };
2696   clutter = callPackage ../development/libraries/clutter {
2697     inherit (gnome) glib pango gtk;
2698   };
2700   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2701     inherit (gnome) gtk;
2702   };
2704   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2706   confuse = callPackage ../development/libraries/confuse { };
2708   consolekit = callPackage ../development/libraries/consolekit { };
2710   coredumper = callPackage ../development/libraries/coredumper { };
2712   ctl = callPackage ../development/libraries/ctl { };
2714   cppunit = callPackage ../development/libraries/cppunit { };
2716   cracklib = callPackage ../development/libraries/cracklib { };
2718   cryptopp = callPackage ../development/libraries/crypto++ { };
2720   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2722   db4 = db45;
2724   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2726   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2728   dbus = callPackage ../development/libraries/dbus {
2729     useX11 = true; # !!! `false' doesn't build
2730   };
2732   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2733     inherit fetchurl stdenv pkgconfig gettext dbus expat glib libiconv;
2734   };
2736   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2738   dclib = callPackage ../development/libraries/dclib { };
2740   directfb = callPackage ../development/libraries/directfb { };
2742   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2743     stdenv = overrideGCC stdenv gcc45;
2744   };
2746   enchant = callPackage ../development/libraries/enchant {
2747     inherit (gnome) glib;
2748   };
2750   enet = callPackage ../development/libraries/enet { };
2752   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2754   esdl = callPackage ../development/libraries/esdl { };
2756   exiv2 = callPackage ../development/libraries/exiv2 { };
2758   expat = callPackage ../development/libraries/expat { };
2760   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2761     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2762       libpng gettext intltool;
2763     inherit (xlibs) libX11 xproto libXi inputproto
2764       libXmu libXext xextproto libXt libSM libICE;
2765   };
2767   eventlog = callPackage ../development/libraries/eventlog { };
2769   facile = callPackage ../development/libraries/facile {
2770     # Actually, we don't need this version but we need native-code compilation
2771     ocaml = ocaml_3_10_0;
2772   };
2774   faac = callPackage ../development/libraries/faac { };
2776   faad2 = callPackage ../development/libraries/faad2 { };
2778   farsight2 = callPackage ../development/libraries/farsight2 {
2779     inherit (gnome) glib;
2780     inherit (gst_all) gstreamer gstPluginsBase;
2781   };
2783   fcgi = callPackage ../development/libraries/fcgi { };
2785   ffmpeg = callPackage ../development/libraries/ffmpeg { };
2787   fftw = callPackage ../development/libraries/fftw {
2788     singlePrecision = false;
2789   };
2791   fftwSinglePrec = callPackage ../development/libraries/fftw {
2792     singlePrecision = true;
2793   };
2795   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2797   fltk20 = callPackage ../development/libraries/fltk { };
2799   fmod = callPackage ../development/libraries/fmod { };
2801   freeimage = callPackage ../development/libraries/freeimage { };
2803   freetts = callPackage ../development/libraries/freetts { };
2805   cfitsio = callPackage ../development/libraries/cfitsio { };
2807   fontconfig = callPackage ../development/libraries/fontconfig { };
2809   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2810     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2811       inherit runCommand libxslt fontconfig fontDirectories;
2812     };
2814   freealut = callPackage ../development/libraries/freealut { };
2816   freeglut = callPackage ../development/libraries/freeglut { };
2818   freetype = callPackage ../development/libraries/freetype { };
2820   fribidi = callPackage ../development/libraries/fribidi { };
2822   fam = gamin;
2824   gamin = callPackage ../development/libraries/gamin { };
2826   gav = callPackage ../games/gav {
2827     stdenv = overrideGCC stdenv gcc41;
2828   };
2830   gdbm = callPackage ../development/libraries/gdbm { };
2832   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2833     inherit (gtkLibs1x) gtk;
2834   };
2836   gegl = callPackage ../development/libraries/gegl {
2837     #  avocodec avformat librsvg
2838     inherit (gtkLibs) pango glib gtk;
2839   };
2841   geoip = builderDefsPackage ../development/libraries/geoip {
2842     inherit zlib;
2843   };
2845   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2847   geos = callPackage ../development/libraries/geos { };
2849   gettext = gettext_0_17;
2851   gettext_0_17 = callPackage ../development/libraries/gettext { };
2852   gettext_0_18 = callPackage ../development/libraries/gettext/0.18.nix { };
2854   gd = callPackage ../development/libraries/gd { };
2856   gdal = callPackage ../development/libraries/gdal { };
2858   giblib = callPackage ../development/libraries/giblib { };
2860   glew = callPackage ../development/libraries/glew { };
2862   glfw = callPackage ../development/libraries/glfw { };
2864   glibc = glibc211;
2866   glibc25 = callPackage ../development/libraries/glibc-2.5 {
2867     kernelHeaders = linuxHeaders;
2868     installLocales = false;
2869   };
2871   glibc27 = callPackage ../development/libraries/glibc-2.7 {
2872     kernelHeaders = linuxHeaders;
2873     #installLocales = false;
2874   };
2876   glibc29 = callPackage ../development/libraries/glibc-2.9 {
2877     kernelHeaders = linuxHeaders;
2878     installLocales = getPkgConfig "glibc" "locales" false;
2879   };
2881   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
2882     inherit stdenv fetchurl;
2883     gccCross = gccCrossStageStatic;
2884     kernelHeaders = linuxHeadersCross;
2885     installLocales = getPkgConfig "glibc" "locales" false;
2886   });
2888   glibc211 = callPackage ../development/libraries/glibc-2.11 {
2889     kernelHeaders = linuxHeaders;
2890     installLocales = getPkgConfig "glibc" "locales" false;
2891     machHeaders = null;
2892     hurdHeaders = null;
2893     gccCross = null;
2894   };
2896   glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11)
2897     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
2898      in ({
2899        inherit stdenv fetchurl;
2900        gccCross = gccCrossStageStatic;
2901        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
2902        installLocales = getPkgConfig "glibc" "locales" false;
2903      }
2905      //
2907      (if crossGNU
2908       then { inherit machHeaders hurdHeaders mig fetchgit; }
2909       else { }))));
2911   glibcCross = glibc211Cross;
2913   # We can choose:
2914   libcCrossChooser = name : if (name == "glibc") then glibcCross
2915     else if (name == "uclibc") then uclibcCross
2916     else if (name == "msvcrt") then windows.mingw_headers3
2917     else throw "Unknown libc";
2919   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
2921   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
2923   libdwg = callPackage ../development/libraries/libdwg { };
2925   libgadu = callPackage ../development/libraries/libgadu { };
2927   eglibc = callPackage ../development/libraries/eglibc {
2928     kernelHeaders = linuxHeaders;
2929     installLocales = getPkgConfig "glibc" "locales" false;
2930   };
2932   glibcLocales = callPackage ../development/libraries/glibc-2.11/locales.nix { };
2934   glibcInfo = callPackage ../development/libraries/glibc-2.11/info.nix { };
2936   glibc_multi =
2937       runCommand "${glibc.name}-multi"
2938         { glibc64 = glibc;
2939           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
2940         }
2941         ''
2942           ensureDir $out
2943           ln -s $glibc64/* $out/
2945           rm $out/lib $out/lib64
2946           ensureDir $out/lib
2947           ln -s $glibc64/lib/* $out/lib
2948           ln -s $glibc32/lib $out/lib/32
2949           ln -s lib $out/lib64
2951           rm $out/include
2952           cp -rs $glibc32/include $out
2953           chmod -R u+w $out/include
2954           cp -rsf $glibc64/include $out
2955         '' # */
2956         ;
2958   glpk = callPackage ../development/libraries/glpk { };
2960   gmime = callPackage ../development/libraries/gmime { };
2962   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
2964   gmm = callPackage ../development/libraries/gmm { };
2966   gmp =
2967     if stdenv.system == "i686-darwin" then
2968       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
2969       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
2970         inherit stdenv fetchurl m4;
2971         cxx = false;
2972       }
2973     else
2974       makeOverridable (import ../development/libraries/gmp) {
2975         inherit stdenv fetchurl m4;
2976         cxx = false;
2977       };
2979   gmpxx = gmp.override { cxx = true; };
2981   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
2983   goffice = callPackage ../development/libraries/goffice {
2984     inherit (gnome) glib gtk libglade libgnomeui pango;
2985     gconf = gnome.GConf;
2986     libart = gnome.libart_lgpl;
2987   };
2989   goocanvas = callPackage ../development/libraries/goocanvas {
2990     inherit (gnome) gtk glib;
2991   };
2993   #GMP ex-satellite, so better keep it near gmp
2994   mpfr = callPackage ../development/libraries/mpfr { };
2996   gst_all = recurseIntoAttrs
2997     (let callPackage = newScope pkgs.gst_all; in
2998      import ../development/libraries/gstreamer { inherit callPackage pkgs; });
3000   gnet = callPackage ../development/libraries/gnet { };
3002   gnutls = callPackage ../development/libraries/gnutls {
3003     guileBindings = getConfig ["gnutls" "guile"] true;
3004   };
3006   gpgme = callPackage ../development/libraries/gpgme { };
3008   grantlee = callPackage ../development/libraries/grantlee { };
3010   gsasl = callPackage ../development/libraries/gsasl { };
3012   gsl = callPackage ../development/libraries/gsl { };
3014   gsoap = callPackage ../development/libraries/gsoap { };
3016   gss = callPackage ../development/libraries/gss { };
3018   gtkimageview = callPackage ../development/libraries/gtkimageview {
3019     inherit (gnome) gtk;
3020   };
3022   gtkLibs = gtkLibs220;
3024   glib = gtkLibs.glib;
3025   gtk = gtkLibs.gtk;
3026   pango = gtkLibs.pango;
3028   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
3030     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
3032     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
3034   });
3036   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
3038     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
3040     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
3042     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
3044     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
3046     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
3048     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
3050     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
3052   });
3054   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
3056     glib = callPackage ../development/libraries/glib/2.22.x.nix { };
3058     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3060     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
3062     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
3064     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3066     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
3068     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3070   });
3072   gtkLibs220 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs220; in rec {
3074     glib = callPackage ../development/libraries/glib/2.24.x.nix { };
3076     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3078     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3080     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3082     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3084     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3086     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3088   });
3090   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3091     inherit (gnome) gtk;
3092     gtksharp = gtksharp2;
3093   };
3095   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3096     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3097               libgnomecanvas libgnomeui libgnomeprint
3098               libgnomeprintui GConf;
3099   };
3101   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3102     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3103               libgnomecanvas libgnomeui libgnomeprint
3104               libgnomeprintui GConf gnomepanel;
3105   };
3107   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3108     inherit (gnome) gtksourceview;
3109     gtksharp = gtksharp2;
3110   };
3112   gtkspell = callPackage ../development/libraries/gtkspell { };
3114   # TODO : Add MIT Kerberos and let admin choose.
3115   kerberos = heimdal;
3117   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3119   hspell = callPackage ../development/libraries/hspell { };
3121   hspellDicts = callPackage ../development/libraries/hspell/dicts.nix { };
3123   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3125   hunspell = callPackage ../development/libraries/hunspell { };
3127   hwloc = callPackage ../development/libraries/hwloc { };
3129   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3131   icedtea = callPackage ../development/libraries/java/icedtea {
3132     ant = apacheAntGcj;
3133     xerces = xercesJava;
3134     xulrunner = icecatXulrunner3;
3135     inherit (xlibs) libX11 libXp libXtst libXinerama libXt
3136       libXrender xproto;
3137   };
3139   icu = callPackage ../development/libraries/icu { };
3141   id3lib = callPackage ../development/libraries/id3lib { };
3143   ilbc = callPackage ../development/libraries/ilbc { };
3145   ilmbase = callPackage ../development/libraries/ilmbase { };
3147   imlib = callPackage ../development/libraries/imlib { };
3149   imlib2 = callPackage ../development/libraries/imlib2 { };
3151   incrtcl = callPackage ../development/libraries/incrtcl { };
3153   indilib = callPackage ../development/libraries/indilib { };
3155   iniparser = callPackage ../development/libraries/iniparser { };
3157   intltool = gnome.intltool;
3159   isocodes = callPackage ../development/libraries/iso-codes { };
3161   itk = callPackage ../development/libraries/itk { };
3163   jamp = builderDefsPackage ../games/jamp {
3164     inherit mesa SDL SDL_image SDL_mixer;
3165   };
3167   jasper = callPackage ../development/libraries/jasper { };
3169   jama = callPackage ../development/libraries/jama { };
3171   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3173   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3175   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3177   json_glib = callPackage ../development/libraries/json-glib { };
3179   judy = callPackage ../development/libraries/judy { };
3181   kdevplatform = newScope pkgs.kde4 ../development/libraries/kdevplatform { };
3183   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3185   lablgtk = callPackage ../development/libraries/lablgtk {
3186     inherit (gnome) libgnomecanvas;
3187   };
3189   lcms = lcms1;
3191   lcms1 = callPackage ../development/libraries/lcms { };
3193   lcms2 = callPackage ../development/libraries/lcms2 { };
3195   lensfun = callPackage ../development/libraries/lensfun {
3196     inherit (gnome) glib;
3197   };
3199   lesstif = callPackage ../development/libraries/lesstif { };
3201   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3203   levmar = callPackage ../development/libraries/levmar { };
3205   lib3ds = callPackage ../development/libraries/lib3ds { };
3207   libaal = callPackage ../development/libraries/libaal { };
3209   libao = callPackage ../development/libraries/libao {
3210     usePulseAudio = getConfig [ "pulseaudio" ] true;
3211   };
3213   libarchive = callPackage ../development/libraries/libarchive { };
3215   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3217   libassuan = callPackage ../development/libraries/libassuan { };
3219   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3221   libcaca = callPackage ../development/libraries/libcaca { };
3223   libcanberra = callPackage ../development/libraries/libcanberra {
3224     gstreamer = gst_all.gstreamer;
3225   };
3227   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3229   libcddb = callPackage ../development/libraries/libcddb { };
3231   libcdio = callPackage ../development/libraries/libcdio { };
3233   libchamplain = callPackage ../development/libraries/libchamplain {
3234     inherit (gnome) gtk glib libsoup;
3235   };
3237   libcm = callPackage ../development/libraries/libcm { };
3239   libctemplate = callPackage ../development/libraries/libctemplate { };
3241   libcue = callPackage ../development/libraries/libcue { };
3243   libdaemon = callPackage ../development/libraries/libdaemon { };
3245   libdbi = callPackage ../development/libraries/libdbi { };
3247   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3248     mysql = null;
3249     sqlite = null;
3250   };
3252   libdbiDrivers = libdbiDriversBase.override {
3253     inherit sqlite mysql;
3254   };
3256   libdevil = callPackage ../development/libraries/libdevil { };
3258   libdiscid = callPackage ../development/libraries/libdiscid { };
3260   libdv = callPackage ../development/libraries/libdv { };
3262   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3263     inherit fetchurl stdenv pkgconfig;
3264     inherit (xorg) libpthreadstubs;
3265   });
3267   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3269   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3271   libdvdread = callPackage ../development/libraries/libdvdread { };
3273   libedit = callPackage ../development/libraries/libedit { };
3275   libelf = callPackage ../development/libraries/libelf { };
3277   liblo = callPackage ../development/libraries/liblo { };
3279   libev = builderDefsPackage ../development/libraries/libev {
3280   };
3282   libevent = callPackage ../development/libraries/libevent { };
3284   libewf = callPackage ../development/libraries/libewf { };
3286   libexif = callPackage ../development/libraries/libexif { };
3288   libextractor = callPackage ../development/libraries/libextractor {
3289     inherit (gnome) gtk;
3290     libmpeg2 = mpeg2dec;
3291   };
3293   libfixposix = callPackage ../development/libraries/libfixposix {};
3295   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3296     inherit fetchcvs;
3297   };
3299   libffi = callPackage ../development/libraries/libffi { };
3301   libftdi = callPackage ../development/libraries/libftdi { };
3303   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3305   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3307   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3309   libgpod = callPackage ../development/libraries/libgpod {
3310     inherit (pkgs.pythonPackages) mutagen;
3311   };
3313   libharu = callPackage ../development/libraries/libharu { };
3315   libical = callPackage ../development/libraries/libical { };
3317   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
3319   libiodbc = callPackage ../development/libraries/libiodbc {
3320     useGTK = getPkgConfig "libiodbc" "gtk" false;
3321   };
3323   libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
3325   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
3327   liblastfm = callPackage ../development/libraries/liblastfm { };
3329   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3330     inherit (gnome) glib;
3331   };
3333   libmhash = callPackage ../development/libraries/libmhash {};
3335   libmtp = callPackage ../development/libraries/libmtp { };
3337   libnice = callPackage ../development/libraries/libnice {
3338     inherit (gnome) glib;
3339   };
3341   libplist = callPackage ../development/libraries/libplist { stdenv = stdenv2; };
3343   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3345   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3347   libspectre = callPackage ../development/libraries/libspectre {
3348     ghostscript = ghostscriptX;
3349   };
3351   libgsf = callPackage ../development/libraries/libgsf {
3352     inherit (gnome) glib gnomevfs libbonobo;
3353   };
3355   libiconv = callPackage ../development/libraries/libiconv { };
3357   libid3tag = callPackage ../development/libraries/libid3tag { };
3359   libidn = callPackage ../development/libraries/libidn { };
3361   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3363   libinfinity = callPackage ../development/libraries/libinfinity {
3364     inherit (gnome) gtkdoc;
3365   };
3367   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3369   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3371   libjpeg = callPackage ../development/libraries/libjpeg { };
3373   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3375   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3376     libtool = libtool_1_5;
3377   };
3379   libksba = callPackage ../development/libraries/libksba { };
3381   libmad = callPackage ../development/libraries/libmad { };
3383   libmatchbox = callPackage ../development/libraries/libmatchbox {
3384     inherit (gtkLibs) pango;
3385   };
3387   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3389   libmcs = callPackage ../development/libraries/libmcs { };
3391   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3393   libmikmod = callPackage ../development/libraries/libmikmod { };
3395   libmilter = callPackage ../development/libraries/libmilter { };
3397   libmowgli = callPackage ../development/libraries/libmowgli { };
3399   libmng = callPackage ../development/libraries/libmng { };
3401   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3403   libmsn = callPackage ../development/libraries/libmsn { };
3405   libmspack = callPackage ../development/libraries/libmspack { };
3407   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3409   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3411   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3413   libmusicbrainz = libmusicbrainz3;
3415   libnih = callPackage ../development/libraries/libnih { };
3417   libnova = callPackage ../development/libraries/libnova { };
3419   libofa = callPackage ../development/libraries/libofa { };
3421   libofx = callPackage ../development/libraries/libofx { };
3423   libogg = callPackage ../development/libraries/libogg { };
3425   liboil = callPackage ../development/libraries/liboil { };
3427   liboop = callPackage ../development/libraries/liboop { };
3429   libosip = callPackage ../development/libraries/osip {};
3431   libotr = callPackage ../development/libraries/libotr { };
3433   libp11 = callPackage ../development/libraries/libp11 { };
3435   libpcap = callPackage ../development/libraries/libpcap { };
3437   libpng = callPackage ../development/libraries/libpng { };
3438   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
3440   libproxy = callPackage ../development/libraries/libproxy { };
3442   libpseudo = callPackage ../development/libraries/libpseudo { };
3444   libqalculate = callPackage ../development/libraries/libqalculate { };
3446   librsync = callPackage ../development/libraries/librsync { };
3448   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3450   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
3452   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3454   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3455   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3457   libsndfile = callPackage ../development/libraries/libsndfile { };
3459   libssh = callPackage ../development/libraries/libssh { };
3461   libssh2 = callPackage ../development/libraries/libssh2 { };
3463   libstartup_notification = callPackage ../development/libraries/startup-notification { };
3465   libtasn1 = callPackage ../development/libraries/libtasn1 { };
3467   libtheora = callPackage ../development/libraries/libtheora { };
3469   libtiff = callPackage ../development/libraries/libtiff { };
3471   libtommath = callPackage ../development/libraries/libtommath { };
3473   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
3475   libtunepimp = callPackage ../development/libraries/libtunepimp { };
3477   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3479   libunistring = callPackage ../development/libraries/libunistring { };
3481   libupnp = callPackage ../development/libraries/pupnp { };
3483   giflib = callPackage ../development/libraries/giflib { };
3485   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3487   libusb = callPackage ../development/libraries/libusb { };
3489   libusb1 = callPackage ../development/libraries/libusb1 { };
3491   libunwind = callPackage ../development/libraries/libunwind { };
3493   libv4l = callPackage ../development/libraries/libv4l { };
3495   libvirt = callPackage ../development/libraries/libvirt { };
3497   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3498     inherit libtool libjpeg openssl zlib;
3499     inherit (xlibs) xproto libX11 damageproto libXdamage
3500       libXext xextproto fixesproto libXfixes xineramaproto
3501       libXinerama libXrandr randrproto libXtst;
3502   };
3504   libviper = callPackage ../development/libraries/libviper { };
3506   libvpx = callPackage ../development/libraries/libvpx { };
3508   libvterm = callPackage ../development/libraries/libvterm { };
3510   libvorbis = callPackage ../development/libraries/libvorbis { };
3512   libwmf = callPackage ../development/libraries/libwmf { };
3514   libwpd = callPackage ../development/libraries/libwpd {
3515     inherit (gnome) glib;
3516   };
3518   libwpg = callPackage ../development/libraries/libwpg { };
3520   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3522   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3524   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3526   libxklavier = callPackage ../development/libraries/libxklavier { };
3528   libxmi = callPackage ../development/libraries/libxmi { };
3530   libxml2 = callPackage ../development/libraries/libxml2 {
3531     pythonSupport = false;
3532   };
3534   libxml2Python = libxml2.override {
3535     pythonSupport = true;
3536   };
3538   libxmlxx = callPackage ../development/libraries/libxmlxx {
3539     inherit (gtkLibs) glibmm;
3540   };
3542   libxslt = callPackage ../development/libraries/libxslt { };
3544   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3545     inherit fetchurl stdenv;
3546   });
3548   libyaml = callPackage ../development/libraries/libyaml { };
3550   libzip = callPackage ../development/libraries/libzip { };
3552   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3554   lightning = callPackage ../development/libraries/lightning { };
3556   liquidwar = builderDefsPackage ../games/liquidwar {
3557     inherit (xlibs) xproto libX11 libXrender;
3558     inherit gmp guile mesa libjpeg libpng
3559       expat gettext perl
3560       SDL SDL_image SDL_mixer SDL_ttf
3561       curl sqlite
3562       libogg libvorbis
3563       ;
3564   };
3566   log4cxx = callPackage ../development/libraries/log4cxx { };
3568   loudmouth = callPackage ../development/libraries/loudmouth { };
3570   lzo = callPackage ../development/libraries/lzo { };
3572   # failed to build
3573   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3575   mesaSupported =
3576     system == "i686-linux" ||
3577     system == "x86_64-linux" ||
3578     system == "x86_64-darwin" ||
3579     system == "i686-darwin";
3581   mesa = callPackage ../development/libraries/mesa {
3582     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3583   };
3585   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
3586     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
3587     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
3588     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
3589     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
3590     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
3591     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
3592     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
3593     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
3594     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
3595     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
3596     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
3597     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
3598     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
3599     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
3600   });
3602   ming = callPackage ../development/libraries/ming { };
3604   mlt = callPackage ../development/libraries/mlt {
3605     qt = qt4;
3606   };
3608   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3610   msilbc = callPackage ../development/libraries/msilbc { };
3612   mp4v2 = callPackage ../development/libraries/mp4v2 { };
3614   mpc = callPackage ../development/libraries/mpc { };
3616   mpich2 = callPackage ../development/libraries/mpich2 { };
3618   muparser = callPackage ../development/libraries/muparser { };
3620   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3621     inherit fetchurl stdenv;
3622     # The "! (stdenv ? cross)" is for the cross-built arm ncurses, which
3623     # don't build for me in unicode.
3624     unicode = (system != "i686-cygwin" && crossSystem == null);
3625   };
3627   neon = neon029;
3629   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3630     compressionSupport = true;
3631     sslSupport = true;
3632   };
3634   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3635     compressionSupport = true;
3636     sslSupport = true;
3637   };
3639   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3640     compressionSupport = true;
3641     sslSupport = true;
3642   };
3644   nethack = builderDefsPackage (import ../games/nethack) {
3645     inherit ncurses flex bison;
3646   };
3648   nettle = callPackage ../development/libraries/nettle { };
3650   nspr = callPackage ../development/libraries/nspr { };
3652   nss = callPackage ../development/libraries/nss { };
3654   nssTools = callPackage ../development/libraries/nss {
3655     includeTools = true;
3656   };
3658   ode = builderDefsPackage (import ../development/libraries/ode) {
3659   };
3661   openal = callPackage ../development/libraries/openal { };
3663   # added because I hope that it has been easier to compile on x86 (for blender)
3664   openalSoft = callPackage ../development/libraries/openal-soft { };
3666   openbabel = callPackage ../development/libraries/openbabel { };
3668   opencascade = callPackage ../development/libraries/opencascade { };
3670   openct = callPackage ../development/libraries/openct { };
3672   opencv = callPackage ../development/libraries/opencv {
3673     inherit (gst_all) gstreamer;
3674     stdenv = stdenv2;
3675   };
3677   # this ctl version is needed by openexr_viewers
3678   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3680   openexr = callPackage ../development/libraries/openexr { };
3682   openldap = callPackage ../development/libraries/openldap { };
3684   openlierox = builderDefsPackage ../games/openlierox {
3685     inherit (xlibs) libX11 xproto;
3686     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3687       pkgconfig;
3688   };
3690   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3691     opensc = opensc_0_11_7;
3692   };
3694   opal = callPackage ../development/libraries/opal {};
3696   openjpeg = callPackage ../development/libraries/openjpeg { };
3698   openssl = callPackage ../development/libraries/openssl {
3699     fetchurl = fetchurlBoot;
3700   };
3702   ortp = callPackage ../development/libraries/ortp { };
3704   pangoxsl = callPackage ../development/libraries/pangoxsl {
3705     inherit (gtkLibs) glib pango;
3706   };
3708   pcre = callPackage ../development/libraries/pcre {
3709     unicodeSupport = getConfig ["pcre" "unicode"] false;
3710     cplusplusSupport = !stdenv ? isDietLibC;
3711   };
3713   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
3715   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
3717   physfs = callPackage ../development/libraries/physfs { };
3719   plib = callPackage ../development/libraries/plib { };
3721   podofo = callPackage ../development/libraries/podofo {
3722     stdenv = stdenv2;
3723   };
3725   polkit = callPackage ../development/libraries/polkit { };
3727   policykit = callPackage ../development/libraries/policykit { };
3729   poppler = callPackage ../development/libraries/poppler {
3730     qt4Support = false;
3731   };
3733   popplerQt4 = poppler.override {
3734     inherit qt4;
3735     qt4Support = true;
3736   };
3738   popt = callPackage ../development/libraries/popt { };
3740   portaudio = callPackage ../development/libraries/portaudio { };
3742   proj = callPackage ../development/libraries/proj { };
3744   postgis = callPackage ../development/libraries/postgis { };
3746   protobuf = callPackage ../development/libraries/protobuf { };
3748   pth = callPackage ../development/libraries/pth { };
3750   ptlib = callPackage ../development/libraries/ptlib {};
3752   qjson = callPackage ../development/libraries/qjson { };
3754   qt3 = callPackage ../development/libraries/qt-3 {
3755     openglSupport = mesaSupported;
3756     mysqlSupport = getConfig ["qt" "mysql"] false;
3757   };
3759   qt3mysql = qt3.override {
3760     mysqlSupport = true;
3761   };
3763   qt4 = pkgs.kde4.qt4;
3765   qt45 = callPackage ../development/libraries/qt-4.x/4.5 {
3766     inherit (gnome) glib;
3767   };
3769   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3770     inherit (gnome) glib;
3771   };
3773   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3774     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
3775     inherit (pkgs.gnome) glib;
3776   };
3778   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
3780   quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
3782   quasselDaemon = appendToName "daemon" (quassel.override {
3783     monolithic = false;
3784     daemon = true;
3785   });
3787   quasselClient = appendToName "client" (quassel.override {
3788     monolithic = false;
3789     client = true;
3790   });
3792   quesoglc = callPackage ../development/libraries/quesoglc { };
3794   readline = readline6;
3796   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3798   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3800   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3802   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3804   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3806   librdf = callPackage ../development/libraries/librdf { };
3808   qrupdate = callPackage ../development/libraries/qrupdate { };
3810   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3811     bdb = db4;
3812     postgresql = null;
3813   };
3815   rhino = callPackage ../development/libraries/java/rhino {
3816     ant = apacheAntGcj;
3817     javac = gcj;
3818     jvm = gcj;
3819   };
3821   rte = callPackage ../development/libraries/rte { };
3823   rubberband = callPackage ../development/libraries/rubberband {
3824     fftw = fftwSinglePrec;
3825     inherit (vamp) vampSDK;
3826   };
3828   schroedinger = callPackage ../development/libraries/schroedinger { };
3830   SDL = callPackage ../development/libraries/SDL {
3831     openglSupport = mesaSupported;
3832     alsaSupport = true;
3833     pulseaudioSupport = false; # better go through ALSA
3834   };
3836   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3838   SDL_image = callPackage ../development/libraries/SDL_image { };
3840   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3842   SDL_net = callPackage ../development/libraries/SDL_net { };
3844   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3846   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3848   slang = callPackage ../development/libraries/slang { };
3850   slibGuile = callPackage ../development/libraries/slib {
3851     scheme = guile;
3852   };
3854   snack = callPackage ../development/libraries/snack {
3855         # optional
3856   };
3858   speex = callPackage ../development/libraries/speex { };
3860   srtp = callPackage ../development/libraries/srtp {};
3862   sqlite = callPackage ../development/libraries/sqlite {
3863     readline = null;
3864     ncurses = null;
3865   };
3867   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
3868     readline = null;
3869     ncurses = null;
3870   };
3872   sqliteInteractive = appendToName "interactive" (sqlite.override {
3873     inherit readline ncurses;
3874   });
3876   stlport = callPackage ../development/libraries/stlport { };
3878   suitesparse = callPackage ../development/libraries/suitesparse { };
3880   sword = callPackage ../development/libraries/sword { };
3882   szip = callPackage ../development/libraries/szip { };
3884   t1lib = callPackage ../development/libraries/t1lib { };
3886   taglib = callPackage ../development/libraries/taglib { };
3888   taglib17 = callPackage ../development/libraries/taglib/1.7.nix { };
3890   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3892   talloc = callPackage ../development/libraries/talloc { };
3894 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3895 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3896 ##  };
3898   tdb = callPackage ../development/libraries/tdb { };
3900   tecla = callPackage ../development/libraries/tecla { };
3902   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3904   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3906   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3908   tk = callPackage ../development/libraries/tk { };
3910   tnt = callPackage ../development/libraries/tnt { };
3912   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
3914   unicap = callPackage ../development/libraries/unicap {};
3916   unixODBC = callPackage ../development/libraries/unixODBC { };
3918   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3919     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3920     inherit postgresql mysql sqlite;
3921   });
3923   urt = callPackage ../development/libraries/urt { };
3925   vamp = callPackage ../development/libraries/audio/vamp { };
3927   vigra = callPackage ../development/libraries/vigra { };
3929   vtk = callPackage ../development/libraries/vtk { };
3931   vxl = callPackage ../development/libraries/vxl { };
3933   webkit = ((builderDefsPackage ../development/libraries/webkit {
3934     inherit (gnome28) gtkdoc libsoup;
3935     inherit (gtkLibs) gtk atk pango glib;
3936     inherit freetype fontconfig gettext gperf curl
3937       libjpeg libtiff libpng libxml2 libxslt sqlite
3938       icu cairo perl intltool automake libtool
3939       pkgconfig autoconf bison libproxy enchant
3940       python ruby which;
3941     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3942       gstPluginsGood;
3943     flex = flex2535;
3944     inherit (xlibs) libXt renderproto libXrender;
3945   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
3947   wvstreams = callPackage ../development/libraries/wvstreams { };
3949   wxGTK = wxGTK28;
3951   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
3952     inherit (gtkLibs216) gtk;
3953   };
3955   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
3956     inherit (gtkLibs) gtk;
3957   };
3959   wtk = callPackage ../development/libraries/wtk { };
3961   x264 = callPackage ../development/libraries/x264 { };
3963   xapian = callPackage ../development/libraries/xapian { };
3965   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
3966   };
3968   Xaw3d = callPackage ../development/libraries/Xaw3d {
3969     flex = flex2533;
3970   };
3972   xbase = callPackage ../development/libraries/xbase { };
3974   xineLib = callPackage ../development/libraries/xine-lib { };
3976   xautolock = callPackage ../misc/screensavers/xautolock { };
3978   xercesJava = callPackage ../development/libraries/java/xerces {
3979     ant   = apacheAntGcj;  # for bootstrap purposes
3980     javac = gcj;
3981     jvm   = gcj;
3982   };
3984   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
3985     packages = [
3986       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
3987       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
3988       xlibs.xextproto
3989     ];
3990   };
3992   xvidcore = callPackage ../development/libraries/xvidcore { };
3994   zangband = builderDefsPackage (import ../games/zangband) {
3995     inherit ncurses flex bison autoconf automake m4 coreutils;
3996   };
3998   zlib = callPackage ../development/libraries/zlib {
3999     fetchurl = fetchurlBoot;
4000   };
4002   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
4003     inherit fetchurl stdenv;
4004     static = true;
4005   }));
4007   zvbi = callPackage ../development/libraries/zvbi {
4008     pngSupport = true;
4009   };
4012   ### DEVELOPMENT / LIBRARIES / JAVA
4015   atermjava = callPackage ../development/libraries/java/aterm {
4016     stdenv = overrideInStdenv stdenv [gnumake380];
4018   };
4020   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
4022   fastjar = callPackage ../development/tools/java/fastjar { };
4024   httpunit = callPackage ../development/libraries/java/httpunit { };
4026   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
4028   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
4030   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
4031     regexp = jakartaregexp;
4032   };
4034   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
4036   javaCup = callPackage ../development/libraries/java/cup { };
4038   javasvn = callPackage ../development/libraries/java/javasvn { };
4040   jclasslib = callPackage ../development/tools/java/jclasslib {
4041     ant = apacheAnt14;
4042   };
4044   jdom = callPackage ../development/libraries/java/jdom { };
4046   jflex = callPackage ../development/libraries/java/jflex { };
4048   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
4049     stdenv = overrideInStdenv stdenv [gnumake380];
4050   };
4052   junit = callPackage ../development/libraries/java/junit { };
4054   lucene = callPackage ../development/libraries/java/lucene { };
4056   mockobjects = callPackage ../development/libraries/java/mockobjects { };
4058   saxon = callPackage ../development/libraries/java/saxon { };
4060   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
4062   sharedobjects = callPackage ../development/libraries/java/shared-objects {
4063     stdenv = overrideInStdenv stdenv [gnumake380];
4064   };
4066   smack = callPackage ../development/libraries/java/smack { };
4068   swt = callPackage ../development/libraries/java/swt { };
4070   v8 = callPackage ../development/libraries/v8 { };
4072   xalanj = xalanJava;
4073   xalanJava = callPackage ../development/libraries/java/xalanj {
4074     ant    = apacheAntGcj;  # for bootstrap purposes
4075     javac  = gcj;
4076     jvm    = gcj;
4077     xerces = xercesJava;  };
4079   zziplib = callPackage ../development/libraries/zziplib { };
4082   ### DEVELOPMENT / PERL MODULES
4084   buildPerlPackage = import ../development/perl-modules/generic perl;
4086   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
4087     inherit pkgs;
4088   });
4090   perlXMLParser = perlPackages.XMLParser;
4092   ack = perlPackages.ack;
4094   perlcritic = perlPackages.PerlCritic;
4097   ### DEVELOPMENT / PYTHON MODULES
4099   buildPythonPackage = import ../development/python-modules/generic {
4100     inherit python setuptools makeWrapper lib;
4101   };
4103   buildPython26Package = import ../development/python-modules/generic {
4104     inherit makeWrapper lib;
4105     python = python26;
4106     setuptools = setuptools.override { python = python26; };
4107   };
4109   buildPython27Package = import ../development/python-modules/generic {
4110     inherit makeWrapper lib;
4111     python = python27;
4112     setuptools = setuptools.override { python = python27; doCheck = false; };
4113   };
4115   pythonPackages = python26Packages;
4117   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
4118     inherit pkgs;
4119     python = python26;
4120     buildPythonPackage = buildPython26Package;
4121   });
4123   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
4124     inherit pkgs;
4125     python = python27;
4126     buildPythonPackage = buildPython27Package;
4127   });
4129   foursuite = callPackage ../development/python-modules/4suite { };
4131   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
4133   numeric = callPackage ../development/python-modules/numeric { };
4135   pil = callPackage ../development/python-modules/pil { };
4137   psyco = callPackage ../development/python-modules/psyco { };
4139   pycairo = callPackage ../development/python-modules/pycairo { };
4141   pycrypto = callPackage ../development/python-modules/pycrypto { };
4143   pycups = callPackage ../development/python-modules/pycups { };
4145   pygame = callPackage ../development/python-modules/pygame { };
4147   pygobject = callPackage ../development/python-modules/pygobject { };
4149   pygtk = callPackage ../development/python-modules/pygtk { };
4151   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4152     inherit (gnome) libglade;
4153   };
4155   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4156     inherit python openssl;
4157   };
4159   rhpl = callPackage ../development/python-modules/rhpl { };
4161   sip = callPackage ../development/python-modules/python-sip { };
4163   pyqt4 = callPackage ../development/python-modules/pyqt { };
4165   pyx = callPackage ../development/python-modules/pyx { };
4167   pyxml = callPackage ../development/python-modules/pyxml { };
4169   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4170     inherit python makeWrapper;
4171   };
4173   wxPython = wxPython26;
4175   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4176     wxGTK = wxGTK26;
4177   };
4179   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4181   twisted = pythonPackages.twisted;
4183   ZopeInterface = pythonPackages.zopeInterface;
4185   zope = callPackage ../development/python-modules/zope {
4186     python = python24;
4187   };
4189   ### SERVERS
4191   rdf4store = callPackage ../servers/http/4store { };
4193   apacheHttpd = callPackage ../servers/http/apache-httpd {
4194     sslSupport = true;
4195   };
4197   sabnzbd = callPackage ../servers/sabnzbd { };
4199   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4200     inherit openssl libtool;
4201   };
4203   dico = callPackage ../servers/dico { };
4205   dict = callPackage ../servers/dict { };
4207   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4208     inherit builderDefs;
4209   });
4211   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4212     inherit stdenv lib dict;
4213   };
4215   dovecot = callPackage ../servers/mail/dovecot { };
4216   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4218   ejabberd = callPackage ../servers/xmpp/ejabberd {
4219     erlang = erlangR13B ;
4220   };
4222   couchdb = callPackage ../servers/http/couchdb { };
4224   felix = callPackage ../servers/felix { };
4226   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4228   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4230   firebird = callPackage ../servers/firebird { };
4232   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4234   jboss = callPackage ../servers/http/jboss { };
4236   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4238   jetty = callPackage ../servers/http/jetty { };
4240   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4242   lighttpd = callPackage ../servers/http/lighttpd { };
4244   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4246   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
4248   mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { };
4250   mpd = callPackage ../servers/mpd { };
4252   myserver = callPackage ../servers/http/myserver { };
4254   nginx = builderDefsPackage (import ../servers/http/nginx) {
4255     inherit openssl pcre zlib libxml2 libxslt;
4256   };
4258   postfix = callPackage ../servers/mail/postfix { };
4260   pulseaudio = callPackage ../servers/pulseaudio {
4261     gconf = gnome.GConf;
4262   };
4264   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4266   portmap = callPackage ../servers/portmap { };
4268   monetdb = callPackage ../servers/sql/monetdb { };
4270   mysql4 = import ../servers/sql/mysql {
4271     inherit fetchurl stdenv ncurses zlib perl;
4272     ps = procps; /* !!! Linux only */
4273   };
4275   mysql5 = import ../servers/sql/mysql5 {
4276     inherit fetchurl stdenv ncurses zlib perl openssl;
4277     ps = procps; /* !!! Linux only */
4278   };
4280   mysql51 = import ../servers/sql/mysql51 {
4281     inherit fetchurl ncurses zlib perl openssl stdenv;
4282     ps = procps; /* !!! Linux only */
4283   };
4285   mysql = mysql5;
4287   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4289   nagios = callPackage ../servers/monitoring/nagios {
4290     gdSupport = true;
4291   };
4293   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4295   openfire = callPackage ../servers/xmpp/openfire { };
4297   postgresql = postgresql83;
4299   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4301   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4303   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4305   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4306     inherit xmpppy pythonIRClib python makeWrapper;
4307   };
4309   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4310     inherit xmpppy python makeWrapper fetchcvs;
4311   };
4313   radius = callPackage ../servers/radius { };
4315   redstore = callPackage ../servers/http/redstore { };
4317   samba = callPackage ../servers/samba { };
4319   shishi = callPackage ../servers/shishi { };
4321   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4322     inherit fetchurl stdenv perl lib composableDerivation;
4323   });
4324   squid = squids.squid3Beta; # has ipv6 support
4326   tomcat5 = callPackage ../servers/http/tomcat/5.0.nix { };
4328   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4330   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4332   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4334   virtuoso = callPackage ../servers/sql/virtuoso { };
4336   vsftpd = callPackage ../servers/ftp/vsftpd { };
4338   xinetd = callPackage ../servers/xinetd { };
4340   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4341     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4342       libxslt expat libdrm libpng zlib perl mesa
4343       xkeyboard_config dbus hal libuuid openssl gperf m4
4344       autoconf libtool xmlto asciidoc udev;
4346     # XXX: Update to newer Automake on the next big rebuild; better yet:
4347     # remove the dependency on Automake.
4348     automake = automake110x;
4350     # !!! pythonBase is used instead of python because this causes an
4351     # infinite recursion when the flag python.full is set to true.
4352     # Packages contained in the loop are python, tk, xlibs-wrapper,
4353     # libX11, libxcd (and xcb-proto).
4354     python = pythonBase;
4355   });
4357   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4359   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4361   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4362     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4363   });
4366   ### OS-SPECIFIC
4368   afuse = callPackage ../os-specific/linux/afuse { };
4370   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4372   _915resolution = callPackage ../os-specific/linux/915resolution { };
4374   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4376   acpi = callPackage ../os-specific/linux/acpi { };
4378   acpid = callPackage ../os-specific/linux/acpid { };
4380   acpitool = callPackage ../os-specific/linux/acpitool { };
4382   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4384   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4385   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4387   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4389   bluez = callPackage ../os-specific/linux/bluez { };
4391   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
4393   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4395   conky = callPackage ../os-specific/linux/conky { };
4397   cpufrequtils = (
4398     import ../os-specific/linux/cpufrequtils {
4399     inherit fetchurl stdenv libtool gettext;
4400     glibc = stdenv.gcc.libc;
4401     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4402   });
4404   cryopid = callPackage ../os-specific/linux/cryopid { };
4406   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4408   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4410   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4412   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4414   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4416   devicemapper = lvm2;
4418   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4420   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4422   dietlibc = callPackage ../os-specific/linux/dietlibc {
4423     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4424     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4425   };
4427   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4428     inherit libjpeg pkgconfig zlib directfb;
4429     inherit (xlibs) xproto;
4430   };
4432   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4433     inherit devicemapper;
4434   };
4436   libuuid =
4437     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
4438     then (utillinuxng // {
4439       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
4440         # `libblkid' fails to build on GNU/Hurd.
4441         configureFlags = args.configureFlags
4442           + " --disable-libblkid --disable-mount --disable-fsck"
4443           + " --enable-static";
4444         doCheck = false;
4445         CPPFLAGS =                    # ugly hack for ugly software!
4446           lib.concatStringsSep " "
4447             (map (v: "-D${v}=4096")
4448                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
4449       });
4450     })
4451     else if stdenv.isLinux
4452     then utillinuxng
4453     else null;
4455   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4457   eject = callPackage ../os-specific/linux/eject { };
4459   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4460     inherit fontconfig gpm freetype pkgconfig ncurses;
4461   };
4463   fuse = callPackage ../os-specific/linux/fuse { };
4465   fxload = callPackage ../os-specific/linux/fxload { };
4467   gpm = callPackage ../servers/gpm {
4468     flex = flex2535;
4469   };
4471   hal = callPackage ../os-specific/linux/hal { };
4473   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4475   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4477   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4479   hdparm = callPackage ../os-specific/linux/hdparm { };
4481   hibernate = callPackage ../os-specific/linux/hibernate { };
4483   htop = callPackage ../os-specific/linux/htop { };
4485   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4486     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4487       mig glibcCross;
4488     automake = automake111x;
4489     headersOnly = false;
4490     cross = assert crossSystem != null; crossSystem;
4491     gccCross = gccCrossStageFinal;
4492   });
4494   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4495     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4496       mig glibcCross;
4497     automake = automake111x;
4498     headersOnly = false;
4499     cross = assert crossSystem != null; crossSystem;
4501     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4502     # particular) so we first need an intermediate Hurd built with the
4503     # intermediate GCC.
4504     gccCross = gccCrossStageStatic;
4506     # This intermediate Hurd is only needed to build libpthread, which really
4507     # only needs libihash.
4508     buildTarget = "libihash";
4509     installTarget = "libihash-install";
4510   });
4512   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4513     automake = automake111x;
4514     headersOnly = true;
4515     gccCross = null;
4516     glibcCross = null;
4517   };
4519   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4520     inherit fetchgit stdenv autoconf automake libtool
4521       machHeaders hurdHeaders glibcCross;
4522     hurd = hurdCrossIntermediate;
4523     gccCross = gccCrossStageStatic;
4524     cross = assert crossSystem != null; crossSystem;
4525   });
4527   hwdata = callPackage ../os-specific/linux/hwdata { };
4529   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4531   iotop = callPackage ../os-specific/linux/iotop {
4532     python = pythonFull;
4533   };
4535   iproute = callPackage ../os-specific/linux/iproute { };
4537   iputils = (
4538     import ../os-specific/linux/iputils {
4539     inherit fetchurl stdenv;
4540     glibc = stdenv.gcc.libc;
4541     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4542   });
4544   iptables = callPackage ../os-specific/linux/iptables { };
4546   ipw2100fw = callPackage ../os-specific/linux/firmware/ipw2100 { };
4548   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4550   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4552   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4554   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4556   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4558   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4560   kbd = callPackage ../os-specific/linux/kbd { };
4562   libcroup = callPackage ../os-specific/linux/libcg { };
4564   linuxHeaders = linuxHeaders_2_6_28;
4566   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4567     inherit stdenv fetchurl perl;
4568     cross = assert crossSystem != null; crossSystem;
4569   });
4571   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4572     inherit stdenv fetchurl perl;
4573     cross = assert crossSystem != null; crossSystem;
4574   });
4576   # We can choose:
4577   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4578     else if (ver == "2.6") then linuxHeaders26Cross
4579     else throw "Unknown linux kernel version";
4581   linuxHeadersCross = assert crossSystem != null;
4582     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4584   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4586   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4588   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4590   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4592   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4593     inherit fetchurl stdenv perl mktemp module_init_tools;
4594     kernelPatches =
4595       [ kernelPatches.fbcondecor_2_6_25
4596         kernelPatches.sec_perm_2_6_24
4597       ];
4598   };
4600   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4601     inherit fetchurl stdenv perl mktemp module_init_tools;
4602     kernelPatches =
4603       [ kernelPatches.fbcondecor_2_6_27
4604         kernelPatches.sec_perm_2_6_24
4605       ];
4606   };
4608   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4609     inherit fetchurl stdenv perl mktemp module_init_tools;
4610     kernelPatches =
4611       [ kernelPatches.fbcondecor_2_6_28
4612         kernelPatches.sec_perm_2_6_24
4613         kernelPatches.ext4_softlockups_2_6_28
4614       ];
4615   };
4617   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4618     inherit fetchurl stdenv perl mktemp module_init_tools;
4619     kernelPatches =
4620       [ kernelPatches.fbcondecor_2_6_29
4621         kernelPatches.sec_perm_2_6_24
4622       ];
4623   };
4625   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4626     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4627     kernelPatches = [];
4628   };
4630   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4631     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4632     kernelPatches =
4633       [ kernelPatches.fbcondecor_2_6_31
4634         kernelPatches.sec_perm_2_6_24
4635         kernelPatches.aufs2_2_6_32
4636         kernelPatches.cifs_timeout
4637         kernelPatches.no_xsave
4638         kernelPatches.dell_rfkill
4639         kernelPatches.xen_pvclock_resume
4640       ];
4641   };
4643   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
4644     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4645     kernelPatches =
4646       [ kernelPatches.fbcondecor_2_6_31
4647         kernelPatches.sec_perm_2_6_24
4648         kernelPatches.aufs2_2_6_32
4649         kernelPatches.cifs_timeout
4650         kernelPatches.no_xsave
4651         kernelPatches.dell_rfkill
4652       ];
4653   };
4655   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4656     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4657     extraConfig =
4658       ''
4659         DEBUG_KERNEL y
4660         KPROBES y # kernel probes (needs `utrace' for process probes)
4661         DEBUG_INFO y
4662         RELAY y
4663         DEBUG_FS y
4664       '';
4665     dontStrip = true;
4666     kernelPatches =
4667       [ kernelPatches.fbcondecor_2_6_31
4668         kernelPatches.sec_perm_2_6_24
4669         kernelPatches.tracehook_2_6_32
4670         kernelPatches.utrace_2_6_32
4671       ];
4672   };
4674   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4675     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4676   };
4678   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4679     features = {
4680       oldI686 = true;
4681     };
4682   };
4684   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4685     features = {
4686       ckSched = true;
4687     };
4688   };
4690   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4691     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4692     kernelPatches =
4693       [ kernelPatches.fbcondecor_2_6_33
4694         kernelPatches.sec_perm_2_6_24
4695       ];
4696   };
4698   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4699     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4700   };
4702   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4703     features = {
4704       oldI686 = true;
4705     };
4706   };
4708   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4709     features = {
4710       ckSched = true;
4711     };
4712   };
4714   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4715     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4716     kernelPatches =
4717       [ /*kernelPatches.fbcondecor_2_6_33*/
4718         kernelPatches.sec_perm_2_6_24
4719         kernelPatches.aufs2_2_6_34
4720       ];
4721   };
4723   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
4724     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4725     kernelPatches =
4726       [ #kernelPatches.fbcondecor_2_6_35
4727         kernelPatches.sec_perm_2_6_24
4728         kernelPatches.aufs2_2_6_35
4729       ];
4730   };
4732   linux_2_6_35_oldI686 = linux_2_6_35.override {
4733       extraConfig = ''
4734           HIGHMEM64G? n
4735           XEN? n
4736       '';
4737       extraMeta = {
4738         platforms = ["i686-linux"];
4739         maintainers = [lib.maintainers.raskin];
4740       };
4741   };
4743   linux_2_6_36 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.36.nix) {
4744     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4745     kernelPatches =
4746       [ #kernelPatches.fbcondecor_2_6_35
4747         kernelPatches.sec_perm_2_6_24
4748         #kernelPatches.aufs2_2_6_35
4749       ];
4750   };
4752   /* Linux kernel modules are inherently tied to a specific kernel.  So
4753      rather than provide specific instances of those packages for a
4754      specific kernel, we have a function that builds those packages
4755      for a specific kernel.  This function can then be called for
4756      whatever kernel you're using. */
4758   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4760     inherit kernel;
4762     acpi_call = callPackage ../os-specific/linux/acpi-call {};
4764     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4766     aufs = callPackage ../os-specific/linux/aufs { };
4768     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4770     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4772     blcr = callPackage ../os-specific/linux/blcr {
4773       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
4774     };
4776     exmap = callPackage ../os-specific/linux/exmap {
4777       inherit (gtkLibs) gtkmm;
4778     };
4780     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
4782     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4784     iwlwifi4965ucode =
4785       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4786           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4787        then iwlwifi4965ucodeV2
4788        else iwlwifi4965ucodeV1);
4790     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4792     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4794     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
4795     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
4797     openafsClient = callPackage ../servers/openafs-client { };
4799     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
4801     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4803     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4804       inherit kernel perl;
4805     };
4807     splashutils =
4808       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4810     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4811       kernel_ext3cowpatched = kernel;
4812     };
4814     /* compiles but has to be integrated into the kernel somehow
4815       Let's have it uncommented and finish it..
4816     */
4817     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4819     ov511 = callPackage ../os-specific/linux/ov511 {
4820       stdenv = overrideGCC stdenv gcc34;
4821     };
4823     # State Nix
4824     snix = callPackage ../tools/package-management/snix {
4826       aterm = aterm25;
4827       db4 = db45;
4829       flex = flex2533;
4830       ext3cow_kernel = kernel;    };
4832     sysprof = callPackage ../development/tools/profiling/sysprof {
4833       inherit (gnome) gtk glib pango libglade;
4834     };
4836     systemtap = callPackage ../development/tools/profiling/systemtap {
4837       linux = kernel;
4838       inherit (gnome) gtkmm libglademm;
4839     };
4841     virtualbox = callPackage ../applications/virtualization/virtualbox {
4842       stdenv = stdenv_32bit;
4843       inherit (gnome) libIDL;
4844     };
4846     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4847   };
4849   # Build the kernel modules for the some of the kernels.
4850   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4851   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4852   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4853   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4854   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4855   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4856   linuxPackages_2_6_32_systemtap =
4857     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4858   linuxPackages_2_6_32_xen =
4859     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
4860   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4861   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4862   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
4863   linuxPackages_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_2_6_36 pkgs.linuxPackages_2_6_36);
4865   # The current default kernel / kernel modules.
4866   linux = linux_2_6_32;
4867   linuxPackages = linuxPackages_2_6_32;
4869   keyutils = callPackage ../os-specific/linux/keyutils { };
4871   libselinux = callPackage ../os-specific/linux/libselinux { };
4873   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4875   libsexy = callPackage ../development/libraries/libsexy {
4876     inherit (gtkLibs) glib gtk pango;
4877   };
4879   librsvg = gnome.librsvg;
4881   libsepol = callPackage ../os-specific/linux/libsepol { };
4883   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4885   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4887   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4889   klibc = callPackage ../os-specific/linux/klibc {
4890     linuxHeaders = glibc.kernelHeaders;
4891   };
4893   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4895   kvm = qemu_kvm;
4897   libcap = callPackage ../os-specific/linux/libcap { };
4899   libnscd = callPackage ../os-specific/linux/libnscd { };
4901   libnotify = callPackage ../development/libraries/libnotify { };
4903   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4905   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4907   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4908   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4909   # compiler for that host.
4910   mach = callPackage ../os-specific/gnu/mach {
4911     automake = automake111x;  };
4913   machHeaders = callPackage ../os-specific/gnu/mach {
4914     automake = automake111x;
4915     headersOnly = true;
4916     mig = null;
4917   };
4919   mdadm = callPackage ../os-specific/linux/mdadm { };
4921   mingetty = callPackage ../os-specific/linux/mingetty { };
4923   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4925   mountall = callPackage ../os-specific/linux/mountall {
4926     automake = automake111x;
4927   };
4929   aggregateModules = modules:
4930     import ../os-specific/linux/module-init-tools/aggregator.nix {
4931       inherit stdenv module_init_tools modules buildEnv;
4932     };
4934   modutils = callPackage ../os-specific/linux/modutils {
4935     stdenv = overrideGCC stdenv gcc34;
4936   };
4938   nettools = callPackage ../os-specific/linux/net-tools { };
4940   neverball = callPackage ../games/neverball { };
4942   numactl = callPackage ../os-specific/linux/numactl { };
4944   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
4945     inherit fetchurl stdenv nettools openssl procps iproute;
4946   };
4948   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
4950   pam = callPackage ../os-specific/linux/pam { };
4952   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
4954   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
4955     db = db4;
4956   };
4958   pam_console = callPackage ../os-specific/linux/pam_console {
4959     libtool = libtool_1_5;
4960     flex = if stdenv.system == "i686-linux" then flex else flex2533;
4961   };
4963   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
4965   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
4967   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
4969   pam_login = callPackage ../os-specific/linux/pam_login { };
4971   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
4973   pam_usb = callPackage ../os-specific/linux/pam_usb { };
4975   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
4976     firmware = getConfig ["pcmciaUtils" "firmware"] [];
4977     config = getConfig ["pcmciaUtils" "config"] null;
4978   };
4980   pmount = callPackage ../os-specific/linux/pmount { };
4982   pmutils = callPackage ../os-specific/linux/pm-utils { };
4984   powertop = callPackage ../os-specific/linux/powertop { };
4986   procps = callPackage ../os-specific/linux/procps { };
4988   pwdutils = callPackage ../os-specific/linux/pwdutils { };
4990   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
4992   radeontools = callPackage ../os-specific/linux/radeontools { };
4994   rfkill = callPackage ../os-specific/linux/rfkill { };
4996   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
4998   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
5000   sdparm = callPackage ../os-specific/linux/sdparm { };
5002   shadow = callPackage ../os-specific/linux/shadow { };
5004   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
5006   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
5008   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
5010   # Provided with sysfsutils.
5011   libsysfs = sysfsutils;
5012   systool = sysfsutils;
5014   sysklogd = callPackage ../os-specific/linux/sysklogd { };
5016   syslinux = callPackage ../os-specific/linux/syslinux { };
5018   sysstat = callPackage ../os-specific/linux/sysstat { };
5020   sysvinit = callPackage ../os-specific/linux/sysvinit { };
5022   sysvtools = callPackage ../os-specific/linux/sysvinit {
5023     withoutInitTools = true;
5024   };
5026   # FIXME: `tcp-wrapper' is actually not OS-specific.
5027   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
5029   trackballs = callPackage ../games/trackballs {
5030     debug = false;
5031   };
5033   tunctl = callPackage ../os-specific/linux/tunctl { };
5035   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
5036     inherit mesa tcl freeglut;
5037     inherit (xlibs) libX11 xproto;
5038   };*/
5040   ubootChooser = name : if (name == "upstream") then ubootUpstream
5041     else if (name == "sheevaplug") then ubootSheevaplug
5042     else throw "Unknown uboot";
5044   ubootUpstream = callPackage ../misc/uboot { };
5046   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
5048   ubootGuruplug = callPackage ../misc/uboot/guruplug.nix { };
5050   uclibc = callPackage ../os-specific/linux/uclibc { };
5052   uclibcCross = import ../os-specific/linux/uclibc {
5053     inherit fetchurl stdenv;
5054     linuxHeaders = linuxHeadersCross;
5055     gccCross = gccCrossStageStatic;
5056     cross = assert crossSystem != null; crossSystem;
5057   };
5059   udev = callPackage ../os-specific/linux/udev { };
5061   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
5062     inherit fetchurl stdenv perl mktemp module_init_tools;
5063     userModeLinux = true;
5064   };
5066   umlutilities = callPackage ../os-specific/linux/uml-utilities {
5067     tunctl = true; mconsole = true;
5068   };
5070   untie = callPackage ../os-specific/linux/untie {};
5072   upstart = callPackage ../os-specific/linux/upstart { };
5074   usbutils = callPackage ../os-specific/linux/usbutils { };
5076   utillinux = utillinuxng;
5078   utillinuxCurses = utillinuxngCurses;
5080   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
5081     ncurses = null;
5082   };
5084   utillinuxngCurses = utillinuxng.override {
5085     inherit ncurses;
5086   };
5088   windows = rec {
5089     w32api = callPackage ../os-specific/windows/w32api {
5090       gccCross = gccCrossStageStatic;
5091       binutilsCross = binutilsCross;
5092     };
5094     w32api_headers = w32api.override {
5095       onlyHeaders = true;
5096     };
5098     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
5099       gccCross = gccCrossMingw2;
5100       binutilsCross = binutilsCross;
5101     };
5103     mingw_runtime_headers = mingw_runtime.override {
5104       onlyHeaders = true;
5105     };
5107     mingw_headers1 = buildEnv {
5108       name = "mingw-headers-1";
5109       paths = [ w32api_headers mingw_runtime_headers ];
5110     };
5112     mingw_headers2 = buildEnv {
5113       name = "mingw-headers-2";
5114       paths = [ w32api mingw_runtime_headers ];
5115     };
5117     mingw_headers3 = buildEnv {
5118       name = "mingw-headers-3";
5119       paths = [ w32api mingw_runtime ];
5120     };
5122     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
5123   };
5125   wesnoth = callPackage ../games/wesnoth {
5126     inherit (gtkLibs) pango;
5127     lua = lua5;
5128   };
5130   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
5132   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
5133     guiSupport = false;
5134   };
5135   # prebuild binaries:
5136   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
5138   # deprecated, but contains icon ? Does no longer build
5139   /* didn't build Sun Apr 25 20:34:18 CEST 2010
5140   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
5141   */
5143   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
5145   xmoto = builderDefsPackage (import ../games/xmoto) {
5146     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
5147       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
5148       lua5 ode libxdg_basedir;
5149   };
5151   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
5153   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
5155   ### DATA
5157   andagii = callPackage ../data/fonts/andagii {};
5159   anonymousPro = callPackage ../data/fonts/anonymous-pro {};
5161   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
5162   };
5164   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
5166   cacert = callPackage ../data/misc/cacert { };
5168   corefonts = callPackage ../data/fonts/corefonts { };
5170   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
5171     inherit fetchurl stdenv builderDefs paths;
5172     inherit (xorg) mkfontdir mkfontscale;
5173   });
5175   clearlyU = callPackage ../data/fonts/clearlyU { };
5177   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
5178     inherit (perlPackages) FontTTF;
5179   };
5181   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
5183   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
5185   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
5187   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
5189   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
5191   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
5193   docbook_xml_xslt = docbook_xsl;
5195   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
5197   docbook5_xsl = docbook_xsl_ns;
5199   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
5201   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
5203   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
5205   inconsolata = callPackage ../data/fonts/inconsolata {};
5207   junicode = callPackage ../data/fonts/junicode { };
5209   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
5211   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
5212     inherit fontforge;
5213   };
5214   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
5215   };
5217   lmodern = callPackage ../data/fonts/lmodern { };
5219   manpages = callPackage ../data/documentation/man-pages { };
5221   miscfiles = callPackage ../data/misc/miscfiles { };
5223   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
5225   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
5227   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
5229   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
5231   stdmanpages = callPackage ../data/documentation/std-man-pages { };
5233   iana_etc = callPackage ../data/misc/iana-etc { };
5235   popplerData = callPackage ../data/misc/poppler-data { };
5237   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
5239   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
5241   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
5243   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
5244     inherit fetchurl;
5245   };
5247   terminus_font = callPackage ../data/fonts/terminus-font { };
5249   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5251   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5253   unifont = callPackage ../data/fonts/unifont { };
5255   vistafonts = callPackage ../data/fonts/vista-fonts { };
5257   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5259   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5261   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5264   ### APPLICATIONS
5267   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
5269   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
5271   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
5273   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
5275   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
5277   abcde = callPackage ../applications/audio/abcde { };
5279   abiword = callPackage ../applications/office/abiword {
5280     inherit (gnome) libglade libgnomecanvas;
5281   };
5283   adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
5284     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5285   };
5287   amarok = newScope pkgs.kde4 ../applications/audio/amarok { };
5289   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5290     libstdcpp = gcc33.gcc;
5291   };
5293   ardour = callPackage ../applications/audio/ardour {
5294     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5295     inherit (gnome) libgnomecanvas;
5296   };
5298   arora = callPackage ../applications/networking/browsers/arora { };
5300   audacious = callPackage ../applications/audio/audacious { };
5302   audacity = callPackage ../applications/audio/audacity { };
5304   aumix = callPackage ../applications/audio/aumix {
5305     gtkGUI = false;
5306   };
5308   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5310   avidemux = callPackage ../applications/video/avidemux {
5311     stdenv = stdenv2;
5312   };
5314   awesome = callPackage ../applications/window-managers/awesome {
5315     inherit (gtkLibs) glib pango;
5316     lua = lua5;
5317     cairo = cairo.override { xcbSupport = true; };
5318   };
5320   bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
5322   batik = callPackage ../applications/graphics/batik { };
5324   bazaar = callPackage ../applications/version-management/bazaar {
5325     python = pythonFull;
5326   };
5328   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5329     inherit bazaar;
5330   };
5332   beast = callPackage ../applications/audio/beast {
5333     inherit (gnome) libgnomecanvas libart_lgpl;
5334   };
5336   bibletime = newScope pkgs.kde45 ../applications/misc/bibletime {
5337     qt = qt4;
5338   } ;
5340   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5342   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5344   # commented out because it's using the new configuration style proposal which is unstable
5345   #biew = import ../applications/misc/biew {
5346   #  inherit lib stdenv fetchurl ncurses;
5347   #};
5349   # only to be able to compile blender - I couldn't compile the default openal software
5350   # Perhaps this can be removed - don't know which one openal{,soft} is better
5351   freealut_soft = callPackage ../development/libraries/freealut {
5352     openal = openalSoft;  };
5354   blender = callPackage ../applications/misc/blender/2.49.nix {
5355     python = python26Base;
5356     stdenv = stdenv2;
5357   };
5359   blender_2_50 = lowPrio (import ../applications/misc/blender {
5360     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5361       libsamplerate libtiff ilmbase;
5362     inherit (xlibs) libXi;
5363     python = python31Base;
5364     stdenv = stdenv2;
5365   });
5367   bmp = callPackage ../applications/audio/bmp {
5368     inherit (gnome) esound libglade;
5369   };
5371   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5373   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5375   bvi = callPackage ../applications/editors/bvi { };
5377   calibre = callPackage ../applications/misc/calibre {
5378     python = python26Full;
5379     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5380   };
5382   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5383     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5384       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5385       libtool automake autoconf;
5386     GStreamer = gst_all.gstreamer;
5387     inherit (gtkLibs) gtk glib;
5388     inherit (gnome) startupnotification GConf ;
5389     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5390   };
5391   funpidgin = carrier;
5393   cddiscid = callPackage ../applications/audio/cd-discid { };
5395   cdparanoia = cdparanoiaIII;
5397   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5399   cdrtools = callPackage ../applications/misc/cdrtools { };
5401   chatzilla =
5402     xulrunnerWrapper {
5403       launcher = "chatzilla";
5404       application = callPackage ../applications/networking/irc/chatzilla { };
5405     };
5407   chrome = callPackage ../applications/networking/browsers/chromium {
5408     inherit (gtkLibs) gtk glib pango atk;
5409     inherit (gnome) GConf;
5410     patchelf = patchelf06;
5411     libjpeg = libjpeg62;
5412   };
5414   chromeWrapper = wrapFirefox chrome "chrome" "";
5416   cinelerra = callPackage ../applications/video/cinelerra {
5417     fftw = fftwSinglePrec;
5418     inherit (gnome) esound;
5419   };
5421   cmus = callPackage ../applications/audio/cmus { };
5423   compiz = callPackage ../applications/window-managers/compiz/core.nix { };
5425   compiz_ccsm = callPackage ../applications/window-managers/compiz/ccsm.nix { };
5427   compizconfig_python = callPackage ../applications/window-managers/compiz/config-python.nix { };
5429   libcompizconfig = callPackage ../applications/window-managers/compiz/libcompizconfig.nix { };
5431   compiz_bcop = callPackage ../applications/window-managers/compiz/bcop.nix { };
5433   compiz_plugins_main = callPackage ../applications/window-managers/compiz/plugins-main.nix { };
5435   compiz_plugins_extra = callPackage ../applications/window-managers/compiz/plugins-extra.nix { };
5437   cinepaint = callPackage ../applications/graphics/cinepaint {
5438     fltk = fltk11;
5439   };
5441   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5442     inherit makeWrapper;
5443     python = pythonFull;
5444   };
5446   comical = callPackage ../applications/graphics/comical {
5447     wxGTK = wxGTK26;
5448   };
5450   conkeror = xulrunnerWrapper {
5451     launcher = "conkeror";
5452     application = callPackage ../applications/networking/browsers/conkeror { };
5453   };
5455   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5456     inherit cmake patchelf;
5457     imagemagick=imagemagick;
5458   };
5460   cvs = callPackage ../applications/version-management/cvs { };
5462   cvsps = callPackage ../applications/version-management/cvsps { };
5464   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5466   d4x = callPackage ../applications/misc/d4x { };
5468   darcs = haskellPackages.darcs;
5470   dia = callPackage ../applications/graphics/dia { };
5472   digikam = newScope pkgs.kde4 ../applications/graphics/digikam { };
5474   djvulibre = callPackage ../applications/misc/djvulibre { };
5476   djview4 = callPackage ../applications/graphics/djview { };
5478   dmenu = callPackage ../applications/misc/dmenu { };
5480   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5481     inherit libpng libtiff libjpeg imagemagick librsvg
5482       pkgconfig bzip2 zlib libtool freetype fontconfig
5483       ghostscript jasper;
5484     inherit (xlibs) libX11;
5485   };
5487   dvdauthor = callPackage ../applications/video/dvdauthor { };
5489   dwm = callPackage ../applications/window-managers/dwm {
5490     patches = getConfig [ "dwm" "patches" ] [];
5491   };
5493   eaglemode = callPackage ../applications/misc/eaglemode {
5494     stdenv = stdenv2;
5495   };
5497   eclipse = callPackage ../applications/editors/eclipse {
5498     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5499     # working correctly.
5500     inherit (gtkLibs216) glib gtk;
5501   };
5502   eclipseLatest = eclipse.override { version = "latest"; };
5503   eclipse36 = callPackage ../applications/editors/eclipse {
5504       version = "3.6.1";
5505   };
5507   ed = callPackage ../applications/editors/ed { };
5509   elinks = callPackage ../applications/networking/browsers/elinks { };
5511   elvis = callPackage ../applications/editors/elvis { };
5513   emacs = emacs23;
5515   emacs22 = callPackage ../applications/editors/emacs-22 {
5516     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5517     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5518   };
5520   emacs23 = callPackage ../applications/editors/emacs-23 {
5521     # use override to select the appropriate gui toolkit
5522     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5523     Xaw3d = null;
5524     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5525     # TODO: these packages don't build on Darwin.
5526     gconf = if stdenv.isDarwin then null else gnome.GConf;
5527     librsvg = if stdenv.isDarwin then null else librsvg;
5528   };
5530   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
5531     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5532     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5533     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5534     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5535     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5536   });
5538   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5539     inherit emacs;
5541     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5543     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5545     cua = callPackage ../applications/editors/emacs-modes/cua { };
5547     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5549     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5551     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5553     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5555     emms = callPackage ../applications/editors/emacs-modes/emms { };
5557     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5558       # Requires Emacs 23, for `avl-tree'.
5559     };
5561     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5563     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5565     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5567     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
5569     magit = callPackage ../applications/editors/emacs-modes/magit { };
5571     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5573     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5575     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5576     # we want it to have higher precedence.
5577     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
5579     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5581     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5583     quack = callPackage ../applications/editors/emacs-modes/quack { };
5585     remember = callPackage ../applications/editors/emacs-modes/remember { };
5587     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5589     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5590   };
5592   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5593   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
5595   epdfview = callPackage ../applications/misc/epdfview { };
5597   espeak = callPackage ../applications/audio/espeak { };
5599   evince = callPackage ../applications/misc/evince {
5600     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5601       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5602   };
5604   evolution_data_server = (newScope (gnome // gtkLibs))
5605   ../servers/evolution-data-server {
5606   };
5608   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5609     fltk = fltk20;
5610   };
5612   fbpanel = callPackage ../applications/window-managers/fbpanel { };
5614   fetchmail = import ../applications/misc/fetchmail {
5615     inherit stdenv fetchurl openssl;
5616   };
5618   fossil = callPackage ../applications/version-management/fossil { };
5620   grass = import ../applications/misc/grass {
5621     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5622       libXaw libXrender;
5623     inherit getConfig composableDerivation stdenv fetchurl
5624       lib flex bison cairo fontconfig
5625       gdal zlib ncurses gdbm proj pkgconfig swig
5626       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5627       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5628     fftw = fftwSinglePrec;
5629     motif = lesstif;
5630     opendwg = libdwg;
5631     wxPython = wxPython28;
5632   };
5634   grip = callPackage ../applications/misc/grip {
5635     inherit (gnome) libgnome libgnomeui vte;
5636   };
5638   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5640   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
5642   wvdial = callPackage ../os-specific/linux/wvdial { };
5644   fbida = builderDefsPackage ../applications/graphics/fbida {
5645     inherit libjpeg libexif giflib libtiff libpng
5646       imagemagick ghostscript which curl pkgconfig
5647       freetype fontconfig;
5648   };
5650   fdupes = callPackage ../tools/misc/fdupes { };
5652   feh = callPackage ../applications/graphics/feh { };
5654   filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
5656   firefox = firefox36Pkgs.firefox;
5657   firefoxWrapper = firefox36Wrapper;
5659   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5660     inherit (gtkLibs) gtk pango;
5661     inherit (gnome) libIDL;
5662   };
5664   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5666   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5667     inherit (gtkLibs) gtk pango;
5668     inherit (gnome) libIDL;
5669   };
5671   firefox40Pkgs = let p = (applyGlobalOverrides (x : {cairo = x.cairo_1_10_0;}));
5672   in p.callPackage 
5673       ../applications/networking/browsers/firefox/4.0.nix {
5674     inherit (p.gtkLibs) gtk pango;
5675     inherit (p.gnome) libIDL;
5676   };
5678   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5680   flac = callPackage ../applications/audio/flac { };
5682   flashplayer = flashplayer10;
5684   flashplayer9 = (
5685     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5686       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5687       inherit (xlibs) libX11 libXext libXrender libXt;
5688       inherit (gtkLibs) gtk glib pango atk;
5689     });
5691   flashplayer10 = (
5692     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5693       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat cairo;
5694       inherit (xlibs) libX11 libXext libXrender libXt ;
5695       inherit (gtkLibs) gtk glib pango atk;
5696       debug = getConfig ["flashplayer" "debug"] false;
5697     });
5699   flite = callPackage ../applications/misc/flite { };
5701   freemind = callPackage ../applications/misc/freemind {
5702     jdk = jdk;
5703     jre = jdk;
5704   };
5706   freepv = callPackage ../applications/graphics/freepv { };
5708   xfontsel = callPackage ../applications/misc/xfontsel { };
5709   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5711   fspot = callPackage ../applications/graphics/f-spot {
5712     inherit (gnome) libgnome libgnomeui;
5713     gtksharp = gtksharp1;
5714   };
5716   gimp = callPackage ../applications/graphics/gimp {
5717     inherit (gnome) gtk libart_lgpl;
5718   };
5720   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5721     inherit pkgs gimp;
5722   });
5724   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5725     inherit pkgs;
5726   });
5727   git = gitAndTools.git;
5728   gitFull = gitAndTools.gitFull;
5730   gnucash = callPackage ../applications/office/gnucash {
5731     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5732       libgnomeprint;
5733     gconf = gnome.GConf;
5734   };
5736   qcad = callPackage ../applications/misc/qcad { };
5738   qjackctl = callPackage ../applications/audio/qjackctl { };
5740   gkrellm = callPackage ../applications/misc/gkrellm { };
5742   gnash = callPackage ../applications/video/gnash {
5743     inherit (gnome) gtkglext;
5744     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
5745   };
5747   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5748     inherit (gnome) GConf;
5749   };
5751   gnunet = callPackage ../applications/networking/p2p/gnunet {
5752     inherit (gnome) gtk libglade;
5753     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5754   };
5756   gocr = callPackage ../applications/graphics/gocr { };
5758   gobby5 = callPackage ../applications/editors/gobby {
5759     inherit (gtkLibs) gtkmm;
5760     inherit (gnome) gtksourceview;
5761   };
5763   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5765   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5766     inherit libgphoto2 fuse pkgconfig glib;
5767   };
5769   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5771   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5773   gtkpod = callPackage ../applications/audio/gtkpod {
5774     inherit (gnome) libglade;
5775   };
5777   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5778     inherit libpng opencv;
5779   };
5781   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5782     inherit libpng pkgconfig;
5783   };
5785   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5786     inherit (gnome) GConf;
5787     browser = firefox;
5788   };
5790   geeqie = callPackage ../applications/graphics/geeqie { };
5792   gqview = callPackage ../applications/graphics/gqview { };
5794   googleearth = callPackage_i686 ../applications/misc/googleearth { };
5796   gosmore = builderDefsPackage ../applications/misc/gosmore {
5797     inherit fetchsvn curl pkgconfig libxml2;
5798     inherit (gtkLibs) gtk;
5799   };
5801   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5803   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
5805   gpsd = callPackage ../servers/gpsd {
5806     # We need a Python with NCurses bindings.
5807     python = pythonFull;
5808   };
5810   guitone = callPackage ../applications/version-management/guitone { };
5812   gv = callPackage ../applications/misc/gv { };
5814   hello = callPackage ../applications/misc/hello/ex-2 { };
5816   homebank = callPackage ../applications/office/homebank { };
5818   htmldoc = callPackage ../applications/misc/htmldoc {
5819     fltk = fltk11;
5820   };
5822   hugin = callPackage ../applications/graphics/hugin {
5823     stdenv = stdenv2;
5824   };
5826   i810switch = callPackage ../os-specific/linux/i810switch { };
5828   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5829     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5830       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5831       wirelesstools;
5832     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5833     inherit (xlibs) pixman;
5834     inherit (pythonPackages) ply;
5835   });
5837   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5838     application = "xulrunner";
5839     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5840       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5841       wirelesstools;
5842     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5843     inherit (xlibs) pixman;
5844     inherit (pythonPackages) ply;
5845   });
5847   icecat3Xul =
5848     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5849        [ icecat3 icecatXulrunner3 ])
5850     // { inherit (icecat3) gtk isFirefox3Like meta; };
5852   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5854   icewm = callPackage ../applications/window-managers/icewm { };
5856   id3v2 = callPackage ../applications/audio/id3v2 { };
5858   ikiwiki = callPackage ../applications/misc/ikiwiki {
5859     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5860       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5861       RpcXML XMLSimple PerlMagick;
5862     gitSupport = getPkgConfig "ikiwiki" "git" false;
5863     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5864     extraUtils = [];
5865   };
5867   imagemagick = callPackage ../applications/graphics/ImageMagick {
5868     tetex = null;
5869     librsvg = null;
5870   };
5872   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5874   # Impressive, formerly known as "KeyJNote".
5875   impressive = callPackage ../applications/office/impressive {
5877     # XXX These are the PyOpenGL dependencies, which we need here.
5879     inherit (pythonPackages) pyopengl;  };
5881   inkscape = callPackage ../applications/graphics/inkscape {
5882     inherit (pythonPackages) lxml;
5883     inherit (gtkLibs) gtk glib glibmm gtkmm;
5884   };
5886   ion3 = callPackage ../applications/window-managers/ion-3 {
5887     lua = lua5;
5888   };
5890   iptraf = callPackage ../applications/networking/iptraf { };
5892   irssi = callPackage ../applications/networking/irc/irssi { };
5894   jackmeter = callPackage ../applications/audio/jackmeter { };
5896   jedit = callPackage ../applications/editors/jedit { };
5898   jigdo = callPackage ../applications/misc/jigdo { };
5900   joe = callPackage ../applications/editors/joe { };
5902   jwm = callPackage ../applications/window-managers/jwm { };
5904   k3b = newScope pkgs.kde4 ../applications/misc/k3b { };
5906   kadu = newScope pkgs.kde45 ../applications/networking/instant-messengers/kadu { };
5908   kbluetooth = newScope pkgs.kde4 ../tools/bluetooth/kbluetooth { };
5910   kdenlive = newScope pkgs.kde4 ../applications/video/kdenlive { };
5912   kdesvn = newScope pkgs.kde4 ../applications/version-management/kdesvn { };
5914   kdevelop = newScope pkgs.kde4 ../applications/editors/kdevelop { };
5916   keepnote = callPackage ../applications/office/keepnote {
5917     # I did not find any better way of reusing buildPythonPackage+setuptools
5918     # for a python with openssl support
5919     buildPythonPackage = assert pythonFull.sqliteSupport;
5920       import ../development/python-modules/generic {
5921         inherit makeWrapper lib;
5922         python = pythonFull;
5923         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
5924           inherit makeWrapper;
5925           python = pythonFull;
5926         };
5927       };
5928     # How could this pygtk use also pythonFull, I don't know.
5929     pygtk = pyGtkGlade;
5930   };
5932   kermit = callPackage ../tools/misc/kermit { };
5934   kino = import ../applications/video/kino {
5935     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5936       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5937     inherit libsamplerate ffmpeg;
5938     inherit (gnome) libglade gtk glib;
5939     inherit (xlibs) libXv libX11;
5940   };
5942   kipi_plugins = newScope pkgs.kde4 ../applications/graphics/kipi-plugins { };
5944   kmplayer = newScope pkgs.kde4 ../applications/video/kmplayer {
5945     inherit (pkgs.gtkLibs) pango;
5946   };
5948   koffice = newScope pkgs.kde4 ../applications/office/koffice { };
5950   konq_plugins = newScope pkgs.kde4 ../applications/networking/browsers/konq-plugins { };
5952   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
5954   krename = newScope pkgs.kde4 ../applications/misc/krename { };
5956   krusader = newScope pkgs.kde4 ../applications/misc/krusader { };
5958   ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
5960   lame = callPackage ../applications/audio/lame { };
5962   larswm = callPackage ../applications/window-managers/larswm { };
5964   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
5966   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
5967     fftw = fftwSinglePrec;
5968   };
5970   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
5971     inherit (gnome) libglade;
5972   };
5974   links = callPackage ../applications/networking/browsers/links { };
5976   ledger = callPackage ../applications/office/ledger { };
5978   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
5979     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
5980       gpm openssl SDL SDL_image SDL_net pkgconfig;
5981     inherit (xlibs) libX11 libXau xproto libXt;
5982   };
5984   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
5986   lynx = callPackage ../applications/networking/browsers/lynx { };
5988   lyx = callPackage ../applications/misc/lyx {
5989    qt = qt4;
5990   };
5992   matchbox = callPackage ../applications/window-managers/matchbox { };
5994   meld = callPackage ../applications/version-management/meld {
5995     inherit (gnome) scrollkeeper;
5996     pygtk = pyGtkGlade;
5997   };
5999   mercurial = callPackage ../applications/version-management/mercurial {
6000     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
6001     python = # allow cloning sources from https servers.
6002       if getConfig ["mercurial" "httpsSupport"] true
6003       then pythonFull
6004       else pythonBase;
6005   };
6007   merkaartor = callPackage ../applications/misc/merkaartor {
6008     qt = qt4;
6009   };
6011   meshlab = callPackage ../applications/graphics/meshlab {
6012     qt = qt4;
6013   };
6015   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
6016     inherit imagemagick intltool python pkgconfig webkit libxml2
6017       which gettext makeWrapper file libidn sqlite docutils libnotify
6018       vala dbus_glib;
6019     inherit (gtkLibs) gtk glib;
6020     inherit (gnome28) gtksourceview;
6021     inherit (webkit.passthru.args) libsoup;
6022     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
6023   };
6025   minicom = callPackage ../tools/misc/minicom { };
6027   mmex = callPackage ../applications/office/mmex { };
6029   monodevelop = callPackage ../applications/editors/monodevelop {
6030     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
6031     mozilla = firefox;
6032     gtksharp = gtksharp2;
6033   };
6035   monodoc = callPackage ../applications/editors/monodoc {
6036     gtksharp = gtksharp1;
6037   };
6039   monotone = callPackage ../applications/version-management/monotone {
6040     lua = lua5;
6041   };
6043   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
6044     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
6045     inherit (gnome) gtk libgnomecanvas glib;
6046   };
6048   mozilla = callPackage ../applications/networking/browsers/mozilla {
6049     inherit (gnome) libIDL;
6050   };
6052   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
6053     inherit firefox;
6054     inherit (xlibs) libX11 xproto;
6055   };
6057   mp3info = callPackage ../applications/audio/mp3info { };
6059   mpc123 = callPackage ../applications/audio/mpc123 { };
6061   mpg321 = callPackage ../applications/audio/mpg321 { };
6063   MPlayer = callPackage ../applications/video/MPlayer { };
6065   MPlayerPlugin = browser:
6066     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
6067       inherit browser;
6068       inherit fetchurl stdenv pkgconfig gettext;
6069       inherit (xlibs) libXpm;
6070       # !!! should depend on MPlayer
6071     };
6073   mrxvt = callPackage ../applications/misc/mrxvt { };
6075   multisync = callPackage ../applications/misc/multisync {
6076     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
6077   };
6079   mutt = callPackage ../applications/networking/mailreaders/mutt { };
6081   msmtp = callPackage ../applications/networking/msmtp { };
6083   mupdf = callPackage ../applications/misc/mupdf {
6084   };
6086   mythtv = callPackage ../applications/video/mythtv {
6087     qt3 = qt3mysql;
6088   };
6090   nano = callPackage ../applications/editors/nano { };
6092   navipowm = callPackage ../applications/misc/navipowm {
6093   };
6095   navit = callPackage ../applications/misc/navit { };
6097   nedit = callPackage ../applications/editors/nedit {
6098       motif = lesstif;
6099   };
6101   netsurfBrowser = netsurf.browser;
6102   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
6104   nvi = callPackage ../applications/editors/nvi { };
6106   openjump = callPackage ../applications/misc/openjump { };
6108   openoffice = callPackage ../applications/office/openoffice {
6109     inherit (perlPackages) ArchiveZip CompressZlib;
6110     inherit (gnome) GConf ORBit2;
6111     neon = neon029;
6112     stdenv = stdenv2;
6113   };
6115   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
6116     inherit (perlPackages) ArchiveZip CompressZlib;
6117     inherit (gnome) GConf ORBit2;
6118     neon = neon029;
6119     stdenv = stdenv2;
6120   };
6122   opera = callPackage ../applications/networking/browsers/opera {
6123     qt = qt3;
6124   };
6126   pan = callPackage ../applications/networking/newsreaders/pan {
6127     gmime = gmime_2_2;
6128     spellChecking = false;
6129   };
6131   panotools = callPackage ../applications/graphics/panotools { };
6133   pavucontrol = callPackage ../applications/audio/pavucontrol {
6134     inherit (gtkLibs) gtkmm;
6135     inherit (gnome) libglademm;
6136   };
6138   paraview = callPackage ../applications/graphics/paraview {
6139     stdenv = stdenv2;
6140   };
6142   partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
6144   pdftk = callPackage ../tools/typesetting/pdftk { };
6146   pidgin = import ../applications/networking/instant-messengers/pidgin {
6147     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
6148       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
6149     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
6150     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
6151     GStreamer = gst_all.gstreamer;
6152     inherit (gtkLibs) gtk;
6153     inherit (gnome) startupnotification;
6154     inherit (xlibs) libXScrnSaver;
6155     inherit (gst_all) gstPluginsBase;
6156   };
6158   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
6159     imagemagick = imagemagickBig;
6160   };
6162   pidginlatexSF = builderDefsPackage
6163     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
6164     {
6165       inherit pkgconfig pidgin texLive imagemagick which;
6166       inherit (gtkLibs) glib gtk;
6167     };
6169   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
6171   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
6173   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
6175   pinfo = callPackage ../applications/misc/pinfo { };
6177   pinta = callPackage ../applications/graphics/pinta {
6178     gtksharp = gtksharp2;
6179   };
6181   pqiv = callPackage ../applications/graphics/pqiv { };
6183   # perhaps there are better apps for this task? It's how I had configured my preivous system.
6184   # And I don't want to rewrite all rules
6185   procmail = callPackage ../applications/misc/procmail { };
6187   pstree = callPackage ../applications/misc/pstree { };
6189   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
6191   qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
6193   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
6195   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
6197   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
6199   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
6201   ratpoison = callPackage ../applications/window-managers/ratpoison { };
6203   rawtherapee = callPackage ../applications/graphics/rawtherapee {
6204     inherit (gtkLibs) gtk gtkmm;
6205   };
6207   rcs = callPackage ../applications/version-management/rcs { };
6209   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
6211   RealPlayer = callPackage ../applications/video/RealPlayer {
6212       inherit (gtkLibs) glib pango atk gtk;
6213       libstdcpp5 = gcc33.gcc;
6214   };
6216   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
6218   rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
6220   recode = callPackage ../tools/text/recode { };
6222   rsync = callPackage ../applications/networking/sync/rsync {
6223     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
6224   };
6226   rxvt = callPackage ../applications/misc/rxvt { };
6228   # = urxvt
6229   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
6230     perlSupport = false;  };
6232   sakura = callPackage ../applications/misc/sakura {
6233     inherit (gnome) vte;
6234   };
6236   sbagen = callPackage ../applications/misc/sbagen { };
6238   scribus = callPackage ../applications/office/scribus {
6239     inherit (gnome) libart_lgpl;
6240     qt = qt3;
6241   };
6243   seeks = callPackage ../tools/networking/p2p/seeks { };
6245   seg3d = callPackage ../applications/graphics/seg3d {
6246     wxGTK = wxGTK28.override {
6247       unicode = false;
6248   };
6249   };
6251   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
6253   skype_linux = callPackage_i686 ../applications/networking/skype { };
6255   slim = callPackage ../applications/display-managers/slim { };
6257   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6258     inherit fetchurl stdenv stringsWithDeps lib fftw;
6259     inherit pkgconfig gmp gettext;
6260     inherit (xlibs) libXpm libX11;
6261     inherit (gtkLibs) gtk glib;
6262   };
6264   snd = sndBase.passthru.function {
6265     inherit guile mesa libtool jackaudio alsaLib;
6266   };
6268   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6269     inherit (vamp) vampSDK;
6270     qt = qt4;
6271   };
6273   sox = callPackage ../applications/misc/audio/sox { };
6275   stalonetray = callPackage ../applications/window-managers/stalonetray {};
6277   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6278     inherit texinfo;
6279     clisp = clisp_2_44_1;
6280   };
6282   subversion = callPackage ../applications/version-management/subversion/default.nix {
6283     neon = neon029;
6284     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6285     httpServer = getConfig ["subversion" "httpServer"] false;
6286     httpSupport = getConfig ["subversion" "httpSupport"] true;
6287     sslSupport = getConfig ["subversion" "sslSupport"] true;
6288     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6289     perlBindings = getConfig ["subversion" "perlBindings"] false;
6290     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6291     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6292     httpd = apacheHttpd;
6293   };
6295   svk = perlPackages.SVK;
6297   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6298     sslSupport = true;
6299     gpgSupport = true;
6300   };
6302   # linux only by now
6303   synergy = callPackage ../applications/misc/synergy { };
6305   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6306     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6307       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6308       numpy pyasn1;
6309     mock = pythonPackages.mock060;
6310   };
6312   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6313     inherit makeWrapper python;
6314   };
6316   tangogps = callPackage ../applications/misc/tangogps {
6317     gconf = gnome.GConf;
6318   };
6320   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6322   taskJuggler = callPackage ../applications/misc/taskjuggler {
6323     qt = qt3;
6325     # KDE support is not working yet.
6326     inherit (kde3) kdelibs kdebase;
6327     withKde = getPkgConfig "taskJuggler" "kde" false;
6328   };
6330   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6332   thunderbird = thunderbird3;
6334   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6335     inherit (gnome) libIDL;
6336   };
6338   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6339     inherit (gnome) libIDL;
6340   };
6342   timidity = callPackage ../tools/misc/timidity { };
6344   tkcvs = callPackage ../applications/version-management/tkcvs { };
6346   tla = callPackage ../applications/version-management/arch { };
6348   transmission = callPackage ../applications/networking/p2p/transmission { };
6350   twinkle = callPackage ../applications/networking/twinkle {
6351     qt = qt3;
6352     boost = boostFull;
6353   };
6355   unison = callPackage ../applications/networking/sync/unison { };
6357   uucp = callPackage ../tools/misc/uucp { };
6359   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6360     inherit pkgconfig webkit makeWrapper;
6361     inherit (gtkLibs) gtk glib;
6362     inherit (xlibs) libX11 kbproto;
6363     libsoup = gnome28.libsoup_2_31;
6364   };
6366   valknut = callPackage ../applications/networking/p2p/valknut {
6367     qt = qt3;
6368   };
6370   veracity = callPackage ../applications/version-management/veracity {};
6372   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6373   {
6374     inherit monotone cheetahTemplate highlight ctags
6375       makeWrapper graphviz which python;
6376     flup = pythonPackages.flup;
6377   };
6379   vim = callPackage ../applications/editors/vim { };
6381   vimHugeX = vim_configurable;
6383   vim_configurable = import ../applications/editors/vim/configurable.nix {
6384     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6385     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
6386         libXt libXaw libXau libXmu libICE;
6387     inherit (pkgs.gtkLibs) glib gtk;
6388     features = "huge"; # one of  tiny, small, normal, big or huge
6389     # optional features by passing
6390     # python
6391     # TODO mzschemeinterp perlinterp
6392     inherit (pkgs) python perl tcl ruby /*x11*/;
6394     lua = pkgs.lua5;
6396     # optional features by flags
6397     flags = [ "X11" ]; # only flag "X11" by now
6398   };
6400   virtualgl = callPackage ../tools/X11/virtualgl { };
6402   vlc = callPackage ../applications/video/vlc {
6403     dbus = dbus.libs;
6404     alsa = alsaLib;
6405     lua = lua5;
6406   };
6408   vnstat = callPackage ../applications/networking/vnstat { };
6410   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6412   vwm = callPackage ../applications/window-managers/vwm { };
6414   w3m = callPackage ../applications/networking/browsers/w3m {
6415     graphicsSupport = false;
6416   };
6418   weechat = callPackage ../applications/networking/irc/weechat { };
6420   wings = callPackage ../applications/graphics/wings { };
6422   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6423   wmiimenu = import ../applications/window-managers/wmii31 {
6424     libixp = libixp_for_wmii;
6425     inherit fetchurl /* fetchhg */ stdenv gawk;
6426     inherit (xlibs) libX11;
6427   };
6429   wmiiSnap = import ../applications/window-managers/wmii {
6430     libixp = libixp_for_wmii;
6431     inherit fetchurl /* fetchhg */ stdenv gawk;
6432     inherit (xlibs) libX11 xextproto libXt libXext;
6433     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6434   };
6436   wordnet = callPackage ../applications/misc/wordnet { };
6438   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6439     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6440     plugins =
6441       let
6442         enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6443         enableGnash = getConfig [ browserName "enableGnash" ] false;
6444       in
6445        assert !(enableGnash && enableAdobeFlash);
6446        ([]
6447         ++ lib.optional enableGnash gnash
6448         ++ lib.optional enableAdobeFlash flashplayer
6449         # RealPlayer is disabled by default for legal reasons.
6450         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6451         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6452         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6453         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6454        );
6455   };
6457   x11vnc = callPackage ../tools/X11/x11vnc { };
6459   x2vnc = callPackage ../tools/X11/x2vnc { };
6461   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6462     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6463     inherit gsl aalib zlib libpng intltool gettext perl;
6464   };
6466   xara = callPackage ../applications/graphics/xara {
6467     wxGTK = wxGTK26;
6468   };
6470   xawtv = callPackage ../applications/video/xawtv { };
6472   xchat = callPackage ../applications/networking/irc/xchat { };
6474   xchm = callPackage ../applications/misc/xchm { };
6476   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6478   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6480   xen = callPackage ../applications/virtualization/xen {
6481     python = pythonFull;
6482   };
6484   xfig = callPackage ../applications/graphics/xfig {
6485     stdenv = overrideGCC stdenv gcc34;
6486   };
6488   xineUI = callPackage ../applications/video/xine-ui { };
6490   xmms = callPackage ../applications/audio/xmms {
6491     inherit (gnome) esound;
6492     inherit (gtkLibs1x) glib gtk;
6493     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6494   };
6496   xneur = callPackage ../applications/misc/xneur {
6497     GStreamer=gst_all.gstreamer;
6498     inherit (gtkLibs) glib gtk pango atk;
6499   };
6501   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6502     GStreamer = gst_all.gstreamer;
6503   };
6505   xournal = callPackage ../applications/graphics/xournal {
6506     inherit (gtkLibs) gtk atk pango glib;
6507     inherit (gnome) libgnomeprint libgnomeprintui
6508       libgnomecanvas;
6509   };
6511   xpdf = callPackage ../applications/misc/xpdf {
6512     motif = lesstif;
6513     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6514   };
6516   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
6517   };
6519   xpra = callPackage ../tools/X11/xpra {
6520     pyrex = pyrex095;
6521   };
6523   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6524     inherit (gnome) libglade;
6525   };
6527   xterm = callPackage ../applications/misc/xterm { };
6529   xtrace = callPackage ../tools/X11/xtrace { };
6531   xlaunch = callPackage ../tools/X11/xlaunch { };
6533   xmacro = callPackage ../tools/X11/xmacro { };
6535   xmove = callPackage ../applications/misc/xmove { };
6537   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6538     inherit (gtkLibs) gtk;
6539     inherit (xlibs) libX11 libXtst xextproto libXext
6540       inputproto libXi xproto recordproto;
6541     inherit pkgconfig;
6542   };
6544   xvidcap = callPackage ../applications/video/xvidcap {
6545     inherit (gnome) scrollkeeper libglade;
6546   };
6548   yate = callPackage ../applications/misc/yate {
6549     qt = qt4;
6550   };
6552   # doesn't compile yet - in case someone else want's to continue ..
6553   # use Trunk because qgisReleased segfaults no resize for now
6554   qgis = qgisTrunk;
6555   qgisReleased = (import ../applications/misc/qgis) {
6556     inherit composableDerivation fetchsvn stdenv flex lib
6557             ncurses fetchurl perl cmake gdal geos proj x11
6558             gsl libpng zlib bison
6559             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6560             python postgresql pyqt4;
6561     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6562     inherit (xorg) libICE;
6563     qt = qt4;
6565     # optional features
6566     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6567   };
6569   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6570     qgis = qgisReleased;
6571   };
6573   yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
6575   zapping = callPackage ../applications/video/zapping {
6576     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6577     teletextSupport = true;
6578     jpegSupport = true;
6579     pngSupport = true;
6580     recordingSupport = true;
6581   };
6583   zathura = callPackage ../applications/misc/zathura { };
6585   ### GAMES
6587   asc = callPackage ../games/asc {
6588     lua = lua5;
6589     libsigcxx = libsigcxx12;
6590   };
6592   atanks = callPackage ../games/atanks {};
6594   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6596   blackshades = callPackage ../games/blackshades { };
6598   blackshadeselite = callPackage ../games/blackshadeselite { };
6600   bsdgames = callPackage ../games/bsdgames { };
6602   castle_combat = callPackage ../games/castle-combat { };
6604   construoBase = callPackage ../games/construo {
6605     mesa = null;
6606     freeglut = null;
6607   };
6609   construo = construoBase.override {
6610     inherit mesa freeglut;
6611   };
6613   crack_attack = callPackage ../games/crack-attack { };
6615   dwarf_fortress = callPackage_i686 ../games/dwarf-fortress { 
6616     gnomegtk = pkgsi686Linux.gnome.gtk;
6617   };
6619   eduke32 = callPackage ../games/eduke32 { };
6621   egoboo = callPackage ../games/egoboo { };
6623   exult = callPackage ../games/exult {
6624     stdenv = overrideGCC stdenv gcc42;
6625   };
6627   /*
6628   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6629     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6630       autoconf automake libtool flex bison;
6631   });
6632   */
6634   freedink = callPackage ../games/freedink { };
6636   fsg = callPackage ../games/fsg {
6637     wxGTK = wxGTK28.override { unicode = false; };
6638   };
6640   gemrb = callPackage ../games/gemrb {
6641     stdenv = stdenv2;
6642   };
6644   gltron = callPackage ../games/gltron { };
6646   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6647     flex = flex2535;
6648   };
6650   gnugo = callPackage ../games/gnugo { };
6652   gparted = callPackage ../tools/misc/gparted {
6653     inherit (gtkLibs) gtk glib gtkmm;
6654     inherit (gnome) gnomedocutils;
6655   };
6657   hexen = callPackage ../games/hexen { };
6659   instead = callPackage ../games/instead {
6660     lua = lua5;
6661   };
6663   kobodeluxe = callPackage ../games/kobodeluxe { };
6665   lincity = builderDefsPackage (import ../games/lincity) {
6666     inherit (xlibs) libX11 libXext xextproto
6667       libICE libSM xproto;
6668     inherit libpng zlib;
6669   };
6671   micropolis = callPackage ../games/micropolis { };
6673   openttd = callPackage ../games/openttd {
6674     zlib = zlibStatic;
6675   };
6677   pioneers = callPackage ../games/pioneers { };
6679   quake3demo = callPackage ../games/quake3/wrapper {
6680     name = "quake3-demo-${quake3game.name}";
6681     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6682     game = quake3game;
6683     paks = [quake3demodata];
6684   };
6686   quake3demodata = callPackage ../games/quake3/demo { };
6688   quake3game = callPackage ../games/quake3/game { };
6690   rogue = callPackage ../games/rogue { };
6692   scummvm = callPackage ../games/scummvm { };
6694   scorched3d = callPackage ../games/scorched3d {
6695     wxGTK = wxGTK26;
6696   };
6698   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6699     inherit (gtkLibs) gtk;
6700     inherit pkgconfig fetchsvn perl;
6701     inherit (xlibs) libX11;
6702   };
6704   six = callPackage ../games/six {
6705     inherit (kde3) arts kdelibs;
6706   };
6708   # You still can override by passing more arguments.
6709   spaceOrbit = callPackage ../games/orbit {
6710     inherit (gnome) esound;  };
6712   spring = callPackage ../games/spring {
6713     stdenv = stdenv2;
6714   };
6716   springLobby = callPackage ../games/spring/spring-lobby.nix { 
6717     stdenv = stdenv2;
6718   };
6720   superTux = callPackage ../games/super-tux { };
6722   superTuxKart = callPackage ../games/super-tux-kart { };
6724   teeworlds = callPackage ../games/teeworlds { };
6726   tennix = callPackage ../games/tennix { };
6728   /*tpm = import ../games/thePenguinMachine {
6729     inherit stdenv fetchurl pil pygame SDL;
6730     python24 = python;
6731   };*/
6733   tremulous = callPackage ../games/tremulous { };
6735   torcs = callPackage ../games/torcs {
6736     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
6737     # i686 is the only platform I know than can do that linking without plib built with -fPIC
6738     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
6739   };
6741   ufoai = callPackage ../games/ufoai {
6742     inherit (gnome) gtksourceview gtkglext;
6743   };
6745   ultimatestunts = callPackage ../games/ultimatestunts { };
6747   urbanterror = callPackage ../games/urbanterror { };
6749   ut2004demo = callPackage ../games/ut2004demo { };
6751   warsow = callPackage ../games/warsow {
6752     libjpeg = libjpeg62;
6753   };
6755   warzone2100 = callPackage ../games/warzone2100 {
6756     flex = flex2535;
6757   };
6759   xboard = builderDefsPackage (import ../games/xboard) {
6760     inherit (xlibs) libX11 xproto libXt libXaw libSM
6761       libICE libXmu libXext libXpm;
6762     inherit gnuchess texinfo;
6763   };
6765   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6766     inherit (xlibs) libX11 xproto libXpm libXt;
6767   };
6769   zdoom = callPackage ../games/zdoom { };
6771   zoom = callPackage ../games/zoom { };
6773   keen4 = callPackage ../games/keen4 { };
6776   ### DESKTOP ENVIRONMENTS
6779   enlightenment = callPackage ../desktops/enlightenment { };
6781   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6783   gnome = gnome28;
6785   kde3 = recurseIntoAttrs {
6787     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6788       stdenv = overrideGCC stdenv gcc43;
6789       qt = qt3;
6790     };
6792     kdebase = callPackage ../desktops/kde-3/kdebase {
6793       stdenv = overrideGCC stdenv gcc43;
6794       inherit (kde3) kdelibs;
6795       qt = qt3;
6796     };
6798     arts = callPackage ../development/libraries/arts {
6799       qt = qt3;
6800       inherit (gnome) glib;
6801       inherit (kde3) kdelibs;
6802     };
6804     k3b = callPackage ../applications/misc/k3b/1.0.nix {
6805       inherit (kde3) kdelibs;
6806     };
6808     kbasket = callPackage ../applications/misc/kbasket {
6809       stdenv = overrideGCC stdenv gcc43;
6810       inherit (kde3) kdelibs;
6811     };
6813     kile = callPackage ../applications/editors/kile {
6814       inherit (kde3) arts kdelibs;
6815       qt = qt3;
6816     };
6818     kphone = callPackage ../applications/networking/kphone {
6819       qt = qt3;
6820       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6821     };
6823     kuickshow = callPackage ../applications/graphics/kuickshow {
6824       inherit (kde3) arts kdelibs;
6825       qt = qt3;
6826     };
6828     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6829       inherit (kde3) kdelibs;
6830       qt = qt3;
6831     };
6833   };
6835   kde4 = kde45;
6837   kde44 = makeOverridable (import ../desktops/kde-4.4) (
6838     applyGlobalOverrides (p: { kde4 = p.kde44; qt4 = p.qt46; }) //
6839     { stdenv = pkgs.stdenv2; });
6841   kde45 = callPackage ../desktops/kde-4.5 {
6842     callPackage =
6843       let
6844         # !!! Ugly, inefficient.
6845         pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; }));
6846       in
6847         pkgs_for_45.newScope pkgs_for_45.kde45;
6848     stdenv = pkgs.stdenv2;
6849   };
6851   xfce = xfce4;
6853   xfce4 = recurseIntoAttrs
6854     (let callPackage = newScope pkgs.xfce4; in
6855      import ../desktops/xfce-4 { inherit callPackage pkgs; });
6858   ### SCIENCE
6860   xplanet = callPackage ../applications/science/xplanet {
6861     inherit (gtkLibs) pango;
6862   };
6865   ### SCIENCE/GEOMETRY
6867   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6868     inherit (gnome) libglade gtk;
6869     inherit libxml2 guile perl intltool libtool pkgconfig;
6870   };
6872   tetgen = callPackage ../applications/science/geometry/tetgen { };
6875   ### SCIENCE/BIOLOGY
6877   alliance = callPackage ../applications/science/electronics/alliance {
6878     motif = lesstif;
6879   };
6881   arb = callPackage ../applications/science/biology/arb {
6882     lesstif = lesstif93;
6883     stdenv = overrideGCC stdenv gcc42;
6884   };
6886   biolib = callPackage ../development/libraries/science/biology/biolib { };
6888   emboss = callPackage ../applications/science/biology/emboss { };
6890   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6892   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6893     inherit tcsh mesa lesstif;
6894     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6895       libXmu libXext;
6896   };
6898   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6900   paml = callPackage ../applications/science/biology/paml { };
6902   /* slr = import ../applications/science/biology/slr {
6903     inherit fetchurl stdenv liblapack;
6904   }; */
6906   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6909   ### SCIENCE/MATH
6911   atlas = callPackage ../development/libraries/science/math/atlas { };
6913   blas = callPackage ../development/libraries/science/math/blas { };
6915   content = builderDefsPackage ../applications/science/math/content {
6916     inherit mesa lesstif;
6917     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6918       libXmu libXext libXcursor;
6919   };
6921   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6924   ### SCIENCE/LOGIC
6926   coq = callPackage ../applications/science/logic/coq {
6927     camlp5 = camlp5_transitional;
6928   };
6930   eprover = callPackage ../applications/science/logic/eProver {
6931     texLive = texLiveAggregationFun {
6932       paths = [
6933         texLive texLiveExtra
6934       ];
6935   };
6936   };
6938   hol = callPackage ../applications/science/logic/hol { };
6940   hol_light = callPackage ../applications/science/logic/hol_light { };
6942   hol_light_sources = callPackage ../applications/science/logic/hol_light/sources.nix { };
6944   hol_light_checkpoint_dmtcp =
6945      recurseIntoAttrs (callPackage ../applications/science/logic/hol_light/dmtcp_checkpoint.nix { });
6947   isabelle = import ../applications/science/logic/isabelle {
6948     inherit (pkgs) stdenv fetchurl nettools perl polyml;
6949     inherit (pkgs.emacs23Packages) proofgeneral;
6950   };
6952   prover9 = callPackage ../applications/science/logic/prover9 { };
6954   ssreflect = callPackage ../applications/science/logic/ssreflect {
6955     camlp5 = camlp5_transitional;
6956   };
6958   ### SCIENCE / ELECTRONICS
6960   caneda = callPackage ../applications/science/electronics/caneda {
6961     stdenv = stdenv2;
6962     # At the time of writing, it fails to build with qt47
6963     qt4 = qt46;
6964   };
6966   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
6968   kicad = callPackage ../applications/science/electronics/kicad {
6969     stdenv = stdenv2;
6970   };
6972   ngspice = callPackage ../applications/science/electronics/ngspice { };
6974   qucs = callPackage ../applications/science/electronics/qucs {
6975     qt = qt3;
6976   };
6978   xoscope = callPackage ../applications/science/electronics/xoscope { };
6981   ### SCIENCE / MATH
6983   maxima = callPackage ../applications/science/math/maxima { };
6985   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
6987   scilab = callPackage ../applications/science/math/scilab {
6988     withXaw3d = false;
6989     withTk = true;
6990     withGtk = false;
6991     withOCaml = true;
6992     withX = true;
6993   };
6995   yacas = callPackage ../applications/science/math/yacas { };
6997   ### SCIENCE / MISC
6999   golly = callPackage ../applications/science/misc/golly { };
7001   simgrid = callPackage ../applications/science/misc/simgrid {
7002     stdenv = stdenv2;
7003   };
7005   tulip = callPackage ../applications/science/misc/tulip {
7006     qt = qt4;
7007   };
7009   vite = callPackage ../applications/science/misc/vite {
7010     qt = qt4;
7011     stdenv = stdenv2;
7012   };
7014   ### MISC
7016   atari800 = callPackage ../misc/emulators/atari800 { };
7018   ataripp = callPackage ../misc/emulators/atari++ { };
7020   auctex = callPackage ../misc/tex/auctex { };
7022   busybox = callPackage ../misc/busybox {
7023     enableStatic = true;
7024   };
7026   cups = callPackage ../misc/cups { };
7028   gutenprint = callPackage ../misc/drivers/gutenprint { };
7030   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
7032   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
7034   dblatex = callPackage ../misc/tex/dblatex { };
7036   dosbox = callPackage ../misc/emulators/dosbox { };
7038   dpkg = callPackage ../tools/package-management/dpkg { };
7040   ekiga = newScope (pkgs.gtkLibs // pkgs.gnome) ../applications/networking/ekiga { };
7042   electricsheep = callPackage ../misc/screensavers/electricsheep { };
7044   foldingathome = callPackage ../misc/foldingathome { };
7046   freestyle = callPackage ../misc/freestyle {
7047     #stdenv = overrideGCC stdenv gcc41;
7048   };
7050   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
7051     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
7052       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
7053       docutils;
7054     dbus = dbus.libs;
7055     inherit (gnome) gtk libglade;
7056     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
7057       scrnsaverproto;
7058     python = pythonFull;
7059   };
7061   generator = callPackage ../misc/emulators/generator {
7062     inherit (gtkLibs1x) gtk;
7063   };
7065   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
7067   ghostscript = callPackage ../misc/ghostscript {
7068     x11Support = false;
7069     cupsSupport = getPkgConfig "ghostscript" "cups" true;
7070   };
7072   ghostscriptX = appendToName "with-X" (ghostscript.override {
7073     x11Support = true;
7074   });
7076   gxemul = callPackage ../misc/gxemul { };
7078   hplip = callPackage ../misc/drivers/hplip {
7079     qtSupport = true;
7080   };
7082   # using the new configuration style proposal which is unstable
7083   jackaudio = callPackage ../misc/jackaudio { };
7085   keynav = callPackage ../tools/X11/keynav { };
7087   lazylist = callPackage ../misc/tex/lazylist { };
7089   lilypond = callPackage ../misc/lilypond {
7090     inherit (gtkLibs) pango;
7091     flex = flex2535;
7092   };
7094   martyr = callPackage ../development/libraries/martyr { };
7096   maven = callPackage ../misc/maven/maven-1.0.nix { };
7097   maven2 = callPackage ../misc/maven { };
7098   maven3 = callPackage ../misc/maven/3.0.nix { };
7100   mess = callPackage ../misc/emulators/mess { };
7102   nix = nixStable;
7104   nixStable = callPackage ../tools/package-management/nix {
7105     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7106     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7107   };
7109   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
7110     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7111     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7112   };
7114   # The SQLite branch.
7115   nixSqlite = lowPrio (callPackage ../tools/package-management/nix/sqlite.nix {
7116     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
7117     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
7118   });
7120   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
7121     import ../tools/package-management/nix/custom.nix {
7122       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
7123         autoconf libtool configureFlags enableScripts lib libxml2 boehmgc
7124         pkgconfig;
7125       flex = flex2535;
7126       bison = bison24;
7127       aterm = aterm25;
7128       db4 = db45;
7129       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
7130     };
7132   disnix = callPackage ../tools/package-management/disnix { };
7134   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
7135     enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
7136     enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
7137     enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
7138     enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
7139     enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
7140   };
7142   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
7144   latex2html = callPackage ../misc/tex/latex2html/default.nix {
7145     tex = tetex;
7146   };
7148   mysqlWorkbench = newScope gnome ../applications/misc/mysql-workbench {
7149     lua = lua5;
7150     inherit (pythonPackages) pexpect paramiko;
7151   };
7153   pgadmin = callPackage ../applications/misc/pgadmin { };
7155   pgf = pgf2;
7157   # Keep the old PGF since some documents don't render properly with
7158   # the new one.
7159   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
7161   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
7163   polytable = callPackage ../misc/tex/polytable { };
7165   psi = newScope pkgs.kde45 ../applications/networking/instant-messengers/psi { };
7167   putty = callPackage ../applications/networking/remote/putty { };
7169   rssglx = callPackage ../misc/screensavers/rss-glx { };
7171   xlockmore = callPackage ../misc/screensavers/xlockmore {
7172     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
7173   };
7175   saneBackends = callPackage ../misc/sane-backends {
7176     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
7177   };
7179   saneFrontends = callPackage ../misc/sane-front { };
7181   sourceAndTags = import ../misc/source-and-tags {
7182     inherit pkgs stdenv unzip lib ctags;
7183     hasktags = haskellPackages.myhasktags;
7184   };
7186   splix = callPackage ../misc/cups/drivers/splix { };
7188   tetex = callPackage ../misc/tex/tetex { };
7190   tex4ht = callPackage ../misc/tex/tex4ht { };
7192   texFunctions = import ../misc/tex/nix pkgs;
7194   texLive = builderDefsPackage (import ../misc/tex/texlive) {
7195     inherit builderDefs zlib bzip2 ncurses libpng ed
7196       gd t1lib freetype icu perl ruby expat curl
7197       libjpeg bison python fontconfig;
7198     inherit (xlibs) libXaw libX11 xproto libXt libXpm
7199       libXmu libXext xextproto libSM libICE;
7200     flex = flex2535;
7201     ghostscript = ghostscriptX;
7202   };
7204   /* Look in configurations/misc/raskin.nix for usage example (around revisions
7205   where TeXLive was added)
7207   (texLiveAggregationFun {
7208     paths = [texLive texLiveExtra texLiveCMSuper
7209       texLiveBeamer
7210     ];
7211   })
7213   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
7214   Just installing a few packages doesn't work.
7215   */
7216   texLiveAggregationFun =
7217     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
7219   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
7220     inherit texLive;
7221   };
7223   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
7224     inherit texLive;
7225   };
7227   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
7228     inherit texLive;
7229   };
7231   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
7232     inherit texLive;
7233   };
7235   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
7236     inherit texLiveLatexXColor texLive;
7237   };
7239   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
7240     inherit texLiveLatexXColor texLivePGF texLive;
7241   };
7243   trac = callPackage ../misc/trac {
7244     inherit (pythonPackages) pysqlite;
7245   };
7247   vice = callPackage ../misc/emulators/vice { };
7249   # Wine cannot be built in 64-bit; use a 32-bit build instead.
7250   wine = callPackage_i686 ../misc/emulators/wine {
7251     flex = pkgsi686Linux.flex2535;
7252   };
7254   wineWarcraft = callPackage_i686 ../misc/emulators/wine/wine-warcraft.nix {
7255     flex = pkgsi686Linux.flex2535;
7256   };
7258   x2x = callPackage ../tools/X11/x2x { };
7260   xosd = callPackage ../misc/xosd { };
7262   xsane = callPackage ../misc/xsane { };
7264   yafc = callPackage ../applications/networking/yafc { };
7266   myEnvFun = import ../misc/my-env {
7267     inherit substituteAll pkgs;
7268     inherit (stdenv) mkDerivation;
7269   };
7271   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
7273 }; in pkgs