Upgrade dmtcp to version 1.1.8
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blobe144bed643b11a2257149b696f82c954e70d80d2
1 /* This file composes the Nix Packages collection.  That is, it
2    imports the functions that build the various packages, and calls
3    them with appropriate arguments.  The result is a set of all the
4    packages in the Nix Packages collection for some particular
5    platform. */
8 { # The system (e.g., `i686-linux') for which to build the packages.
9   system ? builtins.currentSystem
11   # Usually, the system type uniquely determines the stdenv and thus
12   # how to build the packages.  But on some platforms we have
13   # different stdenvs, leading to different ways to build the
14   # packages.  For instance, on Windows we support both Cygwin and
15   # Mingw builds.  In both cases, `system' is `i686-cygwin'.  The
16   # attribute `stdenvType' is used to select the specific kind of
17   # stdenv to use, e.g., `i686-mingw'.
18 , stdenvType ? system
20 , # The standard environment to use.  Only used for bootstrapping.  If
21   # null, the default standard environment is used.
22   bootStdenv ? null
24   # More flags for the bootstrapping of stdenv.
25 , noSysDirs ? true
26 , gccWithCC ? true
27 , gccWithProfiling ? true
29 , # Allow a configuration attribute set to be passed in as an
30   # argument.  Otherwise, it's read from $NIXPKGS_CONFIG or
31   # ~/.nixpkgs/config.nix.
32   config ? null
34 , crossSystem ? null
35 , platform ? (import ./platforms.nix).pc
39 let config_ = config; in # rename the function argument
41 let
43   lib = import ../lib;
45   # The contents of the configuration file found at $NIXPKGS_CONFIG or
46   # $HOME/.nixpkgs/config.nix.
47   # for NIXOS (nixos-rebuild): use nixpkgs.config option
48   config =
49     let
50       toPath = builtins.toPath;
51       getEnv = x: if builtins ? getEnv then builtins.getEnv x else "";
52       pathExists = name:
53         builtins ? pathExists && builtins.pathExists (toPath name);
55       configFile = getEnv "NIXPKGS_CONFIG";
56       homeDir = getEnv "HOME";
57       configFile2 = homeDir + "/.nixpkgs/config.nix";
59       configExpr =
60         if config_ != null then config_
61         else if configFile != "" && pathExists configFile then import (toPath configFile)
62         else if homeDir != "" && pathExists configFile2 then import (toPath configFile2)
63         else {};
65     in
66       # allow both:
67       # { /* the config */ } and
68       # { pkgsOrig, pkgs, ... } : { /* the config */ }
69       if builtins.isFunction configExpr
70         then configExpr { inherit pkgs pkgsOrig; }
71         else configExpr;
73   # Return an attribute from the Nixpkgs configuration file, or
74   # a default value if the attribute doesn't exist.
75   getConfig = attrPath: default: lib.attrByPath attrPath default config;
78   # Helper functions that are exported through `pkgs'.
79   helperFunctions =
80     stdenvAdapters //
81     (import ../build-support/trivial-builders.nix { inherit (pkgs) stdenv; inherit (pkgs.xorg) lndir; });
83   stdenvAdapters =
84     import ../stdenv/adapters.nix { inherit (pkgs) dietlibc fetchurl runCommand; };
87   # Allow packages to be overriden globally via the `packageOverrides'
88   # configuration option, which must be a function that takes `pkgs'
89   # as an argument and returns a set of new or overriden packages.
90   # `__overrides' is a magic attribute that causes the attributes in
91   # its value to be added to the surrounding `rec'.  The
92   # `packageOverrides' function is called with the *original*
93   # (un-overriden) set of packages, allowing packageOverrides
94   # attributes to refer to the original attributes (e.g. "foo =
95   # ... pkgs.foo ...").
96   __overrides = (getConfig ["packageOverrides"] (pkgs: {})) pkgsOrig;
98   pkgsOrig = pkgsFun {}; # the un-overriden packages, passed to packageOverrides
99   pkgs = pkgsFun __overrides; # the overriden, final packages
102   # We use `callPackage' to be able to omit function arguments that
103   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
104   # Use `newScope' for sets of packages in `pkgs' (see e.g. `gtkLibs'
105   # below).
106   callPackage = newScope {};
108   newScope = extra: lib.callPackageWith (defaultScope // extra);
110   defaultScope = pkgs // pkgs.xorg;
113   # The package compositions.  Yes, this isn't properly indented.
114   pkgsFun = __overrides: with helperFunctions; helperFunctions // rec {
116   # Override system. This is useful to build i686 packages on x86_64-linux.
117   forceSystem = system: (import ./all-packages.nix) {
118     inherit system;
119     inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
120   };
122   # Used by wine, firefox with debugging version of Flash, ...
123   pkgsi686Linux = forceSystem "i686-linux";
125   inherit __overrides;
128   # For convenience, allow callers to get the path to Nixpkgs.
129   path = ../..;
132   ### Symbolic names.
135   x11 = xlibsWrapper;
137   # `xlibs' is the set of X library components.  This used to be the
138   # old modular X libraries project (called `xlibs') but now it's just
139   # the set of packages in the modular X.org tree (which also includes
140   # non-library components like the server, drivers, fonts, etc.).
141   xlibs = xorg // {xlibs = xlibsWrapper;};
144   ### Helper functions.
147   inherit lib config getConfig stdenvAdapters;
149   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
151   # Applying this to an attribute set will cause nix-env to look
152   # inside the set for derivations.
153   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
155   useFromStdenv = it : alternative : if ((bootStdenv != null ||
156     crossSystem == null) && builtins.hasAttr it stdenv) then
157     (builtins.getAttr it stdenv) else alternative;
159   # Return the first available value in the order: pkg.val, val, or default.
160   getPkgConfig = pkg : val : default : (getConfig [ pkg val ] (getConfig [ val ] default));
162   builderDefs = lib.composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
163     inherit stringsWithDeps lib stdenv writeScript
164       fetchurl fetchmtn fetchgit;
165   };
167   builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
169   stringsWithDeps = lib.stringsWithDeps;
172   ### STANDARD ENVIRONMENT
175   allStdenvs = import ../stdenv {
176     inherit system stdenvType;
177     allPackages = args: import ./all-packages.nix ({ inherit config; } // args);
178   };
180   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
182   stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
183     gccCrossStageFinal;
185   stdenv =
186     if bootStdenv != null then bootStdenv else
187       let changer = getConfig ["replaceStdenv"] null;
188       in if changer != null then
189         changer {
190           stdenv = stdenvCross;
191           overrideSetup = overrideSetup;
192         }
193       else if crossSystem != null then
194         stdenvCross
195       else
196         defaultStdenv;
198   forceBuildDrv = drv : if (crossSystem == null) then drv else
199     (drv // { hostDrv = drv.buildDrv; });
201   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
202   # it uses GCC compiled with multilib support; on i686-linux, it's
203   # just the plain stdenv.
204   stdenv_32bit =
205     if system == "x86_64-linux" then
206       overrideGCC stdenv gcc43_multi
207     else
208       stdenv;
211   ### BUILD SUPPORT
213   attrSetToDir = arg : import ../build-support/upstream-updater/attrset-to-dir.nix {
214     inherit writeTextFile stdenv lib;
215     theAttrSet = arg;
216   };
218   buildEnvScript = ../build-support/buildenv/builder.pl;
219   buildEnv = import ../build-support/buildenv {
220     inherit stdenv perl;
221   };
223   dotnetenv = import ../build-support/dotnetenv {
224     inherit stdenv;
225     dotnetfx = dotnetfx35;
226   };
228   vsenv = callPackage ../build-support/vsenv {
229     vs = vs90wrapper;
230   };
232   fetchbzr = import ../build-support/fetchbzr {
233     inherit stdenv bazaar;
234   };
236   fetchcvs = import ../build-support/fetchcvs {
237     inherit stdenv cvs;
238   };
240   fetchdarcs = import ../build-support/fetchdarcs {
241     inherit stdenv darcs nix;
242   };
244   fetchgit = import ../build-support/fetchgit {
245     inherit stdenv git;
246   };
248   fetchmtn = import ../build-support/fetchmtn {
249     inherit monotone stdenv;
250     cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
251     defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
252   };
254   fetchsvn = import ../build-support/fetchsvn {
255     inherit stdenv subversion openssh;
256     sshSupport = true;
257   };
259   fetchsvnssh = import ../build-support/fetchsvnssh {
260     inherit stdenv subversion openssh expect;
261     sshSupport = true;
262   };
264   fetchhg = import ../build-support/fetchhg {
265     inherit stdenv mercurial nix;
266   };
268   # `fetchurl' downloads a file from the network.  The `useFromStdenv'
269   # is there to allow stdenv to determine fetchurl.  Used during the
270   # stdenv-linux bootstrap phases to prevent lots of different curls
271   # from being built.
272   fetchurl = useFromStdenv "fetchurl"
273     (import ../build-support/fetchurl {
274       curl = curl;
275       stdenv = stdenv;
276     });
278   # fetchurlBoot is used for curl and its dependencies in order to
279   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
280   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
281   # uses the curl from the previous bootstrap phase (e.g. a statically
282   # linked curl in the case of stdenv-linux).
283   fetchurlBoot = stdenv.fetchurlBoot;
285   resolveMirrorURLs = {url}: fetchurl {
286     showURLs = true;
287     inherit url;
288   };
290   makeDesktopItem = import ../build-support/make-desktopitem {
291     inherit stdenv;
292   };
294   makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
295     inherit stdenv perl cpio contents ubootChooser;
296   };
298   makeWrapper = makeSetupHook ../build-support/make-wrapper/make-wrapper.sh;
300   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
301     import ../build-support/kernel/modules-closure.nix {
302       inherit stdenv module_init_tools kernel nukeReferences
303         rootModules allowMissing;
304     };
306   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
308   srcOnly = args: (import ../build-support/src-only) ({inherit stdenv; } // args);
310   substituteAll = import ../build-support/substitute/substitute-all.nix {
311     inherit stdenv;
312   };
314   nukeReferences = callPackage ../build-support/nuke-references/default.nix { };
316   vmTools = import ../build-support/vm/default.nix {
317     inherit pkgs;
318   };
320   releaseTools = import ../build-support/release/default.nix {
321     inherit pkgs;
322   };
324   composableDerivation = (import ../lib/composable-derivation.nix) {
325     inherit pkgs lib;
326   };
328   platforms = import ./platforms.nix;
330   ### TOOLS
332   acct = callPackage ../tools/system/acct { };
334   aefs = callPackage ../tools/filesystems/aefs { };
336   aircrackng = callPackage ../tools/networking/aircrack-ng { };
338   asymptote = builderDefsPackage ../tools/graphics/asymptote {
339     inherit freeglut ghostscriptX imagemagick fftw boehmgc
340       mesa ncurses readline gsl libsigsegv python zlib perl
341       texinfo lzma;
342     texLive = texLiveAggregationFun {
343       paths = [
344         texLive texLiveExtra
345       ];
346     };
347   };
349   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
351   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
353   amule = callPackage ../tools/networking/p2p/amule { };
355   aria = builderDefsPackage (import ../tools/networking/aria) {
356   };
358   aria2 = callPackage ../tools/networking/aria2 { };
360   at = callPackage ../tools/system/at { };
362   autogen = callPackage ../development/tools/misc/autogen { };
364   autojump = callPackage ../tools/misc/autojump { };
366   avahi =
367     let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
368     in
369       makeOverridable (import ../development/libraries/avahi) {
370         inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
371           expat gettext intltool lib;
372         inherit (gtkLibs) glib gtk;
373         inherit qt4Support;
374         qt4 = if qt4Support then qt4 else null;
375       };
377   axel = callPackage ../tools/networking/axel { };
379   azureus = callPackage ../tools/networking/p2p/azureus { };
381   bc = callPackage ../tools/misc/bc { };
383   bfr = callPackage ../tools/misc/bfr { };
385   bootchart = callPackage ../tools/system/bootchart { };
387   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
388     inherit libuuid zlib acl;
389   };
391   catdoc = callPackage ../tools/text/catdoc { };
393   eggdrop = callPackage ../tools/networking/eggdrop { };
395   mcrl = callPackage ../tools/misc/mcrl { };
397   mcrl2 = callPackage ../tools/misc/mcrl2 { };
399   syslogng = callPackage ../tools/misc/syslog-ng { };
401   asciidoc = callPackage ../tools/typesetting/asciidoc { };
403   autossh = callPackage ../tools/networking/autossh { };
405   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
406     inherit (strategoPackages016) strategoxt sdf;
407   };
409   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
410     wxPython = wxPython26;
411     gui = true;
412   };
414   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
416   blueman = callPackage ../tools/bluetooth/blueman {
417     inherit (pythonPackages) notify;
418     inherit (gtkLibs) glib gtk;
419   };
421   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
422     inherit unzip;
423   };
425   bogofilter = callPackage ../tools/misc/bogofilter {
426     bdb = db4;
427   };
429   bsdiff = callPackage ../tools/compression/bsdiff { };
431   bzip2 = useFromStdenv "bzip2"
432     (import ../tools/compression/bzip2 {
433       inherit fetchurl stdenv;
434     });
436   cabextract = callPackage ../tools/archivers/cabextract { };
438   ccid = callPackage ../tools/security/ccid { };
440   ccrypt = callPackage ../tools/security/ccrypt { };
442   cdecl = callPackage ../development/tools/cdecl { };
444   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
446   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
448   cfdg = builderDefsPackage ../tools/graphics/cfdg {
449     inherit libpng bison flex;
450   };
452   checkinstall = callPackage ../tools/package-management/checkinstall { };
454   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
455     inherit makeWrapper python;
456   };
458   chkrootkit = callPackage ../tools/security/chkrootkit { };
460   cksfv = callPackage ../tools/networking/cksfv { };
462   convertlit = callPackage ../tools/text/convertlit { };
464   unifdef = callPackage ../development/tools/misc/unifdef { };
466   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
468   cloogppl = callPackage ../development/libraries/cloog-ppl { };
470   convmv = callPackage ../tools/misc/convmv { };
472   coreutils_real = makeOverridable (if stdenv ? isDietLibC
473       then import ../tools/misc/coreutils-5
474       else import ../tools/misc/coreutils)
475     {
476       inherit fetchurl stdenv acl perl gmp;
478       # TODO: Add ACL support for cross-Linux.
479       aclSupport = (crossSystem == null) && stdenv.isLinux;
480     };
482   coreutils = useFromStdenv "coreutils" coreutils_real;
484   cpio = callPackage ../tools/archivers/cpio { };
486   cromfs = callPackage ../tools/archivers/cromfs { };
488   cron = callPackage ../tools/system/cron {  # see also fcron
489   };
491   curl = makeOverridable (import ../tools/networking/curl) {
492     fetchurl = fetchurlBoot;
493     inherit stdenv zlib openssl;
494     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
495     sslSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
496   };
498   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
500   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
501   };
503   dar = callPackage ../tools/archivers/dar { };
505   davfs2 = callPackage ../tools/filesystems/davfs2 {
506     neon = neon028;
507   };
509   dcraw = callPackage ../tools/graphics/dcraw { };
511   debootstrap = callPackage ../tools/misc/debootstrap { };
513   ddclient = callPackage ../tools/networking/ddclient { };
515   ddrescue = callPackage ../tools/system/ddrescue { };
517   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
519   dev86 = callPackage ../development/compilers/dev86 { };
521   dnsmasq = callPackage ../tools/networking/dnsmasq {
522     # TODO i18n can be installed as well, implement it?
523   };
525   dhcp = callPackage ../tools/networking/dhcp { };
527   dhcpcd = callPackage ../tools/networking/dhcpcd { };
529   diffstat = callPackage ../tools/text/diffstat { };
531   diffutils = useFromStdenv "diffutils"
532     (import ../tools/text/diffutils {
533       inherit fetchurl stdenv coreutils;
534     });
536   dirmngr = callPackage ../tools/security/dirmngr { };
538   docbook2x = callPackage ../tools/typesetting/docbook2x {
539     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
540     libiconv = if stdenv.isDarwin then libiconv else null;
541   };
543   dosfstools = callPackage ../tools/filesystems/dosfstools { };
545   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
547   dropbear = callPackage ../tools/networking/dropbear {
548     enableStatic = true;
549     zlib = zlibStatic;
550   };
552   duplicity = callPackage ../tools/backup/duplicity {
553     inherit (pythonPackages) boto;
554     gnupg = gnupg1;
555   };
557   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
559   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
561   ecryptfs = callPackage ../tools/security/ecryptfs { };
563   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
565   enscript = callPackage ../tools/text/enscript { };
567   eprover = callPackage ../tools/misc/eProver {
568     texLive = texLiveAggregationFun {
569       paths = [
570         texLive texLiveExtra
571       ];
572   };
573   };
575   ethtool = callPackage ../tools/misc/ethtool { };
577   exif = callPackage ../tools/graphics/exif { };
579   exiftags = callPackage ../tools/graphics/exiftags { };
581   expect = callPackage ../tools/misc/expect { };
583   fcron = callPackage ../tools/system/fcron {  # see also cron
584   };
586   fdisk = callPackage ../tools/system/fdisk { };
588   figlet = callPackage ../tools/misc/figlet { };
590   file = callPackage ../tools/misc/file { };
592   findutils = useFromStdenv "findutils"
593     (if stdenv.isDarwin then findutils4227 else
594       import ../tools/misc/findutils {
595         inherit fetchurl stdenv coreutils;
596       }
597     );
599   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
601   finger_bsd = callPackage ../tools/networking/bsd-finger { };
603   fontforge = callPackage ../tools/misc/fontforge { };
605   fontforgeX = callPackage ../tools/misc/fontforge {
606     withX11 = true;
607   };
609   dos2unix = callPackage ../tools/text/dos2unix { };
611   unix2dos = callPackage ../tools/text/unix2dos { };
613   gawk = useFromStdenv "gawk"
614     (import ../tools/text/gawk {
615       inherit fetchurl stdenv;
616     });
618   gdmap = callPackage ../tools/system/gdmap {
619     inherit (gtkLibs216) gtk;
620   };
622   genext2fs = callPackage ../tools/filesystems/genext2fs { };
624   gengetopt = callPackage ../development/tools/misc/gengetopt { };
626   getopt = callPackage ../tools/misc/getopt { };
628   gftp = callPackage ../tools/networking/gftp {
629     inherit (gtkLibs) gtk;
630   };
632   gifsicle = callPackage ../tools/graphics/gifsicle { };
634   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
635     inherit fuse;
636     bison = bison24;
637     flex = flex2535;
638   };
640   glxinfo = callPackage ../tools/graphics/glxinfo { };
642   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
643     inherit intltool perl gettext libusb pkgconfig;
644     inherit (gtkLibs) glib;
645   };
647   gnugrep = useFromStdenv "gnugrep"
648     (import ../tools/text/gnugrep {
649       inherit fetchurl stdenv pcre;
650     });
652   gnupatch = useFromStdenv "patch" (import ../tools/text/gnupatch {
653     inherit fetchurl stdenv ed;
654   });
656   gnupg1orig = callPackage ../tools/security/gnupg1 {
657     ideaSupport = false;
658   };
660   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
662   # use config.packageOverrides if you prefer original gnupg1
663   gnupg1 = gnupg1compat;
665   gnupg = callPackage ../tools/security/gnupg { };
667   gnuplot = callPackage ../tools/graphics/gnuplot {
668     inherit (gtkLibs) pango;
669     texLive = null;
670     lua = null;
671   };
673   gnused = useFromStdenv "gnused"
674     (import ../tools/text/gnused {
675       inherit fetchurl stdenv;
676     });
678   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
680   gnutar = useFromStdenv "gnutar"
681     (import ../tools/archivers/gnutar {
682       inherit fetchurl stdenv;
683     });
685   gnuvd = callPackage ../tools/misc/gnuvd { };
687   graphviz = callPackage ../tools/graphics/graphviz {
688     inherit (gtkLibs) pango;
689   };
691   /* Readded by Michael Raskin. There are programs in the wild
692    * that do want 2.0 but not 2.22. Please give a day's notice for
693    * objections before removal.
694    */
695   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
696     inherit (gtkLibs) pango;  };
698   groff = callPackage ../tools/text/groff {
699     ghostscript = null;
700   };
702   grub = import ../tools/misc/grub {
703     inherit fetchurl autoconf automake;
704     stdenv = stdenv_32bit;
705     buggyBiosCDSupport = (getConfig ["grub" "buggyBiosCDSupport"] true);
706   };
708   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
710   gssdp = callPackage ../development/libraries/gssdp {
711     inherit (gnome) libsoup;
712   };
714   gt5 = callPackage ../tools/system/gt5 { };
716   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella {
717     inherit (gtkLibs) glib gtk;
718   };
720   gupnp = callPackage ../development/libraries/gupnp {
721     inherit (gnome) libsoup;
722   };
724   gupnptools = callPackage ../tools/networking/gupnp-tools {
725     inherit (gtkLibs) gtk glib;
726     inherit (gnome) libsoup libglade gnomeicontheme;
727   };
729   gvpe = builderDefsPackage ../tools/networking/gvpe {
730     inherit openssl gmp nettools iproute;
731   };
733   gzip = useFromStdenv "gzip"
734     (import ../tools/compression/gzip {
735       inherit fetchurl stdenv;
736     });
738   pigz = callPackage ../tools/compression/pigz { };
740   halibut = callPackage ../tools/typesetting/halibut { };
742   hddtemp = callPackage ../tools/misc/hddtemp { };
744   hdf5 = callPackage ../tools/misc/hdf5 { };
746   hevea = callPackage ../tools/typesetting/hevea { };
748   highlight = callPackage ../tools/text/highlight { };
750   host = callPackage ../tools/networking/host { };
752   httpfs2 = callPackage ../tools/filesystems/httpfs { };
754   iasl = callPackage ../development/compilers/iasl { };
756   idutils = callPackage ../tools/misc/idutils { };
758   iftop = callPackage ../tools/networking/iftop { };
760   imapsync = callPackage ../tools/networking/imapsync {
761     inherit (perlPackages) MailIMAPClient;
762   };
764   inetutils = callPackage ../tools/networking/inetutils { };
766   iodine = callPackage ../tools/networking/iodine { };
768   iperf = callPackage ../tools/networking/iperf { };
770   ipmitool = callPackage ../tools/system/ipmitool {
771     static = false;
772   };
774   jdiskreport = callPackage ../tools/misc/jdiskreport { };
776   jfsrec = callPackage ../tools/filesystems/jfsrec { };
778   jfsutils = callPackage ../tools/filesystems/jfsutils { };
780   jhead = callPackage ../tools/graphics/jhead { };
782   jing = callPackage ../tools/text/xml/jing { };
784   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
786   jnettop = callPackage ../tools/networking/jnettop {
787     inherit (gnome) glib;
788   };
790   jwhois = callPackage ../tools/networking/jwhois { };
792   keychain = callPackage ../tools/misc/keychain { };
794   kismet = callPackage ../applications/networking/sniffers/kismet { };
796   ktorrent = kde4.ktorrent;
798   less = callPackage ../tools/misc/less { };
800   most = callPackage ../tools/misc/most { };
802   lftp = callPackage ../tools/networking/lftp { };
804   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
806   logrotate = callPackage ../tools/system/logrotate { };
808   lout = callPackage ../tools/typesetting/lout { };
810   lrzip = callPackage ../tools/compression/lrzip { };
812   lsh = callPackage ../tools/networking/lsh { };
814   lzma = xz;
816   xz = callPackage ../tools/compression/xz { };
818   lzop = callPackage ../tools/compression/lzop { };
820   mailutils = callPackage ../tools/networking/mailutils { };
822   man = callPackage ../tools/misc/man { };
824   man_db = callPackage ../tools/misc/man-db { };
826   memtest86 = callPackage ../tools/misc/memtest86 { };
828   mc = callPackage ../tools/misc/mc { };
830   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
832   mcron = callPackage ../tools/system/mcron { };
834   mdbtools = callPackage ../tools/misc/mdbtools {
835     flex = flex2535;
836   };
838   miniupnpd = callPackage ../tools/networking/miniupnpd { };
840   mjpegtools = callPackage ../tools/video/mjpegtools { };
842   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
844   mktemp = callPackage ../tools/security/mktemp { };
846   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
848   monit = builderDefsPackage ../tools/system/monit {
849     flex = flex2535;
850     bison = bison24;
851     inherit openssl;
852   };
854   mpage = callPackage ../tools/text/mpage { };
856   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
857     inherit ruby makeWrapper;
858   };
860   mssys = callPackage ../tools/misc/mssys { };
862   mtdutils = callPackage ../tools/filesystems/mtdutils { };
864   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
865     multitrandata = callPackage ../tools/text/multitran/data { };
867     libbtree = callPackage ../tools/text/multitran/libbtree { };
869     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
871     libfacet = callPackage ../tools/text/multitran/libfacet { };
873     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
875     mtutils = callPackage ../tools/text/multitran/mtutils { };
876   });
878   muscleframework = callPackage ../tools/security/muscleframework { };
880   muscletool = callPackage ../tools/security/muscletool { };
882   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
884   namazu = callPackage ../tools/text/namazu { };
886   nbd = callPackage ../tools/networking/nbd {
887     glib = gtkLibs.glib.override {
888       stdenv = makeStaticBinaries stdenv;
889   };
890   };
892   nc6 = callPackage ../tools/networking/nc6 { };
894   ncat = callPackage ../tools/networking/ncat { };
896   ncftp = callPackage ../tools/networking/ncftp { };
898   ncompress = callPackage ../tools/compression/ncompress { };
900   netcat = callPackage ../tools/networking/netcat { };
902   netkittftp = callPackage ../tools/networking/netkit/tftp { };
904   netpbm = callPackage ../tools/graphics/netpbm { };
906   netselect = callPackage ../tools/networking/netselect { };
908   nmap = callPackage ../tools/security/nmap {
909     inherit (pythonPackages) pysqlite;
910     inherit (gtkLibs) gtk;
911   };
913   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
915   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
917   ntp = callPackage ../tools/networking/ntp { };
919   nssmdns = callPackage ../tools/networking/nss-mdns { };
921   nylon = callPackage ../tools/networking/nylon { };
923   obex_data_server = callPackage ../tools/bluetooth/obex-data-server {
924     inherit (gtkLibs) glib;
925   };
927   obexd = callPackage ../tools/bluetooth/obexd { };
929   obexfs = callPackage ../tools/bluetooth/obexfs { };
931   obexftp = callPackage ../tools/bluetooth/obexftp { };
933   offlineimap = import ../tools/networking/offlineimap {
934     inherit fetchurl;
935     # I did not find any better way of reusing buildPythonPackage+setuptools
936     # for a python with openssl support
937     buildPythonPackage = assert pythonFull.opensslSupport;
938       import ../development/python-modules/generic {
939         inherit makeWrapper lib;
940         python = pythonFull;
941         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
942           inherit makeWrapper;
943           python = pythonFull;
944         };
945       };
946   };
948   opendbx = callPackage ../development/libraries/opendbx { };
950   opendkim = callPackage ../development/libraries/opendkim { };
952   openjade = callPackage ../tools/text/sgml/openjade {
953     stdenv = overrideGCC stdenv gcc33;
954   };
956   openobex = callPackage ../tools/bluetooth/openobex { };
958   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
960   opensc = opensc_0_11_7;
962   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
964   openssh = callPackage ../tools/networking/openssh {
965     hpnSupport = false;
966     etcDir = "/etc/ssh";
967   };
969   opensp = callPackage ../tools/text/sgml/opensp { };
971   openvpn = callPackage ../tools/networking/openvpn { };
973   optipng = callPackage ../tools/graphics/optipng { };
975   p7zip = callPackage ../tools/archivers/p7zip { };
977   panomatic = callPackage ../tools/graphics/panomatic { };
979   par2cmdline = callPackage ../tools/networking/par2cmdline { };
981   parallel = callPackage ../tools/misc/parallel { };
983   patchutils = callPackage ../tools/text/patchutils { };
985   parted = callPackage ../tools/misc/parted { };
987   patch = gnupatch;
989   pbzip2 = callPackage ../tools/compression/pbzip2 { };
991   pciutils = callPackage ../tools/system/pciutils { };
993   pcsclite = callPackage ../tools/security/pcsclite { };
995   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
997   pdfjam = callPackage ../tools/typesetting/pdfjam { };
999   pdfread = callPackage ../tools/graphics/pdfread { };
1001   pg_top = callPackage ../tools/misc/pg_top { };
1003   pdsh = callPackage ../tools/networking/pdsh {
1004     rsh = true;                 # enable internal rsh implementation
1005     ssh = openssh;
1006   };
1008   pfstools = callPackage ../tools/graphics/pfstools {
1009     qt = qt3;
1010   };
1012   pinentry = callPackage ../tools/misc/pinentry {
1013     inherit (gnome) glib gtk;
1014   };
1016   pius = callPackage ../tools/security/pius { };
1018   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1020   plan9port = callPackage ../tools/system/plan9port { };
1022   ploticus = callPackage ../tools/graphics/ploticus { };
1024   plotutils = callPackage ../tools/graphics/plotutils { };
1026   pngnq = callPackage ../tools/graphics/pngnq { };
1028   povray = callPackage ../tools/graphics/povray { };
1030   ppl = callPackage ../development/libraries/ppl { };
1032   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1033   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1034   };
1036   proxychains = callPackage ../tools/networking/proxychains { };
1038   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1040   psmisc = callPackage ../tools/misc/psmisc { };
1042   pstoedit = callPackage ../tools/graphics/pstoedit { };
1044   pv = callPackage ../tools/misc/pv { };
1046   pwgen = callPackage ../tools/security/pwgen { };
1048   pydb = callPackage ../tools/pydb { };
1050   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1052   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1053     inherit python pkgconfig dbus_glib;
1054     dbus = dbus.libs;
1055   };
1057   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1058     inherit python;
1059   };
1061   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1062     inherit python libsexy pkgconfig libxml2 pygtk;
1063     inherit (gtkLibs) pango gtk glib;
1064   };
1066   openmpi = callPackage ../development/libraries/openmpi { };
1068   qdu = callPackage ../tools/misc/qdu { };
1070   qhull = callPackage ../development/libraries/qhull { };
1072   qshowdiff = callPackage ../tools/text/qshowdiff {
1073     qt = qt4;
1074   };
1076   rtmpdump = callPackage ../tools/video/rtmpdump { };
1078   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1080   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1082   relfs = callPackage ../tools/filesystems/relfs {
1083     inherit (gnome) gnomevfs GConf;
1084   };
1086   remind = callPackage ../tools/misc/remind { };
1088   replace = callPackage ../tools/text/replace { };
1090   /*
1091   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1092     python=python;  };
1093   */
1095   rsnapshot = callPackage ../tools/backup/rsnapshot {
1097     # For the `logger' command, we can use either `utillinux' or
1098     # GNU Inetutils.  The latter is more portable.
1099     logger = inetutils;
1100   };
1102   rlwrap = callPackage ../tools/misc/rlwrap { };
1104   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1105     inherit ppp;
1106   };
1108   rpm = callPackage ../tools/package-management/rpm {
1109     db4 = db45;
1110   };
1112   rrdtool = callPackage ../tools/misc/rrdtool {
1113     inherit (gtkLibs) pango;
1114   };
1116   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1118   rubber = callPackage ../tools/typesetting/rubber { };
1120   rxp = callPackage ../tools/text/xml/rxp { };
1122   rzip = callPackage ../tools/compression/rzip { };
1124   s3backer = callPackage ../tools/filesystems/s3backer { };
1126   s3sync = callPackage ../tools/networking/s3sync { };
1128   sablotron = callPackage ../tools/text/xml/sablotron { };
1130   screen = callPackage ../tools/misc/screen { };
1132   scrot = callPackage ../tools/graphics/scrot { };
1134   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1136   setserial = builderDefsPackage (import ../tools/system/setserial) {
1137     inherit groff;
1138   };
1140   sharutils = callPackage ../tools/archivers/sharutils { };
1142   shebangfix = callPackage ../tools/misc/shebangfix { };
1144   slimrat = callPackage ../tools/networking/slimrat {
1145     inherit (perlPackages) WWWMechanize LWP;
1146   };
1148   slsnif = callPackage ../tools/misc/slsnif { };
1150   smartmontools = callPackage ../tools/system/smartmontools { };
1152   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1154   socat = callPackage ../tools/networking/socat { };
1156   sourceHighlight = callPackage ../tools/text/source-highlight { };
1158   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1159     inherit fetchurl stdenv openssl;
1160   };
1162   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1164   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1166   sudo = callPackage ../tools/security/sudo { };
1168   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1169   };
1171   ssmtp = callPackage ../tools/networking/ssmtp {
1172     tlsSupport = true;
1173   };
1175   ssss = callPackage ../tools/security/ssss { };
1177   stun = callPackage ../tools/networking/stun { };
1179   stunnel = callPackage ../tools/networking/stunnel { };
1181   su = shadow;
1183   swec = callPackage ../tools/networking/swec {
1184     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1185   };
1187   svnfs = callPackage ../tools/filesystems/svnfs { };
1189   system_config_printer = callPackage ../tools/misc/system-config-printer { };
1191   sitecopy = callPackage ../tools/networking/sitecopy {
1192     neon = neon026;
1193   };
1195   privoxy = callPackage ../tools/networking/privoxy {
1196     autoconf = autoconf213;
1197   };
1199   tcpdump = callPackage ../tools/networking/tcpdump { };
1201   tcng = callPackage ../tools/networking/tcng {
1202     kernel = linux_2_6_28;
1203   };
1205   telnet = callPackage ../tools/networking/telnet { };
1207   texmacs = callPackage ../applications/office/texmacs { };
1209   tor = callPackage ../tools/security/tor { };
1211   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1213   ucl = callPackage ../development/libraries/ucl { };
1215   ufraw = callPackage ../applications/graphics/ufraw {
1216     inherit (gnome) gtk;
1217   };
1219   upx = callPackage ../tools/compression/upx { };
1221   vbetool = builderDefsPackage ../tools/system/vbetool {
1222     inherit pciutils libx86 zlib;
1223   };
1225   viking = callPackage ../applications/misc/viking {
1226     inherit (gtkLibs) gtk;
1227   };
1229   vncrec = builderDefsPackage ../tools/video/vncrec {
1230     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1231       libXmu libXaw libXext xextproto libSM libICE libXpm
1232       libXp;
1233   };
1235   vpnc = callPackage ../tools/networking/vpnc { };
1237   vtun = callPackage ../tools/networking/vtun { };
1239   testdisk = callPackage ../tools/misc/testdisk { };
1241   htmlTidy = callPackage ../tools/text/html-tidy { };
1243   tigervnc = callPackage ../tools/admin/tigervnc {
1244     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1245       xorg.fontbhlucidatypewriter75dpi ];
1246   };
1248   tightvnc = callPackage ../tools/admin/tightvnc {
1249     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1250       xorg.fontbhlucidatypewriter75dpi ];
1251   };
1253   time = callPackage ../tools/misc/time { };
1255   tm = callPackage ../tools/system/tm { };
1257   trang = callPackage ../tools/text/xml/trang { };
1259   tre = callPackage ../development/libraries/tre { };
1261   ts = callPackage ../tools/system/ts { };
1263   transfig = callPackage ../tools/graphics/transfig { };
1265   truecrypt = callPackage ../applications/misc/truecrypt {
1266     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1267   };
1269   ttmkfdir = callPackage ../tools/misc/ttmkfdir {
1270     flex = flex2534;
1271   };
1273   unbound = callPackage ../tools/networking/unbound { };
1275   units = callPackage ../tools/misc/units { };
1277   unrar = callPackage ../tools/archivers/unrar { };
1279   unshield = callPackage ../tools/archivers/unshield { };
1281   unzip = unzip552;
1283   # TODO: remove in the next stdenv update.
1284   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1286   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1288   uptimed = callPackage ../tools/system/uptimed { };
1290   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1291     tomcat = tomcat6;
1292   };
1294   wdfs = callPackage ../tools/filesystems/wdfs {
1295     neon = neon026;
1296   };
1298   wdiff = callPackage ../tools/text/wdiff { };
1300   webalizer = callPackage ../tools/networking/webalizer { };
1302   webdruid = builderDefsPackage ../tools/admin/webdruid {
1303     inherit zlib libpng freetype gd which
1304       libxml2 geoip;
1305   };
1307   wget = callPackage ../tools/networking/wget {
1308     inherit (perlPackages) LWP;
1309   };
1311   which = callPackage ../tools/system/which { };
1313   wicd = callPackage ../tools/networking/wicd { };
1315   wv = callPackage ../tools/misc/wv { };
1317   wv2 = callPackage ../tools/misc/wv2 { };
1319   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1321   xbursttools = import ../tools/misc/xburst-tools {
1322     inherit stdenv fetchgit autoconf automake libusb confuse;
1323     # It needs a cross compiler for mipsel to build the firmware it will
1324     # load into the Ben Nanonote
1325     gccCross = let
1326         pkgsCross = (import ./all-packages.nix) {
1327           inherit system;
1328           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1329           # Ben Nanonote system
1330           crossSystem = {
1331             config = "mipsel-unknown-linux";
1332             bigEndian = true;
1333             arch = "mips";
1334             float = "soft";
1335             withTLS = true;
1336             libc = "uclibc";
1337             platform = {
1338               name = "ben_nanonote";
1339               kernelMajor = "2.6";
1340               # It's not a bcm47xx processor, but for the headers this should work
1341               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1342               kernelArch = "mips";
1343             };
1344             gcc = {
1345               arch = "mips32";
1346             };
1347           };
1348         };
1349       in
1350         pkgsCross.gccCrossStageStatic;
1351   };
1353   xclip = callPackage ../tools/misc/xclip { };
1355   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1357   xmlroff = callPackage ../tools/typesetting/xmlroff {
1358     inherit (gtkLibs) glib pango gtk;
1359     inherit (gnome) libgnomeprint;
1360   };
1362   xmlto = callPackage ../tools/typesetting/xmlto { };
1364   xmltv = callPackage ../tools/misc/xmltv { };
1366   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1367     inherit python setuptools;
1368   };
1370   xpf = callPackage ../tools/text/xml/xpf {
1371     libxml2 = libxml2Python;
1372   };
1374   xsel = callPackage ../tools/misc/xsel { };
1376   zdelta = callPackage ../tools/compression/zdelta { };
1378   zile = callPackage ../applications/editors/zile { };
1380   zip = callPackage ../tools/archivers/zip { };
1382   zsync = callPackage ../tools/compression/zsync { };
1384   ### SHELLS
1387   bash = lowPrio (useFromStdenv "bash" bashReal);
1389   bashReal = callPackage ../shells/bash {
1390     texinfo = null;
1391   };
1393   bashInteractive = appendToName "interactive" (bashReal.override {
1394     inherit readline texinfo;
1395     interactive = true;
1396   });
1398   dash = callPackage ../shells/dash { };
1400   tcsh = callPackage ../shells/tcsh { };
1402   rush = callPackage ../shells/rush { };
1404   zsh = callPackage ../shells/zsh { };
1407   ### DEVELOPMENT / COMPILERS
1410   abc =
1411     abcPatchable [];
1413   abcPatchable = patches :
1414     import ../development/compilers/abc/default.nix {
1415       inherit stdenv fetchurl patches jre apacheAnt;
1416       javaCup = callPackage ../development/libraries/java/cup { };
1417     };
1419   aspectj = callPackage ../development/compilers/aspectj { };
1421   bigloo = callPackage ../development/compilers/bigloo { };
1423   ccl = builderDefsPackage ../development/compilers/ccl {};
1425   clang = llvm.override {
1426     buildClang = true;
1427   };
1429   dylan = callPackage ../development/compilers/gwydion-dylan {
1430     dylan =
1431       import ../development/compilers/gwydion-dylan/binary.nix {
1432         inherit fetchurl stdenv;
1433   };
1434   };
1436   ecl = builderDefsPackage ../development/compilers/ecl {
1437     inherit gmp mpfr;
1438   };
1440   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1442   fpc = callPackage ../development/compilers/fpc { };
1444   gambit = callPackage ../development/compilers/gambit { };
1446   gcc = gcc44;
1448   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1449     inherit fetchurl stdenv noSysDirs;
1450   });
1452   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1453     inherit fetchurl stdenv noSysDirs;
1454   });
1456   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1457     inherit fetchurl stdenv noSysDirs;
1458   });
1460   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1461   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1462   # expects a single digit after the dot.  As a workaround, we feed
1463   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1465   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1466     inherit fetchurl stdenv noSysDirs;
1467     texinfo = texinfo49;
1468     profiledCompiler = true;
1469   });
1471   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1472     inherit fetchurl stdenv noSysDirs;
1473     texinfo = texinfo49;
1474     profiledCompiler = false;
1475   });
1477   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1478     inherit fetchurl stdenv noSysDirs;
1479     profiledCompiler = false;
1480   });
1482   gcc44 = useFromStdenv "gcc" gcc44_real;
1484   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1485     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1486     profiledCompiler = true;
1487   }));
1489   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1490     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1491     binutilsCross = binutilsCross;
1492     libcCross = libcCross;
1493     profiledCompiler = false;
1494     enableMultilib = true;
1495     crossStageStatic = false;
1496     cross = assert crossSystem != null; crossSystem;
1497   };
1499   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1500     (makeOverridable (import ../development/compilers/gcc-4.4) {
1501       inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
1502           gettext which;
1503       binutilsCross = binutilsCross;
1504       libcCross = libcCross;
1505       profiledCompiler = false;
1506       enableMultilib = false;
1507       crossStageStatic = false;
1508       cross = assert crossSystem != null; crossSystem;
1509     });
1511   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1512     (makeOverridable (import ../development/compilers/gcc-4.5) {
1513       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1514         ppl cloogppl gettext which noSysDirs;
1515       binutilsCross = binutilsCross;
1516       libcCross = libcCross;
1517       profiledCompiler = false;
1518       enableMultilib = false;
1519       crossStageStatic = false;
1520       cross = assert crossSystem != null; crossSystem;
1521     });
1523   gcc_realCross = gcc45_realCross;
1525   gccCrossStageStatic = let
1526       isMingw = (stdenv.cross.libc == "msvcrt");
1527       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1528     in
1529       wrapGCCCross {
1530       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1531         gcc_realCross.override {
1532           crossStageStatic = true;
1533           langCC = false;
1534           libcCross = libcCross1;
1535           enableShared = false;
1536         }));
1537       libc = libcCross1;
1538       binutils = binutilsCross;
1539       cross = assert crossSystem != null; crossSystem;
1540   };
1542   # Only needed for mingw builds
1543   gccCrossMingw2 = wrapGCCCross {
1544     gcc = gccCrossStageStatic.gcc;
1545     libc = windows.mingw_headers2;
1546     binutils = binutilsCross;
1547     cross = assert crossSystem != null; crossSystem;
1548   };
1550   gccCrossStageFinal = wrapGCCCross {
1551     gcc = forceBuildDrv (gcc_realCross.override {
1552       libpthreadCross =
1553         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1554         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1555         then hurdLibpthreadCross
1556         else null;
1557      });
1558     libc = libcCross;
1559     binutils = binutilsCross;
1560     cross = assert crossSystem != null; crossSystem;
1561   };
1563   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1564     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1565     profiledCompiler = false;
1566     enableMultilib = true;
1567   }));
1569   gcc44_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1570     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1571       gettext which noSysDirs;
1572     profiledCompiler = true;
1573   }));
1575   gcc45 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1576     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1577       ppl cloogppl
1578       gettext which noSysDirs;
1579     profiledCompiler = true;
1580   }));
1582   gccApple =
1583     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1584       inherit fetchurl stdenv noSysDirs;
1585       profiledCompiler = true;
1586     }) ;
1588   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1589     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1590     texinfo = texinfo49;
1591   });
1593   gfortran = gfortran43;
1595   gfortran40 = wrapGCC (gcc40.gcc.override {
1596     langFortran = true;
1597     langCC = false;
1598     inherit gmp mpfr;
1599   });
1601   gfortran41 = wrapGCC (gcc41.gcc.override {
1602     name = "gfortran";
1603     langFortran = true;
1604     langCC = false;
1605     langC = false;
1606     inherit gmp mpfr;
1607   });
1609   gfortran42 = wrapGCC (gcc42.gcc.override {
1610     name = "gfortran";
1611     langFortran = true;
1612     langCC = false;
1613     langC = false;
1614     inherit gmp mpfr;
1615   });
1617   gfortran43 = wrapGCC (gcc43.gcc.override {
1618     name = "gfortran";
1619     langFortran = true;
1620     langCC = false;
1621     langC = false;
1622     profiledCompiler = false;
1623   });
1625   gfortran44 = wrapGCC (gcc44_real.gcc.override {
1626     name = "gfortran";
1627     langFortran = true;
1628     langCC = false;
1629     langC = false;
1630     profiledCompiler = false;
1631   });
1633   gcj = gcj45;
1635   gcj44 = wrapGCC (gcc44_real.gcc.override {
1636     name = "gcj";
1637     langJava = true;
1638     langFortran = false;
1639     langCC = true;
1640     langC = false;
1641     profiledCompiler = false;
1642     inherit zip unzip zlib boehmgc gettext pkgconfig;
1643     inherit (gtkLibs) gtk;
1644     inherit (gnome) libart_lgpl;
1645     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1646       libXrandr xproto renderproto xextproto inputproto randrproto;
1647   });
1649   gcj45 = wrapGCC (gcc45.gcc.override {
1650     name = "gcj";
1651     langJava = true;
1652     langFortran = false;
1653     langCC = true;
1654     langC = false;
1655     profiledCompiler = false;
1656     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1657     inherit (gtkLibs) gtk;
1658     inherit (gnome) libart_lgpl;
1659     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1660       libXrandr xproto renderproto xextproto inputproto randrproto;
1661   });
1663   gnat = gnat44;
1665   gnat44 = wrapGCC (gcc44_real.gcc.override {
1666     name = "gnat";
1667     langCC = false;
1668     langC = true;
1669     langAda = true;
1670     profiledCompiler = false;
1671     inherit gnatboot;
1672     # We can't use the ppl stuff, because we would have
1673     # libstdc++ problems.
1674     cloogppl = null;
1675     ppl = null;
1676   });
1678   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1679     inherit fetchurl stdenv;
1680   });
1682   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1683     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1684     name = "ghdl";
1685     langVhdl = true;
1686     langCC = false;
1687     langC = false;
1688     profiledCompiler = false;
1689     enableMultilib = false;
1690   });
1692   # Not officially supported version for ghdl
1693   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1694     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1695       ppl cloogppl;
1696     name = "ghdl";
1697     langVhdl = true;
1698     langCC = false;
1699     langC = false;
1700     profiledCompiler = false;
1701     enableMultilib = false;
1702   }));
1704   gcl = builderDefsPackage ../development/compilers/gcl {
1705     inherit mpfr m4 binutils fetchcvs emacs zlib which
1706       gmp texinfo;
1707     inherit (xlibs) libX11 xproto inputproto libXi
1708       libXext xextproto libXt libXaw libXmu;
1709     inherit stdenv;
1710     texLive = texLiveAggregationFun {
1711       paths = [
1712         texLive texLiveExtra
1713       ];
1714     };
1715   };
1717   # GHC
1719   # GHC binaries are around for bootstrapping purposes
1721   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1722   # need to reenable an old binary such as this.
1723   /*
1724   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1725     inherit fetchurl stdenv ncurses gmp;
1726     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1727     perl = perl58;
1728   });
1729   */
1731   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1732     inherit fetchurl stdenv perl ncurses gmp libedit;
1733   });
1735   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1736     inherit fetchurl stdenv perl ncurses gmp libedit;
1737   });
1739   # For several compiler versions, we export a large set of Haskell-related
1740   # packages.
1742   # This should point to the current default version.
1743   haskellPackages = haskellPackages_ghc6123;
1745   # Old versions of ghc that currently don't build because the binary
1746   # is broken.
1747   /*
1748   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1749     ghc = import ../development/compilers/ghc/6.4.2.nix {
1750       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1751       ghc = ghc642Binary;  };
1752   };
1754   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1755     ghc = import ../development/compilers/ghc/6.6.1.nix {
1756       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1757       ghc = ghc642Binary;
1758   };
1759   };
1761   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1762     ghc = import ../development/compilers/ghc/6.8.2.nix {
1763       inherit fetchurl stdenv perl gmp ncurses m4;
1764       readline = readline5;
1765       ghc = ghc642Binary;
1766   };
1767   };
1769   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1770     inherit pkgs;
1771     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1772       ghc = ghc642Binary;
1773       haddock = import ../development/tools/documentation/haddock/boot.nix {
1774         inherit gmp;
1775         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1776           inherit stdenv fetchurl lib;
1777           ghc = ghc642Binary;    };
1778       };
1779     };
1780   });
1781   */
1783   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1784   # currently available ghc versions. (Before, it used to be enabled only
1785   # for a selected few versions.) If someone complains about nix-env -qa
1786   # output being spammed by lots of Haskell packages, we can talk about
1787   # reducing the number or "enabled" versions again.
1789   # Helper functions to abstract away from repetitive instantiations.
1790   haskellPackagesFun610 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1791     inherit pkgs;
1792     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1793     ghc = callPackage ghcPath {
1794       ghc = ghc6101Binary;    };
1795   });
1797   haskellPackagesFun612 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1798     inherit pkgs;
1799     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1800     ghc = callPackage ghcPath {
1801       ghc = ghc6101Binary;    };
1802   });
1804   # Currently active GHC versions.
1805   haskellPackages_ghc6101 =
1806     haskellPackagesFun610 ../development/compilers/ghc/6.10.1.nix false;
1808   haskellPackages_ghc6102 =
1809     haskellPackagesFun610 ../development/compilers/ghc/6.10.2.nix false;
1811   haskellPackages_ghc6103 =
1812     haskellPackagesFun610 ../development/compilers/ghc/6.10.3.nix false;
1814   # Current default version.
1815   haskellPackages_ghc6104 =
1816     haskellPackagesFun610 ../development/compilers/ghc/6.10.4.nix false;
1818   haskellPackages_ghc6121 =
1819     haskellPackagesFun612 ../development/compilers/ghc/6.12.1.nix false;
1821   haskellPackages_ghc6122 =
1822     haskellPackagesFun612 ../development/compilers/ghc/6.12.2.nix false;
1824   haskellPackages_ghc6123 =
1825     haskellPackagesFun612 ../development/compilers/ghc/6.12.3.nix false;
1827   # Currently not pointing to the actual HEAD, therefore disabled
1828   /*
1829   haskellPackages_ghcHEAD = lowPrio (import ./haskell-packages.nix {
1830     inherit pkgs;
1831     ghc = callPackage ../development/compilers/ghc/6.11.nix {
1832       inherit (haskellPackages) happy alex; # hope these aren't required for the final version
1833       ghc = ghc6101Binary;    };
1834   });
1835   */
1837   haxeDist = import ../development/compilers/haxe {
1838     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1839   };
1840   haxe = haxeDist.haxe;
1841   haxelib = haxeDist.haxelib;
1843   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1844     inherit cmake;
1845   };
1847   go = callPackage ../development/compilers/go { };
1849   gprolog = callPackage ../development/compilers/gprolog { };
1851   gwt = callPackage ../development/compilers/gwt {
1852     inherit (gtkLibs) glib gtk pango atk;
1853     libstdcpp5 = gcc33.gcc;
1854   };
1856   ikarus = callPackage ../development/compilers/ikarus { };
1858   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1859   # commented out because it's using the new configuration style proposal which is unstable
1860   hugs = callPackage ../development/compilers/hugs { };
1862   path64 = callPackage ../development/compilers/path64 {
1863     stdenv = stdenv2;
1864   };
1866   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1868   j2sdk14x = (
1869     assert system == "i686-linux";
1870     import ../development/compilers/jdk/default-1.4.nix {
1871       inherit fetchurl stdenv;
1872     });
1874   jdk5 = (
1875     assert system == "i686-linux" || system == "x86_64-linux";
1876     import ../development/compilers/jdk/default-5.nix {
1877       inherit fetchurl stdenv unzip;
1878     });
1880   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1881   jre       = jdkdistro false false;
1883   jdkPlugin = jdkdistro true true;
1884   jrePlugin = jdkdistro false true;
1886   supportsJDK =
1887     system == "i686-linux" ||
1888     system == "x86_64-linux" ||
1889     system == "i686-cygwin" ||
1890     system == "powerpc-linux";
1892   jdkdistro = installjdk: pluginSupport:
1893        (assert supportsJDK;
1894     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
1895       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
1896     }));
1898   jikes = callPackage ../development/compilers/jikes { };
1900   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
1901     inherit fpc makeWrapper;
1902     inherit (gtkLibs) gtk glib pango atk;
1903     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
1904   };
1906   llvm = callPackage ../development/compilers/llvm { };
1908   mitscheme = callPackage ../development/compilers/mit-scheme { };
1910   mono = callPackage ../development/compilers/mono { };
1912   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
1914   mozart = callPackage ../development/compilers/mozart { };
1916   neko = callPackage ../development/compilers/neko {
1917     inherit (gtkLibs) gtk;
1918   };
1920   nasm = callPackage ../development/compilers/nasm { };
1922   ocaml = ocaml_3_11_1;
1924   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
1926   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
1928   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
1930   opencxx = callPackage ../development/compilers/opencxx {
1931     gcc = gcc33;
1932   };
1934   qcmm = callPackage ../development/compilers/qcmm {
1935     lua   = lua4;
1936     ocaml = ocaml_3_08_0;
1937   };
1939   roadsend = callPackage ../development/compilers/roadsend { };
1941   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
1942     inherit makeWrapper clisp;
1943   };
1945   scala = callPackage ../development/compilers/scala { };
1947   stalin = callPackage ../development/compilers/stalin { };
1949   strategoPackages = strategoPackages017;
1951   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
1952     stdenv = overrideInStdenv stdenv [gnumake380];
1953   };
1955   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
1956     readline = readline5;
1957   };
1959   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
1960     readline = readline5;
1961   };
1963   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
1965   swiProlog = callPackage ../development/compilers/swi-prolog { };
1967   tinycc = callPackage ../development/compilers/tinycc { };
1969   vala = callPackage ../development/compilers/vala { };
1971   visualcpp = callPackage ../development/compilers/visual-c++ { };
1973   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
1975   webdsl = callPackage ../development/compilers/webdsl { };
1977   win32hello = callPackage ../development/compilers/visual-c++/test { };
1979   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
1980     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
1981     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
1982     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
1983     gcc = baseGCC;
1984     libc = glibc;
1985     inherit stdenv binutils coreutils zlib;
1986   };
1988   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
1990   # To be removed on stdenv-updates
1991   # By now this has at least the fix of setting the proper rpath when a file "libbla.so"
1992   # is passed directly to the linker.
1993   # This is of interest to programs built by cmake, because this is a common practice
1994   # in cmake builds.
1995   wrapGCC2 = wrapGCCWith (import ../build-support/gcc-wrapper/default2.nix) glibc;
1996   stdenv2 = if (gcc.nativeTools) then stdenv else (overrideGCC stdenv (wrapGCC2 gcc.gcc));
1998   wrapGCCCross =
1999     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
2001     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
2002       nativeTools = false;
2003       nativeLibc = false;
2004       noLibc = (libc == null);
2005       inherit stdenv gcc binutils libc shell name cross;
2006     });
2008   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
2009   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2010   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2011     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2012     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2013     gcc = baseGCC;
2014     libc = glibc;
2015     inherit stdenv binutils;
2016   };
2018   # prolog
2019   yap = callPackage ../development/compilers/yap { };
2021   yasm = callPackage ../development/compilers/yasm { };
2023   ### DEVELOPMENT / INTERPRETERS
2025   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2026     inherit sbcl;
2027   };
2029   clisp = callPackage ../development/interpreters/clisp { };
2031   # compatibility issues in 2.47 - at list 2.44.1 is known good
2032   # for sbcl bootstrap
2033   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2034     libsigsegv = libsigsegv_25;  };
2036   erlang = callPackage ../development/interpreters/erlang { };
2038   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2040   groovy = callPackage ../development/interpreters/groovy { };
2042   guile = callPackage ../development/interpreters/guile { };
2044   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2046   io = builderDefsPackage (import ../development/interpreters/io) {
2047     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2048       libpng libtiff libjpeg readline libsndfile libxml2
2049       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2050   };
2052   kaffe = callPackage ../development/interpreters/kaffe { };
2054   lua4 = callPackage ../development/interpreters/lua-4 { };
2056   lua5 = callPackage ../development/interpreters/lua-5 { };
2058   maude = callPackage ../development/interpreters/maude { };
2060   octave = callPackage ../development/interpreters/octave {
2061     # Needed because later gm versions require an initialization the actual octave is not
2062     # doing.
2063     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2064     graphicsmagick = graphicsmagick137;
2065   };
2067   # mercurial (hg) bleeding edge version
2068   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2070   perl58 = callPackage ../development/interpreters/perl-5.8 {
2071     impureLibcPath = if stdenv.isLinux then null else "/usr";
2072   };
2074   perl510 = callPackage ../development/interpreters/perl-5.10 {
2075     fetchurl = fetchurlBoot;
2076   };
2078   perl = useFromStdenv "perl"
2079     (if system != "i686-cygwin" then perl510 else sysPerl);
2081   php = makeOverridable (import ../development/interpreters/php) {
2082     inherit
2083       stdenv fetchurl lib composableDerivation autoconf automake
2084       flex bison apacheHttpd mysql libxml2
2085       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2086   };
2088   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2090   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2091     inherit cairo fontconfig freetype libjpeg libpng openssl
2092       perl mesa zlib which;
2093     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2094       renderproto pixman libSM libxcb libXext xextproto libXmu
2095       libXt;
2096   };
2098   polyml = callPackage ../development/compilers/polyml { };
2100   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2101   python25 = if getConfig ["python" "full"] false then python25Full else python25Base;
2102   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2103   pythonBase = python26Base;
2104   pythonFull = python26Full;
2106   python24 = callPackage ../development/interpreters/python/2.4 { };
2108   python25Base = makeOverridable (import ../development/interpreters/python/2.5) {
2109     inherit fetchurl stdenv zlib bzip2 gdbm;
2110   };
2112   python25Full = lowPrio (python25Base.override {
2113     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2114     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2115     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2116     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2117     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2118     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2119     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2120     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2121     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2122     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2123   });
2125   python26Base = makeOverridable (import ../development/interpreters/python/2.6) {
2126     inherit fetchurl stdenv zlib bzip2 gdbm;
2127     arch = if stdenv.isDarwin then darwinArchUtility else null;
2128     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2129   };
2131   python26Full = lowPrio (python26Base.override {
2132     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2133     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2134     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2135     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2136     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2137     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2138     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2139     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2140     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2141     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2142   });
2144   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2145     inherit fetchurl stdenv zlib bzip2 gdbm;
2146     arch = if stdenv.isDarwin then darwinArchUtility else null;
2147     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2148   });
2150   pyrex = pyrex095;
2152   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2154   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2156   qi = callPackage ../development/compilers/qi { };
2158   ruby18 = callPackage ../development/interpreters/ruby { };
2159   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2160   ruby = ruby18;
2162   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2163     inherit pkgs stdenv;
2164   });
2166   rake = callPackage ../development/ruby-modules/rake { };
2168   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2170   rLang = callPackage ../development/interpreters/r-lang {
2171     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2172   };
2174   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2175     inherit ruby makeWrapper;
2176   };
2177   rubygems = rubygemsFun ruby;
2179   rq = callPackage ../applications/networking/cluster/rq { };
2181   scsh = callPackage ../development/interpreters/scsh { };
2183   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2185   sysPerl = callPackage ../development/interpreters/sys-perl { };
2187   tcl = callPackage ../development/interpreters/tcl { };
2189   xulrunnerWrapper = {application, launcher}:
2190     import ../development/interpreters/xulrunner/wrapper {
2191       inherit stdenv application launcher;
2192       xulrunner = firefox36Pkgs.xulrunner;
2193     };
2196   ### DEVELOPMENT / MISC
2198   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2199     gcc = gcc40;
2200   };
2202   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2204   /*
2205   toolbus = callPackage ../development/interpreters/toolbus { };
2206   */
2208   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2209     inherit getConfig;
2210   };
2212   ecj = callPackage ../development/eclipse/ecj { };
2214   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2216   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2218   jruby116 = callPackage ../development/interpreters/jruby { };
2220   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2222   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2223     gconf = gnome.GConf;
2224     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2225       libgnomeui pango;
2226   };
2228   guileLib = callPackage ../development/guile-modules/guile-lib { };
2230   windowssdk = (
2231     import ../development/misc/windows-sdk {
2232       inherit fetchurl stdenv cabextract;
2233     });
2236   ### DEVELOPMENT / TOOLS
2239   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2241   antlr3 = callPackage ../development/tools/parsing/antlr { };
2243   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin ; name = "ant-" + jdk.name ; } ;
2245   ant = apacheAnt;
2246   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2247     name = "ant-" + jdk.name;  };
2249   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2250     jdk = j2sdk14x;
2251     name = "ant-" + j2sdk14x.name;
2252   };
2254   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2255     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2256   };
2258   autobuild = callPackage ../development/tools/misc/autobuild { };
2260   autoconf = callPackage ../development/tools/misc/autoconf { };
2262   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2264   automake = automake110x;
2266   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2268   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2270   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2272   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
2274   avrdude = callPackage ../development/tools/misc/avrdude { };
2276   binutils = useFromStdenv "binutils"
2277     (import ../development/tools/misc/binutils {
2278       inherit fetchurl stdenv noSysDirs;
2279     });
2281   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2282       inherit stdenv fetchurl;
2283       noSysDirs = true;
2284       cross = assert crossSystem != null; crossSystem;
2285   });
2287   bison = bison23;
2289   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2291   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2293   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2295   buildbot = callPackage ../development/tools/build-managers/buildbot {
2296     inherit (pythonPackages) twisted;
2297   };
2299   byacc = callPackage ../development/tools/parsing/byacc { };
2301   camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2303   camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2304     transitional = true;
2305   };
2307   ccache = callPackage ../development/tools/misc/ccache { };
2309   ctags = callPackage ../development/tools/misc/ctags { };
2311   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2312     inherit pkgs ctags writeScriptBin;
2313   };
2315   cmake = callPackage ../development/tools/build-managers/cmake { };
2317   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2319   cppi = callPackage ../development/tools/misc/cppi { };
2321   cproto = callPackage ../development/tools/misc/cproto { };
2323   cflow = callPackage ../development/tools/misc/cflow { };
2325   cscope = callPackage ../development/tools/misc/cscope { };
2327   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2329   ddd = callPackage ../development/tools/misc/ddd { };
2331   distcc = callPackage ../development/tools/misc/distcc {
2332     inherit (gtkLibs) gtk;
2333     static = false;
2334   };
2336   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2337     inherit python pil makeWrapper;
2338   };
2340   doxygen = callPackage ../development/tools/documentation/doxygen {
2341     qt = if getPkgConfig "doxygen" "qt4" true then qt4 else null;
2342   };
2344   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2346   elfutils = callPackage ../development/tools/misc/elfutils { };
2348   epm = callPackage ../development/tools/misc/epm { };
2350   emma = callPackage ../development/tools/analysis/emma { };
2352   findbugs = callPackage ../development/tools/analysis/findbugs { };
2354   pmd = callPackage ../development/tools/analysis/pmd { };
2356   jdepend = callPackage ../development/tools/analysis/jdepend { };
2358   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2360   flex = flex254a;
2362   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2364   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2366   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2368   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2369   # alphabetically, hence the low priority.
2370   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2371     inherit fetchurl stdenv yacc;
2372   });
2374   m4 = gnum4;
2376   global = callPackage ../development/tools/misc/global { };
2378   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2380   gnumake = useFromStdenv "gnumake"
2381     (import ../development/tools/build-managers/gnumake {
2382       inherit fetchurl stdenv;
2383     });
2385   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2387   gradle = callPackage ../development/tools/build-managers/gradle { };
2389   gperf = callPackage ../development/tools/misc/gperf { };
2391   gtkdialog = callPackage ../development/tools/misc/gtkdialog {
2392     inherit (gtkLibs) gtk;
2393   };
2395   guileLint = callPackage ../development/tools/guile/guile-lint { };
2397   gwrap = callPackage ../development/tools/guile/g-wrap { };
2399   help2man = callPackage ../development/tools/misc/help2man {
2400     inherit (perlPackages) LocaleGettext;
2401   };
2403   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2404     inherit (perlPackages) XMLSimple;
2405   };
2407   indent = callPackage ../development/tools/misc/indent { };
2409   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2411   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2413   jikespg = callPackage ../development/tools/parsing/jikespg { };
2415   lcov = callPackage ../development/tools/analysis/lcov { };
2417   libtool = libtool_2;
2419   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2421   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2423   lsof = callPackage ../development/tools/misc/lsof { };
2425   ltrace = callPackage ../development/tools/misc/ltrace { };
2427   mig = callPackage ../os-specific/gnu/mig { };
2429   mk = callPackage ../development/tools/build-managers/mk { };
2431   noweb = callPackage ../development/tools/literate-programming/noweb { };
2433   omake = callPackage ../development/tools/ocaml/omake { };
2436   openocd = callPackage ../development/tools/misc/openocd { };
2438   oprofile = import ../development/tools/profiling/oprofile {
2439     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep;
2441     # Optional build inputs for the (useless) GUI.
2442     /*
2443     qt = qt3;
2444     inherit (xlibs) libX11 libXext;
2445     inherit libpng;
2446      */
2447   };
2449   patchelf = useFromStdenv "patchelf"
2450     (import ../development/tools/misc/patchelf {
2451       inherit fetchurl stdenv;
2452     });
2454   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2456   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2458   /**
2459    * pkgconfig is optionally taken from the stdenv to allow bootstrapping
2460    * of glib and pkgconfig itself on MinGW.
2461    */
2462   pkgconfigReal = useFromStdenv "pkgconfig"
2463     (import ../development/tools/misc/pkgconfig {
2464       inherit fetchurl stdenv;
2465     });
2467   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2468      because most usage of pkgconfig as buildInput (inheritance of
2469      pre-cross nixpkgs) means using it using as buildNativeInput
2470      cross_renaming: we should make all programs use pkgconfig as
2471      buildNativeInput after the renaming.
2472      */
2473   pkgconfig = forceBuildDrv pkgconfigReal;
2475   radare = callPackage ../development/tools/analysis/radare {
2476     inherit (gtkLibs) gtk;
2477     inherit (gnome) vte;
2478     lua = lua5;
2479     useX11 = getConfig ["radare" "useX11"] false;
2480     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2481     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2482     luaBindings = getConfig ["radare" "luaBindings"] false;
2483   };
2485   ragel = callPackage ../development/tools/parsing/ragel { };
2487   remake = callPackage ../development/tools/build-managers/remake { };
2489   # couldn't find the source yet
2490   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2491     jre = jdk;  };
2493   scons = callPackage ../development/tools/build-managers/scons { };
2495   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2497   sloccount = callPackage ../development/tools/misc/sloccount { };
2499   sparse = callPackage ../development/tools/analysis/sparse { };
2501   spin = callPackage ../development/tools/analysis/spin { };
2503   splint = callPackage ../development/tools/analysis/splint { };
2505   strace = callPackage ../development/tools/misc/strace { };
2507   swig = callPackage ../development/tools/misc/swig { };
2509   swigWithJava = swig;
2511   swftools = callPackage ../tools/video/swftools { };
2513   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2515   texinfo = callPackage ../development/tools/misc/texinfo { };
2517   texi2html = callPackage ../development/tools/misc/texi2html { };
2519   uisp = callPackage ../development/tools/misc/uisp { };
2521   gdb = callPackage ../development/tools/misc/gdb {
2522     readline = readline5;
2523   };
2525   gdbCross = callPackage ../development/tools/misc/gdb {
2526     readline = readline5;
2527     target = crossSystem;
2528   };
2530   valgrind = callPackage ../development/tools/analysis/valgrind { };
2532   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2533     flex = flex2535;
2534     qt = qt3;
2535     inherit pkgconfig makeWrapper bison python;
2536     inherit (xlibs) libXext libX11;
2537   };
2539   yacc = bison;
2541   yodl = callPackage ../development/tools/misc/yodl { };
2544   ### DEVELOPMENT / LIBRARIES
2547   a52dec = callPackage ../development/libraries/a52dec { };
2549   aalib = callPackage ../development/libraries/aalib { };
2551   acl = useFromStdenv "acl"
2552     (import ../development/libraries/acl {
2553       inherit stdenv fetchurl gettext attr libtool;
2554     });
2556   adns = import ../development/libraries/adns/1.4.nix {
2557     inherit stdenv fetchurl;
2558     static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
2559   };
2561   agg = callPackage ../development/libraries/agg { };
2563   amrnb = callPackage ../development/libraries/amrnb { };
2565   amrwb = callPackage ../development/libraries/amrwb { };
2567   apr = callPackage ../development/libraries/apr { };
2569   aprutil = callPackage ../development/libraries/apr-util {
2570     bdbSupport = true;
2571   };
2573   aspell = callPackage ../development/libraries/aspell { };
2575   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2576     inherit fetchurl stdenv aspell which;
2577   });
2579   aterm = aterm25;
2581   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2582     inherit fetchurl stdenv;
2583   });
2585   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2587   aterm28 = lowPrio (import ../development/libraries/aterm/2.8.nix {
2588     inherit fetchurl stdenv;
2589   });
2591   attr = useFromStdenv "attr"
2592     (import ../development/libraries/attr {
2593       inherit stdenv fetchurl gettext libtool;
2594     });
2596   aubio = callPackage ../development/libraries/aubio { };
2598   axis = callPackage ../development/libraries/axis { };
2600   babl = callPackage ../development/libraries/babl { };
2602   beecrypt = callPackage ../development/libraries/beecrypt { };
2604   boehmgc = callPackage ../development/libraries/boehm-gc { };
2606   boolstuff = callPackage ../development/libraries/boolstuff { };
2608   boost = callPackage ../development/libraries/boost { };
2610   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2611   boostFull = appendToName "full" (boost.override {
2612     enableDebug = true;
2613     enableSingleThreaded = true;
2614     enableStatic = true;
2615   });
2617   botan = builderDefsPackage (import ../development/libraries/botan) {
2618     inherit perl;
2619   };
2621   buddy = callPackage ../development/libraries/buddy { };
2623   cairo = callPackage ../development/libraries/cairo { };
2625   cairomm = callPackage ../development/libraries/cairomm { };
2627   scmccid = callPackage ../development/libraries/scmccid { };
2629   ccrtp = callPackage ../development/libraries/ccrtp { };
2631   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2632     inherit cmake freeglut mesa;
2633     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2634   };
2636   chmlib = callPackage ../development/libraries/chmlib { };
2638   cil = callPackage ../development/libraries/cil { };
2640   cilaterm = callPackage ../development/libraries/cil-aterm {
2641     stdenv = overrideInStdenv stdenv [gnumake380];
2642   };
2644   clanlib = callPackage ../development/libraries/clanlib { };
2646   clapack = callPackage ../development/libraries/clapack {
2647     stdenv = stdenv2;
2648   };
2650   classads = callPackage ../development/libraries/classads { };
2652   classpath = callPackage ../development/libraries/java/classpath {
2653     javac = gcj;
2654     jvm = gcj;
2655     inherit (gtkLibs) gtk;
2656     gconf = gnome.GConf;
2657   };
2659   clearsilver = callPackage ../development/libraries/clearsilver { };
2661   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2662   };
2664   cluceneCore = callPackage ../development/libraries/clucene-core { };
2666   clutter = callPackage ../development/libraries/clutter {
2667     inherit (gnome) glib pango gtk;
2668   };
2670   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2671     inherit (gnome) gtk;
2672   };
2674   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2676   confuse = callPackage ../development/libraries/confuse { };
2678   consolekit = callPackage ../development/libraries/consolekit { };
2680   coredumper = callPackage ../development/libraries/coredumper { };
2682   ctl = callPackage ../development/libraries/ctl { };
2684   cppunit = callPackage ../development/libraries/cppunit { };
2686   cracklib = callPackage ../development/libraries/cracklib { };
2688   cryptopp = callPackage ../development/libraries/crypto++ { };
2690   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2692   db4 = db45;
2694   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2696   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2698   dbus = callPackage ../development/libraries/dbus {
2699     useX11 = true; # !!! `false' doesn't build
2700   };
2702   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2703     inherit fetchurl stdenv pkgconfig gettext dbus expat glib;
2704     libiconv = if (stdenv.system == "i686-freebsd") then libiconv else null;
2705   };
2707   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2709   dclib = callPackage ../development/libraries/dclib { };
2711   directfb = callPackage ../development/libraries/directfb { };
2713   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2714     stdenv = overrideGCC stdenv gcc45;
2715   };
2717   enchant = callPackage ../development/libraries/enchant {
2718     inherit (gnome) glib;
2719   };
2721   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2723   esdl = callPackage ../development/libraries/esdl { };
2725   exiv2 = callPackage ../development/libraries/exiv2 { };
2727   expat = callPackage ../development/libraries/expat { };
2729   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2730     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2731       libpng gettext intltool;
2732     inherit (xlibs) libX11 xproto libXi inputproto
2733       libXmu libXext xextproto libXt libSM libICE;
2734   };
2736   eventlog = callPackage ../development/libraries/eventlog { };
2738   facile = callPackage ../development/libraries/facile {
2739     # Actually, we don't need this version but we need native-code compilation
2740     ocaml = ocaml_3_10_0;
2741   };
2743   faac = callPackage ../development/libraries/faac { };
2745   faad2 = callPackage ../development/libraries/faad2 { };
2747   farsight2 = callPackage ../development/libraries/farsight2 {
2748     inherit (gnome) glib;
2749     inherit (gst_all) gstreamer gstPluginsBase;
2750   };
2752   fcgi = callPackage ../development/libraries/fcgi { };
2754   ffmpeg = callPackage ../development/libraries/ffmpeg { };
2756   fftw = callPackage ../development/libraries/fftw {
2757     singlePrecision = false;
2758   };
2760   fftwSinglePrec = callPackage ../development/libraries/fftw {
2761     singlePrecision = true;
2762   };
2764   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2766   fltk20 = callPackage ../development/libraries/fltk { };
2768   fmod = callPackage ../development/libraries/fmod { };
2770   freeimage = callPackage ../development/libraries/freeimage { };
2772   freetts = callPackage ../development/libraries/freetts { };
2774   cfitsio = callPackage ../development/libraries/cfitsio { };
2776   fontconfig = callPackage ../development/libraries/fontconfig { };
2778   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2779     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2780       inherit runCommand libxslt fontconfig fontDirectories;
2781     };
2783   freealut = callPackage ../development/libraries/freealut { };
2785   freeglut = callPackage ../development/libraries/freeglut { };
2787   freetype = callPackage ../development/libraries/freetype { };
2789   fribidi = callPackage ../development/libraries/fribidi { };
2791   fam = gamin;
2793   gamin = callPackage ../development/libraries/gamin { };
2795   gav = callPackage ../games/gav {
2796     stdenv = overrideGCC stdenv gcc41;
2797   };
2799   gdbm = callPackage ../development/libraries/gdbm { };
2801   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2802     inherit (gtkLibs1x) gtk;
2803   };
2805   gegl = callPackage ../development/libraries/gegl {
2806     #  avocodec avformat librsvg
2807     inherit (gtkLibs) pango glib gtk;
2808   };
2810   geoip = builderDefsPackage ../development/libraries/geoip {
2811     inherit zlib;
2812   };
2814   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2816   geos = callPackage ../development/libraries/geos { };
2818   gettext = callPackage ../development/libraries/gettext { };
2820   # XXX: Remove me when `stdenv-updates' is merged.
2821   gettext_0_18 = callPackage ../development/libraries/gettext/0.18.nix { };
2823   gd = callPackage ../development/libraries/gd { };
2825   gdal = callPackage ../development/libraries/gdal { };
2827   giblib = callPackage ../development/libraries/giblib { };
2829   glew = callPackage ../development/libraries/glew { };
2831   glfw = callPackage ../development/libraries/glfw { };
2833   glibc = useFromStdenv "glibc" glibc211;
2835   glibc25 = callPackage ../development/libraries/glibc-2.5 {
2836     kernelHeaders = linuxHeaders;
2837     installLocales = false;
2838   };
2840   glibc27 = callPackage ../development/libraries/glibc-2.7 {
2841     kernelHeaders = linuxHeaders;
2842     #installLocales = false;
2843   };
2845   glibc29 = callPackage ../development/libraries/glibc-2.9 {
2846     kernelHeaders = linuxHeaders;
2847     installLocales = getPkgConfig "glibc" "locales" false;
2848   };
2850   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
2851     inherit stdenv fetchurl;
2852     gccCross = gccCrossStageStatic;
2853     kernelHeaders = linuxHeadersCross;
2854     installLocales = getPkgConfig "glibc" "locales" false;
2855   });
2857   glibc211 = callPackage ../development/libraries/glibc-2.11 {
2858     kernelHeaders = linuxHeaders;
2859     installLocales = getPkgConfig "glibc" "locales" false;
2860     machHeaders = null;
2861     hurdHeaders = null;
2862     gccCross = null;
2863   };
2865   glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11)
2866     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
2867      in ({
2868        inherit stdenv fetchurl;
2869        gccCross = gccCrossStageStatic;
2870        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
2871        installLocales = getPkgConfig "glibc" "locales" false;
2872      }
2874      //
2876      (if crossGNU
2877       then { inherit machHeaders hurdHeaders mig fetchgit; }
2878       else { }))));
2880   glibcCross = glibc211Cross;
2882   # We can choose:
2883   libcCrossChooser = name : if (name == "glibc") then glibcCross
2884     else if (name == "uclibc") then uclibcCross
2885     else if (name == "msvcrt") then windows.mingw_headers3
2886     else throw "Unknown libc";
2888   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
2890   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
2892   libdwg = callPackage ../development/libraries/libdwg { };
2894   eglibc = callPackage ../development/libraries/eglibc {
2895     kernelHeaders = linuxHeaders;
2896     installLocales = getPkgConfig "glibc" "locales" false;
2897   };
2899   glibcLocales = callPackage ../development/libraries/glibc-2.11/locales.nix { };
2901   glibcInfo = callPackage ../development/libraries/glibc-2.11/info.nix { };
2903   glibc_multi =
2904       runCommand "${glibc.name}-multi"
2905         { glibc64 = glibc;
2906           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
2907         }
2908         ''
2909           ensureDir $out
2910           ln -s $glibc64/* $out/
2912           rm $out/lib $out/lib64
2913           ensureDir $out/lib
2914           ln -s $glibc64/lib/* $out/lib
2915           ln -s $glibc32/lib $out/lib/32
2916           ln -s lib $out/lib64
2918           rm $out/include
2919           cp -rs $glibc32/include $out
2920           chmod -R u+w $out/include
2921           cp -rsf $glibc64/include $out
2922         '' # */
2923         ;
2925   glpk = callPackage ../development/libraries/glpk { };
2927   gmime = callPackage ../development/libraries/gmime { };
2929   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
2931   gmm = callPackage ../development/libraries/gmm { };
2933   gmp =
2934     if stdenv.system == "i686-darwin" then
2935       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
2936       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
2937         inherit stdenv fetchurl m4;
2938         cxx = false;
2939       }
2940     else
2941       makeOverridable (import ../development/libraries/gmp) {
2942         inherit stdenv fetchurl m4;
2943         cxx = false;
2944       };
2946   gmpxx = gmp.override { cxx = true; };
2948   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
2950   goffice = callPackage ../development/libraries/goffice {
2951     inherit (gnome) glib gtk libglade libgnomeui pango;
2952     gconf = gnome.GConf;
2953     libart = gnome.libart_lgpl;
2954   };
2956   goocanvas = callPackage ../development/libraries/goocanvas {
2957     inherit (gnome) gtk glib;
2958   };
2960   #GMP ex-satellite, so better keep it near gmp
2961   mpfr = callPackage ../development/libraries/mpfr { };
2963   gst_all = recurseIntoAttrs (import ../development/libraries/gstreamer {
2964     inherit lib stdenv fetchurl perl bison pkgconfig libxml2
2965       python alsaLib cdparanoia libogg libvorbis libtheora freetype liboil
2966       libjpeg zlib speex libpng libdv aalib cairo libcaca flac hal libiec61883
2967       dbus libavc1394 ladspaH taglib pulseaudio gdbm bzip2 which makeOverridable
2968       libcap libtasn1;
2969     flex = flex2535;
2970     inherit (xorg) libX11 libXv libXext;
2971     inherit (gtkLibs) glib pango gtk;
2972     inherit (gnome) gnomevfs /* <- only passed for the no longer used older versions
2973              it is deprecated and didn't build on amd64 due to samba dependency */ gtkdoc
2974       libsoup;
2975   });
2977   gnet = callPackage ../development/libraries/gnet { };
2979   gnutls = callPackage ../development/libraries/gnutls {
2980     guileBindings = getConfig ["gnutls" "guile"] true;
2981   };
2983   gpgme = callPackage ../development/libraries/gpgme { };
2985   gsasl = callPackage ../development/libraries/gsasl { };
2987   gsl = callPackage ../development/libraries/gsl { };
2989   gsoap = callPackage ../development/libraries/gsoap { };
2991   gss = callPackage ../development/libraries/gss { };
2993   gtkimageview = callPackage ../development/libraries/gtkimageview {
2994     inherit (gnome) gtk;
2995   };
2997   gtkLibs = gtkLibs220;
2999   glib = gtkLibs.glib;
3001   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
3003     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
3005     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
3007   });
3009   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
3011     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
3013     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
3015     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
3017     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
3019     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
3021     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
3023     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
3025   });
3027   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
3029     glib = callPackage ../development/libraries/glib/2.22.x.nix {
3030       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
3031     };
3033     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3035     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
3037     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
3039     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3041     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
3043     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3045   });
3047   gtkLibs220 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs220; in rec {
3049     glib = callPackage ../development/libraries/glib/2.24.x.nix {
3050       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
3051     };
3053     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3055     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3057     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3059     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3061     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3063     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3065   });
3067   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3068     inherit (gnome) gtk;
3069     gtksharp = gtksharp2;
3070   };
3072   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3073     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3074               libgnomecanvas libgnomeui libgnomeprint
3075               libgnomeprintui GConf;
3076   };
3078   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3079     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3080               libgnomecanvas libgnomeui libgnomeprint
3081               libgnomeprintui GConf gnomepanel;
3082   };
3084   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3085     inherit (gnome) gtksourceview;
3086     gtksharp = gtksharp2;
3087   };
3089   gtkspell = callPackage ../development/libraries/gtkspell {
3090     inherit (gtkLibs) gtk;
3091   };
3093   # TODO : Add MIT Kerberos and let admin choose.
3094   kerberos = heimdal;
3096   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3098   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3100   hunspell = callPackage ../development/libraries/hunspell { };
3102   hwloc = callPackage ../development/libraries/hwloc { };
3104   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3106   icu = callPackage ../development/libraries/icu { };
3108   id3lib = callPackage ../development/libraries/id3lib { };
3110   ilbc = callPackage ../development/libraries/ilbc { };
3112   ilmbase = callPackage ../development/libraries/ilmbase { };
3114   imlib = callPackage ../development/libraries/imlib { };
3116   imlib2 = callPackage ../development/libraries/imlib2 { };
3118   indilib = callPackage ../development/libraries/indilib { };
3120   iniparser = callPackage ../development/libraries/iniparser { };
3122   intltool = gnome.intltool;
3124   isocodes = callPackage ../development/libraries/iso-codes { };
3126   itk = callPackage ../development/libraries/itk { };
3128   jamp = builderDefsPackage ../games/jamp {
3129     inherit mesa SDL SDL_image SDL_mixer;
3130   };
3132   jasper = callPackage ../development/libraries/jasper { };
3134   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3136   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3138   judy = callPackage ../development/libraries/judy { };
3140   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3142   lablgtk = callPackage ../development/libraries/lablgtk {
3143     inherit (gtkLibs) gtk;
3144     inherit (gnome) libgnomecanvas;
3145   };
3147   lcms = callPackage ../development/libraries/lcms { };
3149   lensfun = callPackage ../development/libraries/lensfun {
3150     inherit (gnome) glib;
3151   };
3153   lesstif = callPackage ../development/libraries/lesstif { };
3155   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3157   levmar = callPackage ../development/libraries/levmar { };
3159   lib3ds = callPackage ../development/libraries/lib3ds { };
3161   libaal = callPackage ../development/libraries/libaal { };
3163   libao = callPackage ../development/libraries/libao {
3164     usePulseAudio = getConfig [ "pulseaudio" ] true;
3165   };
3167   libarchive = callPackage ../development/libraries/libarchive { };
3169   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3171   libassuan = callPackage ../development/libraries/libassuan { };
3173   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3175   libcaca = callPackage ../development/libraries/libcaca { };
3177   libcanberra = callPackage ../development/libraries/libcanberra {
3178     inherit (gtkLibs) gtk gthread;
3179     gstreamer = gst_all.gstreamer;
3180   };
3182   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3184   libcddb = callPackage ../development/libraries/libcddb { };
3186   libcdio = callPackage ../development/libraries/libcdio { };
3188   libchamplain = callPackage ../development/libraries/libchamplain {
3189     inherit (gnome) gtk glib libsoup;
3190   };
3192   libcm = callPackage ../development/libraries/libcm { };
3194   libcue = callPackage ../development/libraries/libcue { };
3196   libcv = builderDefsPackage (import ../development/libraries/libcv) {
3197     inherit libtiff libjpeg libpng pkgconfig;
3198     inherit (gtkLibs) gtk glib;
3199   };
3201   libdaemon = callPackage ../development/libraries/libdaemon { };
3203   libdbi = callPackage ../development/libraries/libdbi { };
3205   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3206     mysql = null;
3207     sqlite = null;
3208   };
3210   libdbiDrivers = libdbiDriversBase.override {
3211     inherit sqlite mysql;
3212   };
3214   libdv = callPackage ../development/libraries/libdv { };
3216   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3217     inherit fetchurl stdenv pkgconfig;
3218     inherit (xorg) libpthreadstubs;
3219   });
3221   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3223   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3225   libdvdread = callPackage ../development/libraries/libdvdread { };
3227   libedit = callPackage ../development/libraries/libedit { };
3229   libelf = callPackage ../development/libraries/libelf { };
3231   liblo = callPackage ../development/libraries/liblo { };
3233   libev = builderDefsPackage ../development/libraries/libev {
3234   };
3236   libevent = callPackage ../development/libraries/libevent { };
3238   libewf = callPackage ../development/libraries/libewf { };
3240   libexif = callPackage ../development/libraries/libexif { };
3242   libextractor = callPackage ../development/libraries/libextractor {
3243     inherit (gnome) gtk;
3244     libmpeg2 = mpeg2dec;
3245   };
3247   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3248     inherit fetchcvs;
3249   };
3251   libffi = callPackage ../development/libraries/libffi { };
3253   libftdi = callPackage ../development/libraries/libftdi { };
3255   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3257   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3259   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3261   libgpod = callPackage ../development/libraries/libgpod { };
3263   libharu = callPackage ../development/libraries/libharu { };
3265   libical = callPackage ../development/libraries/libical { };
3267   libiodbc = callPackage ../development/libraries/libiodbc {
3268     inherit (gtkLibs) gtk;
3269     useGTK = getPkgConfig "libiodbc" "gtk" false;
3270   };
3272   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3273     inherit (gnome) glib;
3274   };
3276   libnice = callPackage ../development/libraries/libnice {
3277     inherit (gnome) glib;
3278   };
3280   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3282   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3284   libspectre = callPackage ../development/libraries/libspectre {
3285     ghostscript = ghostscriptX;
3286   };
3288   libgsf = callPackage ../development/libraries/libgsf {
3289     inherit (gnome) glib gnomevfs libbonobo;
3290   };
3292   libiconv = callPackage ../development/libraries/libiconv { };
3294   libid3tag = callPackage ../development/libraries/libid3tag { };
3296   libidn = callPackage ../development/libraries/libidn { };
3298   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3300   libinfinity = callPackage ../development/libraries/libinfinity {
3301     inherit (gtkLibs) gtk glib;
3302     inherit (gnome) gtkdoc;
3303   };
3305   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3307   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3309   libjpeg = callPackage ../development/libraries/libjpeg { };
3311   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3313   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3314     libtool = libtool_1_5;
3315   };
3317   libksba = callPackage ../development/libraries/libksba { };
3319   libmad = callPackage ../development/libraries/libmad { };
3321   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3323   libmcs = callPackage ../development/libraries/libmcs { };
3325   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3327   libmikmod = callPackage ../development/libraries/libmikmod { };
3329   libmilter = callPackage ../development/libraries/libmilter { };
3331   libmowgli = callPackage ../development/libraries/libmowgli { };
3333   libmng = callPackage ../development/libraries/libmng { };
3335   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3337   libmsn = callPackage ../development/libraries/libmsn { };
3339   libmspack = callPackage ../development/libraries/libmspack { };
3341   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3343   libnih = callPackage ../development/libraries/libnih { };
3345   libnova = callPackage ../development/libraries/libnova { };
3347   libofx = callPackage ../development/libraries/libofx { };
3349   libogg = callPackage ../development/libraries/libogg { };
3351   liboil = callPackage ../development/libraries/liboil { };
3353   liboop = callPackage ../development/libraries/liboop { };
3355   libotr = callPackage ../development/libraries/libotr { };
3357   libp11 = callPackage ../development/libraries/libp11 { };
3359   libpcap = callPackage ../development/libraries/libpcap { };
3361   libpng = callPackage ../development/libraries/libpng { };
3363   libproxy = callPackage ../development/libraries/libproxy { };
3365   libpseudo = callPackage ../development/libraries/libpseudo { };
3367   librsync = callPackage ../development/libraries/librsync { };
3369   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3371   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3373   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3374   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3376   libsndfile = callPackage ../development/libraries/libsndfile { };
3378   libssh = callPackage ../development/libraries/libssh { };
3380   libstartup_notification = callPackage ../development/libraries/startup-notification { };
3382   libtasn1 = callPackage ../development/libraries/libtasn1 { };
3384   libtheora = callPackage ../development/libraries/libtheora { };
3386   libtiff = callPackage ../development/libraries/libtiff { };
3388   libtommath = callPackage ../development/libraries/libtommath { };
3390   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3392   libunistring = callPackage ../development/libraries/libunistring { };
3394   libupnp = callPackage ../development/libraries/pupnp { };
3396   giflib = callPackage ../development/libraries/giflib { };
3398   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3400   libusb = callPackage ../development/libraries/libusb { };
3402   libunwind = callPackage ../development/libraries/libunwind { };
3404   libv4l = callPackage ../development/libraries/libv4l { };
3406   libvirt = callPackage ../development/libraries/libvirt { };
3408   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3409     inherit libtool libjpeg openssl zlib;
3410     inherit (xlibs) xproto libX11 damageproto libXdamage
3411       libXext xextproto fixesproto libXfixes xineramaproto
3412       libXinerama libXrandr randrproto libXtst;
3413   };
3415   libviper = callPackage ../development/libraries/libviper { };
3417   libvpx = callPackage ../development/libraries/libvpx { };
3419   libvterm = callPackage ../development/libraries/libvterm { };
3421   libvorbis = callPackage ../development/libraries/libvorbis { };
3423   libwmf = callPackage ../development/libraries/libwmf { };
3425   libwpd = callPackage ../development/libraries/libwpd {
3426     inherit (gnome) glib;
3427   };
3429   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3431   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3433   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3435   libxklavier = callPackage ../development/libraries/libxklavier { };
3437   libxmi = callPackage ../development/libraries/libxmi { };
3439   libxml2 = callPackage ../development/libraries/libxml2 {
3440     pythonSupport = false;
3441   };
3443   libxml2Python = libxml2.override {
3444     pythonSupport = true;
3445   };
3447   libxmlxx = callPackage ../development/libraries/libxmlxx {
3448     inherit (gtkLibs) glibmm;
3449   };
3451   libxslt = callPackage ../development/libraries/libxslt { };
3453   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3454     inherit fetchurl stdenv;
3455   });
3457   libyaml = callPackage ../development/libraries/libyaml { };
3459   libzip = callPackage ../development/libraries/libzip { };
3461   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3463   lightning = callPackage ../development/libraries/lightning { };
3465   liquidwar = builderDefsPackage ../games/liquidwar {
3466     inherit (xlibs) xproto libX11 libXrender;
3467     inherit gmp guile mesa libjpeg libpng
3468       expat gettext perl
3469       SDL SDL_image SDL_mixer SDL_ttf
3470       curl sqlite
3471       libogg libvorbis
3472       ;
3473   };
3475   log4cxx = callPackage ../development/libraries/log4cxx { };
3477   loudmouth = callPackage ../development/libraries/loudmouth { };
3479   lzo = callPackage ../development/libraries/lzo { };
3481   # failed to build
3482   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3484   mesaSupported =
3485     system == "i686-linux" ||
3486     system == "x86_64-linux" ||
3487     system == "x86_64-darwin" ||
3488     system == "i686-darwin";
3490   mesa = callPackage ../development/libraries/mesa {
3491     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3492   };
3494   ming = callPackage ../development/libraries/ming { };
3496   mlt = callPackage ../development/libraries/mlt {
3497     qt = qt4;
3498   };
3500   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3502   msilbc = callPackage ../development/libraries/msilbc { };
3504   mpc = callPackage ../development/libraries/mpc { };
3506   mpich2 = callPackage ../development/libraries/mpich2 { };
3508   muparser = callPackage ../development/libraries/muparser { };
3510   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3511     inherit fetchurl stdenv;
3512     # The "! (stdenv ? cross)" is for the cross-built arm ncurses, which
3513     # don't build for me in unicode.
3514     unicode = (system != "i686-cygwin" && crossSystem == null);
3515   };
3517   neon = neon029;
3519   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3520     compressionSupport = true;
3521     sslSupport = true;
3522   };
3524   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3525     compressionSupport = true;
3526     sslSupport = true;
3527   };
3529   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3530     compressionSupport = true;
3531     sslSupport = true;
3532   };
3534   nethack = builderDefsPackage (import ../games/nethack) {
3535     inherit ncurses flex bison;
3536   };
3538   nettle = callPackage ../development/libraries/nettle { };
3540   nspr = callPackage ../development/libraries/nspr { };
3542   nss = callPackage ../development/libraries/nss { };
3544   ode = builderDefsPackage (import ../development/libraries/ode) {
3545   };
3547   openal = callPackage ../development/libraries/openal { };
3549   # added because I hope that it has been easier to compile on x86 (for blender)
3550   openalSoft = callPackage ../development/libraries/openal-soft { };
3552   openbabel = callPackage ../development/libraries/openbabel { };
3554   opencascade = callPackage ../development/libraries/opencascade { };
3556   openct = callPackage ../development/libraries/openct { };
3558   opencv = callPackage ../development/libraries/opencv {
3559       inherit (gtkLibs) gtk glib;
3560       inherit (gst_all) gstreamer;
3561       stdenv = stdenv2;
3562   };
3564   # this ctl version is needed by openexr_viewers
3565   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3567   openexr = callPackage ../development/libraries/openexr { };
3569   openldap = callPackage ../development/libraries/openldap { };
3571   openlierox = builderDefsPackage ../games/openlierox {
3572     inherit (xlibs) libX11 xproto;
3573     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3574       pkgconfig;
3575   };
3577   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3578     inherit (gtkLibs) glib;
3579     opensc = opensc_0_11_7;
3580   };
3582   openssl = callPackage ../development/libraries/openssl {
3583     fetchurl = fetchurlBoot;
3584   };
3586   ortp = callPackage ../development/libraries/ortp { };
3588   pangoxsl = callPackage ../development/libraries/pangoxsl {
3589     inherit (gtkLibs) glib pango;
3590   };
3592   pcre = callPackage ../development/libraries/pcre {
3593     unicodeSupport = getConfig ["pcre" "unicode"] false;
3594     cplusplusSupport = !stdenv ? isDietLibC;
3595   };
3597   physfs = callPackage ../development/libraries/physfs { };
3599   plib = callPackage ../development/libraries/plib { };
3601   podofo = callPackage ../development/libraries/podofo { };
3603   polkit = callPackage ../development/libraries/polkit { };
3605   policykit = callPackage ../development/libraries/policykit { };
3607   poppler = callPackage ../development/libraries/poppler {
3608     inherit (gtkLibs) glib gtk;
3609     qt4Support = false;
3610   };
3612   popplerQt4 = poppler.override {
3613     inherit qt4;
3614     qt4Support = true;
3615   };
3617   popt = callPackage ../development/libraries/popt { };
3619   proj = callPackage ../development/libraries/proj { };
3621   postgis = callPackage ../development/libraries/postgis { };
3623   pth = callPackage ../development/libraries/pth { };
3625   qjson = callPackage ../development/libraries/qjson { };
3627   qt3 = callPackage ../development/libraries/qt-3 {
3628     openglSupport = mesaSupported;
3629     mysqlSupport = getConfig ["qt" "mysql"] false;
3630   };
3632   qt3mysql = qt3.override {
3633     mysqlSupport = true;
3634   };
3636   qt4 = qt46;
3638   qt45 = callPackage ../development/libraries/qt-4.x/4.5 {
3639     inherit (gnome) glib;
3640   };
3642   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3643     inherit (gnome) glib;
3644   };
3646   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3647     inherit (gst_all) gstreamer gstPluginsBase;
3648     inherit (gnome) glib;
3649   };
3651   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator {
3652     qt4 = qt46;
3653   };
3655   quassel = callPackage ../applications/networking/irc/quassel {
3656     inherit (kde4) qt4 kdelibs phonon automoc4;
3657   };
3659   quesoglc = callPackage ../development/libraries/quesoglc { };
3661   readline = readline6;
3663   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3665   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3667   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3669   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3671   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3673   librdf = callPackage ../development/libraries/librdf { };
3675   qrupdate = callPackage ../development/libraries/qrupdate { };
3677   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3678     bdb = db4;
3679     postgresql = null;
3680   };
3682   rhino = callPackage ../development/libraries/java/rhino {
3683     ant = apacheAntGcj;
3684     javac = gcj;
3685     jvm = gcj;
3686   };
3688   rte = callPackage ../development/libraries/rte { };
3690   rubberband = callPackage ../development/libraries/rubberband {
3691     fftw = fftwSinglePrec;
3692     inherit (vamp) vampSDK;
3693   };
3695   schroedinger = callPackage ../development/libraries/schroedinger { };
3697   SDL = callPackage ../development/libraries/SDL {
3698     openglSupport = mesaSupported;
3699     alsaSupport = true;
3700     pulseaudioSupport = false; # better go through ALSA
3701   };
3703   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3705   SDL_image = callPackage ../development/libraries/SDL_image { };
3707   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3709   SDL_net = callPackage ../development/libraries/SDL_net { };
3711   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3713   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3715   slang = callPackage ../development/libraries/slang { };
3717   slibGuile = callPackage ../development/libraries/slib {
3718     scheme = guile;
3719   };
3721   snack = callPackage ../development/libraries/snack {
3722         # optional
3723   };
3725   speex = callPackage ../development/libraries/speex { };
3727   sqlite = callPackage ../development/libraries/sqlite {
3728     readline = null;
3729     ncurses = null;
3730   };
3732   sqliteInteractive = lowPrio (appendToName "interactive" (sqlite.override {
3733     inherit readline ncurses;
3734   }));
3736   stlport = callPackage ../development/libraries/stlport { };
3738   suitesparse = callPackage ../development/libraries/suitesparse { };
3740   t1lib = callPackage ../development/libraries/t1lib { };
3742   taglib = callPackage ../development/libraries/taglib { };
3744   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3746   talloc = callPackage ../development/libraries/talloc { };
3748 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3749 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3750 ##  };
3752   tdb = callPackage ../development/libraries/tdb { };
3754   tecla = callPackage ../development/libraries/tecla { };
3756   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3758   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3760   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3762   tk = callPackage ../development/libraries/tk { };
3764   unixODBC = callPackage ../development/libraries/unixODBC { };
3766   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3767     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3768     inherit postgresql mysql sqlite;
3769   });
3771   vamp = callPackage ../development/libraries/audio/vamp { };
3773   vigra = callPackage ../development/libraries/vigra { };
3775   vtk = callPackage ../development/libraries/vtk { };
3777   vxl = callPackage ../development/libraries/vxl { };
3779   webkit = ((builderDefsPackage ../development/libraries/webkit {
3780     inherit (gnome28) gtkdoc libsoup;
3781     inherit (gtkLibs) gtk atk pango glib;
3782     inherit freetype fontconfig gettext gperf curl
3783       libjpeg libtiff libpng libxml2 libxslt sqlite
3784       icu cairo perl intltool automake libtool
3785       pkgconfig autoconf bison libproxy enchant
3786       python ruby;
3787     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3788       gstPluginsGood;
3789     flex = flex2535;
3790     inherit (xlibs) libXt;
3791   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
3793   wvstreams = callPackage ../development/libraries/wvstreams { };
3795   wxGTK = wxGTK28;
3797   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
3798     inherit (gtkLibs216) gtk;
3799   };
3801   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
3802     inherit (gtkLibs216) gtk;
3803   };
3805   wtk = callPackage ../development/libraries/wtk { };
3807   x264 = callPackage ../development/libraries/x264 { };
3809   xapian = callPackage ../development/libraries/xapian { };
3811   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
3812   };
3814   Xaw3d = callPackage ../development/libraries/Xaw3d {
3815     flex = flex2533;
3816   };
3818   xineLib = callPackage ../development/libraries/xine-lib { };
3820   xautolock = callPackage ../misc/screensavers/xautolock { };
3822   xercesJava = callPackage ../development/libraries/java/xerces {
3823     ant   = apacheAntGcj;  # for bootstrap purposes
3824     javac = gcj;
3825     jvm   = gcj;
3826   };
3828   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
3829     packages = [
3830       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
3831       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
3832       xlibs.xextproto
3833     ];
3834   };
3836   xvidcore = callPackage ../development/libraries/xvidcore { };
3838   zangband = builderDefsPackage (import ../games/zangband) {
3839     inherit ncurses flex bison autoconf automake m4 coreutils;
3840   };
3842   zlib = callPackage ../development/libraries/zlib {
3843     fetchurl = fetchurlBoot;
3844   };
3846   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
3847     inherit fetchurl stdenv;
3848     static = true;
3849   }));
3851   zvbi = callPackage ../development/libraries/zvbi {
3852     pngSupport = true;
3853   };
3856   ### DEVELOPMENT / LIBRARIES / JAVA
3859   atermjava = callPackage ../development/libraries/java/aterm {
3860     stdenv = overrideInStdenv stdenv [gnumake380];
3862   };
3864   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
3866   fastjar = callPackage ../development/tools/java/fastjar { };
3868   httpunit = callPackage ../development/libraries/java/httpunit { };
3870   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
3872   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
3874   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
3875     regexp = jakartaregexp;
3876   };
3878   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
3880   javaCup = callPackage ../development/libraries/java/cup { };
3882   javasvn = callPackage ../development/libraries/java/javasvn { };
3884   jclasslib = callPackage ../development/tools/java/jclasslib {
3885     ant = apacheAnt14;
3886   };
3888   jdom = callPackage ../development/libraries/java/jdom { };
3890   jflex = callPackage ../development/libraries/java/jflex { };
3892   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
3893     stdenv = overrideInStdenv stdenv [gnumake380];
3894   };
3896   junit = callPackage ../development/libraries/java/junit { };
3898   lucene = callPackage ../development/libraries/java/lucene { };
3900   mockobjects = callPackage ../development/libraries/java/mockobjects { };
3902   saxon = callPackage ../development/libraries/java/saxon { };
3904   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
3906   sharedobjects = callPackage ../development/libraries/java/shared-objects {
3907     stdenv = overrideInStdenv stdenv [gnumake380];
3908   };
3910   smack = callPackage ../development/libraries/java/smack { };
3912   swt = callPackage ../development/libraries/java/swt {
3913     inherit (gtkLibs) gtk;
3914   };
3916   xalanj = xalanJava;
3917   xalanJava = callPackage ../development/libraries/java/xalanj {
3918     ant    = apacheAntGcj;  # for bootstrap purposes
3919     javac  = gcj;
3920     jvm    = gcj;
3921     xerces = xercesJava;  };
3923   zziplib = callPackage ../development/libraries/zziplib { };
3926   ### DEVELOPMENT / PERL MODULES
3928   buildPerlPackage = import ../development/perl-modules/generic perl;
3930   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
3931     inherit pkgs;
3932   });
3934   perlXMLParser = perlPackages.XMLParser;
3936   ack = perlPackages.ack;
3938   perlcritic = perlPackages.PerlCritic;
3941   ### DEVELOPMENT / PYTHON MODULES
3943   buildPythonPackage =
3944     import ../development/python-modules/generic {
3945       inherit python setuptools makeWrapper lib;
3946     };
3948   buildPython26Package =
3949     import ../development/python-modules/generic {
3950       inherit makeWrapper lib;
3951       python = python26;
3952       setuptools = setuptools_python26;
3953     };
3955   pythonPackages = python26Packages;
3957   python25Packages = recurseIntoAttrs (import ./python-packages.nix {
3958     inherit pkgs python buildPythonPackage;
3959   });
3961   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
3962     inherit pkgs;
3963     python = python26;
3964     buildPythonPackage = buildPython26Package;
3965   });
3967   foursuite = callPackage ../development/python-modules/4suite { };
3969   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
3971   flup = builderDefsPackage ../development/python-modules/flup {
3972     inherit fetchurl stdenv;
3973     python = python25;
3974     setuptools = setuptools.passthru.function {python = python25;};
3975   };
3977   numeric = callPackage ../development/python-modules/numeric { };
3979   pil = callPackage ../development/python-modules/pil { };
3981   psyco = callPackage ../development/python-modules/psyco { };
3983   pycairo = callPackage ../development/python-modules/pycairo { };
3985   pycrypto = callPackage ../development/python-modules/pycrypto { };
3987   pycups = callPackage ../development/python-modules/pycups { };
3989   pygame = callPackage ../development/python-modules/pygame { };
3991   pygobject = callPackage ../development/python-modules/pygobject { };
3993   pygtk = callPackage ../development/python-modules/pygtk {
3994     inherit (gtkLibs) glib gtk;
3995   };
3997   pyGtkGlade = callPackage ../development/python-modules/pygtk {
3998     inherit (gtkLibs) glib gtk;
3999     inherit (gnome) libglade;
4000   };
4002   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4003     inherit python openssl;
4004   };
4006   rhpl = callPackage ../development/python-modules/rhpl { };
4008   sip = callPackage ../development/python-modules/python-sip { };
4010   pyqt4 = callPackage ../development/python-modules/pyqt { };
4012   pyx = callPackage ../development/python-modules/pyx { };
4014   pyxml = callPackage ../development/python-modules/pyxml { };
4016   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4017     inherit python makeWrapper;
4018   };
4020   setuptools_python26 = builderDefsPackage (import ../development/python-modules/setuptools) {
4021     inherit makeWrapper;
4022     python = python26;
4023   };
4025   wxPython = wxPython26;
4027   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4028     wxGTK = wxGTK26;
4029   };
4031   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4033   twisted = pythonPackages.twisted;
4035   ZopeInterface = pythonPackages.zopeInterface;
4037   zope = callPackage ../development/python-modules/zope {
4038     python = python24;
4039   };
4041   ### SERVERS
4043   rdf4store = callPackage ../servers/http/4store {
4044     inherit (gtkLibs) glib;
4045   };
4047   apacheHttpd = callPackage ../servers/http/apache-httpd {
4048     sslSupport = true;
4049   };
4051   sabnzbd = callPackage ../servers/sabnzbd { };
4053   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4054     inherit openssl libtool;
4055   };
4057   dico = callPackage ../servers/dico { };
4059   dict = callPackage ../servers/dict { };
4061   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4062     inherit builderDefs;
4063   });
4065   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4066     inherit stdenv lib dict;
4067   };
4069   dovecot = callPackage ../servers/mail/dovecot { };
4070   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4072   ejabberd = callPackage ../servers/xmpp/ejabberd {
4073     erlang = erlangR13B ;
4074   };
4076   couchdb = callPackage ../servers/http/couchdb { };
4078   felix = callPackage ../servers/felix { };
4080   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4082   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4084   firebird = callPackage ../servers/firebird { };
4086   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4088   jboss = callPackage ../servers/http/jboss { };
4090   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4092   jetty = callPackage ../servers/http/jetty { };
4094   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4096   lighttpd = callPackage ../servers/http/lighttpd { };
4098   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4100   mpd = callPackage ../servers/mpd { };
4102   myserver = callPackage ../servers/http/myserver { };
4104   nginx = builderDefsPackage (import ../servers/http/nginx) {
4105     inherit openssl pcre zlib libxml2 libxslt;
4106   };
4108   postfix = callPackage ../servers/mail/postfix { };
4110   pulseaudio = callPackage ../servers/pulseaudio {
4111     inherit (gtkLibs) gtk glib;    # Needs ALSA >= 1.0.17.
4112     gconf = gnome.GConf;
4113   };
4115   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4117   portmap = callPackage ../servers/portmap { };
4119   monetdb = callPackage ../servers/sql/monetdb { };
4121   mysql4 = import ../servers/sql/mysql {
4122     inherit fetchurl stdenv ncurses zlib perl;
4123     ps = procps; /* !!! Linux only */
4124   };
4126   mysql5 = import ../servers/sql/mysql5 {
4127     inherit fetchurl stdenv ncurses zlib perl openssl;
4128     ps = procps; /* !!! Linux only */
4129   };
4131   mysql51 = import ../servers/sql/mysql51 {
4132     inherit fetchurl ncurses zlib perl openssl stdenv;
4133     ps = procps; /* !!! Linux only */
4134   };
4136   mysql = mysql5;
4138   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4140   nagios = callPackage ../servers/monitoring/nagios {
4141     gdSupport = true;
4142   };
4144   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4146   openfire = callPackage ../servers/xmpp/openfire { };
4148   postgresql = postgresql83;
4150   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4152   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4154   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4156   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4157     inherit xmpppy pythonIRClib python makeWrapper;
4158   };
4160   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4161     inherit xmpppy python makeWrapper fetchcvs;
4162   };
4164   radius = callPackage ../servers/radius { };
4166   redstore = callPackage ../servers/http/redstore { };
4168   samba = callPackage ../servers/samba { };
4170   shishi = callPackage ../servers/shishi { };
4172   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4173     inherit fetchurl stdenv perl lib composableDerivation;
4174   });
4175   squid = squids.squid3Beta; # has ipv6 support
4177   tomcat5 = callPackage ../servers/http/tomcat { };
4179   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4181   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4183   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4185   virtuoso = callPackage ../servers/sql/virtuoso { };
4187   vsftpd = callPackage ../servers/ftp/vsftpd { };
4189   xinetd = callPackage ../servers/xinetd { };
4191   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4192     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4193       libxslt expat libdrm libpng zlib perl mesa
4194       xkeyboard_config dbus hal libuuid openssl gperf m4
4195       automake autoconf libtool xmlto asciidoc udev;
4197     # !!! pythonBase is use instead of python because this cause an infinite
4198     # !!! recursion when the flag python.full is set to true.  Packages
4199     # !!! contained in the loop are python, tk, xlibs-wrapper, libX11,
4200     # !!! libxcd (and xcb-proto).
4201     python =  pythonBase;
4202   });
4204   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4206   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4208   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4209     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4210   });
4213   ### OS-SPECIFIC
4215   afuse = callPackage ../os-specific/linux/afuse { };
4217   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4219   _915resolution = callPackage ../os-specific/linux/915resolution { };
4221   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4223   acpi = callPackage ../os-specific/linux/acpi { };
4225   acpid = callPackage ../os-specific/linux/acpid { };
4227   acpitool = callPackage ../os-specific/linux/acpitool { };
4229   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4231   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4232   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4234   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4236   bluez = callPackage ../os-specific/linux/bluez { };
4238   bridge_utils = callPackage ../os-specific/linux/bridge_utils { };
4240   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4242   conky = callPackage ../os-specific/linux/conky {
4243     inherit (gtkLibs) glib;
4244   };
4246   cpufrequtils = (
4247     import ../os-specific/linux/cpufrequtils {
4248     inherit fetchurl stdenv libtool gettext;
4249     glibc = stdenv.gcc.libc;
4250     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4251   });
4253   cryopid = callPackage ../os-specific/linux/cryopid { };
4255   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4257   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4259   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4261   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4263   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4265   devicemapper = lvm2;
4267   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4269   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4271   dietlibc = callPackage ../os-specific/linux/dietlibc {
4272     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4273     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4274   };
4276   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4277     inherit libjpeg pkgconfig zlib directfb;
4278     inherit (xlibs) xproto;
4279   };
4281   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4282     inherit devicemapper;
4283   };
4285   libuuid = if ! stdenv.isDarwin then utillinuxng else null;
4287   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4289   eject = callPackage ../os-specific/linux/eject { };
4291   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4292     inherit fontconfig gpm freetype pkgconfig ncurses;
4293   };
4295   fuse = callPackage ../os-specific/linux/fuse { };
4297   fxload = callPackage ../os-specific/linux/fxload { };
4299   gpm = callPackage ../servers/gpm {
4300     flex = flex2535;
4301   };
4303   hal = callPackage ../os-specific/linux/hal { };
4305   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4307   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4309   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4311   hdparm = callPackage ../os-specific/linux/hdparm { };
4313   hibernate = callPackage ../os-specific/linux/hibernate { };
4315   htop = callPackage ../os-specific/linux/htop { };
4317   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4318     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4319       mig glibcCross;
4320     automake = automake111x;
4321     headersOnly = false;
4322     cross = assert crossSystem != null; crossSystem;
4323     gccCross = gccCrossStageFinal;
4324   });
4326   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4327     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4328       mig glibcCross;
4329     automake = automake111x;
4330     headersOnly = false;
4331     cross = assert crossSystem != null; crossSystem;
4333     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4334     # particular) so we first need an intermediate Hurd built with the
4335     # intermediate GCC.
4336     gccCross = gccCrossStageStatic;
4338     # This intermediate Hurd is only needed to build libpthread, which really
4339     # only needs libihash.
4340     buildTarget = "libihash";
4341     installTarget = "libihash-install";
4342   });
4344   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4345     automake = automake111x;
4346     headersOnly = true;
4347     gccCross = null;
4348     glibcCross = null;
4349   };
4351   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4352     inherit fetchgit stdenv autoconf automake libtool
4353       machHeaders hurdHeaders glibcCross;
4354     hurd = hurdCrossIntermediate;
4355     gccCross = gccCrossStageStatic;
4356     cross = assert crossSystem != null; crossSystem;
4357   });
4359   hwdata = callPackage ../os-specific/linux/hwdata { };
4361   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4363   iproute = callPackage ../os-specific/linux/iproute { };
4365   iputils = (
4366     import ../os-specific/linux/iputils {
4367     inherit fetchurl stdenv;
4368     glibc = stdenv.gcc.libc;
4369     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4370   });
4372   iptables = callPackage ../os-specific/linux/iptables { };
4374   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4376   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4378   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4380   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4382   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4384   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4386   kbd = callPackage ../os-specific/linux/kbd { };
4388   libcroup = callPackage ../os-specific/linux/libcg { };
4390   linuxHeaders = linuxHeaders_2_6_28;
4392   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4393     inherit stdenv fetchurl perl;
4394     cross = assert crossSystem != null; crossSystem;
4395   });
4397   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4398     inherit stdenv fetchurl perl;
4399     cross = assert crossSystem != null; crossSystem;
4400   });
4402   # We can choose:
4403   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4404     else if (ver == "2.6") then linuxHeaders26Cross
4405     else throw "Unknown linux kernel version";
4407   linuxHeadersCross = assert crossSystem != null;
4408     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4410   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4412   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4414   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4416   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4418   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4419     inherit fetchurl stdenv perl mktemp module_init_tools;
4420     kernelPatches =
4421       [ kernelPatches.fbcondecor_2_6_25
4422         kernelPatches.sec_perm_2_6_24
4423       ];
4424   };
4426   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4427     inherit fetchurl stdenv perl mktemp module_init_tools;
4428     kernelPatches =
4429       [ kernelPatches.fbcondecor_2_6_27
4430         kernelPatches.sec_perm_2_6_24
4431       ];
4432   };
4434   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4435     inherit fetchurl stdenv perl mktemp module_init_tools;
4436     kernelPatches =
4437       [ kernelPatches.fbcondecor_2_6_28
4438         kernelPatches.sec_perm_2_6_24
4439         kernelPatches.ext4_softlockups_2_6_28
4440       ];
4441   };
4443   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4444     inherit fetchurl stdenv perl mktemp module_init_tools;
4445     kernelPatches =
4446       [ kernelPatches.fbcondecor_2_6_29
4447         kernelPatches.sec_perm_2_6_24
4448       ];
4449   };
4451   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4452     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4453     kernelPatches = [];
4454   };
4456   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4457     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4458     kernelPatches =
4459       [ kernelPatches.fbcondecor_2_6_31
4460         kernelPatches.sec_perm_2_6_24
4461         kernelPatches.aufs2_2_6_32
4462         kernelPatches.cifs_timeout
4463         kernelPatches.no_xsave
4464         kernelPatches.dell_rfkill
4465       ];
4466   };
4468   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4469     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4470     systemtap = true;
4471     dontStrip = true;
4472     kernelPatches =
4473       [ kernelPatches.fbcondecor_2_6_31
4474         kernelPatches.sec_perm_2_6_24
4475         kernelPatches.tracehook_2_6_32
4476         kernelPatches.utrace_2_6_32
4477       ];
4478   };
4480   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4481     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4482   };
4484   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4485     features = {
4486       oldI686 = true;
4487     };
4488   };
4490   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4491     features = {
4492       ckSched = true;
4493     };
4494   };
4496   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4497     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4498     kernelPatches =
4499       [ kernelPatches.fbcondecor_2_6_33
4500         kernelPatches.sec_perm_2_6_24
4501       ];
4502   };
4504   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4505     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4506   };
4508   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4509     features = {
4510       oldI686 = true;
4511     };
4512   };
4514   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4515     features = {
4516       ckSched = true;
4517     };
4518   };
4520   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4521     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4522     kernelPatches =
4523       [ /*kernelPatches.fbcondecor_2_6_33*/
4524         kernelPatches.sec_perm_2_6_24
4525         kernelPatches.aufs2_2_6_34
4526       ];
4527   };
4529   /* Linux kernel modules are inherently tied to a specific kernel.  So
4530      rather than provide specific instances of those packages for a
4531      specific kernel, we have a function that builds those packages
4532      for a specific kernel.  This function can then be called for
4533      whatever kernel you're using. */
4535   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4537     inherit kernel;
4539     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4541     aufs = callPackage ../os-specific/linux/aufs { };
4543     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4545     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4547     blcr = callPackage ../os-specific/linux/blcr/0.8.2.nix {
4548       libtool = libtool_1_5; # libtool 2 causes a fork bomb
4549     };
4551     exmap = callPackage ../os-specific/linux/exmap {
4552       inherit (gtkLibs) gtkmm;
4553     };
4555     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4557     iwlwifi4965ucode =
4558       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4559           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4560        then iwlwifi4965ucodeV2
4561        else iwlwifi4965ucodeV1);
4563     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4565     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4567     nvidia_x11_legacy = callPackage ../os-specific/linux/nvidia-x11/legacy.nix { };
4569     openafsClient = callPackage ../servers/openafs-client { };
4571     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4573     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4574       inherit kernel perl;
4575     };
4577     splashutils =
4578       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4580     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4581       kernel_ext3cowpatched = kernel;
4582     };
4584     /* compiles but has to be integrated into the kernel somehow
4585       Let's have it uncommented and finish it..
4586     */
4587     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4589     ov511 = callPackage ../os-specific/linux/ov511 {
4590       stdenv = overrideGCC stdenv gcc34;
4591     };
4593     # State Nix
4594     snix = callPackage ../tools/package-management/snix {
4596       aterm = aterm25;
4597       db4 = db45;
4599       flex = flex2533;
4600       ext3cow_kernel = kernel;    };
4602     sysprof = callPackage ../development/tools/profiling/sysprof {
4603       inherit (gnome) gtk glib pango libglade;
4604     };
4606     systemtap = callPackage ../development/tools/profiling/systemtap {
4607       linux = kernel;
4608       inherit (gnome) gtkmm libglademm;
4609     };
4611     virtualbox = callPackage ../applications/virtualization/virtualbox {
4612       stdenv = stdenv_32bit;
4613       inherit (gnome) libIDL;
4614     };
4616     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4617   };
4619   # Build the kernel modules for the some of the kernels.
4620   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4621   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4622   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4623   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4624   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4625   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4626   linuxPackages_2_6_32_systemtap =
4627     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4628   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4629   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4631   # The current default kernel / kernel modules.
4632   linux = linux_2_6_32;
4633   linuxPackages = linuxPackages_2_6_32;
4635   keyutils = callPackage ../os-specific/linux/keyutils { };
4637   libselinux = callPackage ../os-specific/linux/libselinux { };
4639   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4641   libsexy = callPackage ../development/libraries/libsexy {
4642     inherit (gtkLibs) glib gtk pango;
4643   };
4645   librsvg = gnome.librsvg;
4647   libsepol = callPackage ../os-specific/linux/libsepol { };
4649   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4651   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4653   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4655   klibc = callPackage ../os-specific/linux/klibc {
4656     linuxHeaders = glibc.kernelHeaders;
4657   };
4659   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4661   kvm = qemu_kvm;
4663   libcap = callPackage ../os-specific/linux/libcap { };
4665   libnscd = callPackage ../os-specific/linux/libnscd { };
4667   libnotify = callPackage ../development/libraries/libnotify {
4668     inherit (gtkLibs) gtk glib;
4669   };
4671   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4673   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4675   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4676   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4677   # compiler for that host.
4678   mach = callPackage ../os-specific/gnu/mach {
4679     automake = automake111x;  };
4681   machHeaders = callPackage ../os-specific/gnu/mach {
4682     automake = automake111x;
4683     headersOnly = true;
4684     mig = null;
4685   };
4687   mdadm = callPackage ../os-specific/linux/mdadm { };
4689   mingetty = callPackage ../os-specific/linux/mingetty { };
4691   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4693   mountall = callPackage ../os-specific/linux/mountall {
4694     automake = automake111x;
4695   };
4697   aggregateModules = modules:
4698     import ../os-specific/linux/module-init-tools/aggregator.nix {
4699       inherit stdenv module_init_tools modules buildEnv;
4700     };
4702   modutils = callPackage ../os-specific/linux/modutils {
4703     stdenv = overrideGCC stdenv gcc34;
4704   };
4706   nettools = callPackage ../os-specific/linux/net-tools { };
4708   neverball = callPackage ../games/neverball { };
4710   numactl = callPackage ../os-specific/linux/numactl { };
4712   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
4713     inherit fetchurl stdenv nettools openssl procps iproute;
4714   };
4716   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
4718   pam = callPackage ../os-specific/linux/pam { };
4720   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
4722   pam_console = callPackage ../os-specific/linux/pam_console {
4723     libtool = libtool_1_5;
4724     flex = if stdenv.system == "i686-linux" then flex else flex2533;
4725   };
4727   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
4729   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
4731   pam_login = callPackage ../os-specific/linux/pam_login { };
4733   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
4735   pam_usb = callPackage ../os-specific/linux/pam_usb { };
4737   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
4739     firmware = getConfig ["pcmciaUtils" "firmware"] [];
4740     config = getConfig ["pcmciaUtils" "config"] null;
4741   };
4743   pmount = callPackage ../os-specific/linux/pmount { };
4745   pmutils = callPackage ../os-specific/linux/pm-utils { };
4747   powertop = callPackage ../os-specific/linux/powertop { };
4749   procps = callPackage ../os-specific/linux/procps { };
4751   pwdutils = callPackage ../os-specific/linux/pwdutils { };
4753   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
4755   radeontools = callPackage ../os-specific/linux/radeontools { };
4757   rfkill = callPackage ../os-specific/linux/rfkill { };
4759   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
4761   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
4763   sdparm = callPackage ../os-specific/linux/sdparm { };
4765   shadow = callPackage ../os-specific/linux/shadow { };
4767   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
4769   statifier = builderDefsPackage (import ../os-specific/linux/statifier) {
4770   };
4772   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
4774   # Provided with sysfsutils.
4775   libsysfs = sysfsutils;
4776   systool = sysfsutils;
4778   sysklogd = callPackage ../os-specific/linux/sysklogd { };
4780   syslinux = callPackage ../os-specific/linux/syslinux { };
4782   sysstat = callPackage ../os-specific/linux/sysstat { };
4784   sysvinit = callPackage ../os-specific/linux/sysvinit { };
4786   sysvtools = callPackage ../os-specific/linux/sysvinit {
4787     withoutInitTools = true;
4788   };
4790   # FIXME: `tcp-wrapper' is actually not OS-specific.
4791   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
4793   trackballs = callPackage ../games/trackballs {
4794     debug = false;
4795   };
4797   tunctl = callPackage ../os-specific/linux/tunctl { };
4799   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
4800     inherit mesa tcl freeglut;
4801     inherit (xlibs) libX11 xproto;
4802   };*/
4804   ubootChooser = name : if (name == "upstream") then ubootUpstream
4805     else if (name == "sheevaplug") then ubootSheevaplug
4806     else throw "Unknown uboot";
4808   ubootUpstream = callPackage ../misc/uboot { };
4810   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
4812   uclibc = callPackage ../os-specific/linux/uclibc { };
4814   uclibcCross = import ../os-specific/linux/uclibc {
4815     inherit fetchurl stdenv;
4816     linuxHeaders = linuxHeadersCross;
4817     gccCross = gccCrossStageStatic;
4818     cross = assert crossSystem != null; crossSystem;
4819   };
4821   udev = callPackage ../os-specific/linux/udev { };
4823   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
4824     inherit fetchurl stdenv perl mktemp module_init_tools;
4825     userModeLinux = true;
4826   };
4828   umlutilities = callPackage ../os-specific/linux/uml-utilities {
4829     tunctl = true; mconsole = true;
4830   };
4832   upstart = callPackage ../os-specific/linux/upstart { };
4834   usbutils = callPackage ../os-specific/linux/usbutils { };
4836   utillinux = utillinuxng;
4838   utillinuxCurses = utillinuxngCurses;
4840   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
4841     ncurses = null;
4842   };
4844   utillinuxngCurses = utillinuxng.override {
4845     inherit ncurses;
4846   };
4848   windows = rec {
4849     w32api = callPackage ../os-specific/windows/w32api {
4850       gccCross = gccCrossStageStatic;
4851       binutilsCross = binutilsCross;    };
4853     w32api_headers = w32api.override {
4854       onlyHeaders = true;
4855     };
4857     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
4858       gccCross = gccCrossMingw2;
4859       binutilsCross = binutilsCross;
4860     };
4862     mingw_runtime_headers = mingw_runtime.override {
4863       onlyHeaders = true;
4864     };
4866     mingw_headers1 = buildEnv {
4867       name = "mingw-headers-1";
4868       paths = [ w32api_headers mingw_runtime_headers ];
4869     };
4871     mingw_headers2 = buildEnv {
4872       name = "mingw-headers-2";
4873       paths = [ w32api mingw_runtime_headers ];
4874     };
4876     mingw_headers3 = buildEnv {
4877       name = "mingw-headers-3";
4878       paths = [ w32api mingw_runtime ];
4879     };
4881     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
4882   };
4884   wesnoth = callPackage ../games/wesnoth {
4885     inherit (gtkLibs) pango;
4886   };
4888   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
4890   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
4891     guiSupport = false;
4892   };
4893   # prebuild binaries:
4894   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
4896   # deprecated, but contains icon ? Does no longer build
4897   /* didn't build Sun Apr 25 20:34:18 CEST 2010
4898   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
4899   */
4901   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
4903   xmoto = builderDefsPackage (import ../games/xmoto) {
4904     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
4905       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
4906       lua5 ode;
4907   };
4909   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
4911   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
4913   ### DATA
4915   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
4916   };
4918   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
4920   cacert = callPackage ../data/misc/cacert { };
4922   corefonts = callPackage ../data/fonts/corefonts { };
4924   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
4925     inherit fetchurl stdenv builderDefs paths ttmkfdir;
4926     inherit (xorg) mkfontdir mkfontscale;
4927   });
4929   clearlyU = callPackage ../data/fonts/clearlyU { };
4931   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
4932     inherit (perlPackages) FontTTF;
4933   };
4935   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
4937   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
4939   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
4941   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
4943   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
4945   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
4947   docbook_xml_xslt = docbook_xsl;
4949   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
4951   docbook5_xsl = docbook_xsl_ns;
4953   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
4955   junicode = callPackage ../data/fonts/junicode { };
4957   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
4959   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
4961   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
4962     inherit fontforge;
4963   };
4964   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
4965   };
4967   lmodern = callPackage ../data/fonts/lmodern { };
4969   manpages = callPackage ../data/documentation/man-pages { };
4971   miscfiles = callPackage ../data/misc/miscfiles { };
4973   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
4975   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
4977   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
4979   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
4981   stdmanpages = callPackage ../data/documentation/std-man-pages { };
4983   iana_etc = callPackage ../data/misc/iana-etc { };
4985   popplerData = callPackage ../data/misc/poppler-data { };
4987   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
4989   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
4991   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
4993   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
4994     inherit fetchurl;
4995   };
4997   terminus_font = callPackage ../data/fonts/terminus-font { };
4999   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5001   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5003   unifont = callPackage ../data/fonts/unifont { };
5005   vistafonts = callPackage ../data/fonts/vista-fonts { };
5007   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5009   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5011   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5014   ### APPLICATIONS
5017   aangifte2005 = import ../applications/taxes/aangifte-2005 {
5018     inherit (pkgsi686Linux) stdenv fetchurl;
5019     inherit (pkgsi686Linux.xlibs) libX11 libXext;
5020   };
5022   aangifte2006 = import ../applications/taxes/aangifte-2006 {
5023     inherit (pkgsi686Linux) stdenv fetchurl;
5024     inherit (pkgsi686Linux.xlibs) libX11 libXext;
5025   };
5027   aangifte2007 = import ../applications/taxes/aangifte-2007 {
5028     inherit (pkgsi686Linux) stdenv fetchurl;
5029     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5030   };
5032   aangifte2008 = import ../applications/taxes/aangifte-2008 {
5033     inherit (pkgsi686Linux) stdenv fetchurl;
5034     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5035   };
5037   aangifte2009 = import ../applications/taxes/aangifte-2009 {
5038     inherit (pkgsi686Linux) stdenv fetchurl makeWrapper xdg_utils;
5039     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5040   };
5042   abcde = callPackage ../applications/audio/abcde { };
5044   abiword = callPackage ../applications/office/abiword {
5045     inherit (gtkLibs) gtk;
5046     inherit (gnome) libglade libgnomecanvas;
5047   };
5049   adobeReader = callPackage ../applications/misc/adobe-reader {
5050     inherit (gtkLibs) glib pango atk gtk;
5051   };
5053   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5054     libstdcpp = gcc33.gcc;
5055   };
5057   ardour = callPackage ../applications/audio/ardour {
5058     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5059     inherit (gnome) libgnomecanvas;
5060   };
5062   audacious = callPackage ../applications/audio/audacious {
5063     inherit (gtkLibs) glib gtk;
5064   };
5066   audacity = callPackage ../applications/audio/audacity {
5067     inherit (gtkLibs) gtk glib;
5068   };
5070   aumix = callPackage ../applications/audio/aumix {
5071     inherit (gtkLibs) gtk;
5072     gtkGUI = false;
5073   };
5075   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5077   avidemux = callPackage ../applications/video/avidemux {
5078     inherit (gtkLibs) gtk;
5079     stdenv = stdenv2;
5080   };
5082   awesome = callPackage ../applications/window-managers/awesome {
5083     inherit (gtkLibs) glib pango;
5084     lua = lua5;
5085     cairo = cairo.override { xcbSupport = true;
5086   };
5087   };
5089   bangarang = callPackage ../applications/video/bangarang {
5090     inherit (kde4) qt4 kdelibs automoc4 phonon soprano kdemultimedia;
5091   };
5093   batik = callPackage ../applications/graphics/batik { };
5095   bazaar = callPackage ../applications/version-management/bazaar {
5096     python = pythonFull;
5097   };
5099   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5100     inherit bazaar;
5101   };
5103   beast = callPackage ../applications/audio/beast {
5104     # stdenv = overrideGCC stdenv gcc34;
5105     inherit (gtkLibs) gtk glib;
5106     inherit (gnome) libgnomecanvas libart_lgpl;
5107   };
5109   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5111   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5113   # commented out because it's using the new configuration style proposal which is unstable
5114   #biew = import ../applications/misc/biew {
5115   #  inherit lib stdenv fetchurl ncurses;
5116   #};
5118   # only to be able to compile blender - I couldn't compile the default openal software
5119   # Perhaps this can be removed - don't know which one openal{,soft} is better
5120   freealut_soft = callPackage ../development/libraries/freealut {
5121     openal = openalSoft;  };
5123   blender = callPackage ../applications/misc/blender/2.49.nix {
5124     python = python26Base;
5125     stdenv = stdenv2;
5126   };
5128   blender_2_50 = lowPrio (import ../applications/misc/blender {
5129     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5130       libsamplerate libtiff ilmbase;
5131     inherit (xlibs) libXi;
5132     python = python31Base;
5133     stdenv = stdenv2;
5134   });
5136   bmp = callPackage ../applications/audio/bmp {
5137     inherit (gnome) esound libglade;
5138     inherit (gtkLibs) glib gtk;
5139   };
5141   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5143   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5145   bvi = callPackage ../applications/editors/bvi { };
5147   calibre = callPackage ../applications/misc/calibre {
5148     python = python26Full;
5149     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5150   };
5152   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5153     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5154       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5155       libtool automake autoconf;
5156     GStreamer = gst_all.gstreamer;
5157     inherit (gtkLibs) gtk glib;
5158     inherit (gnome) startupnotification GConf ;
5159     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5160   };
5161   funpidgin = carrier;
5163   cddiscid = callPackage ../applications/audio/cd-discid { };
5165   cdparanoia = cdparanoiaIII;
5167   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5169   cdrtools = callPackage ../applications/misc/cdrtools { };
5171   chatzilla =
5172     xulrunnerWrapper {
5173       launcher = "chatzilla";
5174       application = callPackage ../applications/networking/irc/chatzilla { };
5175     };
5177   chrome = callPackage ../applications/networking/browsers/chromium {
5178     inherit (gtkLibs) gtk glib pango atk;
5179     inherit (gnome) GConf;
5180     patchelf = patchelf06;
5181     libjpeg = libjpeg62;
5182   };
5184   chromeWrapper = wrapFirefox chrome "chrome" "";
5186   cinelerra = callPackage ../applications/video/cinelerra {
5187     fftw = fftwSinglePrec;
5188     inherit (gnome) esound;
5189   };
5191   compizBase = (builderDefsPackage (import ../applications/window-managers/compiz/0.8.0.nix)) {
5192     inherit lib stringsWithDeps builderDefs;
5193     inherit fetchurl stdenv pkgconfig libpng mesa perl perlXMLParser libxslt gettext
5194       intltool binutils;
5195     inherit (xorg) libXcomposite libXfixes libXdamage libXrandr
5196       libXinerama libICE libSM libXrender xextproto compositeproto fixesproto
5197       damageproto randrproto xineramaproto renderproto kbproto xproto libX11
5198       libxcb;
5199     inherit (gnome) startupnotification libwnck GConf;
5200     inherit (gtkLibs) gtk;
5201     inherit (gnome) libgnome libgnomeui metacity
5202       glib pango libglade libgtkhtml gtkhtml
5203       libgnomecanvas libgnomeprint
5204       libgnomeprintui gnomepanel;
5205     gnomegtk = gnome.gtk;
5206     inherit librsvg fuse;
5207     inherit dbus dbus_glib;
5208   };
5210   compiz = compizBase.passthru.function (x : x // {
5211     extraConfigureFlags = getConfig ["compiz" "extraConfigureFlags"] [];
5212   });
5214   compizFusion = callPackage ../applications/window-managers/compiz-fusion {
5215     version = getConfig ["compizFusion" "version"] "0.7.8";
5216     inherit (gnome) startupnotification libwnck GConf;
5217     inherit (gtkLibs) gtk;
5218     inherit (gnome) libgnome libgnomeui metacity
5219       glib pango libglade libgtkhtml gtkhtml
5220       libgnomecanvas libgnomeprint
5221       libgnomeprintui gnomepanel gnomedesktop;
5222     gnomegtk = gnome.gtk;
5223   };
5225   compizExtra = callPackage ../applications/window-managers/compiz/extra.nix {
5226     inherit (gnome) GConf;
5227     inherit (gtkLibs) gtk;
5228   };
5230   cinepaint = callPackage ../applications/graphics/cinepaint {
5231     inherit (gtkLibs) gtk glib;
5232     fltk = fltk11;
5233   };
5235   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5236     inherit makeWrapper;
5237     python = pythonFull;
5238   };
5240   comical = callPackage ../applications/graphics/comical {
5241     wxGTK = wxGTK26;
5242   };
5244   conkeror = xulrunnerWrapper {
5245     launcher = "conkeror";
5246     application = callPackage ../applications/networking/browsers/conkeror { };
5247   };
5249   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5250     inherit cmake patchelf;
5251     imagemagick=imagemagick;
5252   };
5254   cvs = callPackage ../applications/version-management/cvs { };
5256   cvsps = callPackage ../applications/version-management/cvsps { };
5258   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5260   d4x = callPackage ../applications/misc/d4x {
5261     inherit (gtkLibs) gtk glib;
5262   };
5264   darcs = haskellPackages.darcs;
5266   dia = callPackage ../applications/graphics/dia {
5267     inherit (gtkLibs) gtk glib;
5268   };
5270   djvulibre = callPackage ../applications/misc/djvulibre { };
5272   djview4 = callPackage ../applications/graphics/djview { };
5274   dmenu = callPackage ../applications/misc/dmenu { };
5276   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5277     inherit libpng libtiff libjpeg imagemagick librsvg
5278       pkgconfig bzip2 zlib libtool freetype fontconfig
5279       ghostscript jasper;
5280     inherit (xlibs) libX11;
5281   };
5283   dvdauthor = callPackage ../applications/video/dvdauthor { };
5285   dwm = callPackage ../applications/window-managers/dwm {
5286     patches = getConfig [ "dwm" "patches" ] [];
5287   };
5289   eaglemode = callPackage ../applications/misc/eaglemode { };
5291   eclipse = callPackage ../applications/editors/eclipse {
5292     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5293     # working correctly.
5294     inherit (gtkLibs216) glib gtk;
5295   };
5296   eclipseLatest = eclipse.override { version = "latest"; };
5298   ed = callPackage ../applications/editors/ed { };
5300   elinks = callPackage ../applications/networking/browsers/elinks { };
5302   elvis = callPackage ../applications/editors/elvis { };
5304   emacs = emacs23;
5306   emacs22 = callPackage ../applications/editors/emacs-22 {
5307     inherit (gtkLibs) gtk;
5308     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5309     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5310   };
5312   emacs23 = callPackage ../applications/editors/emacs-23 {
5313     # use override to select the appropriate gui toolkit
5314     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5315     Xaw3d = null;
5316     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5317     # TODO: these packages don't build on Darwin.
5318     gconf = if stdenv.isDarwin then null else gnome.GConf;
5319     librsvg = if stdenv.isDarwin then null else librsvg;
5320   };
5322   emacsSnapshot = lowPrio (import ../applications/editors/emacs-snapshot {
5323     inherit fetchcvs stdenv ncurses pkgconfig x11 Xaw3d
5324       libpng libjpeg libungif libtiff texinfo dbus
5325       autoconf automake;
5326     inherit (xlibs) libXaw libXpm libXft;
5327     inherit (gtkLibs) gtk;
5328     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5329     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5330     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5331     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5332     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5333   });
5335   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5336     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5338     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5340     cua = callPackage ../applications/editors/emacs-modes/cua { };
5342     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5344     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5346     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5348     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5350     emms = callPackage ../applications/editors/emacs-modes/emms { };
5352     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5353       # Requires Emacs 23, for `avl-tree'.
5354     };
5356     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5358     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5360     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5362     magit = callPackage ../applications/editors/emacs-modes/magit { };
5364     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5366     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5368     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5369     # we want it to have higher precedence.
5370     org = hiPrio (import ../applications/editors/emacs-modes/org {
5371       inherit fetchurl stdenv emacs texinfo;
5372     });
5374     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5376     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5378     quack = callPackage ../applications/editors/emacs-modes/quack { };
5380     remember = callPackage ../applications/editors/emacs-modes/remember { };
5382     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5384     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5385   };
5387   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5388   emacs23Packages = emacsPackages emacs23 pkgs.emacs23Packages;
5390   epdfview = callPackage ../applications/misc/epdfview {
5391     inherit (gtkLibs) gtk;
5392   };
5394   evince = callPackage ../applications/misc/evince {
5395     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5396       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5397   };
5399   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5400     fltk = fltk20;
5401   };
5403   fbpanel = callPackage ../applications/window-managers/fbpanel {
5404     inherit (gtkLibs) gtk;
5405   };
5407   fetchmail = import ../applications/misc/fetchmail {
5408     inherit stdenv fetchurl openssl;
5409   };
5411   fossil = callPackage ../applications/version-management/fossil { };
5413   grass = import ../applications/misc/grass {
5414     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5415       libXaw libXrender;
5416     inherit getConfig composableDerivation stdenv fetchurl
5417       lib flex bison cairo fontconfig
5418       gdal zlib ncurses gdbm proj pkgconfig swig
5419       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5420       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5421     fftw = fftwSinglePrec;
5422     motif = lesstif;
5423     opendwg = libdwg;
5424     wxPython = wxPython28;
5425   };
5427   grip = callPackage ../applications/misc/grip {
5428     inherit (gtkLibs) gtk glib;
5429     inherit (gnome) libgnome libgnomeui vte;
5430   };
5432   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5434   wireshark = callPackage ../applications/networking/sniffers/wireshark {
5435     inherit (gtkLibs) gtk;
5436   };
5438   wvdial = callPackage ../os-specific/linux/wvdial { };
5440   fbida = builderDefsPackage ../applications/graphics/fbida {
5441     inherit libjpeg libexif giflib libtiff libpng
5442       imagemagick ghostscript which curl pkgconfig
5443       freetype fontconfig;
5444   };
5446   fdupes = callPackage ../tools/misc/fdupes { };
5448   feh = callPackage ../applications/graphics/feh { };
5450   firefox = firefox36Pkgs.firefox;
5451   firefoxWrapper = firefox36Wrapper;
5453   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5454     inherit (gtkLibs) gtk pango;
5455     inherit (gnome) libIDL;
5456   };
5458   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5460   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5461     inherit (gtkLibs) gtk pango;
5462     inherit (gnome) libIDL;
5463   };
5465   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5467   flac = callPackage ../applications/audio/flac { };
5469   flashplayer = flashplayer10;
5471   flashplayer9 = (
5472     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5473       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5474       inherit (xlibs) libX11 libXext libXrender libXt;
5475       inherit (gtkLibs) gtk glib pango atk;
5476     });
5478   flashplayer10 = (
5479     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5480       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat;
5481       inherit (xlibs) libX11 libXext libXrender libXt ;
5482       inherit (gtkLibs) gtk glib pango atk;
5483       debug = getConfig ["flashplayer" "debug"] false;
5484     });
5486   flite = callPackage ../applications/misc/flite { };
5488   freemind = callPackage ../applications/misc/freemind {
5489     jdk = jdk;
5490     jre = jdk;
5491   };
5493   freepv = callPackage ../applications/graphics/freepv { };
5495   xfontsel = callPackage ../applications/misc/xfontsel { };
5496   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5498   fspot = callPackage ../applications/graphics/f-spot {
5499     inherit (gnome) libgnome libgnomeui;
5500     gtksharp = gtksharp1;
5501   };
5503   gimp = callPackage ../applications/graphics/gimp {
5504     inherit (gnome) gtk libart_lgpl;
5505   };
5507   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5508     inherit pkgs gimp;
5509   });
5511   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5512     inherit pkgs;
5513   });
5514   git = gitAndTools.git;
5515   gitFull = gitAndTools.gitFull;
5517   gnucash = callPackage ../applications/office/gnucash {
5518     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5519       libgnomeprint;
5520     gconf = gnome.GConf;
5521   };
5523   qcad = callPackage ../applications/misc/qcad { };
5525   qjackctl = callPackage ../applications/audio/qjackctl {
5526     qt4 = qt4;
5527   };
5529   gkrellm = callPackage ../applications/misc/gkrellm {
5530     inherit (gtkLibs) glib gtk;
5531   };
5533   gnash = callPackage ../applications/video/gnash {
5534     inherit (gtkLibs) glib gtk;
5535     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg;
5536   };
5538   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5539     inherit (gtkLibs) glib gtk;
5540     inherit (gnome) GConf;
5541   };
5543   gnunet = callPackage ../applications/networking/p2p/gnunet {
5544     inherit (gnome) gtk libglade;
5545     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5546   };
5548   gocr = callPackage ../applications/graphics/gocr { };
5550   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5552   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5553     inherit libgphoto2 fuse pkgconfig glib;
5554   };
5556   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5558   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5560   gtkpod = callPackage ../applications/audio/gtkpod {
5561     inherit (gtkLibs) gtk glib;
5562     inherit (gnome) libglade;
5563   };
5565   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5566     inherit libpng libcv;
5567   };
5569   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5570     inherit libpng pkgconfig;
5571   };
5573   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5574     inherit (gnome) GConf;
5575     browser = firefox;
5576   };
5578   geeqie = callPackage ../applications/graphics/geeqie {
5579     inherit (gtkLibs) gtk;
5580   };
5582   gqview = callPackage ../applications/graphics/gqview {
5583     inherit (gtkLibs) gtk;
5584   };
5586   googleearth = import ../applications/misc/googleearth {
5587     inherit (pkgsi686Linux) stdenv fetchurl glibc mesa freetype zlib glib;
5588     inherit (pkgsi686Linux.xlibs) libSM libICE libXi libXv libXrender
5589       libXrandr libXfixes libXcursor libXinerama libXext libX11;
5590   };
5592   gosmore = builderDefsPackage ../applications/misc/gosmore {
5593     inherit fetchsvn curl pkgconfig libxml2;
5594     inherit (gtkLibs) gtk;
5595   };
5597   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5599   gpscorrelate = callPackage ../applications/misc/gpscorrelate {
5600     inherit (gtkLibs) gtk;
5601   };
5603   gpsd = callPackage ../servers/gpsd {
5605     # We need a Python with NCurses bindings.
5606     python = pythonFull;
5607   };
5609   gv = callPackage ../applications/misc/gv { };
5611   hello = callPackage ../applications/misc/hello/ex-2 { };
5613   homebank = callPackage ../applications/office/homebank {
5614     inherit (gtkLibs) gtk;
5615   };
5617   htmldoc = callPackage ../applications/misc/htmldoc {
5618     fltk = fltk11;
5619   };
5621   hugin = callPackage ../applications/graphics/hugin {
5622     stdenv = stdenv2;
5623   };
5625   i810switch = callPackage ../os-specific/linux/i810switch { };
5627   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5628     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5629       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5630       wirelesstools;
5631     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5632     inherit (xlibs) pixman;
5633     inherit (pythonPackages) ply;
5634   });
5636   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5637     application = "xulrunner";
5638     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5639       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5640       wirelesstools;
5641     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5642     inherit (xlibs) pixman;
5643     inherit (pythonPackages) ply;
5644   });
5646   icecat3Xul =
5647     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5648        [ icecat3 icecatXulrunner3 ])
5649     // { inherit (icecat3) gtk isFirefox3Like meta; };
5651   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5653   icewm = callPackage ../applications/window-managers/icewm { };
5655   ikiwiki = callPackage ../applications/misc/ikiwiki {
5656     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5657       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5658       RpcXML XMLSimple PerlMagick;
5659     gitSupport = getPkgConfig "ikiwiki" "git" false;
5660     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5661     extraUtils = [];
5662   };
5664   imagemagick = callPackage ../applications/graphics/ImageMagick {
5665     tetex = null;
5666     librsvg = null;
5667   };
5669   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5671   # Impressive, formerly known as "KeyJNote".
5672   impressive = callPackage ../applications/office/impressive {
5674     # XXX These are the PyOpenGL dependencies, which we need here.
5676     inherit (pythonPackages) pyopengl;  };
5678   inkscape = callPackage ../applications/graphics/inkscape {
5679     inherit (pythonPackages) lxml;
5680     inherit (gtkLibs) gtk glib glibmm gtkmm;
5681   };
5683   ion3 = callPackage ../applications/window-managers/ion-3 {
5684     lua = lua5;
5685   };
5687   iptraf = callPackage ../applications/networking/iptraf { };
5689   irssi = callPackage ../applications/networking/irc/irssi { };
5691   jackmeter = callPackage ../applications/audio/jackmeter { };
5693   jedit = callPackage ../applications/editors/jedit { };
5695   jigdo = callPackage ../applications/misc/jigdo {
5696     inherit (gtkLibs) gtk;
5697   };
5699   joe = callPackage ../applications/editors/joe { };
5701   jwm = callPackage ../applications/window-managers/jwm { };
5703   kermit = callPackage ../tools/misc/kermit { };
5705   kino = import ../applications/video/kino {
5706     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5707       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5708     inherit libsamplerate ffmpeg;
5709     inherit (gnome) libglade gtk glib;
5710     inherit (xlibs) libXv libX11;
5711     inherit (gtkLibs) pango;
5712     # #  optional
5713     #  inherit ffmpeg2theora sox, vorbis-tools lame mjpegtools dvdauthor 'Q'dvdauthor growisofs mencoder;
5714   };
5716   lame = callPackage ../applications/audio/lame { };
5718   larswm = callPackage ../applications/window-managers/larswm { };
5720   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
5722   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
5723     fftw = fftwSinglePrec;
5724   };
5726   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
5727     inherit (gtkLibs) gtk;
5728     inherit (gnome) libglade;
5729   };
5731   links = callPackage ../applications/networking/browsers/links { };
5733   ledger = callPackage ../applications/office/ledger { };
5735   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
5736     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
5737       gpm openssl SDL SDL_image SDL_net pkgconfig;
5738     inherit (xlibs) libX11 libXau xproto libXt;
5739   };
5741   lynx = callPackage ../applications/networking/browsers/lynx { };
5743   lyx = callPackage ../applications/misc/lyx {
5744    qt = qt4;
5745   };
5747   meld = callPackage ../applications/version-management/meld {
5748     inherit (gnome) scrollkeeper;
5749     pygtk = pyGtkGlade;
5750   };
5752   mercurial = callPackage ../applications/version-management/mercurial {
5753     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
5754     python = # allow cloning sources from https servers.
5755       if getConfig ["mercurial" "httpsSupport"] true
5756       then pythonFull
5757       else pythonBase;
5758   };
5760   merkaartor = callPackage ../applications/misc/merkaartor {
5761     qt = qt4;
5762   };
5764   meshlab = callPackage ../applications/graphics/meshlab {
5765     qt = qt4;
5766   };
5768   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
5769     inherit imagemagick intltool python pkgconfig webkit libxml2
5770       which gettext makeWrapper file libidn sqlite docutils libnotify;
5771     inherit (gtkLibs) gtk glib;
5772     inherit (gnome28) gtksourceview;
5773     inherit (webkit.passthru.args) libsoup;
5774   };
5776   minicom = callPackage ../tools/misc/minicom { };
5778   mmex = callPackage ../applications/office/mmex { };
5780   monodevelop = callPackage ../applications/editors/monodevelop {
5781     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
5782     mozilla = firefox;
5783     gtksharp = gtksharp2;
5784   };
5786   monodoc = callPackage ../applications/editors/monodoc {
5787     gtksharp = gtksharp1;
5788   };
5790   monotone = callPackage ../applications/version-management/monotone {
5791     lua = lua5;
5792   };
5794   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
5795     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
5796     inherit (gnome) gtk libgnomecanvas glib;
5797   };
5799   mozilla = callPackage ../applications/networking/browsers/mozilla {
5800     inherit (gtkLibs) gtk;
5801     inherit (gnome) libIDL;
5802   };
5804   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
5805     inherit firefox;
5806     inherit (xlibs) libX11 xproto;
5807   };
5809   mpc123 = callPackage ../applications/audio/mpc123 { };
5811   mpg321 = callPackage ../applications/audio/mpg321 { };
5813   MPlayer = callPackage ../applications/video/MPlayer {
5814     alsaSupport = true;
5815     alsa = alsaLib;
5816     theoraSupport = true;
5817     cacaSupport = true;
5818     xineramaSupport = true;
5819     randrSupport = true;
5820     cddaSupport = true;
5821     amrSupport = getConfig [ "MPlayer" "amr" ] false;
5822     x264Support = true;
5823     xvidSupport = true;
5824   };
5826   MPlayerPlugin = browser:
5827     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
5828       inherit browser;
5829       inherit fetchurl stdenv pkgconfig gettext;
5830       inherit (xlibs) libXpm;
5831       # !!! should depend on MPlayer
5832     };
5834   mrxvt = callPackage ../applications/misc/mrxvt { };
5836   multisync = callPackage ../applications/misc/multisync {
5837     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
5838   };
5840   mutt = callPackage ../applications/networking/mailreaders/mutt { };
5842   msmtp = callPackage ../applications/networking/msmtp { };
5844   mythtv = callPackage ../applications/video/mythtv {
5845     qt3 = qt3mysql;
5846   };
5848   nano = callPackage ../applications/editors/nano { };
5850   nedit = callPackage ../applications/editors/nedit {
5851       motif = lesstif;
5852   };
5854   netsurfBrowser = netsurf.browser;
5855   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
5857   nvi = callPackage ../applications/editors/nvi { };
5859   openjump = callPackage ../applications/misc/openjump { };
5861   openoffice = callPackage ../applications/office/openoffice {
5862     inherit (gtkLibs) gtk;
5863     inherit (perlPackages) ArchiveZip CompressZlib;
5864     inherit (gnome) GConf ORBit2;
5865     neon = neon029;
5866     stdenv = stdenv2;
5867   };
5869   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
5870     inherit (gtkLibs) gtk;
5871     inherit (perlPackages) ArchiveZip CompressZlib;
5872     inherit (gnome) GConf ORBit2;
5873     neon = neon029;
5874     stdenv = stdenv2;
5875   };
5877   opera = callPackage ../applications/networking/browsers/opera {
5878     qt = qt3;
5879   };
5881   pan = callPackage ../applications/networking/newsreaders/pan {
5882     inherit (gtkLibs) gtk;
5883     gmime = gmime_2_2;
5884     spellChecking = false;
5885   };
5887   panotools = callPackage ../applications/graphics/panotools { };
5889   pavucontrol = callPackage ../applications/audio/pavucontrol {
5890     inherit (gtkLibs) gtkmm;
5891     inherit (gnome) libglademm;
5892   };
5894   paraview = callPackage ../applications/graphics/paraview {
5895     stdenv = stdenv2;
5896   };
5898   partitionManager = callPackage ../tools/misc/partition-manager {
5899     kde = kde44;
5900     qt = qt4;
5901   };
5903   pdftk = callPackage ../tools/typesetting/pdftk { };
5905   pidgin = import ../applications/networking/instant-messengers/pidgin {
5906     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
5907       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
5908     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
5909     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
5910     GStreamer = gst_all.gstreamer;
5911     inherit (gtkLibs) gtk;
5912     inherit (gnome) startupnotification;
5913     inherit (xlibs) libXScrnSaver;
5914     inherit (gst_all) gstPluginsBase;
5915   };
5917   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
5918     imagemagick = imagemagickBig;
5919     inherit (gtkLibs) glib gtk;
5920   };
5922   pidginlatexSF = builderDefsPackage
5923     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
5924     {
5925       inherit pkgconfig pidgin texLive imagemagick which;
5926       inherit (gtkLibs) glib gtk;
5927     };
5929   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
5931   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
5933   pinfo = callPackage ../applications/misc/pinfo { };
5935   pinta = callPackage ../applications/graphics/pinta {
5936     gtksharp = gtksharp2;
5937   };
5939   pqiv = callPackage ../applications/graphics/pqiv {
5940     inherit (gtkLibs) gtk;
5941   };
5943   # perhaps there are better apps for this task? It's how I had configured my preivous system.
5944   # And I don't want to rewrite all rules
5945   procmail = callPackage ../applications/misc/procmail { };
5947   pstree = callPackage ../applications/misc/pstree { };
5949   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
5951   qemu = callPackage ../applications/virtualization/qemu/0.12.3.nix { };
5953   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
5955   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
5957   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
5959   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
5961   ratpoison = callPackage ../applications/window-managers/ratpoison { };
5963   rawtherapee = callPackage ../applications/graphics/rawtherapee {
5964     inherit (gtkLibs) gtk gtkmm;
5965   };
5967   rcs = callPackage ../applications/version-management/rcs { };
5969   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
5971   RealPlayer = callPackage ../applications/video/RealPlayer {
5972       inherit (gtkLibs) glib pango atk gtk;
5973       libstdcpp5 = gcc33.gcc;
5974   };
5976   rekonq = callPackage ../applications/networking/browsers/rekonq {
5977     inherit (gtkLibs) gtk;
5978     inherit (kde4) qt4 kdelibs automoc4 phonon;
5979   };
5981   rsibreak = callPackage ../applications/misc/rsibreak {
5982     inherit (kde4) kdelibs kdebase_workspace;
5983   };
5985   rsync = callPackage ../applications/networking/sync/rsync {
5986     enableACLs = !stdenv.isDarwin;
5987   };
5989   rxvt = callPackage ../applications/misc/rxvt { };
5991   # = urxvt
5992   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
5993     perlSupport = false;  };
5995   sakura = callPackage ../applications/misc/sakura {
5996     inherit (gtkLibs) gtk;
5997     inherit (gnome) vte;
5998   };
6000   sbagen = callPackage ../applications/misc/sbagen { };
6002   scribus = callPackage ../applications/office/scribus {
6003     inherit (gnome) libart_lgpl;
6004     qt = qt3;
6005   };
6007   seeks = callPackage ../tools/networking/p2p/seeks { };
6009   seg3d = callPackage ../applications/graphics/seg3d {
6010     wxGTK = wxGTK28.override {
6011       unicode = false;
6012   };
6013   };
6015   semnotes = callPackage ../applications/misc/semnotes {
6016     inherit (kde4) qt4 kdelibs automoc4 phonon soprano;
6017   };
6019   skype_linux = callPackage ../applications/networking/skype {
6020     qt = qt46;
6021     inherit (gtkLibs) glib;
6022   };
6024   slim = callPackage ../applications/display-managers/slim { };
6026   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6027     inherit fetchurl stdenv stringsWithDeps lib fftw;
6028     inherit pkgconfig gmp gettext;
6029     inherit (xlibs) libXpm libX11;
6030     inherit (gtkLibs) gtk glib;
6031   };
6033   snd = sndBase.passthru.function {
6034     inherit guile mesa libtool jackaudio alsaLib;
6035   };
6037   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6038     inherit (vamp) vampSDK;
6039     qt = qt4;
6040   };
6042   sox = callPackage ../applications/misc/audio/sox { };
6044   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6045     inherit texinfo;
6046     clisp = clisp_2_44_1;
6047   };
6049   subversion = callPackage ../applications/version-management/subversion/default.nix {
6050     neon = neon029;
6051     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6052     httpServer = getConfig ["subversion" "httpServer"] false;
6053     httpSupport = getConfig ["subversion" "httpSupport"] true;
6054     sslSupport = getConfig ["subversion" "sslSupport"] true;
6055     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6056     perlBindings = getConfig ["subversion" "perlBindings"] false;
6057     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6058     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6059     httpd = apacheHttpd;
6060   };
6062   svk = perlPackages.SVK;
6064   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6065     inherit (gtkLibs) gtk;
6066     sslSupport = true;
6067     gpgSupport = true;
6068   };
6070   # linux only by now
6071   synergy = callPackage ../applications/misc/synergy { };
6073   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6074     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6075       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6076       numpy pyasn1;
6077     mock = pythonPackages.mock060;
6078   };
6080   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6081     inherit makeWrapper python;
6082   };
6084   tangogps = callPackage ../applications/misc/tangogps {
6085     inherit (gtkLibs) gtk;
6086     gconf = gnome.GConf;
6087   };
6089   /* does'nt work yet i686-linux only (32bit version)
6090   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6091   */
6093   taskJuggler = callPackage ../applications/misc/taskjuggler {
6094     qt = qt3;
6096     # KDE support is not working yet.
6097     inherit (kde3) kdelibs kdebase;
6098     withKde = getPkgConfig "taskJuggler" "kde" false;
6099   };
6101   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6103   thunderbird = thunderbird3;
6105   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6106     inherit (gtkLibs) gtk;
6107     inherit (gnome) libIDL;
6108   };
6110   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6111     inherit (gtkLibs) gtk;
6112     inherit (gnome) libIDL;
6113   };
6115   timidity = callPackage ../tools/misc/timidity { };
6117   tkcvs = callPackage ../applications/version-management/tkcvs { };
6119   tla = callPackage ../applications/version-management/arch { };
6121   transmission = callPackage ../applications/networking/p2p/transmission {
6122     inherit (gtkLibs) gtk;
6123   };
6125   twinkle = callPackage ../applications/networking/twinkle {
6126     qt = qt3;
6127     boost = boostFull;
6128   };
6130   unison = callPackage ../applications/networking/sync/unison { };
6132   uucp = callPackage ../tools/misc/uucp { };
6134   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6135     inherit pkgconfig webkit makeWrapper;
6136     inherit (gtkLibs) gtk glib;
6137     inherit (xlibs) libX11;
6138     libsoup = gnome28.libsoup_2_31;
6139   };
6141   valknut = callPackage ../applications/networking/p2p/valknut {
6142     qt = qt3;
6143   };
6145   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6146   {
6147     inherit monotone flup cheetahTemplate highlight ctags
6148       makeWrapper graphviz which python;
6149   };
6151   vim = callPackage ../applications/editors/vim { };
6153   vimHugeX = vim_configurable;
6155   vim_configurable = import ../applications/editors/vim/configurable.nix {
6156     inherit fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6157     inherit (xlibs) libX11 libXext libSM libXpm
6158         libXt libXaw libXau libXmu libICE;
6159     inherit (gtkLibs) glib gtk;
6160     features = "huge"; # one of  tiny, small, normal, big or huge
6161     # optional features by passing
6162     # python
6163     # TODO mzschemeinterp perlinterp
6164     inherit python perl tcl ruby /*x11*/;
6166     lua = lua5;
6168     # optional features by flags
6169     flags = [ "X11" ]; # only flag "X11" by now
6170   };
6172   virtualgl = callPackage ../tools/X11/virtualgl { };
6174   vlc = callPackage ../applications/video/vlc {
6175     dbus = dbus.libs;
6176     alsa = alsaLib;
6177     lua = lua5;
6178   };
6180   vnstat = callPackage ../applications/networking/vnstat { };
6182   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6184   vwm = callPackage ../applications/window-managers/vwm { };
6186   w3m = callPackage ../applications/networking/browsers/w3m {
6187     graphicsSupport = false;
6188   };
6190   wings = callPackage ../applications/graphics/wings { };
6192   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6193   wmiimenu = import ../applications/window-managers/wmii31 {
6194     libixp = libixp_for_wmii;
6195     inherit fetchurl /* fetchhg */ stdenv gawk;
6196     inherit (xlibs) libX11;
6197   };
6199   wmiiSnap = import ../applications/window-managers/wmii {
6200     libixp = libixp_for_wmii;
6201     inherit fetchurl /* fetchhg */ stdenv gawk;
6202     inherit (xlibs) libX11 xextproto libXt libXext;
6203     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6204   };
6206   wordnet = callPackage ../applications/misc/wordnet { };
6208   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6209     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6210     plugins =
6211       let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6212       in
6213        ([]
6214         ++ lib.optional (!enableAdobeFlash) gnash
6215         ++ lib.optional enableAdobeFlash flashplayer
6216         # RealPlayer is disabled by default for legal reasons.
6217         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6218         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6219         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6220         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6221        );
6222   };
6224   x11vnc = callPackage ../tools/X11/x11vnc { };
6226   x2vnc = callPackage ../tools/X11/x2vnc { };
6228   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6229     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6230     inherit gsl aalib zlib libpng intltool gettext perl;
6231   };
6233   xara = callPackage ../applications/graphics/xara {
6234     inherit (gtkLibs) gtk;
6235     wxGTK = wxGTK26;
6236   };
6238   xawtv = callPackage ../applications/video/xawtv { };
6240   xchat = callPackage ../applications/networking/irc/xchat {
6241     inherit (gtkLibs) gtk;
6242   };
6244   xchm = callPackage ../applications/misc/xchm { };
6246   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6248   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6250   /* Doesn't work yet
6252   xen = builderDefsPackage (import ../applications/virtualization/xen) {
6253     inherit python e2fsprogs gnutls pkgconfig libjpeg
6254       ncurses SDL libvncserver zlib;
6255     texLive = if (getConfig ["xen" "texLive"] false) then texLive else null;
6256     graphviz = if (getConfig ["xen" "graphviz"] false) then graphviz else null;
6257     ghostscript = if (getConfig ["xen" "ghostscript"] false) then ghostscript else null;
6258   }; */
6260   xfig = callPackage ../applications/graphics/xfig {
6261     stdenv = overrideGCC stdenv gcc34;
6262   };
6264   xineUI = callPackage ../applications/video/xine-ui { };
6266   xmms = callPackage ../applications/audio/xmms {
6267     inherit (gnome) esound;
6268     inherit (gtkLibs1x) glib gtk;
6269     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6270   };
6272   xneur = callPackage ../applications/misc/xneur {
6273     GStreamer=gst_all.gstreamer;
6274     inherit (gtkLibs) glib gtk pango atk;
6275   };
6277   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6278     GStreamer = gst_all.gstreamer;
6279   };
6281   xournal = callPackage ../applications/graphics/xournal {
6282     inherit (gtkLibs) gtk atk pango glib;
6283     inherit (gnome) libgnomeprint libgnomeprintui
6284       libgnomecanvas;
6285   };
6287   xpdf = callPackage ../applications/misc/xpdf {
6288     motif = lesstif;
6289     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6290   };
6292   xpra = callPackage ../tools/X11/xpra {
6293     inherit (gtkLibs) gtk;
6294     pyrex = pyrex095;
6295   };
6297   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6298     inherit (gtkLibs) gtk;
6299     inherit (gnome) libglade;
6300   };
6302   xterm = callPackage ../applications/misc/xterm { };
6304   xtrace = callPackage ../tools/X11/xtrace { };
6306   xlaunch = callPackage ../tools/X11/xlaunch { };
6308   xmacro = callPackage ../tools/X11/xmacro { };
6310   xmove = callPackage ../applications/misc/xmove { };
6312   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6313     inherit (gtkLibs) gtk;
6314     inherit (xlibs) libX11 libXtst xextproto libXext
6315       inputproto libXi xproto recordproto;
6316     inherit pkgconfig;
6317   };
6319   xvidcap = callPackage ../applications/video/xvidcap {
6320     inherit (gtkLibs) gtk;
6321     inherit (gnome) scrollkeeper libglade;
6322   };
6324   yate = callPackage ../applications/misc/yate {
6325     qt = qt4;
6326   };
6328   # doesn't compile yet - in case someone else want's to continue ..
6329   # use Trunk because qgisReleased segfaults no resize for now
6330   qgis = qgisTrunk;
6331   qgisReleased = (import ../applications/misc/qgis) {
6332     inherit composableDerivation fetchsvn stdenv flex lib
6333             ncurses fetchurl perl cmake gdal geos proj x11
6334             gsl libpng zlib bison
6335             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6336             python postgresql pyqt4;
6337     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6338     inherit (xorg) libICE;
6339     qt = qt4;
6341     # optional features
6342     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6343   };
6345   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6346     qgis = qgisReleased;
6347   };
6349   zapping = callPackage ../applications/video/zapping {
6350     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6351     teletextSupport = true;
6352     jpegSupport = true;
6353     pngSupport = true;
6354     recordingSupport = true;
6355   };
6357   zathura = callPackage ../applications/misc/zathura {
6358     inherit (gtkLibs) gtk;
6359   };
6361   ### GAMES
6363   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6365   blackshades = callPackage ../games/blackshades { };
6367   blackshadeselite = callPackage ../games/blackshadeselite { };
6369   bsdgames = callPackage ../games/bsdgames { };
6371   castleCombat = callPackage ../games/castle-combat { };
6373   construoBase = callPackage ../games/construo {
6374     mesa = null;
6375     freeglut = null;
6376   };
6378   construo = construoBase.override {
6379     inherit mesa freeglut;
6380   };
6382   eduke32 = callPackage ../games/eduke32 {
6383     inherit (gtkLibs) gtk;
6384   };
6386   exult = callPackage ../games/exult {
6387     stdenv = overrideGCC stdenv gcc42;
6388   };
6390   /*
6391   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6392     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6393       autoconf automake libtool flex bison;
6394   });
6395   */
6397   freedink = callPackage ../games/freedink { };
6399   fsg = callPackage ../games/fsg {
6400     inherit (gtkLibs) glib gtk;
6401     wxGTK = wxGTK28.override {unicode = false;
6402   };
6403   };
6405   gemrb = callPackage ../games/gemrb { };
6407   gltron = callPackage ../games/gltron { };
6409   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6410     flex = flex2535;
6411   };
6413   gnugo = callPackage ../games/gnugo { };
6415   gparted = callPackage ../tools/misc/gparted {
6416     inherit (gtkLibs) gtk glib gtkmm;
6417     inherit (gnome) gnomedocutils;
6418   };
6420   hexen = callPackage ../games/hexen { };
6422   kobodeluxe = callPackage ../games/kobodeluxe { };
6424   lincity = builderDefsPackage (import ../games/lincity) {
6425     inherit (xlibs) libX11 libXext xextproto
6426       libICE libSM xproto;
6427     inherit libpng zlib;
6428   };
6430   micropolis = callPackage ../games/micropolis { };
6432   openttd = callPackage ../games/openttd {
6433     zlib = zlibStatic;
6434   };
6436   pioneers = import ../games/pioneers {
6437     inherit stdenv fetchurl pkgconfig intltool;
6438     inherit (gtkLibs) gtk /*glib gtkmm*/;
6439   };
6441   quake3demo = callPackage ../games/quake3/wrapper {
6442     name = "quake3-demo-${quake3game.name}";
6443     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6444     game = quake3game;
6445     paks = [quake3demodata];
6446   };
6448   quake3demodata = callPackage ../games/quake3/demo { };
6450   quake3game = callPackage ../games/quake3/game { };
6452   rogue = callPackage ../games/rogue { };
6454   scummvm = callPackage ../games/scummvm { };
6456   scorched3d = callPackage ../games/scorched3d {
6457     wxGTK = wxGTK26;
6458   };
6460   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6461     inherit (gtkLibs) gtk;
6462     inherit pkgconfig fetchsvn perl;
6463     inherit (xlibs) libX11;
6464   };
6466   six = callPackage ../games/six {
6467     inherit (kde3) arts kdelibs;
6468   };
6470   # You still can override by passing more arguments.
6471   spaceOrbit = callPackage ../games/orbit {
6472     inherit (gnome) esound;  };
6474   superTux = callPackage ../games/super-tux { };
6476   superTuxKart = callPackage ../games/super-tux-kart { };
6478   teeworlds = callPackage ../games/teeworlds { };
6480   tennix = callPackage ../games/tennix { };
6482   /*tpm = import ../games/thePenguinMachine {
6483     inherit stdenv fetchurl pil pygame SDL;
6484     python24 = python;
6485   };*/
6487   tremulous = callPackage ../games/tremulous { };
6489   ultimatestunts = callPackage ../games/ultimatestunts { };
6491   urbanterror = callPackage ../games/urbanterror { };
6493   ut2004demo = callPackage ../games/ut2004demo { };
6495   warsow = callPackage ../games/warsow {
6496     libjpeg = libjpeg62;
6497   };
6499   warzone2100 = callPackage ../games/warzone2100 {
6500     flex = flex2535;
6501   };
6503   xboard = builderDefsPackage (import ../games/xboard) {
6504     inherit (xlibs) libX11 xproto libXt libXaw libSM
6505       libICE libXmu libXext libXpm;
6506     inherit gnuchess texinfo;
6507   };
6509   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6510     inherit (xlibs) libX11 xproto libXpm libXt;
6511   };
6513   zdoom = callPackage ../games/zdoom { };
6515   zoom = callPackage ../games/zoom { };
6517   keen4 = callPackage ../games/keen4 { };
6520   ### DESKTOP ENVIRONMENTS
6523   enlightenment = callPackage ../desktops/enlightenment { };
6525   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6527   gnome = gnome28;
6529   kde3 = recurseIntoAttrs {
6531     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6532       stdenv = overrideGCC stdenv gcc43;
6533       qt = qt3;
6534     };
6536     kdebase = callPackage ../desktops/kde-3/kdebase {
6537       stdenv = overrideGCC stdenv gcc43;
6538       inherit (kde3) kdelibs;
6539       qt = qt3;
6540     };
6542     arts = callPackage ../development/libraries/arts {
6543       qt = qt3;
6544       inherit (gnome) glib;
6545       inherit (kde3) kdelibs;
6546     };
6548     k3b = callPackage ../applications/misc/k3b {
6549       inherit (kde3) kdelibs;
6550     };
6552     kbasket = callPackage ../applications/misc/kbasket {
6553       stdenv = overrideGCC stdenv gcc43;
6554       inherit (kde3) kdelibs;
6555     };
6557     kile = callPackage ../applications/editors/kile {
6558       inherit (kde3) arts kdelibs;
6559       qt = qt3;
6560     };
6562     kphone = callPackage ../applications/networking/kphone {
6563       qt = qt3;
6564       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6565     };
6567     kuickshow = callPackage ../applications/graphics/kuickshow {
6568       inherit (kde3) arts kdelibs;
6569       qt = qt3;
6570     };
6572     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6573       inherit (kde3) kdelibs;
6574       qt = qt3;
6575     };
6577   };
6579   kde4 = kde44;
6581   kde44 = makeOverridable (import ../desktops/kde-4.4) (pkgs // {
6582     qt4 = qt46;
6583     stdenv = stdenv2;
6584   });
6586   kde45 = import ../desktops/kde-4.5 (newScope ({
6587     qt4 = qt47;
6588     pyqt4 = pyqt4.override { qt4 = qt47; };
6589     libdbusmenu_qt = libdbusmenu_qt.override { qt4 = qt47; };
6590     shared_desktop_ontologies = shared_desktop_ontologies.override { v = "0.5"; };
6591     stdenv = stdenv2;
6592   } // kde45) );
6594   xfce = xfce4;
6595   xfce4 = recurseIntoAttrs (import ../desktops/xfce-4 pkgs);
6597   ### SCIENCE
6599   xplanet = callPackage ../applications/science/xplanet {
6600     inherit (gtkLibs) pango;
6601   };
6603   ### SCIENCE/GEOMETRY
6605   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6606     inherit (gnome) libglade gtk;
6607     inherit libxml2 guile perl intltool libtool pkgconfig;
6608   };
6611   ### SCIENCE/BIOLOGY
6613   alliance = callPackage ../applications/science/electronics/alliance {
6614     motif = lesstif;
6615   };
6617   arb = callPackage ../applications/science/biology/arb {
6618     lesstif = lesstif93;
6619     stdenv = overrideGCC stdenv gcc42;
6620   };
6622   biolib = callPackage ../development/libraries/science/biology/biolib { };
6624   emboss = callPackage ../applications/science/biology/emboss { };
6626   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6628   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6629     inherit tcsh mesa lesstif;
6630     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6631       libXmu libXext;
6632   };
6634   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6636   paml = callPackage ../applications/science/biology/paml { };
6638   /* slr = import ../applications/science/biology/slr {
6639     inherit fetchurl stdenv liblapack;
6640   }; */
6642   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6645   ### SCIENCE/MATH
6647   atlas = callPackage ../development/libraries/science/math/atlas { };
6649   blas = callPackage ../development/libraries/science/math/blas { };
6651   content = builderDefsPackage ../applications/science/math/content {
6652     inherit mesa lesstif;
6653     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6654       libXmu libXext libXcursor;
6655   };
6657   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6660   ### SCIENCE/LOGIC
6662   coq = callPackage ../applications/science/logic/coq {
6663     camlp5 = camlp5_transitional;
6664   };
6666   coq_beta = callPackage ../applications/science/logic/coq/beta.nix {
6667     camlp5 = camlp5_transitional;
6668   };
6670   hol_light = callPackage ../applications/science/logic/hol_light { };
6672   hol_light_binaries = callPackage ../applications/science/logic/hol_light/binaries.nix { };
6674   # This is a special version of OCaml handcrafted especially for
6675   # hol_light it should be merged with the current expresion for ocaml
6676   # one day.
6677   ocaml_with_sources = callPackage ../applications/science/logic/hol_light/ocaml-with-sources.nix { };
6679   isabelle = import ../applications/science/logic/isabelle {
6680     inherit (pkgs) stdenv fetchurl nettools perl polyml;
6681     inherit (pkgs.emacs23Packages) proofgeneral;
6682   };
6684   ssreflect = callPackage ../applications/science/logic/ssreflect {
6685     camlp5 = camlp5_transitional;
6686   };
6688   ### SCIENCE / ELECTRONICS
6690   ngspice = callPackage ../applications/science/electronics/ngspice { };
6692   gtkwave = callPackage ../applications/science/electronics/gtkwave {
6693     inherit (gtkLibs) gtk;
6694   };
6696   xoscope = callPackage ../applications/science/electronics/xoscope {
6697     inherit (gtkLibs) gtk;
6698   };
6701   ### SCIENCE / MATH
6703   maxima = callPackage ../applications/science/math/maxima { };
6705   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
6707   scilab = callPackage ../applications/science/math/scilab {
6708     inherit (gtkLibs) gtk;
6710     withXaw3d = false;
6711     withTk = true;
6712     withGtk = false;
6713     withOCaml = true;
6714     withX = true;
6715   };
6717   ### SCIENCE / MISC
6719   golly = callPackage ../applications/science/misc/golly { };
6721   simgrid = callPackage ../applications/science/misc/simgrid {
6722     stdenv = stdenv2;
6723   };
6725   tulip = callPackage ../applications/science/misc/tulip {
6726     qt = qt4;
6727   };
6729   vite = callPackage ../applications/science/misc/vite {
6730     qt = qt4;
6731     stdenv = stdenv2;
6732   };
6734   ### MISC
6736   atari800 = callPackage ../misc/emulators/atari800 { };
6738   ataripp = callPackage ../misc/emulators/atari++ { };
6740   auctex = callPackage ../misc/tex/auctex { };
6742   busybox = callPackage ../misc/busybox {
6743     enableStatic = true;
6744   };
6746   cups = callPackage ../misc/cups { };
6748   gutenprint = callPackage ../misc/drivers/gutenprint { };
6750   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
6752   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
6754   dblatex = callPackage ../misc/tex/dblatex { };
6756   dosbox = callPackage ../misc/emulators/dosbox { };
6758   dpkg = callPackage ../tools/package-management/dpkg { };
6760   electricsheep = callPackage ../misc/screensavers/electricsheep { };
6762   foldingathome = callPackage ../misc/foldingathome { };
6764   freestyle = callPackage ../misc/freestyle {
6765     #stdenv = overrideGCC stdenv gcc41;
6766   };
6768   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
6769     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
6770       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
6771       docutils;
6772     dbus = dbus.libs;
6773     inherit (gnome) gtk libglade;
6774     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
6775       scrnsaverproto;
6776     python = pythonFull;
6777   };
6779   generator = callPackage ../misc/emulators/generator {
6780     inherit (gtkLibs1x) gtk;
6781   };
6783   ghostscript = callPackage ../misc/ghostscript {
6784     x11Support = false;
6785     cupsSupport = getPkgConfig "ghostscript" "cups" true;
6786   };
6788   ghostscriptX = lowPrio (appendToName "with-X" (ghostscript.override {
6789     x11Support = true;
6790   }));
6792   gxemul = callPackage ../misc/gxemul { };
6794   hplip = callPackage ../misc/drivers/hplip {
6795     qtSupport = true;
6796   };
6798   # using the new configuration style proposal which is unstable
6799   jackaudio = callPackage ../misc/jackaudio { };
6801   keynav = callPackage ../tools/X11/keynav { };
6803   lazylist = callPackage ../misc/tex/lazylist { };
6805   lilypond = callPackage ../misc/lilypond {
6806     inherit (gtkLibs) pango;
6807     flex = flex2535;
6808   };
6810   martyr = callPackage ../development/libraries/martyr { };
6812   maven = callPackage ../misc/maven/maven-1.0.nix { };
6814   maven2 = callPackage ../misc/maven { };
6816   nix = nixUnstable;
6818   nixStable = callPackage ../tools/package-management/nix {
6819     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6820     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6821   };
6823   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
6824     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6825     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6826   };
6828   # The SQLite branch.
6829   nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
6830     inherit fetchurl stdenv perl curl bzip2 openssl sqlite;
6831     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6832     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6833   });
6835   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
6836     import ../tools/package-management/nix/custom.nix {
6837       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
6838         autoconf libtool configureFlags enableScripts lib bison libxml2;
6839       flex = flex2533;
6840       aterm = aterm25;
6841       db4 = db45;
6842       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
6843     };
6845   disnix = callPackage ../tools/package-management/disnix { };
6847   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts { };
6849   DisnixService = callPackage ../tools/package-management/disnix/DisnixService { };
6851   latex2html = callPackage ../misc/tex/latex2html/default.nix {
6852     tex = tetex;
6853   };
6855   pgadmin = callPackage ../applications/misc/pgadmin { };
6857   pgf = pgf2;
6859   # Keep the old PGF since some documents don't render properly with
6860   # the new one.
6861   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
6863   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
6865   polytable = callPackage ../misc/tex/polytable { };
6867   psi = callPackage ../applications/networking/instant-messengers/psi {
6868     qca2 = kde45.qca2;
6869     qca2_ossl = kde45.qca2_ossl;
6870     qt4 = qt47;
6871   };
6873   putty = callPackage ../applications/networking/remote/putty {
6874     inherit (gtkLibs) gtk;
6875   };
6877   rssglx = callPackage ../misc/screensavers/rss-glx { };
6879   xlockmore = callPackage ../misc/screensavers/xlockmore {
6880     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
6881   };
6883   saneBackends = callPackage ../misc/sane-backends {
6884     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
6885   };
6887   saneFrontends = callPackage ../misc/sane-front {
6888     inherit (gtkLibs) gtk;
6889   };
6891   sourceAndTags = import ../misc/source-and-tags {
6892     inherit pkgs stdenv unzip lib ctags;
6893     hasktags = haskellPackages.myhasktags;
6894   };
6896   splix = callPackage ../misc/cups/drivers/splix { };
6898   tetex = callPackage ../misc/tex/tetex { };
6900   tex4ht = callPackage ../misc/tex/tex4ht { };
6902   texFunctions = callPackage ../misc/tex/nix {
6903     inherit (haskellPackages) lhs2tex;
6904   };
6906   texLive = builderDefsPackage (import ../misc/tex/texlive) {
6907     inherit builderDefs zlib bzip2 ncurses libpng ed
6908       gd t1lib freetype icu perl ruby expat curl
6909       libjpeg bison python fontconfig;
6910     inherit (xlibs) libXaw libX11 xproto libXt libXpm
6911       libXmu libXext xextproto libSM libICE;
6912     flex = flex2535;
6913     ghostscript = ghostscriptX;
6914   };
6916   /* Look in configurations/misc/raskin.nix for usage example (around revisions
6917   where TeXLive was added)
6919   (texLiveAggregationFun {
6920     paths = [texLive texLiveExtra texLiveCMSuper
6921       texLiveBeamer
6922     ];
6923   })
6925   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
6926   Just installing a few packages doesn't work.
6927   */
6928   texLiveAggregationFun =
6929     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
6931   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
6932     inherit texLive;
6933   };
6935   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
6936     inherit texLive;
6937   };
6939   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
6940     inherit texLive;
6941   };
6943   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
6944     inherit texLive;
6945   };
6947   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
6948     inherit texLiveLatexXColor texLive;
6949   };
6951   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
6952     inherit texLiveLatexXColor texLivePGF texLive;
6953   };
6955   toolbuslib = callPackage ../development/libraries/toolbuslib { };
6957   trac = callPackage ../misc/trac {
6958     inherit (pythonPackages) pysqlite;
6959   };
6961   vice = callPackage ../misc/emulators/vice {
6962     inherit (gtkLibs) gtk;
6963   };
6965   wine =
6966     # Wine cannot be built in 64-bit; use a 32-bit build instead.
6967     import ../misc/emulators/wine {
6968       inherit (pkgsi686Linux) fetchurl stdenv bison mesa ncurses
6969         libpng libjpeg alsaLib lcms xlibs freetype
6970         fontconfig fontforge libxml2 libxslt openssl;
6971       flex = pkgsi686Linux.flex2535;
6972     };
6974   x2x = callPackage ../tools/X11/x2x { };
6976   xosd = callPackage ../misc/xosd { };
6978   xsane = callPackage ../misc/xsane {
6979     inherit (gtkLibs) gtk;
6980   };
6982   yafc = callPackage ../applications/networking/yafc { };
6984   myEnvFun = import ../misc/my-env {
6985     inherit substituteAll pkgs;
6986     inherit (stdenv) mkDerivation;
6987   };
6989   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
6991 }; in pkgs