Add netperf
[NixPkgs.git] / pkgs / top-level / all-packages.nix
blob120521058f4e6d84abec975d8ba787cc307630db
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 ? null
39 let config_ = config; platform_ = platform; in # rename the function arguments
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   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
74   platform = if platform_ != null then platform_
75     else getConfig [ "platform" ] (import ./platforms.nix).pc;
77   # Return an attribute from the Nixpkgs configuration file, or
78   # a default value if the attribute doesn't exist.
79   getConfig = attrPath: default: lib.attrByPath attrPath default config;
82   # Helper functions that are exported through `pkgs'.
83   helperFunctions =
84     stdenvAdapters //
85     (import ../build-support/trivial-builders.nix { inherit (pkgs) stdenv; inherit (pkgs.xorg) lndir; });
87   stdenvAdapters =
88     import ../stdenv/adapters.nix { inherit (pkgs) dietlibc fetchurl runCommand; };
91   # Allow packages to be overriden globally via the `packageOverrides'
92   # configuration option, which must be a function that takes `pkgs'
93   # as an argument and returns a set of new or overriden packages.
94   # The `packageOverrides' function is called with the *original*
95   # (un-overriden) set of packages, allowing packageOverrides
96   # attributes to refer to the original attributes (e.g. "foo =
97   # ... pkgs.foo ...").
98   pkgs = applyGlobalOverrides (getConfig ["packageOverrides"] (pkgs: {}));
101   # Return the complete set of packages, after applying the overrides
102   # returned by the `overrider' function (see above).  Warning: this
103   # function is very expensive!
104   applyGlobalOverrides = overrider:
105     let
106       # Call the overrider function.  We don't want stdenv overrides
107       # in the case of cross-building, or otherwise the basic
108       # overrided packages will not be built with the crossStdenv
109       # adapter.
110       overrides = overrider pkgsOrig //
111         (lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) pkgsOrig.stdenv.overrides);
113       # The un-overriden packages, passed to `overrider'.
114       pkgsOrig = pkgsFun pkgs {};
116       # The overriden, final packages.
117       pkgs = pkgsFun pkgs overrides;
118     in pkgs;
121   # The package compositions.  Yes, this isn't properly indented.
122   pkgsFun = pkgs: __overrides:
123     with helperFunctions;
124     let defaultScope = pkgs // pkgs.xorg; in
125     helperFunctions // rec {
127   # `__overrides' is a magic attribute that causes the attributes in
128   # its value to be added to the surrounding `rec'.  We'll remove this
129   # eventually.
130   inherit __overrides;
133   # We use `callPackage' to be able to omit function arguments that
134   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
135   # Use `newScope' for sets of packages in `pkgs' (see e.g. `gtkLibs'
136   # below).
137   callPackage = newScope {};
139   newScope = extra: lib.callPackageWith (defaultScope // extra);
142   # Override system. This is useful to build i686 packages on x86_64-linux.
143   forceSystem = system: (import ./all-packages.nix) {
144     inherit system;
145     inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
146   };
149   # Used by wine, firefox with debugging version of Flash, ...
150   pkgsi686Linux = forceSystem "i686-linux";
152   callPackage_i686 = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg);
155   # For convenience, allow callers to get the path to Nixpkgs.
156   path = ../..;
159   ### Symbolic names.
162   x11 = xlibsWrapper;
164   # `xlibs' is the set of X library components.  This used to be the
165   # old modular X libraries project (called `xlibs') but now it's just
166   # the set of packages in the modular X.org tree (which also includes
167   # non-library components like the server, drivers, fonts, etc.).
168   xlibs = xorg // {xlibs = xlibsWrapper;};
171   ### Helper functions.
174   inherit lib config getConfig stdenvAdapters;
176   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
178   # Applying this to an attribute set will cause nix-env to look
179   # inside the set for derivations.
180   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
182   builderDefs = lib.composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
183     inherit stringsWithDeps lib stdenv writeScript
184       fetchurl fetchmtn fetchgit;
185   };
187   builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
189   stringsWithDeps = lib.stringsWithDeps;
192   ### STANDARD ENVIRONMENT
195   allStdenvs = import ../stdenv {
196     inherit system stdenvType platform;
197     allPackages = args: import ./all-packages.nix ({ inherit config; } // args);
198   };
200   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
202   stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
203     gccCrossStageFinal;
205   stdenv =
206     if bootStdenv != null then (bootStdenv // {inherit platform;}) else
207       let changer = getConfig ["replaceStdenv"] null;
208       in if changer != null then
209         changer {
210           stdenv = stdenvCross;
211           overrideSetup = overrideSetup;
212         }
213       else if crossSystem != null then
214         stdenvCross
215       else
216         defaultStdenv;
218   forceBuildDrv = drv : if (crossSystem == null) then drv else
219     (drv // { hostDrv = drv.buildDrv; });
221   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
222   # it uses GCC compiled with multilib support; on i686-linux, it's
223   # just the plain stdenv.
224   stdenv_32bit =
225     if system == "x86_64-linux" then
226       overrideGCC stdenv gcc43_multi
227     else
228       stdenv;
231   ### BUILD SUPPORT
233   attrSetToDir = arg : import ../build-support/upstream-updater/attrset-to-dir.nix {
234     inherit writeTextFile stdenv lib;
235     theAttrSet = arg;
236   };
238   buildEnv = import ../build-support/buildenv {
239     inherit runCommand perl;
240   };
242   dotnetenv = import ../build-support/dotnetenv {
243     inherit stdenv;
244     dotnetfx = dotnetfx40;
245   };
247   vsenv = callPackage ../build-support/vsenv {
248     vs = vs90wrapper;
249   };
251   fetchbzr = import ../build-support/fetchbzr {
252     inherit stdenv bazaar;
253   };
255   fetchcvs = import ../build-support/fetchcvs {
256     inherit stdenv cvs;
257   };
259   fetchdarcs = import ../build-support/fetchdarcs {
260     inherit stdenv darcs nix;
261   };
263   fetchgit = import ../build-support/fetchgit {
264     inherit stdenv git cacert;
265   };
267   fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
269   fetchmtn = callPackage ../build-support/fetchmtn (getConfig ["fetchmtn"] {});
271   fetchsvn = import ../build-support/fetchsvn {
272     inherit stdenv subversion openssh;
273     sshSupport = true;
274   };
276   fetchsvnrevision = import ../build-support/fetchsvnrevision runCommand subversion;
278   fetchsvnssh = import ../build-support/fetchsvnssh {
279     inherit stdenv subversion openssh expect;
280     sshSupport = true;
281   };
283   fetchhg = import ../build-support/fetchhg {
284     inherit stdenv mercurial nix;
285   };
287   # `fetchurl' downloads a file from the network.
288   fetchurl = import ../build-support/fetchurl {
289     inherit curl stdenv;
290   };
292   # A wrapper around fetchurl that generates miror://gnome URLs automatically
293   fetchurl_gnome = callPackage ../build-support/fetchurl/gnome.nix { };
295   # fetchurlBoot is used for curl and its dependencies in order to
296   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
297   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
298   # uses the curl from the previous bootstrap phase (e.g. a statically
299   # linked curl in the case of stdenv-linux).
300   fetchurlBoot = stdenv.fetchurlBoot;
302   resolveMirrorURLs = {url}: fetchurl {
303     showURLs = true;
304     inherit url;
305   };
307   makeDesktopItem = import ../build-support/make-desktopitem {
308     inherit stdenv;
309   };
311   makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
312     inherit stdenv perl cpio contents ubootChooser;
313   };
315   makeWrapper = makeSetupHook {} ../build-support/make-wrapper/make-wrapper.sh;
317   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
318     import ../build-support/kernel/modules-closure.nix {
319       inherit stdenv module_init_tools kernel nukeReferences
320         rootModules allowMissing;
321     };
323   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
325   srcOnly = args: (import ../build-support/src-only) ({inherit stdenv; } // args);
327   substituteAll = import ../build-support/substitute/substitute-all.nix {
328     inherit stdenv;
329   };
331   nukeReferences = callPackage ../build-support/nuke-references/default.nix { };
333   vmTools = import ../build-support/vm/default.nix {
334     inherit pkgs;
335   };
337   releaseTools = import ../build-support/release/default.nix {
338     inherit pkgs;
339   };
341   composableDerivation = (import ../lib/composable-derivation.nix) {
342     inherit pkgs lib;
343   };
345   platforms = import ./platforms.nix;
348   ### TOOLS
350   acct = callPackage ../tools/system/acct { };
352   aefs = callPackage ../tools/filesystems/aefs { };
354   aircrackng = callPackage ../tools/networking/aircrack-ng { };
356   archivemount = callPackage ../tools/filesystems/archivemount { };
358   asymptote = builderDefsPackage ../tools/graphics/asymptote {
359     inherit freeglut ghostscriptX imagemagick fftw boehmgc
360       mesa ncurses readline gsl libsigsegv python zlib perl
361       texinfo lzma;
362     texLive = texLiveAggregationFun {
363       paths = [
364         texLive texLiveExtra
365       ];
366     };
367   };
369   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
371   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
373   altermime = callPackage ../tools/networking/altermime {};
375   amule = callPackage ../tools/networking/p2p/amule { };
377   amuleDaemon = appendToName "daemon" (amule.override {
378     monolithic = false;
379     daemon = true;
380   });
382   amuleGui = appendToName "gui" (amule.override {
383     monolithic = false;
384     client = true;
385   });
387   aria = builderDefsPackage (import ../tools/networking/aria) { };
389   aria2 = callPackage ../tools/networking/aria2 { };
391   at = callPackage ../tools/system/at { };
393   atftp = callPackage ../tools/networking/atftp {};
395   autogen = callPackage ../development/tools/misc/autogen {
396     guile = guile_1_8;
397   };
399   autojump = callPackage ../tools/misc/autojump { };
401   avahi = callPackage ../development/libraries/avahi {
402     qt4Support = getConfig [ "avahi" "qt4Support" ] false;
403   };
405   aws_mturk_clt = callPackage ../tools/misc/aws-mturk-clt { };
407   axel = callPackage ../tools/networking/axel { };
409   azureus = callPackage ../tools/networking/p2p/azureus { };
411   banner = callPackage ../games/banner {};
413   barcode = callPackage ../tools/graphics/barcode {};
415   bc = callPackage ../tools/misc/bc { };
417   bfr = callPackage ../tools/misc/bfr { };
419   bootchart = callPackage ../tools/system/bootchart { };
421   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
422     inherit libuuid zlib acl;
423   };
425   catdoc = callPackage ../tools/text/catdoc { };
427   eggdrop = callPackage ../tools/networking/eggdrop { };
429   mcrl = callPackage ../tools/misc/mcrl { };
431   mcrl2 = callPackage ../tools/misc/mcrl2 { };
433   syslogng = callPackage ../tools/system/syslog-ng { };
435   asciidoc = callPackage ../tools/typesetting/asciidoc { };
437   autossh = callPackage ../tools/networking/autossh { };
439   bacula = callPackage ../tools/backup/bacula { };
441   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
442     inherit (strategoPackages016) strategoxt sdf;
443   };
445   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
446     gui = true;
447   };
449   bittornado = callPackage ../tools/networking/p2p/bit-tornado {
450     inherit (pythonPackages) ssl;
451   };
453   blueman = callPackage ../tools/bluetooth/blueman {
454     inherit (pythonPackages) notify;
455   };
457   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
458     inherit unzip;
459   };
461   bogofilter = callPackage ../tools/misc/bogofilter {
462     bdb = db4;
463   };
465   bsdiff = callPackage ../tools/compression/bsdiff { };
467   bup = callPackage ../tools/backup/bup { };
469   bzip2 = callPackage ../tools/compression/bzip2 { };
471   cabextract = callPackage ../tools/archivers/cabextract { };
473   ccid = callPackage ../tools/security/ccid { };
475   ccrypt = callPackage ../tools/security/ccrypt { };
477   cdecl = callPackage ../development/tools/cdecl { };
479   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
481   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
483   cfdg = builderDefsPackage ../tools/graphics/cfdg {
484     inherit libpng bison flex;
485   };
487   checkinstall = callPackage ../tools/package-management/checkinstall { };
489   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
490     inherit makeWrapper python;
491   };
493   chkrootkit = callPackage ../tools/security/chkrootkit { };
495   cksfv = callPackage ../tools/networking/cksfv { };
497   colordiff = callPackage ../tools/text/colordiff { };
499   convertlit = callPackage ../tools/text/convertlit { };
501   unifdef = callPackage ../development/tools/misc/unifdef { };
503   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
505   cloog = callPackage ../development/libraries/cloog { };
507   cloogppl = callPackage ../development/libraries/cloog-ppl { };
509   convmv = callPackage ../tools/misc/convmv { };
511   coreutils = callPackage (if stdenv ? isDietLibC
512       then ../tools/misc/coreutils-5
513       else ../tools/misc/coreutils)
514     {
515       # TODO: Add ACL support for cross-Linux.
516       aclSupport = crossSystem == null && stdenv.isLinux;
517     };
519   cpio = callPackage ../tools/archivers/cpio { };
521   cromfs = callPackage ../tools/archivers/cromfs { };
523   cron = callPackage ../tools/system/cron {  # see also fcron
524   };
526   curl = makeOverridable (import ../tools/networking/curl) rec {
527     fetchurl = fetchurlBoot;
528     inherit stdenv zlib openssl libssh2;
529     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
530     sslSupport = zlibSupport;
531     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
532   };
534   cunit = callPackage ../tools/misc/cunit { };
536   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
538   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
539   };
541   dar = callPackage ../tools/archivers/dar { };
543   davfs2 = callPackage ../tools/filesystems/davfs2 {
544     neon = neon029;
545   };
547   dbench = callPackage ../development/tools/misc/dbench { };
549   dcraw = callPackage ../tools/graphics/dcraw { };
551   debootstrap = callPackage ../tools/misc/debootstrap { };
553   detox = callPackage ../tools/misc/detox { };
555   ddclient = callPackage ../tools/networking/ddclient { };
557   dd_rescue = callPackage ../tools/system/dd_rescue { };
559   ddrescue = callPackage ../tools/system/ddrescue { };
561   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
563   dev86 = callPackage ../development/compilers/dev86 {
564     /* Using GNU Make 3.82 leads to this:
565          make[4]: *** No rule to make target `__ldivmod.o)'
566        So use 3.81.  */
567     stdenv = overrideInStdenv stdenv [gnumake381];
568   };
570   dnsmasq = callPackage ../tools/networking/dnsmasq {
571     # TODO i18n can be installed as well, implement it?
572   };
574   dhcp = callPackage ../tools/networking/dhcp { };
576   dhcpcd = callPackage ../tools/networking/dhcpcd { };
578   diffstat = callPackage ../tools/text/diffstat { };
580   diffutils = callPackage ../tools/text/diffutils { };
582   dirmngr = callPackage ../tools/security/dirmngr { };
584   disper = callPackage ../tools/misc/disper { };
586   dmg2img = callPackage ../tools/misc/dmg2img { };
588   docbook2x = callPackage ../tools/typesetting/docbook2x {
589     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
590     libiconv = if stdenv.isDarwin then libiconv else null;
591   };
593   dosfstools = callPackage ../tools/filesystems/dosfstools { };
595   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
597   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
599   dropbear = callPackage ../tools/networking/dropbear {
600     enableStatic = true;
601     zlib = zlibStatic;
602   };
604   duplicity = callPackage ../tools/backup/duplicity {
605     inherit (pythonPackages) boto;
606     gnupg = gnupg1;
607   };
609   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
611   dvgrab = callPackage ../tools/video/dvgrab { };
613   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
615   ebook_tools = callPackage ../tools/text/ebook-tools { };
617   ecryptfs = callPackage ../tools/security/ecryptfs { };
619   efibootmgr = callPackage ../tools/system/efibootmgr { };
621   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
623   encfs = callPackage ../tools/filesystems/encfs { };
625   enscript = callPackage ../tools/text/enscript { };
627   ethtool = callPackage ../tools/misc/ethtool { };
629   euca2ools = callPackage ../tools/virtualization/euca2ools { };
631   exif = callPackage ../tools/graphics/exif { };
633   exiftags = callPackage ../tools/graphics/exiftags { };
635   expect = callPackage ../tools/misc/expect { };
637   fakeroot = callPackage ../tools/system/fakeroot { };
639   fcron = callPackage ../tools/system/fcron {  # see also cron
640   };
642   fdisk = callPackage ../tools/system/fdisk { parted = parted_2_3; };
644   fdm = callPackage ../tools/networking/fdm {};
646   figlet = callPackage ../tools/misc/figlet { };
648   file = callPackage ../tools/misc/file { };
650   fileschanged = callPackage ../tools/misc/fileschanged { };
652   findutils =
653     if stdenv.isDarwin
654     then findutils4227
655     else callPackage ../tools/misc/findutils { };
657   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
659   finger_bsd = callPackage ../tools/networking/bsd-finger { };
661   flvstreamer = callPackage ../tools/networking/flvstreamer { };
663   flvtool2 = callPackage ../tools/video/flvtool2 { };
665   fontforge = callPackage ../tools/misc/fontforge { };
667   fontforgeX = callPackage ../tools/misc/fontforge {
668     withX11 = true;
669   };
671   freeipmi = callPackage ../tools/system/freeipmi {};
673   freetalk = callPackage ../applications/networking/instant-messengers/freetalk {
674     guile = guile_1_8;
675   };
677   ftgl = callPackage ../development/libraries/ftgl { };
679   fuppes = callPackage ../tools/networking/fuppes {
680     ffmpeg = ffmpeg_0_6_90;
681   };
683   fsfs = callPackage ../tools/filesystems/fsfs { };
685   dos2unix = callPackage ../tools/text/dos2unix { };
687   uni2ascii = callPackage ../tools/text/uni2ascii { };
689   gawk = callPackage ../tools/text/gawk { };
691   gdmap = callPackage ../tools/system/gdmap {
692     inherit (pkgs.gtkLibs) gtk;
693   };
695   genext2fs = callPackage ../tools/filesystems/genext2fs { };
697   gengetopt = callPackage ../development/tools/misc/gengetopt { };
699   getmail = callPackage ../tools/networking/getmail { };
701   getopt = callPackage ../tools/misc/getopt { };
703   gftp = callPackage ../tools/networking/gftp { };
705   gifsicle = callPackage ../tools/graphics/gifsicle { };
707   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
708     inherit fuse flex bison;
709   };
711   glxinfo = callPackage ../tools/graphics/glxinfo { };
713   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
714     inherit intltool perl gettext libusb pkgconfig bluez readline pcsclite
715       libical;
716     inherit (gtkLibs) gtk glib;
717     inherit (xorg) libXpm;
718   };
720   gnugrep =
721     # Use libiconv only on non-GNU platforms (we can't test with
722     # `stdenv ? glibc' at this point.)
723     let gnu = stdenv.isLinux; in
724       callPackage ../tools/text/gnugrep {
725         libiconv = if gnu then null else libiconv;
726       };
728   gnupatch = callPackage ../tools/text/gnupatch { };
730   gnupg1orig = callPackage ../tools/security/gnupg1 {
731     ideaSupport = false;
732   };
734   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
736   # use config.packageOverrides if you prefer original gnupg1
737   gnupg1 = gnupg1compat;
739   gnupg = callPackage ../tools/security/gnupg { };
741   gnuplot = callPackage ../tools/graphics/gnuplot {
742     inherit (gtkLibs) pango;
743     texLive = null;
744     lua = null;
745   };
747   gnused = callPackage ../tools/text/gnused { };
749   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
751   gnutar = callPackage ../tools/archivers/gnutar { };
753   gnuvd = callPackage ../tools/misc/gnuvd { };
755   gource = callPackage ../tools/misc/gource { };
757   gptfdisk = callPackage ../tools/system/gptfdisk { };
759   graphviz = callPackage ../tools/graphics/graphviz {
760     inherit (gtkLibs) pango;
761   };
763   /* Last version to export to dia */
764   graphviz_2_24 = callPackage ../tools/graphics/graphviz/2.0.nix {
765     inherit (gtkLibs) pango;
766   };
768   /* Readded by Michael Raskin. There are programs in the wild
769    * that do want 2.0 but not 2.22. Please give a day's notice for
770    * objections before removal.
771    */
772   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
773     inherit (gtkLibs) pango;
774   };
776   groff = callPackage ../tools/text/groff {
777     ghostscript = null;
778   };
780   grub = callPackage_i686 ../tools/misc/grub {
781     buggyBiosCDSupport = getConfig ["grub" "buggyBiosCDSupport"] true;
782   };
784   grub19x = callPackage ../tools/misc/grub/1.9x.nix { };
786   grub198 = callPackage ../tools/misc/grub/1.98.nix { };
788   grub2 = grub19x;
790   # grub2_efi = callPackage ../tools/misc/grub/1.9x.nix { EFIsupport = true; };
792   gssdp = callPackage ../development/libraries/gssdp {
793     inherit (gnome) libsoup;
794   };
796   gt5 = callPackage ../tools/system/gt5 { };
798   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
800   gtkvnc = callPackage ../tools/admin/gtk-vnc {};
802   gupnp = callPackage ../development/libraries/gupnp {
803     inherit (gnome) libsoup;
804   };
806   gupnptools = callPackage ../tools/networking/gupnp-tools {
807     inherit (gnome) libsoup libglade gnomeicontheme;
808   };
810   gvpe = builderDefsPackage ../tools/networking/gvpe {
811     inherit openssl gmp nettools iproute;
812   };
814   gzip = callPackage ../tools/compression/gzip { };
816   pigz = callPackage ../tools/compression/pigz { };
818   halibut = callPackage ../tools/typesetting/halibut { };
820   hddtemp = callPackage ../tools/misc/hddtemp { };
822   hdf5 = callPackage ../tools/misc/hdf5 { };
824   heimdall = callPackage ../tools/misc/heimdall { };
826   hevea = callPackage ../tools/typesetting/hevea { };
828   highlight = callPackage ../tools/text/highlight {
829     lua = lua5;
830   };
832   host = callPackage ../tools/networking/host { };
834   httpfs2 = callPackage ../tools/filesystems/httpfs { };
836   hydra = callPackage ../development/tools/misc/hydra {
837     nix = nixUnstable;
838   };
840   iasl = callPackage ../development/compilers/iasl { };
842   idutils = callPackage ../tools/misc/idutils { };
844   iftop = callPackage ../tools/networking/iftop { };
846   imapsync = callPackage ../tools/networking/imapsync {
847     inherit (perlPackages) MailIMAPClient;
848   };
850   inadyn = callPackage ../tools/networking/inadyn { };
852   inetutils = callPackage ../tools/networking/inetutils { };
854   ioping = callPackage ../tools/system/ioping {};
856   iodine = callPackage ../tools/networking/iodine { };
858   iperf = callPackage ../tools/networking/iperf { };
860   ipmitool = callPackage ../tools/system/ipmitool {
861     static = false;
862   };
864   ipmiutil = callPackage ../tools/system/ipmiutil {};
866   ised = callPackage ../tools/misc/ised {};
868   isl = callPackage ../development/libraries/isl { };
870   isync = callPackage ../tools/networking/isync { };
872   jdiskreport = callPackage ../tools/misc/jdiskreport { };
874   jfsrec = callPackage ../tools/filesystems/jfsrec {
875     boost = boost144;
876   };
878   jfsutils = callPackage ../tools/filesystems/jfsutils { };
880   jhead = callPackage ../tools/graphics/jhead { };
882   jing = callPackage ../tools/text/xml/jing { };
884   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
886   jnettop = callPackage ../tools/networking/jnettop {
887     inherit (gnome) glib;
888   };
890   jscoverage = callPackage ../development/tools/misc/jscoverage { };
892   jwhois = callPackage ../tools/networking/jwhois { };
894   keychain = callPackage ../tools/misc/keychain { };
896   kismet = callPackage ../applications/networking/sniffers/kismet { };
898   less = callPackage ../tools/misc/less { };
900   most = callPackage ../tools/misc/most { };
902   netperf = callPackage ../applications/networking/netperf { };
904   ninka = callPackage ../development/tools/misc/ninka { };
906   nodejs = callPackage ../development/web/nodejs {};
908   lftp = callPackage ../tools/networking/lftp { };
910   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
912   logrotate = callPackage ../tools/system/logrotate { };
914   lout = callPackage ../tools/typesetting/lout { };
916   lrzip = callPackage ../tools/compression/lrzip { };
918   # lsh installs `bin/nettle-lfib-stream' and so does Nettle.  Give the
919   # former a lower priority than Nettle.
920   lsh = lowPrio (callPackage ../tools/networking/lsh { });
922   lshw = callPackage ../tools/system/lshw { };
924   lxc = callPackage ../applications/virtualization/lxc { };
926   lzma = xz;
928   xz = callPackage ../tools/compression/xz { };
930   lzop = callPackage ../tools/compression/lzop { };
932   mu0 = callPackage ../tools/networking/mu0 { };
934   mailutils = callPackage ../tools/networking/mailutils {
935     guile = guile_1_8;
936   };
938   mairix = callPackage ../tools/text/mairix { };
940   man = callPackage ../tools/misc/man { };
942   man_db = callPackage ../tools/misc/man-db { };
944   memtest86 = callPackage ../tools/misc/memtest86 { };
946   mc = callPackage ../tools/misc/mc { };
948   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
950   mcron = callPackage ../tools/system/mcron {
951     guile = guile_1_8;
952   };
954   mdbtools = callPackage ../tools/misc/mdbtools { };
956   mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix { };
958   miniupnpc = callPackage ../tools/networking/miniupnpc { };
960   miniupnpd = callPackage ../tools/networking/miniupnpd { };
962   minixml = callPackage ../development/libraries/minixml { };
964   mjpegtools = callPackage ../tools/video/mjpegtools { };
966   mkcue = callPackage ../tools/cd-dvd/mkcue { };
968   mktemp = callPackage ../tools/security/mktemp { };
970   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
972   monit = builderDefsPackage ../tools/system/monit {
973     inherit openssl flex bison;
974   };
976   mpage = callPackage ../tools/text/mpage { };
978   mscgen = callPackage ../tools/graphics/mscgen { };
980   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
981     inherit ruby makeWrapper;
982   };
984   mssys = callPackage ../tools/misc/mssys { };
986   mtdutils = callPackage ../tools/filesystems/mtdutils { };
988   mtools = callPackage ../tools/filesystems/mtools { };
990   mtr = callPackage ../tools/networking/mtr {};
992   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
993     multitrandata = callPackage ../tools/text/multitran/data { };
995     libbtree = callPackage ../tools/text/multitran/libbtree { };
997     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
999     libfacet = callPackage ../tools/text/multitran/libfacet { };
1001     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
1003     mtutils = callPackage ../tools/text/multitran/mtutils { };
1004   });
1006   muscleframework = callPackage ../tools/security/muscleframework { };
1008   muscletool = callPackage ../tools/security/muscletool { };
1010   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
1012   namazu = callPackage ../tools/text/namazu { };
1014   nbd = callPackage ../tools/networking/nbd { };
1016   netcdf = callPackage ../development/libraries/netcdf { };
1018   nc6 = callPackage ../tools/networking/nc6 { };
1020   ncat = callPackage ../tools/networking/ncat { };
1022   ncftp = callPackage ../tools/networking/ncftp { };
1024   ncompress = callPackage ../tools/compression/ncompress { };
1026   ndisc6 = callPackage ../tools/networking/ndisc6 { };
1028   netboot = callPackage ../tools/networking/netboot {};
1030   netcat = callPackage ../tools/networking/netcat { };
1032   netkittftp = callPackage ../tools/networking/netkit/tftp { };
1034   netpbm = callPackage ../tools/graphics/netpbm { };
1036   netselect = callPackage ../tools/networking/netselect { };
1038   networkmanager = callPackage ../tools/networking/network-manager { };
1040   networkmanager_pptp = callPackage ../tools/networking/network-manager/pptp.nix { };
1042   networkmanagerapplet = newScope gnome ../tools/networking/network-manager-applet { };
1044   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
1046   nlopt = callPackage ../development/libraries/nlopt {};
1048   nmap = callPackage ../tools/security/nmap {
1049     inherit (pythonPackages) pysqlite;
1050   };
1052   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
1054   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
1056   ntp = callPackage ../tools/networking/ntp { };
1058   nssmdns = callPackage ../tools/networking/nss-mdns { };
1060   nylon = callPackage ../tools/networking/nylon { };
1062   nzbget = callPackage ../tools/networking/nzbget { };
1064   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
1066   obexd = callPackage ../tools/bluetooth/obexd { };
1068   obexfs = callPackage ../tools/bluetooth/obexfs { };
1070   obexftp = callPackage ../tools/bluetooth/obexftp { };
1072   odt2txt = callPackage ../tools/text/odt2txt { };
1074   offlineimap = callPackage ../tools/networking/offlineimap {
1075     ssl = pythonPackages.ssl;
1076   };
1078   opendbx = callPackage ../development/libraries/opendbx { };
1080   opendkim = callPackage ../development/libraries/opendkim { };
1082   openjade = callPackage ../tools/text/sgml/openjade {
1083     stdenv = overrideGCC stdenv gcc33;
1084     opensp = opensp.override { stdenv = overrideGCC stdenv gcc33; };
1085   };
1087   openobex = callPackage ../tools/bluetooth/openobex { };
1089   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
1091   opensc = opensc_0_11_7;
1093   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
1095   openssh = callPackage ../tools/networking/openssh {
1096     hpnSupport = false;
1097     etcDir = "/etc/ssh";
1098     pam = if stdenv.isLinux then pam else null;
1099   };
1101   opensp = callPackage ../tools/text/sgml/opensp { };
1103   spCompat = callPackage ../tools/text/sgml/opensp/compat.nix { };
1105   openvpn = callPackage ../tools/networking/openvpn { };
1107   optipng = callPackage ../tools/graphics/optipng { };
1109   p7zip = callPackage ../tools/archivers/p7zip { };
1111   pal = callPackage ../tools/misc/pal { };
1113   panomatic = callPackage ../tools/graphics/panomatic { };
1115   par2cmdline = callPackage ../tools/networking/par2cmdline { };
1117   parallel = callPackage ../tools/misc/parallel { };
1119   patchutils = callPackage ../tools/text/patchutils { };
1121   parted = callPackage ../tools/misc/parted { };
1122   parted_2_3 = callPackage ../tools/misc/parted/2.3.nix { };
1124   hurdPartedCross =
1125     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1126     then (callPackage ../tools/misc/parted {
1127         # Needs the Hurd's libstore.
1128         hurd = hurdCrossIntermediate;
1130         # The Hurd wants a libparted.a.
1131         enableStatic = true;
1133         gettext = null;
1134         readline = null;
1135         devicemapper = null;
1136       }).hostDrv
1137     else null;
1139   patch = gnupatch;
1141   pbzip2 = callPackage ../tools/compression/pbzip2 { };
1143   pciutils = callPackage ../tools/system/pciutils { };
1145   pcsclite = callPackage ../tools/security/pcsclite { };
1147   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
1149   pdfjam = callPackage ../tools/typesetting/pdfjam { };
1151   pdfread = callPackage ../tools/graphics/pdfread { };
1153   pdnsd = callPackage ../tools/networking/pdnsd { };
1155   pg_top = callPackage ../tools/misc/pg_top { };
1157   pdsh = callPackage ../tools/networking/pdsh {
1158     rsh = true;          # enable internal rsh implementation
1159     ssh = openssh;
1160   };
1162   pfstools = callPackage ../tools/graphics/pfstools { };
1164   philter = callPackage ../tools/networking/philter { };
1166   pinentry = callPackage ../tools/security/pinentry {
1167     inherit (gnome) glib gtk;
1168   };
1170   pius = callPackage ../tools/security/pius { };
1172   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1174   plan9port = callPackage ../tools/system/plan9port { };
1176   ploticus = callPackage ../tools/graphics/ploticus { };
1178   plotutils = callPackage ../tools/graphics/plotutils { };
1180   pngcrush = callPackage ../tools/graphics/pngcrush { };
1182   pngnq = callPackage ../tools/graphics/pngnq { };
1184   polipo = callPackage ../servers/polipo { };
1186   polkit_gnome = callPackage ../tools/security/polkit-gnome { };
1188   povray = callPackage ../tools/graphics/povray { };
1190   ppl = callPackage ../development/libraries/ppl { };
1192   ppl0_11 = callPackage ../development/libraries/ppl/0.11.nix { };
1194   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1195   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1196   };
1198   pptp = callPackage ../tools/networking/pptp {};
1200   proxychains = callPackage ../tools/networking/proxychains { };
1202   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1204   cntlm = callPackage ../tools/networking/cntlm { };
1206   psmisc = callPackage ../os-specific/linux/psmisc { };
1208   pstoedit = callPackage ../tools/graphics/pstoedit { };
1210   pv = callPackage ../tools/misc/pv { };
1212   pwgen = callPackage ../tools/security/pwgen { };
1214   pydb = callPackage ../tools/pydb { };
1216   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1218   pythonDBus = callPackage ../development/python-modules/dbus { };
1220   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1221     inherit python;
1222   };
1224   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1225     inherit python libsexy pkgconfig libxml2 pygtk;
1226     inherit (gtkLibs) pango gtk glib;
1227   };
1229   openmpi = callPackage ../development/libraries/openmpi { };
1231   qdu = callPackage ../tools/misc/qdu { };
1233   qhull = callPackage ../development/libraries/qhull { };
1235   qjoypad = callPackage ../tools/misc/qjoypad { };
1237   qshowdiff = callPackage ../tools/text/qshowdiff { };
1239   radvd = callPackage ../tools/networking/radvd { };
1241   rtmpdump = callPackage ../tools/video/rtmpdump { };
1243   recutils = callPackage ../tools/misc/recutils { };
1245   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1247   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1249   relfs = callPackage ../tools/filesystems/relfs {
1250     inherit (gnome) gnome_vfs GConf;
1251   };
1253   remind = callPackage ../tools/misc/remind { };
1255   replace = callPackage ../tools/text/replace { };
1257   rdiff_backup = callPackage ../tools/backup/rdiff-backup { };
1259   ripmime = callPackage ../tools/networking/ripmime {};
1261   rsnapshot = callPackage ../tools/backup/rsnapshot {
1263     # For the `logger' command, we can use either `utillinux' or
1264     # GNU Inetutils.  The latter is more portable.
1265     logger = inetutils;
1266   };
1268   rlwrap = callPackage ../tools/misc/rlwrap { };
1270   rockbox_utility = callPackage ../tools/misc/rockbox-utility { };
1272   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1273     inherit ppp;
1274   };
1276   rpm = callPackage ../tools/package-management/rpm {
1277     db4 = db45;
1278   };
1280   rrdtool = callPackage ../tools/misc/rrdtool {
1281     inherit (gtkLibs) pango;
1282   };
1284   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1286   rubber = callPackage ../tools/typesetting/rubber { };
1288   rxp = callPackage ../tools/text/xml/rxp { };
1290   rzip = callPackage ../tools/compression/rzip { };
1292   s3backer = callPackage ../tools/filesystems/s3backer { };
1294   s3cmd = callPackage ../tools/networking/s3cmd { };
1296   s3sync = callPackage ../tools/networking/s3sync { };
1298   sablotron = callPackage ../tools/text/xml/sablotron { };
1300   screen = callPackage ../tools/misc/screen { };
1302   scrot = callPackage ../tools/graphics/scrot { };
1304   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1306   setserial = builderDefsPackage (import ../tools/system/setserial) {
1307     inherit groff;
1308   };
1310   sg3_utils = callPackage ../tools/system/sg3_utils { };
1312   sharutils = callPackage ../tools/archivers/sharutils { };
1314   shebangfix = callPackage ../tools/misc/shebangfix { };
1316   siege = callPackage ../tools/networking/siege {};
1318   sleuthkit = callPackage ../tools/system/sleuthkit {};
1320   slimrat = callPackage ../tools/networking/slimrat {
1321     inherit (perlPackages) WWWMechanize LWP;
1322   };
1324   slsnif = callPackage ../tools/misc/slsnif { };
1326   smartmontools = callPackage ../tools/system/smartmontools { };
1328   smbnetfs = callPackage ../tools/filesystems/smbnetfs {};
1330   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1332   socat = callPackage ../tools/networking/socat { };
1334   sourceHighlight = callPackage ../tools/text/source-highlight { };
1336   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1337     inherit fetchurl stdenv openssl;
1338   };
1340   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1342   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1344   sudo = callPackage ../tools/security/sudo { };
1346   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) { };
1348   super = callPackage ../tools/security/super { };
1350   ssmtp = callPackage ../tools/networking/ssmtp {
1351     tlsSupport = true;
1352   };
1354   ssss = callPackage ../tools/security/ssss { };
1356   stun = callPackage ../tools/networking/stun { };
1358   stunnel = callPackage ../tools/networking/stunnel { };
1360   su = shadow;
1362   swec = callPackage ../tools/networking/swec {
1363     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1364   };
1366   svnfs = callPackage ../tools/filesystems/svnfs { };
1368   system_config_printer = callPackage ../tools/misc/system-config-printer {
1369     libxml2 = libxml2Python;
1370    };
1372   sitecopy = callPackage ../tools/networking/sitecopy { };
1374   privoxy = callPackage ../tools/networking/privoxy {
1375     autoconf = autoconf213;
1376   };
1378   tcpdump = callPackage ../tools/networking/tcpdump { };
1380   tcng = callPackage ../tools/networking/tcng {
1381     kernel = linux_2_6_28;
1382   };
1384   telnet = callPackage ../tools/networking/telnet { };
1386   texmacs = callPackage ../applications/editors/texmacs {
1387     tex = texLive; /* tetex is also an option */
1388     extraFonts = true;
1389     guile = guile_1_8;
1390   };
1392   tmux = callPackage ../tools/misc/tmux { };
1394   tor = callPackage ../tools/security/tor { };
1396   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
1398   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1399   ttf2pt1_cl_pdf = callPackage ../tools/misc/ttf2pt1 { };
1401   ucl = callPackage ../development/libraries/ucl { };
1403   udftools = callPackage ../tools/filesystems/udftools {};
1405   ufraw = callPackage ../applications/graphics/ufraw {
1406     inherit (gnome) gtk;
1407   };
1409   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1411   upx = callPackage ../tools/compression/upx { };
1413   usbmuxd = callPackage ../tools/misc/usbmuxd {};
1415   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
1417   vbetool = builderDefsPackage ../tools/system/vbetool {
1418     inherit pciutils libx86 zlib;
1419   };
1421   vde2 = callPackage ../tools/networking/vde2 { };
1423   verilog = callPackage ../applications/science/electronics/verilog {};
1425   vfdecrypt = callPackage ../tools/misc/vfdecrypt { };
1427   vifm = callPackage ../applications/misc/vifm {};
1429   viking = callPackage ../applications/misc/viking { };
1431   vncrec = builderDefsPackage ../tools/video/vncrec {
1432     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1433       libXmu libXaw libXext xextproto libSM libICE libXpm
1434       libXp;
1435   };
1437   vorbisgain = callPackage ../tools/misc/vorbisgain { };
1439   vpnc = callPackage ../tools/networking/vpnc { };
1441   vtun = callPackage ../tools/networking/vtun { };
1443   welkin = callPackage ../tools/graphics/welkin {};
1445   testdisk = callPackage ../tools/misc/testdisk { };
1447   htmlTidy = callPackage ../tools/text/html-tidy { };
1449   tftp_hpa = callPackage ../tools/networking/tftp-hpa {};
1451   tigervnc = callPackage ../tools/admin/tigervnc {
1452     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1453       xorg.fontbhlucidatypewriter75dpi ];
1454   };
1456   tightvnc = callPackage ../tools/admin/tightvnc {
1457     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1458       xorg.fontbhlucidatypewriter75dpi ];
1459   };
1461   time = callPackage ../tools/misc/time { };
1463   tm = callPackage ../tools/system/tm { };
1465   trang = callPackage ../tools/text/xml/trang { };
1467   tre = callPackage ../development/libraries/tre { };
1469   ts = callPackage ../tools/system/ts { };
1471   transfig = callPackage ../tools/graphics/transfig { };
1473   truecrypt = callPackage ../applications/misc/truecrypt {
1474     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1475   };
1477   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
1479   unbound = callPackage ../tools/networking/unbound { };
1481   units = callPackage ../tools/misc/units { };
1483   unrar = callPackage ../tools/archivers/unrar { };
1485   unarj = callPackage ../tools/archivers/unarj { };
1487   unshield = callPackage ../tools/archivers/unshield { };
1489   unzip = unzip60;
1491   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1493   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1495   uptimed = callPackage ../tools/system/uptimed { };
1497   vlan = callPackage ../tools/networking/vlan { };
1499   wakelan = callPackage ../tools/networking/wakelan { };
1501   wavemon = callPackage ../tools/networking/wavemon { };
1503   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1504     tomcat = tomcat6;
1505   };
1507   wdfs = callPackage ../tools/filesystems/wdfs { };
1509   wdiff = callPackage ../tools/text/wdiff { };
1511   webalizer = callPackage ../tools/networking/webalizer { };
1513   webdruid = builderDefsPackage ../tools/admin/webdruid {
1514     inherit zlib libpng freetype gd which
1515       libxml2 geoip;
1516   };
1518   wget = callPackage ../tools/networking/wget {
1519     inherit (perlPackages) LWP;
1520   };
1522   which = callPackage ../tools/system/which { };
1524   wicd = callPackage ../tools/networking/wicd { };
1526   wv = callPackage ../tools/misc/wv { };
1528   wv2 = callPackage ../tools/misc/wv2 { };
1530   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1532   xbursttools = assert stdenv ? glibc; import ../tools/misc/xburst-tools {
1533     inherit stdenv fetchgit autoconf automake libusb confuse;
1534     # It needs a cross compiler for mipsel to build the firmware it will
1535     # load into the Ben Nanonote
1536     gccCross =
1537       let
1538         pkgsCross = (import ./all-packages.nix) {
1539           inherit system;
1540           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1541           # Ben Nanonote system
1542           crossSystem = {
1543             config = "mipsel-unknown-linux";
1544             bigEndian = true;
1545             arch = "mips";
1546             float = "soft";
1547             withTLS = true;
1548             libc = "uclibc";
1549             platform = {
1550               name = "ben_nanonote";
1551               kernelMajor = "2.6";
1552               # It's not a bcm47xx processor, but for the headers this should work
1553               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1554               kernelArch = "mips";
1555             };
1556             gcc = {
1557               arch = "mips32";
1558             };
1559           };
1560         };
1561       in
1562         pkgsCross.gccCrossStageStatic;
1563   };
1565   xclip = callPackage ../tools/misc/xclip { };
1567   xdelta = callPackage ../tools/compression/xdelta { };
1569   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1571   xmlroff = callPackage ../tools/typesetting/xmlroff {
1572     inherit (gtkLibs) glib pango gtk;
1573     inherit (gnome) libgnomeprint;
1574   };
1576   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1578   xmlto = callPackage ../tools/typesetting/xmlto { };
1580   xmltv = callPackage ../tools/misc/xmltv { };
1582   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1583     inherit python setuptools;
1584   };
1586   xorriso = callPackage ../tools/cd-dvd/xorriso { };
1588   xpf = callPackage ../tools/text/xml/xpf {
1589     libxml2 = libxml2Python;
1590   };
1592   xsel = callPackage ../tools/misc/xsel { };
1594   xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
1596   zbar = callPackage ../tools/graphics/zbar {};
1598   zdelta = callPackage ../tools/compression/zdelta { };
1600   zile = callPackage ../applications/editors/zile { };
1602   zip = callPackage ../tools/archivers/zip { };
1604   zsync = callPackage ../tools/compression/zsync { };
1607   ### SHELLS
1610   bash = lowPrio (callPackage ../shells/bash/4.1.nix {
1611     texinfo = null;
1612   });
1614   bashInteractive = appendToName "interactive" (callPackage ../shells/bash/4.2.nix {
1615     interactive = true;
1616   });
1618   bashCompletion = callPackage ../shells/bash-completion { };
1620   dash = callPackage ../shells/dash { };
1622   ipython = callPackage ../shells/ipython { };
1624   tcsh = callPackage ../shells/tcsh { };
1626   rush = callPackage ../shells/rush { };
1628   zsh = callPackage ../shells/zsh { };
1631   ### DEVELOPMENT / COMPILERS
1634   abc =
1635     abcPatchable [];
1637   abcPatchable = patches :
1638     import ../development/compilers/abc/default.nix {
1639       inherit stdenv fetchurl patches jre apacheAnt;
1640       javaCup = callPackage ../development/libraries/java/cup { };
1641     };
1643   aspectj = callPackage ../development/compilers/aspectj { };
1645   bigloo = callPackage ../development/compilers/bigloo { };
1647   ccl = builderDefsPackage ../development/compilers/ccl {};
1649   clangBootUnwrapped = callPackage ../development/compilers/llvm/clang.nix { };
1651   clangBoot = wrapClang clangBootUnwrapped;
1653   clangUnwrapped = let clangBootStdenv = stdenvAdapters.overrideGCC stdenv clangBoot; in clangBootUnwrapped.override {
1654     stdenv = clangBootStdenv;
1655     llvm = llvm.override { stdenv = clangBootStdenv; };
1656   };
1658   clang = wrapClang clangUnwrapped;
1660   #Use this instead of stdenv to build with clang
1661   clangStdenv = stdenvAdapters.overrideGCC stdenv clang;
1663   clangSVN = llvmSVN.override {
1664     buildClang = true;
1665   };
1667   clean = callPackage ../development/compilers/clean { };
1669   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
1671   dylan = callPackage ../development/compilers/gwydion-dylan {
1672     dylan = callPackage ../development/compilers/gwydion-dylan/binary.nix {  };
1673   };
1675   ecl = callPackage ../development/compilers/ecl { };
1677   eql = callPackage ../development/compilers/eql {};
1679   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1681   fpc = callPackage ../development/compilers/fpc { };
1682   fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { };
1684   gambit = callPackage ../development/compilers/gambit { };
1686   gcc = gcc45;
1688   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1689     inherit fetchurl stdenv noSysDirs;
1690   });
1692   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1693     inherit fetchurl stdenv noSysDirs;
1694   });
1696   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1697     inherit fetchurl stdenv noSysDirs;
1698   });
1700   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1701   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1702   # expects a single digit after the dot.  As a workaround, we feed
1703   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1705   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1706     inherit fetchurl stdenv noSysDirs;
1707     texinfo = texinfo49;
1708     profiledCompiler = true;
1709   });
1711   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1712     inherit fetchurl noSysDirs gmp mpfr;
1713     stdenv = overrideGCC stdenv gcc42;
1714     texinfo = texinfo49;
1715     profiledCompiler = false;
1716   });
1718   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1719     inherit fetchurl stdenv noSysDirs;
1720     profiledCompiler = false;
1721   });
1723   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1724     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1725     profiledCompiler = true;
1726   }));
1728   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1729     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1730     binutilsCross = binutilsCross;
1731     libcCross = libcCross;
1732     profiledCompiler = false;
1733     enableMultilib = true;
1734     crossStageStatic = false;
1735     cross = assert crossSystem != null; crossSystem;
1736   };
1738   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1739     (makeOverridable (import ../development/compilers/gcc-4.4) {
1740       inherit stdenv fetchurl texinfo gmp mpfr /* ppl cloogppl */ noSysDirs
1741           gettext which;
1742       binutilsCross = binutilsCross;
1743       libcCross = libcCross;
1744       profiledCompiler = false;
1745       enableMultilib = false;
1746       crossStageStatic = false;
1747       cross = assert crossSystem != null; crossSystem;
1748     });
1750   gcc45 = gcc45_real;
1752   gcc46 = gcc46_real;
1754   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1755     (makeOverridable (import ../development/compilers/gcc-4.5) {
1756       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1757         ppl cloogppl gettext which noSysDirs;
1758       binutilsCross = binutilsCross;
1759       libcCross = libcCross;
1760       profiledCompiler = false;
1761       enableMultilib = false;
1762       crossStageStatic = false;
1763       cross = assert crossSystem != null; crossSystem;
1764     });
1766   gcc46_realCross = lib.addMetaAttrs { platforms = []; }
1767     (makeOverridable (import ../development/compilers/gcc-4.6) {
1768       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1769         cloog gettext which noSysDirs;
1770       ppl = ppl0_11;
1771       binutilsCross = binutilsCross;
1772       libcCross = libcCross;
1773       profiledCompiler = false;
1774       enableMultilib = false;
1775       crossStageStatic = false;
1776       cross = assert crossSystem != null; crossSystem;
1777     });
1779   gcc_realCross = gcc45_realCross;
1781   gccCrossStageStatic = let
1782       isMingw = (stdenv.cross.libc == "msvcrt");
1783       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1784     in
1785       wrapGCCCross {
1786       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1787         gcc_realCross.override {
1788           crossStageStatic = true;
1789           langCC = false;
1790           libcCross = libcCross1;
1791           enableShared = false;
1792         }));
1793       libc = libcCross1;
1794       binutils = binutilsCross;
1795       cross = assert crossSystem != null; crossSystem;
1796   };
1798   # Only needed for mingw builds
1799   gccCrossMingw2 = wrapGCCCross {
1800     gcc = gccCrossStageStatic.gcc;
1801     libc = windows.mingw_headers2;
1802     binutils = binutilsCross;
1803     cross = assert crossSystem != null; crossSystem;
1804   };
1806   gccCrossStageFinal = wrapGCCCross {
1807     gcc = forceBuildDrv (gcc_realCross.override {
1808       libpthreadCross =
1809         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1810         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1811         then hurdLibpthreadCross
1812         else null;
1813      });
1814     libc = libcCross;
1815     binutils = binutilsCross;
1816     cross = assert crossSystem != null; crossSystem;
1817   };
1819   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1820     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1821     profiledCompiler = false;
1822     enableMultilib = true;
1823   }));
1825   gcc44 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1826     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1827       gettext which noSysDirs;
1828     profiledCompiler = true;
1829   }));
1831   gcc45_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1832     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1833       ppl cloogppl
1834       gettext which noSysDirs;
1835     # bootstrapping a profiled compiler does not work in the sheevaplug:
1836     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
1837     profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
1838   }));
1840   gcc46_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc-4.6 {
1841     inherit noSysDirs;
1842     cross = null;
1843     libcCross = null;
1844     binutilsCross = null;
1846     ppl = ppl0_11;
1847     cloogppl = null;
1849     # bootstrapping a profiled compiler does not work in the sheevaplug:
1850     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
1851     profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
1852   }));
1854   # A non-stripped version of GCC.
1855   gcc46_debug = lowPrio (wrapGCC (callPackage ../development/compilers/gcc-4.6 {
1856     stripped = false;
1858     inherit noSysDirs;
1859     cross = null;
1860     libcCross = null;
1861     binutilsCross = null;
1863     ppl = ppl0_11;
1864     cloogppl = null;
1865   }));
1867   gccApple =
1868     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1869       inherit fetchurl stdenv noSysDirs;
1870       profiledCompiler = true;
1871     }) ;
1873   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1874     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1875     texinfo = texinfo49;
1876   });
1878   gfortran = gfortran45;
1880   gfortran40 = wrapGCC (gcc40.gcc.override {
1881     langFortran = true;
1882     langCC = false;
1883     inherit gmp mpfr;
1884   });
1886   gfortran41 = wrapGCC (gcc41.gcc.override {
1887     name = "gfortran";
1888     langFortran = true;
1889     langCC = false;
1890     langC = false;
1891     inherit gmp mpfr;
1892   });
1894   gfortran42 = wrapGCC (gcc42.gcc.override {
1895     name = "gfortran";
1896     langFortran = true;
1897     langCC = false;
1898     langC = false;
1899     inherit gmp mpfr;
1900   });
1902   gfortran43 = wrapGCC (gcc43.gcc.override {
1903     name = "gfortran";
1904     langFortran = true;
1905     langCC = false;
1906     langC = false;
1907     profiledCompiler = false;
1908   });
1910   gfortran44 = wrapGCC (gcc44.gcc.override {
1911     name = "gfortran";
1912     langFortran = true;
1913     langCC = false;
1914     langC = false;
1915     profiledCompiler = false;
1916   });
1918   gfortran45 = wrapGCC (gcc45_real.gcc.override {
1919     name = "gfortran";
1920     langFortran = true;
1921     langCC = false;
1922     langC = false;
1923     profiledCompiler = false;
1924   });
1926   gfortran46 = wrapGCC (gcc46_real.gcc.override {
1927     name = "gfortran";
1928     langFortran = true;
1929     langCC = false;
1930     langC = false;
1931     profiledCompiler = false;
1932   });
1934   gcj = gcj45;
1936   gcj44 = wrapGCC (gcc44.gcc.override {
1937     name = "gcj";
1938     langJava = true;
1939     langFortran = false;
1940     langCC = true;
1941     langC = false;
1942     profiledCompiler = false;
1943     inherit zip unzip zlib boehmgc gettext pkgconfig;
1944     inherit (gtkLibs) gtk;
1945     inherit (gnome) libart_lgpl;
1946     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1947       libXrandr xproto renderproto xextproto inputproto randrproto;
1948   });
1950   gcj45 = wrapGCC (gcc45.gcc.override {
1951     name = "gcj";
1952     langJava = true;
1953     langFortran = false;
1954     langCC = true;
1955     langC = false;
1956     profiledCompiler = false;
1957     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1958     inherit (gtkLibs) gtk;
1959     inherit (gnome) libart_lgpl;
1960     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1961       libXrandr xproto renderproto xextproto inputproto randrproto;
1962   });
1964   gcj46 = wrapGCC (gcc46.gcc.override {
1965     name = "gcj";
1966     langJava = true;
1967     langFortran = false;
1968     langCC = true;
1969     langC = false;
1970     profiledCompiler = false;
1971     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1972     inherit (gtkLibs) gtk;
1973     inherit (gnome) libart_lgpl;
1974     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1975       libXrandr xproto renderproto xextproto inputproto randrproto;
1976   });
1978   gnat = gnat45;
1980   gnat44 = wrapGCC (gcc44.gcc.override {
1981     name = "gnat";
1982     langCC = false;
1983     langC = true;
1984     langAda = true;
1985     profiledCompiler = false;
1986     inherit gnatboot;
1987     # We can't use the ppl stuff, because we would have
1988     # libstdc++ problems.
1989     cloogppl = null;
1990     ppl = null;
1991   });
1993   gnat45 = wrapGCC (gcc45_real.gcc.override {
1994     name = "gnat";
1995     langCC = false;
1996     langC = true;
1997     langAda = true;
1998     profiledCompiler = false;
1999     inherit gnatboot;
2000     # We can't use the ppl stuff, because we would have
2001     # libstdc++ problems.
2002     cloogppl = null;
2003     ppl = null;
2004   });
2006   gnat46 = wrapGCC (gcc46_real.gcc.override {
2007     name = "gnat";
2008     langCC = false;
2009     langC = true;
2010     langAda = true;
2011     profiledCompiler = false;
2012     gnatboot = gnat45;
2013     # We can't use the ppl stuff, because we would have
2014     # libstdc++ problems.
2015     cloogppl = null;
2016     ppl = null;
2017     cloog = null;
2018   });
2020   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
2021     inherit fetchurl stdenv;
2022   });
2024   gccgo = gccgo46;
2026   gccgo46 = wrapGCC (gcc46_real.gcc.override {
2027     name = "gccgo";
2028     langCC = true; #required for go
2029     langC = true;
2030     langGo = true;
2031   });
2033   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
2034     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
2035     name = "ghdl";
2036     langVhdl = true;
2037     langCC = false;
2038     langC = false;
2039     profiledCompiler = false;
2040     enableMultilib = false;
2041   });
2043   # Not officially supported version for ghdl
2044   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
2045     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
2046       ppl cloogppl;
2047     name = "ghdl";
2048     langVhdl = true;
2049     langCC = false;
2050     langC = false;
2051     profiledCompiler = false;
2052     enableMultilib = false;
2053   }));
2055   gcl = builderDefsPackage ../development/compilers/gcl {
2056     inherit mpfr m4 binutils fetchcvs emacs zlib which
2057       gmp texinfo;
2058     inherit (xlibs) libX11 xproto inputproto libXi
2059       libXext xextproto libXt libXaw libXmu;
2060     inherit stdenv;
2061     texLive = texLiveAggregationFun {
2062       paths = [
2063         texLive texLiveExtra
2064       ];
2065     };
2066   };
2068   # GHC
2070   # GHC binaries are around for bootstrapping purposes
2072   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
2073   # need to reenable an old binary such as this.
2074   /*
2075   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
2076     inherit fetchurl stdenv ncurses gmp;
2077     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
2078     perl = perl58;
2079   });
2080   */
2082   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
2083     inherit fetchurl stdenv perl ncurses gmp libedit;
2084   });
2086   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
2087     inherit fetchurl stdenv perl ncurses gmp libedit;
2088   });
2090   ghc6121Binary = lowPrio (import ../development/compilers/ghc/6.12.1-binary.nix {
2091     inherit fetchurl stdenv perl ncurses gmp;
2092   });
2094   ghc704Binary = lowPrio (import ../development/compilers/ghc/7.0.4-binary.nix {
2095     inherit fetchurl stdenv perl ncurses gmp;
2096   });
2098   # For several compiler versions, we export a large set of Haskell-related
2099   # packages.
2101   # This should point to the current default version.
2102   haskellPackages = haskellPackages_ghc704;
2104   # NOTE (recurseIntoAttrs): After discussion, we originally decided to
2105   # enable it for all GHC versions. However, this is getting too much,
2106   # particularly in connection with Hydra builds for all these packages.
2107   # So we enable it for selected versions only.
2109   # Helper functions to abstract away from repetitive instantiations.
2110   haskellPackagesFun =
2111     ghcPath : ghcBinary : prefFun : profExplicit : profDefault : modifyPrio :
2112       import ./haskell-packages.nix {
2113         inherit pkgs newScope modifyPrio prefFun;
2114         enableLibraryProfiling =
2115           if profExplicit then profDefault
2116                           else getConfig [ "cabal" "libraryProfiling" ] profDefault;
2117         ghc = callPackage ghcPath { ghc = ghcBinary; };
2118       };
2120   # Currently active GHC versions.
2121   haskellPackages_ghc6104 =
2122     recurseIntoAttrs
2123       (haskellPackagesFun ../development/compilers/ghc/6.10.4.nix
2124         ghc6101Binary (x : x.ghc6104Prefs) false false lowPrio);
2126   haskellPackages_ghc6121 =
2127     haskellPackagesFun ../development/compilers/ghc/6.12.1.nix
2128       ghc6101Binary (x : x.ghc6121Prefs) false false lowPrio;
2130   haskellPackages_ghc6122 =
2131     haskellPackagesFun ../development/compilers/ghc/6.12.2.nix
2132       ghc6101Binary (x : x.ghc6122Prefs) false false lowPrio;
2134   haskellPackages_ghc6123 =
2135     recurseIntoAttrs
2136       (haskellPackagesFun ../development/compilers/ghc/6.12.3.nix
2137         ghc6101Binary (x : x.ghc6123Prefs) false false lowPrio);
2139   # Will never make it into a platform release, severe bugs; leave at lowPrio.
2140   haskellPackages_ghc701 =
2141     haskellPackagesFun ../development/compilers/ghc/7.0.1.nix
2142       ghc6101Binary (x : x.ghc701Prefs) false false lowPrio;
2144   haskellPackages_ghc702 =
2145     haskellPackagesFun ../development/compilers/ghc/7.0.2.nix
2146       ghc6101Binary (x : x.ghc702Prefs) false false lowPrio;
2148   haskellPackages_ghc703 =
2149     haskellPackagesFun ../development/compilers/ghc/7.0.3.nix
2150       ghc6101Binary (x : x.ghc703Prefs) false false lowPrio;
2152   # Current default version: 7.0.4
2153   # Note that the platform isn't officially released for ghc-7.0.4, but
2154   # it works without problems.
2156   # The following items are a bit convoluted, but they serve the
2157   # following purpose:
2158   #   - for the default version of GHC, both profiling and
2159   #     non-profiling versions should be built by Hydra --
2160   #     therefore, the _no_profiling and _profiling calls;
2161   #   - however, if a user just upgrades a profile, then the
2162   #     cabal/libraryProfiling setting should be respected; i.e.,
2163   #     the versions not matching the profiling config setting
2164   #     should have low priority -- therefore, the use of
2165   #     haskellDefaultVersionPrioFun;
2166   #   - it should be possible to select library versions that
2167   #     respect the config setting using the standard
2168   #     haskellPackages_ghc704 path -- therefore, the additional
2169   #     call in haskellPackages_ghc704, without recurseIntoAttrs,
2170   #     so that Hydra doesn't build these.
2171   haskellDefaultVersionPrioFun =
2172     profDefault :
2173     if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
2174       then (x : x)
2175       else lowPrio;
2177   haskellPackages_ghc704_no_profiling =
2178     recurseIntoAttrs
2179       (haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
2180         (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
2181         (x : x.ghc704Prefs) true false
2182         (haskellDefaultVersionPrioFun false));
2184   haskellPackages_ghc704_profiling =
2185     recurseIntoAttrs
2186       (haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
2187         (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
2188         (x : x.ghc704Prefs) true true
2189         (haskellDefaultVersionPrioFun true));
2191   haskellPackages_ghc704 =
2192     haskellPackagesFun ../development/compilers/ghc/7.0.4.nix
2193       (if stdenv.isDarwin then ghc704Binary else ghc6101Binary)
2194       (x : x.ghc704Prefs) false false (x : x);
2196   haskellPackages_ghc721 =
2197     recurseIntoAttrs
2198       (haskellPackagesFun ../development/compilers/ghc/7.2.1.nix
2199         (if stdenv.isDarwin then ghc704Binary else ghc6121Binary)
2200         (x : x.ghc721Prefs) false false lowPrio);
2202   # Reasonably current HEAD snapshot. Should *always* be lowPrio.
2203   haskellPackages_ghcHEAD =
2204     haskellPackagesFun ../development/compilers/ghc/head.nix
2205       ghc6121Binary (x : x.ghcHEADPrefs) false false lowPrio;
2207   haxeDist = import ../development/compilers/haxe {
2208     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
2209   };
2210   haxe = haxeDist.haxe;
2211   haxelib = haxeDist.haxelib;
2213   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
2214     inherit cmake;
2215   };
2217   go = callPackage ../development/compilers/go { };
2219   gprolog = callPackage ../development/compilers/gprolog { };
2221   gwt = callPackage ../development/compilers/gwt {
2222     inherit (gtkLibs) glib gtk pango atk;
2223     libstdcpp5 = gcc33.gcc;
2224   };
2226   ikarus = callPackage ../development/compilers/ikarus { };
2228   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
2229   # commented out because it's using the new configuration style proposal which is unstable
2230   hugs = callPackage ../development/compilers/hugs { };
2232   path64 = callPackage ../development/compilers/path64 { };
2234   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
2236   openjdk = callPackage ../development/compilers/openjdk { };
2238   openjre = callPackage ../development/compilers/openjdk {
2239     jreOnly = true;
2240   };
2242   j2sdk14x = (
2243     assert system == "i686-linux";
2244     import ../development/compilers/jdk/default-1.4.nix {
2245       inherit fetchurl stdenv;
2246     });
2248   jdk5 = (
2249     assert system == "i686-linux" || system == "x86_64-linux";
2250     callPackage ../development/compilers/jdk/default-5.nix { });
2252   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
2253   jre       = jdkdistro false false;
2255   jdkPlugin = jdkdistro true true;
2256   jrePlugin = jdkdistro false true;
2258   supportsJDK =
2259     system == "i686-linux" ||
2260     system == "x86_64-linux" ||
2261     system == "i686-cygwin" ||
2262     system == "powerpc-linux";
2264   jdkdistro = installjdk: pluginSupport:
2265        (assert supportsJDK;
2266     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
2267       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
2268     }));
2270   jikes = callPackage ../development/compilers/jikes { };
2272   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
2273     inherit makeWrapper;
2274     inherit (gtkLibs) gtk glib pango atk gdk_pixbuf;
2275     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
2276     fpc = fpc;
2277   };
2279   llvm = callPackage ../development/compilers/llvm { };
2281   # Works partially
2282   llvmSVN = callPackage ../development/compilers/llvm/svn-head.nix { };
2284   mitscheme = callPackage ../development/compilers/mit-scheme { };
2286   mlton = callPackage ../development/compilers/mlton { };
2288   mono = callPackage ../development/compilers/mono { };
2290   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
2292   mozart = callPackage ../development/compilers/mozart { };
2294   neko = callPackage ../development/compilers/neko { };
2296   nasm = callPackage ../development/compilers/nasm { };
2298   ocaml = ocaml_3_11_1;
2300   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
2302   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
2304   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
2306   ocaml_3_12_0 = lowPrio (callPackage ../development/compilers/ocaml/3.12.0.nix { });
2308   mkOcamlPackages = ocaml: self: let callPackage = newScope self; in rec {
2309     inherit ocaml;
2311     camlidl = callPackage ../development/tools/ocaml/camlidl { };
2313     camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2315     camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2316       transitional = true;
2317     };
2319     camlzip = callPackage ../development/ocaml-modules/camlzip { };
2321     camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
2322     camomile = callPackage ../development/ocaml-modules/camomile { };
2324     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
2326     findlib = callPackage ../development/tools/ocaml/findlib { };
2328     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
2330     lablgtk = callPackage ../development/ocaml-modules/lablgtk {
2331       inherit (gnome) libgnomecanvas libglade gtksourceview;
2332     };
2334     lablgtkmathview = callPackage ../development/ocaml-modules/lablgtkmathview {
2335       gtkmathview = callPackage ../development/libraries/gtkmathview { };
2336     };
2338     menhir = callPackage ../development/ocaml-modules/menhir { };
2340     ocaml_batteries = callPackage ../development/ocaml-modules/batteries {
2341       camomile = camomile_0_8_2;
2342     };
2344     ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
2346     ocaml_expat = callPackage ../development/ocaml-modules/expat { };
2348     ocaml_http = callPackage ../development/ocaml-modules/http { };
2350     ocaml_lwt = callPackage ../development/ocaml-modules/lwt { };
2352     ocaml_mysql = callPackage ../development/ocaml-modules/mysql { };
2354     ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { };
2356     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {
2357       inherit pcre;
2358     };
2360     ocaml_react = callPackage ../development/ocaml-modules/react { };
2362     ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { };
2364     ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
2366     ounit = callPackage ../development/ocaml-modules/ounit { };
2368     ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 {
2369       camlp5 = camlp5_transitional;
2370     };
2371   };
2373   ocamlPackages = recurseIntoAttrs ocamlPackages_3_11_1;
2374   ocamlPackages_3_10_0 = mkOcamlPackages ocaml_3_10_0 pkgs.ocamlPackages_3_10_0;
2375   ocamlPackages_3_11_1 = mkOcamlPackages ocaml_3_11_1 pkgs.ocamlPackages_3_11_1;
2376   ocamlPackages_3_12_0 = mkOcamlPackages ocaml_3_12_0 pkgs.ocamlPackages_3_12_0;
2378   opencxx = callPackage ../development/compilers/opencxx {
2379     gcc = gcc33;
2380   };
2382   qcmm = callPackage ../development/compilers/qcmm {
2383     lua   = lua4;
2384     ocaml = ocaml_3_08_0;
2385   };
2387   roadsend = callPackage ../development/compilers/roadsend { };
2389   # TODO: the corresponding nix file is missing
2390   # rust = pkgsi686Linux.callPackage ../development/compilers/rust {};
2392   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
2393     inherit makeWrapper clisp;
2394   };
2396   scala = callPackage ../development/compilers/scala { };
2398   stalin = callPackage ../development/compilers/stalin { };
2400   strategoPackages = strategoPackages018;
2402   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
2403     stdenv = overrideInStdenv stdenv [gnumake380];
2404   };
2406   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
2407     readline = readline5;
2408   };
2410   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
2411     readline = readline5;
2412   };
2414   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
2416   swiProlog = callPackage ../development/compilers/swi-prolog { };
2418   tinycc = callPackage ../development/compilers/tinycc { };
2420   urweb = callPackage ../development/compilers/urweb { };
2422   vala = callPackage ../development/compilers/vala { };
2424   visualcpp = callPackage ../development/compilers/visual-c++ { };
2426   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
2428   webdsl = callPackage ../development/compilers/webdsl { };
2430   win32hello = callPackage ../development/compilers/visual-c++/test { };
2432   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
2433     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2434     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2435     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
2436     gcc = baseGCC;
2437     libc = glibc;
2438     shell = bash;
2439     inherit stdenv binutils coreutils zlib;
2440   };
2442   wrapClangWith = clangWrapper: glibc: baseClang: clangWrapper {
2443     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2444     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2445     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
2446     clang = baseClang;
2447     libc = glibc;
2448     shell = bash;
2449     inherit stdenv binutils coreutils zlib;
2450   };
2452   wrapClang = wrapClangWith (import ../build-support/clang-wrapper) glibc;
2454   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
2456   wrapGCCCross =
2457     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
2459     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
2460       nativeTools = false;
2461       nativeLibc = false;
2462       noLibc = (libc == null);
2463       inherit stdenv gcc binutils libc shell name cross;
2464     });
2466   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
2467   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2468   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2469     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2470     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2471     gcc = baseGCC;
2472     libc = glibc;
2473     inherit stdenv binutils;
2474   };
2476   # prolog
2477   yap = callPackage ../development/compilers/yap { };
2479   yasm = callPackage ../development/compilers/yasm { };
2481   ### DEVELOPMENT / INTERPRETERS
2483   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2484     inherit sbcl;
2485   };
2487   angelscript = callPackage ../development/interpreters/angelscript {};
2489   clisp = callPackage ../development/interpreters/clisp { };
2491   # compatibility issues in 2.47 - at list 2.44.1 is known good
2492   # for sbcl bootstrap
2493   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2494     libsigsegv = libsigsegv_25;  };
2496   clojure = callPackage ../development/interpreters/clojure { };
2498   clojure_binary = callPackage ../development/interpreters/clojure/binary.nix { };
2500   clojure_wrapper = callPackage ../development/interpreters/clojure/wrapper.nix {
2501     #clojure = clojure_binary;
2502   };
2504   clooj_standalone_binary = callPackage ../development/interpreters/clojure/clooj.nix { };
2506   clooj_wrapper = callPackage ../development/interpreters/clojure/clooj-wrapper.nix {
2507     clooj = clooj_standalone_binary;
2508   };
2510   erlang = callPackage ../development/interpreters/erlang { };
2512   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2514   groovy = callPackage ../development/interpreters/groovy { };
2516   guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
2518   guile_2_0 = callPackage ../development/interpreters/guile { };
2520   guile = guile_2_0;
2522   io = callPackage ../development/interpreters/io { };
2524   j = callPackage ../development/interpreters/j {};
2526   kaffe = callPackage ../development/interpreters/kaffe { };
2528   kona = callPackage ../development/interpreters/kona {};
2530   love = callPackage ../development/interpreters/love {};
2532   lua4 = callPackage ../development/interpreters/lua-4 { };
2534   lua5 = callPackage ../development/interpreters/lua-5 { };
2536   lua5_0 = callPackage ../development/interpreters/lua-5/5.0.3.nix { };
2538   maude = callPackage ../development/interpreters/maude { };
2540   octave = callPackage ../development/interpreters/octave {
2541     # Needed because later gm versions require an initialization the actual octave is not
2542     # doing.
2543     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2544     graphicsmagick = graphicsmagick137;
2545   };
2547   # mercurial (hg) bleeding edge version
2548   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2550   perl58 = callPackage ../development/interpreters/perl-5.8 {
2551     impureLibcPath = if stdenv.isLinux then null else "/usr";
2552   };
2554   perl510 = callPackage ../development/interpreters/perl-5.10 {
2555     fetchurl = fetchurlBoot;
2556   };
2558   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2560   php = php5_3;
2562   php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) {
2563     inherit
2564       stdenv fetchurl lib composableDerivation autoconf automake
2565       flex bison apacheHttpd mysql libxml2 readline
2566       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2567   };
2569   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
2570     inherit
2571       stdenv fetchurl lib composableDerivation autoconf automake
2572       flex bison apacheHttpd mysql libxml2 readline
2573       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2574   };
2576   php_apc = callPackage ../development/libraries/php-apc { };
2578   php_xcache = callPackage ../development/libraries/php-xcache { };
2580   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2582   picolisp = callPackage ../development/interpreters/picolisp {};
2584   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2585     inherit cairo fontconfig freetype libjpeg libpng openssl
2586       perl mesa zlib which;
2587     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2588       renderproto pixman libSM libxcb libXext xextproto libXmu
2589       libXt;
2590   };
2592   polyml = callPackage ../development/compilers/polyml { };
2594   pure = callPackage ../development/interpreters/pure {};
2596   python = python27;
2598   python26 = callPackage ../development/interpreters/python/2.6 { };
2600   python27 = callPackage ../development/interpreters/python/2.7 { };
2602   python3 = callPackage ../development/interpreters/python/3.1 {
2603     arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
2604     sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
2605   };
2607   python32 = callPackage ../development/interpreters/python/3.2 {
2608     arch = if stdenv.isDarwin then pkgs.darwinArchUtility else null;
2609     sw_vers = if stdenv.isDarwin then pkgs.darwinSwVersUtility else null;
2610   };
2612   pythonFull = python27Full;
2614   python26Full = callPackage ../development/interpreters/python/wrapper.nix {
2615     extraLibs = lib.attrValues python26.modules;
2616     python = python26;
2617   };
2619   python27Full = callPackage ../development/interpreters/python/wrapper.nix {
2620     extraLibs = lib.attrValues python27.modules;
2621     python = python27;
2622   };
2624   pythonhomeWrapper = callPackage ../development/interpreters/python/pythonhome-wrapper.nix { };
2626   pyrex = pyrex095;
2628   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2630   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2632   qi = callPackage ../development/compilers/qi { };
2634   racket = callPackage ../development/interpreters/racket {
2635     inherit (gtkLibs) pango glib gtk;
2636   };
2638   regina = callPackage ../development/interpreters/regina {};
2640   ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { };
2641   ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { };
2642   ruby = callPackage ../development/interpreters/ruby { };
2644   rubyLibs = recurseIntoAttrs (callPackage ../development/interpreters/ruby/libs.nix { });
2646   rake = callPackage ../development/ruby-modules/rake { };
2648   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2650   rLang = callPackage ../development/interpreters/r-lang {
2651     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2652   };
2654   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/rubygems.nix) {
2655     inherit ruby makeWrapper;
2656   };
2657   rubygems = rubygemsFun ruby;
2659   rq = callPackage ../applications/networking/cluster/rq { };
2661   scsh = callPackage ../development/interpreters/scsh { };
2663   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2664   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2666   sysPerl = callPackage ../development/interpreters/sys-perl { };
2668   tcl = callPackage ../development/interpreters/tcl { };
2670   xulrunnerWrapper = {application, launcher}:
2671     import ../development/interpreters/xulrunner/wrapper {
2672       inherit stdenv application launcher xulrunner;
2673     };
2675   xulrunner = pkgs.firefoxPkgs.xulrunner;
2677   ### DEVELOPMENT / MISC
2679   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {};
2681   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2683   /*
2684   toolbus = callPackage ../development/interpreters/toolbus { };
2685   */
2687   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2688     inherit getConfig;
2689   };
2691   ecj = callPackage ../development/eclipse/ecj { };
2693   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2695   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2697   jruby116 = callPackage ../development/interpreters/jruby { };
2699   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2701   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2702     gconf = gnome.GConf;
2703     inherit (gnome) glib gnome_vfs gtk libglade libgnome libgnomecanvas
2704       libgnomeui pango;
2705   };
2707   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2709   guile_ncurses = callPackage ../development/guile-modules/guile-ncurses { };
2711   windowssdk = (
2712     import ../development/misc/windows-sdk {
2713       inherit fetchurl stdenv cabextract;
2714     });
2717   ### DEVELOPMENT / TOOLS
2720   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2722   antlr3 = callPackage ../development/tools/parsing/antlr { };
2724   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin; name = "ant-" + jdk.name; } ;
2726   ant = apacheAnt;
2728   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2729     name = "ant-" + jdk.name;
2730   };
2732   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2733     jdk = j2sdk14x;
2734     name = "ant-" + j2sdk14x.name;
2735   };
2737   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2738     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2739   };
2741   autobuild = callPackage ../development/tools/misc/autobuild { };
2743   autoconf = callPackage ../development/tools/misc/autoconf { };
2745   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2747   automake = automake111x;
2749   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2751   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2753   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2755   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix {
2756     doCheck = !stdenv.isArm && !stdenv.isCygwin
2757       # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
2758       && stdenv.system != "i386-sunos";
2759   };
2761   automoc4 = callPackage ../development/tools/misc/automoc4 { };
2763   avrdude = callPackage ../development/tools/misc/avrdude { };
2765   bam = callPackage ../development/tools/build-managers/bam {};
2767   binutils = callPackage ../development/tools/misc/binutils {
2768     inherit noSysDirs;
2769   };
2771   binutils_gold = callPackage ../development/tools/misc/binutils {
2772     inherit noSysDirs;
2773     gold = true;
2774   };
2776   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2777     inherit stdenv fetchurl zlib;
2778     noSysDirs = true;
2779     cross = assert crossSystem != null; crossSystem;
2780   });
2782   bison = bison24;
2784   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2786   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2788   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2790   bison25 = callPackage ../development/tools/parsing/bison/bison-2.5.nix { };
2792   buildbot = callPackage ../development/tools/build-managers/buildbot {
2793     inherit (pythonPackages) twisted;
2794   };
2796   byacc = callPackage ../development/tools/parsing/byacc { };
2798   cbrowser = callPackage ../development/tools/misc/cbrowser { };
2800   ccache = callPackage ../development/tools/misc/ccache { };
2802   complexity = callPackage ../development/tools/misc/complexity { };
2804   ctags = callPackage ../development/tools/misc/ctags { };
2806   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2807     inherit pkgs ctags writeScriptBin;
2808   };
2810   cmake = callPackage ../development/tools/build-managers/cmake { };
2812   cmakeCurses = cmake.override { useNcurses = true; };
2814   cmakeWithGui = cmakeCurses.override { useQt4 = true; };
2816   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2818   cppi = callPackage ../development/tools/misc/cppi { };
2820   cproto = callPackage ../development/tools/misc/cproto { };
2822   cflow = callPackage ../development/tools/misc/cflow { };
2824   cscope = callPackage ../development/tools/misc/cscope { };
2826   csslint = callPackage ../development/web/csslint { };
2828   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2830   ddd = callPackage ../development/tools/misc/ddd { };
2832   distcc = callPackage ../development/tools/misc/distcc { };
2834   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2835     inherit python pil makeWrapper;
2836   };
2838   doxygen = lowPrio (callPackage ../development/tools/documentation/doxygen {
2839     qt = null;
2840   });
2842   doxygen_gui = doxygen.override {
2843     qt = qt4;
2844   };
2846   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2848   elfutils = callPackage ../development/tools/misc/elfutils { };
2850   epm = callPackage ../development/tools/misc/epm { };
2852   emma = callPackage ../development/tools/analysis/emma { };
2854   findbugs = callPackage ../development/tools/analysis/findbugs { };
2856   pmd = callPackage ../development/tools/analysis/pmd { };
2858   jdepend = callPackage ../development/tools/analysis/jdepend { };
2860   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2862   flex = flex2535;
2864   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2866   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2868   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2870   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2871   # alphabetically, hence the low priority.
2872   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2873     inherit fetchurl stdenv yacc;
2874   });
2876   m4 = gnum4;
2878   global = callPackage ../development/tools/misc/global { };
2880   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2882   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2884   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2885   gnumake381 = callPackage ../development/tools/build-managers/gnumake/3.81.nix { };
2887   gradle = callPackage ../development/tools/build-managers/gradle { };
2889   gperf = callPackage ../development/tools/misc/gperf { };
2891   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2893   guileLint = callPackage ../development/tools/guile/guile-lint { };
2895   gwrap = callPackage ../development/tools/guile/g-wrap { };
2897   help2man = callPackage ../development/tools/misc/help2man {
2898     inherit (perlPackages) LocaleGettext;
2899   };
2901   hyenae = callPackage ../tools/networking/hyenae { };
2903   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2904     inherit (perlPackages) XMLSimple;
2905   };
2907   indent = callPackage ../development/tools/misc/indent { };
2909   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2911   intelgen4asm = callPackage ../development/misc/intelgen4asm { };
2913   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2915   jam = callPackage ../development/tools/build-managers/jam { };
2917   jikespg = callPackage ../development/tools/parsing/jikespg { };
2919   lcov = callPackage ../development/tools/analysis/lcov { };
2921   libtool = libtool_2;
2923   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2925   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2927   lsof = callPackage ../development/tools/misc/lsof { };
2929   ltrace = callPackage ../development/tools/misc/ltrace { };
2931   mig = callPackage ../os-specific/gnu/mig
2932     (if stdenv.isLinux
2933      then {
2934        # Build natively, but force use of a 32-bit environment because we're
2935        # targeting `i586-pc-gnu'.
2936        stdenv = (import ../stdenv {
2937          system = "i686-linux";
2938          stdenvType = "i686-linux";
2939          allPackages = args:
2940            import ./all-packages.nix ({ inherit config; } // args);
2941          inherit platform;
2942        }).stdenv;
2943      }
2944      else { });
2946   mk = callPackage ../development/tools/build-managers/mk { };
2948   noweb = callPackage ../development/tools/literate-programming/noweb { };
2950   omake = callPackage ../development/tools/ocaml/omake { };
2953   openocd = callPackage ../development/tools/misc/openocd { };
2955   oprofile = import ../development/tools/profiling/oprofile {
2956     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep zlib;
2958     # Optional build inputs for the (useless) GUI.
2959     /*
2960     qt = qt3;
2961     inherit (xlibs) libX11 libXext;
2962     inherit libpng;
2963      */
2964   };
2966   patchelf = callPackage ../development/tools/misc/patchelf { };
2968   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2970   peg = callPackage ../development/tools/parsing/peg { };
2972   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2974   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2975      because most usage of pkgconfig as buildInput (inheritance of
2976      pre-cross nixpkgs) means using it using as buildNativeInput
2977      cross_renaming: we should make all programs use pkgconfig as
2978      buildNativeInput after the renaming.
2979      */
2980   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2982   radare = callPackage ../development/tools/analysis/radare {
2983     inherit (gnome) vte;
2984     lua = lua5;
2985     useX11 = getConfig ["radare" "useX11"] false;
2986     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2987     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2988     luaBindings = getConfig ["radare" "luaBindings"] false;
2989   };
2991   ragel = callPackage ../development/tools/parsing/ragel { };
2993   remake = callPackage ../development/tools/build-managers/remake { };
2995   # couldn't find the source yet
2996   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2997     jre = jdk;
2998   };
3000   scons = callPackage ../development/tools/build-managers/scons { };
3002   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
3004   sloccount = callPackage ../development/tools/misc/sloccount { };
3006   sparse = callPackage ../development/tools/analysis/sparse { };
3008   spin = callPackage ../development/tools/analysis/spin { };
3010   splint = callPackage ../development/tools/analysis/splint { };
3012   strace = callPackage ../development/tools/misc/strace { };
3014   swig = callPackage ../development/tools/misc/swig { };
3016   swigWithJava = swig;
3018   swftools = callPackage ../tools/video/swftools { };
3020   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
3022   texinfo = callPackage ../development/tools/misc/texinfo { };
3024   texi2html = callPackage ../development/tools/misc/texi2html { };
3026   uisp = callPackage ../development/tools/misc/uisp { };
3028   gdb = callPackage ../development/tools/misc/gdb {
3029     readline = readline5;
3030   };
3032   gdbCross = callPackage ../development/tools/misc/gdb {
3033     readline = readline5;
3034     target = crossSystem;
3035   };
3037   valgrind = callPackage ../development/tools/analysis/valgrind { };
3039   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
3041   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
3042     qt = qt3;
3043     inherit pkgconfig makeWrapper bison python flex;
3044     inherit (xlibs) libXext libX11;
3045   };
3047   yacc = bison;
3049   yodl = callPackage ../development/tools/misc/yodl { };
3052   ### DEVELOPMENT / LIBRARIES
3055   a52dec = callPackage ../development/libraries/a52dec { };
3057   aalib = callPackage ../development/libraries/aalib { };
3059   acl = callPackage ../development/libraries/acl { };
3061   adns = callPackage ../development/libraries/adns { };
3063   afflib = callPackage ../development/libraries/afflib {};
3065   agg = callPackage ../development/libraries/agg { };
3067   allegro = callPackage ../development/libraries/allegro {};
3068   allegro5 = callPackage ../development/libraries/allegro/5.nix {};
3070   amrnb = callPackage ../development/libraries/amrnb { };
3072   amrwb = callPackage ../development/libraries/amrwb { };
3074   apr = callPackage ../development/libraries/apr { };
3076   aprutil = callPackage ../development/libraries/apr-util {
3077     bdbSupport = true;
3078   };
3080   asio = callPackage ../development/libraries/asio { };
3082   aspell = callPackage ../development/libraries/aspell { };
3084   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
3085     inherit fetchurl stdenv aspell which;
3086   });
3088   aterm = aterm25;
3090   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
3092   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
3094   attica = callPackage ../development/libraries/attica { };
3096   attr = callPackage ../development/libraries/attr { };
3098   aubio = callPackage ../development/libraries/aubio { };
3100   axis = callPackage ../development/libraries/axis { };
3102   babl = callPackage ../development/libraries/babl { };
3104   beecrypt = callPackage ../development/libraries/beecrypt { };
3106   boehmgc = callPackage ../development/libraries/boehm-gc { };
3108   boolstuff = callPackage ../development/libraries/boolstuff { };
3110   boost142 = callPackage ../development/libraries/boost/1.42.nix { };
3111   boost144 = callPackage ../development/libraries/boost/1.44.nix { };
3112   boost146 = callPackage ../development/libraries/boost/1.46.nix { };
3113   boost147 = callPackage ../development/libraries/boost/1.47.nix { };
3114   # 1.47.0 doesn't compile on Darwin. The issue is probably trivial to
3115   # fix, but no-one has done it yet.
3116   boost = if stdenv.isDarwin then boost146 else boost147;
3118   # A Boost build with all library variants enabled.  Very large (about 250 MB).
3119   boostFull = appendToName "full" (boost.override {
3120     enableDebug = true;
3121     enableSingleThreaded = true;
3122     enableStatic = true;
3123   });
3125   botan = callPackage ../development/libraries/botan { };
3127   box2d = callPackage ../development/libraries/box2d { };
3128   box2d_2_0_1 = callPackage ../development/libraries/box2d/2.0.1.nix { };
3130   buddy = callPackage ../development/libraries/buddy { };
3132   cairomm = callPackage ../development/libraries/cairomm { };
3134   scmccid = callPackage ../development/libraries/scmccid { };
3136   ccrtp = callPackage ../development/libraries/ccrtp { };
3137   ccrtp_1_8 = callPackage ../development/libraries/ccrtp/1.8.nix { };
3139   celt = callPackage ../development/libraries/celt {};
3140   celt_0_7 = callPackage ../development/libraries/celt/0.7.nix {};
3142   cgui = callPackage ../development/libraries/cgui {};
3144   check = callPackage ../development/libraries/check { };
3146   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
3147     inherit cmake freeglut mesa;
3148     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
3149   };
3151   chmlib = callPackage ../development/libraries/chmlib { };
3153   cil = callPackage ../development/libraries/cil { };
3155   cilaterm = callPackage ../development/libraries/cil-aterm {
3156     stdenv = overrideInStdenv stdenv [gnumake380];
3157   };
3159   clanlib = callPackage ../development/libraries/clanlib { };
3161   clapack = callPackage ../development/libraries/clapack {
3162   };
3164   classads = callPackage ../development/libraries/classads { };
3166   classpath = callPackage ../development/libraries/java/classpath {
3167     javac = gcj;
3168     jvm = gcj;
3169     gconf = gnome.GConf;
3170   };
3172   clearsilver = callPackage ../development/libraries/clearsilver { };
3174   cln = callPackage ../development/libraries/cln { };
3176   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
3177   };
3179   clucene_core = callPackage ../development/libraries/clucene-core { };
3181   cluceneCore = clucene_core; # !!! remove this
3183   clutter = callPackage ../development/libraries/clutter {
3184     inherit (gnome) glib pango gtk;
3185   };
3187   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
3188     inherit (gnome) gtk;
3189   };
3191   cminpack = callPackage ../development/libraries/cminpack { };
3193   coin3d = callPackage ../development/libraries/coin3d { };
3195   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
3197   confuse = callPackage ../development/libraries/confuse { };
3199   consolekit = callPackage ../development/libraries/consolekit { };
3201   coredumper = callPackage ../development/libraries/coredumper { };
3203   ctl = callPackage ../development/libraries/ctl { };
3205   cppunit = callPackage ../development/libraries/cppunit { };
3207   cracklib = callPackage ../development/libraries/cracklib { };
3209   cryptopp = callPackage ../development/libraries/crypto++ { };
3211   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
3213   db4 = db45;
3215   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
3217   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
3219   db47 = callPackage ../development/libraries/db4/db4-4.7.nix { };
3221   db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
3223   dbus = pkgs.dbus_all.libs // { inherit (pkgs.dbus_all) libs; };
3225   dbus_daemon = pkgs.dbus_all.daemon;
3227   dbus_tools = pkgs.dbus_all.tools;
3229   dbus_libs = pkgs.dbus_all.libs;
3231   dbus_all = callPackage ../development/libraries/dbus {
3232     useX11 = true;
3233   };
3235   dbus_all_1_5_6 = callPackage ../development/libraries/dbus/1.5.6.nix {
3236     useX11 = true;
3237   };
3239   dbus_glib_0_94 = callPackage ../development/libraries/dbus-glib/0.94.nix {
3240     dbus = pkgs.dbus_all_1_5_6.libs;
3241   };
3243   dbus_glib = callPackage ../development/libraries/dbus-glib { };
3245   dbus_java = callPackage ../development/libraries/java/dbus-java { };
3247   dclib = callPackage ../development/libraries/dclib { };
3249   directfb = callPackage ../development/libraries/directfb { };
3251   dotconf = callPackage ../development/libraries/dotconf { };
3253   dssi = callPackage ../development/libraries/dssi {};
3255   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
3256     stdenv = overrideGCC stdenv gcc45;
3257   };
3259   eigen = callPackage ../development/libraries/eigen {};
3261   enchant = callPackage ../development/libraries/enchant {
3262     inherit (gnome) glib;
3263   };
3265   enet = callPackage ../development/libraries/enet { };
3267   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
3269   esdl = callPackage ../development/libraries/esdl { };
3271   exiv2 = callPackage ../development/libraries/exiv2 { };
3273   expat = callPackage ../development/libraries/expat { };
3275   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
3276     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
3277       libpng gettext intltool;
3278     inherit (xlibs) libX11 xproto libXi inputproto
3279       libXmu libXext xextproto libXt libSM libICE;
3280   };
3282   eventlog = callPackage ../development/libraries/eventlog { };
3284   facile = callPackage ../development/libraries/facile { };
3286   faac = callPackage ../development/libraries/faac { };
3288   faad2 = callPackage ../development/libraries/faad2 { };
3290   farsight2 = callPackage ../development/libraries/farsight2 {
3291     inherit (gnome) glib;
3292     inherit (gst_all) gstreamer gstPluginsBase gst_python;
3293   };
3295   fcgi = callPackage ../development/libraries/fcgi { };
3297   ffmpeg = callPackage ../development/libraries/ffmpeg {
3298     vpxSupport = if !stdenv.isMips then true else false;
3299   };
3301   ffmpeg_0_6_90 = callPackage ../development/libraries/ffmpeg/0.6.90.nix {
3302     vpxSupport = if !stdenv.isMips then true else false;
3303   };
3305   fftw = callPackage ../development/libraries/fftw {
3306     singlePrecision = false;
3307   };
3309   fftwSinglePrec = callPackage ../development/libraries/fftw {
3310     singlePrecision = true;
3311   };
3313   flann = callPackage ../development/libraries/flann { };
3315   flite = callPackage ../development/libraries/flite { };
3317   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
3319   fltk20 = callPackage ../development/libraries/fltk { };
3321   fmod = callPackage ../development/libraries/fmod { };
3323   freeimage = callPackage ../development/libraries/freeimage { };
3325   freetts = callPackage ../development/libraries/freetts { };
3327   cfitsio = callPackage ../development/libraries/cfitsio { };
3329   fontconfig = callPackage ../development/libraries/fontconfig { };
3331   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
3332     import ../development/libraries/fontconfig/make-fonts-conf.nix {
3333       inherit runCommand libxslt fontconfig fontDirectories;
3334     };
3336   freealut = callPackage ../development/libraries/freealut { };
3338   freeglut = callPackage ../development/libraries/freeglut { };
3340   freetype = callPackage ../development/libraries/freetype { };
3342   fribidi = callPackage ../development/libraries/fribidi { };
3344   funambol = callPackage ../development/libraries/funambol { };
3346   fam = gamin;
3348   gamin = callPackage ../development/libraries/gamin { };
3350   gav = callPackage ../games/gav {
3351     stdenv = overrideGCC stdenv gcc41;
3352   };
3354   gdome2 = callPackage ../development/libraries/gdome2 {
3355     inherit (gnome) gtkdoc;
3356   };
3358   gdbm = callPackage ../development/libraries/gdbm { };
3360   gegl = callPackage ../development/libraries/gegl {
3361     #  avocodec avformat librsvg
3362     inherit (gtkLibs) pango glib gtk;
3363   };
3365   geoclue = callPackage ../development/libraries/geoclue {};
3367   geoip = builderDefsPackage ../development/libraries/geoip {
3368     inherit zlib;
3369   };
3371   geoipjava = callPackage ../development/libraries/java/geoipjava { };
3373   geos = callPackage ../development/libraries/geos { };
3375   gettext = gettext_0_18;
3377   gettext_0_17 = callPackage ../development/libraries/gettext/0.17.nix { };
3378   gettext_0_18 = callPackage ../development/libraries/gettext { };
3380   gd = callPackage ../development/libraries/gd { };
3382   gdal = callPackage ../development/libraries/gdal { };
3384   ggz_base_libs = callPackage ../development/libraries/ggz_base_libs {};
3386   giblib = callPackage ../development/libraries/giblib { };
3388   glew = callPackage ../development/libraries/glew { };
3390   glfw = callPackage ../development/libraries/glfw { };
3392   glibc = glibc212;
3394   glibc25 = callPackage ../development/libraries/glibc-2.5 {
3395     kernelHeaders = linuxHeaders_2_6_28;
3396     installLocales = false;
3397   };
3399   glibc27 = callPackage ../development/libraries/glibc-2.7 {
3400     kernelHeaders = linuxHeaders;
3401     #installLocales = false;
3402   };
3404   glibc29 = callPackage ../development/libraries/glibc-2.9 {
3405     kernelHeaders = linuxHeaders;
3406     installLocales = getConfig [ "glibc" "locales" ] false;
3407   };
3409   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
3410     inherit stdenv fetchurl;
3411     gccCross = gccCrossStageStatic;
3412     kernelHeaders = linuxHeadersCross;
3413     installLocales = getConfig [ "glibc" "locales" ] false;
3414   });
3416   glibc212 = (callPackage ../development/libraries/glibc-2.12 {
3417     kernelHeaders = linuxHeaders;
3418     installLocales = getConfig [ "glibc" "locales" ] false;
3419     machHeaders = null;
3420     hurdHeaders = null;
3421     gccCross = null;
3422   }) // (if crossSystem != null then { hostDrv = glibc212Cross; } else {});
3424   glibc212Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.12)
3425     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
3426      in ({
3427        inherit stdenv fetchurl;
3428        gccCross = gccCrossStageStatic;
3429        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
3430        installLocales = getConfig [ "glibc" "locales" ] false;
3431      }
3433      //
3435      (if crossGNU
3436       then { inherit machHeaders hurdHeaders mig fetchgit; }
3437       else { }))));
3439   glibcCross = glibc212Cross;
3441   # We can choose:
3442   libcCrossChooser = name : if (name == "glibc") then glibcCross
3443     else if (name == "uclibc") then uclibcCross
3444     else if (name == "msvcrt") then windows.mingw_headers3
3445     else throw "Unknown libc";
3447   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
3449   eglibc = callPackage ../development/libraries/eglibc {
3450     kernelHeaders = linuxHeaders;
3451     installLocales = getConfig [ "glibc" "locales" ] false;
3452   };
3454   glibcLocales = callPackage ../development/libraries/glibc-2.12/locales.nix { };
3456   glibcInfo = callPackage ../development/libraries/glibc-2.12/info.nix { };
3458   glibc_multi =
3459       runCommand "${glibc.name}-multi"
3460         { glibc64 = glibc;
3461           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
3462         }
3463         ''
3464           ensureDir $out
3465           ln -s $glibc64/* $out/
3467           rm $out/lib $out/lib64
3468           ensureDir $out/lib
3469           ln -s $glibc64/lib/* $out/lib
3470           ln -s $glibc32/lib $out/lib/32
3471           ln -s lib $out/lib64
3473           rm $out/include
3474           cp -rs $glibc32/include $out
3475           chmod -R u+w $out/include
3476           cp -rsf $glibc64/include $out
3477         '' # */
3478         ;
3480   glpk = callPackage ../development/libraries/glpk { };
3482   gmime = callPackage ../development/libraries/gmime { };
3484   gmm = callPackage ../development/libraries/gmm { };
3486   gmp =
3487     if stdenv.system == "i686-darwin" then
3488       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
3489       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
3490         inherit stdenv fetchurl m4;
3491         cxx = false;
3492       }
3493     else
3494       # We temporarily leave gmp 4 here, waiting for a new ppl/cloog-ppl that
3495       # would build well with gmp 5.
3496       makeOverridable (import ../development/libraries/gmp/4.nix) {
3497         inherit stdenv fetchurl m4;
3498         cxx = false;
3499       };
3501   gmpxx = gmp.override { cxx = true; };
3503   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
3505   goffice = callPackage ../development/libraries/goffice {
3506     inherit (gnome) glib gtk libglade libgnomeui pango;
3507     gconf = gnome.GConf;
3508     libart = gnome.libart_lgpl;
3509   };
3511   goocanvas = callPackage ../development/libraries/goocanvas {
3512     inherit (gnome) gtk glib;
3513   };
3515   google_perftools = callPackage ../development/libraries/google-perftools { };
3517   #GMP ex-satellite, so better keep it near gmp
3518   mpfr = callPackage ../development/libraries/mpfr { };
3520   gst_all = recurseIntoAttrs
3521     (let callPackage = newScope pkgs.gst_all; in
3522      import ../development/libraries/gstreamer { inherit callPackage; }
3523     );
3525   gnet = callPackage ../development/libraries/gnet { };
3527   gnutls = callPackage ../development/libraries/gnutls {
3528     guileBindings = getConfig ["gnutls" "guile"] true;
3529   };
3531   gnutls2 = callPackage ../development/libraries/gnutls/2.12.nix {
3532     guileBindings = getConfig ["gnutls" "guile"] true;
3533   };
3535   gpgme = callPackage ../development/libraries/gpgme { };
3537   grantlee = callPackage ../development/libraries/grantlee { };
3539   gsasl = callPackage ../development/libraries/gsasl { };
3541   gsl = callPackage ../development/libraries/gsl { };
3543   gsm = callPackage ../development/libraries/gsm {};
3545   gsoap = callPackage ../development/libraries/gsoap { };
3547   gss = callPackage ../development/libraries/gss { };
3549   gtkimageview = callPackage ../development/libraries/gtkimageview {
3550     inherit (gnome) gtk;
3551   };
3553   gtkmathview = callPackage ../development/libraries/gtkmathview { };
3555   gtkLibs = pkgs.gtkLibs224;
3557   inherit (pkgs.gtkLibs) glib gtk pango cairo;
3559   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in {
3561     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
3563     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
3565   });
3567   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in {
3569     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
3571     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
3573     cairo = callPackage ../development/libraries/cairo { };
3575     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
3577     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
3579   });
3581   gtkLibs224 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs224; in {
3583     glib = callPackage ../development/libraries/glib/2.28.x.nix { };
3585     glibmm = callPackage ../development/libraries/glibmm/2.28.x.nix { };
3587     atk = callPackage ../development/libraries/atk/1.32.x.nix { };
3589     atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
3591     cairo = callPackage ../development/libraries/cairo { };
3593     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3595     pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { };
3597     gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.24.x.nix { };
3599     gtk = callPackage ../development/libraries/gtk+/2.24.x.nix { };
3601     gtkmm = callPackage ../development/libraries/gtkmm/2.24.x.nix { };
3603     gob2 = callPackage ../development/tools/misc/gob2 { };
3605   });
3607   gtkLibs3x = let callPackage = newScope pkgs.gtkLibs3x; in {
3608     glib = callPackage ../development/libraries/glib/2.30.x.nix { };
3610     glibmm = callPackage ../development/libraries/glibmm/2.30.x.nix { };
3612     gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.24.x.nix { };
3614     atk = callPackage ../development/libraries/atk/2.2.x.nix { };
3616     atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
3618     cairo = callPackage ../development/libraries/cairo { };
3620     pango = callPackage ../development/libraries/pango/1.29.x.nix { };
3622     gtk = callPackage ../development/libraries/gtk+/3.2.x.nix { };
3624     # Let hydra build gtk-3.x but do not show this to users yet
3625     recurseForRelease = true;
3626   };
3628   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3629     inherit (gnome) gtk;
3630     gtksharp = gtksharp2;
3631   };
3633   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3634     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3635               libgnomecanvas libgnomeui libgnomeprint
3636               libgnomeprintui GConf;
3637   };
3639   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3640     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3641               libgnomecanvas libgnomeui libgnomeprint
3642               libgnomeprintui GConf gnomepanel;
3643   };
3645   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3646     inherit (gnome) gtksourceview;
3647     gtksharp = gtksharp2;
3648   };
3650   gtkspell = callPackage ../development/libraries/gtkspell { };
3652   gts = callPackage ../development/libraries/gts { };
3654   # TODO : Add MIT Kerberos and let admin choose.
3655   kerberos = heimdal;
3657   hawknl = callPackage ../development/libraries/hawknl { };
3659   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3661   herqq = callPackage ../development/libraries/herqq { };
3663   hspell = callPackage ../development/libraries/hspell { };
3665   hspellDicts = callPackage ../development/libraries/hspell/dicts.nix { };
3667   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3669   hunspell = callPackage ../development/libraries/hunspell { };
3671   hwloc = callPackage ../development/libraries/hwloc { };
3673   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3675   icedtea = callPackage ../development/libraries/java/icedtea {
3676     ant = apacheAntGcj;
3677     xerces = xercesJava;
3678     xulrunner = icecatXulrunner3;
3679     inherit (xlibs) libX11 libXp libXtst libXinerama libXt
3680       libXrender xproto;
3681   };
3683   icu = callPackage ../development/libraries/icu { };
3685   id3lib = callPackage ../development/libraries/id3lib { };
3687   ilbc = callPackage ../development/libraries/ilbc { };
3689   ilmbase = callPackage ../development/libraries/ilmbase { };
3691   imlib = callPackage ../development/libraries/imlib { };
3693   imlib2 = callPackage ../development/libraries/imlib2 { };
3695   incrtcl = callPackage ../development/libraries/incrtcl { };
3697   indilib = callPackage ../development/libraries/indilib { };
3699   iniparser = callPackage ../development/libraries/iniparser { };
3701   intltool = gnome.intltool;
3703   isocodes = callPackage ../development/libraries/iso-codes { };
3705   itk = callPackage ../development/libraries/itk { };
3707   jamp = builderDefsPackage ../games/jamp {
3708     inherit mesa SDL SDL_image SDL_mixer;
3709   };
3711   jasper = callPackage ../development/libraries/jasper { };
3713   jama = callPackage ../development/libraries/jama { };
3715   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3717   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3719   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3721   json_glib = callPackage ../development/libraries/json-glib { };
3723   judy = callPackage ../development/libraries/judy { };
3725   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3727   lcms = lcms1;
3729   lcms1 = callPackage ../development/libraries/lcms { };
3731   lcms2 = callPackage ../development/libraries/lcms2 { };
3733   lensfun = callPackage ../development/libraries/lensfun {
3734     inherit (gnome) glib;
3735   };
3737   lesstif = callPackage ../development/libraries/lesstif { };
3739   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3741   levmar = callPackage ../development/libraries/levmar { };
3743   leptonica = callPackage ../development/libraries/leptonica { };
3745   lib3ds = callPackage ../development/libraries/lib3ds { };
3747   libaal = callPackage ../development/libraries/libaal { };
3749   libao = callPackage ../development/libraries/libao {
3750     usePulseAudio = getConfig [ "pulseaudio" ] true;
3751   };
3753   libarchive = callPackage ../development/libraries/libarchive { };
3755   libass = callPackage ../development/libraries/libass { };
3757   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3759   libassuan = callPackage ../development/libraries/libassuan { };
3761   libav = callPackage ../development/libraries/libav { };
3763   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3765   libbluedevil = callPackage ../development/libraries/libbluedevil { };
3767   libcaca = callPackage ../development/libraries/libcaca { };
3769   libcanberra = callPackage ../development/libraries/libcanberra {
3770     # gstreamer = gst_all.gstreamer;
3771   };
3773   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3775   libcddb = callPackage ../development/libraries/libcddb { };
3777   libcdio = callPackage ../development/libraries/libcdio { };
3779   libchamplain = callPackage ../development/libraries/libchamplain {
3780     inherit (gnome) gtk glib libsoup;
3781   };
3783   libcm = callPackage ../development/libraries/libcm { };
3785   libctemplate = callPackage ../development/libraries/libctemplate { };
3787   libcue = callPackage ../development/libraries/libcue { };
3789   libdaemon = callPackage ../development/libraries/libdaemon { };
3791   libdbi = callPackage ../development/libraries/libdbi { };
3793   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3794     mysql = null;
3795     sqlite = null;
3796   };
3798   libdbiDrivers = libdbiDriversBase.override {
3799     inherit sqlite mysql;
3800   };
3802   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
3804   libdevil = callPackage ../development/libraries/libdevil { };
3806   libdiscid = callPackage ../development/libraries/libdiscid { };
3808   libdmtx = callPackage ../development/libraries/libdmtx { };
3810   libdnet = callPackage ../development/libraries/libdnet { };
3812   libdrm = callPackage ../development/libraries/libdrm {
3813     inherit fetchurl stdenv pkgconfig;
3814     inherit (xorg) libpthreadstubs;
3815   };
3817   libdv = callPackage ../development/libraries/libdv { };
3819   libdwg = callPackage ../development/libraries/libdwg { };
3821   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3823   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3825   libdvdread = callPackage ../development/libraries/libdvdread { };
3827   libebml = callPackage ../development/libraries/libebml { };
3829   libedit = callPackage ../development/libraries/libedit { };
3831   libelf = callPackage ../development/libraries/libelf { };
3833   libgadu = callPackage ../development/libraries/libgadu { };
3835   libgdata = (newScope gnome) ../development/libraries/libgdata {};
3836   libgdata_0_6 = (newScope gnome) ../development/libraries/libgdata/0.6.nix {};
3838   liblo = callPackage ../development/libraries/liblo { };
3840   liblrdf = callPackage ../development/libraries/liblrdf {};
3842   libev = builderDefsPackage ../development/libraries/libev {
3843   };
3845   libevent = callPackage ../development/libraries/libevent { };
3847   libewf = callPackage ../development/libraries/libewf { };
3849   libexif = callPackage ../development/libraries/libexif { };
3851   libexosip = callPackage ../development/libraries/exosip {};
3853   libextractor = callPackage ../development/libraries/libextractor {
3854     inherit (gnome) gtk;
3855     libmpeg2 = mpeg2dec;
3856   };
3858   libf2c = callPackage ../development/libraries/libf2c {};
3860   libfixposix = callPackage ../development/libraries/libfixposix {};
3862   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3863     inherit fetchcvs;
3864   };
3866   libffi = callPackage ../development/libraries/libffi { };
3868   libftdi = callPackage ../development/libraries/libftdi { };
3870   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3872   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3874   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3876   libgpod = callPackage ../development/libraries/libgpod {
3877     inherit (pkgs.pythonPackages) mutagen;
3878   };
3880   libharu = callPackage ../development/libraries/libharu { };
3882   libical = callPackage ../development/libraries/libical { };
3884   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
3886   libiodbc = callPackage ../development/libraries/libiodbc {
3887     useGTK = getConfig [ "libiodbc" "gtk" ] false;
3888   };
3890   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
3892   liblastfm = callPackage ../development/libraries/liblastfm { };
3894   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3895     inherit (gnome) glib;
3896   };
3898   libmhash = callPackage ../development/libraries/libmhash {};
3900   libmtp = callPackage ../development/libraries/libmtp { };
3902   libnice = callPackage ../development/libraries/libnice {
3903     inherit (gnome) glib;
3904   };
3906   libplist = callPackage ../development/libraries/libplist { };
3908   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3910   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3912   libspectre = callPackage ../development/libraries/libspectre { };
3914   libgsf = callPackage ../development/libraries/libgsf {
3915     inherit (gnome) glib gnome_vfs libbonobo;
3916   };
3918   libiconv = callPackage ../development/libraries/libiconv { };
3920   libid3tag = callPackage ../development/libraries/libid3tag { };
3922   libidn = callPackage ../development/libraries/libidn { };
3924   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3926   libinfinity = callPackage ../development/libraries/libinfinity {
3927     inherit (gnome) gtkdoc;
3928   };
3930   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3932   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3934   libjpeg = callPackage ../development/libraries/libjpeg { };
3936   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3938   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3939     libtool = libtool_1_5;
3940   };
3942   libkate = callPackage ../development/libraries/libkate { };
3944   libksba = callPackage ../development/libraries/libksba { };
3946   libmad = callPackage ../development/libraries/libmad { };
3948   libmatchbox = callPackage ../development/libraries/libmatchbox {
3949     inherit (gtkLibs) pango;
3950   };
3952   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3954   libmatroska = callPackage ../development/libraries/libmatroska { };
3956   libmcs = callPackage ../development/libraries/libmcs { };
3958   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3960   libmikmod = callPackage ../development/libraries/libmikmod { };
3962   libmilter = callPackage ../development/libraries/libmilter { };
3964   libmms = callPackage ../development/libraries/libmms { };
3966   libmowgli = callPackage ../development/libraries/libmowgli { };
3968   libmng = callPackage ../development/libraries/libmng { };
3970   libmodplug = callPackage ../development/libraries/libmodplug {};
3972   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3974   libmrss = callPackage ../development/libraries/libmrss { };
3976   libmsn = callPackage ../development/libraries/libmsn { };
3978   libmspack = callPackage ../development/libraries/libmspack { };
3980   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3982   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3984   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3986   libmusicbrainz = libmusicbrainz3;
3988   libnih = callPackage ../development/libraries/libnih { };
3990   libnova = callPackage ../development/libraries/libnova { };
3992   libnxml = callPackage ../development/libraries/libnxml { };
3994   libofa = callPackage ../development/libraries/libofa { };
3996   libofx = callPackage ../development/libraries/libofx { };
3998   libogg = callPackage ../development/libraries/libogg { };
4000   liboggz = callPackage ../development/libraries/liboggz { };
4002   liboil = callPackage ../development/libraries/liboil { };
4004   liboop = callPackage ../development/libraries/liboop { };
4006   libosip = callPackage ../development/libraries/osip {};
4008   libotr = callPackage ../development/libraries/libotr { };
4010   libp11 = callPackage ../development/libraries/libp11 { };
4012   libpar2 = callPackage ../development/libraries/libpar2 { };
4014   libpcap = callPackage ../development/libraries/libpcap { };
4016   libpng = callPackage ../development/libraries/libpng { };
4017   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
4019   libproxy = callPackage ../development/libraries/libproxy { };
4021   libpseudo = callPackage ../development/libraries/libpseudo { };
4023   libqalculate = callPackage ../development/libraries/libqalculate { };
4025   librsync = callPackage ../development/libraries/librsync { };
4027   libsigcxx = callPackage ../development/libraries/libsigcxx { };
4029   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
4031   libsigsegv = callPackage ../development/libraries/libsigsegv { };
4033   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
4034   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
4036   libsndfile = callPackage ../development/libraries/libsndfile { };
4038   libssh = callPackage ../development/libraries/libssh { };
4040   libssh2 = callPackage ../development/libraries/libssh2 { };
4042   libstartup_notification = callPackage ../development/libraries/startup-notification { };
4044   libtasn1 = callPackage ../development/libraries/libtasn1 { };
4046   libtheora = callPackage ../development/libraries/libtheora { };
4048   libtiff = callPackage ../development/libraries/libtiff { };
4050   libtiger = callPackage ../development/libraries/libtiger { };
4052   libtommath = callPackage ../development/libraries/libtommath { };
4054   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
4056   libtunepimp = callPackage ../development/libraries/libtunepimp { };
4058   libgeotiff = callPackage ../development/libraries/libgeotiff { };
4060   libunistring = callPackage ../development/libraries/libunistring { };
4062   libupnp = callPackage ../development/libraries/pupnp { };
4064   giflib = callPackage ../development/libraries/giflib { };
4066   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
4068   libusb = callPackage ../development/libraries/libusb { };
4070   libusb1 = callPackage ../development/libraries/libusb1 { };
4072   libunwind = callPackage ../development/libraries/libunwind { };
4074   libv4l = callPackage ../development/libraries/libv4l { };
4076   libva = callPackage ../development/libraries/libva { };
4078   libvdpau = callPackage ../development/libraries/libvdpau { };
4080   libvirt = callPackage ../development/libraries/libvirt { };
4082   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
4083     inherit libtool libjpeg openssl zlib;
4084     inherit (xlibs) xproto libX11 damageproto libXdamage
4085       libXext xextproto fixesproto libXfixes xineramaproto
4086       libXinerama libXrandr randrproto libXtst;
4087   };
4089   libviper = callPackage ../development/libraries/libviper { };
4091   libvpx = callPackage ../development/libraries/libvpx { };
4093   libvterm = callPackage ../development/libraries/libvterm { };
4095   libvorbis = callPackage ../development/libraries/libvorbis { };
4097   libwmf = callPackage ../development/libraries/libwmf { };
4099   libwpd = callPackage ../development/libraries/libwpd {
4100     inherit (gnome) glib;
4101   };
4103   libwpg = callPackage ../development/libraries/libwpg { };
4105   libx86 = builderDefsPackage ../development/libraries/libx86 {};
4107   libxcrypt = callPackage ../development/libraries/libxcrypt { };
4109   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
4111   libxklavier = callPackage ../development/libraries/libxklavier { };
4113   libxmi = callPackage ../development/libraries/libxmi { };
4115   libxml2 = callPackage ../development/libraries/libxml2 {
4116     pythonSupport = false;
4117   };
4119   libxml2Python = libxml2.override {
4120     pythonSupport = true;
4121   };
4123   libxmlxx = callPackage ../development/libraries/libxmlxx {
4124     inherit (gtkLibs) glibmm;
4125   };
4127   libxslt = callPackage ../development/libraries/libxslt { };
4129   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
4130     inherit fetchurl stdenv;
4131   });
4133   libyaml = callPackage ../development/libraries/libyaml { };
4135   libzip = callPackage ../development/libraries/libzip { };
4137   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
4138   libzrtpcpp_1_6 = callPackage ../development/libraries/libzrtpcpp/1.6.nix {
4139     ccrtp = ccrtp_1_8;
4140   };
4142   lightning = callPackage ../development/libraries/lightning { };
4144   liquidwar = builderDefsPackage ../games/liquidwar {
4145     inherit (xlibs) xproto libX11 libXrender;
4146     inherit gmp mesa libjpeg libpng
4147       expat gettext perl
4148       SDL SDL_image SDL_mixer SDL_ttf
4149       curl sqlite
4150       libogg libvorbis
4151       ;
4152    guile = guile_1_8;
4153   };
4155   log4cxx = callPackage ../development/libraries/log4cxx { };
4157   loudmouth = callPackage ../development/libraries/loudmouth { };
4159   lzo = callPackage ../development/libraries/lzo { };
4161   # failed to build
4162   mediastreamer = callPackage ../development/libraries/mediastreamer { };
4164   mesaSupported =
4165     system == "i686-linux" ||
4166     system == "x86_64-linux" ||
4167     system == "x86_64-darwin" ||
4168     system == "i686-darwin";
4170   mesa = callPackage ../development/libraries/mesa {
4171     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
4172   };
4174   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
4175     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
4176     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
4177     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
4178     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
4179     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
4180     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
4181     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
4182     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
4183     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
4184     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
4185     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
4186     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
4187     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
4188     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
4189   });
4191   ming = callPackage ../development/libraries/ming { };
4193   mkvtoolnix = callPackage ../applications/video/mkvtoolnix { };
4195   mlt = callPackage ../development/libraries/mlt {
4196     qt = qt4;
4197   };
4199   libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
4201   mpeg2dec = libmpeg2;
4203   msilbc = callPackage ../development/libraries/msilbc { };
4205   mp4v2 = callPackage ../development/libraries/mp4v2 { };
4207   mpc = callPackage ../development/libraries/mpc { };
4209   mpich2 = callPackage ../development/libraries/mpich2 { };
4211   mtdev = callPackage ../development/libraries/mtdev { };
4213   muparser = callPackage ../development/libraries/muparser { };
4215   mygui = callPackage ../development/libraries/mygui {};
4217   myguiSvn = callPackage ../development/libraries/mygui/svn.nix {};
4219   ncurses = makeOverridable (import ../development/libraries/ncurses) {
4220     inherit fetchurl stdenv;
4221     unicode = system != "i686-cygwin";
4222   };
4224   neon = neon029;
4226   neon026 = callPackage ../development/libraries/neon/0.26.nix {
4227     compressionSupport = true;
4228     sslSupport = true;
4229   };
4231   neon028 = callPackage ../development/libraries/neon/0.28.nix {
4232     compressionSupport = true;
4233     sslSupport = true;
4234   };
4236   neon029 = callPackage ../development/libraries/neon/0.29.nix {
4237     compressionSupport = true;
4238     sslSupport = true;
4239     openssl = opensslNew;
4240   };
4242   nethack = builderDefsPackage (import ../games/nethack) {
4243     inherit ncurses flex bison;
4244   };
4246   nettle = callPackage ../development/libraries/nettle { };
4248   nspr = callPackage ../development/libraries/nspr { };
4250   nss = callPackage ../development/libraries/nss { };
4252   nssTools = callPackage ../development/libraries/nss {
4253     includeTools = true;
4254   };
4256   ntrack = callPackage ../development/libraries/ntrack { };
4258   ode = builderDefsPackage (import ../development/libraries/ode) {
4259   };
4261   ogre = callPackage ../development/libraries/ogre {};
4263   openal = callPackage ../development/libraries/openal { };
4265   # added because I hope that it has been easier to compile on x86 (for blender)
4266   openalSoft = callPackage ../development/libraries/openal-soft { };
4268   openbabel = callPackage ../development/libraries/openbabel { };
4270   opencascade = callPackage ../development/libraries/opencascade { };
4272   openct = callPackage ../development/libraries/openct { };
4274   opencv = callPackage ../development/libraries/opencv {
4275     ffmpeg = ffmpeg_0_6_90;
4276     inherit (gst_all) gstreamer;
4277   };
4279   opencv_2_1 = callPackage ../development/libraries/opencv/2.1.nix {
4280     ffmpeg = ffmpeg_0_6_90;
4281     inherit (gst_all) gstreamer;
4282   };
4284   # this ctl version is needed by openexr_viewers
4285   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
4287   openexr = callPackage ../development/libraries/openexr { };
4289   openldap = callPackage ../development/libraries/openldap { };
4291   openlierox = builderDefsPackage ../games/openlierox {
4292     inherit (xlibs) libX11 xproto;
4293     inherit gd SDL SDL_image SDL_mixer zlib libxml2
4294       pkgconfig;
4295   };
4297   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
4298     opensc = opensc_0_11_7;
4299   };
4301   ois = callPackage ../development/libraries/ois {};
4303   opal = callPackage ../development/libraries/opal {};
4305   openjpeg = callPackage ../development/libraries/openjpeg { };
4307   openscenegraph = callPackage ../development/libraries/openscenegraph {};
4309   openssl = callPackage ../development/libraries/openssl {
4310     fetchurl = fetchurlBoot;
4311   };
4313   opensslNew = callPackage ../development/libraries/openssl/1.0.0e.nix { };
4315   ortp = callPackage ../development/libraries/ortp { };
4317   pangoxsl = callPackage ../development/libraries/pangoxsl {
4318     inherit (gtkLibs) glib pango;
4319   };
4321   pcre = callPackage ../development/libraries/pcre {
4322     unicodeSupport = getConfig ["pcre" "unicode"] false;
4323     cplusplusSupport = !stdenv ? isDietLibC;
4324   };
4326   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
4328   phonon = callPackage ../development/libraries/phonon { };
4330   phonon_backend_gstreamer = callPackage ../development/libraries/phonon-backend-gstreamer { };
4332   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
4334   physfs = callPackage ../development/libraries/physfs { };
4336   plib = callPackage ../development/libraries/plib { };
4338   pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
4340   podofo = callPackage ../development/libraries/podofo { };
4342   polkit = callPackage ../development/libraries/polkit { };
4344   polkit_qt_1 = callPackage ../development/libraries/polkit-qt-1 { };
4346   policykit = callPackage ../development/libraries/policykit { };
4348   poppler = callPackage ../development/libraries/poppler {
4349     gtkSupport = true;
4350     qt4Support = false;
4351   };
4353   popplerQt4 = poppler.override {
4354     gtkSupport = false;
4355     qt4Support = true;
4356   };
4358   popt = callPackage ../development/libraries/popt { };
4360   portaudio = callPackage ../development/libraries/portaudio { };
4361   portaudioSVN = callPackage ../development/libraries/portaudio/svn-head.nix { };
4363   prison = callPackage ../development/libraries/prison { };
4365   proj = callPackage ../development/libraries/proj { };
4367   postgis = callPackage ../development/libraries/postgis { };
4369   protobuf = callPackage ../development/libraries/protobuf { };
4370   protobuf_2_2_0 = callPackage ../development/libraries/protobuf/2.2.0.nix { };
4372   pth = callPackage ../development/libraries/pth { };
4374   ptlib = callPackage ../development/libraries/ptlib {};
4376   qca2 = callPackage ../development/libraries/qca2 {};
4378   qca2_ossl = callPackage ../development/libraries/qca2/ossl.nix {};
4380   qimageblitz = callPackage ../development/libraries/qimageblitz {};
4382   qjson = callPackage ../development/libraries/qjson { };
4384   qt3 = callPackage ../development/libraries/qt-3 {
4385     openglSupport = mesaSupported;
4386     mysqlSupport = getConfig ["qt" "mysql"] false;
4387   };
4389   qt3mysql = qt3.override {
4390     mysqlSupport = true;
4391   };
4393   qt4 = pkgs.kde4.qt4;
4395   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
4396     inherit (gnome) glib;
4397   };
4399   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
4400     inherit (pkgs.gnome) glib;
4401   };
4403   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
4405   quesoglc = callPackage ../development/libraries/quesoglc { };
4407   qwt = callPackage ../development/libraries/qwt {};
4409   readline = readline6;
4411   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
4413   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
4415   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
4417   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
4419   librdf_raptor2 = callPackage ../development/libraries/librdf/raptor2.nix { };
4421   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
4423   librdf_redland = callPackage ../development/libraries/librdf/redland.nix { };
4425   librdf = callPackage ../development/libraries/librdf { };
4427   qrupdate = callPackage ../development/libraries/qrupdate { };
4429   redland = pkgs.librdf_redland;
4431   rhino = callPackage ../development/libraries/java/rhino {
4432     ant = apacheAntGcj;
4433     javac = gcj;
4434     jvm = gcj;
4435   };
4437   rlog = callPackage ../development/libraries/rlog { };
4439   rte = callPackage ../development/libraries/rte { };
4441   rubberband = callPackage ../development/libraries/rubberband {
4442     fftw = fftwSinglePrec;
4443     inherit (vamp) vampSDK;
4444   };
4446   schroedinger = callPackage ../development/libraries/schroedinger { };
4448   SDL = callPackage ../development/libraries/SDL {
4449     openglSupport = mesaSupported;
4450     alsaSupport = true;
4451     x11Support = true;
4452     pulseaudioSupport = false; # better go through ALSA
4453   };
4455   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
4457   SDL_image = callPackage ../development/libraries/SDL_image { };
4459   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
4461   SDL_net = callPackage ../development/libraries/SDL_net { };
4463   SDL_sound = callPackage ../development/libraries/SDL_sound { };
4465   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
4467   simgear = callPackage ../development/libraries/simgear {};
4469   sfml_git = callPackage ../development/libraries/sfml { };
4471   slang = callPackage ../development/libraries/slang { };
4473   slibGuile = callPackage ../development/libraries/slib {
4474     scheme = guile_1_8;
4475   };
4477   smpeg = callPackage ../development/libraries/smpeg { };
4479   snack = callPackage ../development/libraries/snack {
4480         # optional
4481   };
4483   soprano = callPackage ../development/libraries/soprano { };
4485   soqt = callPackage ../development/libraries/soqt { };
4487   speechd = callPackage ../development/libraries/speechd { };
4489   speech_tools = callPackage ../development/libraries/speech-tools {};
4491   speex = callPackage ../development/libraries/speex { };
4493   sphinxbase = callPackage ../development/libraries/sphinxbase { };
4495   srtp = callPackage ../development/libraries/srtp {};
4497   sqlite = callPackage ../development/libraries/sqlite {
4498     readline = null;
4499     ncurses = null;
4500   };
4502   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
4503     readline = null;
4504     ncurses = null;
4505   };
4507   sqliteInteractive = appendToName "interactive" (sqlite.override {
4508     inherit readline ncurses;
4509   });
4511   stlport = callPackage ../development/libraries/stlport { };
4513   strigi = callPackage ../development/libraries/strigi {};
4515   suitesparse = callPackage ../development/libraries/suitesparse { };
4517   sword = callPackage ../development/libraries/sword { };
4519   szip = callPackage ../development/libraries/szip { };
4521   t1lib = callPackage ../development/libraries/t1lib { };
4523   taglib = callPackage ../development/libraries/taglib { };
4525   taglib_extras = callPackage ../development/libraries/taglib-extras { };
4527   talloc = callPackage ../development/libraries/talloc { };
4529 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
4530 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
4531 ##  };
4533   tcp_wrappers = callPackage ../development/libraries/tcp-wrappers {};
4535   tdb = callPackage ../development/libraries/tdb { };
4537   tecla = callPackage ../development/libraries/tecla { };
4539   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
4541   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
4543   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
4545   tk = callPackage ../development/libraries/tk { };
4547   tnt = callPackage ../development/libraries/tnt { };
4549   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
4551   tremor = callPackage ../development/libraries/tremor { };
4553   unicap = callPackage ../development/libraries/unicap {};
4555   unixODBC = callPackage ../development/libraries/unixODBC { };
4557   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
4558     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
4559     inherit postgresql mysql sqlite;
4560   });
4562   urt = callPackage ../development/libraries/urt { };
4564   ustr = callPackage ../development/libraries/ustr { };
4566   ucommon = callPackage ../development/libraries/ucommon { };
4568   vamp = callPackage ../development/libraries/audio/vamp { };
4570   vigra = callPackage ../development/libraries/vigra { };
4572   vmime = callPackage ../development/libraries/vmime { };
4574   vtk = callPackage ../development/libraries/vtk { };
4576   vxl = callPackage ../development/libraries/vxl { };
4578   webkit =
4579     builderDefsPackage ../development/libraries/webkit {
4580       inherit (gnome) gtkdoc libsoup;
4581       inherit (gtkLibs) gtk atk pango glib;
4582       inherit freetype fontconfig gettext gperf curl
4583         libjpeg libtiff libpng libxml2 libxslt sqlite
4584         icu cairo perl intltool automake libtool
4585         pkgconfig autoconf bison libproxy enchant
4586         python ruby which flex geoclue;
4587       inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
4588         gstPluginsGood;
4589       inherit (xlibs) libXt renderproto libXrender;
4590     };
4592   webkitSVN =
4593     builderDefsPackage ../development/libraries/webkit/svn.nix {
4594       inherit (gnome) gtkdoc libsoup;
4595       inherit (gtkLibs) gtk atk pango glib;
4596       inherit freetype fontconfig gettext gperf curl
4597         libjpeg libtiff libpng libxml2 libxslt sqlite
4598         icu cairo perl intltool automake libtool
4599         pkgconfig autoconf bison libproxy enchant
4600         python ruby which flex geoclue;
4601       inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
4602         gstPluginsGood;
4603       inherit (xlibs) libXt renderproto libXrender;
4604     };
4606   wvstreams = callPackage ../development/libraries/wvstreams { };
4608   wxGTK = wxGTK28;
4610   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
4611     inherit (gtkLibs216) gtk;
4612   };
4614   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
4615     inherit (gtkLibs) gtk;
4616   };
4618   wxGTK29 = callPackage ../development/libraries/wxGTK-2.9 {
4619     inherit (gtkLibs) gtk;
4620   };
4622   wxGTK290 = callPackage ../development/libraries/wxGTK-2.9/2.9.0.nix {
4623     inherit (gtkLibs) gtk;
4624   };
4626   wtk = callPackage ../development/libraries/wtk { };
4628   x264 = callPackage ../development/libraries/x264 { };
4630   xapian = callPackage ../development/libraries/xapian { };
4632   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
4633   };
4635   xapian10 = callPackage ../development/libraries/xapian/1.0.x.nix { };
4637   xapianBindings10 = callPackage ../development/libraries/xapian/bindings/1.0.x.nix {  # TODO perl php Java, tcl, C#, python
4638   };
4640   Xaw3d = callPackage ../development/libraries/Xaw3d { };
4642   xbase = callPackage ../development/libraries/xbase { };
4644   xineLib = callPackage ../development/libraries/xine-lib { };
4646   xautolock = callPackage ../misc/screensavers/xautolock { };
4648   xercesc = callPackage ../development/libraries/xercesc {};
4650   xercesJava = callPackage ../development/libraries/java/xerces {
4651     ant   = apacheAntGcj;  # for bootstrap purposes
4652     javac = gcj;
4653     jvm   = gcj;
4654   };
4656   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
4657     packages = [
4658       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
4659       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
4660       xlibs.xextproto
4661     ];
4662   };
4664   xvidcore = callPackage ../development/libraries/xvidcore { };
4666   yajl = callPackage ../development/libraries/yajl { };
4668   zangband = builderDefsPackage (import ../games/zangband) {
4669     inherit ncurses flex bison autoconf automake m4 coreutils;
4670   };
4672   zlib = callPackage ../development/libraries/zlib {
4673     fetchurl = fetchurlBoot;
4674   };
4676   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
4677     inherit fetchurl stdenv;
4678     static = true;
4679   }));
4681   zvbi = callPackage ../development/libraries/zvbi {
4682     pngSupport = true;
4683   };
4686   ### DEVELOPMENT / LIBRARIES / JAVA
4689   atermjava = callPackage ../development/libraries/java/aterm {
4690     stdenv = overrideInStdenv stdenv [gnumake380];
4692   };
4694   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
4696   fastjar = callPackage ../development/tools/java/fastjar { };
4698   httpunit = callPackage ../development/libraries/java/httpunit { };
4700   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
4702   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
4704   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
4705     regexp = jakartaregexp;
4706   };
4708   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
4710   javaCup = callPackage ../development/libraries/java/cup { };
4712   javasvn = callPackage ../development/libraries/java/javasvn { };
4714   jclasslib = callPackage ../development/tools/java/jclasslib {
4715     ant = apacheAnt14;
4716   };
4718   jdom = callPackage ../development/libraries/java/jdom { };
4720   jflex = callPackage ../development/libraries/java/jflex { };
4722   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
4723     stdenv = overrideInStdenv stdenv [gnumake380];
4724   };
4726   junit = callPackage ../development/libraries/java/junit { };
4728   lucene = callPackage ../development/libraries/java/lucene { };
4730   mockobjects = callPackage ../development/libraries/java/mockobjects { };
4732   saxon = callPackage ../development/libraries/java/saxon { };
4734   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
4736   sharedobjects = callPackage ../development/libraries/java/shared-objects {
4737     stdenv = overrideInStdenv stdenv [gnumake380];
4738   };
4740   smack = callPackage ../development/libraries/java/smack { };
4742   swt = callPackage ../development/libraries/java/swt { };
4744   v8 = callPackage ../development/libraries/v8 { };
4746   xalanj = xalanJava;
4747   xalanJava = callPackage ../development/libraries/java/xalanj {
4748     ant    = apacheAntGcj;  # for bootstrap purposes
4749     javac  = gcj;
4750     jvm    = gcj;
4751     xerces = xercesJava;  };
4753   zziplib = callPackage ../development/libraries/zziplib { };
4756   ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
4758   jquery_ui = callPackage ../development/libraries/javascript/jquery-ui { };
4761   ### DEVELOPMENT / PERL MODULES
4763   buildPerlPackage = import ../development/perl-modules/generic perl;
4765   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
4766     inherit pkgs;
4767   });
4769   perlXMLParser = perlPackages.XMLParser;
4771   ack = perlPackages.ack;
4773   perlcritic = perlPackages.PerlCritic;
4776   ### DEVELOPMENT / PYTHON MODULES
4778   buildPythonPackage = pythonPackages.buildPythonPackage;
4780   pythonPackages = python27Packages;
4782   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
4783     inherit pkgs;
4784     python = python26;
4785   });
4787   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
4788     inherit pkgs;
4789     python = python27;
4790   });
4792   foursuite = callPackage ../development/python-modules/4suite { };
4794   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
4796   numeric = callPackage ../development/python-modules/numeric { };
4798   pil = callPackage ../development/python-modules/pil { };
4800   psyco = callPackage ../development/python-modules/psyco { };
4802   pycairo = callPackage ../development/python-modules/pycairo { };
4804   pycrypto = callPackage ../development/python-modules/pycrypto { };
4806   pycups = callPackage ../development/python-modules/pycups { };
4808   pyexiv2 = callPackage ../development/python-modules/pyexiv2 { };
4810   pygame = callPackage ../development/python-modules/pygame { };
4812   pygobject = callPackage ../development/python-modules/pygobject { };
4814   pygtk = callPackage ../development/python-modules/pygtk { };
4816   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4817     inherit (gnome) libglade;
4818   };
4820   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4821     inherit python openssl;
4822   };
4824   rhpl = callPackage ../development/python-modules/rhpl { };
4826   sip = callPackage ../development/python-modules/python-sip { };
4828   pyqt4 = callPackage ../development/python-modules/pyqt { };
4830   pyx = callPackage ../development/python-modules/pyx { };
4832   pyxml = callPackage ../development/python-modules/pyxml { };
4834   setuptools = pythonPackages.setuptools;
4836   wxPython = pythonPackages.wxPython;
4837   wxPython28 = pythonPackages.wxPython28;
4839   twisted = pythonPackages.twisted;
4841   ZopeInterface = pythonPackages.zopeInterface;
4843   /*
4844   zope = callPackage ../development/python-modules/zope {
4845     python = python24;
4846   };
4847   */
4850   ### SERVERS
4852   rdf4store = callPackage ../servers/http/4store { };
4854   apacheHttpd = callPackage ../servers/http/apache-httpd {
4855     sslSupport = true;
4856   };
4858   sabnzbd = callPackage ../servers/sabnzbd { };
4860   bind = callPackage ../servers/dns/bind {
4861     inherit openssl libtool perl;
4862   };
4864   dico = callPackage ../servers/dico { };
4866   dict = callPackage ../servers/dict { };
4868   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4869     inherit builderDefs;
4870   });
4872   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4873     inherit stdenv lib dict;
4874   };
4876   dovecot = callPackage ../servers/mail/dovecot { };
4877   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4878   dovecot_2_0 = callPackage ../servers/mail/dovecot/2.0.nix { };
4880   ejabberd = callPackage ../servers/xmpp/ejabberd {
4881     erlang = erlangR13B ;
4882   };
4884   couchdb = callPackage ../servers/http/couchdb { };
4886   felix = callPackage ../servers/felix { };
4888   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4890   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4892   firebird = callPackage ../servers/firebird { };
4894   freepops = callPackage ../servers/mail/freepops { };
4896   freeswitch = callPackage ../servers/sip/freeswitch { };
4898   ghostOne = callPackage ../servers/games/ghost-one {
4899     boost = boostFull;
4900   };
4902   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4904   jboss = callPackage ../servers/http/jboss { };
4906   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4908   jetty = callPackage ../servers/http/jetty { };
4910   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4912   joseki = callPackage ../servers/http/joseki {};
4914   lighttpd = callPackage ../servers/http/lighttpd { };
4916   mediatomb = callPackage ../servers/mediatomb {
4917     ffmpeg = ffmpeg_0_6_90;
4918   };
4920   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4922   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
4924   mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { };
4926   mpd = callPackage ../servers/mpd { };
4928   miniHttpd = callPackage ../servers/http/mini-httpd {};
4930   myserver = callPackage ../servers/http/myserver { };
4932   nginx = builderDefsPackage (import ../servers/http/nginx) {
4933     inherit openssl pcre zlib libxml2 libxslt;
4934   };
4936   postfix = callPackage ../servers/mail/postfix { };
4938   pulseaudio = callPackage ../servers/pulseaudio {
4939     gconf = gnome.GConf;
4940     # The following are disabled in the default build, because if this
4941     # functionality is desired, they are only needed in the PulseAudio
4942     # server.
4943     bluez = null;
4944     avahi = null;
4945   };
4947   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4949   pies = callPackage ../servers/pies { };
4951   portmap = callPackage ../servers/portmap { };
4953   monetdb = callPackage ../servers/sql/monetdb { };
4955   mysql4 = import ../servers/sql/mysql {
4956     inherit fetchurl stdenv ncurses zlib perl;
4957     ps = procps; /* !!! Linux only */
4958   };
4960   mysql5 = import ../servers/sql/mysql5 {
4961     inherit fetchurl stdenv ncurses zlib perl openssl;
4962     ps = procps; /* !!! Linux only */
4963   };
4965   mysql51 = import ../servers/sql/mysql51 {
4966     inherit fetchurl ncurses zlib perl openssl stdenv;
4967     ps = procps; /* !!! Linux only */
4968   };
4970   mysql55 = callPackage ../servers/sql/mysql55 { };
4972   mysql = mysql51;
4974   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4976   nagios = callPackage ../servers/monitoring/nagios {
4977     gdSupport = true;
4978   };
4980   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4982   openfire = callPackage ../servers/xmpp/openfire { };
4984   postgresql = postgresql83;
4986   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4988   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4990   postgresql90 = callPackage ../servers/sql/postgresql/9.0.x.nix { };
4992   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4994   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4995     inherit xmpppy pythonIRClib python makeWrapper;
4996   };
4998   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4999     inherit xmpppy python makeWrapper fetchcvs;
5000   };
5002   rabbitmq_server = callPackage ../servers/amqp/rabbitmq-server { };
5004   radius = callPackage ../servers/radius { };
5006   redstore = callPackage ../servers/http/redstore { };
5008   samba = callPackage ../servers/samba { };
5010   shishi = callPackage ../servers/shishi { };
5012   sipwitch = callPackage ../servers/sip/sipwitch { };
5014   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
5015     inherit fetchurl stdenv perl lib composableDerivation
5016       openldap pam db4 cyrus_sasl kerberos libcap expat libxml2 libtool
5017       openssl;
5018   });
5019   squid = squids.squid31; # has ipv6 support
5021   tomcat5 = callPackage ../servers/http/tomcat/5.0.nix { };
5023   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
5025   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
5027   axis2 = callPackage ../servers/http/tomcat/axis2 { };
5029   virtuoso = callPackage ../servers/sql/virtuoso { };
5031   vsftpd = callPackage ../servers/ftp/vsftpd { };
5033   xinetd = callPackage ../servers/xinetd { };
5035   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
5036     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
5037       libxslt expat libdrm libpng zlib perl mesa
5038       xkeyboard_config dbus libuuid openssl gperf m4
5039       autoconf libtool xmlto asciidoc udev flex bison python;
5040     automake = automake110x;
5041   });
5043   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
5045   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
5047   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
5048     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
5049   });
5052   ### OS-SPECIFIC
5054   afuse = callPackage ../os-specific/linux/afuse { };
5056   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
5058   _915resolution = callPackage ../os-specific/linux/915resolution { };
5060   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
5062   acpi = callPackage ../os-specific/linux/acpi { };
5064   acpid = callPackage ../os-specific/linux/acpid { };
5066   acpitool = callPackage ../os-specific/linux/acpitool { };
5068   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
5070   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins {
5071     jackaudio = null;
5072   };
5074   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
5076   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
5078   bcm43xx = callPackage ../os-specific/linux/firmware/bcm43xx { };
5080   bluez = callPackage ../os-specific/linux/bluez { };
5082   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
5084   checkpolicy = callPackage ../os-specific/linux/checkpolicy { };
5086   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
5088   conky = callPackage ../os-specific/linux/conky { };
5090   cpufrequtils = (
5091     import ../os-specific/linux/cpufrequtils {
5092     inherit fetchurl stdenv libtool gettext;
5093     glibc = stdenv.gcc.libc;
5094     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
5095   });
5097   cryopid = callPackage ../os-specific/linux/cryopid { };
5099   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
5101   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
5103   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
5105   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
5107   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
5109   darwinInstallNameToolUtility = callPackage ../os-specific/darwin/install_name_tool { };
5111   devicemapper = lvm2;
5113   dmidecode = callPackage ../os-specific/linux/dmidecode { };
5115   dmtcp = callPackage ../os-specific/linux/dmtcp { };
5117   dietlibc = callPackage ../os-specific/linux/dietlibc {
5118     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
5119     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
5120   };
5122   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
5123     inherit libjpeg pkgconfig zlib directfb;
5124     inherit (xlibs) xproto;
5125   };
5127   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
5128     inherit devicemapper;
5129   };
5131   libuuid =
5132     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
5133     then (utillinuxng // {
5134       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
5135         # `libblkid' fails to build on GNU/Hurd.
5136         configureFlags = args.configureFlags
5137           + " --disable-libblkid --disable-mount --disable-libmount"
5138           + " --disable-fsck --enable-static";
5139         doCheck = false;
5140         CPPFLAGS =                    # ugly hack for ugly software!
5141           lib.concatStringsSep " "
5142             (map (v: "-D${v}=4096")
5143                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
5144       });
5145     })
5146     else if stdenv.isLinux
5147     then utillinuxng
5148     else null;
5150   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
5152   ebtables = callPackage ../os-specific/linux/ebtables { };
5154   eject = callPackage ../os-specific/linux/eject { };
5156   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
5157     inherit fontconfig gpm freetype pkgconfig ncurses;
5158   };
5160   fbtermStdenv = callPackage ../os-specific/linux/fbterm/stdenv.nix { };
5162   fuse = callPackage ../os-specific/linux/fuse { };
5164   fxload = callPackage ../os-specific/linux/fxload { };
5166   gpm = callPackage ../servers/gpm { };
5168   hal = callPackage ../os-specific/linux/hal { };
5170   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
5172   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
5174   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
5176   hdparm = callPackage ../os-specific/linux/hdparm { };
5178   hibernate = callPackage ../os-specific/linux/hibernate { };
5180   hostapd = callPackage ../os-specific/linux/hostapd { };
5182   htop = callPackage ../os-specific/linux/htop { };
5184   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
5185     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
5186       mig glibcCross hurdPartedCross;
5187     libuuid = libuuid.hostDrv;
5188     automake = automake111x;
5189     headersOnly = false;
5190     cross = assert crossSystem != null; crossSystem;
5191     gccCross = gccCrossStageFinal;
5192   });
5194   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
5195     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
5196       mig glibcCross;
5197     automake = automake111x;
5198     headersOnly = false;
5199     cross = assert crossSystem != null; crossSystem;
5201     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
5202     # particular) so we first need an intermediate Hurd built with the
5203     # intermediate GCC.
5204     gccCross = gccCrossStageStatic;
5206     # This intermediate Hurd is only needed to build libpthread, which needs
5207     # libihash, and to build Parted, which needs libstore and
5208     # libshouldbeinlibc.
5209     buildTarget = "libihash libstore libshouldbeinlibc";
5210     installTarget = "libihash-install libstore-install libshouldbeinlibc-install";
5211   });
5213   hurdHeaders = callPackage ../os-specific/gnu/hurd {
5214     automake = automake111x;
5215     headersOnly = true;
5216     gccCross = null;
5217     glibcCross = null;
5218     libuuid = null;
5219     hurdPartedCross = null;
5220   };
5222   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
5223     inherit fetchgit stdenv autoconf automake libtool
5224       machHeaders hurdHeaders glibcCross;
5225     hurd = hurdCrossIntermediate;
5226     gccCross = gccCrossStageStatic;
5227     cross = assert crossSystem != null; crossSystem;
5228   });
5230   hwdata = callPackage ../os-specific/linux/hwdata { };
5232   ifplugd = callPackage ../os-specific/linux/ifplugd { };
5234   iotop = callPackage ../os-specific/linux/iotop { };
5236   iproute = callPackage ../os-specific/linux/iproute { };
5238   iputils = callPackage ../os-specific/linux/iputils { };
5240   iptables = callPackage ../os-specific/linux/iptables { };
5242   ipw2100fw = callPackage ../os-specific/linux/firmware/ipw2100 { };
5244   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
5246   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
5248   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
5250   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
5252   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
5254   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
5256   iwlwifi6000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-6000-ucode { };
5258   iwlwifi6000g2aucode = callPackage ../os-specific/linux/firmware/iwlwifi-6000g2a-ucode { };
5260   iwlwifi6000g2bucode = callPackage ../os-specific/linux/firmware/iwlwifi-6000g2b-ucode { };
5262   kbd = callPackage ../os-specific/linux/kbd { };
5264   libaio = callPackage ../os-specific/linux/libaio { };
5266   libatasmart = callPackage ../os-specific/linux/libatasmart { };
5268   libcgroup = callPackage ../os-specific/linux/libcg { };
5270   libnl = callPackage ../os-specific/linux/libnl { };
5272   libnl2 = callPackage ../os-specific/linux/libnl/v2.nix { };
5274   libnl1 = callPackage ../os-specific/linux/libnl/v1.nix { };
5276   linuxHeaders = linuxHeaders_2_6_32;
5278   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
5279     inherit stdenv fetchurl perl;
5280     cross = assert crossSystem != null; crossSystem;
5281   });
5283   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
5284     inherit stdenv fetchurl perl;
5285     cross = assert crossSystem != null; crossSystem;
5286   });
5288   # We can choose:
5289   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
5290     else if (ver == "2.6") then linuxHeaders26Cross
5291     else throw "Unknown linux kernel version";
5293   linuxHeadersCross = assert crossSystem != null;
5294     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
5296   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
5298   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
5300   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
5302   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
5304   linux_2_6_15 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.15.nix) {
5305     inherit fetchurl perl mktemp module_init_tools;
5306     stdenv = overrideInStdenv stdenv [gcc34 gnumake381];
5307     kernelPatches =
5308       [ kernelPatches.cifs_timeout_2_6_15
5309       ];
5310   };
5312   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
5313     inherit fetchurl perl mktemp module_init_tools;
5314     extraConfig = "KMOD y";
5315     stdenv = overrideInStdenv stdenv [gnumake381];
5316     kernelPatches =
5317       [ kernelPatches.fbcondecor_2_6_25
5318         kernelPatches.sec_perm_2_6_24
5319         kernelPatches.glibc_getline
5320         kernelPatches.cifs_timeout_2_6_25
5321       ];
5322   };
5324   linux_2_6_26 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.26.nix) {
5325     inherit fetchurl perl mktemp module_init_tools;
5326     stdenv = overrideInStdenv stdenv [gnumake381];
5327     kernelPatches =
5328       [ kernelPatches.fbcondecor_2_6_25
5329         kernelPatches.sec_perm_2_6_24
5330         kernelPatches.glibc_getline
5331         kernelPatches.cifs_timeout_2_6_25
5332       ];
5333   };
5335   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
5336     inherit fetchurl perl mktemp module_init_tools;
5337     stdenv = overrideInStdenv stdenv [gnumake381];
5338     kernelPatches =
5339       [ kernelPatches.fbcondecor_2_6_27
5340         kernelPatches.sec_perm_2_6_24
5341         kernelPatches.cifs_timeout_2_6_25
5342       ];
5343   };
5345   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
5346     inherit fetchurl perl mktemp module_init_tools;
5347     stdenv = overrideInStdenv stdenv [gnumake381];
5348     kernelPatches =
5349       [ kernelPatches.fbcondecor_2_6_28
5350         kernelPatches.sec_perm_2_6_24
5351         kernelPatches.ext4_softlockups_2_6_28
5352         kernelPatches.glibc_getline
5353         kernelPatches.cifs_timeout_2_6_25
5354       ];
5355   };
5357   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
5358     inherit fetchurl stdenv perl mktemp module_init_tools;
5359     kernelPatches =
5360       [ kernelPatches.fbcondecor_2_6_29
5361         kernelPatches.sec_perm_2_6_24
5362         kernelPatches.cifs_timeout_2_6_29
5363       ];
5364   };
5366   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
5367     inherit fetchurl stdenv perl mktemp module_init_tools platform;
5368     kernelPatches =
5369       [ kernelPatches.cifs_timeout_2_6_29
5370       ];
5371   };
5373   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
5374     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5375     kernelPatches =
5376       [ kernelPatches.fbcondecor_2_6_31
5377         kernelPatches.sec_perm_2_6_24
5378         kernelPatches.aufs2_2_6_32
5379         kernelPatches.cifs_timeout_2_6_29
5380         kernelPatches.no_xsave
5381         kernelPatches.dell_rfkill
5382       ];
5383   };
5385   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
5386     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5387     kernelPatches =
5388       [ kernelPatches.fbcondecor_2_6_31
5389         kernelPatches.sec_perm_2_6_24
5390         kernelPatches.aufs2_2_6_32
5391         kernelPatches.cifs_timeout
5392         kernelPatches.no_xsave
5393         kernelPatches.dell_rfkill
5394       ];
5395   };
5397   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
5398     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5399     extraConfig =
5400       ''
5401         DEBUG_KERNEL y
5402         KPROBES y # kernel probes (needs `utrace' for process probes)
5403         DEBUG_INFO y
5404         RELAY y
5405         DEBUG_FS y
5406       '';
5407     dontStrip = true;
5408     kernelPatches =
5409       [ kernelPatches.fbcondecor_2_6_31
5410         kernelPatches.sec_perm_2_6_24
5411         kernelPatches.aufs2_2_6_32
5412         kernelPatches.tracehook_2_6_32
5413         kernelPatches.utrace_2_6_32
5414       ];
5415   };
5417   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
5418     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
5419   };
5421   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
5422     features = {
5423       oldI686 = true;
5424     };
5425   };
5427   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
5428     features = {
5429       ckSched = true;
5430     };
5431   };
5433   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
5434     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5435     kernelPatches =
5436       [ kernelPatches.fbcondecor_2_6_33
5437         kernelPatches.aufs2_2_6_33
5438         kernelPatches.sec_perm_2_6_24
5439         kernelPatches.cifs_timeout_2_6_29
5440       ];
5441   };
5443   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
5444     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
5445   };
5447   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
5448     features = {
5449       oldI686 = true;
5450     };
5451   };
5453   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
5454     features = {
5455       ckSched = true;
5456     };
5457   };
5459   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
5460     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5461     kernelPatches =
5462       [ /*kernelPatches.fbcondecor_2_6_33*/
5463         kernelPatches.sec_perm_2_6_24
5464         kernelPatches.aufs2_2_6_34
5465         kernelPatches.cifs_timeout_2_6_29
5466       ];
5467   };
5469   linux_2_6_34_tuxonice = linux_2_6_34.override (attrs: {
5470     kernelPatches = attrs.kernelPatches ++ [
5471       kernelPatches.tuxonice_2_6_34
5472     ];
5473   });
5475   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
5476     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5477     kernelPatches =
5478       [ kernelPatches.fbcondecor_2_6_35
5479         kernelPatches.sec_perm_2_6_24
5480         kernelPatches.aufs2_2_6_35
5481         kernelPatches.cifs_timeout_2_6_35
5482       ] ++ lib.optional (platform.kernelArch == "arm")
5483         kernelPatches.sheevaplug_modules_2_6_35;
5484   };
5486   linux_2_6_35_tuxonice = linux_2_6_35.override (attrs: {
5487     kernelPatches = attrs.kernelPatches ++ [
5488       kernelPatches.tuxonice_2_6_35
5489     ];
5490   });
5492   linux_nanonote_jz_2_6_34 = makeOverridable
5493     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix) {
5494       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
5495       kernelPatches =
5496         [ kernelPatches.aufs2_2_6_34
5497         ];
5498     };
5500   linux_nanonote_jz_2_6_35 = makeOverridable
5501     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix) {
5502       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
5503       kernelPatches =
5504         [ kernelPatches.aufs2_2_6_35
5505         ];
5506     };
5508   linux_nanonote_jz_2_6_36 = makeOverridable
5509     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix) {
5510       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
5511       kernelPatches =
5512         [ #kernelPatches.fbcondecor_2_6_35
5513           kernelPatches.sec_perm_2_6_24
5514           kernelPatches.aufs2_2_6_36
5515           kernelPatches.mips_restart_2_6_36
5516           kernelPatches.cifs_timeout_2_6_35
5517         ];
5518     };
5520   linux_2_6_35_oldI686 = linux_2_6_35.override {
5521       extraConfig = ''
5522           HIGHMEM64G? n
5523           XEN? n
5524       '';
5525       extraMeta = {
5526         platforms = ["i686-linux"];
5527         maintainers = [lib.maintainers.raskin];
5528       };
5529   };
5531   linux_2_6_36 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.36.nix) {
5532     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5533     kernelPatches =
5534       [ #kernelPatches.fbcondecor_2_6_35
5535         kernelPatches.sec_perm_2_6_24
5536         kernelPatches.aufs2_2_6_36
5537         kernelPatches.mips_restart_2_6_36
5538         kernelPatches.cifs_timeout_2_6_35
5539       ];
5540   };
5542   linux_2_6_36_tuxonice = linux_2_6_36.override (attrs: {
5543     kernelPatches = attrs.kernelPatches ++ [
5544       kernelPatches.tuxonice_2_6_36
5545     ];
5546   });
5548   linux_2_6_37 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.37.nix) {
5549     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5550     kernelPatches =
5551       [ kernelPatches.fbcondecor_2_6_37
5552         kernelPatches.sec_perm_2_6_24
5553         kernelPatches.aufs2_1_2_6_37
5554         kernelPatches.cifs_timeout_2_6_35
5555         #kernelPatches.mips_restart_2_6_36
5556       ];
5557   };
5559   linux_2_6_37_tuxonice = linux_2_6_37.override (attrs: {
5560     kernelPatches = attrs.kernelPatches ++ [
5561       kernelPatches.tuxonice_2_6_37
5562     ];
5563   });
5565   linux_2_6_38 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.38.nix) {
5566     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5567     kernelPatches =
5568       [ kernelPatches.fbcondecor_2_6_38
5569         kernelPatches.sec_perm_2_6_24
5570         kernelPatches.aufs2_1_2_6_38
5571         kernelPatches.cifs_timeout_2_6_38
5572         #kernelPatches.mips_restart_2_6_36
5573       ];
5574   };
5576   linux_2_6_38_ati = linux_2_6_38.override { extraConfig="DRM_RADEON_KMS y"; };
5578   linux_2_6_39 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.39.nix) {
5579     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5580     kernelPatches =
5581       [ #kernelPatches.fbcondecor_2_6_38
5582         kernelPatches.sec_perm_2_6_24
5583         kernelPatches.aufs2_1_2_6_39
5584         #kernelPatches.mips_restart_2_6_36
5585       ];
5586   };
5588   linux_2_6_39_powertop = linux_2_6_39.override {
5589     extraConfig = ''
5590         DEBUG_KERNEL y
5591         PM_ADVANCED_DEBUG y
5592         PM_RUNTIME y
5593         TIMER_STATS y
5594         USB_SUSPEND y
5595         BACKTRACE_SELF_TEST n
5596         CPU_NOTIFIER_ERROR_INJECT n
5597         DEBUG_DEVRES n
5598         DEBUG_NX_TEST n
5599         DEBUG_STACK_USAGE n
5600         DEBUG_STACKOVERFLOW n
5601         RCU_TORTURE_TEST n
5602         SCHEDSTATS n
5603     '';
5604   };
5606   linux_3_0 = makeOverridable (import ../os-specific/linux/kernel/linux-3.0.nix) {
5607     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5608     kernelPatches =
5609       [ #kernelPatches.fbcondecor_2_6_38
5610         kernelPatches.sec_perm_2_6_24
5611         kernelPatches.aufs3_0
5612         #kernelPatches.aufs2_1_3_0
5613         #kernelPatches.mips_restart_2_6_36
5614       ];
5615   };
5617   linux_3_0_powertop = linux_3_0.override {
5618     extraConfig = ''
5619         DEBUG_KERNEL y
5620         PM_ADVANCED_DEBUG y
5621         PM_RUNTIME y
5622         TIMER_STATS y
5623         USB_SUSPEND y
5624         BACKTRACE_SELF_TEST n
5625         CPU_NOTIFIER_ERROR_INJECT n
5626         DEBUG_DEVRES n
5627         DEBUG_NX_TEST n
5628         DEBUG_STACK_USAGE n
5629         DEBUG_STACKOVERFLOW n
5630         RCU_TORTURE_TEST n
5631         SCHEDSTATS n
5632     '';
5633   };
5635   linux_3_1 = makeOverridable (import ../os-specific/linux/kernel/linux-3.1.nix) {
5636     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
5637     kernelPatches =
5638       [ #kernelPatches.fbcondecor_2_6_38
5639         kernelPatches.sec_perm_2_6_24
5640         kernelPatches.efi_stub
5641         #kernelPatches.aufs2_1_2_6_38
5642         #kernelPatches.mips_restart_2_6_36
5643       ];
5644   };
5646   linux_3_1_powertop = linux_3_1.override {
5647     extraConfig = ''
5648         DEBUG_KERNEL y
5649         PM_ADVANCED_DEBUG y
5650         PM_RUNTIME y
5651         TIMER_STATS y
5652         USB_SUSPEND y
5653         BACKTRACE_SELF_TEST n
5654         CPU_NOTIFIER_ERROR_INJECT n
5655         DEBUG_DEVRES n
5656         DEBUG_NX_TEST n
5657         DEBUG_STACK_USAGE n
5658         DEBUG_STACKOVERFLOW n
5659         RCU_TORTURE_TEST n
5660         SCHEDSTATS n
5661     '';
5662   };
5664   /* Linux kernel modules are inherently tied to a specific kernel.  So
5665      rather than provide specific instances of those packages for a
5666      specific kernel, we have a function that builds those packages
5667      for a specific kernel.  This function can then be called for
5668      whatever kernel you're using. */
5670   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
5672     inherit kernel;
5674     acpi_call = callPackage ../os-specific/linux/acpi-call {};
5676     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
5678     aufs = callPackage ../os-specific/linux/aufs { };
5680     aufs2 = if kernel.features ? aufs2 then
5681       callPackage ../os-specific/linux/aufs2 { }
5682       else null;
5684     aufs2_1 = if kernel.features ? aufs2_1 then
5685       callPackage ../os-specific/linux/aufs2.1 { }
5686       else null;
5688     aufs3 = if kernel.features ? aufs3 then
5689       callPackage ../os-specific/linux/aufs3 { }
5690       else null;
5692     aufs2_util = if kernel.features ? aufs2 then
5693       callPackage ../os-specific/linux/aufs2-util { }
5694       else null;
5696     aufs2_1_util = if kernel.features ? aufs2_1 then
5697       callPackage ../os-specific/linux/aufs2.1-util { }
5698       else null;
5700     aufs3_util = if kernel.features ? aufs3 then
5701       callPackage ../os-specific/linux/aufs3-util { }
5702       else null;
5704     blcr = callPackage ../os-specific/linux/blcr {
5705       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
5706     };
5708     e1000e = callPackage ../os-specific/linux/e1000e {};
5710     exmap = callPackage ../os-specific/linux/exmap {
5711       inherit (gtkLibs) gtkmm;
5712     };
5714     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
5716     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
5718     iwlwifi4965ucode =
5719       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
5720           || (builtins.compareVersions kernel.version "2.6.27" == 1)
5721        then iwlwifi4965ucodeV2
5722        else iwlwifi4965ucodeV1);
5724     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
5726     broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { };
5728     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
5730     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
5731     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
5733     openafsClient = callPackage ../servers/openafs-client { };
5735     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
5737     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
5739     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
5740       inherit kernel perl;
5741     };
5743     klibc = callPackage ../os-specific/linux/klibc {
5744       linuxHeaders = glibc.kernelHeaders;
5745     };
5747     splashutils =
5748       if kernel.features ? fbConDecor then pkgs.splashutils else null;
5750     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
5751       kernel_ext3cowpatched = kernel;
5752     };
5754     /* compiles but has to be integrated into the kernel somehow
5755       Let's have it uncommented and finish it..
5756     */
5757     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
5759     ov511 = callPackage ../os-specific/linux/ov511 {
5760       stdenv = overrideGCC stdenv gcc34;
5761     };
5763     # State Nix
5764     snix = callPackage ../tools/package-management/snix {
5766       aterm = aterm25;
5767       db4 = db45;
5769       flex = flex2533;
5770       ext3cow_kernel = kernel;    };
5772     sysprof = callPackage ../development/tools/profiling/sysprof {
5773       inherit (gnome) gtk glib pango libglade;
5774     };
5776     systemtap = callPackage ../development/tools/profiling/systemtap {
5777       linux = kernel;
5778       inherit (gnome) gtkmm libglademm;
5779     };
5781     v86d = callPackage ../os-specific/linux/v86d { };
5783     virtualbox = callPackage ../applications/virtualization/virtualbox {
5784       stdenv = stdenv_32bit;
5785       inherit (gnome) libIDL;
5786     };
5788     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
5789   };
5791   # Build the kernel modules for the some of the kernels.
5792   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
5793   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
5794   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
5795   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
5796   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
5797   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
5798   linuxPackages_2_6_32_systemtap =
5799     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
5800   linuxPackages_2_6_32_xen =
5801     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
5802   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
5803   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
5804   linuxPackages_2_6_34_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_34_tuxonice pkgs.linuxPackages_2_6_34_tuxonice);
5805   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
5806   linuxPackages_2_6_35_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_35_tuxonice pkgs.linuxPackages_2_6_35_tuxonice);
5807   linuxPackages_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_2_6_36 pkgs.linuxPackages_2_6_36);
5808   linuxPackages_2_6_36_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_36_tuxonice pkgs.linuxPackages_2_6_36_tuxonice);
5809   linuxPackages_2_6_37 = recurseIntoAttrs (linuxPackagesFor linux_2_6_37 pkgs.linuxPackages_2_6_37);
5810   linuxPackages_2_6_37_tuxonice = recurseIntoAttrs (linuxPackagesFor linux_2_6_37_tuxonice pkgs.linuxPackages_2_6_37_tuxonice);
5811   linuxPackages_2_6_38 = recurseIntoAttrs (linuxPackagesFor linux_2_6_38 pkgs.linuxPackages_2_6_38);
5812   linuxPackages_2_6_38_ati = recurseIntoAttrs (linuxPackagesFor linux_2_6_38_ati pkgs.linuxPackages_2_6_38);
5813   linuxPackages_2_6_39 = recurseIntoAttrs (linuxPackagesFor linux_2_6_39 pkgs.linuxPackages_2_6_39);
5814   linuxPackages_2_6_39_powertop = recurseIntoAttrs (linuxPackagesFor linux_2_6_39_powertop pkgs.linuxPackages_2_6_39_powertop);
5815   linuxPackages_3_0 = recurseIntoAttrs (linuxPackagesFor linux_3_0 pkgs.linuxPackages_3_0);
5816   linuxPackages_3_0_powertop = recurseIntoAttrs (linuxPackagesFor linux_3_0_powertop pkgs.linuxPackages_3_0_powertop);
5817   linuxPackages_3_1 = recurseIntoAttrs (linuxPackagesFor linux_3_1 pkgs.linuxPackages_3_1);
5818   linuxPackages_3_1_powertop = recurseIntoAttrs (linuxPackagesFor linux_3_1_powertop pkgs.linuxPackages_3_1_powertop);
5819   linuxPackages_nanonote_jz_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_34 pkgs.linuxPackages_nanonote_jz_2_6_34);
5820   linuxPackages_nanonote_jz_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_35 pkgs.linuxPackages_nanonote_jz_2_6_35);
5821   linuxPackages_nanonote_jz_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_36 pkgs.linuxPackages_nanonote_jz_2_6_36);
5823   # The current default kernel / kernel modules.
5824   linux = linuxPackages.kernel;
5825   linuxPackages = linuxPackages_2_6_35;
5827   keyutils = callPackage ../os-specific/linux/keyutils { };
5829   libselinux = callPackage ../os-specific/linux/libselinux { };
5831   libsemanage = callPackage ../os-specific/linux/libsemanage { };
5833   libraw1394 = callPackage ../development/libraries/libraw1394 { };
5835   libsexy = callPackage ../development/libraries/libsexy { };
5837   librsvg = gnome.librsvg;
5839   libsepol = callPackage ../os-specific/linux/libsepol { };
5841   libsmbios = callPackage ../os-specific/linux/libsmbios { };
5843   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
5845   lsiutil = callPackage ../os-specific/linux/lsiutil { };
5847   klibc = callPackage ../os-specific/linux/klibc {
5848     linuxHeaders = glibc.kernelHeaders;
5849   };
5851   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
5853   kvm = qemu_kvm;
5855   libcap = callPackage ../os-specific/linux/libcap { };
5857   libcap_progs = callPackage ../os-specific/linux/libcap/progs.nix { };
5859   libcap_pam = callPackage ../os-specific/linux/libcap/pam.nix { };
5861   libcap_manpages = callPackage ../os-specific/linux/libcap/man.nix { };
5863   libnscd = callPackage ../os-specific/linux/libnscd { };
5865   libnotify = callPackage ../development/libraries/libnotify { };
5867   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
5869   lsscsi = callPackage ../os-specific/linux/lsscsi { };
5871   lvm2 = callPackage ../os-specific/linux/lvm2 { };
5873   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
5874   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
5875   # compiler for that host.
5876   mach = callPackage ../os-specific/gnu/mach {
5877     automake = automake111x;  };
5879   machHeaders = callPackage ../os-specific/gnu/mach {
5880     automake = automake111x;
5881     headersOnly = true;
5882     mig = null;
5883   };
5885   mdadm = callPackage ../os-specific/linux/mdadm { };
5887   mingetty = callPackage ../os-specific/linux/mingetty { };
5889   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
5891   mountall = callPackage ../os-specific/linux/mountall {
5892     automake = automake111x;
5893   };
5895   aggregateModules = modules:
5896     import ../os-specific/linux/module-init-tools/aggregator.nix {
5897       inherit stdenv module_init_tools modules buildEnv;
5898     };
5900   modutils = callPackage ../os-specific/linux/modutils {
5901     stdenv = overrideGCC stdenv gcc34;
5902   };
5904   multipath_tools = callPackage ../os-specific/linux/multipath-tools { };
5906   nettools = callPackage ../os-specific/linux/net-tools { };
5908   neverball = callPackage ../games/neverball { };
5910   numactl = callPackage ../os-specific/linux/numactl { };
5912   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
5913     inherit fetchurl stdenv nettools openssl procps iproute;
5914   };
5916   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
5918   pam = callPackage ../os-specific/linux/pam { };
5920   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
5922   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
5923     db = db4;
5924   };
5926   pam_console = callPackage ../os-specific/linux/pam_console {
5927     libtool = libtool_1_5;
5928   };
5930   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
5932   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
5934   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
5936   pam_login = callPackage ../os-specific/linux/pam_login { };
5938   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
5940   pam_usb = callPackage ../os-specific/linux/pam_usb { };
5942   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
5943     firmware = getConfig ["pcmciaUtils" "firmware"] [];
5944     config = getConfig ["pcmciaUtils" "config"] null;
5945   };
5947   phat = callPackage ../development/libraries/phat {
5948     inherit (gnome) gtk libgnomecanvas;
5949   };
5951   pmount = callPackage ../os-specific/linux/pmount { };
5953   pmutils = callPackage ../os-specific/linux/pm-utils { };
5955   policycoreutils = callPackage ../os-specific/linux/policycoreutils { };
5957   powertop = callPackage ../os-specific/linux/powertop { };
5959   procps = callPackage ../os-specific/linux/procps { };
5961   pwdutils = callPackage ../os-specific/linux/pwdutils { };
5963   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
5965   radeontools = callPackage ../os-specific/linux/radeontools { };
5967   radeonR700 = callPackage ../os-specific/linux/firmware/radeon-r700 { };
5968   radeonR600 = callPackage ../os-specific/linux/firmware/radeon-r600 { };
5969   radeonJuniper = callPackage ../os-specific/linux/firmware/radeon-juniper { };
5971   regionset = callPackage ../os-specific/linux/regionset { };
5973   rfkill = callPackage ../os-specific/linux/rfkill { };
5975   rt2860fw = callPackage ../os-specific/linux/firmware/rt2860 { };
5977   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
5979   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
5981   rtkit = callPackage ../os-specific/linux/rtkit { };
5983   rtl8192cfw = callPackage ../os-specific/linux/firmware/rtl8192c { };
5985   sdparm = callPackage ../os-specific/linux/sdparm { };
5987   shadow = callPackage ../os-specific/linux/shadow { };
5989   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
5991   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
5993   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
5995   # Provided with sysfsutils.
5996   libsysfs = sysfsutils;
5997   systool = sysfsutils;
5999   sysklogd = callPackage ../os-specific/linux/sysklogd { };
6001   syslinux = callPackage ../os-specific/linux/syslinux { };
6003   sysstat = callPackage ../os-specific/linux/sysstat { };
6005   sysvinit = callPackage ../os-specific/linux/sysvinit { };
6007   sysvtools = callPackage ../os-specific/linux/sysvinit {
6008     withoutInitTools = true;
6009   };
6011   # FIXME: `tcp-wrapper' is actually not OS-specific.
6012   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
6014   trackballs = callPackage ../games/trackballs {
6015     debug = false;
6016     guile = guile_1_8;
6017   };
6019   tunctl = callPackage ../os-specific/linux/tunctl { };
6021   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
6022     inherit mesa tcl freeglut;
6023     inherit (xlibs) libX11 xproto;
6024   };*/
6026   ubootChooser = name : if (name == "upstream") then ubootUpstream
6027     else if (name == "sheevaplug") then ubootSheevaplug
6028     else if (name == "guruplug") then ubootGuruplug
6029     else if (name == "nanonote") then ubootNanonote
6030     else throw "Unknown uboot";
6032   ubootUpstream = callPackage ../misc/uboot { };
6034   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
6036   ubootNanonote = callPackage ../misc/uboot/nanonote.nix { };
6038   ubootGuruplug = callPackage ../misc/uboot/guruplug.nix { };
6040   uclibc = callPackage ../os-specific/linux/uclibc { };
6042   uclibcCross = import ../os-specific/linux/uclibc {
6043     inherit fetchurl stdenv libiconv;
6044     linuxHeaders = linuxHeadersCross;
6045     gccCross = gccCrossStageStatic;
6046     cross = assert crossSystem != null; crossSystem;
6047   };
6049   udev145 = callPackage ../os-specific/linux/udev/145.nix { };
6050   udev173 = callPackage ../os-specific/linux/udev/173.nix { };
6051   udev = pkgs.udev173;
6053   udisks = callPackage ../os-specific/linux/udisks { };
6055   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
6056     inherit fetchurl stdenv perl mktemp module_init_tools;
6057     userModeLinux = true;
6058   };
6060   umlutilities = callPackage ../os-specific/linux/uml-utilities {
6061     tunctl = true; mconsole = true;
6062   };
6064   untie = callPackage ../os-specific/linux/untie { };
6066   upower = callPackage ../os-specific/linux/upower {
6067     dbus_glib = pkgs.dbus_glib_0_94;
6068   };
6070   upstart = callPackage ../os-specific/linux/upstart { };
6072   usbutils = callPackage ../os-specific/linux/usbutils { };
6074   utillinux = utillinuxng;
6076   utillinuxCurses = utillinuxngCurses;
6078   utillinuxng = lowPrio (callPackage ../os-specific/linux/util-linux-ng {
6079     ncurses = null;
6080     perl = null;
6081   });
6083   utillinuxngCurses = utillinuxng.override {
6084     inherit ncurses perl;
6085   };
6087   v4l_utils = callPackage ../os-specific/linux/v4l-utils {};
6089   windows = rec {
6090     w32api = callPackage ../os-specific/windows/w32api {
6091       gccCross = gccCrossStageStatic;
6092       binutilsCross = binutilsCross;
6093     };
6095     w32api_headers = w32api.override {
6096       onlyHeaders = true;
6097     };
6099     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
6100       gccCross = gccCrossMingw2;
6101       binutilsCross = binutilsCross;
6102     };
6104     mingw_runtime_headers = mingw_runtime.override {
6105       onlyHeaders = true;
6106     };
6108     mingw_headers1 = buildEnv {
6109       name = "mingw-headers-1";
6110       paths = [ w32api_headers mingw_runtime_headers ];
6111     };
6113     mingw_headers2 = buildEnv {
6114       name = "mingw-headers-2";
6115       paths = [ w32api mingw_runtime_headers ];
6116     };
6118     mingw_headers3 = buildEnv {
6119       name = "mingw-headers-3";
6120       paths = [ w32api mingw_runtime ];
6121     };
6123     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
6124   };
6126   wesnoth = callPackage ../games/wesnoth {
6127     inherit (gtkLibs) pango;
6128     lua = lua5;
6129   };
6131   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
6133   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
6134   };
6136   wpa_supplicant_gui = pkgs.wpa_supplicant.gui;
6138   xf86_input_multitouch =
6139     callPackage ../os-specific/linux/xf86-input-multitouch { };
6141   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
6143   xmoto = builderDefsPackage (import ../games/xmoto) {
6144     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
6145       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
6146       lua5 ode libxdg_basedir;
6147   };
6149   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
6151   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
6153   ### DATA
6155   andagii = callPackage ../data/fonts/andagii {};
6157   anonymousPro = callPackage ../data/fonts/anonymous-pro {};
6159   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
6160   };
6162   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
6164   cacert = callPackage ../data/misc/cacert { };
6166   corefonts = callPackage ../data/fonts/corefonts { };
6168   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
6169     inherit fetchurl stdenv builderDefs paths;
6170     inherit (xorg) mkfontdir mkfontscale;
6171   });
6173   clearlyU = callPackage ../data/fonts/clearlyU { };
6175   cm_unicode = callPackage ../data/fonts/cm-unicode {};
6177   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
6178     inherit (perlPackages) FontTTF;
6179   };
6181   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
6183   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
6185   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
6187   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
6189   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
6191   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
6193   docbook_xml_xslt = docbook_xsl;
6195   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
6197   docbook5_xsl = docbook_xsl_ns;
6199   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
6201   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
6203   gentium = callPackage ../data/fonts/gentium {};
6205   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
6207   inconsolata = callPackage ../data/fonts/inconsolata {};
6209   junicode = callPackage ../data/fonts/junicode { };
6211   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
6213   libertine = builderDefsPackage (import ../data/fonts/libertine) {
6214     inherit fontforge;
6215   };
6217   lmodern = callPackage ../data/fonts/lmodern { };
6219   manpages = callPackage ../data/documentation/man-pages { };
6221   miscfiles = callPackage ../data/misc/miscfiles { };
6223   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
6225   oldstandard = callPackage ../data/fonts/oldstandard { };
6227   posix_man_pages = callPackage ../data/documentation/man-pages-posix { };
6229   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
6231   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
6233   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
6235   stdmanpages = callPackage ../data/documentation/std-man-pages { };
6237   iana_etc = callPackage ../data/misc/iana-etc { };
6239   poppler_data = callPackage ../data/misc/poppler-data { };
6241   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
6243   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
6245   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
6247   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
6248     inherit fetchurl;
6249   };
6251   theano = callPackage ../data/fonts/theano { };
6253   tempora_lgc = callPackage ../data/fonts/tempora-lgc { };
6255   terminus_font = callPackage ../data/fonts/terminus-font { };
6257   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
6259   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
6261   unifont = callPackage ../data/fonts/unifont { };
6263   vistafonts = callPackage ../data/fonts/vista-fonts { };
6265   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
6267   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
6269   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
6272   ### APPLICATIONS
6275   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
6277   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
6279   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
6281   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
6283   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
6285   aangifte2010 = callPackage_i686 ../applications/taxes/aangifte-2010 { };
6287   abcde = callPackage ../applications/audio/abcde { };
6289   abiword = callPackage ../applications/office/abiword {
6290     inherit (gnome) libglade libgnomecanvas;
6291   };
6293   adobeReader = callPackage_i686 ../applications/misc/adobe-reader { };
6295   amsn = callPackage ../applications/networking/instant-messengers/amsn {
6296     libstdcpp = gcc33.gcc;
6297   };
6299   antiword = callPackage ../applications/office/antiword {};
6301   ardour = callPackage ../applications/audio/ardour {
6302     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
6303     inherit (gnome) libgnomecanvas;
6304   };
6306   ardour3 =  lowPrio (callPackage ../applications/audio/ardour/ardour3.nix {
6307     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
6308     inherit (gnome) libgnomecanvas libgnomecanvasmm;
6309   });
6311   arora = callPackage ../applications/networking/browsers/arora { };
6313   audacious = callPackage ../applications/audio/audacious { };
6315   audacity = callPackage ../applications/audio/audacity {
6316     portaudio = portaudioSVN;
6317     ffmpeg = ffmpeg_0_6_90;
6318   };
6320   aumix = callPackage ../applications/audio/aumix {
6321     gtkGUI = false;
6322   };
6324   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
6326   avidemux = callPackage ../applications/video/avidemux {
6327   };
6329   avogadro = callPackage ../applications/science/chemistry/avogadro { };
6331   awesome = callPackage ../applications/window-managers/awesome {
6332     inherit (gtkLibs) glib pango;
6333     lua = lua5;
6334     cairo = cairo.override { xcbSupport = true; };
6335   };
6337   batik = callPackage ../applications/graphics/batik { };
6339   bazaar = callPackage ../applications/version-management/bazaar { };
6341   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
6342     inherit bazaar;
6343   };
6345   beast = callPackage ../applications/audio/beast {
6346     inherit (gnome) libgnomecanvas libart_lgpl;
6347     guile = guile_1_8;
6348   };
6350   bibletime = callPackage ../applications/misc/bibletime { };
6352   bitcoin = callPackage ../applications/misc/bitcoin {
6353     boost = boost144;
6354     wxGTK = wxGTK290;
6355     db4 = db47;
6356     inherit (xlibs) libSM;
6357   };
6359   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee {
6360     # For some reason, TLS support is broken when using GnuTLS 3.0 (can't
6361     # connect to jabber.org, for instance.)
6362     gnutls = gnutls2;
6363   };
6365   blender = callPackage ../applications/misc/blender/2.49.nix { };
6367   blender_2_57 = lowPrio (import ../applications/misc/blender {
6368     inherit stdenv fetchurl SDL cmake gettext ilmbase libjpeg libpng
6369       libsamplerate libtiff mesa openal openexr openjpeg zlib;
6370     inherit (xlibs) libXi;
6371     python = python32;
6372   });
6374   bvi = callPackage ../applications/editors/bvi { };
6376   calibre = callPackage ../applications/misc/calibre { };
6378   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
6379     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
6380       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
6381       libtool automake autoconf;
6382     GStreamer = gst_all.gstreamer;
6383     inherit (gtkLibs) gtk glib;
6384     inherit (gnome) startupnotification GConf ;
6385     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
6386   };
6387   funpidgin = carrier;
6389   cddiscid = callPackage ../applications/audio/cd-discid { };
6391   cdparanoia = cdparanoiaIII;
6393   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
6395   cdrtools = callPackage ../applications/misc/cdrtools { };
6397   chatzilla = callPackage ../applications/networking/irc/chatzilla {
6398     xulrunner = firefox36Pkgs.xulrunner;
6399   };
6401   chrome = callPackage ../applications/networking/browsers/chromium {
6402     inherit (gnome) GConf;
6403     patchelf = patchelf06;
6404   };
6406   chromeWrapper = wrapFirefox
6407     { browser = chrome; browserName = "chrome"; desktopName = "Chrome";
6408       icon = "${chrome}/libexec/chrome/product_logo_48.png";
6409     };
6411   cinelerra = callPackage ../applications/video/cinelerra {
6412     inherit (gnome) esound;
6413   };
6415   cmus = callPackage ../applications/audio/cmus { };
6417   compiz = callPackage ../applications/window-managers/compiz/core.nix { };
6419   compiz_ccsm = callPackage ../applications/window-managers/compiz/ccsm.nix { };
6421   compizconfig_python = callPackage ../applications/window-managers/compiz/config-python.nix { };
6423   libcompizconfig = callPackage ../applications/window-managers/compiz/libcompizconfig.nix { };
6425   compiz_bcop = callPackage ../applications/window-managers/compiz/bcop.nix { };
6427   compiz_plugins_main = callPackage ../applications/window-managers/compiz/plugins-main.nix { };
6429   compiz_plugins_extra = callPackage ../applications/window-managers/compiz/plugins-extra.nix { };
6431   cinepaint = callPackage ../applications/graphics/cinepaint {
6432     fltk = fltk11;
6433   };
6435   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
6436     inherit makeWrapper;
6437     python = pythonFull;
6438   };
6440   comical = callPackage ../applications/graphics/comical { };
6442   conkeror = callPackage ../applications/networking/browsers/conkeror { };
6444   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
6445     inherit cmake patchelf;
6446     imagemagick=imagemagick;
6447   };
6449   cvs = callPackage ../applications/version-management/cvs { };
6451   cvsps = callPackage ../applications/version-management/cvsps { };
6453   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
6455   d4x = callPackage ../applications/misc/d4x { };
6457   darcs = haskellPackages.darcs;
6459   darktable = callPackage ../applications/graphics/darktable {
6460     inherit (gnome) GConf gnome_keyring libglade atk;
6461     inherit (xlibs) libxcb pixman libpthreadstubs libXau;
6462   };
6464   dia = callPackage ../applications/graphics/dia {
6465     inherit (pkgs.gnome) libart_lgpl libgnomeui;
6466   };
6468   djvulibre = callPackage ../applications/misc/djvulibre { };
6470   djview4 = callPackage ../applications/graphics/djview { };
6472   dmenu = callPackage ../applications/misc/dmenu { };
6474   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
6475     inherit libpng libtiff libjpeg imagemagick librsvg
6476       pkgconfig bzip2 zlib libtool freetype fontconfig
6477       ghostscript jasper xz;
6478     inherit (xlibs) libX11;
6479   };
6481   dvdauthor = callPackage ../applications/video/dvdauthor { };
6483   dwm = callPackage ../applications/window-managers/dwm {
6484     patches = getConfig [ "dwm" "patches" ] [];
6485   };
6487   eaglemode = callPackage ../applications/misc/eaglemode { };
6489   eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse { });
6491   ed = callPackage ../applications/editors/ed { };
6493   elinks = callPackage ../applications/networking/browsers/elinks { };
6495   elvis = callPackage ../applications/editors/elvis { };
6497   emacs = emacs23;
6499   emacs22 = callPackage ../applications/editors/emacs-22 {
6500     /* Using cpp 4.5, we get:
6502          make[1]: Entering directory `/tmp/nix-build-dhbj8qqmqxwp3iw6sjcgafsrwlwrix1f-emacs-22.3.drv-0/emacs-22.3/lib-src'
6503          Makefile:148: *** recipe commences before first target.  Stop.
6505        Apparently, this is because `lib-src/Makefile' is generated by
6506        processing `lib-src/Makefile.in' with cpp, and the escaping rules for
6507        literal backslashes have changed.  */
6508     stdenv = overrideGCC stdenv gcc44;
6509     xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
6510     gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
6511   };
6513   emacs23 = callPackage ../applications/editors/emacs-23 {
6514     # use override to select the appropriate gui toolkit
6515     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
6516     Xaw3d = null;
6517     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
6518     # TODO: these packages don't build on Darwin.
6519     gconf = null /* if stdenv.isDarwin then null else gnome.GConf */;
6520     librsvg = null /* if stdenv.isDarwin then null else librsvg */;
6521   };
6523   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
6524     xawSupport = getConfig [ "emacs" "xawSupport" ] false;
6525     xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
6526     gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
6527     xftSupport = getConfig [ "emacs" "xftSupport" ] true;
6528     dbusSupport = getConfig [ "emacs" "dbusSupport" ] true;
6529   });
6531   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
6532     inherit emacs;
6534     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
6536     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
6538     cua = callPackage ../applications/editors/emacs-modes/cua { };
6540     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
6542     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
6544     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
6546     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
6548     emms = callPackage ../applications/editors/emacs-modes/emms { };
6550     jdee = callPackage ../applications/editors/emacs-modes/jdee {
6551       # Requires Emacs 23, for `avl-tree'.
6552     };
6554     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
6556     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
6558     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
6560     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
6562     magit = callPackage ../applications/editors/emacs-modes/magit { };
6564     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
6566     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
6568     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
6569     # we want it to have higher precedence.
6570     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
6572     phpMode = callPackage ../applications/editors/emacs-modes/php { };
6574     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
6576     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
6578     quack = callPackage ../applications/editors/emacs-modes/quack { };
6580     remember = callPackage ../applications/editors/emacs-modes/remember { };
6582     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
6584     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
6585   };
6587   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
6588   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
6590   epdfview = callPackage ../applications/misc/epdfview { };
6592   espeak = callPackage ../applications/audio/espeak { };
6594   esniper = callPackage ../applications/networking/esniper { };
6596   etherape = callPackage ../applications/networking/sniffers/etherape {
6597     inherit (gnome) gnomedocutils libgnome libglade gtk libgnomeui scrollkeeper;
6598   };
6600   evopedia = callPackage ../applications/misc/evopedia { };
6602   keepassx = callPackage ../applications/misc/keepassx { };
6604   # FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
6605   # `share/icons/hicolor/icon-theme.cache'.  Arbitrarily give this one a
6606   # higher priority.
6607   evince = hiPrio (callPackage ../applications/misc/evince {
6608     inherit (gnome) gnomedocutils gnomeicontheme libgnome
6609       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
6610   });
6612   evolution_data_server = newScope (gnome // gtkLibs) ../servers/evolution-data-server { };
6614   exrdisplay = callPackage ../applications/graphics/exrdisplay {
6615     fltk = fltk20;
6616   };
6618   fbpanel = callPackage ../applications/window-managers/fbpanel { };
6620   fetchmail = import ../applications/misc/fetchmail {
6621     inherit stdenv fetchurl openssl;
6622   };
6624   fossil = callPackage ../applications/version-management/fossil { };
6626   grass = import ../applications/misc/grass {
6627     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
6628       libXaw libXrender;
6629     inherit getConfig composableDerivation stdenv fetchurl
6630       lib flex bison cairo fontconfig
6631       gdal zlib ncurses gdbm proj pkgconfig swig
6632       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
6633       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
6634     fftw = fftwSinglePrec;
6635     motif = lesstif;
6636     opendwg = libdwg;
6637     wxPython = wxPython28;
6638   };
6640   grip = callPackage ../applications/misc/grip {
6641     inherit (gnome) libgnome libgnomeui vte;
6642   };
6644   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
6646   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
6648   wvdial = callPackage ../os-specific/linux/wvdial { };
6650   fbida = callPackage ../applications/graphics/fbida { };
6652   fdupes = callPackage ../tools/misc/fdupes { };
6654   feh = callPackage ../applications/graphics/feh { };
6656   firefox = pkgs.firefoxPkgs.firefox;
6658   firefoxWrapper = wrapFirefox { browser = pkgs.firefox; };
6660   firefoxPkgs = pkgs.firefox70Pkgs;
6662   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
6663     inherit (gtkLibs) gtk pango;
6664     inherit (gnome) libIDL;
6665   };
6667   firefox36Wrapper = wrapFirefox { browser = firefox36Pkgs.firefox; };
6669   firefox50Pkgs = callPackage ../applications/networking/browsers/firefox/5.0.nix {
6670     inherit (gtkLibs) gtk pango;
6671     inherit (gnome) libIDL;
6672   };
6674   firefox50Wrapper = wrapFirefox { browser = firefox50Pkgs.firefox; };
6676   firefox60Pkgs = callPackage ../applications/networking/browsers/firefox/6.0.nix {
6677     inherit (gtkLibs) gtk pango;
6678     inherit (gnome) libIDL;
6679   };
6681   firefox60Wrapper = wrapFirefox { browser = firefox60Pkgs.firefox; };
6683   firefox70Pkgs = callPackage ../applications/networking/browsers/firefox/7.0.nix {
6684     inherit (gtkLibs) gtk pango;
6685     inherit (gnome) libIDL;
6686   };
6688   firefox70Wrapper = wrapFirefox { browser = firefox70Pkgs.firefox; };
6690   firefox80bPkgs = callPackage ../applications/networking/browsers/firefox/8.0.nix {
6691     inherit (gtkLibs) gtk pango;
6692     inherit (gnome) libIDL;
6693   };
6695   flac = callPackage ../applications/audio/flac { };
6697   flashplayer = flashplayer10;
6699   flashplayer9 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
6700     inherit (gtkLibs) atk;
6701   };
6703   flashplayer10 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
6704     inherit (gtkLibs) atk gdk_pixbuf;
6705     debug = getConfig ["flashplayer" "debug"] false;
6706   };
6708   freecad = callPackage ../applications/graphics/freecad {
6709     boost = boost146;
6710   };
6712   freemind = callPackage ../applications/misc/freemind {
6713     jdk = jdk;
6714     jre = jdk;
6715   };
6717   freepv = callPackage ../applications/graphics/freepv { };
6719   xfontsel = callPackage ../applications/misc/xfontsel { };
6720   xlsfonts = callPackage ../applications/misc/xlsfonts { };
6722   freerdp = callPackage ../applications/networking/remote/freerdp { };
6724   freerdpUnstable = callPackage ../applications/networking/remote/freerdp/unstable.nix { };
6726   fspot = callPackage ../applications/graphics/f-spot {
6727     inherit (gnome) libgnome libgnomeui;
6728     gtksharp = gtksharp1;
6729   };
6731   get_iplayer = callPackage ../applications/misc/get_iplayer {};
6733   gimp = callPackage ../applications/graphics/gimp {
6734     inherit (gnome) gtk libart_lgpl;
6735   };
6737   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
6738     inherit pkgs gimp;
6739   });
6741   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
6742     inherit pkgs;
6743   });
6744   git = gitAndTools.git;
6745   gitFull = gitAndTools.gitFull;
6746   gitSVN = gitAndTools.gitSVN;
6748   giv = callPackage ../applications/graphics/giv {
6749     inherit (gtkLibs) gdk_pixbuf gtk gob2;
6750     pcre = pcre.override { unicodeSupport = true; };
6751   };
6753   gnucash = callPackage ../applications/office/gnucash {
6754     inherit (gnome) gtk glib libgnomeui libgtkhtml gtkhtml
6755       libbonoboui libgnomeprint;
6756     gconf = gnome.GConf;
6757     guile = guile_1_8;
6758     slibGuile = slibGuile.override { scheme = guile_1_8; };
6759   };
6761   qcad = callPackage ../applications/misc/qcad { };
6763   qjackctl = callPackage ../applications/audio/qjackctl { };
6765   gkrellm = callPackage ../applications/misc/gkrellm { };
6767   gmu = callPackage ../applications/audio/gmu { };
6769   gnash = callPackage ../applications/video/gnash {
6770     xulrunner = icecatXulrunner3;
6771     inherit (gnome) gtkglext;
6772     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
6773   };
6775   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
6776     inherit (gnome) GConf;
6777   };
6779   gnunet = callPackage ../applications/networking/p2p/gnunet {
6780     inherit (gnome) gtk libglade;
6781     guile = guile_1_8;
6782     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
6783   };
6785   gnunet09 = lowPrio (callPackage ../applications/networking/p2p/gnunet/0.9.nix { });
6787   gocr = callPackage ../applications/graphics/gocr { };
6789   gobby5 = callPackage ../applications/editors/gobby {
6790     inherit (gtkLibs) gtkmm;
6791     inherit (gnome) gtksourceview;
6792   };
6794   gphoto2 = callPackage ../applications/misc/gphoto2 { };
6796   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
6797     inherit libgphoto2 fuse pkgconfig glib;
6798   };
6800   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
6802   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
6804   gtkpod = callPackage ../applications/audio/gtkpod {
6805     inherit (gnome) libglade;
6806   };
6808   jbidwatcher = callPackage ../applications/misc/jbidwatcher {
6809     java = if stdenv.isLinux then jre else jdk;
6810   };
6812   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
6813     inherit libpng;
6814     opencv = opencv_2_1;
6815   };
6817   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
6818     inherit libpng pkgconfig;
6819   };
6821   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
6822     inherit (gnome) GConf;
6823     browser = firefox;
6824   };
6826   geeqie = callPackage ../applications/graphics/geeqie { };
6828   gqview = callPackage ../applications/graphics/gqview { };
6830   googleearth = callPackage_i686 ../applications/misc/googleearth { };
6832   google_talk_plugin = callPackage ../applications/networking/browsers/mozilla-plugins/google-talk-plugin {
6833     inherit pkgsi686Linux;
6834   };
6836   gosmore = builderDefsPackage ../applications/misc/gosmore {
6837     inherit fetchsvn curl pkgconfig libxml2;
6838     inherit (gtkLibs) gtk;
6839   };
6841   gpsbabel = callPackage ../applications/misc/gpsbabel { };
6843   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
6845   gpsd = callPackage ../servers/gpsd { };
6847   guitone = callPackage ../applications/version-management/guitone { };
6849   gv = callPackage ../applications/misc/gv { };
6851   hello = callPackage ../applications/misc/hello/ex-2 { };
6853   homebank = callPackage ../applications/office/homebank { };
6855   htmldoc = callPackage ../applications/misc/htmldoc {
6856     fltk = fltk11;
6857   };
6859   hugin = callPackage ../applications/graphics/hugin {
6860   };
6862   hydrogen = callPackage ../applications/audio/hydrogen { };
6864   i810switch = callPackage ../os-specific/linux/i810switch { };
6866   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
6867     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6868       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6869       wirelesstools;
6870     inherit (gnome) libIDL libgnomeui gnome_vfs gtk pango;
6871     inherit (xlibs) pixman;
6872     inherit (pythonPackages) ply;
6873   });
6875   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
6876     application = "xulrunner";
6877     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6878       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6879       wirelesstools;
6880     inherit (gnome) libIDL libgnomeui gnome_vfs gtk pango;
6881     inherit (xlibs) pixman;
6882     inherit (pythonPackages) ply;
6883   });
6885   icecat3Xul =
6886     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
6887        [ icecat3 icecatXulrunner3 ])
6888     // { inherit (icecat3) gtk isFirefox3Like meta; };
6890   icecat3Wrapper = wrapFirefox { browser = icecat3Xul; browserName = "icecat"; desktopName = "IceCat"; };
6892   icecat4 = lowPrio (import ../applications/networking/browsers/icecat-4 {
6893     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6894       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6895       wirelesstools;
6896     inherit (gnome) libIDL libgnomeui gnome_vfs gtk pango;
6897     inherit (xlibs) pixman;
6898     inherit (pythonPackages) ply;
6899   });
6901   icecatXulrunner4 = lowPrio (import ../applications/networking/browsers/icecat-4 {
6902     application = "xulrunner";
6903     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6904       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6905       wirelesstools;
6906     inherit (gnome) libIDL libgnomeui gnome_vfs gtk pango;
6907     inherit (xlibs) pixman;
6908     inherit (pythonPackages) ply;
6909   });
6911   icecat4Xul =
6912     (symlinkJoin "icecat-with-xulrunner-${icecat4.version}"
6913        [ icecat4 icecatXulrunner4 ])
6914     // { inherit (icecat4) gtk meta; };
6916   icecat4Wrapper = wrapFirefox { browser = icecat4Xul; browserName = "icecat"; desktopName = "IceCat"; };
6918   icewm = callPackage ../applications/window-managers/icewm {
6919     inherit (gtkLibs) gtk;
6920   };
6922   id3v2 = callPackage ../applications/audio/id3v2 { };
6924   ikiwiki = callPackage ../applications/misc/ikiwiki {
6925     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
6926       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
6927       RpcXML XMLSimple PerlMagick YAML;
6928     gitSupport = false;
6929     monotoneSupport = false;
6930     extraUtils = [];
6931   };
6933   imagemagick = callPackage ../applications/graphics/ImageMagick {
6934     tetex = null;
6935     librsvg = null;
6936   };
6938   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
6940   # Impressive, formerly known as "KeyJNote".
6941   impressive = callPackage ../applications/office/impressive {
6942     # XXX These are the PyOpenGL dependencies, which we need here.
6943     inherit (pythonPackages) pyopengl;
6944   };
6946   inkscape = callPackage ../applications/graphics/inkscape {
6947     inherit (pythonPackages) lxml;
6948     inherit (gtkLibs) gtk glib glibmm gtkmm;
6949   };
6951   ion3 = callPackage ../applications/window-managers/ion-3 {
6952     lua = lua5;
6953   };
6955   iptraf = callPackage ../applications/networking/iptraf { };
6957   irssi = callPackage ../applications/networking/irc/irssi { };
6959   jackmeter = callPackage ../applications/audio/jackmeter { };
6961   jedit = callPackage ../applications/editors/jedit { };
6963   jigdo = callPackage ../applications/misc/jigdo { };
6965   joe = callPackage ../applications/editors/joe { };
6967   jbrout = callPackage ../applications/graphics/jbrout {
6968     inherit (pythonPackages) lxml;
6969   };
6971   jwm = callPackage ../applications/window-managers/jwm { };
6973   keepnote = callPackage ../applications/office/keepnote {
6974     pygtk = pyGtkGlade;
6975   };
6977   kermit = callPackage ../tools/misc/kermit { };
6979   kino = callPackage ../applications/video/kino {
6980     inherit (gnome) libglade;
6981   };
6983   lame = callPackage ../applications/audio/lame { };
6985   larswm = callPackage ../applications/window-managers/larswm { };
6987   lash = callPackage ../applications/audio/lash {
6988     inherit (gtkLibs) gtk;
6989   };
6991   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
6993   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
6994     fftw = fftwSinglePrec;
6995   };
6997   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
6998     inherit (gnome) libglade;
6999   };
7001   lingot = callPackage ../applications/audio/lingot {
7002     inherit (gnome) libglade;
7003   };
7005   links = callPackage ../applications/networking/browsers/links { };
7007   ledger = callPackage ../applications/office/ledger { };
7008   ledger3 = callPackage ../applications/office/ledger/3.0.nix { };
7010   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
7011     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
7012       gpm openssl SDL SDL_image SDL_net pkgconfig;
7013     inherit (xlibs) libX11 libXau xproto libXt;
7014   };
7016   links2Stdenv = callPackage ../applications/networking/browsers/links2/stdenv.nix { };
7018   linphone = callPackage ../applications/networking/linphone {
7019     inherit (gnome) libglade gtk;
7020   };
7022   lmms = callPackage ../applications/audio/lmms { };
7024   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
7026   lynx = callPackage ../applications/networking/browsers/lynx { };
7028   lyx = callPackage ../applications/misc/lyx {
7029    qt = qt4;
7030   };
7032   makeself = callPackage ../applications/misc/makeself { };
7034   matchbox = callPackage ../applications/window-managers/matchbox { };
7036   meld = callPackage ../applications/version-management/meld {
7037     inherit (gnome) scrollkeeper;
7038     pygtk = pyGtkGlade;
7039   };
7041   mercurial = callPackage ../applications/version-management/mercurial {
7042     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
7043     inherit (pythonPackages) ssl curses;
7044     # when used with hg-fast-export (git) mercurials files are using
7045     # httplib.FakeSocket which is not provided after python 2.6.  (httplib2
7046     # has removed it from its interface).
7047     python = python27;
7048   };
7050   merkaartor = callPackage ../applications/misc/merkaartor { };
7052   meshlab = callPackage ../applications/graphics/meshlab {
7053     qt = qt4;
7054   };
7056   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
7057     inherit imagemagick intltool python pkgconfig webkit libxml2
7058       which gettext makeWrapper file libidn sqlite docutils libnotify
7059       vala dbus_glib;
7060     inherit (gtkLibs) gtk glib;
7061     inherit (gnome) gtksourceview;
7062     inherit (webkit.passthru.args) libsoup;
7063     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
7064   };
7066   minicom = callPackage ../tools/misc/minicom { };
7068   minidjvu = callPackage ../applications/graphics/minidjvu { };
7070   mmex = callPackage ../applications/office/mmex { };
7072   monodevelop = callPackage ../applications/editors/monodevelop {
7073     inherit (gnome) gnome_vfs libbonobo libglade libgnome GConf glib gtk;
7074     mozilla = firefox;
7075     gtksharp = gtksharp2;
7076   };
7078   monodoc = callPackage ../applications/editors/monodoc {
7079     gtksharp = gtksharp1;
7080   };
7082   monotone = callPackage ../applications/version-management/monotone {
7083     lua = lua5;
7084   };
7086   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
7087     inherit ocaml graphviz pkgconfig autoconf automake libtool;
7088     inherit (ocamlPackages) lablgtk;
7089     inherit (gnome) gtk libgnomecanvas glib;
7090   };
7092   mozilla = callPackage ../applications/networking/browsers/mozilla {
7093     inherit (gnome) libIDL;
7094   };
7096   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
7097     inherit firefox;
7098     inherit (xlibs) libX11 xproto;
7099   };
7101   mp3info = callPackage ../applications/audio/mp3info { };
7103   mpc123 = callPackage ../applications/audio/mpc123 { };
7105   mpg123 = callPackage ../applications/audio/mpg123 { };
7107   mpg321 = callPackage ../applications/audio/mpg321 { };
7109   MPlayer = callPackage ../applications/video/MPlayer { };
7111   MPlayerPlugin = browser:
7112     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
7113       inherit browser;
7114       inherit fetchurl stdenv pkgconfig gettext;
7115       inherit (xlibs) libXpm;
7116       # !!! should depend on MPlayer
7117     };
7119   mrxvt = callPackage ../applications/misc/mrxvt { };
7121   multisync = callPackage ../applications/misc/multisync {
7122     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
7123   };
7125   mumble = callPackage ../applications/networking/mumble {
7126     avahi = avahi.override {
7127       withLibdnssdCompat = true;
7128     };
7129     jackSupport = getConfig [ "mumble" "jackSupport" ] false;
7130   };
7132   mutt = callPackage ../applications/networking/mailreaders/mutt { };
7134   msmtp = callPackage ../applications/networking/msmtp { };
7136   mupdf = callPackage ../applications/misc/mupdf {
7137   };
7139   mythtv = callPackage ../applications/video/mythtv {
7140     qt3 = qt3mysql;
7141   };
7143   nano = callPackage ../applications/editors/nano { };
7145   navipowm = callPackage ../applications/misc/navipowm {
7146   };
7148   navit = callPackage ../applications/misc/navit { };
7150   nedit = callPackage ../applications/editors/nedit {
7151       motif = lesstif;
7152   };
7154   netsurfBrowser = netsurf.browser;
7155   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
7157   notmuch = callPackage ../applications/networking/mailreaders/notmuch { };
7159   nova = callPackage ../applications/virtualization/nova { };
7161   novaclient = callPackage ../applications/virtualization/nova/client.nix { };
7163   nvi = callPackage ../applications/editors/nvi { };
7165   ocrad = callPackage ../applications/graphics/ocrad { };
7167   offrss = callPackage ../applications/networking/offrss { };
7169   oneteam = callPackage ../applications/networking/instant-messengers/oneteam {};
7171   openbox = callPackage ../applications/window-managers/openbox { };
7173   openjump = callPackage ../applications/misc/openjump { };
7175   openoffice = callPackage ../applications/office/openoffice {
7176     inherit (perlPackages) ArchiveZip CompressZlib;
7177     inherit (gnome) GConf ORBit2;
7178     neon = neon029;
7179   };
7181   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
7182     inherit (perlPackages) ArchiveZip CompressZlib;
7183     inherit (gnome) GConf ORBit2;
7184     neon = neon029;
7185   };
7187   opera = callPackage ../applications/networking/browsers/opera {
7188     inherit (pkgs.gtkLibs) gdk_pixbuf atk;
7189     inherit (pkgs.kde4) kdelibs;
7190     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
7191   };
7193   pan = callPackage ../applications/networking/newsreaders/pan {
7194     spellChecking = false;
7195   };
7197   panotools = callPackage ../applications/graphics/panotools { };
7199   pavucontrol = callPackage ../applications/audio/pavucontrol {
7200     inherit (gtkLibs) gtkmm;
7201     inherit (gnome) libglademm;
7202   };
7204   paraview = callPackage ../applications/graphics/paraview {
7205   };
7207   pdftk = callPackage ../tools/typesetting/pdftk { };
7209   pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
7210     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
7211     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
7212     libgcrypt = if (getConfig ["pidgin" "gnutls"] false) then libgcrypt else null;
7213     GStreamer = gst_all.gstreamer;
7214     inherit (gnome) startupnotification;
7215     inherit (gst_all) gstPluginsBase;
7216   };
7218   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
7219     imagemagick = imagemagickBig;
7220   };
7222   pidginlatexSF = builderDefsPackage
7223     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
7224     {
7225       inherit pkgconfig pidgin texLive imagemagick which;
7226       inherit (gtkLibs) glib gtk;
7227     };
7229   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
7231   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
7233   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
7235   pinfo = callPackage ../applications/misc/pinfo { };
7237   pinta = callPackage ../applications/graphics/pinta {
7238     gtksharp = gtksharp2;
7239   };
7241   pqiv = callPackage ../applications/graphics/pqiv { };
7243   # perhaps there are better apps for this task? It's how I had configured my preivous system.
7244   # And I don't want to rewrite all rules
7245   procmail = callPackage ../applications/misc/procmail { };
7247   pstree = callPackage ../applications/misc/pstree { };
7249   puredata = callPackage ../applications/audio/puredata {
7250     inherit (gtkLibs) glib;
7251     inherit (xlibs) libX11;
7252   };
7254   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
7256   qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
7258   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
7260   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
7262   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
7264   qtractor = callPackage ../applications/audio/qtractor {
7265     inherit (gtkLibs) gtk;
7266   };
7268   rakarrack = callPackage ../applications/audio/rakarrack {
7269     inherit (xorg) libXpm libXft;
7270     fltk = fltk11;
7271   };
7273   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
7275   ratpoison = callPackage ../applications/window-managers/ratpoison { };
7277   rawtherapee = callPackage ../applications/graphics/rawtherapee {
7278     inherit (gtkLibs) gtk gtkmm;
7279   };
7281   rcs = callPackage ../applications/version-management/rcs { };
7283   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
7285   RealPlayer = callPackage ../applications/video/RealPlayer {
7286     inherit (gtkLibs) glib pango atk gtk;
7287     libstdcpp5 = gcc33.gcc;
7288   };
7290   recode = callPackage ../tools/text/recode { };
7292   retroshare = callPackage ../applications/networking/p2p/retroshare {
7293     qt = qt4;
7294     inherit (gnome) gnome_keyring;
7295   };
7297   rsync = callPackage ../applications/networking/sync/rsync {
7298     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
7299   };
7301   rxvt = callPackage ../applications/misc/rxvt { };
7303   # = urxvt
7304   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
7305     perlSupport = false;
7306   };
7308   sakura = callPackage ../applications/misc/sakura {
7309     inherit (gnome) vte;
7310   };
7312   sbagen = callPackage ../applications/misc/sbagen { };
7314   scribus = callPackage ../applications/office/scribus {
7315     inherit (gnome) libart_lgpl;
7316     qt = qt3;
7317   };
7319   seeks = callPackage ../tools/networking/p2p/seeks { };
7321   seg3d = callPackage ../applications/graphics/seg3d {
7322     wxGTK = wxGTK28.override { unicode = false; };
7323   };
7325   seq24 = callPackage ../applications/audio/seq24 {
7326     inherit (gtkLibs) gtkmm;
7327   };
7329   siproxd = callPackage ../applications/networking/siproxd { };
7331   skype_linux = callPackage_i686 ../applications/networking/skype { };
7333   slim = callPackage ../applications/display-managers/slim { };
7335   sndBase = builderDefsPackage (import ../applications/audio/snd) {
7336     inherit fetchurl stdenv stringsWithDeps lib fftw;
7337     inherit pkgconfig gmp gettext;
7338     inherit (xlibs) libXpm libX11;
7339     inherit (gtkLibs) gtk glib;
7340   };
7342   snd = sndBase.passthru.function {
7343     inherit mesa libtool jackaudio alsaLib;
7344     guile = guile_1_8;
7345   };
7347   sonic_visualiser = callPackage ../applications/audio/sonic-visualiser {
7348     inherit (pkgs.vamp) vampSDK;
7349     inherit (pkgs.xlibs) libX11;
7350     fftw = pkgs.fftwSinglePrec;
7351   };
7353   sox = callPackage ../applications/misc/audio/sox { };
7355   specimen = callPackage ../applications/audio/specimen {
7356     inherit (gnome) gtk libgnomecanvas;
7357   };
7359   spotify = callPackage ../applications/audio/spotify { };
7361   stalonetray = callPackage ../applications/window-managers/stalonetray {};
7363   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
7364     inherit texinfo;
7365     clisp = clisp_2_44_1;
7366   };
7368   subversion = callPackage ../applications/version-management/subversion/default.nix {
7369     neon = pkgs.neon029;
7370     bdbSupport = true;
7371     httpServer = false;
7372     httpSupport = true;
7373     sslSupport = true;
7374     pythonBindings = false;
7375     perlBindings = false;
7376     javahlBindings = false;
7377     compressionSupport = true;
7378     httpd = apacheHttpd;
7379   };
7381   subversionClient = lowPrio (appendToName "client" (subversion.override {
7382     bdbSupport = false;
7383     perlBindings = true;
7384     pythonBindings = true;
7385   }));
7387   surf = callPackage ../applications/misc/surf {
7388     inherit (gtkLibs) gtk glib;
7389     libsoup = gnome.libsoup;
7390   };
7392   svk = perlPackages.SVK;
7394   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
7395     sslSupport = true;
7396     gpgSupport = true;
7397   };
7399   # linux only by now
7400   synergy = callPackage ../applications/misc/synergy { };
7402   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
7403     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
7404       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
7405       numpy pyasn1 mock;
7406   };
7408   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
7409     inherit makeWrapper python;
7410   };
7412   tangogps = callPackage ../applications/misc/tangogps {
7413     gconf = gnome.GConf;
7414   };
7416   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
7418   taskjuggler = callPackage ../applications/misc/taskjuggler {
7419     qt = qt3;
7421     # KDE support is not working yet.
7422     inherit (kde3) kdelibs kdebase;
7423     withKde = getConfig [ "taskJuggler" "kde" ] false;
7424   };
7426   tesseract = callPackage ../applications/graphics/tesseract { };
7428   thinkingRock = callPackage ../applications/misc/thinking-rock { };
7430   thunderbird = callPackage ../applications/networking/mailreaders/thunderbird/7.x.nix {
7431     inherit (gnome) libIDL;
7432   };
7434   timidity = callPackage ../tools/misc/timidity { };
7436   tkcvs = callPackage ../applications/version-management/tkcvs { };
7438   tla = callPackage ../applications/version-management/arch { };
7440   transmission = callPackage ../applications/networking/p2p/transmission { };
7442   trayer = callPackage ../applications/window-managers/trayer {
7443     inherit (gtkLibs) gdk_pixbuf;
7444   };
7446   tree = callPackage ../tools/system/tree { };
7448   tribler = callPackage ../applications/networking/p2p/tribler { };
7450   twinkle = callPackage ../applications/networking/twinkle {
7451     qt = qt3;
7452     boost = boostFull;
7453     ccrtp = ccrtp_1_8;
7454     libzrtpcpp = libzrtpcpp_1_6;
7455   };
7457   unison = callPackage ../applications/networking/sync/unison {
7458     inherit (ocamlPackages) lablgtk;
7459     enableX11 = getConfig [ "unison" "enableX11" ] true;
7460   };
7462   uucp = callPackage ../tools/misc/uucp { };
7464   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
7465     inherit pkgconfig webkit makeWrapper;
7466     inherit (gtkLibs) gtk glib;
7467     inherit (xlibs) libX11 kbproto;
7468     inherit (gnome) glib_networking libsoup;
7469   };
7471   valknut = callPackage ../applications/networking/p2p/valknut {
7472     qt = qt3;
7473   };
7475   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
7477   veracity = callPackage ../applications/version-management/veracity {};
7479   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
7480   {
7481     inherit monotone cheetahTemplate highlight ctags
7482       makeWrapper graphviz which python;
7483     flup = pythonPackages.flup;
7484   };
7486   vim = callPackage ../applications/editors/vim { };
7488   vimHugeX = vim_configurable;
7490   vim_configurable = import ../applications/editors/vim/configurable.nix {
7491     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib
7492       getConfig;
7493     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
7494         libXt libXaw libXau libXmu libICE;
7495     inherit (pkgs.gtkLibs) glib gtk;
7496     features = "huge"; # one of  tiny, small, normal, big or huge
7497     # optional features by passing
7498     # python
7499     # TODO mzschemeinterp perlinterp
7500     inherit (pkgs) python perl tcl ruby /*x11*/;
7502     lua = pkgs.lua5;
7504     # optional features by flags
7505     flags = [ "X11" ]; # only flag "X11" by now
7506   };
7508   virtviewer = callPackage ../applications/virtualization/virt-viewer {};
7510   virtualgl = callPackage ../tools/X11/virtualgl { };
7512   vkeybd = callPackage ../applications/audio/vkeybd {
7513     inherit (xlibs) libX11;
7514   };
7516   vlc = callPackage ../applications/video/vlc {
7517     lua = lua5;
7518   };
7520   vnstat = callPackage ../applications/networking/vnstat { };
7522   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
7524   vue = callPackage ../applications/misc/vue {};
7526   vwm = callPackage ../applications/window-managers/vwm { };
7528   w3m = callPackage ../applications/networking/browsers/w3m {
7529     graphicsSupport = false;
7530   };
7532   weechat = callPackage ../applications/networking/irc/weechat { };
7534   wings = callPackage ../applications/graphics/wings { };
7536   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
7537   wmiimenu = import ../applications/window-managers/wmii31 {
7538     libixp = libixp_for_wmii;
7539     inherit fetchurl /* fetchhg */ stdenv gawk;
7540     inherit (xlibs) libX11;
7541   };
7543   wmiiSnap = import ../applications/window-managers/wmii {
7544     libixp = libixp_for_wmii;
7545     inherit fetchurl /* fetchhg */ stdenv gawk;
7546     inherit (xlibs) libX11 xextproto libXt libXext;
7547     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
7548   };
7550   wordnet = callPackage ../applications/misc/wordnet { };
7552   wrapFirefox =
7553     { browser, browserName ? "firefox", desktopName ? "Firefox", nameSuffix ? ""
7554     , icon ? "${browser}/lib/${browser.name}/icons/mozicon128.png" }:
7555     import ../applications/networking/browsers/firefox/wrapper.nix {
7556       inherit stdenv makeWrapper makeDesktopItem browser browserName desktopName nameSuffix icon;
7557       plugins =
7558         let
7559           enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
7560           enableGnash = getConfig [ browserName "enableGnash" ] false;
7561         in
7562          assert !(enableGnash && enableAdobeFlash);
7563          ([ ]
7564           ++ lib.optional enableGnash gnash
7565           ++ lib.optional enableAdobeFlash flashplayer
7566           # RealPlayer is disabled by default for legal reasons.
7567           ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
7568           ++ lib.optional (getConfig [browserName "enableDjvu"] false) (djview4)
7569           ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
7570           ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
7571           ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
7572           ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin
7573          );
7574     };
7576   x11vnc = callPackage ../tools/X11/x11vnc { };
7578   x2vnc = callPackage ../tools/X11/x2vnc { };
7580   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
7581     inherit (xlibs) libXt libX11 libXext xextproto xproto;
7582     inherit gsl aalib zlib libpng intltool gettext perl;
7583   };
7585   xara = callPackage ../applications/graphics/xara {
7586     wxGTK = wxGTK26;
7587   };
7589   xawtv = callPackage ../applications/video/xawtv { };
7591   xbindkeys = callPackage ../tools/X11/xbindkeys { };
7593   xchat = callPackage ../applications/networking/irc/xchat { };
7595   xchm = callPackage ../applications/misc/xchm { };
7597   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
7599   xdaliclock = callPackage ../tools/misc/xdaliclock {};
7601   xdg_utils = callPackage ../tools/X11/xdg-utils { };
7603   xdotool = callPackage ../tools/X11/xdotool { };
7605   xen = callPackage ../applications/virtualization/xen { };
7607   xfig = callPackage ../applications/graphics/xfig {
7608     stdenv = overrideGCC stdenv gcc34;
7609   };
7611   xineUI = callPackage ../applications/video/xine-ui { };
7613   xmms = callPackage ../applications/audio/xmms {
7614     inherit (gnome) esound;
7615     inherit (gtkLibs1x) glib gtk;
7616     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
7617   };
7619   xneur = callPackage ../applications/misc/xneur {
7620     GStreamer=gst_all.gstreamer;
7621     inherit (gtkLibs) glib gtk pango atk gdk_pixbuf;
7622   };
7624   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
7625     GStreamer = gst_all.gstreamer;
7626   };
7628   xournal = callPackage ../applications/graphics/xournal {
7629     inherit (gtkLibs) gtk atk pango glib;
7630     inherit (gnome) libgnomeprint libgnomeprintui
7631       libgnomecanvas;
7632   };
7634   xpdf = callPackage ../applications/misc/xpdf {
7635     motif = lesstif;
7636     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
7637   };
7639   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
7640   };
7642   xpra = callPackage ../tools/X11/xpra {
7643     pyrex = pyrex095;
7644   };
7646   xscreensaver = callPackage ../applications/graphics/xscreensaver {
7647     inherit (gnome) libglade;
7648   };
7650   xsynth_dssi = callPackage ../applications/audio/xsynth-dssi {
7651     inherit (gtkLibs) gtk;
7652   };
7654   xterm = callPackage ../applications/misc/xterm { };
7656   xtrace = callPackage ../tools/X11/xtrace { };
7658   xlaunch = callPackage ../tools/X11/xlaunch { };
7660   xmacro = callPackage ../tools/X11/xmacro { };
7662   xmove = callPackage ../applications/misc/xmove { };
7664   xnee = callPackage ../tools/X11/xnee {
7665     # Work around "missing separator" error.
7666     stdenv = overrideInStdenv stdenv [ gnumake381 ];
7667   };
7669   xvidcap = callPackage ../applications/video/xvidcap {
7670     inherit (gnome) scrollkeeper libglade;
7671   };
7673   yate = callPackage ../applications/misc/yate {
7674     qt = qt4;
7675   };
7677   qgis = callPackage ../applications/misc/qgis {};
7679   yoshimi = callPackage ../applications/audio/yoshimi {
7680     fltk = fltk11;
7681   };
7683   zapping = callPackage ../applications/video/zapping {
7684     inherit (gnome) scrollkeeper libgnomeui libglade esound;
7685     teletextSupport = true;
7686     jpegSupport = true;
7687     pngSupport = true;
7688     recordingSupport = true;
7689   };
7691   zathura = callPackage ../applications/misc/zathura { };
7693   zynaddsubfx = callPackage ../applications/audio/zynaddsubfx {
7694     fltk = fltk11;
7695   };
7697   ### GAMES
7699   alienarena = callPackage ../games/alienarena { };
7701   asc = callPackage ../games/asc {
7702     lua = lua5;
7703     libsigcxx = libsigcxx12;
7704   };
7706   atanks = callPackage ../games/atanks {};
7708   ballAndPaddle = callPackage ../games/ball-and-paddle {
7709     guile = guile_1_8;
7710   };
7712   blackshades = callPackage ../games/blackshades { };
7714   blackshadeselite = callPackage ../games/blackshadeselite { };
7716   bsdgames = callPackage ../games/bsdgames { };
7718   btanks = callPackage ../games/btanks { };
7720   bzflag = callPackage ../games/bzflag { };
7722   castle_combat = callPackage ../games/castle-combat { };
7724   construoBase = callPackage ../games/construo {
7725     mesa = null;
7726     freeglut = null;
7727   };
7729   construo = construoBase.override {
7730     inherit mesa freeglut;
7731   };
7733   crack_attack = callPackage ../games/crack-attack { };
7735   crrcsim = callPackage ../games/crrcsim {};
7737   dwarf_fortress = callPackage_i686 ../games/dwarf-fortress {
7738     gnomegtk = pkgsi686Linux.gnome.gtk;
7739   };
7741   eduke32 = callPackage ../games/eduke32 { };
7743   egoboo = callPackage ../games/egoboo { };
7745   exult = callPackage ../games/exult {
7746     stdenv = overrideGCC stdenv gcc42;
7747   };
7749   /*
7750   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
7751     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
7752       autoconf automake libtool flex bison;
7753   });
7754   */
7756   flightgear = callPackage ../games/flightgear {};
7758   freeciv = callPackage ../games/freeciv { };
7760   freedink = callPackage ../games/freedink { };
7762   fsg = callPackage ../games/fsg {
7763     wxGTK = wxGTK28.override { unicode = false; };
7764   };
7766   gemrb = callPackage ../games/gemrb { };
7768   gl117 = callPackage ../games/gl-117 {};
7770   glestae = callPackage ../games/glestae {};
7772   globulation2 = callPackage ../games/globulation {};
7774   gltron = callPackage ../games/gltron { };
7776   gnuchess = callPackage ../games/gnuchess { };
7778   gnugo = callPackage ../games/gnugo { };
7780   gparted = callPackage ../tools/misc/gparted {
7781     parted = parted_2_3;
7782     inherit (gtkLibs) gtk glib gtkmm;
7783     inherit (gnome) gnomedocutils;
7784   };
7786   hexen = callPackage ../games/hexen { };
7788   icbm3d = callPackage ../games/icbm3d { };
7790   instead = callPackage ../games/instead {
7791     lua = lua5;
7792   };
7794   kobodeluxe = callPackage ../games/kobodeluxe { };
7796   lincity = builderDefsPackage (import ../games/lincity) {
7797     inherit (xlibs) libX11 libXext xextproto
7798       libICE libSM xproto;
7799     inherit libpng zlib;
7800   };
7802   mars = callPackage ../games/mars { };
7804   micropolis = callPackage ../games/micropolis { };
7806   naev = callPackage ../games/naev { };
7808   njam = callPackage ../games/njam { };
7810   openttd = callPackage ../games/openttd {
7811     zlib = zlibStatic;
7812   };
7814   pioneers = callPackage ../games/pioneers { };
7816   pong3d = callPackage ../games/pong3d { };
7818   prboom = callPackage ../games/prboom { };
7820   quake3demo = callPackage ../games/quake3/wrapper {
7821     name = "quake3-demo-${quake3game.name}";
7822     description = "Demo of Quake 3 Arena, a classic first-person shooter";
7823     game = quake3game;
7824     paks = [quake3demodata];
7825   };
7827   quake3demodata = callPackage ../games/quake3/demo { };
7829   quake3game = callPackage ../games/quake3/game { };
7831   racer = callPackage ../games/racer { };
7833   rigsofrods = callPackage ../games/rigsofrods {
7834     mygui = myguiSvn;
7835   };
7837   rogue = callPackage ../games/rogue { };
7839   sauerbraten = callPackage ../games/sauerbraten {};
7841   scummvm = callPackage ../games/scummvm { };
7843   scorched3d = callPackage ../games/scorched3d {
7844   };
7846   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
7847     inherit (gtkLibs) gtk;
7848     inherit pkgconfig fetchsvn perl;
7849     inherit (xlibs) libX11;
7850   };
7852   simutrans = callPackage ../games/simutrans { };
7854   six = callPackage ../games/six {
7855     inherit (kde3) arts kdelibs;
7856   };
7858   soi = callPackage ../games/soi {};
7860   # You still can override by passing more arguments.
7861   spaceOrbit = callPackage ../games/orbit {
7862     inherit (gnome) esound;  };
7864   spring = callPackage ../games/spring { };
7866   springLobby = callPackage ../games/spring/spring-lobby.nix { };
7868   stardust = callPackage ../games/stardust {};
7870   superTux = callPackage ../games/super-tux { };
7872   superTuxKart = callPackage ../games/super-tux-kart {
7873     /* With GNU Make 3.82, the build process is stuck in the `data'
7874        directory, after displaying "Making all in tracks", and `pstree'
7875        indicates that `make' doesn't launch any new process.  */
7876     stdenv = overrideInStdenv stdenv [ gnumake381 ];
7877   };
7879   tbe = callPackage ../games/the-butterfly-effect {};
7881   teetertorture = callPackage ../games/teetertorture { };
7883   teeworlds = callPackage ../games/teeworlds { };
7885   tennix = callPackage ../games/tennix { };
7887   tpm = callPackage ../games/thePenguinMachine { };
7889   tremulous = callPackage ../games/tremulous { };
7891   speed_dreams = callPackage ../games/speed-dreams {
7892     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
7893     # i686 is the only platform I know than can do that linking without plib built with -fPIC
7894     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
7895   };
7897   torcs = callPackage ../games/torcs {
7898     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
7899     # i686 is the only platform I know than can do that linking without plib built with -fPIC
7900     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
7901   };
7903   trigger = callPackage ../games/trigger { };
7905   ufoai = callPackage ../games/ufoai {
7906     inherit (gnome) gtksourceview gtkglext;
7907   };
7909   ultimatestunts = callPackage ../games/ultimatestunts { };
7911   ultrastardx = callPackage ../games/ultrastardx {
7912     lua = lua5;
7913   };
7915   urbanterror = callPackage ../games/urbanterror { };
7917   ut2004demo = callPackage ../games/ut2004demo { };
7919   vdrift = callPackage ../games/vdrift { };
7921   vectoroids = callPackage ../games/vectoroids { };
7923   warmux = callPackage ../games/warmux { };
7925   warsow = callPackage ../games/warsow {
7926     libjpeg = libjpeg62;
7927   };
7929   warzone2100 = callPackage ../games/warzone2100 { };
7931   widelands = callPackage ../games/widelands {};
7933   xboard = builderDefsPackage (import ../games/xboard) {
7934     inherit (xlibs) libX11 xproto libXt libXaw libSM
7935       libICE libXmu libXext libXpm;
7936     inherit gnuchess texinfo;
7937   };
7939   xconq = callPackage ../games/xconq {};
7941   # TODO: the corresponding nix file is missing
7942   # xracer = callPackage ../games/xracer { };
7944   xsokoban = builderDefsPackage (import ../games/xsokoban) {
7945     inherit (xlibs) libX11 xproto libXpm libXt;
7946   };
7948   zdoom = callPackage ../games/zdoom { };
7950   zod = callPackage ../games/zod { };
7952   zoom = callPackage ../games/zoom { };
7954   keen4 = callPackage ../games/keen4 { };
7957   ### DESKTOP ENVIRONMENTS
7960   enlightenment = callPackage ../desktops/enlightenment { };
7962   # e17 = recurseIntoAttrs (
7963   #   let callPackage = newScope pkgs.e17; in
7964   #   import ../desktops/e17 { inherit callPackage pkgs; }
7965   # );
7967   gnome2 = (callPackage ../desktops/gnome-2 {
7968     callPackage = pkgs.newScope pkgs.gnome2;
7969     self = pkgs.gnome2;
7970   }  // pkgs.gtkLibs);
7972   gnome3 = (import ../desktops/gnome-3 {
7973     callPackage = pkgs.newScope pkgs.gnome3;
7974   } // pkgs.gtkLibs3x);
7976   gnome = recurseIntoAttrs gnome2;
7978   kde3 = recurseIntoAttrs {
7980     kdelibs = callPackage ../desktops/kde-3/kdelibs {
7981       stdenv = overrideGCC stdenv gcc43;
7982       qt = qt3;
7983     };
7985     arts = callPackage ../development/libraries/arts {
7986       qt = qt3;
7987       inherit (gnome) glib;
7988       inherit (kde3) kdelibs;
7989     };
7991     k3b = callPackage ../applications/misc/k3b/1.0.nix {
7992       inherit (kde3) kdelibs;
7993     };
7995     kbasket = callPackage ../applications/misc/kbasket {
7996       stdenv = overrideGCC stdenv gcc43;
7997       inherit (kde3) kdelibs;
7998     };
8000     kphone = callPackage ../applications/networking/kphone {
8001       qt = qt3;
8002       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
8003     };
8005     kuickshow = callPackage ../applications/graphics/kuickshow {
8006       inherit (kde3) arts kdelibs;
8007       qt = qt3;
8008     };
8010   };
8012   kde4 = recurseIntoAttrs pkgs.kde45;
8014   # TODO: merge with branches/drop-kde4.5 if you want to remove KDE SC 4.5
8015   # This branch removes kde45 and quite a few compatibility hacks
8016   kde45 = kdePackagesFor pkgs.kde45 "4.5";
8017   kde47 = kdePackagesFor pkgs.kde47 "4.7";
8019   kdePackagesFor = self: version:
8020     let callPackageOrig = callPackage; in
8021     let
8022       callPackage = newScope self;
8023       kde4 = callPackageOrig (../desktops/kde- + version) {
8024         inherit callPackage callPackageOrig;
8025       };
8026     in kde4 // {
8027       inherit kde4;
8029       recurseForRelease = true;
8031       akunambol = callPackage ../applications/networking/sync/akunambol { };
8033       amarok = callPackage ../applications/audio/amarok { };
8035       bangarang = callPackage ../applications/video/bangarang { };
8037       bluedevil = callPackage ../tools/bluetooth/bluedevil { };
8039       digikam = callPackage ../applications/graphics/digikam { };
8041       filelight = if kde4 ? filelight then kde4.filelight
8042         else callPackage ../applications/misc/filelight { };
8044       k3b = callPackage ../applications/misc/k3b { };
8046       kadu = callPackage ../applications/networking/instant-messengers/kadu { };
8048       kbluetooth = callPackage ../tools/bluetooth/kbluetooth { };
8050       kde_wacomtablet = callPackage ../applications/misc/kde-wacomtablet { };
8052       kdenlive = callPackage ../applications/video/kdenlive { };
8054       kdesvn = callPackage ../applications/version-management/kdesvn { };
8056       kdevelop = callPackage ../applications/editors/kdevelop { };
8058       kdevplatform = callPackage ../development/libraries/kdevplatform { };
8060       kdiff3 = callPackage ../tools/text/kdiff3 { };
8062       kile = callPackage ../applications/editors/kile { };
8064       kmplayer = callPackage ../applications/video/kmplayer {
8065         inherit (pkgs.gtkLibs) pango;
8066       };
8068       kmymoney = callPackage ../applications/office/kmymoney { };
8070       kipi_plugins = callPackage ../applications/graphics/kipi-plugins {
8071         inherit (pkgs.gtkLibs) gdk_pixbuf;
8072       };
8074       koffice = callPackage ../applications/office/koffice { };
8076       konq_plugins = callPackage ../applications/networking/browsers/konq-plugins { };
8078       konversation = callPackage ../applications/networking/irc/konversation { };
8080       krename = callPackage ../applications/misc/krename { };
8082       krusader = callPackage ../applications/misc/krusader { };
8084       ktorrent = callPackage ../applications/networking/p2p/ktorrent { };
8086       libktorrent = callPackage ../development/libraries/libktorrent { };
8088       liblikeback = callPackage ../development/libraries/liblikeback { };
8090       partitionManager = callPackage ../tools/misc/partition-manager { };
8092       polkit_kde_agent = callPackage ../tools/security/polkit-kde-agent { };
8094       psi = callPackage ../applications/networking/instant-messengers/psi { };
8096       quassel = callPackage ../applications/networking/irc/quassel { };
8098       quasselDaemon = appendToName "daemon" (self.quassel.override {
8099         monolithic = false;
8100         daemon = true;
8101       });
8103       quasselClient = appendToName "client" (self.quassel.override {
8104         monolithic = false;
8105         client = true;
8106       });
8108       rekonq = callPackage ../applications/networking/browsers/rekonq { };
8110       rsibreak = callPackage ../applications/misc/rsibreak { };
8112       semnotes = callPackage ../applications/misc/semnotes { };
8114       yakuake = callPackage ../applications/misc/yakuake { };
8115     };
8117   redshift = callPackage ../applications/misc/redshift {
8118     inherit (xorg) libX11 libXrandr libxcb randrproto libXxf86vm
8119       xf86vidmodeproto;
8120   };
8122   oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk {
8123     inherit (gtkLibs) glib gtk;
8124   };
8126   xfce = xfce46;
8128   xfce46 = recurseIntoAttrs
8129     (let callPackage = newScope pkgs.xfce46; in
8130      import ../desktops/xfce-4.6 { inherit callPackage pkgs; });
8132   xfce48 = recurseIntoAttrs
8133     (let callPackage = newScope pkgs.xfce48; in
8134      import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
8137   ### SCIENCE
8139   xplanet = callPackage ../applications/science/astronomy/xplanet {
8140     inherit (gtkLibs) pango;
8141   };
8143   gravit = callPackage ../applications/science/astronomy/gravit { };
8145   stellarium = callPackage ../applications/science/astronomy/stellarium { };
8147   ### SCIENCE/GEOMETRY
8149   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
8150     inherit (gnome) libglade gtk;
8151     inherit libxml2 perl intltool libtool pkgconfig;
8152     guile = guile_1_8;
8153   };
8155   tetgen = callPackage ../applications/science/geometry/tetgen { };
8158   ### SCIENCE/BIOLOGY
8160   alliance = callPackage ../applications/science/electronics/alliance {
8161     motif = lesstif;
8162   };
8164   arb = callPackage ../applications/science/biology/arb {
8165     lesstif = lesstif93;
8166     stdenv = overrideGCC stdenv gcc42;
8167   };
8169   biolib = callPackage ../development/libraries/science/biology/biolib { };
8171   emboss = callPackage ../applications/science/biology/emboss { };
8173   mrbayes = callPackage ../applications/science/biology/mrbayes { };
8175   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
8176     inherit tcsh mesa lesstif;
8177     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
8178       libXmu libXext;
8179   };
8181   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
8183   paml = callPackage ../applications/science/biology/paml { };
8185   /* slr = import ../applications/science/biology/slr {
8186     inherit fetchurl stdenv liblapack;
8187   }; */
8189   pal2nal = callPackage ../applications/science/biology/pal2nal { };
8192   ### SCIENCE/MATH
8194   atlas = callPackage ../development/libraries/science/math/atlas { };
8196   blas = callPackage ../development/libraries/science/math/blas { };
8198   content = builderDefsPackage ../applications/science/math/content {
8199     inherit mesa lesstif;
8200     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
8201       libXmu libXext libXcursor;
8202   };
8204   jags = callPackage ../applications/science/math/jags { };
8206   liblapack = callPackage ../development/libraries/science/math/liblapack { };
8209   ### SCIENCE/LOGIC
8211   coq = callPackage ../applications/science/logic/coq {
8212     inherit (ocamlPackages) findlib lablgtk;
8213     camlp5 = ocamlPackages.camlp5_transitional;
8214   };
8216   cvc3 = callPackage ../applications/science/logic/cvc3 {};
8218   eprover = callPackage ../applications/science/logic/eProver {
8219     texLive = texLiveAggregationFun {
8220       paths = [
8221         texLive texLiveExtra
8222       ];
8223   };
8224   };
8226   hol = callPackage ../applications/science/logic/hol { };
8228   hol_light = callPackage ../applications/science/logic/hol_light {
8229     inherit (ocamlPackages) findlib;
8230     camlp5 = ocamlPackages.camlp5_strict;
8231   };
8233   isabelle = import ../applications/science/logic/isabelle {
8234     inherit (pkgs) stdenv fetchurl nettools perl polyml;
8235     inherit (pkgs.emacs23Packages) proofgeneral;
8236   };
8238   iprover = callPackage ../applications/science/logic/iprover {};
8240   leo2 = callPackage ../applications/science/logic/leo2 {};
8242   matita = callPackage ../applications/science/logic/matita {
8243     inherit (ocamlPackages) findlib lablgtk ocaml_expat gmetadom ocaml_http
8244             lablgtkmathview ocaml_mysql ocaml_sqlite3 ocamlnet ulex08 camlzip ocaml_pcre;
8245     camlp5 = ocamlPackages.camlp5_transitional;
8246   };
8248   minisat = callPackage ../applications/science/logic/minisat {};
8250   opensmt = callPackage ../applications/science/logic/opensmt { };
8252   prover9 = callPackage ../applications/science/logic/prover9 { };
8254   satallax = callPackage ../applications/science/logic/satallax {};
8256   spass = callPackage ../applications/science/logic/spass {};
8258   ssreflect = callPackage ../applications/science/logic/ssreflect {
8259     camlp5 = ocamlPackages.camlp5_transitional;
8260   };
8262   tptp = callPackage ../applications/science/logic/tptp {};
8264   ### SCIENCE / ELECTRONICS
8266   caneda = callPackage ../applications/science/electronics/caneda {
8267     # At the time of writing, it fails to build with qt47
8268     qt4 = qt46;
8269   };
8271   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
8273   kicad = callPackage ../applications/science/electronics/kicad { };
8275   ngspice = callPackage ../applications/science/electronics/ngspice { };
8277   qucs = callPackage ../applications/science/electronics/qucs { };
8279   xoscope = callPackage ../applications/science/electronics/xoscope { };
8282   ### SCIENCE / MATH
8284   ecm = callPackage ../applications/science/math/ecm { };
8286   eukleides = callPackage ../applications/science/math/eukleides { };
8288   maxima = callPackage ../applications/science/math/maxima { };
8290   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
8292   pari = callPackage ../applications/science/math/pari {};
8294   singular = callPackage ../applications/science/math/singular {};
8296   scilab = callPackage ../applications/science/math/scilab {
8297     withXaw3d = false;
8298     withTk = true;
8299     withGtk = false;
8300     withOCaml = true;
8301     withX = true;
8302   };
8304   msieve = callPackage ../applications/science/math/msieve { };
8306   yacas = callPackage ../applications/science/math/yacas { };
8308   ### SCIENCE / MISC
8310   boinc = callPackage ../applications/science/misc/boinc { };
8312   golly = callPackage ../applications/science/misc/golly { };
8314   simgrid = callPackage ../applications/science/misc/simgrid { };
8316   tulip = callPackage ../applications/science/misc/tulip {
8317     qt = qt46;
8318   };
8320   vite = callPackage ../applications/science/misc/vite {
8321     qt = qt4;
8322   };
8324   ### MISC
8326   atari800 = callPackage ../misc/emulators/atari800 { };
8328   ataripp = callPackage ../misc/emulators/atari++ { };
8330   auctex = callPackage ../misc/tex/auctex { };
8332   busybox = callPackage ../misc/busybox {
8333     enableStatic = true;
8334   };
8336   cups = callPackage ../misc/cups { };
8338   cups_pdf_filter = callPackage ../misc/cups/pdf-filter.nix { };
8340   gutenprint = callPackage ../misc/drivers/gutenprint { };
8342   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
8344   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
8346   darcnes = callPackage ../misc/emulators/darcnes { };
8348   dblatex = callPackage ../misc/tex/dblatex { };
8350   dosbox = callPackage ../misc/emulators/dosbox { };
8352   dpkg = callPackage ../tools/package-management/dpkg { };
8354   ekiga = newScope (pkgs.gtkLibs // pkgs.gnome) ../applications/networking/ekiga { };
8356   electricsheep = callPackage ../misc/screensavers/electricsheep { };
8358   fakenes = callPackage ../misc/emulators/fakenes { };
8360   foldingathome = callPackage ../misc/foldingathome { };
8362   foo2zjs = callPackage ../misc/drivers/foo2zjs {};
8364   foomatic_filters = callPackage ../misc/drivers/foomatic-filters {};
8366   freestyle = callPackage ../misc/freestyle {
8367     #stdenv = overrideGCC stdenv gcc41;
8368   };
8370   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
8371     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
8372       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
8373       docutils;
8374     dbus = dbus.libs;
8375     inherit (gnome) gtk libglade;
8376     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
8377       scrnsaverproto;
8378     python = pythonFull;
8379   };
8381   generator = callPackage ../misc/emulators/generator {
8382     inherit (gtkLibs1x) gtk;
8383   };
8385   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
8387   ghostscript = callPackage ../misc/ghostscript {
8388     x11Support = false;
8389     cupsSupport = getConfig [ "ghostscript" "cups" ] true;
8390     gnuFork = getConfig [ "ghostscript" "gnu" ] true;
8391   };
8393   ghostscriptX = appendToName "with-X" (ghostscript.override {
8394     x11Support = true;
8395   });
8397   gxemul = callPackage ../misc/gxemul { };
8399   hplip = callPackage ../misc/drivers/hplip {
8400     qtSupport = true;
8401   };
8403   # using the new configuration style proposal which is unstable
8404   jack1d = callPackage ../misc/jackaudio/jack1.nix { };
8406   jackaudio = callPackage ../misc/jackaudio { };
8408   keynav = callPackage ../tools/X11/keynav { };
8410   lazylist = callPackage ../misc/tex/lazylist { };
8412   lilypond = callPackage ../misc/lilypond {
8413     inherit (gtkLibs) pango;
8414     guile = guile_1_8;
8415   };
8417   martyr = callPackage ../development/libraries/martyr { };
8419   maven = callPackage ../misc/maven/maven-1.0.nix { };
8420   maven2 = callPackage ../misc/maven { };
8421   maven3 = callPackage ../misc/maven/3.0.nix { };
8423   mess = callPackage ../misc/emulators/mess { };
8425   mupen64plus = callPackage ../misc/emulators/mupen64plus { };
8427   nix = nixStable;
8429   nixStable = callPackage ../tools/package-management/nix {
8430     storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
8431     stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
8432   };
8434   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
8435     storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
8436     stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
8437   };
8439   nixSqlite = nixUnstable;
8441   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
8442     import ../tools/package-management/nix/custom.nix {
8443       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
8444         autoconf libtool configureFlags enableScripts lib libxml2 boehmgc
8445         pkgconfig flex bison sqlite perlPackages;
8446       aterm = aterm25;
8447       db4 = db45;
8448       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
8449     };
8451   nut = callPackage ../applications/misc/nut { };
8453   disnix = callPackage ../tools/package-management/disnix { };
8455   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
8456     enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
8457     enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
8458     enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
8459     enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
8460     enablePostgreSQLDatabase = getConfig ["disnix" "enablePostgreSQLDatabase"] false;
8461     enableSubversionRepository = getConfig ["disnix" "enableSubversionRepository"] false;
8462     enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
8463   };
8465   disnixos = callPackage ../tools/package-management/disnix/disnixos { };
8467   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
8469   latex2html = callPackage ../misc/tex/latex2html/default.nix {
8470     tex = tetex;
8471   };
8473   lkproof = callPackage ../misc/tex/lkproof { };
8475   mysqlWorkbench = newScope gnome ../applications/misc/mysql-workbench {
8476     lua = lua5;
8477     inherit (pythonPackages) pexpect paramiko;
8478   };
8480   opkg = callPackage ../tools/package-management/opkg { };
8482   pgadmin = callPackage ../applications/misc/pgadmin { };
8484   pgf = pgf2;
8486   # Keep the old PGF since some documents don't render properly with
8487   # the new one.
8488   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
8490   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
8492   pjsip = callPackage ../applications/networking/pjsip { };
8494   polytable = callPackage ../misc/tex/polytable { };
8496   uae = callPackage ../misc/emulators/uae { };
8498   putty = callPackage ../applications/networking/remote/putty { };
8500   rssglx = callPackage ../misc/screensavers/rss-glx { };
8502   xlockmore = callPackage ../misc/screensavers/xlockmore { };
8504   saneBackends = callPackage ../misc/sane-backends {
8505     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
8506   };
8508   saneFrontends = callPackage ../misc/sane-front { };
8510   slock = callPackage ../misc/screensavers/slock { };
8512   sourceAndTags = import ../misc/source-and-tags {
8513     inherit pkgs stdenv unzip lib ctags;
8514     hasktags = haskellPackages.myhasktags;
8515   };
8517   splix = callPackage ../misc/cups/drivers/splix { };
8519   tetex = callPackage ../misc/tex/tetex { };
8521   tex4ht = callPackage ../misc/tex/tex4ht { };
8523   texFunctions = import ../misc/tex/nix pkgs;
8525   texLive = builderDefsPackage (import ../misc/tex/texlive) {
8526     inherit builderDefs zlib bzip2 ncurses libpng ed
8527       gd t1lib freetype icu perl ruby expat curl
8528       libjpeg bison python fontconfig flex;
8529     inherit (xlibs) libXaw libX11 xproto libXt libXpm
8530       libXmu libXext xextproto libSM libICE;
8531     ghostscript = ghostscriptX;
8532   };
8534   /* Look in configurations/misc/raskin.nix for usage example (around revisions
8535   where TeXLive was added)
8537   (texLiveAggregationFun {
8538     paths = [texLive texLiveExtra texLiveCMSuper
8539       texLiveBeamer
8540     ];
8541   })
8543   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
8544   Just installing a few packages doesn't work.
8545   */
8546   texLiveAggregationFun =
8547     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
8549   texDisser = callPackage ../misc/tex/disser {};
8551   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
8552     inherit texLive;
8553   };
8555   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
8556     inherit texLive;
8557   };
8559   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
8560     inherit texLive;
8561   };
8563   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
8564     inherit texLive;
8565   };
8567   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
8568     inherit texLiveLatexXColor texLive;
8569   };
8571   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
8572     inherit texLiveLatexXColor texLivePGF texLive;
8573   };
8575   texLiveModerncv = builderDefsPackage (import ../misc/tex/texlive/moderncv.nix) {
8576     inherit texLive unzip;
8577   };
8579   trac = callPackage ../misc/trac {
8580     inherit (pythonPackages) pysqlite;
8581   };
8583   vice = callPackage ../misc/emulators/vice { };
8585   VisualBoyAdvance = callPackage ../misc/emulators/VisualBoyAdvance { };
8587   # Wine cannot be built in 64-bit; use a 32-bit build instead.
8588   wine = callPackage_i686 ../misc/emulators/wine { };
8590   wineWarcraft = callPackage_i686 ../misc/emulators/wine/wine-warcraft.nix { };
8592   x2x = callPackage ../tools/X11/x2x { };
8594   xosd = callPackage ../misc/xosd { };
8596   xsane = callPackage ../misc/xsane { };
8598   yafc = callPackage ../applications/networking/yafc { };
8600   myEnvFun = import ../misc/my-env {
8601     inherit substituteAll pkgs;
8602     inherit (stdenv) mkDerivation;
8603   };
8605   zsnes = callPackage_i686 ../misc/emulators/zsnes { };
8607   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
8609 }; in pkgs