network-manager: use mirror://gnome
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blob60c667ba38b0adad378de903ec5a19015bd78c50
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).
103   applyGlobalOverrides = overrider:
104     let
105       # Call the overrider function.  We don't want stdenv overrides
106       # in the case of cross-building, or otherwise the basic
107       # overrided packages will not be built with the crossStdenv
108       # adapter.
109       overrides = overrider pkgsOrig //
110         (lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) pkgsOrig.stdenv.overrides);
112       # The un-overriden packages, passed to `overrider'.
113       pkgsOrig = pkgsFun pkgs {};
115       # The overriden, final packages.
116       pkgs = pkgsFun pkgs overrides;
117     in pkgs;
120   # The package compositions.  Yes, this isn't properly indented.
121   pkgsFun = pkgs: __overrides:
122     with helperFunctions;
123     let defaultScope = pkgs // pkgs.xorg; in
124     helperFunctions // rec {
126   # `__overrides' is a magic attribute that causes the attributes in
127   # its value to be added to the surrounding `rec'.  We'll remove this
128   # eventually.
129   inherit __overrides;
132   # We use `callPackage' to be able to omit function arguments that
133   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
134   # Use `newScope' for sets of packages in `pkgs' (see e.g. `gtkLibs'
135   # below).
136   callPackage = newScope {};
138   newScope = extra: lib.callPackageWith (defaultScope // extra);
141   # Override system. This is useful to build i686 packages on x86_64-linux.
142   forceSystem = system: (import ./all-packages.nix) {
143     inherit system;
144     inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
145   };
148   # Used by wine, firefox with debugging version of Flash, ...
149   pkgsi686Linux = forceSystem "i686-linux";
151   callPackage_i686 = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg);
154   # For convenience, allow callers to get the path to Nixpkgs.
155   path = ../..;
158   ### Symbolic names.
161   x11 = xlibsWrapper;
163   # `xlibs' is the set of X library components.  This used to be the
164   # old modular X libraries project (called `xlibs') but now it's just
165   # the set of packages in the modular X.org tree (which also includes
166   # non-library components like the server, drivers, fonts, etc.).
167   xlibs = xorg // {xlibs = xlibsWrapper;};
170   ### Helper functions.
173   inherit lib config getConfig stdenvAdapters;
175   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
177   # Applying this to an attribute set will cause nix-env to look
178   # inside the set for derivations.
179   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
181   builderDefs = lib.composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
182     inherit stringsWithDeps lib stdenv writeScript
183       fetchurl fetchmtn fetchgit;
184   };
186   builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
188   stringsWithDeps = lib.stringsWithDeps;
191   ### STANDARD ENVIRONMENT
194   allStdenvs = import ../stdenv {
195     inherit system stdenvType platform;
196     allPackages = args: import ./all-packages.nix ({ inherit config; } // args);
197   };
199   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
201   stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
202     gccCrossStageFinal;
204   stdenv =
205     if bootStdenv != null then (bootStdenv // {inherit platform;}) else
206       let changer = getConfig ["replaceStdenv"] null;
207       in if changer != null then
208         changer {
209           stdenv = stdenvCross;
210           overrideSetup = overrideSetup;
211         }
212       else if crossSystem != null then
213         stdenvCross
214       else
215         defaultStdenv;
217   forceBuildDrv = drv : if (crossSystem == null) then drv else
218     (drv // { hostDrv = drv.buildDrv; });
220   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
221   # it uses GCC compiled with multilib support; on i686-linux, it's
222   # just the plain stdenv.
223   stdenv_32bit =
224     if system == "x86_64-linux" then
225       overrideGCC stdenv gcc43_multi
226     else
227       stdenv;
230   ### BUILD SUPPORT
232   attrSetToDir = arg : import ../build-support/upstream-updater/attrset-to-dir.nix {
233     inherit writeTextFile stdenv lib;
234     theAttrSet = arg;
235   };
237   buildEnv = import ../build-support/buildenv {
238     inherit runCommand perl;
239   };
241   dotnetenv = import ../build-support/dotnetenv {
242     inherit stdenv;
243     dotnetfx = dotnetfx35;
244   };
246   vsenv = callPackage ../build-support/vsenv {
247     vs = vs90wrapper;
248   };
250   fetchbzr = import ../build-support/fetchbzr {
251     inherit stdenv bazaar;
252   };
254   fetchcvs = import ../build-support/fetchcvs {
255     inherit stdenv cvs;
256   };
258   fetchdarcs = import ../build-support/fetchdarcs {
259     inherit stdenv darcs nix;
260   };
262   fetchgit = import ../build-support/fetchgit {
263     inherit stdenv git;
264   };
266   fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
268   fetchmtn = import ../build-support/fetchmtn {
269     inherit monotone stdenv;
270     cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
271     defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
272   };
274   fetchsvn = import ../build-support/fetchsvn {
275     inherit stdenv subversion openssh;
276     sshSupport = true;
277   };
278   
279   fetchsvnrevision = import ../build-support/fetchsvnrevision runCommand subversion;
281   fetchsvnssh = import ../build-support/fetchsvnssh {
282     inherit stdenv subversion openssh expect;
283     sshSupport = true;
284   };
286   fetchhg = import ../build-support/fetchhg {
287     inherit stdenv mercurial nix;
288   };
290   # `fetchurl' downloads a file from the network.
291   fetchurl = import ../build-support/fetchurl {
292     inherit curl stdenv;
293   };
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;
347   ### TOOLS
349   acct = callPackage ../tools/system/acct { };
351   aefs = callPackage ../tools/filesystems/aefs { };
353   aircrackng = callPackage ../tools/networking/aircrack-ng { };
355   asymptote = builderDefsPackage ../tools/graphics/asymptote {
356     inherit freeglut ghostscriptX imagemagick fftw boehmgc
357       mesa ncurses readline gsl libsigsegv python zlib perl
358       texinfo lzma;
359     texLive = texLiveAggregationFun {
360       paths = [
361         texLive texLiveExtra
362       ];
363     };
364   };
366   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
368   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
370   altermime = callPackage ../tools/networking/altermime {};
372   amule = callPackage ../tools/networking/p2p/amule { };
374   amuleDaemon = appendToName "daemon" (amule.override {
375     monolithic = false;
376     daemon = true;
377   });
379   amuleGui = appendToName "gui" (amule.override {
380     monolithic = false;
381     client = true;
382   });
384   aria = builderDefsPackage (import ../tools/networking/aria) {
385   };
387   aria2 = callPackage ../tools/networking/aria2 { };
389   at = callPackage ../tools/system/at { };
391   autogen = callPackage ../development/tools/misc/autogen { };
393   autojump = callPackage ../tools/misc/autojump { };
395   avahi =
396     let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
397     in
398       makeOverridable (import ../development/libraries/avahi) {
399         inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
400           expat gettext intltool lib;
401         inherit (gtkLibs) glib gtk;
402         inherit qt4Support;
403         qt4 = if qt4Support then qt4 else null;
404       };
406   axel = callPackage ../tools/networking/axel { };
408   azureus = callPackage ../tools/networking/p2p/azureus { };
410   barcode = callPackage ../tools/graphics/barcode {};
412   bc = callPackage ../tools/misc/bc { };
414   bfr = callPackage ../tools/misc/bfr { };
416   bootchart = callPackage ../tools/system/bootchart { };
418   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
419     inherit libuuid zlib acl;
420   };
422   catdoc = callPackage ../tools/text/catdoc { };
424   eggdrop = callPackage ../tools/networking/eggdrop { };
426   mcrl = callPackage ../tools/misc/mcrl { };
428   mcrl2 = callPackage ../tools/misc/mcrl2 { };
430   syslogng = callPackage ../tools/misc/syslog-ng { };
432   asciidoc = callPackage ../tools/typesetting/asciidoc { };
434   autossh = callPackage ../tools/networking/autossh { };
436   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
437     inherit (strategoPackages016) strategoxt sdf;
438   };
440   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
441     wxPython = wxPython26;
442     gui = true;
443   };
445   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
447   blueman = callPackage ../tools/bluetooth/blueman {
448     inherit (pythonPackages) notify;
449   };
451   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
452     inherit unzip;
453   };
455   bogofilter = callPackage ../tools/misc/bogofilter {
456     bdb = db4;
457   };
459   bsdiff = callPackage ../tools/compression/bsdiff { };
461   bzip2 = callPackage ../tools/compression/bzip2 { };
463   cabextract = callPackage ../tools/archivers/cabextract { };
465   ccid = callPackage ../tools/security/ccid { };
467   ccrypt = callPackage ../tools/security/ccrypt { };
469   cdecl = callPackage ../development/tools/cdecl { };
471   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
473   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
475   cfdg = builderDefsPackage ../tools/graphics/cfdg {
476     inherit libpng bison flex;
477   };
479   checkinstall = callPackage ../tools/package-management/checkinstall { };
481   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
482     inherit makeWrapper python;
483   };
485   chkrootkit = callPackage ../tools/security/chkrootkit { };
487   cksfv = callPackage ../tools/networking/cksfv { };
489   convertlit = callPackage ../tools/text/convertlit { };
491   unifdef = callPackage ../development/tools/misc/unifdef { };
493   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
495   cloogppl = callPackage ../development/libraries/cloog-ppl { };
497   convmv = callPackage ../tools/misc/convmv { };
499   coreutils = callPackage (if stdenv ? isDietLibC
500       then ../tools/misc/coreutils-5
501       else ../tools/misc/coreutils)
502     {
503       # TODO: Add ACL support for cross-Linux.
504       aclSupport = crossSystem == null && stdenv.isLinux;
505     };
507   cpio = callPackage ../tools/archivers/cpio { };
509   cromfs = callPackage ../tools/archivers/cromfs { };
511   cron = callPackage ../tools/system/cron {  # see also fcron
512   };
514   curl = makeOverridable (import ../tools/networking/curl) rec {
515     fetchurl = fetchurlBoot;
516     inherit stdenv zlib openssl libssh2;
517     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
518     sslSupport = zlibSupport;
519     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
520   };
522   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
524   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
525   };
527   dar = callPackage ../tools/archivers/dar { };
529   davfs2 = callPackage ../tools/filesystems/davfs2 {
530     neon = neon028;
531   };
533   dcraw = callPackage ../tools/graphics/dcraw { };
535   debootstrap = callPackage ../tools/misc/debootstrap { };
537   detox = callPackage ../tools/misc/detox { };
539   ddclient = callPackage ../tools/networking/ddclient { };
541   dd_rescue = callPackage ../tools/system/dd_rescue { };
543   ddrescue = callPackage ../tools/system/ddrescue { };
545   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
547   dev86 = callPackage ../development/compilers/dev86 {
548     /* Using GNU Make 3.82 leads to this:
549          make[4]: *** No rule to make target `__ldivmod.o)'
550        So use 3.81.  */
551     stdenv = overrideInStdenv stdenv [gnumake381];
552   };
554   dnsmasq = callPackage ../tools/networking/dnsmasq {
555     # TODO i18n can be installed as well, implement it?
556   };
558   dhcp = callPackage ../tools/networking/dhcp { };
560   dhcpcd = callPackage ../tools/networking/dhcpcd { };
562   diffstat = callPackage ../tools/text/diffstat { };
564   diffutils = callPackage ../tools/text/diffutils { };
566   dirmngr = callPackage ../tools/security/dirmngr { };
568   docbook2x = callPackage ../tools/typesetting/docbook2x {
569     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
570     libiconv = if stdenv.isDarwin then libiconv else null;
571   };
573   dosfstools = callPackage ../tools/filesystems/dosfstools { };
575   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
577   dropbear = callPackage ../tools/networking/dropbear {
578     enableStatic = true;
579     zlib = zlibStatic;
580   };
582   duplicity = callPackage ../tools/backup/duplicity {
583     inherit (pythonPackages) boto;
584     gnupg = gnupg1;
585   };
587   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
589   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
591   ebook_tools = callPackage ../tools/text/ebook-tools { };
593   ecryptfs = callPackage ../tools/security/ecryptfs { };
595   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
597   encfs = callPackage ../tools/filesystems/encfs { };
599   enscript = callPackage ../tools/text/enscript { };
601   ethtool = callPackage ../tools/misc/ethtool { };
603   exif = callPackage ../tools/graphics/exif { };
605   exiftags = callPackage ../tools/graphics/exiftags { };
607   expect = callPackage ../tools/misc/expect { };
609   fcron = callPackage ../tools/system/fcron {  # see also cron
610   };
612   fdisk = callPackage ../tools/system/fdisk { };
614   fdm = callPackage ../tools/networking/fdm {};
616   figlet = callPackage ../tools/misc/figlet { };
618   file = callPackage ../tools/misc/file { };
620   fileschanged = callPackage ../tools/misc/fileschanged { };
622   findutils =
623     if stdenv.isDarwin
624     then findutils4227
625     else callPackage ../tools/misc/findutils { };
627   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
629   finger_bsd = callPackage ../tools/networking/bsd-finger { };
631   flvstreamer = callPackage ../tools/networking/flvstreamer { };
633   fontforge = callPackage ../tools/misc/fontforge { };
635   fontforgeX = callPackage ../tools/misc/fontforge {
636     withX11 = true;
637   };
639   freetalk = callPackage ../applications/networking/instant-messengers/freetalk {};
641   ftgl = callPackage ../development/libraries/ftgl { };
643   dos2unix = callPackage ../tools/text/dos2unix { };
645   unix2dos = callPackage ../tools/text/unix2dos { };
647   uni2ascii = callPackage ../tools/text/uni2ascii { };
649   gawk = callPackage ../tools/text/gawk { };
651   gdmap = callPackage ../tools/system/gdmap {
652     inherit (gtkLibs216) gtk;
653   };
655   genext2fs = callPackage ../tools/filesystems/genext2fs { };
657   gengetopt = callPackage ../development/tools/misc/gengetopt { };
659   getmail = callPackage ../tools/networking/getmail {
660     python = pythonFull;
661   };
663   getopt = callPackage ../tools/misc/getopt { };
665   gftp = callPackage ../tools/networking/gftp { };
667   gifsicle = callPackage ../tools/graphics/gifsicle { };
669   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
670     inherit fuse flex bison;
671   };
673   glxinfo = callPackage ../tools/graphics/glxinfo { };
675   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
676     inherit intltool perl gettext libusb pkgconfig;
677     inherit (gtkLibs) gtk glib;
678   };
680   gnugrep =
681     # Use libiconv only on non-GNU platforms (we can't test with
682     # `stdenv ? glibc' at this point.)
683     let gnu = stdenv.isLinux; in
684       callPackage ../tools/text/gnugrep {
685         libiconv = if gnu then null else libiconv;
686       };
688   gnupatch = callPackage ../tools/text/gnupatch { };
690   gnupg1orig = callPackage ../tools/security/gnupg1 {
691     ideaSupport = false;
692   };
694   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
696   # use config.packageOverrides if you prefer original gnupg1
697   gnupg1 = gnupg1compat;
699   gnupg = callPackage ../tools/security/gnupg { };
701   gnuplot = callPackage ../tools/graphics/gnuplot {
702     inherit (gtkLibs) pango;
703     texLive = null;
704     lua = null;
705   };
707   gnused = callPackage ../tools/text/gnused { };
709   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
711   gnutar = callPackage ../tools/archivers/gnutar { };
713   gnuvd = callPackage ../tools/misc/gnuvd { };
715   gource = callPackage ../tools/misc/gource { };
717   graphviz = callPackage ../tools/graphics/graphviz {
718     inherit (gtkLibs) pango;
719   };
721   /* Readded by Michael Raskin. There are programs in the wild
722    * that do want 2.0 but not 2.22. Please give a day's notice for
723    * objections before removal.
724    */
725   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
726     inherit (gtkLibs) pango;
727   };
729   groff = callPackage ../tools/text/groff {
730     ghostscript = null;
731   };
733   grub = callPackage_i686 ../tools/misc/grub {
734     buggyBiosCDSupport = getConfig ["grub" "buggyBiosCDSupport"] true;
735   };
737   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
739   gssdp = callPackage ../development/libraries/gssdp {
740     inherit (gnome) libsoup;
741   };
743   gt5 = callPackage ../tools/system/gt5 { };
745   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
747   gupnp = callPackage ../development/libraries/gupnp {
748     inherit (gnome) libsoup;
749   };
751   gupnptools = callPackage ../tools/networking/gupnp-tools {
752     inherit (gnome) libsoup libglade gnomeicontheme;
753   };
755   gvpe = builderDefsPackage ../tools/networking/gvpe {
756     inherit openssl gmp nettools iproute;
757   };
759   gzip = callPackage ../tools/compression/gzip { };
761   pigz = callPackage ../tools/compression/pigz { };
763   halibut = callPackage ../tools/typesetting/halibut { };
765   hddtemp = callPackage ../tools/misc/hddtemp { };
767   hdf5 = callPackage ../tools/misc/hdf5 { };
768   
769   hevea = callPackage ../tools/typesetting/hevea { };
771   highlight = callPackage ../tools/text/highlight { };
773   host = callPackage ../tools/networking/host { };
775   httpfs2 = callPackage ../tools/filesystems/httpfs { };
777   iasl = callPackage ../development/compilers/iasl { };
779   idutils = callPackage ../tools/misc/idutils { };
781   iftop = callPackage ../tools/networking/iftop { };
783   imapsync = callPackage ../tools/networking/imapsync {
784     inherit (perlPackages) MailIMAPClient;
785   };
787   inetutils = callPackage ../tools/networking/inetutils { };
789   iodine = callPackage ../tools/networking/iodine { };
791   iperf = callPackage ../tools/networking/iperf { };
793   ipmitool = callPackage ../tools/system/ipmitool {
794     static = false;
795   };
797   ised = callPackage ../tools/misc/ised {};
799   jdiskreport = callPackage ../tools/misc/jdiskreport { };
801   jfsrec = callPackage ../tools/filesystems/jfsrec { };
803   jfsutils = callPackage ../tools/filesystems/jfsutils { };
805   jhead = callPackage ../tools/graphics/jhead { };
807   jing = callPackage ../tools/text/xml/jing { };
809   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
811   jnettop = callPackage ../tools/networking/jnettop {
812     inherit (gnome) glib;
813   };
815   jwhois = callPackage ../tools/networking/jwhois { };
817   kdiff3 = newScope pkgs.kde4 ../tools/text/kdiff3 { };
819   keychain = callPackage ../tools/misc/keychain { };
821   kismet = callPackage ../applications/networking/sniffers/kismet { };
823   less = callPackage ../tools/misc/less { };
825   most = callPackage ../tools/misc/most { };
827   lftp = callPackage ../tools/networking/lftp { };
829   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
831   logrotate = callPackage ../tools/system/logrotate { };
833   lout = callPackage ../tools/typesetting/lout { };
835   lrzip = callPackage ../tools/compression/lrzip { };
837   # lsh installs `bin/nettle-lfib-stream' and so does Nettle.  Give the
838   # former a lower priority than Nettle.
839   lsh = lowPrio (callPackage ../tools/networking/lsh { });
841   lshw = callPackage ../tools/system/lshw { };
843   lxc = callPackage ../tools/system/lxc { };
845   lzma = xz;
847   xz = callPackage ../tools/compression/xz { };
849   lzop = callPackage ../tools/compression/lzop { };
851   mailutils = callPackage ../tools/networking/mailutils { };
853   man = callPackage ../tools/misc/man { };
855   man_db = callPackage ../tools/misc/man-db { };
857   memtest86 = callPackage ../tools/misc/memtest86 { };
859   mc = callPackage ../tools/misc/mc { };
861   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
863   mcron = callPackage ../tools/system/mcron { };
865   mdbtools = callPackage ../tools/misc/mdbtools { };
867   mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix { };
869   miniupnpd = callPackage ../tools/networking/miniupnpd { };
871   mjpegtools = callPackage ../tools/video/mjpegtools { };
873   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
875   mktemp = callPackage ../tools/security/mktemp { };
877   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
879   monit = builderDefsPackage ../tools/system/monit {
880     inherit openssl flex bison;
881   };
883   mpage = callPackage ../tools/text/mpage { };
885   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
886     inherit ruby makeWrapper;
887   };
889   mssys = callPackage ../tools/misc/mssys { };
891   mtdutils = callPackage ../tools/filesystems/mtdutils { };
893   mtools = callPackage ../tools/filesystems/mtools { };
895   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
896     multitrandata = callPackage ../tools/text/multitran/data { };
898     libbtree = callPackage ../tools/text/multitran/libbtree { };
900     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
902     libfacet = callPackage ../tools/text/multitran/libfacet { };
904     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
906     mtutils = callPackage ../tools/text/multitran/mtutils { };
907   });
909   muscleframework = callPackage ../tools/security/muscleframework { };
911   muscletool = callPackage ../tools/security/muscletool { };
913   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
915   namazu = callPackage ../tools/text/namazu { };
917   nbd = callPackage ../tools/networking/nbd {
918     glib = gtkLibs.glib.override {
919       stdenv = makeStaticBinaries stdenv;
920     };
921   };
923   netcdf = callPackage ../development/libraries/netcdf { };
925   nc6 = callPackage ../tools/networking/nc6 { };
927   ncat = callPackage ../tools/networking/ncat { };
929   ncftp = callPackage ../tools/networking/ncftp { };
931   ncompress = callPackage ../tools/compression/ncompress { };
933   netcat = callPackage ../tools/networking/netcat { };
935   netkittftp = callPackage ../tools/networking/netkit/tftp { };
937   netpbm = callPackage ../tools/graphics/netpbm { };
939   netselect = callPackage ../tools/networking/netselect { };
941   networkmanager = callPackage ../tools/networking/network-manager { };
943   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
945   nmap = callPackage ../tools/security/nmap {
946     inherit (pythonPackages) pysqlite;
947   };
949   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
951   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
953   ntp = callPackage ../tools/networking/ntp { };
955   nssmdns = callPackage ../tools/networking/nss-mdns { };
957   nylon = callPackage ../tools/networking/nylon { };
959   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
961   obexd = callPackage ../tools/bluetooth/obexd { };
963   obexfs = callPackage ../tools/bluetooth/obexfs { };
965   obexftp = callPackage ../tools/bluetooth/obexftp { };
967   offlineimap = import ../tools/networking/offlineimap {
968     inherit fetchurl;
969     # I did not find any better way of reusing buildPythonPackage+setuptools
970     # for a python with openssl support
971     buildPythonPackage = assert pythonFull.opensslSupport;
972       import ../development/python-modules/generic {
973         inherit makeWrapper lib;
974         python = pythonFull;
975         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
976           inherit makeWrapper;
977           python = pythonFull;
978         };
979       };
980   };
982   opendbx = callPackage ../development/libraries/opendbx { };
984   opendkim = callPackage ../development/libraries/opendkim { };
986   openjade = callPackage ../tools/text/sgml/openjade {
987     stdenv = overrideGCC stdenv gcc33;
988     opensp = opensp.override { stdenv = overrideGCC stdenv gcc33; };
989   };
991   openobex = callPackage ../tools/bluetooth/openobex { };
993   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
995   opensc = opensc_0_11_7;
997   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
999   openssh = callPackage ../tools/networking/openssh {
1000     hpnSupport = false;
1001     etcDir = "/etc/ssh";
1002   };
1004   opensp = callPackage ../tools/text/sgml/opensp { };
1006   spCompat = callPackage ../tools/text/sgml/opensp/compat.nix { };
1008   openvpn = callPackage ../tools/networking/openvpn { };
1010   optipng = callPackage ../tools/graphics/optipng { };
1012   p7zip = callPackage ../tools/archivers/p7zip { };
1014   pal = callPackage ../tools/misc/pal { };
1016   panomatic = callPackage ../tools/graphics/panomatic { };
1018   par2cmdline = callPackage ../tools/networking/par2cmdline { };
1020   parallel = callPackage ../tools/misc/parallel { };
1022   patchutils = callPackage ../tools/text/patchutils { };
1024   parted = callPackage ../tools/misc/parted { };
1026   hurdPartedCross =
1027     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1028     then (callPackage ../tools/misc/parted {
1029         # Needs the Hurd's libstore.
1030         hurd = hurdCrossIntermediate;
1032         # The Hurd wants a libparted.a.
1033         enableStatic = true;
1035         gettext = null;
1036         readline = null;
1037         devicemapper = null;
1038       }).hostDrv
1039     else null;
1041   patch = gnupatch;
1043   pbzip2 = callPackage ../tools/compression/pbzip2 { };
1045   pciutils = callPackage ../tools/system/pciutils { };
1047   pcsclite = callPackage ../tools/security/pcsclite { };
1049   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
1051   pdfjam = callPackage ../tools/typesetting/pdfjam { };
1053   pdfread = callPackage ../tools/graphics/pdfread { };
1055   pg_top = callPackage ../tools/misc/pg_top { };
1057   pdsh = callPackage ../tools/networking/pdsh {
1058     rsh = true;          # enable internal rsh implementation
1059     ssh = openssh;
1060   };
1062   pfstools = callPackage ../tools/graphics/pfstools {
1063     qt = qt3;
1064   };
1066   philter = callPackage ../tools/networking/philter { };
1068   pinentry = callPackage ../tools/misc/pinentry {
1069     inherit (gnome) glib gtk;
1070   };
1072   pius = callPackage ../tools/security/pius { };
1074   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1076   plan9port = callPackage ../tools/system/plan9port { };
1078   ploticus = callPackage ../tools/graphics/ploticus { };
1080   plotutils = callPackage ../tools/graphics/plotutils { };
1082   pngnq = callPackage ../tools/graphics/pngnq { };
1084   povray = callPackage ../tools/graphics/povray { };
1086   ppl = callPackage ../development/libraries/ppl { };
1088   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1089   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1090   };
1092   proxychains = callPackage ../tools/networking/proxychains { };
1094   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1096   psmisc = callPackage ../os-specific/linux/psmisc { };
1098   pstoedit = callPackage ../tools/graphics/pstoedit { };
1100   pv = callPackage ../tools/misc/pv { };
1102   pwgen = callPackage ../tools/security/pwgen { };
1104   pydb = callPackage ../tools/pydb { };
1106   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1108   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1109     inherit python pkgconfig dbus_glib;
1110     dbus = dbus.libs;
1111   };
1113   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1114     inherit python;
1115   };
1117   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1118     inherit python libsexy pkgconfig libxml2 pygtk;
1119     inherit (gtkLibs) pango gtk glib;
1120   };
1122   openmpi = callPackage ../development/libraries/openmpi { };
1124   qdu = callPackage ../tools/misc/qdu { };
1126   qhull = callPackage ../development/libraries/qhull { };
1128   qshowdiff = callPackage ../tools/text/qshowdiff {
1129     qt = qt4;
1130   };
1132   rtmpdump = callPackage ../tools/video/rtmpdump { };
1134   recutils = callPackage ../tools/misc/recutils { };
1136   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1138   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1140   relfs = callPackage ../tools/filesystems/relfs {
1141     inherit (gnome) gnomevfs GConf;
1142   };
1144   remind = callPackage ../tools/misc/remind { };
1146   replace = callPackage ../tools/text/replace { };
1148   /*
1149   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1150     python=python;  };
1151   */
1153   ripmime = callPackage ../tools/networking/ripmime {};
1155   rsnapshot = callPackage ../tools/backup/rsnapshot {
1157     # For the `logger' command, we can use either `utillinux' or
1158     # GNU Inetutils.  The latter is more portable.
1159     logger = inetutils;
1160   };
1162   rlwrap = callPackage ../tools/misc/rlwrap { };
1164   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1165     inherit ppp;
1166   };
1168   rpm = callPackage ../tools/package-management/rpm {
1169     db4 = db45;
1170   };
1172   rrdtool = callPackage ../tools/misc/rrdtool {
1173     inherit (gtkLibs) pango;
1174   };
1176   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1178   rubber = callPackage ../tools/typesetting/rubber { };
1180   rxp = callPackage ../tools/text/xml/rxp { };
1182   rzip = callPackage ../tools/compression/rzip { };
1184   s3backer = callPackage ../tools/filesystems/s3backer { };
1186   s3sync = callPackage ../tools/networking/s3sync { };
1188   sablotron = callPackage ../tools/text/xml/sablotron { };
1190   screen = callPackage ../tools/misc/screen { };
1192   scrot = callPackage ../tools/graphics/scrot { };
1194   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1196   setserial = builderDefsPackage (import ../tools/system/setserial) {
1197     inherit groff;
1198   };
1200   sg3_utils = callPackage ../tools/system/sg3_utils { };
1202   sharutils = callPackage ../tools/archivers/sharutils { };
1204   shebangfix = callPackage ../tools/misc/shebangfix { };
1206   slimrat = callPackage ../tools/networking/slimrat {
1207     inherit (perlPackages) WWWMechanize LWP;
1208   };
1210   slsnif = callPackage ../tools/misc/slsnif { };
1212   smartmontools = callPackage ../tools/system/smartmontools { };
1214   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1216   socat = callPackage ../tools/networking/socat { };
1218   sourceHighlight = callPackage ../tools/text/source-highlight { };
1220   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1221     inherit fetchurl stdenv openssl;
1222   };
1224   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1226   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1228   sudo = callPackage ../tools/security/sudo { };
1230   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1231   };
1233   ssmtp = callPackage ../tools/networking/ssmtp {
1234     tlsSupport = true;
1235   };
1237   ssss = callPackage ../tools/security/ssss { };
1239   stun = callPackage ../tools/networking/stun { };
1241   stunnel = callPackage ../tools/networking/stunnel { };
1243   su = shadow;
1245   swec = callPackage ../tools/networking/swec {
1246     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1247   };
1249   svnfs = callPackage ../tools/filesystems/svnfs { };
1251   system_config_printer = callPackage ../tools/misc/system-config-printer {
1252     inherit (pythonPackages) notify;
1253     libxml2 = libxml2Python;
1254    };
1256   sitecopy = callPackage ../tools/networking/sitecopy { };
1258   privoxy = callPackage ../tools/networking/privoxy {
1259     autoconf = autoconf213;
1260   };
1262   tcpdump = callPackage ../tools/networking/tcpdump { };
1264   tcng = callPackage ../tools/networking/tcng {
1265     kernel = linux_2_6_28;
1266   };
1268   telnet = callPackage ../tools/networking/telnet { };
1270   texmacs = callPackage ../applications/editors/texmacs {
1271     tex = texLive; /* tetex is also an option */
1272     extraFonts = true;
1273   };
1275   tmux = callPackage ../tools/misc/tmux { };
1277   tor = callPackage ../tools/security/tor { };
1279   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
1281   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1282   ttf2pt1_cl_pdf = callPackage ../tools/misc/ttf2pt1 { };
1284   ucl = callPackage ../development/libraries/ucl { };
1286   ufraw = callPackage ../applications/graphics/ufraw {
1287     inherit (gnome) gtk;
1288   };
1290   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1292   upx = callPackage ../tools/compression/upx { };
1294   usbmuxd = callPackage ../tools/misc/usbmuxd {};
1296   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
1298   vbetool = builderDefsPackage ../tools/system/vbetool {
1299     inherit pciutils libx86 zlib;
1300   };
1302   verilog = callPackage ../applications/science/electronics/verilog {};
1304   viking = callPackage ../applications/misc/viking { };
1306   vncrec = builderDefsPackage ../tools/video/vncrec {
1307     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1308       libXmu libXaw libXext xextproto libSM libICE libXpm
1309       libXp;
1310   };
1312   vpnc = callPackage ../tools/networking/vpnc { };
1314   vtun = callPackage ../tools/networking/vtun { };
1316   testdisk = callPackage ../tools/misc/testdisk { };
1318   htmlTidy = callPackage ../tools/text/html-tidy { };
1320   tigervnc = callPackage ../tools/admin/tigervnc {
1321     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1322       xorg.fontbhlucidatypewriter75dpi ];
1323   };
1325   tightvnc = callPackage ../tools/admin/tightvnc {
1326     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1327       xorg.fontbhlucidatypewriter75dpi ];
1328   };
1330   time = callPackage ../tools/misc/time { };
1332   tm = callPackage ../tools/system/tm { };
1334   trang = callPackage ../tools/text/xml/trang { };
1336   tre = callPackage ../development/libraries/tre { };
1338   ts = callPackage ../tools/system/ts { };
1340   transfig = callPackage ../tools/graphics/transfig { };
1342   truecrypt = callPackage ../applications/misc/truecrypt {
1343     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1344   };
1346   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
1348   unbound = callPackage ../tools/networking/unbound { };
1350   units = callPackage ../tools/misc/units { };
1352   unrar = callPackage ../tools/archivers/unrar { };
1354   unarj = callPackage ../tools/archivers/unarj { };
1356   unshield = callPackage ../tools/archivers/unshield { };
1358   unzip = unzip552;
1360   # TODO: remove in the next stdenv update.
1361   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1363   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1365   uptimed = callPackage ../tools/system/uptimed { };
1367   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1368     tomcat = tomcat6;
1369   };
1371   wdfs = callPackage ../tools/filesystems/wdfs { };
1373   wdiff = callPackage ../tools/text/wdiff { };
1375   webalizer = callPackage ../tools/networking/webalizer { };
1377   webdruid = builderDefsPackage ../tools/admin/webdruid {
1378     inherit zlib libpng freetype gd which
1379       libxml2 geoip;
1380   };
1382   wget = callPackage ../tools/networking/wget {
1383     inherit (perlPackages) LWP;
1384   };
1386   which = callPackage ../tools/system/which { };
1388   wicd = callPackage ../tools/networking/wicd { };
1390   wv = callPackage ../tools/misc/wv { };
1392   wv2 = callPackage ../tools/misc/wv2 { };
1394   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1396   xbursttools = assert stdenv ? glibc; import ../tools/misc/xburst-tools {
1397     inherit stdenv fetchgit autoconf automake libusb confuse;
1398     # It needs a cross compiler for mipsel to build the firmware it will
1399     # load into the Ben Nanonote
1400     gccCross =
1401       let
1402         pkgsCross = (import ./all-packages.nix) {
1403           inherit system;
1404           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1405           # Ben Nanonote system
1406           crossSystem = {
1407             config = "mipsel-unknown-linux";
1408             bigEndian = true;
1409             arch = "mips";
1410             float = "soft";
1411             withTLS = true;
1412             libc = "uclibc";
1413             platform = {
1414               name = "ben_nanonote";
1415               kernelMajor = "2.6";
1416               # It's not a bcm47xx processor, but for the headers this should work
1417               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1418               kernelArch = "mips";
1419             };
1420             gcc = {
1421               arch = "mips32";
1422             };
1423           };
1424         };
1425       in
1426         pkgsCross.gccCrossStageStatic;
1427   };
1429   xclip = callPackage ../tools/misc/xclip { };
1431   xdelta = callPackage ../tools/compression/xdelta { };
1433   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1435   xmlroff = callPackage ../tools/typesetting/xmlroff {
1436     inherit (gtkLibs) glib pango gtk;
1437     inherit (gnome) libgnomeprint;
1438   };
1440   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1442   xmlto = callPackage ../tools/typesetting/xmlto { };
1444   xmltv = callPackage ../tools/misc/xmltv { };
1446   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1447     inherit python setuptools;
1448   };
1450   xpf = callPackage ../tools/text/xml/xpf {
1451     libxml2 = libxml2Python;
1452   };
1454   xsel = callPackage ../tools/misc/xsel { };
1456   zdelta = callPackage ../tools/compression/zdelta { };
1458   zile = callPackage ../applications/editors/zile { };
1460   zip = callPackage ../tools/archivers/zip { };
1462   zsync = callPackage ../tools/compression/zsync { };
1464   ### SHELLS
1467   bash = lowPrio (callPackage ../shells/bash {
1468     texinfo = null;
1469   });
1471   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
1472     interactive = true;
1473   });
1475   dash = callPackage ../shells/dash { };
1477   ipython = callPackage ../shells/ipython {
1478     # I did not find any better way of reusing buildPythonPackage+setuptools
1479     # for a python with openssl support
1480     buildPythonPackage = assert pythonFull.readlineSupport;
1481       import ../development/python-modules/generic {
1482         inherit makeWrapper lib;
1483         python = pythonFull;
1484         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
1485           inherit makeWrapper;
1486           python = pythonFull;
1487         };
1488       };
1489  };
1491   tcsh = callPackage ../shells/tcsh { };
1493   rush = callPackage ../shells/rush { };
1495   zsh = callPackage ../shells/zsh { };
1498   ### DEVELOPMENT / COMPILERS
1501   abc =
1502     abcPatchable [];
1504   abcPatchable = patches :
1505     import ../development/compilers/abc/default.nix {
1506       inherit stdenv fetchurl patches jre apacheAnt;
1507       javaCup = callPackage ../development/libraries/java/cup { };
1508     };
1510   aspectj = callPackage ../development/compilers/aspectj { };
1512   bigloo = callPackage ../development/compilers/bigloo { };
1514   ccl = builderDefsPackage ../development/compilers/ccl {};
1516   clang = llvm.override {
1517     buildClang = true;
1518   };
1520   clean = callPackage ../development/compilers/clean { };
1522   cmucl_binary = callPackage ../development/compilers/cmucl/binary.nix { };
1524   dylan = callPackage ../development/compilers/gwydion-dylan {
1525     dylan =
1526       import ../development/compilers/gwydion-dylan/binary.nix {
1527         inherit fetchurl stdenv;
1528   };
1529   };
1531   ecl = builderDefsPackage ../development/compilers/ecl {
1532     inherit gmp mpfr;
1533   };
1535   eql = callPackage ../development/compilers/eql {};
1537   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1539   fpc = callPackage ../development/compilers/fpc { };
1540   fpc_2_4_0 = callPackage ../development/compilers/fpc/2.4.0.nix { };
1542   gambit = callPackage ../development/compilers/gambit { };
1544   gcc = gcc45;
1546   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1547     inherit fetchurl stdenv noSysDirs;
1548   });
1550   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1551     inherit fetchurl stdenv noSysDirs;
1552   });
1554   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1555     inherit fetchurl stdenv noSysDirs;
1556   });
1558   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1559   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1560   # expects a single digit after the dot.  As a workaround, we feed
1561   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1563   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1564     inherit fetchurl stdenv noSysDirs;
1565     texinfo = texinfo49;
1566     profiledCompiler = true;
1567   });
1569   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1570     inherit fetchurl stdenv noSysDirs;
1571     texinfo = texinfo49;
1572     profiledCompiler = false;
1573   });
1575   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1576     inherit fetchurl stdenv noSysDirs;
1577     profiledCompiler = false;
1578   });
1580   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1581     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1582     profiledCompiler = true;
1583   }));
1585   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1586     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1587     binutilsCross = binutilsCross;
1588     libcCross = libcCross;
1589     profiledCompiler = false;
1590     enableMultilib = true;
1591     crossStageStatic = false;
1592     cross = assert crossSystem != null; crossSystem;
1593   };
1595   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1596     (makeOverridable (import ../development/compilers/gcc-4.4) {
1597       inherit stdenv fetchurl texinfo gmp mpfr /* ppl cloogppl */ noSysDirs
1598           gettext which;
1599       binutilsCross = binutilsCross;
1600       libcCross = libcCross;
1601       profiledCompiler = false;
1602       enableMultilib = false;
1603       crossStageStatic = false;
1604       cross = assert crossSystem != null; crossSystem;
1605     });
1607   gcc45 = gcc45_real;
1609   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1610     (makeOverridable (import ../development/compilers/gcc-4.5) {
1611       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1612         ppl cloogppl gettext which noSysDirs;
1613       binutilsCross = binutilsCross;
1614       libcCross = libcCross;
1615       profiledCompiler = false;
1616       enableMultilib = false;
1617       crossStageStatic = false;
1618       cross = assert crossSystem != null; crossSystem;
1619     });
1621   gcc_realCross = gcc45_realCross;
1623   gccCrossStageStatic = let
1624       isMingw = (stdenv.cross.libc == "msvcrt");
1625       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1626     in
1627       wrapGCCCross {
1628       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1629         gcc_realCross.override {
1630           crossStageStatic = true;
1631           langCC = false;
1632           libcCross = libcCross1;
1633           enableShared = false;
1634         }));
1635       libc = libcCross1;
1636       binutils = binutilsCross;
1637       cross = assert crossSystem != null; crossSystem;
1638   };
1640   # Only needed for mingw builds
1641   gccCrossMingw2 = wrapGCCCross {
1642     gcc = gccCrossStageStatic.gcc;
1643     libc = windows.mingw_headers2;
1644     binutils = binutilsCross;
1645     cross = assert crossSystem != null; crossSystem;
1646   };
1648   gccCrossStageFinal = wrapGCCCross {
1649     gcc = forceBuildDrv (gcc_realCross.override {
1650       libpthreadCross =
1651         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1652         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1653         then hurdLibpthreadCross
1654         else null;
1655      });
1656     libc = libcCross;
1657     binutils = binutilsCross;
1658     cross = assert crossSystem != null; crossSystem;
1659   };
1661   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1662     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1663     profiledCompiler = false;
1664     enableMultilib = true;
1665   }));
1667   gcc44 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1668     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1669       gettext which noSysDirs;
1670     profiledCompiler = true;
1671   }));
1673   gcc45_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1674     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1675       ppl cloogppl
1676       gettext which noSysDirs;
1677     # bootstrapping a profiled compiler does not work in the sheevaplug:
1678     # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
1679     profiledCompiler = if stdenv.system == "armv5tel-linux" then false else true;
1680   }));
1682   gccApple =
1683     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1684       inherit fetchurl stdenv noSysDirs;
1685       profiledCompiler = true;
1686     }) ;
1688   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1689     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1690     texinfo = texinfo49;
1691   });
1693   gfortran = gfortran45;
1695   gfortran40 = wrapGCC (gcc40.gcc.override {
1696     langFortran = true;
1697     langCC = false;
1698     inherit gmp mpfr;
1699   });
1701   gfortran41 = wrapGCC (gcc41.gcc.override {
1702     name = "gfortran";
1703     langFortran = true;
1704     langCC = false;
1705     langC = false;
1706     inherit gmp mpfr;
1707   });
1709   gfortran42 = wrapGCC (gcc42.gcc.override {
1710     name = "gfortran";
1711     langFortran = true;
1712     langCC = false;
1713     langC = false;
1714     inherit gmp mpfr;
1715   });
1717   gfortran43 = wrapGCC (gcc43.gcc.override {
1718     name = "gfortran";
1719     langFortran = true;
1720     langCC = false;
1721     langC = false;
1722     profiledCompiler = false;
1723   });
1725   gfortran44 = wrapGCC (gcc44.gcc.override {
1726     name = "gfortran";
1727     langFortran = true;
1728     langCC = false;
1729     langC = false;
1730     profiledCompiler = false;
1731   });
1733   gfortran45 = wrapGCC (gcc45_real.gcc.override {
1734     name = "gfortran";
1735     langFortran = true;
1736     langCC = false;
1737     langC = false;
1738     profiledCompiler = false;
1739   });
1741   gcj = gcj45;
1743   gcj44 = wrapGCC (gcc44.gcc.override {
1744     name = "gcj";
1745     langJava = true;
1746     langFortran = false;
1747     langCC = true;
1748     langC = false;
1749     profiledCompiler = false;
1750     inherit zip unzip zlib boehmgc gettext pkgconfig;
1751     inherit (gtkLibs) gtk;
1752     inherit (gnome) libart_lgpl;
1753     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1754       libXrandr xproto renderproto xextproto inputproto randrproto;
1755   });
1757   gcj45 = wrapGCC (gcc45.gcc.override {
1758     name = "gcj";
1759     langJava = true;
1760     langFortran = false;
1761     langCC = true;
1762     langC = false;
1763     profiledCompiler = false;
1764     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1765     inherit (gtkLibs) gtk;
1766     inherit (gnome) libart_lgpl;
1767     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1768       libXrandr xproto renderproto xextproto inputproto randrproto;
1769   });
1771   gnat = gnat45;
1773   gnat44 = wrapGCC (gcc44.gcc.override {
1774     name = "gnat";
1775     langCC = false;
1776     langC = true;
1777     langAda = true;
1778     profiledCompiler = false;
1779     inherit gnatboot;
1780     # We can't use the ppl stuff, because we would have
1781     # libstdc++ problems.
1782     cloogppl = null;
1783     ppl = null;
1784   });
1786   gnat45 = wrapGCC (gcc45_real.gcc.override {
1787     name = "gnat";
1788     langCC = false;
1789     langC = true;
1790     langAda = true;
1791     profiledCompiler = false;
1792     inherit gnatboot;
1793     # We can't use the ppl stuff, because we would have
1794     # libstdc++ problems.
1795     cloogppl = null;
1796     ppl = null;
1797   });
1799   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1800     inherit fetchurl stdenv;
1801   });
1803   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1804     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1805     name = "ghdl";
1806     langVhdl = true;
1807     langCC = false;
1808     langC = false;
1809     profiledCompiler = false;
1810     enableMultilib = false;
1811   });
1813   # Not officially supported version for ghdl
1814   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1815     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1816       ppl cloogppl;
1817     name = "ghdl";
1818     langVhdl = true;
1819     langCC = false;
1820     langC = false;
1821     profiledCompiler = false;
1822     enableMultilib = false;
1823   }));
1825   gcl = builderDefsPackage ../development/compilers/gcl {
1826     inherit mpfr m4 binutils fetchcvs emacs zlib which
1827       gmp texinfo;
1828     inherit (xlibs) libX11 xproto inputproto libXi
1829       libXext xextproto libXt libXaw libXmu;
1830     inherit stdenv;
1831     texLive = texLiveAggregationFun {
1832       paths = [
1833         texLive texLiveExtra
1834       ];
1835     };
1836   };
1838   # GHC
1840   # GHC binaries are around for bootstrapping purposes
1842   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1843   # need to reenable an old binary such as this.
1844   /*
1845   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1846     inherit fetchurl stdenv ncurses gmp;
1847     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1848     perl = perl58;
1849   });
1850   */
1852   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1853     inherit fetchurl stdenv perl ncurses gmp libedit;
1854   });
1856   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1857     inherit fetchurl stdenv perl ncurses gmp libedit;
1858   });
1860   # For several compiler versions, we export a large set of Haskell-related
1861   # packages.
1863   # This should point to the current default version.
1864   haskellPackages = haskellPackages_ghc6123;
1866   # Old versions of ghc that currently don't build because the binary
1867   # is broken.
1868   /*
1869   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1870     ghc = import ../development/compilers/ghc/6.4.2.nix {
1871       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1872       ghc = ghc642Binary;  };
1873   };
1875   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1876     ghc = import ../development/compilers/ghc/6.6.1.nix {
1877       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1878       ghc = ghc642Binary;
1879   };
1880   };
1882   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1883     ghc = import ../development/compilers/ghc/6.8.2.nix {
1884       inherit fetchurl stdenv perl gmp ncurses m4;
1885       readline = readline5;
1886       ghc = ghc642Binary;
1887   };
1888   };
1890   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1891     inherit pkgs;
1892     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1893       ghc = ghc642Binary;
1894       haddock = import ../development/tools/documentation/haddock/boot.nix {
1895         inherit gmp;
1896         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1897           inherit stdenv fetchurl lib;
1898           ghc = ghc642Binary;    };
1899       };
1900     };
1901   });
1902   */
1904   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1905   # currently available ghc versions. (Before, it used to be enabled only
1906   # for a selected few versions.) If someone complains about nix-env -qa
1907   # output being spammed by lots of Haskell packages, we can talk about
1908   # reducing the number or "enabled" versions again.
1910   # Helper functions to abstract away from repetitive instantiations.
1911   haskellPackagesFun = ghcPath : profDefault : modifyPrio : recurseIntoAttrs (import ./haskell-packages.nix {
1912     inherit pkgs newScope modifyPrio;
1913     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1914     ghc = callPackage ghcPath {
1915       ghc = ghc6101Binary;    };
1916   });
1918   # Currently active GHC versions.
1919   haskellPackages_ghc6101 =
1920     haskellPackagesFun ../development/compilers/ghc/6.10.1.nix false (x : x);
1922   haskellPackages_ghc6102 =
1923     haskellPackagesFun ../development/compilers/ghc/6.10.2.nix false (x : x);
1925   haskellPackages_ghc6103 =
1926     haskellPackagesFun ../development/compilers/ghc/6.10.3.nix false (x : x);
1928   haskellPackages_ghc6104 =
1929     haskellPackagesFun ../development/compilers/ghc/6.10.4.nix false (x : x);
1931   haskellPackages_ghc6121 =
1932     haskellPackagesFun ../development/compilers/ghc/6.12.1.nix false (x : x);
1934   haskellPackages_ghc6122 =
1935     haskellPackagesFun ../development/compilers/ghc/6.12.2.nix false (x : x);
1937   # Current default version.
1938   haskellPackages_ghc6123 =
1939     haskellPackagesFun ../development/compilers/ghc/6.12.3.nix false (x : x);
1941   haskellPackages_ghc701 =
1942     haskellPackagesFun ../development/compilers/ghc/7.0.1.nix  false lowPrio;
1944   haskellPackages_ghcHEAD =
1945     haskellPackagesFun ../development/compilers/ghc/head.nix   false lowPrio;
1947   haxeDist = import ../development/compilers/haxe {
1948     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1949   };
1950   haxe = haxeDist.haxe;
1951   haxelib = haxeDist.haxelib;
1953   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1954     inherit cmake;
1955   };
1957   go = callPackage ../development/compilers/go { };
1959   gprolog = callPackage ../development/compilers/gprolog { };
1961   gwt = callPackage ../development/compilers/gwt {
1962     inherit (gtkLibs) glib gtk pango atk;
1963     libstdcpp5 = gcc33.gcc;
1964   };
1966   ikarus = callPackage ../development/compilers/ikarus { };
1968   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1969   # commented out because it's using the new configuration style proposal which is unstable
1970   hugs = callPackage ../development/compilers/hugs { };
1972   path64 = callPackage ../development/compilers/path64 { };
1974   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1976   j2sdk14x = (
1977     assert system == "i686-linux";
1978     import ../development/compilers/jdk/default-1.4.nix {
1979       inherit fetchurl stdenv;
1980     });
1982   jdk5 = (
1983     assert system == "i686-linux" || system == "x86_64-linux";
1984     callPackage ../development/compilers/jdk/default-5.nix { });
1986   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1987   jre       = jdkdistro false false;
1989   jdkPlugin = jdkdistro true true;
1990   jrePlugin = jdkdistro false true;
1992   supportsJDK =
1993     system == "i686-linux" ||
1994     system == "x86_64-linux" ||
1995     system == "i686-cygwin" ||
1996     system == "powerpc-linux";
1998   jdkdistro = installjdk: pluginSupport:
1999        (assert supportsJDK;
2000     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
2001       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
2002     }));
2004   jikes = callPackage ../development/compilers/jikes { };
2006   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
2007     inherit makeWrapper;
2008     inherit (gtkLibs) gtk glib pango atk;
2009     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
2010     fpc = fpc_2_4_0;
2011   };
2013   llvm = callPackage ../development/compilers/llvm { };
2015   mitscheme = callPackage ../development/compilers/mit-scheme { };
2017   mlton = callPackage ../development/compilers/mlton { };
2019   mono = callPackage ../development/compilers/mono { };
2021   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
2023   mozart = callPackage ../development/compilers/mozart { };
2025   neko = callPackage ../development/compilers/neko { };
2027   nasm = callPackage ../development/compilers/nasm { };
2029   ocaml = ocaml_3_11_1;
2031   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
2033   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
2035   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
2037   ocaml_3_12_0 = lowPrio (callPackage ../development/compilers/ocaml/3.12.0.nix { });
2039   mkOcamlPackages = ocaml: self: let callPackage = newScope self; in rec {
2040     inherit ocaml;
2042     camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2044     camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2045       transitional = true;
2046     };
2048     camlzip = callPackage ../development/ocaml-modules/camlzip { };
2050     camomile = camomile_0_7_3;
2051     camomile_0_7_3 = callPackage ../development/ocaml-modules/camomile/0.7.3.nix { };
2052     camomile_0_8_1 = callPackage ../development/ocaml-modules/camomile/0.8.1.nix { };
2054     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
2056     findlib = callPackage ../development/tools/ocaml/findlib { };
2058     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
2059     
2060     lablgtk = callPackage ../development/ocaml-modules/lablgtk {
2061       inherit (gnome) libgnomecanvas libglade gtksourceview;
2062     };
2064     lablgtkmathview = callPackage ../development/ocaml-modules/lablgtkmathview { 
2065       gtkmathview = callPackage ../development/libraries/gtkmathview { };
2066     };
2068     menhir = callPackage ../development/ocaml-modules/menhir { };
2070     ocaml_batteries = callPackage ../development/ocaml-modules/batteries { };
2072     ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
2074     ocaml_expat = callPackage ../development/ocaml-modules/expat { };
2076     ocaml_http = callPackage ../development/ocaml-modules/http { };
2078     ocaml_lwt = callPackage ../development/ocaml-modules/lwt { };
2080     ocaml_mysql = callPackage ../development/ocaml-modules/mysql { };
2082     ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { };
2084     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {
2085       inherit pcre;
2086     };
2088     ocaml_react = callPackage ../development/ocaml-modules/react { };
2090     ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { };
2092     ocaml_ssl = callPackage ../development/ocaml-modules/ssl { };
2094     ounit = callPackage ../development/ocaml-modules/ounit { };
2096     ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 {
2097       camlp5 = camlp5_transitional;
2098     };
2099   };
2101   ocamlPackages = recurseIntoAttrs ocamlPackages_3_11_1;
2102   ocamlPackages_3_10_0 = mkOcamlPackages ocaml_3_10_0 pkgs.ocamlPackages_3_10_0;
2103   ocamlPackages_3_11_1 = mkOcamlPackages ocaml_3_11_1 pkgs.ocamlPackages_3_11_1;
2104   ocamlPackages_3_12_0 = mkOcamlPackages ocaml_3_12_0 pkgs.ocamlPackages_3_12_0;
2106   opencxx = callPackage ../development/compilers/opencxx {
2107     gcc = gcc33;
2108   };
2110   qcmm = callPackage ../development/compilers/qcmm {
2111     lua   = lua4;
2112     ocaml = ocaml_3_08_0;
2113   };
2115   roadsend = callPackage ../development/compilers/roadsend { };
2117   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
2118     inherit makeWrapper clisp;
2119   };
2121   scala = callPackage ../development/compilers/scala { };
2123   stalin = callPackage ../development/compilers/stalin { };
2125   strategoPackages = strategoPackages018;
2127   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
2128     stdenv = overrideInStdenv stdenv [gnumake380];
2129   };
2131   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
2132     readline = readline5;
2133   };
2135   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
2136     readline = readline5;
2137   };
2139   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
2141   swiProlog = callPackage ../development/compilers/swi-prolog { };
2143   tinycc = callPackage ../development/compilers/tinycc { };
2145   urweb = callPackage ../development/compilers/urweb { };
2147   vala = callPackage ../development/compilers/vala { };
2149   visualcpp = callPackage ../development/compilers/visual-c++ { };
2151   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
2153   webdsl = callPackage ../development/compilers/webdsl { };
2155   win32hello = callPackage ../development/compilers/visual-c++/test { };
2157   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
2158     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2159     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2160     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
2161     gcc = baseGCC;
2162     libc = glibc;
2163     shell = bash;
2164     inherit stdenv binutils coreutils zlib;
2165   };
2167   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
2169   wrapGCCCross =
2170     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
2172     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
2173       nativeTools = false;
2174       nativeLibc = false;
2175       noLibc = (libc == null);
2176       inherit stdenv gcc binutils libc shell name cross;
2177     });
2179   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
2180   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2181   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2182     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2183     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2184     gcc = baseGCC;
2185     libc = glibc;
2186     inherit stdenv binutils;
2187   };
2189   # prolog
2190   yap = callPackage ../development/compilers/yap { };
2192   yasm = callPackage ../development/compilers/yasm { };
2194   ### DEVELOPMENT / INTERPRETERS
2196   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2197     inherit sbcl;
2198   };
2200   clisp = callPackage ../development/interpreters/clisp { };
2202   # compatibility issues in 2.47 - at list 2.44.1 is known good
2203   # for sbcl bootstrap
2204   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2205     libsigsegv = libsigsegv_25;  };
2207   erlang = callPackage ../development/interpreters/erlang { };
2209   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2211   groovy = callPackage ../development/interpreters/groovy { };
2213   guile = callPackage ../development/interpreters/guile { };
2215   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2217   io = builderDefsPackage (import ../development/interpreters/io) {
2218     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2219       libpng libtiff libjpeg readline libsndfile libxml2
2220       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2221   };
2223   kaffe = callPackage ../development/interpreters/kaffe { };
2225   lua4 = callPackage ../development/interpreters/lua-4 { };
2227   lua5 = callPackage ../development/interpreters/lua-5 { };
2229   maude = callPackage ../development/interpreters/maude { };
2231   octave = callPackage ../development/interpreters/octave {
2232     # Needed because later gm versions require an initialization the actual octave is not
2233     # doing.
2234     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2235     graphicsmagick = graphicsmagick137;
2236   };
2238   # mercurial (hg) bleeding edge version
2239   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2241   perl58 = callPackage ../development/interpreters/perl-5.8 {
2242     impureLibcPath = if stdenv.isLinux then null else "/usr";
2243   };
2245   perl510 = callPackage ../development/interpreters/perl-5.10 {
2246     fetchurl = fetchurlBoot;
2247   };
2249   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2251   php = php5_3;
2253   php5_2 = makeOverridable (import ../development/interpreters/php/5.2.nix) {
2254     inherit
2255       stdenv fetchurl lib composableDerivation autoconf automake
2256       flex bison apacheHttpd mysql libxml2
2257       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2258   };
2260   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
2261     inherit
2262       stdenv fetchurl lib composableDerivation autoconf automake
2263       flex bison apacheHttpd mysql libxml2
2264       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2265   };
2267   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2269   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2270     inherit cairo fontconfig freetype libjpeg libpng openssl
2271       perl mesa zlib which;
2272     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2273       renderproto pixman libSM libxcb libXext xextproto libXmu
2274       libXt;
2275   };
2277   polyml = callPackage ../development/compilers/polyml { };
2279   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2280   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2281   python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
2282   pythonBase = python26Base;
2283   pythonFull = python26Full;
2285   pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
2287   python24 = callPackage ../development/interpreters/python/2.4 { };
2289   python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
2290     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2291     arch = if stdenv.isDarwin then darwinArchUtility else null;
2292     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2293   });
2295   python26Full = lowPrio (python26Base.override {
2296     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2297     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2298     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2299     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2300     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2301     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2302     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2303     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2304     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2305     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2306   });
2308   python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
2309     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2310     arch = if stdenv.isDarwin then darwinArchUtility else null;
2311     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2312   });
2314   python27Full = lowPrio (python27Base.override {
2315     inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
2316     inherit (pkgs.xlibs) libX11 xproto;
2317   });
2319   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2320     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2321     arch = if stdenv.isDarwin then darwinArchUtility else null;
2322     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2323   });
2325   pyrex = pyrex095;
2327   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2329   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2331   qi = callPackage ../development/compilers/qi { };
2333   racket = callPackage ../development/interpreters/racket { };
2335   ruby18 = callPackage ../development/interpreters/ruby { };
2336   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2337   ruby = ruby18;
2339   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2340     inherit pkgs stdenv;
2341   });
2343   rake = callPackage ../development/ruby-modules/rake { };
2345   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2347   rLang = callPackage ../development/interpreters/r-lang {
2348     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2349   };
2351   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2352     inherit ruby makeWrapper;
2353   };
2354   rubygems = rubygemsFun ruby;
2356   rq = callPackage ../applications/networking/cluster/rq { };
2358   scsh = callPackage ../development/interpreters/scsh { };
2360   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2361   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2363   sysPerl = callPackage ../development/interpreters/sys-perl { };
2365   tcl = callPackage ../development/interpreters/tcl { };
2367   xulrunnerWrapper = {application, launcher}:
2368     import ../development/interpreters/xulrunner/wrapper {
2369       inherit stdenv application launcher;
2370       xulrunner = firefox36Pkgs.xulrunner;
2371     };
2374   ### DEVELOPMENT / MISC
2376   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2377     gcc = gcc40;
2378   };
2380   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2382   /*
2383   toolbus = callPackage ../development/interpreters/toolbus { };
2384   */
2386   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2387     inherit getConfig;
2388   };
2390   ecj = callPackage ../development/eclipse/ecj { };
2392   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2394   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2396   jruby116 = callPackage ../development/interpreters/jruby { };
2398   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2400   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2401     gconf = gnome.GConf;
2402     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2403       libgnomeui pango;
2404   };
2406   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2408   windowssdk = (
2409     import ../development/misc/windows-sdk {
2410       inherit fetchurl stdenv cabextract;
2411     });
2414   ### DEVELOPMENT / TOOLS
2417   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2419   antlr3 = callPackage ../development/tools/parsing/antlr { };
2421   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin; name = "ant-" + jdk.name; } ;
2423   ant = apacheAnt;
2425   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2426     name = "ant-" + jdk.name;
2427   };
2429   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2430     jdk = j2sdk14x;
2431     name = "ant-" + j2sdk14x.name;
2432   };
2434   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2435     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2436   };
2438   autobuild = callPackage ../development/tools/misc/autobuild { };
2440   autoconf = callPackage ../development/tools/misc/autoconf { };
2442   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2444   automake = automake111x;
2446   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2448   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2450   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2452   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix {
2453     doCheck = if stdenv.isArm then false else true;
2454   };
2456   avrdude = callPackage ../development/tools/misc/avrdude { };
2458   binutils = callPackage ../development/tools/misc/binutils {
2459     inherit noSysDirs;
2460   };
2462   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2463     inherit stdenv fetchurl zlib;
2464     noSysDirs = true;
2465     cross = assert crossSystem != null; crossSystem;
2466   });
2468   bison = bison24;
2470   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2472   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2474   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2476   buildbot = callPackage ../development/tools/build-managers/buildbot {
2477     inherit (pythonPackages) twisted;
2478   };
2480   byacc = callPackage ../development/tools/parsing/byacc { };
2482   ccache = callPackage ../development/tools/misc/ccache { };
2484   ctags = callPackage ../development/tools/misc/ctags { };
2486   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2487     inherit pkgs ctags writeScriptBin;
2488   };
2490   cmake = callPackage ../development/tools/build-managers/cmake { };
2492   cmakeCurses = cmake.override { useNcurses = true; };
2494   cmakeWithGui = cmakeCurses.override { useQt4 = true; };
2496   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2498   cppi = callPackage ../development/tools/misc/cppi { };
2500   cproto = callPackage ../development/tools/misc/cproto { };
2502   cflow = callPackage ../development/tools/misc/cflow { };
2504   cscope = callPackage ../development/tools/misc/cscope { };
2506   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2508   ddd = callPackage ../development/tools/misc/ddd { };
2510   distcc = callPackage ../development/tools/misc/distcc { };
2512   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2513     inherit python pil makeWrapper;
2514   };
2516   doxygen = callPackage ../development/tools/documentation/doxygen {
2517     qt = qt4;
2518   };
2520   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2522   elfutils = callPackage ../development/tools/misc/elfutils { };
2524   epm = callPackage ../development/tools/misc/epm { };
2526   emma = callPackage ../development/tools/analysis/emma { };
2528   findbugs = callPackage ../development/tools/analysis/findbugs { };
2530   pmd = callPackage ../development/tools/analysis/pmd { };
2532   jdepend = callPackage ../development/tools/analysis/jdepend { };
2534   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2536   flex = flex2535;
2538   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2540   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2542   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2544   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2545   # alphabetically, hence the low priority.
2546   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2547     inherit fetchurl stdenv yacc;
2548   });
2550   m4 = gnum4;
2552   global = callPackage ../development/tools/misc/global { };
2554   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2556   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2558   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2559   gnumake381 = callPackage ../development/tools/build-managers/gnumake/3.81.nix { };
2561   gradle = callPackage ../development/tools/build-managers/gradle { };
2563   gperf = callPackage ../development/tools/misc/gperf { };
2565   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2567   guileLint = callPackage ../development/tools/guile/guile-lint { };
2569   gwrap = callPackage ../development/tools/guile/g-wrap { };
2571   help2man = callPackage ../development/tools/misc/help2man {
2572     inherit (perlPackages) LocaleGettext;
2573   };
2575   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2576     inherit (perlPackages) XMLSimple;
2577   };
2579   indent = callPackage ../development/tools/misc/indent { };
2581   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2583   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2585   jikespg = callPackage ../development/tools/parsing/jikespg { };
2587   lcov = callPackage ../development/tools/analysis/lcov { };
2589   libtool = libtool_2;
2591   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2593   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2595   lsof = callPackage ../development/tools/misc/lsof { };
2597   ltrace = callPackage ../development/tools/misc/ltrace { };
2599   mig = callPackage ../os-specific/gnu/mig { };
2601   mk = callPackage ../development/tools/build-managers/mk { };
2603   noweb = callPackage ../development/tools/literate-programming/noweb { };
2605   omake = callPackage ../development/tools/ocaml/omake { };
2608   openocd = callPackage ../development/tools/misc/openocd { };
2610   oprofile = import ../development/tools/profiling/oprofile {
2611     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep zlib;
2613     # Optional build inputs for the (useless) GUI.
2614     /*
2615     qt = qt3;
2616     inherit (xlibs) libX11 libXext;
2617     inherit libpng;
2618      */
2619   };
2621   patchelf = callPackage ../development/tools/misc/patchelf { };
2623   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2625   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2627   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2628      because most usage of pkgconfig as buildInput (inheritance of
2629      pre-cross nixpkgs) means using it using as buildNativeInput
2630      cross_renaming: we should make all programs use pkgconfig as
2631      buildNativeInput after the renaming.
2632      */
2633   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2635   radare = callPackage ../development/tools/analysis/radare {
2636     inherit (gnome) vte;
2637     lua = lua5;
2638     useX11 = getConfig ["radare" "useX11"] false;
2639     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2640     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2641     luaBindings = getConfig ["radare" "luaBindings"] false;
2642   };
2644   ragel = callPackage ../development/tools/parsing/ragel { };
2646   remake = callPackage ../development/tools/build-managers/remake { };
2648   # couldn't find the source yet
2649   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2650     jre = jdk;  };
2652   scons = callPackage ../development/tools/build-managers/scons { };
2654   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2656   sloccount = callPackage ../development/tools/misc/sloccount { };
2658   sparse = callPackage ../development/tools/analysis/sparse { };
2660   spin = callPackage ../development/tools/analysis/spin { };
2662   splint = callPackage ../development/tools/analysis/splint { };
2664   strace = callPackage ../development/tools/misc/strace { };
2666   swig = callPackage ../development/tools/misc/swig { };
2668   swigWithJava = swig;
2670   swftools = callPackage ../tools/video/swftools { };
2672   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2674   texinfo = callPackage ../development/tools/misc/texinfo { };
2676   texi2html = callPackage ../development/tools/misc/texi2html { };
2678   uisp = callPackage ../development/tools/misc/uisp { };
2680   gdb = callPackage ../development/tools/misc/gdb {
2681     readline = readline5;
2682   };
2684   gdbCross = callPackage ../development/tools/misc/gdb {
2685     readline = readline5;
2686     target = crossSystem;
2687   };
2689   valgrind = callPackage ../development/tools/analysis/valgrind { };
2691   valkyrie = callPackage ../development/tools/analysis/valkyrie { };
2693   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2694     qt = qt3;
2695     inherit pkgconfig makeWrapper bison python flex;
2696     inherit (xlibs) libXext libX11;
2697   };
2699   yacc = bison;
2701   yodl = callPackage ../development/tools/misc/yodl { };
2704   ### DEVELOPMENT / LIBRARIES
2707   a52dec = callPackage ../development/libraries/a52dec { };
2709   aalib = callPackage ../development/libraries/aalib { };
2711   acl = callPackage ../development/libraries/acl { };
2713   adns = import ../development/libraries/adns/1.4.nix {
2714     inherit stdenv fetchurl;
2715     static = getConfig [ "adns" "static" ] (stdenv ? isStatic || stdenv ? isDietLibC);
2716   };
2718   agg = callPackage ../development/libraries/agg { };
2720   allegro = callPackage ../development/libraries/allegro {};
2722   amrnb = callPackage ../development/libraries/amrnb { };
2724   amrwb = callPackage ../development/libraries/amrwb { };
2726   apr = callPackage ../development/libraries/apr { };
2728   aprutil = callPackage ../development/libraries/apr-util {
2729     bdbSupport = true;
2730   };
2732   aspell = callPackage ../development/libraries/aspell { };
2734   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2735     inherit fetchurl stdenv aspell which;
2736   });
2738   aterm = aterm25;
2740   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2741     inherit fetchurl stdenv;
2742   });
2744   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2746   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
2748   attr = callPackage ../development/libraries/attr { };
2750   aubio = callPackage ../development/libraries/aubio { };
2752   axis = callPackage ../development/libraries/axis { };
2754   babl = callPackage ../development/libraries/babl { };
2756   beecrypt = callPackage ../development/libraries/beecrypt { };
2758   boehmgc = callPackage ../development/libraries/boehm-gc { };
2760   boolstuff = callPackage ../development/libraries/boolstuff { };
2762   boost = callPackage ../development/libraries/boost { };
2764   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2765   boostFull = appendToName "full" (boost.override {
2766     enableDebug = true;
2767     enableSingleThreaded = true;
2768     enableStatic = true;
2769   });
2771   botan = callPackage ../development/libraries/botan { };
2773   box2d = callPackage ../development/libraries/box2d { };
2774   box2d_2_0_1 = callPackage ../development/libraries/box2d/2.0.1.nix { };
2776   buddy = callPackage ../development/libraries/buddy { };
2778   cairo = callPackage ../development/libraries/cairo { };
2779   cairo_1_10_0 = callPackage ../development/libraries/cairo/1.10.nix {
2780     pixman = xlibs.pixman_0_20_0;
2781   };
2783   cairomm = callPackage ../development/libraries/cairomm { };
2785   scmccid = callPackage ../development/libraries/scmccid { };
2787   ccrtp = callPackage ../development/libraries/ccrtp { };
2789   cgui = callPackage ../development/libraries/cgui {};
2791   check = callPackage ../development/libraries/check { };
2793   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2794     inherit cmake freeglut mesa;
2795     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2796   };
2798   chmlib = callPackage ../development/libraries/chmlib { };
2800   cil = callPackage ../development/libraries/cil { };
2802   cilaterm = callPackage ../development/libraries/cil-aterm {
2803     stdenv = overrideInStdenv stdenv [gnumake380];
2804   };
2806   clanlib = callPackage ../development/libraries/clanlib { };
2808   clapack = callPackage ../development/libraries/clapack {
2809   };
2811   classads = callPackage ../development/libraries/classads { };
2813   classpath = callPackage ../development/libraries/java/classpath {
2814     javac = gcj;
2815     jvm = gcj;
2816     gconf = gnome.GConf;
2817   };
2819   clearsilver = callPackage ../development/libraries/clearsilver { };
2821   cln = callPackage ../development/libraries/cln { };
2823   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2824   };
2826   cluceneCore = callPackage ../development/libraries/clucene-core { };
2828   clutter = callPackage ../development/libraries/clutter {
2829     inherit (gnome) glib pango gtk;
2830   };
2832   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2833     inherit (gnome) gtk;
2834   };
2836   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2838   confuse = callPackage ../development/libraries/confuse { };
2840   consolekit = callPackage ../development/libraries/consolekit { };
2842   coredumper = callPackage ../development/libraries/coredumper { };
2844   ctl = callPackage ../development/libraries/ctl { };
2846   cppunit = callPackage ../development/libraries/cppunit { };
2848   cracklib = callPackage ../development/libraries/cracklib { };
2850   cryptopp = callPackage ../development/libraries/crypto++ { };
2852   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2854   db4 = db45;
2856   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2858   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2860   dbus = callPackage ../development/libraries/dbus {
2861     useX11 = true; # !!! `false' doesn't build
2862   };
2864   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2865     inherit fetchurl stdenv pkgconfig gettext dbus expat glib libiconv;
2866   };
2868   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2870   dclib = callPackage ../development/libraries/dclib { };
2872   directfb = callPackage ../development/libraries/directfb { };
2874   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2875     stdenv = overrideGCC stdenv gcc45;
2876   };
2878   enchant = callPackage ../development/libraries/enchant {
2879     inherit (gnome) glib;
2880   };
2882   enet = callPackage ../development/libraries/enet { };
2884   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2886   esdl = callPackage ../development/libraries/esdl { };
2888   exiv2 = callPackage ../development/libraries/exiv2 { };
2890   expat = callPackage ../development/libraries/expat { };
2892   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2893     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2894       libpng gettext intltool;
2895     inherit (xlibs) libX11 xproto libXi inputproto
2896       libXmu libXext xextproto libXt libSM libICE;
2897   };
2899   eventlog = callPackage ../development/libraries/eventlog { };
2901   facile = callPackage ../development/libraries/facile {
2902     # Actually, we don't need this version but we need native-code compilation
2903     ocaml = ocaml_3_10_0;
2904   };
2906   faac = callPackage ../development/libraries/faac { };
2908   faad2 = callPackage ../development/libraries/faad2 { };
2910   farsight2 = callPackage ../development/libraries/farsight2 {
2911     inherit (gnome) glib;
2912     inherit (gst_all) gstreamer gstPluginsBase gst_python;
2913   };
2915   fcgi = callPackage ../development/libraries/fcgi { };
2917   ffmpeg = callPackage ../development/libraries/ffmpeg {
2918     vpxSupport = if !stdenv.isMips then true else false;
2919   };
2921   fftw = callPackage ../development/libraries/fftw {
2922     singlePrecision = false;
2923   };
2925   fftwSinglePrec = callPackage ../development/libraries/fftw {
2926     singlePrecision = true;
2927   };
2929   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2931   fltk20 = callPackage ../development/libraries/fltk { };
2933   fmod = callPackage ../development/libraries/fmod { };
2935   freeimage = callPackage ../development/libraries/freeimage { };
2937   freetts = callPackage ../development/libraries/freetts { };
2939   cfitsio = callPackage ../development/libraries/cfitsio { };
2941   fontconfig = callPackage ../development/libraries/fontconfig { };
2943   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2944     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2945       inherit runCommand libxslt fontconfig fontDirectories;
2946     };
2948   freealut = callPackage ../development/libraries/freealut { };
2950   freeglut = callPackage ../development/libraries/freeglut { };
2952   freetype = callPackage ../development/libraries/freetype { };
2954   fribidi = callPackage ../development/libraries/fribidi { };
2956   fam = gamin;
2958   gamin = callPackage ../development/libraries/gamin { };
2960   gav = callPackage ../games/gav {
2961     stdenv = overrideGCC stdenv gcc41;
2962   };
2964   gdome2 = callPackage ../development/libraries/gdome2 {
2965     inherit (gnome) gtkdoc;
2966   };
2968   gdbm = callPackage ../development/libraries/gdbm { };
2970   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2971     inherit (gtkLibs1x) gtk;
2972   };
2974   gegl = callPackage ../development/libraries/gegl {
2975     #  avocodec avformat librsvg
2976     inherit (gtkLibs) pango glib gtk;
2977   };
2979   geoclue = callPackage ../development/libraries/geoclue {};
2981   geoip = builderDefsPackage ../development/libraries/geoip {
2982     inherit zlib;
2983   };
2985   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2987   geos = callPackage ../development/libraries/geos { };
2989   gettext = gettext_0_18;
2991   gettext_0_17 = callPackage ../development/libraries/gettext/0.17.nix { };
2992   gettext_0_18 = callPackage ../development/libraries/gettext { };
2994   gd = callPackage ../development/libraries/gd { };
2996   gdal = callPackage ../development/libraries/gdal { };
2998   giblib = callPackage ../development/libraries/giblib { };
3000   glew = callPackage ../development/libraries/glew { };
3002   glfw = callPackage ../development/libraries/glfw { };
3004   glibc = glibc212;
3006   glibc25 = callPackage ../development/libraries/glibc-2.5 {
3007     kernelHeaders = linuxHeaders;
3008     installLocales = false;
3009   };
3011   glibc27 = callPackage ../development/libraries/glibc-2.7 {
3012     kernelHeaders = linuxHeaders;
3013     #installLocales = false;
3014   };
3016   glibc29 = callPackage ../development/libraries/glibc-2.9 {
3017     kernelHeaders = linuxHeaders;
3018     installLocales = getConfig [ "glibc" "locales" ] false;
3019   };
3021   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
3022     inherit stdenv fetchurl;
3023     gccCross = gccCrossStageStatic;
3024     kernelHeaders = linuxHeadersCross;
3025     installLocales = getConfig [ "glibc" "locales" ] false;
3026   });
3028   glibc212 = (callPackage ../development/libraries/glibc-2.12 {
3029     kernelHeaders = linuxHeaders;
3030     installLocales = getConfig [ "glibc" "locales" ] false;
3031     machHeaders = null;
3032     hurdHeaders = null;
3033     gccCross = null;
3034   }) // (if crossSystem != null then { hostDrv = glibc212Cross; } else {});
3036   glibc212Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.12)
3037     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
3038      in ({
3039        inherit stdenv fetchurl;
3040        gccCross = gccCrossStageStatic;
3041        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
3042        installLocales = getConfig [ "glibc" "locales" ] false;
3043      }
3045      //
3047      (if crossGNU
3048       then { inherit machHeaders hurdHeaders mig fetchgit; }
3049       else { }))));
3051   glibcCross = glibc212Cross;
3053   # We can choose:
3054   libcCrossChooser = name : if (name == "glibc") then glibcCross
3055     else if (name == "uclibc") then uclibcCross
3056     else if (name == "msvcrt") then windows.mingw_headers3
3057     else throw "Unknown libc";
3059   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
3061   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
3063   libdwg = callPackage ../development/libraries/libdwg { };
3065   libgadu = callPackage ../development/libraries/libgadu { };
3067   eglibc = callPackage ../development/libraries/eglibc {
3068     kernelHeaders = linuxHeaders;
3069     installLocales = getConfig [ "glibc" "locales" ] false;
3070   };
3072   glibcLocales = callPackage ../development/libraries/glibc-2.12/locales.nix { };
3074   glibcInfo = callPackage ../development/libraries/glibc-2.12/info.nix { };
3076   glibc_multi =
3077       runCommand "${glibc.name}-multi"
3078         { glibc64 = glibc;
3079           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
3080         }
3081         ''
3082           ensureDir $out
3083           ln -s $glibc64/* $out/
3085           rm $out/lib $out/lib64
3086           ensureDir $out/lib
3087           ln -s $glibc64/lib/* $out/lib
3088           ln -s $glibc32/lib $out/lib/32
3089           ln -s lib $out/lib64
3091           rm $out/include
3092           cp -rs $glibc32/include $out
3093           chmod -R u+w $out/include
3094           cp -rsf $glibc64/include $out
3095         '' # */
3096         ;
3098   glpk = callPackage ../development/libraries/glpk { };
3100   gmime = callPackage ../development/libraries/gmime { };
3102   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
3104   gmm = callPackage ../development/libraries/gmm { };
3106   gmp =
3107     if stdenv.system == "i686-darwin" then
3108       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
3109       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
3110         inherit stdenv fetchurl m4;
3111         cxx = false;
3112       }
3113     else
3114       # We temporarily leave gmp 4 here, waiting for a new ppl/cloog-ppl that
3115       # would build well with gmp 5.
3116       makeOverridable (import ../development/libraries/gmp/4.nix) {
3117         inherit stdenv fetchurl m4;
3118         cxx = false;
3119       };
3121   gmpxx = gmp.override { cxx = true; };
3123   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
3125   goffice = callPackage ../development/libraries/goffice {
3126     inherit (gnome) glib gtk libglade libgnomeui pango;
3127     gconf = gnome.GConf;
3128     libart = gnome.libart_lgpl;
3129   };
3131   goocanvas = callPackage ../development/libraries/goocanvas {
3132     inherit (gnome) gtk glib;
3133   };
3135   #GMP ex-satellite, so better keep it near gmp
3136   mpfr = callPackage ../development/libraries/mpfr { };
3138   gst_all = recurseIntoAttrs
3139     (let callPackage = newScope pkgs.gst_all; in
3140      import ../development/libraries/gstreamer { inherit callPackage pkgs; });
3142   gnet = callPackage ../development/libraries/gnet { };
3144   gnutls = callPackage ../development/libraries/gnutls {
3145     guileBindings = getConfig ["gnutls" "guile"] true;
3146   };
3148   gpgme = callPackage ../development/libraries/gpgme { };
3150   grantlee = callPackage ../development/libraries/grantlee { };
3152   gsasl = callPackage ../development/libraries/gsasl { };
3154   gsl = callPackage ../development/libraries/gsl { };
3156   gsoap = callPackage ../development/libraries/gsoap { };
3158   gss = callPackage ../development/libraries/gss { };
3160   gtkimageview = callPackage ../development/libraries/gtkimageview {
3161     inherit (gnome) gtk;
3162   };
3164   gtkmathview = callPackage ../development/libraries/gtkmathview { };
3166   gtkLibs = gtkLibs220;
3168   glib = gtkLibs.glib;
3169   gtk = gtkLibs.gtk;
3170   pango = gtkLibs.pango;
3172   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
3174     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
3176     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
3178   });
3180   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
3182     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
3184     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
3186     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
3188     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
3190     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
3192     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
3194     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
3196   });
3198   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
3200     glib = callPackage ../development/libraries/glib/2.22.x.nix { };
3202     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3204     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
3206     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
3208     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3210     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
3212     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3214   });
3216   gtkLibs220 = recurseIntoAttrs (let callPackage = pkgs.newScope pkgs.gtkLibs220; in rec {
3218     glib = callPackage ../development/libraries/glib/2.24.x.nix { };
3220     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3222     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3224     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3226     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3228     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3230     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3232   });
3234   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3235     inherit (gnome) gtk;
3236     gtksharp = gtksharp2;
3237   };
3239   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3240     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3241               libgnomecanvas libgnomeui libgnomeprint
3242               libgnomeprintui GConf;
3243   };
3245   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3246     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3247               libgnomecanvas libgnomeui libgnomeprint
3248               libgnomeprintui GConf gnomepanel;
3249   };
3251   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3252     inherit (gnome) gtksourceview;
3253     gtksharp = gtksharp2;
3254   };
3256   gtkspell = callPackage ../development/libraries/gtkspell { };
3258   # TODO : Add MIT Kerberos and let admin choose.
3259   kerberos = heimdal;
3261   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3263   herqqSvn = callPackage ../development/libraries/herqq/svn.nix { };
3265   herqq070 = callPackage ../development/libraries/herqq/0.7.0.nix { };
3267   herqq080 = callPackage ../development/libraries/herqq/0.8.0.nix { };
3269   hspell = callPackage ../development/libraries/hspell { };
3271   hspellDicts = callPackage ../development/libraries/hspell/dicts.nix { };
3273   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3275   hunspell = callPackage ../development/libraries/hunspell { };
3277   hwloc = callPackage ../development/libraries/hwloc { };
3279   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3281   icedtea = callPackage ../development/libraries/java/icedtea {
3282     ant = apacheAntGcj;
3283     xerces = xercesJava;
3284     xulrunner = icecatXulrunner3;
3285     inherit (xlibs) libX11 libXp libXtst libXinerama libXt
3286       libXrender xproto;
3287   };
3289   icu = callPackage ../development/libraries/icu { };
3291   id3lib = callPackage ../development/libraries/id3lib { };
3293   ilbc = callPackage ../development/libraries/ilbc { };
3295   ilmbase = callPackage ../development/libraries/ilmbase { };
3297   imlib = callPackage ../development/libraries/imlib { };
3299   imlib2 = callPackage ../development/libraries/imlib2 { };
3301   incrtcl = callPackage ../development/libraries/incrtcl { };
3303   indilib = callPackage ../development/libraries/indilib { };
3305   iniparser = callPackage ../development/libraries/iniparser { };
3307   intltool = gnome.intltool;
3309   isocodes = callPackage ../development/libraries/iso-codes { };
3311   itk = callPackage ../development/libraries/itk { };
3313   jamp = builderDefsPackage ../games/jamp {
3314     inherit mesa SDL SDL_image SDL_mixer;
3315   };
3317   jasper = callPackage ../development/libraries/jasper { };
3319   jama = callPackage ../development/libraries/jama { };
3321   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3323   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3325   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3327   json_glib = callPackage ../development/libraries/json-glib { };
3329   judy = callPackage ../development/libraries/judy { };
3331   kdevplatform = newScope pkgs.kde4 ../development/libraries/kdevplatform { };
3333   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3335   lcms = lcms1;
3337   lcms1 = callPackage ../development/libraries/lcms { };
3339   lcms2 = callPackage ../development/libraries/lcms2 { };
3341   lensfun = callPackage ../development/libraries/lensfun {
3342     inherit (gnome) glib;
3343   };
3345   lesstif = callPackage ../development/libraries/lesstif { };
3347   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3349   levmar = callPackage ../development/libraries/levmar { };
3351   lib3ds = callPackage ../development/libraries/lib3ds { };
3353   libaal = callPackage ../development/libraries/libaal { };
3355   libao = callPackage ../development/libraries/libao {
3356     usePulseAudio = getConfig [ "pulseaudio" ] true;
3357   };
3359   libarchive = callPackage ../development/libraries/libarchive { };
3361   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3363   libassuan = callPackage ../development/libraries/libassuan { };
3365   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3367   libcaca = callPackage ../development/libraries/libcaca { };
3369   libcanberra = callPackage ../development/libraries/libcanberra {
3370     /* Using GNU Make 3.82 leads to this:
3372          Makefile:939: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
3374        So use 3.81.  */
3375     stdenv = overrideInStdenv stdenv [gnumake381];
3376     gstreamer = gst_all.gstreamer;
3377   };
3379   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3381   libcddb = callPackage ../development/libraries/libcddb { };
3383   libcdio = callPackage ../development/libraries/libcdio { };
3385   libchamplain = callPackage ../development/libraries/libchamplain {
3386     inherit (gnome) gtk glib libsoup;
3387   };
3389   libcm = callPackage ../development/libraries/libcm { };
3391   libctemplate = callPackage ../development/libraries/libctemplate { };
3393   libcue = callPackage ../development/libraries/libcue { };
3395   libdaemon = callPackage ../development/libraries/libdaemon { };
3397   libdbi = callPackage ../development/libraries/libdbi { };
3399   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3400     mysql = null;
3401     sqlite = null;
3402   };
3404   libdbiDrivers = libdbiDriversBase.override {
3405     inherit sqlite mysql;
3406   };
3408   libdevil = callPackage ../development/libraries/libdevil { };
3410   libdiscid = callPackage ../development/libraries/libdiscid { };
3412   libdv = callPackage ../development/libraries/libdv { };
3414   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3415     inherit fetchurl stdenv pkgconfig;
3416     inherit (xorg) libpthreadstubs;
3417   });
3419   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3421   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3423   libdvdread = callPackage ../development/libraries/libdvdread { };
3425   libedit = callPackage ../development/libraries/libedit { };
3427   libelf = callPackage ../development/libraries/libelf { };
3429   liblo = callPackage ../development/libraries/liblo { };
3431   libev = builderDefsPackage ../development/libraries/libev {
3432   };
3434   libevent = callPackage ../development/libraries/libevent { };
3436   libewf = callPackage ../development/libraries/libewf { };
3438   libexif = callPackage ../development/libraries/libexif { };
3440   libextractor = callPackage ../development/libraries/libextractor {
3441     inherit (gnome) gtk;
3442     libmpeg2 = mpeg2dec;
3443   };
3445   libfixposix = callPackage ../development/libraries/libfixposix {};
3447   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3448     inherit fetchcvs;
3449   };
3451   libffi = callPackage ../development/libraries/libffi { };
3453   libftdi = callPackage ../development/libraries/libftdi { };
3455   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3457   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3459   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3461   libgpod = callPackage ../development/libraries/libgpod {
3462     inherit (pkgs.pythonPackages) mutagen;
3463   };
3465   libharu = callPackage ../development/libraries/libharu { };
3467   libical = callPackage ../development/libraries/libical { };
3469   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
3471   libiodbc = callPackage ../development/libraries/libiodbc {
3472     useGTK = getConfig [ "libiodbc" "gtk" ] false;
3473   };
3475   libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
3477   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
3479   liblastfm = callPackage ../development/libraries/liblastfm { };
3481   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3482     inherit (gnome) glib;
3483   };
3485   libmhash = callPackage ../development/libraries/libmhash {};
3487   libmtp = callPackage ../development/libraries/libmtp { };
3489   libnice = callPackage ../development/libraries/libnice {
3490     inherit (gnome) glib;
3491   };
3493   libplist = callPackage ../development/libraries/libplist { };
3495   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3497   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3499   libspectre = callPackage ../development/libraries/libspectre {
3500     ghostscript = ghostscriptX;
3501   };
3503   libgsf = callPackage ../development/libraries/libgsf {
3504     inherit (gnome) glib gnomevfs libbonobo;
3505   };
3507   libiconv = callPackage ../development/libraries/libiconv { };
3509   libid3tag = callPackage ../development/libraries/libid3tag { };
3511   libidn = callPackage ../development/libraries/libidn { };
3513   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3515   libinfinity = callPackage ../development/libraries/libinfinity {
3516     inherit (gnome) gtkdoc;
3517   };
3519   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3521   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3523   libjpeg = callPackage ../development/libraries/libjpeg { };
3525   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3527   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3528     libtool = libtool_1_5;
3529   };
3531   libksba = callPackage ../development/libraries/libksba { };
3533   libmad = callPackage ../development/libraries/libmad { };
3535   libmatchbox = callPackage ../development/libraries/libmatchbox {
3536     inherit (gtkLibs) pango;
3537   };
3539   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3541   libmcs = callPackage ../development/libraries/libmcs { };
3543   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3545   libmikmod = callPackage ../development/libraries/libmikmod { };
3547   libmilter = callPackage ../development/libraries/libmilter { };
3549   libmowgli = callPackage ../development/libraries/libmowgli { };
3551   libmng = callPackage ../development/libraries/libmng { };
3553   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3555   libmrss = callPackage ../development/libraries/libmrss { };
3557   libmsn = callPackage ../development/libraries/libmsn { };
3559   libmspack = callPackage ../development/libraries/libmspack { };
3561   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3563   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3565   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3567   libmusicbrainz = libmusicbrainz3;
3569   libnih = callPackage ../development/libraries/libnih { };
3571   libnova = callPackage ../development/libraries/libnova { };
3573   libnxml = callPackage ../development/libraries/libnxml { };
3575   libofa = callPackage ../development/libraries/libofa { };
3577   libofx = callPackage ../development/libraries/libofx { };
3579   libogg = callPackage ../development/libraries/libogg { };
3581   liboil = callPackage ../development/libraries/liboil { };
3583   liboop = callPackage ../development/libraries/liboop { };
3585   libosip = callPackage ../development/libraries/osip {};
3587   libotr = callPackage ../development/libraries/libotr { };
3589   libp11 = callPackage ../development/libraries/libp11 { };
3591   libpcap = callPackage ../development/libraries/libpcap { };
3593   libpng = callPackage ../development/libraries/libpng { };
3594   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
3596   libproxy = callPackage ../development/libraries/libproxy { };
3598   libpseudo = callPackage ../development/libraries/libpseudo { };
3600   libqalculate = callPackage ../development/libraries/libqalculate { };
3602   librsync = callPackage ../development/libraries/librsync { };
3604   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3606   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
3608   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3610   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3611   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3613   libsndfile = callPackage ../development/libraries/libsndfile { };
3615   libssh = callPackage ../development/libraries/libssh { };
3617   libssh2 = callPackage ../development/libraries/libssh2 { };
3619   libstartup_notification = callPackage ../development/libraries/startup-notification { };
3621   libtasn1 = callPackage ../development/libraries/libtasn1 { };
3623   libtheora = callPackage ../development/libraries/libtheora { };
3625   libtiff = callPackage ../development/libraries/libtiff { };
3627   libtommath = callPackage ../development/libraries/libtommath { };
3629   libtorrentRasterbar = callPackage ../development/libraries/libtorrent-rasterbar { };
3631   libtunepimp = callPackage ../development/libraries/libtunepimp { };
3633   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3635   libunistring = callPackage ../development/libraries/libunistring { };
3637   libupnp = callPackage ../development/libraries/pupnp { };
3639   giflib = callPackage ../development/libraries/giflib { };
3641   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3643   libusb = callPackage ../development/libraries/libusb { };
3645   libusb1 = callPackage ../development/libraries/libusb1 { };
3647   libunwind = callPackage ../development/libraries/libunwind { };
3649   libv4l = callPackage ../development/libraries/libv4l { };
3651   libvdpau = callPackage ../development/libraries/libvdpau { };
3653   libvirt = callPackage ../development/libraries/libvirt { };
3655   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3656     inherit libtool libjpeg openssl zlib;
3657     inherit (xlibs) xproto libX11 damageproto libXdamage
3658       libXext xextproto fixesproto libXfixes xineramaproto
3659       libXinerama libXrandr randrproto libXtst;
3660   };
3662   libviper = callPackage ../development/libraries/libviper { };
3664   libvpx = callPackage ../development/libraries/libvpx { };
3666   libvterm = callPackage ../development/libraries/libvterm { };
3668   libvorbis = callPackage ../development/libraries/libvorbis { };
3670   libwmf = callPackage ../development/libraries/libwmf { };
3672   libwpd = callPackage ../development/libraries/libwpd {
3673     inherit (gnome) glib;
3674   };
3676   libwpg = callPackage ../development/libraries/libwpg { };
3678   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3680   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3682   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3684   libxklavier = callPackage ../development/libraries/libxklavier { };
3686   libxmi = callPackage ../development/libraries/libxmi { };
3688   libxml2 = callPackage ../development/libraries/libxml2 {
3689     pythonSupport = false;
3690   };
3692   libxml2Python = libxml2.override {
3693     pythonSupport = true;
3694   };
3696   libxmlxx = callPackage ../development/libraries/libxmlxx {
3697     inherit (gtkLibs) glibmm;
3698   };
3700   libxslt = callPackage ../development/libraries/libxslt { };
3702   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3703     inherit fetchurl stdenv;
3704   });
3706   libyaml = callPackage ../development/libraries/libyaml { };
3708   libzip = callPackage ../development/libraries/libzip { };
3710   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3712   lightning = callPackage ../development/libraries/lightning { };
3714   liquidwar = builderDefsPackage ../games/liquidwar {
3715     inherit (xlibs) xproto libX11 libXrender;
3716     inherit gmp guile mesa libjpeg libpng
3717       expat gettext perl
3718       SDL SDL_image SDL_mixer SDL_ttf
3719       curl sqlite
3720       libogg libvorbis
3721       ;
3722   };
3724   log4cxx = callPackage ../development/libraries/log4cxx { };
3726   loudmouth = callPackage ../development/libraries/loudmouth { };
3728   lzo = callPackage ../development/libraries/lzo { };
3730   # failed to build
3731   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3733   mesaSupported =
3734     system == "i686-linux" ||
3735     system == "x86_64-linux" ||
3736     system == "x86_64-darwin" ||
3737     system == "i686-darwin";
3739   mesa = callPackage ../development/libraries/mesa {
3740     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3741   };
3743   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
3744     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
3745     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
3746     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
3747     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
3748     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
3749     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
3750     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
3751     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
3752     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
3753     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
3754     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
3755     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
3756     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
3757     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
3758   });
3760   ming = callPackage ../development/libraries/ming { };
3762   mlt = callPackage ../development/libraries/mlt {
3763     qt = qt4;
3764   };
3766   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3768   msilbc = callPackage ../development/libraries/msilbc { };
3770   mp4v2 = callPackage ../development/libraries/mp4v2 { };
3772   mpc = callPackage ../development/libraries/mpc { };
3774   mpich2 = callPackage ../development/libraries/mpich2 { };
3776   muparser = callPackage ../development/libraries/muparser { };
3778   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3779     inherit fetchurl stdenv;
3780     unicode = system != "i686-cygwin";
3781   };
3783   neon = neon029;
3785   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3786     compressionSupport = true;
3787     sslSupport = true;
3788   };
3790   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3791     compressionSupport = true;
3792     sslSupport = true;
3793   };
3795   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3796     compressionSupport = true;
3797     sslSupport = true;
3798   };
3800   nethack = builderDefsPackage (import ../games/nethack) {
3801     inherit ncurses flex bison;
3802   };
3804   nettle = callPackage ../development/libraries/nettle { };
3806   nspr = callPackage ../development/libraries/nspr { };
3808   nss = callPackage ../development/libraries/nss { };
3810   nssTools = callPackage ../development/libraries/nss {
3811     includeTools = true;
3812   };
3814   ode = builderDefsPackage (import ../development/libraries/ode) {
3815   };
3816   
3817   ogre = callPackage ../development/libraries/ogre {};
3819   openal = callPackage ../development/libraries/openal { };
3821   # added because I hope that it has been easier to compile on x86 (for blender)
3822   openalSoft = callPackage ../development/libraries/openal-soft { };
3824   openbabel = callPackage ../development/libraries/openbabel { };
3826   opencascade = callPackage ../development/libraries/opencascade { };
3828   openct = callPackage ../development/libraries/openct { };
3830   opencv = callPackage ../development/libraries/opencv {
3831       inherit (gst_all) gstreamer;
3832   };
3834   # this ctl version is needed by openexr_viewers
3835   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3837   openexr = callPackage ../development/libraries/openexr { };
3839   openldap = callPackage ../development/libraries/openldap { };
3841   openlierox = builderDefsPackage ../games/openlierox {
3842     inherit (xlibs) libX11 xproto;
3843     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3844       pkgconfig;
3845   };
3847   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3848     opensc = opensc_0_11_7;
3849   };
3851   ois = callPackage ../development/libraries/ois {};
3853   opal = callPackage ../development/libraries/opal {};
3855   openjpeg = callPackage ../development/libraries/openjpeg { };
3857   openssl = callPackage ../development/libraries/openssl {
3858     fetchurl = fetchurlBoot;
3859   };
3861   ortp = callPackage ../development/libraries/ortp { };
3863   pangoxsl = callPackage ../development/libraries/pangoxsl {
3864     inherit (gtkLibs) glib pango;
3865   };
3867   pcre = callPackage ../development/libraries/pcre {
3868     unicodeSupport = getConfig ["pcre" "unicode"] false;
3869     cplusplusSupport = !stdenv ? isDietLibC;
3870   };
3872   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
3874   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
3876   physfs = callPackage ../development/libraries/physfs { };
3878   plib = callPackage ../development/libraries/plib { };
3880   podofo = callPackage ../development/libraries/podofo { };
3882   polkit = callPackage ../development/libraries/polkit { };
3884   policykit = callPackage ../development/libraries/policykit { };
3886   poppler = callPackage ../development/libraries/poppler {
3887     qt4Support = false;
3888   };
3890   popplerQt4 = poppler.override {
3891     inherit qt4;
3892     qt4Support = true;
3893   };
3895   popt = callPackage ../development/libraries/popt { };
3897   portaudio = callPackage ../development/libraries/portaudio { };
3898   portaudioSVN = callPackage ../development/libraries/portaudio/svn-head.nix { };
3900   proj = callPackage ../development/libraries/proj { };
3902   postgis = callPackage ../development/libraries/postgis { };
3904   protobuf = callPackage ../development/libraries/protobuf { };
3906   pth = callPackage ../development/libraries/pth { };
3908   ptlib = callPackage ../development/libraries/ptlib {};
3910   qjson = callPackage ../development/libraries/qjson { };
3912   qt3 = callPackage ../development/libraries/qt-3 {
3913     openglSupport = mesaSupported;
3914     mysqlSupport = getConfig ["qt" "mysql"] false;
3915   };
3917   qt3mysql = qt3.override {
3918     mysqlSupport = true;
3919   };
3921   qt4 = pkgs.kde4.qt4;
3923   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3924     inherit (gnome) glib;
3925   };
3927   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3928     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
3929     inherit (pkgs.gnome) glib;
3930   };
3932   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
3934   quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
3936   quasselDaemon = appendToName "daemon" (quassel.override {
3937     monolithic = false;
3938     daemon = true;
3939   });
3941   quasselClient = appendToName "client" (quassel.override {
3942     monolithic = false;
3943     client = true;
3944   });
3946   quesoglc = callPackage ../development/libraries/quesoglc { };
3948   readline = readline6;
3950   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3952   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3954   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3956   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3958   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3960   librdf = callPackage ../development/libraries/librdf { };
3962   qrupdate = callPackage ../development/libraries/qrupdate { };
3964   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3965     bdb = db4;
3966     postgresql = null;
3967   };
3969   rhino = callPackage ../development/libraries/java/rhino {
3970     ant = apacheAntGcj;
3971     javac = gcj;
3972     jvm = gcj;
3973   };
3975   rlog = callPackage ../development/libraries/rlog { };
3977   rte = callPackage ../development/libraries/rte { };
3979   rubberband = callPackage ../development/libraries/rubberband {
3980     fftw = fftwSinglePrec;
3981     inherit (vamp) vampSDK;
3982   };
3984   schroedinger = callPackage ../development/libraries/schroedinger { };
3986   SDL = callPackage ../development/libraries/SDL {
3987     openglSupport = mesaSupported;
3988     alsaSupport = true;
3989     x11Support = true;
3990     pulseaudioSupport = false; # better go through ALSA
3991   };
3993   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3995   SDL_image = callPackage ../development/libraries/SDL_image { };
3997   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3999   SDL_net = callPackage ../development/libraries/SDL_net { };
4001   SDL_sound = callPackage ../development/libraries/SDL_sound { };
4003   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
4005   slang = callPackage ../development/libraries/slang { };
4007   slibGuile = callPackage ../development/libraries/slib {
4008     scheme = guile;
4009   };
4011   snack = callPackage ../development/libraries/snack {
4012         # optional
4013   };
4015   speex = callPackage ../development/libraries/speex { };
4017   srtp = callPackage ../development/libraries/srtp {};
4019   sqlite = callPackage ../development/libraries/sqlite {
4020     readline = null;
4021     ncurses = null;
4022   };
4024   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
4025     readline = null;
4026     ncurses = null;
4027   };
4029   sqliteInteractive = appendToName "interactive" (sqlite.override {
4030     inherit readline ncurses;
4031   });
4033   stlport = callPackage ../development/libraries/stlport { };
4035   suitesparse = callPackage ../development/libraries/suitesparse { };
4037   sword = callPackage ../development/libraries/sword { };
4039   szip = callPackage ../development/libraries/szip { };
4041   t1lib = callPackage ../development/libraries/t1lib { };
4043   taglib = callPackage ../development/libraries/taglib { };
4045   taglib_live = callPackage ../development/libraries/taglib/live.nix { };
4047   taglib_extras = callPackage ../development/libraries/taglib-extras { };
4049   talloc = callPackage ../development/libraries/talloc { };
4051 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
4052 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
4053 ##  };
4055   tdb = callPackage ../development/libraries/tdb { };
4057   tecla = callPackage ../development/libraries/tecla { };
4059   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
4061   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
4063   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
4065   tk = callPackage ../development/libraries/tk { };
4067   tnt = callPackage ../development/libraries/tnt { };
4069   tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { };
4071   unicap = callPackage ../development/libraries/unicap {};
4073   unixODBC = callPackage ../development/libraries/unixODBC { };
4075   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
4076     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
4077     inherit postgresql mysql sqlite;
4078   });
4080   urt = callPackage ../development/libraries/urt { };
4082   vamp = callPackage ../development/libraries/audio/vamp { };
4084   vigra = callPackage ../development/libraries/vigra { };
4086   vtk = callPackage ../development/libraries/vtk { };
4088   vxl = callPackage ../development/libraries/vxl { };
4090   webkit = ((builderDefsPackage ../development/libraries/webkit {
4091     inherit (gnome28) gtkdoc libsoup;
4092     inherit (gtkLibs) gtk atk pango glib;
4093     inherit freetype fontconfig gettext gperf curl
4094       libjpeg libtiff libpng libxml2 libxslt sqlite
4095       icu cairo perl intltool automake libtool
4096       pkgconfig autoconf bison libproxy enchant
4097       python ruby which flex geoclue;
4098     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
4099       gstPluginsGood;
4100     inherit (xlibs) libXt renderproto libXrender;
4101   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
4103   wvstreams = callPackage ../development/libraries/wvstreams { };
4105   wxGTK = wxGTK28;
4107   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
4108     inherit (gtkLibs216) gtk;
4109   };
4111   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
4112     inherit (gtkLibs) gtk;
4113   };
4115   wtk = callPackage ../development/libraries/wtk { };
4117   x264 = callPackage ../development/libraries/x264 { };
4119   xapian = callPackage ../development/libraries/xapian { };
4121   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
4122   };
4124   Xaw3d = callPackage ../development/libraries/Xaw3d { };
4126   xbase = callPackage ../development/libraries/xbase { };
4128   xineLib = callPackage ../development/libraries/xine-lib { };
4130   xautolock = callPackage ../misc/screensavers/xautolock { };
4132   xercesJava = callPackage ../development/libraries/java/xerces {
4133     ant   = apacheAntGcj;  # for bootstrap purposes
4134     javac = gcj;
4135     jvm   = gcj;
4136   };
4138   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
4139     packages = [
4140       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
4141       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
4142       xlibs.xextproto
4143     ];
4144   };
4146   xvidcore = callPackage ../development/libraries/xvidcore { };
4148   zangband = builderDefsPackage (import ../games/zangband) {
4149     inherit ncurses flex bison autoconf automake m4 coreutils;
4150   };
4152   zlib = callPackage ../development/libraries/zlib {
4153     fetchurl = fetchurlBoot;
4154   };
4156   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
4157     inherit fetchurl stdenv;
4158     static = true;
4159   }));
4161   zvbi = callPackage ../development/libraries/zvbi {
4162     pngSupport = true;
4163   };
4166   ### DEVELOPMENT / LIBRARIES / JAVA
4169   atermjava = callPackage ../development/libraries/java/aterm {
4170     stdenv = overrideInStdenv stdenv [gnumake380];
4172   };
4174   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
4176   fastjar = callPackage ../development/tools/java/fastjar { };
4178   httpunit = callPackage ../development/libraries/java/httpunit { };
4180   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
4182   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
4184   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
4185     regexp = jakartaregexp;
4186   };
4188   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
4190   javaCup = callPackage ../development/libraries/java/cup { };
4192   javasvn = callPackage ../development/libraries/java/javasvn { };
4194   jclasslib = callPackage ../development/tools/java/jclasslib {
4195     ant = apacheAnt14;
4196   };
4198   jdom = callPackage ../development/libraries/java/jdom { };
4200   jflex = callPackage ../development/libraries/java/jflex { };
4202   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
4203     stdenv = overrideInStdenv stdenv [gnumake380];
4204   };
4206   junit = callPackage ../development/libraries/java/junit { };
4208   lucene = callPackage ../development/libraries/java/lucene { };
4210   mockobjects = callPackage ../development/libraries/java/mockobjects { };
4212   saxon = callPackage ../development/libraries/java/saxon { };
4214   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
4216   sharedobjects = callPackage ../development/libraries/java/shared-objects {
4217     stdenv = overrideInStdenv stdenv [gnumake380];
4218   };
4220   smack = callPackage ../development/libraries/java/smack { };
4222   swt = callPackage ../development/libraries/java/swt { };
4224   v8 = callPackage ../development/libraries/v8 { };
4226   xalanj = xalanJava;
4227   xalanJava = callPackage ../development/libraries/java/xalanj {
4228     ant    = apacheAntGcj;  # for bootstrap purposes
4229     javac  = gcj;
4230     jvm    = gcj;
4231     xerces = xercesJava;  };
4233   zziplib = callPackage ../development/libraries/zziplib { };
4236   ### DEVELOPMENT / PERL MODULES
4238   buildPerlPackage = import ../development/perl-modules/generic perl;
4240   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
4241     inherit pkgs;
4242   });
4244   perlXMLParser = perlPackages.XMLParser;
4246   ack = perlPackages.ack;
4248   perlcritic = perlPackages.PerlCritic;
4251   ### DEVELOPMENT / PYTHON MODULES
4253   buildPythonPackage = import ../development/python-modules/generic {
4254     inherit python setuptools makeWrapper lib;
4255   };
4257   buildPython26Package = import ../development/python-modules/generic {
4258     inherit makeWrapper lib;
4259     python = python26;
4260     setuptools = setuptools.override { python = python26; };
4261   };
4263   buildPython27Package = import ../development/python-modules/generic {
4264     inherit makeWrapper lib;
4265     python = python27;
4266     setuptools = setuptools.override { python = python27; doCheck = false; };
4267   };
4269   pythonPackages = python26Packages;
4271   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
4272     inherit pkgs;
4273     python = python26;
4274     buildPythonPackage = buildPython26Package;
4275   });
4277   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
4278     inherit pkgs;
4279     python = python27;
4280     buildPythonPackage = buildPython27Package;
4281   });
4283   foursuite = callPackage ../development/python-modules/4suite { };
4285   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
4287   numeric = callPackage ../development/python-modules/numeric { };
4289   pil = callPackage ../development/python-modules/pil { };
4291   psyco = callPackage ../development/python-modules/psyco { };
4293   pycairo = callPackage ../development/python-modules/pycairo { };
4295   pycrypto = callPackage ../development/python-modules/pycrypto { };
4297   pycups = callPackage ../development/python-modules/pycups { };
4299   pygame = callPackage ../development/python-modules/pygame { };
4301   pygobject = callPackage ../development/python-modules/pygobject { };
4303   pygtk = callPackage ../development/python-modules/pygtk { };
4305   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4306     inherit (gnome) libglade;
4307   };
4309   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4310     inherit python openssl;
4311   };
4313   rhpl = callPackage ../development/python-modules/rhpl { };
4315   sip = callPackage ../development/python-modules/python-sip { };
4317   pyqt4 = callPackage ../development/python-modules/pyqt { };
4319   pyx = callPackage ../development/python-modules/pyx { };
4321   pyxml = callPackage ../development/python-modules/pyxml { };
4323   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4324     inherit python makeWrapper;
4325   };
4327   wxPython = wxPython26;
4329   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4330     wxGTK = wxGTK26;
4331   };
4333   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4335   twisted = pythonPackages.twisted;
4337   ZopeInterface = pythonPackages.zopeInterface;
4339   zope = callPackage ../development/python-modules/zope {
4340     python = python24;
4341   };
4343   ### SERVERS
4345   rdf4store = callPackage ../servers/http/4store { };
4347   apacheHttpd = callPackage ../servers/http/apache-httpd {
4348     sslSupport = true;
4349   };
4351   sabnzbd = callPackage ../servers/sabnzbd { };
4353   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4354     inherit openssl libtool;
4355   };
4357   dico = callPackage ../servers/dico { };
4359   dict = callPackage ../servers/dict { };
4361   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4362     inherit builderDefs;
4363   });
4365   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4366     inherit stdenv lib dict;
4367   };
4369   dovecot = callPackage ../servers/mail/dovecot { };
4370   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4372   ejabberd = callPackage ../servers/xmpp/ejabberd {
4373     erlang = erlangR13B ;
4374   };
4376   couchdb = callPackage ../servers/http/couchdb { };
4378   felix = callPackage ../servers/felix { };
4380   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4382   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4384   firebird = callPackage ../servers/firebird { };
4386   ghostOne = callPackage ../servers/games/ghost-one {
4387     boost = boostFull;
4388   };
4390   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4392   jboss = callPackage ../servers/http/jboss { };
4394   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4396   jetty = callPackage ../servers/http/jetty { };
4398   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4400   lighttpd = callPackage ../servers/http/lighttpd { };
4402   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4404   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
4406   mod_wsgi = callPackage ../servers/http/apache-modules/mod_wsgi { };
4408   mpd = callPackage ../servers/mpd { };
4410   myserver = callPackage ../servers/http/myserver { };
4412   nginx = builderDefsPackage (import ../servers/http/nginx) {
4413     inherit openssl pcre zlib libxml2 libxslt;
4414   };
4416   postfix = callPackage ../servers/mail/postfix { };
4418   pulseaudio = callPackage ../servers/pulseaudio {
4419     gconf = gnome.GConf;
4420   };
4422   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4424   portmap = callPackage ../servers/portmap { };
4426   monetdb = callPackage ../servers/sql/monetdb { };
4428   mysql4 = import ../servers/sql/mysql {
4429     inherit fetchurl stdenv ncurses zlib perl;
4430     ps = procps; /* !!! Linux only */
4431   };
4433   mysql5 = import ../servers/sql/mysql5 {
4434     inherit fetchurl stdenv ncurses zlib perl openssl;
4435     ps = procps; /* !!! Linux only */
4436   };
4438   mysql51 = import ../servers/sql/mysql51 {
4439     inherit fetchurl ncurses zlib perl openssl stdenv;
4440     ps = procps; /* !!! Linux only */
4441   };
4443   mysql = mysql51;
4445   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4447   nagios = callPackage ../servers/monitoring/nagios {
4448     gdSupport = true;
4449   };
4451   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4453   openfire = callPackage ../servers/xmpp/openfire { };
4455   postgresql = postgresql83;
4457   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4459   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4461   postgresql90 = callPackage ../servers/sql/postgresql/9.0.x.nix { };
4463   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4465   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4466     inherit xmpppy pythonIRClib python makeWrapper;
4467   };
4469   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4470     inherit xmpppy python makeWrapper fetchcvs;
4471   };
4473   radius = callPackage ../servers/radius { };
4475   redstore = callPackage ../servers/http/redstore { };
4477   samba = callPackage ../servers/samba { };
4479   shishi = callPackage ../servers/shishi { };
4481   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4482     inherit fetchurl stdenv perl lib composableDerivation;
4483   });
4484   squid = squids.squid3Beta; # has ipv6 support
4486   tomcat5 = callPackage ../servers/http/tomcat/5.0.nix { };
4488   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4490   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4492   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4494   virtuoso = callPackage ../servers/sql/virtuoso { };
4496   vsftpd = callPackage ../servers/ftp/vsftpd { };
4498   xinetd = callPackage ../servers/xinetd { };
4500   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4501     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4502       libxslt expat libdrm libpng zlib perl mesa
4503       xkeyboard_config dbus hal libuuid openssl gperf m4
4504       autoconf libtool xmlto asciidoc udev;
4506     # XXX: Update to newer Automake on the next big rebuild; better yet:
4507     # remove the dependency on Automake.
4508     automake = automake110x;
4510     # !!! pythonBase is used instead of python because this causes an
4511     # infinite recursion when the flag python.full is set to true.
4512     # Packages contained in the loop are python, tk, xlibs-wrapper,
4513     # libX11, libxcd (and xcb-proto).
4514     python = pythonBase;
4515   });
4517   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4519   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4521   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4522     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4523   });
4526   ### OS-SPECIFIC
4528   afuse = callPackage ../os-specific/linux/afuse { };
4530   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4532   _915resolution = callPackage ../os-specific/linux/915resolution { };
4534   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4536   acpi = callPackage ../os-specific/linux/acpi { };
4538   acpid = callPackage ../os-specific/linux/acpid { };
4540   acpitool = callPackage ../os-specific/linux/acpitool { };
4542   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4544   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4545   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4547   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4549   bluez = callPackage ../os-specific/linux/bluez { };
4551   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
4553   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4555   conky = callPackage ../os-specific/linux/conky { };
4557   cpufrequtils = (
4558     import ../os-specific/linux/cpufrequtils {
4559     inherit fetchurl stdenv libtool gettext;
4560     glibc = stdenv.gcc.libc;
4561     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4562   });
4564   cryopid = callPackage ../os-specific/linux/cryopid { };
4566   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4568   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4570   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4572   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4574   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4576   devicemapper = lvm2;
4578   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4580   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4582   dietlibc = callPackage ../os-specific/linux/dietlibc {
4583     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4584     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4585   };
4587   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4588     inherit libjpeg pkgconfig zlib directfb;
4589     inherit (xlibs) xproto;
4590   };
4592   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4593     inherit devicemapper;
4594   };
4596   libuuid =
4597     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
4598     then (utillinuxng // {
4599       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
4600         # `libblkid' fails to build on GNU/Hurd.
4601         configureFlags = args.configureFlags
4602           + " --disable-libblkid --disable-mount --disable-libmount"
4603           + " --disable-fsck --enable-static";
4604         doCheck = false;
4605         CPPFLAGS =                    # ugly hack for ugly software!
4606           lib.concatStringsSep " "
4607             (map (v: "-D${v}=4096")
4608                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
4609       });
4610     })
4611     else if stdenv.isLinux
4612     then utillinuxng
4613     else null;
4615   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4617   eject = callPackage ../os-specific/linux/eject { };
4619   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4620     inherit fontconfig gpm freetype pkgconfig ncurses;
4621   };
4623   fbtermStdenv = callPackage ../os-specific/linux/fbterm/stdenv.nix { };
4625   fuse = callPackage ../os-specific/linux/fuse { };
4627   fxload = callPackage ../os-specific/linux/fxload { };
4629   gpm = callPackage ../servers/gpm { };
4631   hal = callPackage ../os-specific/linux/hal { };
4633   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4635   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4637   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4639   hdparm = callPackage ../os-specific/linux/hdparm { };
4641   hibernate = callPackage ../os-specific/linux/hibernate { };
4643   htop = callPackage ../os-specific/linux/htop { };
4645   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4646     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4647       mig glibcCross hurdPartedCross;
4648     libuuid = libuuid.hostDrv;
4649     automake = automake111x;
4650     headersOnly = false;
4651     cross = assert crossSystem != null; crossSystem;
4652     gccCross = gccCrossStageFinal;
4653   });
4655   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4656     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4657       mig glibcCross;
4658     automake = automake111x;
4659     headersOnly = false;
4660     cross = assert crossSystem != null; crossSystem;
4662     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4663     # particular) so we first need an intermediate Hurd built with the
4664     # intermediate GCC.
4665     gccCross = gccCrossStageStatic;
4667     # This intermediate Hurd is only needed to build libpthread, which needs
4668     # libihash, and to build Parted, which needs libstore and
4669     # libshouldbeinlibc.
4670     buildTarget = "libihash libstore libshouldbeinlibc";
4671     installTarget = "libihash-install libstore-install libshouldbeinlibc-install";
4672   });
4674   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4675     automake = automake111x;
4676     headersOnly = true;
4677     gccCross = null;
4678     glibcCross = null;
4679     libuuid = null;
4680     hurdPartedCross = null;
4681   };
4683   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4684     inherit fetchgit stdenv autoconf automake libtool
4685       machHeaders hurdHeaders glibcCross;
4686     hurd = hurdCrossIntermediate;
4687     gccCross = gccCrossStageStatic;
4688     cross = assert crossSystem != null; crossSystem;
4689   });
4691   hwdata = callPackage ../os-specific/linux/hwdata { };
4693   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4695   iotop = callPackage ../os-specific/linux/iotop {
4696     python = pythonFull;
4697   };
4699   iproute = callPackage ../os-specific/linux/iproute { };
4701   iputils = (
4702     import ../os-specific/linux/iputils {
4703     inherit fetchurl stdenv;
4704     glibc = stdenv.gcc.libc;
4705     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4706   });
4708   iptables = callPackage ../os-specific/linux/iptables { };
4710   ipw2100fw = callPackage ../os-specific/linux/firmware/ipw2100 { };
4712   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4714   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4716   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4718   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4720   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4722   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4724   kbd = callPackage ../os-specific/linux/kbd { };
4726   libcgroup = callPackage ../os-specific/linux/libcg { };
4728   libnl = callPackage ../os-specific/linux/libnl { };
4730   libnl1 = callPackage ../os-specific/linux/libnl/v1.nix { };
4732   linuxHeaders = linuxHeaders_2_6_32;
4734   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4735     inherit stdenv fetchurl perl;
4736     cross = assert crossSystem != null; crossSystem;
4737   });
4739   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4740     inherit stdenv fetchurl perl;
4741     cross = assert crossSystem != null; crossSystem;
4742   });
4744   # We can choose:
4745   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4746     else if (ver == "2.6") then linuxHeaders26Cross
4747     else throw "Unknown linux kernel version";
4749   linuxHeadersCross = assert crossSystem != null;
4750     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4752   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4754   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4756   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4758   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4760   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4761     inherit fetchurl stdenv perl mktemp module_init_tools;
4762     kernelPatches =
4763       [ kernelPatches.fbcondecor_2_6_25
4764         kernelPatches.sec_perm_2_6_24
4765       ];
4766   };
4768   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4769     inherit fetchurl stdenv perl mktemp module_init_tools;
4770     kernelPatches =
4771       [ kernelPatches.fbcondecor_2_6_27
4772         kernelPatches.sec_perm_2_6_24
4773       ];
4774   };
4776   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4777     inherit fetchurl stdenv perl mktemp module_init_tools;
4778     kernelPatches =
4779       [ kernelPatches.fbcondecor_2_6_28
4780         kernelPatches.sec_perm_2_6_24
4781         kernelPatches.ext4_softlockups_2_6_28
4782       ];
4783   };
4785   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4786     inherit fetchurl stdenv perl mktemp module_init_tools;
4787     kernelPatches =
4788       [ kernelPatches.fbcondecor_2_6_29
4789         kernelPatches.sec_perm_2_6_24
4790       ];
4791   };
4793   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4794     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4795     kernelPatches = [];
4796   };
4798   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4799     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4800     kernelPatches =
4801       [ kernelPatches.fbcondecor_2_6_31
4802         kernelPatches.sec_perm_2_6_24
4803         kernelPatches.aufs2_2_6_32
4804         kernelPatches.cifs_timeout
4805         kernelPatches.no_xsave
4806         kernelPatches.dell_rfkill
4807         kernelPatches.xen_pvclock_resume
4808       ];
4809   };
4811   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
4812     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4813     kernelPatches =
4814       [ kernelPatches.fbcondecor_2_6_31
4815         kernelPatches.sec_perm_2_6_24
4816         kernelPatches.aufs2_2_6_32
4817         kernelPatches.cifs_timeout
4818         kernelPatches.no_xsave
4819         kernelPatches.dell_rfkill
4820       ];
4821   };
4823   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4824     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4825     extraConfig =
4826       ''
4827         DEBUG_KERNEL y
4828         KPROBES y # kernel probes (needs `utrace' for process probes)
4829         DEBUG_INFO y
4830         RELAY y
4831         DEBUG_FS y
4832       '';
4833     dontStrip = true;
4834     kernelPatches =
4835       [ kernelPatches.fbcondecor_2_6_31
4836         kernelPatches.sec_perm_2_6_24
4837         kernelPatches.tracehook_2_6_32
4838         kernelPatches.utrace_2_6_32
4839       ];
4840   };
4842   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4843     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4844   };
4846   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4847     features = {
4848       oldI686 = true;
4849     };
4850   };
4852   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4853     features = {
4854       ckSched = true;
4855     };
4856   };
4858   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4859     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4860     kernelPatches =
4861       [ kernelPatches.fbcondecor_2_6_33
4862         kernelPatches.sec_perm_2_6_24
4863       ];
4864   };
4866   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4867     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4868   };
4870   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4871     features = {
4872       oldI686 = true;
4873     };
4874   };
4876   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4877     features = {
4878       ckSched = true;
4879     };
4880   };
4882   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4883     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4884     kernelPatches =
4885       [ /*kernelPatches.fbcondecor_2_6_33*/
4886         kernelPatches.sec_perm_2_6_24
4887         kernelPatches.aufs2_2_6_34
4888       ];
4889   };
4891   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
4892     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4893     kernelPatches =
4894       [ #kernelPatches.fbcondecor_2_6_35
4895         kernelPatches.sec_perm_2_6_24
4896         kernelPatches.aufs2_2_6_35
4897       ] ++ lib.optional (platform.kernelArch == "arm")
4898         kernelPatches.sheevaplug_modules_2_6_35;
4899   };
4901   linux_nanonote_jz_2_6_34 = makeOverridable
4902     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.34.nix) {
4903       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
4904     };
4906   linux_nanonote_jz_2_6_35 = makeOverridable
4907     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.35.nix) {
4908       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
4909     };
4911   linux_nanonote_jz_2_6_36 = makeOverridable
4912     (import ../os-specific/linux/kernel/linux-nanonote-jz-2.6.36.nix) {
4913       inherit fetchurl fetchsvn stdenv perl mktemp module_init_tools ubootChooser;
4914       kernelPatches =
4915         [ #kernelPatches.fbcondecor_2_6_35
4916           kernelPatches.sec_perm_2_6_24
4917           #kernelPatches.aufs2_2_6_35
4918           kernelPatches.mips_restart_2_6_36
4919         ];
4920     };
4922   linux_2_6_35_oldI686 = linux_2_6_35.override {
4923       extraConfig = ''
4924           HIGHMEM64G? n
4925           XEN? n
4926       '';
4927       extraMeta = {
4928         platforms = ["i686-linux"];
4929         maintainers = [lib.maintainers.raskin];
4930       };
4931   };
4933   linux_2_6_36 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.36.nix) {
4934     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4935     kernelPatches =
4936       [ #kernelPatches.fbcondecor_2_6_35
4937         kernelPatches.sec_perm_2_6_24
4938         #kernelPatches.aufs2_2_6_35
4939         kernelPatches.mips_restart_2_6_36
4940       ];
4941   };
4943   /* Linux kernel modules are inherently tied to a specific kernel.  So
4944      rather than provide specific instances of those packages for a
4945      specific kernel, we have a function that builds those packages
4946      for a specific kernel.  This function can then be called for
4947      whatever kernel you're using. */
4949   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4951     inherit kernel;
4953     acpi_call = callPackage ../os-specific/linux/acpi-call {};
4955     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4957     aufs = callPackage ../os-specific/linux/aufs { };
4959     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4961     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4963     blcr = callPackage ../os-specific/linux/blcr {
4964       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
4965     };
4967     exmap = callPackage ../os-specific/linux/exmap {
4968       inherit (gtkLibs) gtkmm;
4969     };
4971     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
4973     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4975     iwlwifi4965ucode =
4976       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4977           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4978        then iwlwifi4965ucodeV2
4979        else iwlwifi4965ucodeV1);
4981     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4983     broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { };
4985     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4987     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
4988     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
4990     openafsClient = callPackage ../servers/openafs-client { };
4992     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
4994     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4996     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4997       inherit kernel perl;
4998     };
5000     splashutils =
5001       if kernel.features ? fbConDecor then pkgs.splashutils else null;
5003     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
5004       kernel_ext3cowpatched = kernel;
5005     };
5007     /* compiles but has to be integrated into the kernel somehow
5008       Let's have it uncommented and finish it..
5009     */
5010     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
5012     ov511 = callPackage ../os-specific/linux/ov511 {
5013       stdenv = overrideGCC stdenv gcc34;
5014     };
5016     # State Nix
5017     snix = callPackage ../tools/package-management/snix {
5019       aterm = aterm25;
5020       db4 = db45;
5022       flex = flex2533;
5023       ext3cow_kernel = kernel;    };
5025     sysprof = callPackage ../development/tools/profiling/sysprof {
5026       inherit (gnome) gtk glib pango libglade;
5027     };
5029     systemtap = callPackage ../development/tools/profiling/systemtap {
5030       linux = kernel;
5031       inherit (gnome) gtkmm libglademm;
5032     };
5034     virtualbox = callPackage ../applications/virtualization/virtualbox {
5035       stdenv = stdenv_32bit;
5036       inherit (gnome) libIDL;
5037     };
5039     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
5040   };
5042   # Build the kernel modules for the some of the kernels.
5043   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
5044   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
5045   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
5046   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
5047   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
5048   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
5049   linuxPackages_2_6_32_systemtap =
5050     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
5051   linuxPackages_2_6_32_xen =
5052     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
5053   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
5054   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
5055   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
5056   linuxPackages_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_2_6_36 pkgs.linuxPackages_2_6_36);
5057   linuxPackages_nanonote_jz_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_34 pkgs.linuxPackages_nanonote_jz_2_6_34); 
5058   linuxPackages_nanonote_jz_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_35 pkgs.linuxPackages_nanonote_jz_2_6_35); 
5059   linuxPackages_nanonote_jz_2_6_36 = recurseIntoAttrs (linuxPackagesFor linux_nanonote_jz_2_6_36 pkgs.linuxPackages_nanonote_jz_2_6_36); 
5061   # The current default kernel / kernel modules.
5062   linux = linux_2_6_32;
5063   linuxPackages = linuxPackages_2_6_32;
5065   keyutils = callPackage ../os-specific/linux/keyutils { };
5067   libselinux = callPackage ../os-specific/linux/libselinux { };
5069   libraw1394 = callPackage ../development/libraries/libraw1394 { };
5071   libsexy = callPackage ../development/libraries/libsexy {
5072     inherit (gtkLibs) glib gtk pango;
5073   };
5075   librsvg = gnome.librsvg;
5077   libsepol = callPackage ../os-specific/linux/libsepol { };
5079   libsmbios = callPackage ../os-specific/linux/libsmbios { };
5081   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
5083   lsiutil = callPackage ../os-specific/linux/lsiutil { };
5085   klibc = callPackage ../os-specific/linux/klibc {
5086     linuxHeaders = glibc.kernelHeaders;
5087   };
5089   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
5091   kvm = qemu_kvm;
5093   libcap = callPackage ../os-specific/linux/libcap { };
5095   libcap_progs = callPackage ../os-specific/linux/libcap/progs.nix { };
5097   libcap_pam = callPackage ../os-specific/linux/libcap/pam.nix { };
5099   libcap_manpages = callPackage ../os-specific/linux/libcap/man.nix { };
5101   libnscd = callPackage ../os-specific/linux/libnscd { };
5103   libnotify = callPackage ../development/libraries/libnotify { };
5105   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
5107   lvm2 = callPackage ../os-specific/linux/lvm2 { };
5109   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
5110   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
5111   # compiler for that host.
5112   mach = callPackage ../os-specific/gnu/mach {
5113     automake = automake111x;  };
5115   machHeaders = callPackage ../os-specific/gnu/mach {
5116     automake = automake111x;
5117     headersOnly = true;
5118     mig = null;
5119   };
5121   mdadm = callPackage ../os-specific/linux/mdadm { };
5123   mingetty = callPackage ../os-specific/linux/mingetty { };
5125   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
5127   mountall = callPackage ../os-specific/linux/mountall {
5128     automake = automake111x;
5129   };
5131   aggregateModules = modules:
5132     import ../os-specific/linux/module-init-tools/aggregator.nix {
5133       inherit stdenv module_init_tools modules buildEnv;
5134     };
5136   modutils = callPackage ../os-specific/linux/modutils {
5137     stdenv = overrideGCC stdenv gcc34;
5138   };
5140   nettools = callPackage ../os-specific/linux/net-tools { };
5142   neverball = callPackage ../games/neverball { };
5144   numactl = callPackage ../os-specific/linux/numactl { };
5146   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
5147     inherit fetchurl stdenv nettools openssl procps iproute;
5148   };
5150   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
5152   pam = callPackage ../os-specific/linux/pam { };
5154   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
5156   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
5157     db = db4;
5158   };
5160   pam_console = callPackage ../os-specific/linux/pam_console {
5161     libtool = libtool_1_5;
5162   };
5164   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
5166   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
5168   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
5170   pam_login = callPackage ../os-specific/linux/pam_login { };
5172   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
5174   pam_usb = callPackage ../os-specific/linux/pam_usb { };
5176   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
5177     firmware = getConfig ["pcmciaUtils" "firmware"] [];
5178     config = getConfig ["pcmciaUtils" "config"] null;
5179   };
5181   pmount = callPackage ../os-specific/linux/pmount { };
5183   pmutils = callPackage ../os-specific/linux/pm-utils { };
5185   powertop = callPackage ../os-specific/linux/powertop { };
5187   procps = callPackage ../os-specific/linux/procps { };
5189   pwdutils = callPackage ../os-specific/linux/pwdutils { };
5191   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
5193   radeontools = callPackage ../os-specific/linux/radeontools { };
5195   rfkill = callPackage ../os-specific/linux/rfkill { };
5197   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
5199   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
5201   sdparm = callPackage ../os-specific/linux/sdparm { };
5203   shadow = callPackage ../os-specific/linux/shadow { };
5205   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
5207   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
5209   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
5211   # Provided with sysfsutils.
5212   libsysfs = sysfsutils;
5213   systool = sysfsutils;
5215   sysklogd = callPackage ../os-specific/linux/sysklogd { };
5217   syslinux = callPackage ../os-specific/linux/syslinux { };
5219   sysstat = callPackage ../os-specific/linux/sysstat { };
5221   sysvinit = callPackage ../os-specific/linux/sysvinit { };
5223   sysvtools = callPackage ../os-specific/linux/sysvinit {
5224     withoutInitTools = true;
5225   };
5227   # FIXME: `tcp-wrapper' is actually not OS-specific.
5228   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
5230   trackballs = callPackage ../games/trackballs {
5231     debug = false;
5232   };
5234   tunctl = callPackage ../os-specific/linux/tunctl { };
5236   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
5237     inherit mesa tcl freeglut;
5238     inherit (xlibs) libX11 xproto;
5239   };*/
5241   ubootChooser = name : if (name == "upstream") then ubootUpstream
5242     else if (name == "sheevaplug") then ubootSheevaplug
5243     else if (name == "nanonote") then ubootNanonote
5244     else throw "Unknown uboot";
5246   ubootUpstream = callPackage ../misc/uboot { };
5248   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
5250   ubootNanonote = callPackage ../misc/uboot/nanonote.nix { };
5252   ubootGuruplug = callPackage ../misc/uboot/guruplug.nix { };
5254   uclibc = callPackage ../os-specific/linux/uclibc { };
5256   uclibcCross = import ../os-specific/linux/uclibc {
5257     inherit fetchurl stdenv libiconv;
5258     linuxHeaders = linuxHeadersCross;
5259     gccCross = gccCrossStageStatic;
5260     cross = assert crossSystem != null; crossSystem;
5261   };
5263   udev = callPackage ../os-specific/linux/udev { };
5265   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
5266     inherit fetchurl stdenv perl mktemp module_init_tools;
5267     userModeLinux = true;
5268   };
5270   umlutilities = callPackage ../os-specific/linux/uml-utilities {
5271     tunctl = true; mconsole = true;
5272   };
5274   untie = callPackage ../os-specific/linux/untie {};
5276   upstart = callPackage ../os-specific/linux/upstart { };
5278   usbutils = callPackage ../os-specific/linux/usbutils { };
5280   utillinux = utillinuxng;
5282   utillinuxCurses = utillinuxngCurses;
5284   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
5285     ncurses = null;
5286   };
5288   utillinuxngCurses = utillinuxng.override {
5289     inherit ncurses;
5290   };
5292   windows = rec {
5293     w32api = callPackage ../os-specific/windows/w32api {
5294       gccCross = gccCrossStageStatic;
5295       binutilsCross = binutilsCross;
5296     };
5298     w32api_headers = w32api.override {
5299       onlyHeaders = true;
5300     };
5302     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
5303       gccCross = gccCrossMingw2;
5304       binutilsCross = binutilsCross;
5305     };
5307     mingw_runtime_headers = mingw_runtime.override {
5308       onlyHeaders = true;
5309     };
5311     mingw_headers1 = buildEnv {
5312       name = "mingw-headers-1";
5313       paths = [ w32api_headers mingw_runtime_headers ];
5314     };
5316     mingw_headers2 = buildEnv {
5317       name = "mingw-headers-2";
5318       paths = [ w32api mingw_runtime_headers ];
5319     };
5321     mingw_headers3 = buildEnv {
5322       name = "mingw-headers-3";
5323       paths = [ w32api mingw_runtime ];
5324     };
5326     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
5327   };
5329   wesnoth = callPackage ../games/wesnoth {
5330     inherit (gtkLibs) pango;
5331     lua = lua5;
5332   };
5334   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
5336   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
5337     guiSupport = false;
5338   };
5339   # prebuild binaries:
5340   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
5342   # deprecated, but contains icon ? Does no longer build
5343   /* didn't build Sun Apr 25 20:34:18 CEST 2010
5344   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
5345   */
5347   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
5349   xmoto = builderDefsPackage (import ../games/xmoto) {
5350     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
5351       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
5352       lua5 ode libxdg_basedir;
5353   };
5355   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
5357   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
5359   ### DATA
5361   andagii = callPackage ../data/fonts/andagii {};
5363   anonymousPro = callPackage ../data/fonts/anonymous-pro {};
5365   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
5366   };
5368   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
5370   cacert = callPackage ../data/misc/cacert { };
5372   corefonts = callPackage ../data/fonts/corefonts { };
5374   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
5375     inherit fetchurl stdenv builderDefs paths;
5376     inherit (xorg) mkfontdir mkfontscale;
5377   });
5379   clearlyU = callPackage ../data/fonts/clearlyU { };
5381   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
5382     inherit (perlPackages) FontTTF;
5383   };
5385   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
5387   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
5389   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
5391   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
5393   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
5395   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
5397   docbook_xml_xslt = docbook_xsl;
5399   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
5401   docbook5_xsl = docbook_xsl_ns;
5403   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
5405   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
5407   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
5409   inconsolata = callPackage ../data/fonts/inconsolata {};
5411   junicode = callPackage ../data/fonts/junicode { };
5413   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
5415   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
5416     inherit fontforge;
5417   };
5418   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
5419   };
5421   lmodern = callPackage ../data/fonts/lmodern { };
5423   manpages = callPackage ../data/documentation/man-pages { };
5425   miscfiles = callPackage ../data/misc/miscfiles { };
5427   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
5429   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
5431   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
5433   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
5435   stdmanpages = callPackage ../data/documentation/std-man-pages { };
5437   iana_etc = callPackage ../data/misc/iana-etc { };
5439   popplerData = callPackage ../data/misc/poppler-data { };
5441   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
5443   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
5445   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
5447   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
5448     inherit fetchurl;
5449   };
5451   terminus_font = callPackage ../data/fonts/terminus-font { };
5453   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5455   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5457   unifont = callPackage ../data/fonts/unifont { };
5459   vistafonts = callPackage ../data/fonts/vista-fonts { };
5461   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5463   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5465   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5468   ### APPLICATIONS
5471   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
5473   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
5475   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
5477   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
5479   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
5481   abcde = callPackage ../applications/audio/abcde { };
5483   abiword = callPackage ../applications/office/abiword {
5484     inherit (gnome) libglade libgnomecanvas;
5485   };
5487   adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
5488     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5489   };
5491   amarok = newScope pkgs.kde4 ../applications/audio/amarok { };
5493   amarok_live = newScope pkgs.kde4 ../applications/audio/amarok/live.nix { };
5495   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5496     libstdcpp = gcc33.gcc;
5497   };
5499   ardour = callPackage ../applications/audio/ardour {
5500     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5501     inherit (gnome) libgnomecanvas;
5502   };
5504   arora = callPackage ../applications/networking/browsers/arora { };
5506   audacious = callPackage ../applications/audio/audacious { };
5508   audacity = callPackage ../applications/audio/audacity { };
5510   aumix = callPackage ../applications/audio/aumix {
5511     gtkGUI = false;
5512   };
5514   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5516   avidemux = callPackage ../applications/video/avidemux {
5517   };
5519   awesome = callPackage ../applications/window-managers/awesome {
5520     inherit (gtkLibs) glib pango;
5521     lua = lua5;
5522     cairo = cairo.override { xcbSupport = true; };
5523   };
5525   bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
5527   batik = callPackage ../applications/graphics/batik { };
5529   bazaar = callPackage ../applications/version-management/bazaar {
5530     python = pythonFull;
5531   };
5533   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5534     inherit bazaar;
5535   };
5537   beast = callPackage ../applications/audio/beast {
5538     inherit (gnome) libgnomecanvas libart_lgpl;
5539   };
5541   bibletime = newScope pkgs.kde45 ../applications/misc/bibletime {
5542     qt = qt4;
5543   } ;
5545   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5547   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5549   # commented out because it's using the new configuration style proposal which is unstable
5550   #biew = import ../applications/misc/biew {
5551   #  inherit lib stdenv fetchurl ncurses;
5552   #};
5554   # only to be able to compile blender - I couldn't compile the default openal software
5555   # Perhaps this can be removed - don't know which one openal{,soft} is better
5556   freealut_soft = callPackage ../development/libraries/freealut {
5557     openal = openalSoft;  };
5559   blender = callPackage ../applications/misc/blender/2.49.nix {
5560     python = python26Base;
5561   };
5563   blender_2_50 = lowPrio (import ../applications/misc/blender {
5564     inherit stdenv fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5565       libsamplerate libtiff ilmbase;
5566     inherit (xlibs) libXi;
5567     python = python31Base;
5568   });
5570   bmp = callPackage ../applications/audio/bmp {
5571     inherit (gnome) esound libglade;
5572   };
5574   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5576   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5578   bvi = callPackage ../applications/editors/bvi { };
5580   calibre = callPackage ../applications/misc/calibre {
5581     python = python26Full;
5582     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5583   };
5585   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5586     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5587       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5588       libtool automake autoconf;
5589     GStreamer = gst_all.gstreamer;
5590     inherit (gtkLibs) gtk glib;
5591     inherit (gnome) startupnotification GConf ;
5592     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5593   };
5594   funpidgin = carrier;
5596   cddiscid = callPackage ../applications/audio/cd-discid { };
5598   cdparanoia = cdparanoiaIII;
5600   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5602   cdrtools = callPackage ../applications/misc/cdrtools { };
5604   chatzilla =
5605     xulrunnerWrapper {
5606       launcher = "chatzilla";
5607       application = callPackage ../applications/networking/irc/chatzilla { };
5608     };
5610   chrome = callPackage ../applications/networking/browsers/chromium {
5611     inherit (gtkLibs) gtk glib pango atk;
5612     inherit (gnome) GConf;
5613     patchelf = patchelf06;
5614     libjpeg = libjpeg62;
5615   };
5617   chromeWrapper = wrapFirefox chrome "chrome" "";
5619   cinelerra = callPackage ../applications/video/cinelerra {
5620     fftw = fftwSinglePrec;
5621     inherit (gnome) esound;
5622   };
5624   cmus = callPackage ../applications/audio/cmus { };
5626   compiz = callPackage ../applications/window-managers/compiz/core.nix { };
5628   compiz_ccsm = callPackage ../applications/window-managers/compiz/ccsm.nix { };
5630   compizconfig_python = callPackage ../applications/window-managers/compiz/config-python.nix { };
5632   libcompizconfig = callPackage ../applications/window-managers/compiz/libcompizconfig.nix { };
5634   compiz_bcop = callPackage ../applications/window-managers/compiz/bcop.nix { };
5636   compiz_plugins_main = callPackage ../applications/window-managers/compiz/plugins-main.nix { };
5638   compiz_plugins_extra = callPackage ../applications/window-managers/compiz/plugins-extra.nix { };
5640   cinepaint = callPackage ../applications/graphics/cinepaint {
5641     fltk = fltk11;
5642   };
5644   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5645     inherit makeWrapper;
5646     python = pythonFull;
5647   };
5649   comical = callPackage ../applications/graphics/comical {
5650     wxGTK = wxGTK26;
5651   };
5653   conkeror = xulrunnerWrapper {
5654     launcher = "conkeror";
5655     application = callPackage ../applications/networking/browsers/conkeror { };
5656   };
5658   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5659     inherit cmake patchelf;
5660     imagemagick=imagemagick;
5661   };
5663   cvs = callPackage ../applications/version-management/cvs { };
5665   cvsps = callPackage ../applications/version-management/cvsps { };
5667   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5669   d4x = callPackage ../applications/misc/d4x { };
5671   darcs = haskellPackages.darcs;
5673   dia = callPackage ../applications/graphics/dia { };
5675   digikam = newScope pkgs.kde4 ../applications/graphics/digikam { };
5677   djvulibre = callPackage ../applications/misc/djvulibre { };
5679   djview4 = callPackage ../applications/graphics/djview { };
5681   dmenu = callPackage ../applications/misc/dmenu { };
5683   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5684     inherit libpng libtiff libjpeg imagemagick librsvg
5685       pkgconfig bzip2 zlib libtool freetype fontconfig
5686       ghostscript jasper;
5687     inherit (xlibs) libX11;
5688   };
5690   dvdauthor = callPackage ../applications/video/dvdauthor { };
5692   dwm = callPackage ../applications/window-managers/dwm {
5693     patches = getConfig [ "dwm" "patches" ] [];
5694   };
5696   eaglemode = callPackage ../applications/misc/eaglemode { };
5698   eclipse = callPackage ../applications/editors/eclipse {
5699     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5700     # working correctly.
5701     inherit (gtkLibs216) glib gtk;
5702   };
5703   eclipseLatest = eclipse.override { version = "latest"; };
5704   eclipse36 = callPackage ../applications/editors/eclipse {
5705       version = "3.6.1";
5706   };
5708   ed = callPackage ../applications/editors/ed { };
5710   elinks = callPackage ../applications/networking/browsers/elinks { };
5712   elvis = callPackage ../applications/editors/elvis { };
5714   emacs = emacs23;
5716   emacs22 = callPackage ../applications/editors/emacs-22 {
5717     /* Using cpp 4.5, we get:
5719          make[1]: Entering directory `/tmp/nix-build-dhbj8qqmqxwp3iw6sjcgafsrwlwrix1f-emacs-22.3.drv-0/emacs-22.3/lib-src'
5720          Makefile:148: *** recipe commences before first target.  Stop.
5722        Apparently, this is because `lib-src/Makefile' is generated by
5723        processing `lib-src/Makefile.in' with cpp, and the escaping rules for
5724        literal backslashes have changed.  */
5725     stdenv = overrideGCC stdenv gcc44;
5726     xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
5727     gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
5728   };
5730   emacs23 = callPackage ../applications/editors/emacs-23 {
5731     # use override to select the appropriate gui toolkit
5732     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5733     Xaw3d = null;
5734     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5735     # TODO: these packages don't build on Darwin.
5736     gconf = if stdenv.isDarwin then null else gnome.GConf;
5737     librsvg = if stdenv.isDarwin then null else librsvg;
5738   };
5740   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
5741     xawSupport = getConfig [ "emacs" "xawSupport" ] false;
5742     xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
5743     gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
5744     xftSupport = getConfig [ "emacs" "xftSupport" ] true;
5745     dbusSupport = getConfig [ "emacs" "dbusSupport" ] true;
5746   });
5748   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5749     inherit emacs;
5751     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5753     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5755     cua = callPackage ../applications/editors/emacs-modes/cua { };
5757     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5759     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5761     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5763     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5765     emms = callPackage ../applications/editors/emacs-modes/emms { };
5767     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5768       # Requires Emacs 23, for `avl-tree'.
5769     };
5771     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5773     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5775     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5777     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
5779     magit = callPackage ../applications/editors/emacs-modes/magit { };
5781     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5783     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5785     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5786     # we want it to have higher precedence.
5787     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
5789     phpMode = callPackage ../applications/editors/emacs-modes/php { };
5791     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5793     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5795     quack = callPackage ../applications/editors/emacs-modes/quack { };
5797     remember = callPackage ../applications/editors/emacs-modes/remember { };
5799     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5801     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5802   };
5804   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5805   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
5807   epdfview = callPackage ../applications/misc/epdfview { };
5809   espeak = callPackage ../applications/audio/espeak { };
5811   evopedia = callPackage ../applications/misc/evopedia { };
5813   # FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
5814   # `share/icons/hicolor/icon-theme.cache'.  Arbitrarily give this one a
5815   # higher priority.
5816   evince = hiPrio (callPackage ../applications/misc/evince {
5817     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5818       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5819   });
5821   evolution_data_server = (newScope (gnome // gtkLibs))
5822   ../servers/evolution-data-server {
5823   };
5825   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5826     fltk = fltk20;
5827   };
5829   fbpanel = callPackage ../applications/window-managers/fbpanel { };
5831   fetchmail = import ../applications/misc/fetchmail {
5832     inherit stdenv fetchurl openssl;
5833   };
5835   fossil = callPackage ../applications/version-management/fossil { };
5837   grass = import ../applications/misc/grass {
5838     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5839       libXaw libXrender;
5840     inherit getConfig composableDerivation stdenv fetchurl
5841       lib flex bison cairo fontconfig
5842       gdal zlib ncurses gdbm proj pkgconfig swig
5843       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5844       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5845     fftw = fftwSinglePrec;
5846     motif = lesstif;
5847     opendwg = libdwg;
5848     wxPython = wxPython28;
5849   };
5851   grip = callPackage ../applications/misc/grip {
5852     inherit (gnome) libgnome libgnomeui vte;
5853   };
5855   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5857   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
5859   wvdial = callPackage ../os-specific/linux/wvdial { };
5861   fbida = builderDefsPackage ../applications/graphics/fbida {
5862     inherit libjpeg libexif giflib libtiff libpng
5863       imagemagick ghostscript which curl pkgconfig
5864       freetype fontconfig;
5865   };
5867   fdupes = callPackage ../tools/misc/fdupes { };
5869   feh = callPackage ../applications/graphics/feh { };
5871   filelight = newScope pkgs.kde4 ../applications/misc/filelight { };
5873   firefox = firefox36Pkgs.firefox;
5874   firefoxWrapper = firefox36Wrapper;
5876   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5877     inherit (gtkLibs) gtk pango;
5878     inherit (gnome) libIDL;
5879   };
5881   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5883   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5884     inherit (gtkLibs) gtk pango;
5885     inherit (gnome) libIDL;
5886   };
5888   firefox40Pkgs = let p = (applyGlobalOverrides (x : {cairo = x.cairo_1_10_0;}));
5889   in p.callPackage 
5890       ../applications/networking/browsers/firefox/4.0.nix {
5891     inherit (p.gtkLibs) gtk pango;
5892     inherit (p.gnome) libIDL;
5893   };
5895   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5897   flac = callPackage ../applications/audio/flac { };
5899   flashplayer = flashplayer10;
5901   flashplayer9 = (
5902     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5903       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5904       inherit (xlibs) libX11 libXext libXrender libXt;
5905       inherit (gtkLibs) gtk glib pango atk;
5906     });
5908   flashplayer10 = (
5909     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5910       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat cairo;
5911       inherit (xlibs) libX11 libXext libXrender libXt ;
5912       inherit (gtkLibs) gtk glib pango atk;
5913       debug = getConfig ["flashplayer" "debug"] false;
5914     });
5916   flite = callPackage ../applications/misc/flite { };
5918   freemind = callPackage ../applications/misc/freemind {
5919     jdk = jdk;
5920     jre = jdk;
5921   };
5923   freepv = callPackage ../applications/graphics/freepv { };
5925   xfontsel = callPackage ../applications/misc/xfontsel { };
5926   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5928   fspot = callPackage ../applications/graphics/f-spot {
5929     inherit (gnome) libgnome libgnomeui;
5930     gtksharp = gtksharp1;
5931   };
5933   gimp = callPackage ../applications/graphics/gimp {
5934     inherit (gnome) gtk libart_lgpl;
5935   };
5937   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5938     inherit pkgs gimp;
5939   });
5941   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5942     inherit pkgs;
5943   });
5944   git = gitAndTools.git;
5945   gitFull = gitAndTools.gitFull;
5947   gnucash = callPackage ../applications/office/gnucash {
5948     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5949       libgnomeprint;
5950     gconf = gnome.GConf;
5951   };
5953   qcad = callPackage ../applications/misc/qcad { };
5955   qjackctl = callPackage ../applications/audio/qjackctl { };
5957   gkrellm = callPackage ../applications/misc/gkrellm { };
5959   gnash = callPackage ../applications/video/gnash {
5960     inherit (gnome) gtkglext;
5961     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
5962   };
5964   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5965     inherit (gnome) GConf;
5966   };
5968   gnunet = callPackage ../applications/networking/p2p/gnunet {
5969     inherit (gnome) gtk libglade;
5970     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5971   };
5973   gocr = callPackage ../applications/graphics/gocr { };
5975   gobby5 = callPackage ../applications/editors/gobby {
5976     inherit (gtkLibs) gtkmm;
5977     inherit (gnome) gtksourceview;
5978   };
5980   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5982   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5983     inherit libgphoto2 fuse pkgconfig glib;
5984   };
5986   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5988   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5990   gtkpod = callPackage ../applications/audio/gtkpod {
5991     inherit (gnome) libglade;
5992   };
5994   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5995     inherit libpng opencv;
5996   };
5998   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5999     inherit libpng pkgconfig;
6000   };
6002   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
6003     inherit (gnome) GConf;
6004     browser = firefox;
6005   };
6007   geeqie = callPackage ../applications/graphics/geeqie { };
6009   gqview = callPackage ../applications/graphics/gqview { };
6011   googleearth = callPackage_i686 ../applications/misc/googleearth { };
6013   gosmore = builderDefsPackage ../applications/misc/gosmore {
6014     inherit fetchsvn curl pkgconfig libxml2;
6015     inherit (gtkLibs) gtk;
6016   };
6018   gpsbabel = callPackage ../applications/misc/gpsbabel { };
6020   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
6022   gpsd = callPackage ../servers/gpsd {
6023     # We need a Python with NCurses bindings.
6024     python = pythonFull;
6025   };
6027   guitone = callPackage ../applications/version-management/guitone { };
6029   gv = callPackage ../applications/misc/gv { };
6031   hello = callPackage ../applications/misc/hello/ex-2 { };
6033   homebank = callPackage ../applications/office/homebank { };
6035   htmldoc = callPackage ../applications/misc/htmldoc {
6036     fltk = fltk11;
6037   };
6039   hugin = callPackage ../applications/graphics/hugin {
6040   };
6042   i810switch = callPackage ../os-specific/linux/i810switch { };
6044   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
6045     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6046       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6047       wirelesstools;
6048     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
6049     inherit (xlibs) pixman;
6050     inherit (pythonPackages) ply;
6051   });
6053   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
6054     application = "xulrunner";
6055     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
6056       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
6057       wirelesstools;
6058     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
6059     inherit (xlibs) pixman;
6060     inherit (pythonPackages) ply;
6061   });
6063   icecat3Xul =
6064     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
6065        [ icecat3 icecatXulrunner3 ])
6066     // { inherit (icecat3) gtk isFirefox3Like meta; };
6068   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
6070   icewm = callPackage ../applications/window-managers/icewm {
6071     inherit (gtkLibs) gtk;
6072   };
6074   id3v2 = callPackage ../applications/audio/id3v2 { };
6076   ikiwiki = callPackage ../applications/misc/ikiwiki {
6077     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
6078       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
6079       RpcXML XMLSimple PerlMagick;
6080     gitSupport = getConfig [ "ikiwiki" "git" ] false;
6081     monotoneSupport = getConfig [ "ikiwiki" "monotone" ] false;
6082     extraUtils = [];
6083   };
6085   imagemagick = callPackage ../applications/graphics/ImageMagick {
6086     tetex = null;
6087     librsvg = null;
6088   };
6090   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
6092   # Impressive, formerly known as "KeyJNote".
6093   impressive = callPackage ../applications/office/impressive {
6095     # XXX These are the PyOpenGL dependencies, which we need here.
6097     inherit (pythonPackages) pyopengl;  };
6099   inkscape = callPackage ../applications/graphics/inkscape {
6100     inherit (pythonPackages) lxml;
6101     inherit (gtkLibs) gtk glib glibmm gtkmm;
6102   };
6104   ion3 = callPackage ../applications/window-managers/ion-3 {
6105     lua = lua5;
6106   };
6108   iptraf = callPackage ../applications/networking/iptraf { };
6110   irssi = callPackage ../applications/networking/irc/irssi { };
6112   jackmeter = callPackage ../applications/audio/jackmeter { };
6114   jedit = callPackage ../applications/editors/jedit { };
6116   jigdo = callPackage ../applications/misc/jigdo { };
6118   joe = callPackage ../applications/editors/joe { };
6120   jwm = callPackage ../applications/window-managers/jwm { };
6122   k3b = newScope pkgs.kde4 ../applications/misc/k3b { };
6124   kadu = newScope pkgs.kde45 ../applications/networking/instant-messengers/kadu { };
6126   kbluetooth = newScope pkgs.kde4 ../tools/bluetooth/kbluetooth { };
6128   kdenlive = newScope pkgs.kde4 ../applications/video/kdenlive { };
6130   kdesvn = newScope pkgs.kde4 ../applications/version-management/kdesvn { };
6132   kdevelop = newScope pkgs.kde4 ../applications/editors/kdevelop { };
6134   keepnote = callPackage ../applications/office/keepnote {
6135     # I did not find any better way of reusing buildPythonPackage+setuptools
6136     # for a python with openssl support
6137     buildPythonPackage = assert pythonFull.sqliteSupport;
6138       import ../development/python-modules/generic {
6139         inherit makeWrapper lib;
6140         python = pythonFull;
6141         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
6142           inherit makeWrapper;
6143           python = pythonFull;
6144         };
6145       };
6146     # How could this pygtk use also pythonFull, I don't know.
6147     pygtk = pyGtkGlade;
6148   };
6150   kermit = callPackage ../tools/misc/kermit { };
6152   kino = import ../applications/video/kino {
6153     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
6154       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
6155     inherit libsamplerate ffmpeg;
6156     inherit (gnome) libglade gtk glib;
6157     inherit (xlibs) libXv libX11;
6158   };
6160   kipi_plugins = newScope pkgs.kde4 ../applications/graphics/kipi-plugins { };
6162   kmplayer = newScope pkgs.kde4 ../applications/video/kmplayer {
6163     inherit (pkgs.gtkLibs) pango;
6164   };
6166   koffice = newScope pkgs.kde4 ../applications/office/koffice { };
6168   konq_plugins = newScope pkgs.kde4 ../applications/networking/browsers/konq-plugins { };
6170   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
6172   krename = newScope pkgs.kde4 ../applications/misc/krename { };
6174   krusader = newScope pkgs.kde4 ../applications/misc/krusader { };
6176   ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
6178   lame = callPackage ../applications/audio/lame { };
6180   larswm = callPackage ../applications/window-managers/larswm { };
6182   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
6184   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
6185     fftw = fftwSinglePrec;
6186   };
6188   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
6189     inherit (gnome) libglade;
6190   };
6192   links = callPackage ../applications/networking/browsers/links { };
6194   ledger = callPackage ../applications/office/ledger { };
6196   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
6197     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
6198       gpm openssl SDL SDL_image SDL_net pkgconfig;
6199     inherit (xlibs) libX11 libXau xproto libXt;
6200   };
6202   links2Stdenv = callPackage ../applications/networking/browsers/links2/stdenv.nix { };
6204   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
6206   lynx = callPackage ../applications/networking/browsers/lynx { };
6208   lyx = callPackage ../applications/misc/lyx {
6209    qt = qt4;
6210   };
6212   matchbox = callPackage ../applications/window-managers/matchbox { };
6214   meld = callPackage ../applications/version-management/meld {
6215     inherit (gnome) scrollkeeper;
6216     pygtk = pyGtkGlade;
6217   };
6219   mercurial = callPackage ../applications/version-management/mercurial {
6220     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
6221     python = # allow cloning sources from https servers.
6222       if getConfig ["mercurial" "httpsSupport"] true
6223       then pythonFull
6224       else pythonBase;
6225   };
6227   merkaartor = callPackage ../applications/misc/merkaartor {
6228     qt = qt4;
6229   };
6231   meshlab = callPackage ../applications/graphics/meshlab {
6232     qt = qt4;
6233   };
6235   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
6236     inherit imagemagick intltool python pkgconfig webkit libxml2
6237       which gettext makeWrapper file libidn sqlite docutils libnotify
6238       vala dbus_glib;
6239     inherit (gtkLibs) gtk glib;
6240     inherit (gnome28) gtksourceview;
6241     inherit (webkit.passthru.args) libsoup;
6242     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
6243   };
6245   minicom = callPackage ../tools/misc/minicom { };
6247   mmex = callPackage ../applications/office/mmex { };
6249   monodevelop = callPackage ../applications/editors/monodevelop {
6250     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
6251     mozilla = firefox;
6252     gtksharp = gtksharp2;
6253   };
6255   monodoc = callPackage ../applications/editors/monodoc {
6256     gtksharp = gtksharp1;
6257   };
6259   monotone = callPackage ../applications/version-management/monotone {
6260     lua = lua5;
6261   };
6263   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
6264     inherit ocaml graphviz pkgconfig autoconf automake libtool;
6265     inherit (ocamlPackages) lablgtk;
6266     inherit (gnome) gtk libgnomecanvas glib;
6267   };
6269   mozilla = callPackage ../applications/networking/browsers/mozilla {
6270     inherit (gnome) libIDL;
6271   };
6273   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
6274     inherit firefox;
6275     inherit (xlibs) libX11 xproto;
6276   };
6278   mp3info = callPackage ../applications/audio/mp3info { };
6280   mpc123 = callPackage ../applications/audio/mpc123 { };
6282   mpg123 = callPackage ../applications/audio/mpg123 { };
6284   mpg321 = callPackage ../applications/audio/mpg321 { };
6286   MPlayer = callPackage ../applications/video/MPlayer { };
6288   MPlayerPlugin = browser:
6289     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
6290       inherit browser;
6291       inherit fetchurl stdenv pkgconfig gettext;
6292       inherit (xlibs) libXpm;
6293       # !!! should depend on MPlayer
6294     };
6296   mrxvt = callPackage ../applications/misc/mrxvt { };
6298   multisync = callPackage ../applications/misc/multisync {
6299     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
6300   };
6302   mutt = callPackage ../applications/networking/mailreaders/mutt { };
6304   msmtp = callPackage ../applications/networking/msmtp { };
6306   mupdf = callPackage ../applications/misc/mupdf {
6307   };
6309   mythtv = callPackage ../applications/video/mythtv {
6310     qt3 = qt3mysql;
6311   };
6313   nano = callPackage ../applications/editors/nano { };
6315   navipowm = callPackage ../applications/misc/navipowm {
6316   };
6318   navit = callPackage ../applications/misc/navit { };
6320   nedit = callPackage ../applications/editors/nedit {
6321       motif = lesstif;
6322   };
6324   netsurfBrowser = netsurf.browser;
6325   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
6327   nvi = callPackage ../applications/editors/nvi { };
6329   openbox = callPackage ../applications/window-managers/openbox { };
6331   openjump = callPackage ../applications/misc/openjump { };
6333   openoffice = callPackage ../applications/office/openoffice {
6334     inherit (perlPackages) ArchiveZip CompressZlib;
6335     inherit (gnome) GConf ORBit2;
6336     neon = neon029;
6337   };
6339   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
6340     inherit (perlPackages) ArchiveZip CompressZlib;
6341     inherit (gnome) GConf ORBit2;
6342     neon = neon029;
6343   };
6345   opera = callPackage ../applications/networking/browsers/opera {
6346     qt = qt3;
6347   };
6349   pan = callPackage ../applications/networking/newsreaders/pan {
6350     gmime = gmime_2_2;
6351     spellChecking = false;
6352   };
6354   panotools = callPackage ../applications/graphics/panotools { };
6356   pavucontrol = callPackage ../applications/audio/pavucontrol {
6357     inherit (gtkLibs) gtkmm;
6358     inherit (gnome) libglademm;
6359   };
6361   paraview = callPackage ../applications/graphics/paraview {
6362   };
6364   partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
6366   pdftk = callPackage ../tools/typesetting/pdftk { };
6368   pidgin = import ../applications/networking/instant-messengers/pidgin {
6369     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
6370       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
6371     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
6372     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
6373     GStreamer = gst_all.gstreamer;
6374     inherit (gtkLibs) gtk;
6375     inherit (gnome) startupnotification;
6376     inherit (xlibs) libXScrnSaver;
6377     inherit (gst_all) gstPluginsBase;
6378   };
6380   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
6381     imagemagick = imagemagickBig;
6382   };
6384   pidginlatexSF = builderDefsPackage
6385     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
6386     {
6387       inherit pkgconfig pidgin texLive imagemagick which;
6388       inherit (gtkLibs) glib gtk;
6389     };
6391   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
6393   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
6395   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
6397   pinfo = callPackage ../applications/misc/pinfo { };
6399   pinta = callPackage ../applications/graphics/pinta {
6400     gtksharp = gtksharp2;
6401   };
6403   pqiv = callPackage ../applications/graphics/pqiv { };
6405   # perhaps there are better apps for this task? It's how I had configured my preivous system.
6406   # And I don't want to rewrite all rules
6407   procmail = callPackage ../applications/misc/procmail { };
6409   pstree = callPackage ../applications/misc/pstree { };
6411   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
6413   qemu = callPackage ../applications/virtualization/qemu/0.13.nix { };
6415   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
6417   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
6419   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
6421   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
6423   ratpoison = callPackage ../applications/window-managers/ratpoison { };
6425   rawtherapee = callPackage ../applications/graphics/rawtherapee {
6426     inherit (gtkLibs) gtk gtkmm;
6427   };
6429   rcs = callPackage ../applications/version-management/rcs { };
6431   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
6433   RealPlayer = callPackage ../applications/video/RealPlayer {
6434       inherit (gtkLibs) glib pango atk gtk;
6435       libstdcpp5 = gcc33.gcc;
6436   };
6438   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
6440   rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
6442   recode = callPackage ../tools/text/recode { };
6444   rsync = callPackage ../applications/networking/sync/rsync {
6445     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
6446   };
6448   rxvt = callPackage ../applications/misc/rxvt { };
6450   # = urxvt
6451   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
6452     perlSupport = false;  };
6454   sakura = callPackage ../applications/misc/sakura {
6455     inherit (gnome) vte;
6456   };
6458   sbagen = callPackage ../applications/misc/sbagen { };
6460   scribus = callPackage ../applications/office/scribus {
6461     inherit (gnome) libart_lgpl;
6462     qt = qt3;
6463   };
6465   seeks = callPackage ../tools/networking/p2p/seeks { };
6467   seg3d = callPackage ../applications/graphics/seg3d {
6468     wxGTK = wxGTK28.override {
6469       unicode = false;
6470   };
6471   };
6473   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
6475   skype_linux = callPackage_i686 ../applications/networking/skype { };
6477   slim = callPackage ../applications/display-managers/slim { };
6479   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6480     inherit fetchurl stdenv stringsWithDeps lib fftw;
6481     inherit pkgconfig gmp gettext;
6482     inherit (xlibs) libXpm libX11;
6483     inherit (gtkLibs) gtk glib;
6484   };
6486   snd = sndBase.passthru.function {
6487     inherit guile mesa libtool jackaudio alsaLib;
6488   };
6490   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6491     inherit (vamp) vampSDK;
6492     qt = qt4;
6493   };
6495   sox = callPackage ../applications/misc/audio/sox { };
6497   stalonetray = callPackage ../applications/window-managers/stalonetray {};
6499   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6500     inherit texinfo;
6501     clisp = clisp_2_44_1;
6502   };
6504   subversion = callPackage ../applications/version-management/subversion/default.nix {
6505     neon = neon029;
6506     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6507     httpServer = getConfig ["subversion" "httpServer"] false;
6508     httpSupport = getConfig ["subversion" "httpSupport"] true;
6509     sslSupport = getConfig ["subversion" "sslSupport"] true;
6510     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6511     perlBindings = getConfig ["subversion" "perlBindings"] false;
6512     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6513     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6514     httpd = apacheHttpd;
6515   };
6517   svk = perlPackages.SVK;
6519   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6520     sslSupport = true;
6521     gpgSupport = true;
6522   };
6524   # linux only by now
6525   synergy = callPackage ../applications/misc/synergy { };
6527   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6528     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6529       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6530       numpy pyasn1;
6531     mock = pythonPackages.mock060;
6532   };
6534   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6535     inherit makeWrapper python;
6536   };
6538   tangogps = callPackage ../applications/misc/tangogps {
6539     gconf = gnome.GConf;
6540   };
6542   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6544   taskJuggler = callPackage ../applications/misc/taskjuggler {
6545     qt = qt3;
6547     # KDE support is not working yet.
6548     inherit (kde3) kdelibs kdebase;
6549     withKde = getConfig [ "taskJuggler" "kde" ] false;
6550   };
6552   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6554   thunderbird = thunderbird3;
6556   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6557     inherit (gnome) libIDL;
6558   };
6560   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6561     inherit (gnome) libIDL;
6562   };
6564   timidity = callPackage ../tools/misc/timidity { };
6566   tkcvs = callPackage ../applications/version-management/tkcvs { };
6568   tla = callPackage ../applications/version-management/arch { };
6570   transmission = callPackage ../applications/networking/p2p/transmission { };
6572   twinkle = callPackage ../applications/networking/twinkle {
6573     qt = qt3;
6574     boost = boostFull;
6575   };
6577   unison = callPackage ../applications/networking/sync/unison {
6578     inherit (ocamlPackages) lablgtk;
6579     enableX11 = getConfig [ "unison" "enableX11" ] true;
6580   };
6582   uucp = callPackage ../tools/misc/uucp { };
6584   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6585     inherit pkgconfig webkit makeWrapper;
6586     inherit (gtkLibs) gtk glib;
6587     inherit (xlibs) libX11 kbproto;
6588     libsoup = gnome28.libsoup_2_31;
6589   };
6591   valknut = callPackage ../applications/networking/p2p/valknut {
6592     qt = qt3;
6593   };
6595   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
6597   veracity = callPackage ../applications/version-management/veracity {};
6599   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6600   {
6601     inherit monotone cheetahTemplate highlight ctags
6602       makeWrapper graphviz which python;
6603     flup = pythonPackages.flup;
6604   };
6606   vim = callPackage ../applications/editors/vim { };
6608   vimHugeX = vim_configurable;
6610   vim_configurable = import ../applications/editors/vim/configurable.nix {
6611     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib
6612       getConfig;
6613     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
6614         libXt libXaw libXau libXmu libICE;
6615     inherit (pkgs.gtkLibs) glib gtk;
6616     features = "huge"; # one of  tiny, small, normal, big or huge
6617     # optional features by passing
6618     # python
6619     # TODO mzschemeinterp perlinterp
6620     inherit (pkgs) python perl tcl ruby /*x11*/;
6622     lua = pkgs.lua5;
6624     # optional features by flags
6625     flags = [ "X11" ]; # only flag "X11" by now
6626   };
6628   virtualgl = callPackage ../tools/X11/virtualgl { };
6630   vlc = callPackage ../applications/video/vlc {
6631     dbus = dbus.libs;
6632     alsa = alsaLib;
6633     lua = lua5;
6634   };
6636   vnstat = callPackage ../applications/networking/vnstat { };
6638   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6640   vwm = callPackage ../applications/window-managers/vwm { };
6642   w3m = callPackage ../applications/networking/browsers/w3m {
6643     graphicsSupport = false;
6644   };
6646   weechat = callPackage ../applications/networking/irc/weechat { };
6648   wings = callPackage ../applications/graphics/wings { };
6650   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6651   wmiimenu = import ../applications/window-managers/wmii31 {
6652     libixp = libixp_for_wmii;
6653     inherit fetchurl /* fetchhg */ stdenv gawk;
6654     inherit (xlibs) libX11;
6655   };
6657   wmiiSnap = import ../applications/window-managers/wmii {
6658     libixp = libixp_for_wmii;
6659     inherit fetchurl /* fetchhg */ stdenv gawk;
6660     inherit (xlibs) libX11 xextproto libXt libXext;
6661     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6662   };
6664   wordnet = callPackage ../applications/misc/wordnet { };
6666   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6667     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6668     plugins =
6669       let
6670         enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6671         enableGnash = getConfig [ browserName "enableGnash" ] false;
6672       in
6673        assert !(enableGnash && enableAdobeFlash);
6674        ([]
6675         ++ lib.optional enableGnash gnash
6676         ++ lib.optional enableAdobeFlash flashplayer
6677         # RealPlayer is disabled by default for legal reasons.
6678         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6679         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6680         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6681         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6682        );
6683   };
6685   x11vnc = callPackage ../tools/X11/x11vnc { };
6687   x2vnc = callPackage ../tools/X11/x2vnc { };
6689   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6690     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6691     inherit gsl aalib zlib libpng intltool gettext perl;
6692   };
6694   xara = callPackage ../applications/graphics/xara {
6695     wxGTK = wxGTK26;
6696   };
6698   xawtv = callPackage ../applications/video/xawtv { };
6700   xchat = callPackage ../applications/networking/irc/xchat { };
6702   xchm = callPackage ../applications/misc/xchm { };
6704   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6706   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6708   xen = callPackage ../applications/virtualization/xen {
6709     python = pythonFull;
6710   };
6712   xfig = callPackage ../applications/graphics/xfig {
6713     stdenv = overrideGCC stdenv gcc34;
6714   };
6716   xineUI = callPackage ../applications/video/xine-ui { };
6718   xmms = callPackage ../applications/audio/xmms {
6719     inherit (gnome) esound;
6720     inherit (gtkLibs1x) glib gtk;
6721     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6722   };
6724   xneur = callPackage ../applications/misc/xneur {
6725     GStreamer=gst_all.gstreamer;
6726     inherit (gtkLibs) glib gtk pango atk;
6727   };
6729   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6730     GStreamer = gst_all.gstreamer;
6731   };
6733   xournal = callPackage ../applications/graphics/xournal {
6734     inherit (gtkLibs) gtk atk pango glib;
6735     inherit (gnome) libgnomeprint libgnomeprintui
6736       libgnomecanvas;
6737   };
6739   xpdf = callPackage ../applications/misc/xpdf {
6740     motif = lesstif;
6741     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6742   };
6744   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
6745   };
6747   xpra = callPackage ../tools/X11/xpra {
6748     pyrex = pyrex095;
6749   };
6751   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6752     inherit (gnome) libglade;
6753   };
6755   xterm = callPackage ../applications/misc/xterm { };
6757   xtrace = callPackage ../tools/X11/xtrace { };
6759   xlaunch = callPackage ../tools/X11/xlaunch { };
6761   xmacro = callPackage ../tools/X11/xmacro { };
6763   xmove = callPackage ../applications/misc/xmove { };
6765   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6766     inherit (gtkLibs) gtk;
6767     inherit (xlibs) libX11 libXtst xextproto libXext
6768       inputproto libXi xproto recordproto;
6769     inherit pkgconfig;
6770   };
6772   xvidcap = callPackage ../applications/video/xvidcap {
6773     inherit (gnome) scrollkeeper libglade;
6774   };
6776   yate = callPackage ../applications/misc/yate {
6777     qt = qt4;
6778   };
6780   # doesn't compile yet - in case someone else want's to continue ..
6781   # use Trunk because qgisReleased segfaults no resize for now
6782   qgis = qgisTrunk;
6783   qgisReleased = (import ../applications/misc/qgis) {
6784     inherit composableDerivation fetchsvn stdenv flex lib
6785             ncurses fetchurl perl cmake gdal geos proj x11
6786             gsl libpng zlib bison
6787             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6788             python postgresql pyqt4;
6789     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6790     inherit (xorg) libICE;
6791     qt = qt4;
6793     # optional features
6794     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6795   };
6797   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6798     qgis = qgisReleased;
6799   };
6801   yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
6803   zapping = callPackage ../applications/video/zapping {
6804     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6805     teletextSupport = true;
6806     jpegSupport = true;
6807     pngSupport = true;
6808     recordingSupport = true;
6809   };
6811   zathura = callPackage ../applications/misc/zathura { };
6813   ### GAMES
6815   asc = callPackage ../games/asc {
6816     lua = lua5;
6817     libsigcxx = libsigcxx12;
6818   };
6820   atanks = callPackage ../games/atanks {};
6822   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6824   blackshades = callPackage ../games/blackshades { };
6826   blackshadeselite = callPackage ../games/blackshadeselite { };
6828   bsdgames = callPackage ../games/bsdgames { };
6830   castle_combat = callPackage ../games/castle-combat { };
6832   construoBase = callPackage ../games/construo {
6833     mesa = null;
6834     freeglut = null;
6835   };
6837   construo = construoBase.override {
6838     inherit mesa freeglut;
6839   };
6841   crack_attack = callPackage ../games/crack-attack { };
6843   crrcsim = callPackage ../games/crrcsim {};
6845   dwarf_fortress = callPackage_i686 ../games/dwarf-fortress { 
6846     gnomegtk = pkgsi686Linux.gnome.gtk;
6847   };
6849   eduke32 = callPackage ../games/eduke32 { };
6851   egoboo = callPackage ../games/egoboo { };
6853   exult = callPackage ../games/exult {
6854     stdenv = overrideGCC stdenv gcc42;
6855   };
6857   /*
6858   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6859     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6860       autoconf automake libtool flex bison;
6861   });
6862   */
6864   freedink = callPackage ../games/freedink { };
6866   fsg = callPackage ../games/fsg {
6867     wxGTK = wxGTK28.override { unicode = false; };
6868   };
6870   gemrb = callPackage ../games/gemrb { };
6872   gl117 = callPackage ../games/gl-117 {};
6874   gltron = callPackage ../games/gltron { };
6876   gnuchess = callPackage ../games/gnuchess { };
6878   gnugo = callPackage ../games/gnugo { };
6880   gparted = callPackage ../tools/misc/gparted {
6881     inherit (gtkLibs) gtk glib gtkmm;
6882     inherit (gnome) gnomedocutils;
6883   };
6885   hexen = callPackage ../games/hexen { };
6887   instead = callPackage ../games/instead {
6888     lua = lua5;
6889   };
6891   kobodeluxe = callPackage ../games/kobodeluxe { };
6893   lincity = builderDefsPackage (import ../games/lincity) {
6894     inherit (xlibs) libX11 libXext xextproto
6895       libICE libSM xproto;
6896     inherit libpng zlib;
6897   };
6899   micropolis = callPackage ../games/micropolis { };
6901   openttd = callPackage ../games/openttd {
6902     zlib = zlibStatic;
6903   };
6905   pioneers = callPackage ../games/pioneers { };
6907   prboom = callPackage ../games/prboom { };
6909   quake3demo = callPackage ../games/quake3/wrapper {
6910     name = "quake3-demo-${quake3game.name}";
6911     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6912     game = quake3game;
6913     paks = [quake3demodata];
6914   };
6916   quake3demodata = callPackage ../games/quake3/demo { };
6918   quake3game = callPackage ../games/quake3/game { };
6920   rogue = callPackage ../games/rogue { };
6922   sauerbraten = callPackage ../games/sauerbraten {};
6924   scummvm = callPackage ../games/scummvm { };
6926   scorched3d = callPackage ../games/scorched3d {
6927     wxGTK = wxGTK26;
6928   };
6930   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6931     inherit (gtkLibs) gtk;
6932     inherit pkgconfig fetchsvn perl;
6933     inherit (xlibs) libX11;
6934   };
6936   six = callPackage ../games/six {
6937     inherit (kde3) arts kdelibs;
6938   };
6940   # You still can override by passing more arguments.
6941   spaceOrbit = callPackage ../games/orbit {
6942     inherit (gnome) esound;  };
6944   spring = callPackage ../games/spring { };
6946   springLobby = callPackage ../games/spring/spring-lobby.nix { };
6948   stardust = callPackage ../games/stardust {};
6950   superTux = callPackage ../games/super-tux { };
6952   superTuxKart = callPackage ../games/super-tux-kart {
6953     /* With GNU Make 3.82, the build process is stuck in the `data'
6954        directory, after displaying "Making all in tracks", and `pstree'
6955        indicates that `make' doesn't launch any new process.  */
6956     stdenv = overrideInStdenv stdenv [ gnumake381 ];
6957   };
6959   tbe = callPackage ../games/the-butterfly-effect {};
6961   teeworlds = callPackage ../games/teeworlds { };
6963   tennix = callPackage ../games/tennix { };
6965   tpm = callPackage ../games/thePenguinMachine { };
6967   tremulous = callPackage ../games/tremulous { };
6969   torcs = callPackage ../games/torcs {
6970     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
6971     # i686 is the only platform I know than can do that linking without plib built with -fPIC
6972     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
6973   };
6975   ufoai = callPackage ../games/ufoai {
6976     inherit (gnome) gtksourceview gtkglext;
6977   };
6979   ultimatestunts = callPackage ../games/ultimatestunts { };
6981   ultrastardx = callPackage ../games/ultrastardx {
6982     lua = lua5;
6983   };
6985   urbanterror = callPackage ../games/urbanterror { };
6987   ut2004demo = callPackage ../games/ut2004demo { };
6989   warsow = callPackage ../games/warsow {
6990     libjpeg = libjpeg62;
6991   };
6993   warzone2100 = callPackage ../games/warzone2100 { };
6995   xboard = builderDefsPackage (import ../games/xboard) {
6996     inherit (xlibs) libX11 xproto libXt libXaw libSM
6997       libICE libXmu libXext libXpm;
6998     inherit gnuchess texinfo;
6999   };
7001   xsokoban = builderDefsPackage (import ../games/xsokoban) {
7002     inherit (xlibs) libX11 xproto libXpm libXt;
7003   };
7005   zdoom = callPackage ../games/zdoom { };
7007   zoom = callPackage ../games/zoom { };
7009   keen4 = callPackage ../games/keen4 { };
7012   ### DESKTOP ENVIRONMENTS
7015   enlightenment = callPackage ../desktops/enlightenment { };
7017   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
7019   gnome = gnome28;
7021   kde3 = recurseIntoAttrs {
7023     kdelibs = callPackage ../desktops/kde-3/kdelibs {
7024       stdenv = overrideGCC stdenv gcc43;
7025       qt = qt3;
7026     };
7028     kdebase = callPackage ../desktops/kde-3/kdebase {
7029       stdenv = overrideGCC stdenv gcc43;
7030       inherit (kde3) kdelibs;
7031       qt = qt3;
7032     };
7034     arts = callPackage ../development/libraries/arts {
7035       qt = qt3;
7036       inherit (gnome) glib;
7037       inherit (kde3) kdelibs;
7038     };
7040     k3b = callPackage ../applications/misc/k3b/1.0.nix {
7041       inherit (kde3) kdelibs;
7042     };
7044     kbasket = callPackage ../applications/misc/kbasket {
7045       stdenv = overrideGCC stdenv gcc43;
7046       inherit (kde3) kdelibs;
7047     };
7049     kile = callPackage ../applications/editors/kile {
7050       inherit (kde3) arts kdelibs;
7051       qt = qt3;
7052     };
7054     kphone = callPackage ../applications/networking/kphone {
7055       qt = qt3;
7056       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
7057     };
7059     kuickshow = callPackage ../applications/graphics/kuickshow {
7060       inherit (kde3) arts kdelibs;
7061       qt = qt3;
7062     };
7064     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
7065       inherit (kde3) kdelibs;
7066       qt = qt3;
7067     };
7069   };
7071   kde4 = kde45;
7073   kde44 = makeOverridable (import ../desktops/kde-4.4) (
7074     applyGlobalOverrides (p: { kde4 = p.kde44; qt4 = p.qt46; }));
7076   kde45 = callPackage ../desktops/kde-4.5 {
7077     callPackage =
7078       let
7079         # !!! Ugly, inefficient.
7080         pkgs_for_45 = (applyGlobalOverrides (p: { kde4 = p.kde45; }));
7081       in
7082         pkgs_for_45.newScope pkgs_for_45.kde45;
7083   };
7085   kde46 = callPackage ../desktops/kde-4.6 {
7086     callPackage =
7087       let
7088         # !!! Ugly, inefficient.
7089         pkgs_for_46 = (applyGlobalOverrides (p: { kde4 = p.kde46; }));
7090       in
7091         pkgs_for_46.newScope pkgs_for_46.kde46;
7092   };
7094   xfce = xfce4;
7096   xfce4 = recurseIntoAttrs
7097     (let callPackage = newScope pkgs.xfce4; in
7098      import ../desktops/xfce-4 { inherit callPackage pkgs; });
7101   ### SCIENCE
7103   xplanet = callPackage ../applications/science/xplanet {
7104     inherit (gtkLibs) pango;
7105   };
7108   ### SCIENCE/GEOMETRY
7110   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
7111     inherit (gnome) libglade gtk;
7112     inherit libxml2 guile perl intltool libtool pkgconfig;
7113   };
7115   tetgen = callPackage ../applications/science/geometry/tetgen { };
7118   ### SCIENCE/BIOLOGY
7120   alliance = callPackage ../applications/science/electronics/alliance {
7121     motif = lesstif;
7122   };
7124   arb = callPackage ../applications/science/biology/arb {
7125     lesstif = lesstif93;
7126     stdenv = overrideGCC stdenv gcc42;
7127   };
7129   biolib = callPackage ../development/libraries/science/biology/biolib { };
7131   emboss = callPackage ../applications/science/biology/emboss { };
7133   mrbayes = callPackage ../applications/science/biology/mrbayes { };
7135   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
7136     inherit tcsh mesa lesstif;
7137     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
7138       libXmu libXext;
7139   };
7141   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
7143   paml = callPackage ../applications/science/biology/paml { };
7145   /* slr = import ../applications/science/biology/slr {
7146     inherit fetchurl stdenv liblapack;
7147   }; */
7149   pal2nal = callPackage ../applications/science/biology/pal2nal { };
7152   ### SCIENCE/MATH
7154   atlas = callPackage ../development/libraries/science/math/atlas { };
7156   blas = callPackage ../development/libraries/science/math/blas { };
7158   content = builderDefsPackage ../applications/science/math/content {
7159     inherit mesa lesstif;
7160     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
7161       libXmu libXext libXcursor;
7162   };
7164   liblapack = callPackage ../development/libraries/science/math/liblapack { };
7167   ### SCIENCE/LOGIC
7169   coq = callPackage ../applications/science/logic/coq {
7170     inherit (ocamlPackages) findlib lablgtk;
7171     camlp5 = ocamlPackages.camlp5_transitional;
7172   };
7174   cvc3 = callPackage ../applications/science/logic/cvc3 {};
7176   eprover = callPackage ../applications/science/logic/eProver {
7177     texLive = texLiveAggregationFun {
7178       paths = [
7179         texLive texLiveExtra
7180       ];
7181   };
7182   };
7184   hol = callPackage ../applications/science/logic/hol { };
7186   hol_light = callPackage ../applications/science/logic/hol_light {
7187     inherit (ocamlPackages) findlib camlp5_transitional;
7188   };
7190   hol_light_sources = callPackage ../applications/science/logic/hol_light/sources.nix { };
7192   hol_light_checkpoint_dmtcp =
7193      recurseIntoAttrs (callPackage ../applications/science/logic/hol_light/dmtcp_checkpoint.nix { });
7195   isabelle = import ../applications/science/logic/isabelle {
7196     inherit (pkgs) stdenv fetchurl nettools perl polyml;
7197     inherit (pkgs.emacs23Packages) proofgeneral;
7198   };
7200   iprover = callPackage ../applications/science/logic/iprover {};
7202   leo2 = callPackage ../applications/science/logic/leo2 {};
7204   matita = callPackage ../applications/science/logic/matita {
7205     inherit (ocamlPackages) findlib lablgtk ocaml_expat gmetadom ocaml_http 
7206             lablgtkmathview ocaml_mysql ocaml_sqlite3 ocamlnet ulex08 camlzip ocaml_pcre;
7207     camlp5 = ocamlPackages.camlp5_transitional;
7208   };
7210   minisat = callPackage ../applications/science/logic/minisat {};
7212   opensmt = callPackage ../applications/science/logic/opensmt { };
7214   prover9 = callPackage ../applications/science/logic/prover9 { };
7216   satallax = callPackage ../applications/science/logic/satallax {};
7218   spass = callPackage ../applications/science/logic/spass {};
7220   ssreflect = callPackage ../applications/science/logic/ssreflect {
7221     camlp5 = ocamlPackages.camlp5_transitional;
7222   };
7224   ### SCIENCE / ELECTRONICS
7226   caneda = callPackage ../applications/science/electronics/caneda {
7227     # At the time of writing, it fails to build with qt47
7228     qt4 = qt46;
7229   };
7231   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
7233   kicad = callPackage ../applications/science/electronics/kicad { };
7235   ngspice = callPackage ../applications/science/electronics/ngspice { };
7237   qucs = callPackage ../applications/science/electronics/qucs {
7238     qt = qt3;
7239   };
7241   xoscope = callPackage ../applications/science/electronics/xoscope { };
7244   ### SCIENCE / MATH
7246   maxima = callPackage ../applications/science/math/maxima { };
7248   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
7250   pari = callPackage ../applications/science/math/pari {};
7252   singular = callPackage ../applications/science/math/singular {};
7254   scilab = callPackage ../applications/science/math/scilab {
7255     withXaw3d = false;
7256     withTk = true;
7257     withGtk = false;
7258     withOCaml = true;
7259     withX = true;
7260   };
7262   yacas = callPackage ../applications/science/math/yacas { };
7264   ### SCIENCE / MISC
7266   golly = callPackage ../applications/science/misc/golly { };
7268   simgrid = callPackage ../applications/science/misc/simgrid { };
7270   tulip = callPackage ../applications/science/misc/tulip {
7271     qt = qt4;
7272   };
7274   vite = callPackage ../applications/science/misc/vite {
7275     qt = qt4;
7276   };
7278   ### MISC
7280   atari800 = callPackage ../misc/emulators/atari800 { };
7282   ataripp = callPackage ../misc/emulators/atari++ { };
7284   auctex = callPackage ../misc/tex/auctex { };
7286   busybox = callPackage ../misc/busybox {
7287     enableStatic = true;
7288   };
7290   cups = callPackage ../misc/cups { };
7292   cups_pdf_filter = callPackage ../misc/cups/pdf-filter.nix { };
7294   gutenprint = callPackage ../misc/drivers/gutenprint { };
7296   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
7298   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
7300   dblatex = callPackage ../misc/tex/dblatex { };
7302   dosbox = callPackage ../misc/emulators/dosbox { };
7304   dpkg = callPackage ../tools/package-management/dpkg { };
7306   ekiga = newScope (pkgs.gtkLibs // pkgs.gnome) ../applications/networking/ekiga { };
7308   electricsheep = callPackage ../misc/screensavers/electricsheep { };
7310   foldingathome = callPackage ../misc/foldingathome { };
7312   freestyle = callPackage ../misc/freestyle {
7313     #stdenv = overrideGCC stdenv gcc41;
7314   };
7316   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
7317     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
7318       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
7319       docutils;
7320     dbus = dbus.libs;
7321     inherit (gnome) gtk libglade;
7322     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
7323       scrnsaverproto;
7324     python = pythonFull;
7325   };
7327   generator = callPackage ../misc/emulators/generator {
7328     inherit (gtkLibs1x) gtk;
7329   };
7331   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
7333   ghostscript = callPackage ../misc/ghostscript {
7334     x11Support = false;
7335     cupsSupport = getConfig [ "ghostscript" "cups" ] true;
7336   };
7338   ghostscriptX = appendToName "with-X" (ghostscript.override {
7339     x11Support = true;
7340   });
7342   gxemul = callPackage ../misc/gxemul { };
7344   hplip = callPackage ../misc/drivers/hplip {
7345     qtSupport = true;
7346   };
7348   # using the new configuration style proposal which is unstable
7349   jackaudio = callPackage ../misc/jackaudio { };
7351   keynav = callPackage ../tools/X11/keynav { };
7353   lazylist = callPackage ../misc/tex/lazylist { };
7355   lilypond = callPackage ../misc/lilypond {
7356     inherit (gtkLibs) pango;
7357   };
7359   martyr = callPackage ../development/libraries/martyr { };
7361   maven = callPackage ../misc/maven/maven-1.0.nix { };
7362   maven2 = callPackage ../misc/maven { };
7363   maven3 = callPackage ../misc/maven/3.0.nix { };
7365   mess = callPackage ../misc/emulators/mess { };
7367   nix = nixStable;
7369   nixStable = callPackage ../tools/package-management/nix {
7370     storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
7371     stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
7372   };
7374   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
7375     storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
7376     stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
7377   };
7379   # The SQLite branch.
7380   nixSqlite = lowPrio (callPackage ../tools/package-management/nix/sqlite.nix {
7381     storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
7382     stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
7383   });
7385   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
7386     import ../tools/package-management/nix/custom.nix {
7387       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
7388         autoconf libtool configureFlags enableScripts lib libxml2 boehmgc
7389         pkgconfig flex bison;
7390       aterm = aterm25;
7391       db4 = db45;
7392       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
7393     };
7395   disnix = callPackage ../tools/package-management/disnix { };
7397   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
7398     enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
7399     enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
7400     enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
7401     enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
7402     enablePostgreSQLDatabase = getConfig ["disnix" "enablePostgreSQLDatabase"] false;
7403     enableSubversionRepository = getConfig ["disnix" "enableSubversionRepository"] false;
7404     enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
7405   };
7407   disnixos = callPackage ../tools/package-management/disnix/disnixos { };
7408   
7409   DisnixWebService = callPackage ../tools/package-management/disnix/DisnixWebService { };
7411   latex2html = callPackage ../misc/tex/latex2html/default.nix {
7412     tex = tetex;
7413   };
7415   lkproof = callPackage ../misc/tex/lkproof { };
7417   mysqlWorkbench = newScope gnome ../applications/misc/mysql-workbench {
7418     lua = lua5;
7419     inherit (pythonPackages) pexpect paramiko;
7420   };
7422   pgadmin = callPackage ../applications/misc/pgadmin { };
7424   pgf = pgf2;
7426   # Keep the old PGF since some documents don't render properly with
7427   # the new one.
7428   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
7430   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
7432   polytable = callPackage ../misc/tex/polytable { };
7434   psi = newScope pkgs.kde45 ../applications/networking/instant-messengers/psi { };
7436   putty = callPackage ../applications/networking/remote/putty { };
7438   rssglx = callPackage ../misc/screensavers/rss-glx { };
7440   xlockmore = callPackage ../misc/screensavers/xlockmore {
7441     pam = if getConfig [ "xlockmore" "pam" ] true then pam else null;
7442   };
7444   saneBackends = callPackage ../misc/sane-backends {
7445     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
7446   };
7448   saneFrontends = callPackage ../misc/sane-front { };
7450   sourceAndTags = import ../misc/source-and-tags {
7451     inherit pkgs stdenv unzip lib ctags;
7452     hasktags = haskellPackages.myhasktags;
7453   };
7455   splix = callPackage ../misc/cups/drivers/splix { };
7457   tetex = callPackage ../misc/tex/tetex { };
7459   tex4ht = callPackage ../misc/tex/tex4ht { };
7461   texFunctions = import ../misc/tex/nix pkgs;
7463   texLive = builderDefsPackage (import ../misc/tex/texlive) {
7464     inherit builderDefs zlib bzip2 ncurses libpng ed
7465       gd t1lib freetype icu perl ruby expat curl
7466       libjpeg bison python fontconfig flex;
7467     inherit (xlibs) libXaw libX11 xproto libXt libXpm
7468       libXmu libXext xextproto libSM libICE;
7469     ghostscript = ghostscriptX;
7470   };
7472   /* Look in configurations/misc/raskin.nix for usage example (around revisions
7473   where TeXLive was added)
7475   (texLiveAggregationFun {
7476     paths = [texLive texLiveExtra texLiveCMSuper
7477       texLiveBeamer
7478     ];
7479   })
7481   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
7482   Just installing a few packages doesn't work.
7483   */
7484   texLiveAggregationFun =
7485     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
7487   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
7488     inherit texLive;
7489   };
7491   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
7492     inherit texLive;
7493   };
7495   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
7496     inherit texLive;
7497   };
7499   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
7500     inherit texLive;
7501   };
7503   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
7504     inherit texLiveLatexXColor texLive;
7505   };
7507   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
7508     inherit texLiveLatexXColor texLivePGF texLive;
7509   };
7511   trac = callPackage ../misc/trac {
7512     inherit (pythonPackages) pysqlite;
7513   };
7515   vice = callPackage ../misc/emulators/vice { };
7517   # Wine cannot be built in 64-bit; use a 32-bit build instead.
7518   wine = callPackage_i686 ../misc/emulators/wine { };
7520   wineWarcraft = callPackage_i686 ../misc/emulators/wine/wine-warcraft.nix { };
7522   x2x = callPackage ../tools/X11/x2x { };
7524   xosd = callPackage ../misc/xosd { };
7526   xsane = callPackage ../misc/xsane { };
7528   yafc = callPackage ../applications/networking/yafc { };
7530   myEnvFun = import ../misc/my-env {
7531     inherit substituteAll pkgs;
7532     inherit (stdenv) mkDerivation;
7533   };
7535   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
7537 }; in pkgs