* Added weechat and updated xfce-terminal and vte. (From Graeme
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blobd6bb4a4b6a704f31970e52bc9d04cbf972acc2f7
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   phonon_backend_vlc = callPackage ../development/libraries/phonon-backend-vlc {
3598     vlc = vlc.override { qt4 = qt47; };
3599     inherit (kde45) automoc4;
3600   };
3602   physfs = callPackage ../development/libraries/physfs { };
3604   plib = callPackage ../development/libraries/plib { };
3606   podofo = callPackage ../development/libraries/podofo { };
3608   polkit = callPackage ../development/libraries/polkit { };
3610   policykit = callPackage ../development/libraries/policykit { };
3612   poppler = callPackage ../development/libraries/poppler {
3613     inherit (gtkLibs) glib gtk;
3614     qt4Support = false;
3615   };
3617   popplerQt4 = poppler.override {
3618     inherit qt4;
3619     qt4Support = true;
3620   };
3622   popt = callPackage ../development/libraries/popt { };
3624   proj = callPackage ../development/libraries/proj { };
3626   postgis = callPackage ../development/libraries/postgis { };
3628   pth = callPackage ../development/libraries/pth { };
3630   qjson = callPackage ../development/libraries/qjson { };
3632   qt3 = callPackage ../development/libraries/qt-3 {
3633     openglSupport = mesaSupported;
3634     mysqlSupport = getConfig ["qt" "mysql"] false;
3635   };
3637   qt3mysql = qt3.override {
3638     mysqlSupport = true;
3639   };
3641   qt4 = qt46;
3643   qt45 = callPackage ../development/libraries/qt-4.x/4.5 {
3644     inherit (gnome) glib;
3645   };
3647   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3648     inherit (gnome) glib;
3649   };
3651   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3652     inherit (gst_all) gstreamer gstPluginsBase;
3653     inherit (gnome) glib;
3654   };
3656   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator {
3657     qt4 = qt46;
3658   };
3660   quassel = callPackage ../applications/networking/irc/quassel {
3661     inherit (kde4) qt4 kdelibs phonon automoc4;
3662   };
3664   quesoglc = callPackage ../development/libraries/quesoglc { };
3666   readline = readline6;
3668   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3670   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3672   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3674   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3676   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3678   librdf = callPackage ../development/libraries/librdf { };
3680   qrupdate = callPackage ../development/libraries/qrupdate { };
3682   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3683     bdb = db4;
3684     postgresql = null;
3685   };
3687   rhino = callPackage ../development/libraries/java/rhino {
3688     ant = apacheAntGcj;
3689     javac = gcj;
3690     jvm = gcj;
3691   };
3693   rte = callPackage ../development/libraries/rte { };
3695   rubberband = callPackage ../development/libraries/rubberband {
3696     fftw = fftwSinglePrec;
3697     inherit (vamp) vampSDK;
3698   };
3700   schroedinger = callPackage ../development/libraries/schroedinger { };
3702   SDL = callPackage ../development/libraries/SDL {
3703     openglSupport = mesaSupported;
3704     alsaSupport = true;
3705     pulseaudioSupport = false; # better go through ALSA
3706   };
3708   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3710   SDL_image = callPackage ../development/libraries/SDL_image { };
3712   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3714   SDL_net = callPackage ../development/libraries/SDL_net { };
3716   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3718   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3720   slang = callPackage ../development/libraries/slang { };
3722   slibGuile = callPackage ../development/libraries/slib {
3723     scheme = guile;
3724   };
3726   snack = callPackage ../development/libraries/snack {
3727         # optional
3728   };
3730   speex = callPackage ../development/libraries/speex { };
3732   sqlite = callPackage ../development/libraries/sqlite {
3733     readline = null;
3734     ncurses = null;
3735   };
3737   sqliteInteractive = appendToName "interactive" (sqlite.override {
3738     inherit readline ncurses;
3739   });
3741   stlport = callPackage ../development/libraries/stlport { };
3743   suitesparse = callPackage ../development/libraries/suitesparse { };
3745   t1lib = callPackage ../development/libraries/t1lib { };
3747   taglib = callPackage ../development/libraries/taglib { };
3749   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3751   talloc = callPackage ../development/libraries/talloc { };
3753 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3754 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3755 ##  };
3757   tdb = callPackage ../development/libraries/tdb { };
3759   tecla = callPackage ../development/libraries/tecla { };
3761   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3763   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3765   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3767   tk = callPackage ../development/libraries/tk { };
3769   unixODBC = callPackage ../development/libraries/unixODBC { };
3771   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3772     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3773     inherit postgresql mysql sqlite;
3774   });
3776   vamp = callPackage ../development/libraries/audio/vamp { };
3778   vigra = callPackage ../development/libraries/vigra { };
3780   vtk = callPackage ../development/libraries/vtk { };
3782   vxl = callPackage ../development/libraries/vxl { };
3784   webkit = ((builderDefsPackage ../development/libraries/webkit {
3785     inherit (gnome28) gtkdoc libsoup;
3786     inherit (gtkLibs) gtk atk pango glib;
3787     inherit freetype fontconfig gettext gperf curl
3788       libjpeg libtiff libpng libxml2 libxslt sqlite
3789       icu cairo perl intltool automake libtool
3790       pkgconfig autoconf bison libproxy enchant
3791       python ruby;
3792     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3793       gstPluginsGood;
3794     flex = flex2535;
3795     inherit (xlibs) libXt;
3796   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
3798   wvstreams = callPackage ../development/libraries/wvstreams { };
3800   wxGTK = wxGTK28;
3802   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
3803     inherit (gtkLibs216) gtk;
3804   };
3806   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
3807     inherit (gtkLibs216) gtk;
3808   };
3810   wtk = callPackage ../development/libraries/wtk { };
3812   x264 = callPackage ../development/libraries/x264 { };
3814   xapian = callPackage ../development/libraries/xapian { };
3816   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
3817   };
3819   Xaw3d = callPackage ../development/libraries/Xaw3d {
3820     flex = flex2533;
3821   };
3823   xineLib = callPackage ../development/libraries/xine-lib { };
3825   xautolock = callPackage ../misc/screensavers/xautolock { };
3827   xercesJava = callPackage ../development/libraries/java/xerces {
3828     ant   = apacheAntGcj;  # for bootstrap purposes
3829     javac = gcj;
3830     jvm   = gcj;
3831   };
3833   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
3834     packages = [
3835       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
3836       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
3837       xlibs.xextproto
3838     ];
3839   };
3841   xvidcore = callPackage ../development/libraries/xvidcore { };
3843   zangband = builderDefsPackage (import ../games/zangband) {
3844     inherit ncurses flex bison autoconf automake m4 coreutils;
3845   };
3847   zlib = callPackage ../development/libraries/zlib {
3848     fetchurl = fetchurlBoot;
3849   };
3851   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
3852     inherit fetchurl stdenv;
3853     static = true;
3854   }));
3856   zvbi = callPackage ../development/libraries/zvbi {
3857     pngSupport = true;
3858   };
3861   ### DEVELOPMENT / LIBRARIES / JAVA
3864   atermjava = callPackage ../development/libraries/java/aterm {
3865     stdenv = overrideInStdenv stdenv [gnumake380];
3867   };
3869   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
3871   fastjar = callPackage ../development/tools/java/fastjar { };
3873   httpunit = callPackage ../development/libraries/java/httpunit { };
3875   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
3877   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
3879   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
3880     regexp = jakartaregexp;
3881   };
3883   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
3885   javaCup = callPackage ../development/libraries/java/cup { };
3887   javasvn = callPackage ../development/libraries/java/javasvn { };
3889   jclasslib = callPackage ../development/tools/java/jclasslib {
3890     ant = apacheAnt14;
3891   };
3893   jdom = callPackage ../development/libraries/java/jdom { };
3895   jflex = callPackage ../development/libraries/java/jflex { };
3897   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
3898     stdenv = overrideInStdenv stdenv [gnumake380];
3899   };
3901   junit = callPackage ../development/libraries/java/junit { };
3903   lucene = callPackage ../development/libraries/java/lucene { };
3905   mockobjects = callPackage ../development/libraries/java/mockobjects { };
3907   saxon = callPackage ../development/libraries/java/saxon { };
3909   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
3911   sharedobjects = callPackage ../development/libraries/java/shared-objects {
3912     stdenv = overrideInStdenv stdenv [gnumake380];
3913   };
3915   smack = callPackage ../development/libraries/java/smack { };
3917   swt = callPackage ../development/libraries/java/swt {
3918     inherit (gtkLibs) gtk;
3919   };
3921   xalanj = xalanJava;
3922   xalanJava = callPackage ../development/libraries/java/xalanj {
3923     ant    = apacheAntGcj;  # for bootstrap purposes
3924     javac  = gcj;
3925     jvm    = gcj;
3926     xerces = xercesJava;  };
3928   zziplib = callPackage ../development/libraries/zziplib { };
3931   ### DEVELOPMENT / PERL MODULES
3933   buildPerlPackage = import ../development/perl-modules/generic perl;
3935   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
3936     inherit pkgs;
3937   });
3939   perlXMLParser = perlPackages.XMLParser;
3941   ack = perlPackages.ack;
3943   perlcritic = perlPackages.PerlCritic;
3946   ### DEVELOPMENT / PYTHON MODULES
3948   buildPythonPackage =
3949     import ../development/python-modules/generic {
3950       inherit python setuptools makeWrapper lib;
3951     };
3953   buildPython26Package =
3954     import ../development/python-modules/generic {
3955       inherit makeWrapper lib;
3956       python = python26;
3957       setuptools = setuptools_python26;
3958     };
3960   pythonPackages = python26Packages;
3962   python25Packages = recurseIntoAttrs (import ./python-packages.nix {
3963     inherit pkgs python buildPythonPackage;
3964   });
3966   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
3967     inherit pkgs;
3968     python = python26;
3969     buildPythonPackage = buildPython26Package;
3970   });
3972   foursuite = callPackage ../development/python-modules/4suite { };
3974   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
3976   flup = builderDefsPackage ../development/python-modules/flup {
3977     inherit fetchurl stdenv;
3978     python = python25;
3979     setuptools = setuptools.passthru.function {python = python25;};
3980   };
3982   numeric = callPackage ../development/python-modules/numeric { };
3984   pil = callPackage ../development/python-modules/pil { };
3986   psyco = callPackage ../development/python-modules/psyco { };
3988   pycairo = callPackage ../development/python-modules/pycairo { };
3990   pycrypto = callPackage ../development/python-modules/pycrypto { };
3992   pycups = callPackage ../development/python-modules/pycups { };
3994   pygame = callPackage ../development/python-modules/pygame { };
3996   pygobject = callPackage ../development/python-modules/pygobject { };
3998   pygtk = callPackage ../development/python-modules/pygtk {
3999     inherit (gtkLibs) glib gtk;
4000   };
4002   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4003     inherit (gtkLibs) glib gtk;
4004     inherit (gnome) libglade;
4005   };
4007   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4008     inherit python openssl;
4009   };
4011   rhpl = callPackage ../development/python-modules/rhpl { };
4013   sip = callPackage ../development/python-modules/python-sip { };
4015   pyqt4 = callPackage ../development/python-modules/pyqt { };
4017   pyx = callPackage ../development/python-modules/pyx { };
4019   pyxml = callPackage ../development/python-modules/pyxml { };
4021   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4022     inherit python makeWrapper;
4023   };
4025   setuptools_python26 = builderDefsPackage (import ../development/python-modules/setuptools) {
4026     inherit makeWrapper;
4027     python = python26;
4028   };
4030   wxPython = wxPython26;
4032   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4033     wxGTK = wxGTK26;
4034   };
4036   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4038   twisted = pythonPackages.twisted;
4040   ZopeInterface = pythonPackages.zopeInterface;
4042   zope = callPackage ../development/python-modules/zope {
4043     python = python24;
4044   };
4046   ### SERVERS
4048   rdf4store = callPackage ../servers/http/4store {
4049     inherit (gtkLibs) glib;
4050   };
4052   apacheHttpd = callPackage ../servers/http/apache-httpd {
4053     sslSupport = true;
4054   };
4056   sabnzbd = callPackage ../servers/sabnzbd { };
4058   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4059     inherit openssl libtool;
4060   };
4062   dico = callPackage ../servers/dico { };
4064   dict = callPackage ../servers/dict { };
4066   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4067     inherit builderDefs;
4068   });
4070   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4071     inherit stdenv lib dict;
4072   };
4074   dovecot = callPackage ../servers/mail/dovecot { };
4075   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4077   ejabberd = callPackage ../servers/xmpp/ejabberd {
4078     erlang = erlangR13B ;
4079   };
4081   couchdb = callPackage ../servers/http/couchdb { };
4083   felix = callPackage ../servers/felix { };
4085   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4087   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4089   firebird = callPackage ../servers/firebird { };
4091   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4093   jboss = callPackage ../servers/http/jboss { };
4095   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4097   jetty = callPackage ../servers/http/jetty { };
4099   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4101   lighttpd = callPackage ../servers/http/lighttpd { };
4103   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4105   mpd = callPackage ../servers/mpd { };
4107   myserver = callPackage ../servers/http/myserver { };
4109   nginx = builderDefsPackage (import ../servers/http/nginx) {
4110     inherit openssl pcre zlib libxml2 libxslt;
4111   };
4113   postfix = callPackage ../servers/mail/postfix { };
4115   pulseaudio = callPackage ../servers/pulseaudio {
4116     inherit (gtkLibs) gtk glib;    # Needs ALSA >= 1.0.17.
4117     gconf = gnome.GConf;
4118   };
4120   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4122   portmap = callPackage ../servers/portmap { };
4124   monetdb = callPackage ../servers/sql/monetdb { };
4126   mysql4 = import ../servers/sql/mysql {
4127     inherit fetchurl stdenv ncurses zlib perl;
4128     ps = procps; /* !!! Linux only */
4129   };
4131   mysql5 = import ../servers/sql/mysql5 {
4132     inherit fetchurl stdenv ncurses zlib perl openssl;
4133     ps = procps; /* !!! Linux only */
4134   };
4136   mysql51 = import ../servers/sql/mysql51 {
4137     inherit fetchurl ncurses zlib perl openssl stdenv;
4138     ps = procps; /* !!! Linux only */
4139   };
4141   mysql = mysql5;
4143   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4145   nagios = callPackage ../servers/monitoring/nagios {
4146     gdSupport = true;
4147   };
4149   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4151   openfire = callPackage ../servers/xmpp/openfire { };
4153   postgresql = postgresql83;
4155   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4157   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4159   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4161   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4162     inherit xmpppy pythonIRClib python makeWrapper;
4163   };
4165   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4166     inherit xmpppy python makeWrapper fetchcvs;
4167   };
4169   radius = callPackage ../servers/radius { };
4171   redstore = callPackage ../servers/http/redstore { };
4173   samba = callPackage ../servers/samba { };
4175   shishi = callPackage ../servers/shishi { };
4177   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4178     inherit fetchurl stdenv perl lib composableDerivation;
4179   });
4180   squid = squids.squid3Beta; # has ipv6 support
4182   tomcat5 = callPackage ../servers/http/tomcat { };
4184   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4186   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4188   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4190   virtuoso = callPackage ../servers/sql/virtuoso { };
4192   vsftpd = callPackage ../servers/ftp/vsftpd { };
4194   xinetd = callPackage ../servers/xinetd { };
4196   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4197     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4198       libxslt expat libdrm libpng zlib perl mesa
4199       xkeyboard_config dbus hal libuuid openssl gperf m4
4200       automake autoconf libtool xmlto asciidoc udev;
4202     # !!! pythonBase is use instead of python because this cause an infinite
4203     # !!! recursion when the flag python.full is set to true.  Packages
4204     # !!! contained in the loop are python, tk, xlibs-wrapper, libX11,
4205     # !!! libxcd (and xcb-proto).
4206     python =  pythonBase;
4207   });
4209   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4211   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4213   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4214     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4215   });
4218   ### OS-SPECIFIC
4220   afuse = callPackage ../os-specific/linux/afuse { };
4222   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4224   _915resolution = callPackage ../os-specific/linux/915resolution { };
4226   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4228   acpi = callPackage ../os-specific/linux/acpi { };
4230   acpid = callPackage ../os-specific/linux/acpid { };
4232   acpitool = callPackage ../os-specific/linux/acpitool { };
4234   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4236   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4237   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4239   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4241   bluez = callPackage ../os-specific/linux/bluez { };
4243   bridge_utils = callPackage ../os-specific/linux/bridge_utils { };
4245   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4247   conky = callPackage ../os-specific/linux/conky {
4248     inherit (gtkLibs) glib;
4249   };
4251   cpufrequtils = (
4252     import ../os-specific/linux/cpufrequtils {
4253     inherit fetchurl stdenv libtool gettext;
4254     glibc = stdenv.gcc.libc;
4255     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4256   });
4258   cryopid = callPackage ../os-specific/linux/cryopid { };
4260   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4262   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4264   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4266   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4268   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4270   devicemapper = lvm2;
4272   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4274   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4276   dietlibc = callPackage ../os-specific/linux/dietlibc {
4277     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4278     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4279   };
4281   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4282     inherit libjpeg pkgconfig zlib directfb;
4283     inherit (xlibs) xproto;
4284   };
4286   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4287     inherit devicemapper;
4288   };
4290   libuuid = if ! stdenv.isDarwin then utillinuxng else null;
4292   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4294   eject = callPackage ../os-specific/linux/eject { };
4296   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4297     inherit fontconfig gpm freetype pkgconfig ncurses;
4298   };
4300   fuse = callPackage ../os-specific/linux/fuse { };
4302   fxload = callPackage ../os-specific/linux/fxload { };
4304   gpm = callPackage ../servers/gpm {
4305     flex = flex2535;
4306   };
4308   hal = callPackage ../os-specific/linux/hal { };
4310   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4312   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4314   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4316   hdparm = callPackage ../os-specific/linux/hdparm { };
4318   hibernate = callPackage ../os-specific/linux/hibernate { };
4320   htop = callPackage ../os-specific/linux/htop { };
4322   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4323     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4324       mig glibcCross;
4325     automake = automake111x;
4326     headersOnly = false;
4327     cross = assert crossSystem != null; crossSystem;
4328     gccCross = gccCrossStageFinal;
4329   });
4331   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4332     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4333       mig glibcCross;
4334     automake = automake111x;
4335     headersOnly = false;
4336     cross = assert crossSystem != null; crossSystem;
4338     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4339     # particular) so we first need an intermediate Hurd built with the
4340     # intermediate GCC.
4341     gccCross = gccCrossStageStatic;
4343     # This intermediate Hurd is only needed to build libpthread, which really
4344     # only needs libihash.
4345     buildTarget = "libihash";
4346     installTarget = "libihash-install";
4347   });
4349   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4350     automake = automake111x;
4351     headersOnly = true;
4352     gccCross = null;
4353     glibcCross = null;
4354   };
4356   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4357     inherit fetchgit stdenv autoconf automake libtool
4358       machHeaders hurdHeaders glibcCross;
4359     hurd = hurdCrossIntermediate;
4360     gccCross = gccCrossStageStatic;
4361     cross = assert crossSystem != null; crossSystem;
4362   });
4364   hwdata = callPackage ../os-specific/linux/hwdata { };
4366   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4368   iproute = callPackage ../os-specific/linux/iproute { };
4370   iputils = (
4371     import ../os-specific/linux/iputils {
4372     inherit fetchurl stdenv;
4373     glibc = stdenv.gcc.libc;
4374     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4375   });
4377   iptables = callPackage ../os-specific/linux/iptables { };
4379   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4381   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4383   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4385   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4387   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4389   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4391   kbd = callPackage ../os-specific/linux/kbd { };
4393   libcroup = callPackage ../os-specific/linux/libcg { };
4395   linuxHeaders = linuxHeaders_2_6_28;
4397   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4398     inherit stdenv fetchurl perl;
4399     cross = assert crossSystem != null; crossSystem;
4400   });
4402   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4403     inherit stdenv fetchurl perl;
4404     cross = assert crossSystem != null; crossSystem;
4405   });
4407   # We can choose:
4408   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4409     else if (ver == "2.6") then linuxHeaders26Cross
4410     else throw "Unknown linux kernel version";
4412   linuxHeadersCross = assert crossSystem != null;
4413     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4415   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4417   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4419   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4421   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4423   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4424     inherit fetchurl stdenv perl mktemp module_init_tools;
4425     kernelPatches =
4426       [ kernelPatches.fbcondecor_2_6_25
4427         kernelPatches.sec_perm_2_6_24
4428       ];
4429   };
4431   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4432     inherit fetchurl stdenv perl mktemp module_init_tools;
4433     kernelPatches =
4434       [ kernelPatches.fbcondecor_2_6_27
4435         kernelPatches.sec_perm_2_6_24
4436       ];
4437   };
4439   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4440     inherit fetchurl stdenv perl mktemp module_init_tools;
4441     kernelPatches =
4442       [ kernelPatches.fbcondecor_2_6_28
4443         kernelPatches.sec_perm_2_6_24
4444         kernelPatches.ext4_softlockups_2_6_28
4445       ];
4446   };
4448   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4449     inherit fetchurl stdenv perl mktemp module_init_tools;
4450     kernelPatches =
4451       [ kernelPatches.fbcondecor_2_6_29
4452         kernelPatches.sec_perm_2_6_24
4453       ];
4454   };
4456   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4457     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4458     kernelPatches = [];
4459   };
4461   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4462     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4463     kernelPatches =
4464       [ kernelPatches.fbcondecor_2_6_31
4465         kernelPatches.sec_perm_2_6_24
4466         kernelPatches.aufs2_2_6_32
4467         kernelPatches.cifs_timeout
4468         kernelPatches.no_xsave
4469         kernelPatches.dell_rfkill
4470       ];
4471   };
4473   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4474     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4475     systemtap = true;
4476     dontStrip = true;
4477     kernelPatches =
4478       [ kernelPatches.fbcondecor_2_6_31
4479         kernelPatches.sec_perm_2_6_24
4480         kernelPatches.tracehook_2_6_32
4481         kernelPatches.utrace_2_6_32
4482       ];
4483   };
4485   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4486     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4487   };
4489   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4490     features = {
4491       oldI686 = true;
4492     };
4493   };
4495   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4496     features = {
4497       ckSched = true;
4498     };
4499   };
4501   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4502     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4503     kernelPatches =
4504       [ kernelPatches.fbcondecor_2_6_33
4505         kernelPatches.sec_perm_2_6_24
4506       ];
4507   };
4509   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4510     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4511   };
4513   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4514     features = {
4515       oldI686 = true;
4516     };
4517   };
4519   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4520     features = {
4521       ckSched = true;
4522     };
4523   };
4525   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4526     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4527     kernelPatches =
4528       [ /*kernelPatches.fbcondecor_2_6_33*/
4529         kernelPatches.sec_perm_2_6_24
4530         kernelPatches.aufs2_2_6_34
4531       ];
4532   };
4534   /* Linux kernel modules are inherently tied to a specific kernel.  So
4535      rather than provide specific instances of those packages for a
4536      specific kernel, we have a function that builds those packages
4537      for a specific kernel.  This function can then be called for
4538      whatever kernel you're using. */
4540   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4542     inherit kernel;
4544     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4546     aufs = callPackage ../os-specific/linux/aufs { };
4548     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4550     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4552     blcr = callPackage ../os-specific/linux/blcr/0.8.2.nix {
4553       libtool = libtool_1_5; # libtool 2 causes a fork bomb
4554     };
4556     exmap = callPackage ../os-specific/linux/exmap {
4557       inherit (gtkLibs) gtkmm;
4558     };
4560     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4562     iwlwifi4965ucode =
4563       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4564           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4565        then iwlwifi4965ucodeV2
4566        else iwlwifi4965ucodeV1);
4568     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4570     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4572     nvidia_x11_legacy = callPackage ../os-specific/linux/nvidia-x11/legacy.nix { };
4574     openafsClient = callPackage ../servers/openafs-client { };
4576     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4578     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4579       inherit kernel perl;
4580     };
4582     splashutils =
4583       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4585     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4586       kernel_ext3cowpatched = kernel;
4587     };
4589     /* compiles but has to be integrated into the kernel somehow
4590       Let's have it uncommented and finish it..
4591     */
4592     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4594     ov511 = callPackage ../os-specific/linux/ov511 {
4595       stdenv = overrideGCC stdenv gcc34;
4596     };
4598     # State Nix
4599     snix = callPackage ../tools/package-management/snix {
4601       aterm = aterm25;
4602       db4 = db45;
4604       flex = flex2533;
4605       ext3cow_kernel = kernel;    };
4607     sysprof = callPackage ../development/tools/profiling/sysprof {
4608       inherit (gnome) gtk glib pango libglade;
4609     };
4611     systemtap = callPackage ../development/tools/profiling/systemtap {
4612       linux = kernel;
4613       inherit (gnome) gtkmm libglademm;
4614     };
4616     virtualbox = callPackage ../applications/virtualization/virtualbox {
4617       stdenv = stdenv_32bit;
4618       inherit (gnome) libIDL;
4619     };
4621     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4622   };
4624   # Build the kernel modules for the some of the kernels.
4625   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4626   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4627   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4628   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4629   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4630   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4631   linuxPackages_2_6_32_systemtap =
4632     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4633   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4634   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4636   # The current default kernel / kernel modules.
4637   linux = linux_2_6_32;
4638   linuxPackages = linuxPackages_2_6_32;
4640   keyutils = callPackage ../os-specific/linux/keyutils { };
4642   libselinux = callPackage ../os-specific/linux/libselinux { };
4644   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4646   libsexy = callPackage ../development/libraries/libsexy {
4647     inherit (gtkLibs) glib gtk pango;
4648   };
4650   librsvg = gnome.librsvg;
4652   libsepol = callPackage ../os-specific/linux/libsepol { };
4654   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4656   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4658   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4660   klibc = callPackage ../os-specific/linux/klibc {
4661     linuxHeaders = glibc.kernelHeaders;
4662   };
4664   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4666   kvm = qemu_kvm;
4668   libcap = callPackage ../os-specific/linux/libcap { };
4670   libnscd = callPackage ../os-specific/linux/libnscd { };
4672   libnotify = callPackage ../development/libraries/libnotify {
4673     inherit (gtkLibs) gtk glib;
4674   };
4676   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4678   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4680   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4681   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4682   # compiler for that host.
4683   mach = callPackage ../os-specific/gnu/mach {
4684     automake = automake111x;  };
4686   machHeaders = callPackage ../os-specific/gnu/mach {
4687     automake = automake111x;
4688     headersOnly = true;
4689     mig = null;
4690   };
4692   mdadm = callPackage ../os-specific/linux/mdadm { };
4694   mingetty = callPackage ../os-specific/linux/mingetty { };
4696   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4698   mountall = callPackage ../os-specific/linux/mountall {
4699     automake = automake111x;
4700   };
4702   aggregateModules = modules:
4703     import ../os-specific/linux/module-init-tools/aggregator.nix {
4704       inherit stdenv module_init_tools modules buildEnv;
4705     };
4707   modutils = callPackage ../os-specific/linux/modutils {
4708     stdenv = overrideGCC stdenv gcc34;
4709   };
4711   nettools = callPackage ../os-specific/linux/net-tools { };
4713   neverball = callPackage ../games/neverball { };
4715   numactl = callPackage ../os-specific/linux/numactl { };
4717   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
4718     inherit fetchurl stdenv nettools openssl procps iproute;
4719   };
4721   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
4723   pam = callPackage ../os-specific/linux/pam { };
4725   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
4727   pam_console = callPackage ../os-specific/linux/pam_console {
4728     libtool = libtool_1_5;
4729     flex = if stdenv.system == "i686-linux" then flex else flex2533;
4730   };
4732   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
4734   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
4736   pam_login = callPackage ../os-specific/linux/pam_login { };
4738   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
4740   pam_usb = callPackage ../os-specific/linux/pam_usb { };
4742   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
4744     firmware = getConfig ["pcmciaUtils" "firmware"] [];
4745     config = getConfig ["pcmciaUtils" "config"] null;
4746   };
4748   pmount = callPackage ../os-specific/linux/pmount { };
4750   pmutils = callPackage ../os-specific/linux/pm-utils { };
4752   powertop = callPackage ../os-specific/linux/powertop { };
4754   procps = callPackage ../os-specific/linux/procps { };
4756   pwdutils = callPackage ../os-specific/linux/pwdutils { };
4758   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
4760   radeontools = callPackage ../os-specific/linux/radeontools { };
4762   rfkill = callPackage ../os-specific/linux/rfkill { };
4764   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
4766   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
4768   sdparm = callPackage ../os-specific/linux/sdparm { };
4770   shadow = callPackage ../os-specific/linux/shadow { };
4772   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
4774   statifier = builderDefsPackage (import ../os-specific/linux/statifier) {
4775   };
4777   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
4779   # Provided with sysfsutils.
4780   libsysfs = sysfsutils;
4781   systool = sysfsutils;
4783   sysklogd = callPackage ../os-specific/linux/sysklogd { };
4785   syslinux = callPackage ../os-specific/linux/syslinux { };
4787   sysstat = callPackage ../os-specific/linux/sysstat { };
4789   sysvinit = callPackage ../os-specific/linux/sysvinit { };
4791   sysvtools = callPackage ../os-specific/linux/sysvinit {
4792     withoutInitTools = true;
4793   };
4795   # FIXME: `tcp-wrapper' is actually not OS-specific.
4796   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
4798   trackballs = callPackage ../games/trackballs {
4799     debug = false;
4800   };
4802   tunctl = callPackage ../os-specific/linux/tunctl { };
4804   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
4805     inherit mesa tcl freeglut;
4806     inherit (xlibs) libX11 xproto;
4807   };*/
4809   ubootChooser = name : if (name == "upstream") then ubootUpstream
4810     else if (name == "sheevaplug") then ubootSheevaplug
4811     else throw "Unknown uboot";
4813   ubootUpstream = callPackage ../misc/uboot { };
4815   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
4817   uclibc = callPackage ../os-specific/linux/uclibc { };
4819   uclibcCross = import ../os-specific/linux/uclibc {
4820     inherit fetchurl stdenv;
4821     linuxHeaders = linuxHeadersCross;
4822     gccCross = gccCrossStageStatic;
4823     cross = assert crossSystem != null; crossSystem;
4824   };
4826   udev = callPackage ../os-specific/linux/udev { };
4828   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
4829     inherit fetchurl stdenv perl mktemp module_init_tools;
4830     userModeLinux = true;
4831   };
4833   umlutilities = callPackage ../os-specific/linux/uml-utilities {
4834     tunctl = true; mconsole = true;
4835   };
4837   upstart = callPackage ../os-specific/linux/upstart { };
4839   usbutils = callPackage ../os-specific/linux/usbutils { };
4841   utillinux = utillinuxng;
4843   utillinuxCurses = utillinuxngCurses;
4845   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
4846     ncurses = null;
4847   };
4849   utillinuxngCurses = utillinuxng.override {
4850     inherit ncurses;
4851   };
4853   windows = rec {
4854     w32api = callPackage ../os-specific/windows/w32api {
4855       gccCross = gccCrossStageStatic;
4856       binutilsCross = binutilsCross;    };
4858     w32api_headers = w32api.override {
4859       onlyHeaders = true;
4860     };
4862     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
4863       gccCross = gccCrossMingw2;
4864       binutilsCross = binutilsCross;
4865     };
4867     mingw_runtime_headers = mingw_runtime.override {
4868       onlyHeaders = true;
4869     };
4871     mingw_headers1 = buildEnv {
4872       name = "mingw-headers-1";
4873       paths = [ w32api_headers mingw_runtime_headers ];
4874     };
4876     mingw_headers2 = buildEnv {
4877       name = "mingw-headers-2";
4878       paths = [ w32api mingw_runtime_headers ];
4879     };
4881     mingw_headers3 = buildEnv {
4882       name = "mingw-headers-3";
4883       paths = [ w32api mingw_runtime ];
4884     };
4886     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
4887   };
4889   wesnoth = callPackage ../games/wesnoth {
4890     inherit (gtkLibs) pango;
4891   };
4893   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
4895   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
4896     guiSupport = false;
4897   };
4898   # prebuild binaries:
4899   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
4901   # deprecated, but contains icon ? Does no longer build
4902   /* didn't build Sun Apr 25 20:34:18 CEST 2010
4903   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
4904   */
4906   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
4908   xmoto = builderDefsPackage (import ../games/xmoto) {
4909     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
4910       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
4911       lua5 ode;
4912   };
4914   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
4916   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
4918   ### DATA
4920   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
4921   };
4923   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
4925   cacert = callPackage ../data/misc/cacert { };
4927   corefonts = callPackage ../data/fonts/corefonts { };
4929   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
4930     inherit fetchurl stdenv builderDefs paths ttmkfdir;
4931     inherit (xorg) mkfontdir mkfontscale;
4932   });
4934   clearlyU = callPackage ../data/fonts/clearlyU { };
4936   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
4937     inherit (perlPackages) FontTTF;
4938   };
4940   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
4942   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
4944   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
4946   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
4948   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
4950   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
4952   docbook_xml_xslt = docbook_xsl;
4954   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
4956   docbook5_xsl = docbook_xsl_ns;
4958   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
4960   junicode = callPackage ../data/fonts/junicode { };
4962   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
4964   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
4966   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
4967     inherit fontforge;
4968   };
4969   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
4970   };
4972   lmodern = callPackage ../data/fonts/lmodern { };
4974   manpages = callPackage ../data/documentation/man-pages { };
4976   miscfiles = callPackage ../data/misc/miscfiles { };
4978   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
4980   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
4982   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
4984   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
4986   stdmanpages = callPackage ../data/documentation/std-man-pages { };
4988   iana_etc = callPackage ../data/misc/iana-etc { };
4990   popplerData = callPackage ../data/misc/poppler-data { };
4992   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
4994   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
4996   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
4998   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
4999     inherit fetchurl;
5000   };
5002   terminus_font = callPackage ../data/fonts/terminus-font { };
5004   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5006   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5008   unifont = callPackage ../data/fonts/unifont { };
5010   vistafonts = callPackage ../data/fonts/vista-fonts { };
5012   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5014   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5016   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5019   ### APPLICATIONS
5022   aangifte2005 = import ../applications/taxes/aangifte-2005 {
5023     inherit (pkgsi686Linux) stdenv fetchurl;
5024     inherit (pkgsi686Linux.xlibs) libX11 libXext;
5025   };
5027   aangifte2006 = import ../applications/taxes/aangifte-2006 {
5028     inherit (pkgsi686Linux) stdenv fetchurl;
5029     inherit (pkgsi686Linux.xlibs) libX11 libXext;
5030   };
5032   aangifte2007 = import ../applications/taxes/aangifte-2007 {
5033     inherit (pkgsi686Linux) stdenv fetchurl;
5034     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5035   };
5037   aangifte2008 = import ../applications/taxes/aangifte-2008 {
5038     inherit (pkgsi686Linux) stdenv fetchurl;
5039     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5040   };
5042   aangifte2009 = import ../applications/taxes/aangifte-2009 {
5043     inherit (pkgsi686Linux) stdenv fetchurl makeWrapper xdg_utils;
5044     inherit (pkgsi686Linux.xlibs) libX11 libXext libSM;
5045   };
5047   abcde = callPackage ../applications/audio/abcde { };
5049   abiword = callPackage ../applications/office/abiword {
5050     inherit (gtkLibs) gtk;
5051     inherit (gnome) libglade libgnomecanvas;
5052   };
5054   adobeReader = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg) ../applications/misc/adobe-reader {
5055     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5056   };
5058   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5059     libstdcpp = gcc33.gcc;
5060   };
5062   ardour = callPackage ../applications/audio/ardour {
5063     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5064     inherit (gnome) libgnomecanvas;
5065   };
5067   audacious = callPackage ../applications/audio/audacious {
5068     inherit (gtkLibs) glib gtk;
5069   };
5071   audacity = callPackage ../applications/audio/audacity {
5072     inherit (gtkLibs) gtk glib;
5073   };
5075   aumix = callPackage ../applications/audio/aumix {
5076     inherit (gtkLibs) gtk;
5077     gtkGUI = false;
5078   };
5080   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5082   avidemux = callPackage ../applications/video/avidemux {
5083     inherit (gtkLibs) gtk;
5084     stdenv = stdenv2;
5085   };
5087   awesome = callPackage ../applications/window-managers/awesome {
5088     inherit (gtkLibs) glib pango;
5089     lua = lua5;
5090     cairo = cairo.override { xcbSupport = true;
5091   };
5092   };
5094   bangarang = callPackage ../applications/video/bangarang {
5095     inherit (kde4) qt4 kdelibs automoc4 phonon soprano kdemultimedia;
5096   };
5098   batik = callPackage ../applications/graphics/batik { };
5100   bazaar = callPackage ../applications/version-management/bazaar {
5101     python = pythonFull;
5102   };
5104   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5105     inherit bazaar;
5106   };
5108   beast = callPackage ../applications/audio/beast {
5109     # stdenv = overrideGCC stdenv gcc34;
5110     inherit (gtkLibs) gtk glib;
5111     inherit (gnome) libgnomecanvas libart_lgpl;
5112   };
5114   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5116   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5118   # commented out because it's using the new configuration style proposal which is unstable
5119   #biew = import ../applications/misc/biew {
5120   #  inherit lib stdenv fetchurl ncurses;
5121   #};
5123   # only to be able to compile blender - I couldn't compile the default openal software
5124   # Perhaps this can be removed - don't know which one openal{,soft} is better
5125   freealut_soft = callPackage ../development/libraries/freealut {
5126     openal = openalSoft;  };
5128   blender = callPackage ../applications/misc/blender/2.49.nix {
5129     python = python26Base;
5130     stdenv = stdenv2;
5131   };
5133   blender_2_50 = lowPrio (import ../applications/misc/blender {
5134     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5135       libsamplerate libtiff ilmbase;
5136     inherit (xlibs) libXi;
5137     python = python31Base;
5138     stdenv = stdenv2;
5139   });
5141   bmp = callPackage ../applications/audio/bmp {
5142     inherit (gnome) esound libglade;
5143     inherit (gtkLibs) glib gtk;
5144   };
5146   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5148   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5150   bvi = callPackage ../applications/editors/bvi { };
5152   calibre = callPackage ../applications/misc/calibre {
5153     python = python26Full;
5154     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5155   };
5157   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5158     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5159       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5160       libtool automake autoconf;
5161     GStreamer = gst_all.gstreamer;
5162     inherit (gtkLibs) gtk glib;
5163     inherit (gnome) startupnotification GConf ;
5164     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5165   };
5166   funpidgin = carrier;
5168   cddiscid = callPackage ../applications/audio/cd-discid { };
5170   cdparanoia = cdparanoiaIII;
5172   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5174   cdrtools = callPackage ../applications/misc/cdrtools { };
5176   chatzilla =
5177     xulrunnerWrapper {
5178       launcher = "chatzilla";
5179       application = callPackage ../applications/networking/irc/chatzilla { };
5180     };
5182   chrome = callPackage ../applications/networking/browsers/chromium {
5183     inherit (gtkLibs) gtk glib pango atk;
5184     inherit (gnome) GConf;
5185     patchelf = patchelf06;
5186     libjpeg = libjpeg62;
5187   };
5189   chromeWrapper = wrapFirefox chrome "chrome" "";
5191   cinelerra = callPackage ../applications/video/cinelerra {
5192     fftw = fftwSinglePrec;
5193     inherit (gnome) esound;
5194   };
5196   compizBase = (builderDefsPackage (import ../applications/window-managers/compiz/0.8.0.nix)) {
5197     inherit lib stringsWithDeps builderDefs;
5198     inherit fetchurl stdenv pkgconfig libpng mesa perl perlXMLParser libxslt gettext
5199       intltool binutils;
5200     inherit (xorg) libXcomposite libXfixes libXdamage libXrandr
5201       libXinerama libICE libSM libXrender xextproto compositeproto fixesproto
5202       damageproto randrproto xineramaproto renderproto kbproto xproto libX11
5203       libxcb;
5204     inherit (gnome) startupnotification libwnck GConf;
5205     inherit (gtkLibs) gtk;
5206     inherit (gnome) libgnome libgnomeui metacity
5207       glib pango libglade libgtkhtml gtkhtml
5208       libgnomecanvas libgnomeprint
5209       libgnomeprintui gnomepanel;
5210     gnomegtk = gnome.gtk;
5211     inherit librsvg fuse;
5212     inherit dbus dbus_glib;
5213   };
5215   compiz = compizBase.passthru.function (x : x // {
5216     extraConfigureFlags = getConfig ["compiz" "extraConfigureFlags"] [];
5217   });
5219   compizFusion = callPackage ../applications/window-managers/compiz-fusion {
5220     version = getConfig ["compizFusion" "version"] "0.7.8";
5221     inherit (gnome) startupnotification libwnck GConf;
5222     inherit (gtkLibs) gtk;
5223     inherit (gnome) libgnome libgnomeui metacity
5224       glib pango libglade libgtkhtml gtkhtml
5225       libgnomecanvas libgnomeprint
5226       libgnomeprintui gnomepanel gnomedesktop;
5227     gnomegtk = gnome.gtk;
5228   };
5230   compizExtra = callPackage ../applications/window-managers/compiz/extra.nix {
5231     inherit (gnome) GConf;
5232     inherit (gtkLibs) gtk;
5233   };
5235   cinepaint = callPackage ../applications/graphics/cinepaint {
5236     inherit (gtkLibs) gtk glib;
5237     fltk = fltk11;
5238   };
5240   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5241     inherit makeWrapper;
5242     python = pythonFull;
5243   };
5245   comical = callPackage ../applications/graphics/comical {
5246     wxGTK = wxGTK26;
5247   };
5249   conkeror = xulrunnerWrapper {
5250     launcher = "conkeror";
5251     application = callPackage ../applications/networking/browsers/conkeror { };
5252   };
5254   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5255     inherit cmake patchelf;
5256     imagemagick=imagemagick;
5257   };
5259   cvs = callPackage ../applications/version-management/cvs { };
5261   cvsps = callPackage ../applications/version-management/cvsps { };
5263   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5265   d4x = callPackage ../applications/misc/d4x {
5266     inherit (gtkLibs) gtk glib;
5267   };
5269   darcs = haskellPackages.darcs;
5271   dia = callPackage ../applications/graphics/dia {
5272     inherit (gtkLibs) gtk glib;
5273   };
5275   djvulibre = callPackage ../applications/misc/djvulibre { };
5277   djview4 = callPackage ../applications/graphics/djview { };
5279   dmenu = callPackage ../applications/misc/dmenu { };
5281   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5282     inherit libpng libtiff libjpeg imagemagick librsvg
5283       pkgconfig bzip2 zlib libtool freetype fontconfig
5284       ghostscript jasper;
5285     inherit (xlibs) libX11;
5286   };
5288   dvdauthor = callPackage ../applications/video/dvdauthor { };
5290   dwm = callPackage ../applications/window-managers/dwm {
5291     patches = getConfig [ "dwm" "patches" ] [];
5292   };
5294   eaglemode = callPackage ../applications/misc/eaglemode { };
5296   eclipse = callPackage ../applications/editors/eclipse {
5297     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5298     # working correctly.
5299     inherit (gtkLibs216) glib gtk;
5300   };
5301   eclipseLatest = eclipse.override { version = "latest"; };
5303   ed = callPackage ../applications/editors/ed { };
5305   elinks = callPackage ../applications/networking/browsers/elinks { };
5307   elvis = callPackage ../applications/editors/elvis { };
5309   emacs = emacs23;
5311   emacs22 = callPackage ../applications/editors/emacs-22 {
5312     inherit (gtkLibs) gtk;
5313     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5314     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5315   };
5317   emacs23 = callPackage ../applications/editors/emacs-23 {
5318     # use override to select the appropriate gui toolkit
5319     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5320     Xaw3d = null;
5321     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5322     # TODO: these packages don't build on Darwin.
5323     gconf = if stdenv.isDarwin then null else gnome.GConf;
5324     librsvg = if stdenv.isDarwin then null else librsvg;
5325   };
5327   emacsSnapshot = lowPrio (import ../applications/editors/emacs-snapshot {
5328     inherit fetchcvs stdenv ncurses pkgconfig x11 Xaw3d
5329       libpng libjpeg libungif libtiff texinfo dbus
5330       autoconf automake;
5331     inherit (xlibs) libXaw libXpm libXft;
5332     inherit (gtkLibs) gtk;
5333     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5334     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5335     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5336     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5337     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5338   });
5340   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5341     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5343     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5345     cua = callPackage ../applications/editors/emacs-modes/cua { };
5347     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5349     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5351     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5353     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5355     emms = callPackage ../applications/editors/emacs-modes/emms { };
5357     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5358       # Requires Emacs 23, for `avl-tree'.
5359     };
5361     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5363     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5365     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5367     magit = callPackage ../applications/editors/emacs-modes/magit { };
5369     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5371     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5373     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5374     # we want it to have higher precedence.
5375     org = hiPrio (import ../applications/editors/emacs-modes/org {
5376       inherit fetchurl stdenv emacs texinfo;
5377     });
5379     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5381     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5383     quack = callPackage ../applications/editors/emacs-modes/quack { };
5385     remember = callPackage ../applications/editors/emacs-modes/remember { };
5387     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5389     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5390   };
5392   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5393   emacs23Packages = emacsPackages emacs23 pkgs.emacs23Packages;
5395   epdfview = callPackage ../applications/misc/epdfview {
5396     inherit (gtkLibs) gtk;
5397   };
5399   evince = callPackage ../applications/misc/evince {
5400     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5401       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5402   };
5404   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5405     fltk = fltk20;
5406   };
5408   fbpanel = callPackage ../applications/window-managers/fbpanel {
5409     inherit (gtkLibs) gtk;
5410   };
5412   fetchmail = import ../applications/misc/fetchmail {
5413     inherit stdenv fetchurl openssl;
5414   };
5416   fossil = callPackage ../applications/version-management/fossil { };
5418   grass = import ../applications/misc/grass {
5419     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5420       libXaw libXrender;
5421     inherit getConfig composableDerivation stdenv fetchurl
5422       lib flex bison cairo fontconfig
5423       gdal zlib ncurses gdbm proj pkgconfig swig
5424       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5425       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5426     fftw = fftwSinglePrec;
5427     motif = lesstif;
5428     opendwg = libdwg;
5429     wxPython = wxPython28;
5430   };
5432   grip = callPackage ../applications/misc/grip {
5433     inherit (gtkLibs) gtk glib;
5434     inherit (gnome) libgnome libgnomeui vte;
5435   };
5437   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5439   wireshark = callPackage ../applications/networking/sniffers/wireshark {
5440     inherit (gtkLibs) gtk;
5441   };
5443   wvdial = callPackage ../os-specific/linux/wvdial { };
5445   fbida = builderDefsPackage ../applications/graphics/fbida {
5446     inherit libjpeg libexif giflib libtiff libpng
5447       imagemagick ghostscript which curl pkgconfig
5448       freetype fontconfig;
5449   };
5451   fdupes = callPackage ../tools/misc/fdupes { };
5453   feh = callPackage ../applications/graphics/feh { };
5455   firefox = firefox36Pkgs.firefox;
5456   firefoxWrapper = firefox36Wrapper;
5458   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5459     inherit (gtkLibs) gtk pango;
5460     inherit (gnome) libIDL;
5461   };
5463   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5465   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5466     inherit (gtkLibs) gtk pango;
5467     inherit (gnome) libIDL;
5468   };
5470   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5472   flac = callPackage ../applications/audio/flac { };
5474   flashplayer = flashplayer10;
5476   flashplayer9 = (
5477     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5478       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5479       inherit (xlibs) libX11 libXext libXrender libXt;
5480       inherit (gtkLibs) gtk glib pango atk;
5481     });
5483   flashplayer10 = (
5484     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5485       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat;
5486       inherit (xlibs) libX11 libXext libXrender libXt ;
5487       inherit (gtkLibs) gtk glib pango atk;
5488       debug = getConfig ["flashplayer" "debug"] false;
5489     });
5491   flite = callPackage ../applications/misc/flite { };
5493   freemind = callPackage ../applications/misc/freemind {
5494     jdk = jdk;
5495     jre = jdk;
5496   };
5498   freepv = callPackage ../applications/graphics/freepv { };
5500   xfontsel = callPackage ../applications/misc/xfontsel { };
5501   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5503   fspot = callPackage ../applications/graphics/f-spot {
5504     inherit (gnome) libgnome libgnomeui;
5505     gtksharp = gtksharp1;
5506   };
5508   gimp = callPackage ../applications/graphics/gimp {
5509     inherit (gnome) gtk libart_lgpl;
5510   };
5512   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5513     inherit pkgs gimp;
5514   });
5516   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5517     inherit pkgs;
5518   });
5519   git = gitAndTools.git;
5520   gitFull = gitAndTools.gitFull;
5522   gnucash = callPackage ../applications/office/gnucash {
5523     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5524       libgnomeprint;
5525     gconf = gnome.GConf;
5526   };
5528   qcad = callPackage ../applications/misc/qcad { };
5530   qjackctl = callPackage ../applications/audio/qjackctl {
5531     qt4 = qt4;
5532   };
5534   gkrellm = callPackage ../applications/misc/gkrellm {
5535     inherit (gtkLibs) glib gtk;
5536   };
5538   gnash = callPackage ../applications/video/gnash {
5539     inherit (gtkLibs) glib gtk;
5540     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg;
5541   };
5543   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5544     inherit (gtkLibs) glib gtk;
5545     inherit (gnome) GConf;
5546   };
5548   gnunet = callPackage ../applications/networking/p2p/gnunet {
5549     inherit (gnome) gtk libglade;
5550     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5551   };
5553   gocr = callPackage ../applications/graphics/gocr { };
5555   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5557   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5558     inherit libgphoto2 fuse pkgconfig glib;
5559   };
5561   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5563   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5565   gtkpod = callPackage ../applications/audio/gtkpod {
5566     inherit (gtkLibs) gtk glib;
5567     inherit (gnome) libglade;
5568   };
5570   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5571     inherit libpng libcv;
5572   };
5574   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5575     inherit libpng pkgconfig;
5576   };
5578   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5579     inherit (gnome) GConf;
5580     browser = firefox;
5581   };
5583   geeqie = callPackage ../applications/graphics/geeqie {
5584     inherit (gtkLibs) gtk;
5585   };
5587   gqview = callPackage ../applications/graphics/gqview {
5588     inherit (gtkLibs) gtk;
5589   };
5591   googleearth = import ../applications/misc/googleearth {
5592     inherit (pkgsi686Linux) stdenv fetchurl glibc mesa freetype zlib glib;
5593     inherit (pkgsi686Linux.xlibs) libSM libICE libXi libXv libXrender
5594       libXrandr libXfixes libXcursor libXinerama libXext libX11;
5595   };
5597   gosmore = builderDefsPackage ../applications/misc/gosmore {
5598     inherit fetchsvn curl pkgconfig libxml2;
5599     inherit (gtkLibs) gtk;
5600   };
5602   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5604   gpscorrelate = callPackage ../applications/misc/gpscorrelate {
5605     inherit (gtkLibs) gtk;
5606   };
5608   gpsd = callPackage ../servers/gpsd {
5610     # We need a Python with NCurses bindings.
5611     python = pythonFull;
5612   };
5614   gv = callPackage ../applications/misc/gv { };
5616   hello = callPackage ../applications/misc/hello/ex-2 { };
5618   homebank = callPackage ../applications/office/homebank {
5619     inherit (gtkLibs) gtk;
5620   };
5622   htmldoc = callPackage ../applications/misc/htmldoc {
5623     fltk = fltk11;
5624   };
5626   hugin = callPackage ../applications/graphics/hugin {
5627     stdenv = stdenv2;
5628   };
5630   i810switch = callPackage ../os-specific/linux/i810switch { };
5632   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5633     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5634       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5635       wirelesstools;
5636     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5637     inherit (xlibs) pixman;
5638     inherit (pythonPackages) ply;
5639   });
5641   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5642     application = "xulrunner";
5643     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5644       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5645       wirelesstools;
5646     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5647     inherit (xlibs) pixman;
5648     inherit (pythonPackages) ply;
5649   });
5651   icecat3Xul =
5652     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5653        [ icecat3 icecatXulrunner3 ])
5654     // { inherit (icecat3) gtk isFirefox3Like meta; };
5656   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5658   icewm = callPackage ../applications/window-managers/icewm { };
5660   ikiwiki = callPackage ../applications/misc/ikiwiki {
5661     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5662       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5663       RpcXML XMLSimple PerlMagick;
5664     gitSupport = getPkgConfig "ikiwiki" "git" false;
5665     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5666     extraUtils = [];
5667   };
5669   imagemagick = callPackage ../applications/graphics/ImageMagick {
5670     tetex = null;
5671     librsvg = null;
5672   };
5674   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5676   # Impressive, formerly known as "KeyJNote".
5677   impressive = callPackage ../applications/office/impressive {
5679     # XXX These are the PyOpenGL dependencies, which we need here.
5681     inherit (pythonPackages) pyopengl;  };
5683   inkscape = callPackage ../applications/graphics/inkscape {
5684     inherit (pythonPackages) lxml;
5685     inherit (gtkLibs) gtk glib glibmm gtkmm;
5686   };
5688   ion3 = callPackage ../applications/window-managers/ion-3 {
5689     lua = lua5;
5690   };
5692   iptraf = callPackage ../applications/networking/iptraf { };
5694   irssi = callPackage ../applications/networking/irc/irssi { };
5696   jackmeter = callPackage ../applications/audio/jackmeter { };
5698   jedit = callPackage ../applications/editors/jedit { };
5700   jigdo = callPackage ../applications/misc/jigdo {
5701     inherit (gtkLibs) gtk;
5702   };
5704   joe = callPackage ../applications/editors/joe { };
5706   jwm = callPackage ../applications/window-managers/jwm { };
5708   kermit = callPackage ../tools/misc/kermit { };
5710   kino = import ../applications/video/kino {
5711     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5712       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5713     inherit libsamplerate ffmpeg;
5714     inherit (gnome) libglade gtk glib;
5715     inherit (xlibs) libXv libX11;
5716     inherit (gtkLibs) pango;
5717     # #  optional
5718     #  inherit ffmpeg2theora sox, vorbis-tools lame mjpegtools dvdauthor 'Q'dvdauthor growisofs mencoder;
5719   };
5721   lame = callPackage ../applications/audio/lame { };
5723   larswm = callPackage ../applications/window-managers/larswm { };
5725   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
5727   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
5728     fftw = fftwSinglePrec;
5729   };
5731   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
5732     inherit (gtkLibs) gtk;
5733     inherit (gnome) libglade;
5734   };
5736   links = callPackage ../applications/networking/browsers/links { };
5738   ledger = callPackage ../applications/office/ledger { };
5740   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
5741     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
5742       gpm openssl SDL SDL_image SDL_net pkgconfig;
5743     inherit (xlibs) libX11 libXau xproto libXt;
5744   };
5746   lynx = callPackage ../applications/networking/browsers/lynx { };
5748   lyx = callPackage ../applications/misc/lyx {
5749    qt = qt4;
5750   };
5752   meld = callPackage ../applications/version-management/meld {
5753     inherit (gnome) scrollkeeper;
5754     pygtk = pyGtkGlade;
5755   };
5757   mercurial = callPackage ../applications/version-management/mercurial {
5758     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
5759     python = # allow cloning sources from https servers.
5760       if getConfig ["mercurial" "httpsSupport"] true
5761       then pythonFull
5762       else pythonBase;
5763   };
5765   merkaartor = callPackage ../applications/misc/merkaartor {
5766     qt = qt4;
5767   };
5769   meshlab = callPackage ../applications/graphics/meshlab {
5770     qt = qt4;
5771   };
5773   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
5774     inherit imagemagick intltool python pkgconfig webkit libxml2
5775       which gettext makeWrapper file libidn sqlite docutils libnotify;
5776     inherit (gtkLibs) gtk glib;
5777     inherit (gnome28) gtksourceview;
5778     inherit (webkit.passthru.args) libsoup;
5779   };
5781   minicom = callPackage ../tools/misc/minicom { };
5783   mmex = callPackage ../applications/office/mmex { };
5785   monodevelop = callPackage ../applications/editors/monodevelop {
5786     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
5787     mozilla = firefox;
5788     gtksharp = gtksharp2;
5789   };
5791   monodoc = callPackage ../applications/editors/monodoc {
5792     gtksharp = gtksharp1;
5793   };
5795   monotone = callPackage ../applications/version-management/monotone {
5796     lua = lua5;
5797   };
5799   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
5800     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
5801     inherit (gnome) gtk libgnomecanvas glib;
5802   };
5804   mozilla = callPackage ../applications/networking/browsers/mozilla {
5805     inherit (gtkLibs) gtk;
5806     inherit (gnome) libIDL;
5807   };
5809   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
5810     inherit firefox;
5811     inherit (xlibs) libX11 xproto;
5812   };
5814   mpc123 = callPackage ../applications/audio/mpc123 { };
5816   mpg321 = callPackage ../applications/audio/mpg321 { };
5818   MPlayer = callPackage ../applications/video/MPlayer {
5819     alsaSupport = true;
5820     alsa = alsaLib;
5821     theoraSupport = true;
5822     cacaSupport = true;
5823     xineramaSupport = true;
5824     randrSupport = true;
5825     cddaSupport = true;
5826     amrSupport = getConfig [ "MPlayer" "amr" ] false;
5827     x264Support = true;
5828     xvidSupport = true;
5829   };
5831   MPlayerPlugin = browser:
5832     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
5833       inherit browser;
5834       inherit fetchurl stdenv pkgconfig gettext;
5835       inherit (xlibs) libXpm;
5836       # !!! should depend on MPlayer
5837     };
5839   mrxvt = callPackage ../applications/misc/mrxvt { };
5841   multisync = callPackage ../applications/misc/multisync {
5842     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
5843   };
5845   mutt = callPackage ../applications/networking/mailreaders/mutt { };
5847   msmtp = callPackage ../applications/networking/msmtp { };
5849   mythtv = callPackage ../applications/video/mythtv {
5850     qt3 = qt3mysql;
5851   };
5853   nano = callPackage ../applications/editors/nano { };
5855   nedit = callPackage ../applications/editors/nedit {
5856       motif = lesstif;
5857   };
5859   netsurfBrowser = netsurf.browser;
5860   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
5862   nvi = callPackage ../applications/editors/nvi { };
5864   openjump = callPackage ../applications/misc/openjump { };
5866   openoffice = callPackage ../applications/office/openoffice {
5867     inherit (gtkLibs) gtk;
5868     inherit (perlPackages) ArchiveZip CompressZlib;
5869     inherit (gnome) GConf ORBit2;
5870     neon = neon029;
5871     stdenv = stdenv2;
5872   };
5874   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
5875     inherit (gtkLibs) gtk;
5876     inherit (perlPackages) ArchiveZip CompressZlib;
5877     inherit (gnome) GConf ORBit2;
5878     neon = neon029;
5879     stdenv = stdenv2;
5880   };
5882   opera = callPackage ../applications/networking/browsers/opera {
5883     qt = qt3;
5884   };
5886   pan = callPackage ../applications/networking/newsreaders/pan {
5887     inherit (gtkLibs) gtk;
5888     gmime = gmime_2_2;
5889     spellChecking = false;
5890   };
5892   panotools = callPackage ../applications/graphics/panotools { };
5894   pavucontrol = callPackage ../applications/audio/pavucontrol {
5895     inherit (gtkLibs) gtkmm;
5896     inherit (gnome) libglademm;
5897   };
5899   paraview = callPackage ../applications/graphics/paraview {
5900     stdenv = stdenv2;
5901   };
5903   partitionManager = callPackage ../tools/misc/partition-manager {
5904     kde = kde44;
5905     qt = qt4;
5906   };
5908   pdftk = callPackage ../tools/typesetting/pdftk { };
5910   pidgin = import ../applications/networking/instant-messengers/pidgin {
5911     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
5912       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
5913     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
5914     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
5915     GStreamer = gst_all.gstreamer;
5916     inherit (gtkLibs) gtk;
5917     inherit (gnome) startupnotification;
5918     inherit (xlibs) libXScrnSaver;
5919     inherit (gst_all) gstPluginsBase;
5920   };
5922   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
5923     imagemagick = imagemagickBig;
5924     inherit (gtkLibs) glib gtk;
5925   };
5927   pidginlatexSF = builderDefsPackage
5928     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
5929     {
5930       inherit pkgconfig pidgin texLive imagemagick which;
5931       inherit (gtkLibs) glib gtk;
5932     };
5934   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
5936   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
5938   pinfo = callPackage ../applications/misc/pinfo { };
5940   pinta = callPackage ../applications/graphics/pinta {
5941     gtksharp = gtksharp2;
5942   };
5944   pqiv = callPackage ../applications/graphics/pqiv {
5945     inherit (gtkLibs) gtk;
5946   };
5948   # perhaps there are better apps for this task? It's how I had configured my preivous system.
5949   # And I don't want to rewrite all rules
5950   procmail = callPackage ../applications/misc/procmail { };
5952   pstree = callPackage ../applications/misc/pstree { };
5954   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
5956   qemu = callPackage ../applications/virtualization/qemu/0.12.3.nix { };
5958   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
5960   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
5962   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
5964   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
5966   ratpoison = callPackage ../applications/window-managers/ratpoison { };
5968   rawtherapee = callPackage ../applications/graphics/rawtherapee {
5969     inherit (gtkLibs) gtk gtkmm;
5970   };
5972   rcs = callPackage ../applications/version-management/rcs { };
5974   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
5976   RealPlayer = callPackage ../applications/video/RealPlayer {
5977       inherit (gtkLibs) glib pango atk gtk;
5978       libstdcpp5 = gcc33.gcc;
5979   };
5981   rekonq = callPackage ../applications/networking/browsers/rekonq {
5982     inherit (gtkLibs) gtk;
5983     inherit (kde4) qt4 kdelibs automoc4 phonon;
5984   };
5986   rsibreak = callPackage ../applications/misc/rsibreak {
5987     inherit (kde4) kdelibs kdebase_workspace;
5988   };
5990   rsync = callPackage ../applications/networking/sync/rsync {
5991     enableACLs = !stdenv.isDarwin;
5992   };
5994   rxvt = callPackage ../applications/misc/rxvt { };
5996   # = urxvt
5997   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
5998     perlSupport = false;  };
6000   sakura = callPackage ../applications/misc/sakura {
6001     inherit (gtkLibs) gtk;
6002     inherit (gnome) vte;
6003   };
6005   sbagen = callPackage ../applications/misc/sbagen { };
6007   scribus = callPackage ../applications/office/scribus {
6008     inherit (gnome) libart_lgpl;
6009     qt = qt3;
6010   };
6012   seeks = callPackage ../tools/networking/p2p/seeks { };
6014   seg3d = callPackage ../applications/graphics/seg3d {
6015     wxGTK = wxGTK28.override {
6016       unicode = false;
6017   };
6018   };
6020   semnotes = callPackage ../applications/misc/semnotes {
6021     inherit (kde4) qt4 kdelibs automoc4 phonon soprano;
6022   };
6024   skype_linux = callPackage ../applications/networking/skype {
6025     qt = qt46;
6026     inherit (gtkLibs) glib;
6027   };
6029   slim = callPackage ../applications/display-managers/slim { };
6031   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6032     inherit fetchurl stdenv stringsWithDeps lib fftw;
6033     inherit pkgconfig gmp gettext;
6034     inherit (xlibs) libXpm libX11;
6035     inherit (gtkLibs) gtk glib;
6036   };
6038   snd = sndBase.passthru.function {
6039     inherit guile mesa libtool jackaudio alsaLib;
6040   };
6042   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6043     inherit (vamp) vampSDK;
6044     qt = qt4;
6045   };
6047   sox = callPackage ../applications/misc/audio/sox { };
6049   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6050     inherit texinfo;
6051     clisp = clisp_2_44_1;
6052   };
6054   subversion = callPackage ../applications/version-management/subversion/default.nix {
6055     neon = neon029;
6056     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6057     httpServer = getConfig ["subversion" "httpServer"] false;
6058     httpSupport = getConfig ["subversion" "httpSupport"] true;
6059     sslSupport = getConfig ["subversion" "sslSupport"] true;
6060     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6061     perlBindings = getConfig ["subversion" "perlBindings"] false;
6062     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6063     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6064     httpd = apacheHttpd;
6065   };
6067   svk = perlPackages.SVK;
6069   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6070     inherit (gtkLibs) gtk;
6071     sslSupport = true;
6072     gpgSupport = true;
6073   };
6075   # linux only by now
6076   synergy = callPackage ../applications/misc/synergy { };
6078   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6079     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6080       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6081       numpy pyasn1;
6082     mock = pythonPackages.mock060;
6083   };
6085   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6086     inherit makeWrapper python;
6087   };
6089   tangogps = callPackage ../applications/misc/tangogps {
6090     inherit (gtkLibs) gtk;
6091     gconf = gnome.GConf;
6092   };
6094   /* does'nt work yet i686-linux only (32bit version)
6095   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6096   */
6098   taskJuggler = callPackage ../applications/misc/taskjuggler {
6099     qt = qt3;
6101     # KDE support is not working yet.
6102     inherit (kde3) kdelibs kdebase;
6103     withKde = getPkgConfig "taskJuggler" "kde" false;
6104   };
6106   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6108   thunderbird = thunderbird3;
6110   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6111     inherit (gtkLibs) gtk;
6112     inherit (gnome) libIDL;
6113   };
6115   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6116     inherit (gtkLibs) gtk;
6117     inherit (gnome) libIDL;
6118   };
6120   timidity = callPackage ../tools/misc/timidity { };
6122   tkcvs = callPackage ../applications/version-management/tkcvs { };
6124   tla = callPackage ../applications/version-management/arch { };
6126   transmission = callPackage ../applications/networking/p2p/transmission {
6127     inherit (gtkLibs) gtk;
6128   };
6130   twinkle = callPackage ../applications/networking/twinkle {
6131     qt = qt3;
6132     boost = boostFull;
6133   };
6135   unison = callPackage ../applications/networking/sync/unison { };
6137   uucp = callPackage ../tools/misc/uucp { };
6139   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6140     inherit pkgconfig webkit makeWrapper;
6141     inherit (gtkLibs) gtk glib;
6142     inherit (xlibs) libX11;
6143     libsoup = gnome28.libsoup_2_31;
6144   };
6146   valknut = callPackage ../applications/networking/p2p/valknut {
6147     qt = qt3;
6148   };
6150   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6151   {
6152     inherit monotone flup cheetahTemplate highlight ctags
6153       makeWrapper graphviz which python;
6154   };
6156   vim = callPackage ../applications/editors/vim { };
6158   vimHugeX = vim_configurable;
6160   vim_configurable = import ../applications/editors/vim/configurable.nix {
6161     inherit fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6162     inherit (xlibs) libX11 libXext libSM libXpm
6163         libXt libXaw libXau libXmu libICE;
6164     inherit (gtkLibs) glib gtk;
6165     features = "huge"; # one of  tiny, small, normal, big or huge
6166     # optional features by passing
6167     # python
6168     # TODO mzschemeinterp perlinterp
6169     inherit python perl tcl ruby /*x11*/;
6171     lua = lua5;
6173     # optional features by flags
6174     flags = [ "X11" ]; # only flag "X11" by now
6175   };
6177   virtualgl = callPackage ../tools/X11/virtualgl { };
6179   vlc = callPackage ../applications/video/vlc {
6180     dbus = dbus.libs;
6181     alsa = alsaLib;
6182     lua = lua5;
6183   };
6185   vnstat = callPackage ../applications/networking/vnstat { };
6187   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6189   vwm = callPackage ../applications/window-managers/vwm { };
6191   w3m = callPackage ../applications/networking/browsers/w3m {
6192     graphicsSupport = false;
6193   };
6195   weechat = callPackage ../applications/networking/irc/weechat { };
6197   wings = callPackage ../applications/graphics/wings { };
6199   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6200   wmiimenu = import ../applications/window-managers/wmii31 {
6201     libixp = libixp_for_wmii;
6202     inherit fetchurl /* fetchhg */ stdenv gawk;
6203     inherit (xlibs) libX11;
6204   };
6206   wmiiSnap = import ../applications/window-managers/wmii {
6207     libixp = libixp_for_wmii;
6208     inherit fetchurl /* fetchhg */ stdenv gawk;
6209     inherit (xlibs) libX11 xextproto libXt libXext;
6210     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6211   };
6213   wordnet = callPackage ../applications/misc/wordnet { };
6215   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6216     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6217     plugins =
6218       let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6219       in
6220        ([]
6221         ++ lib.optional (!enableAdobeFlash) gnash
6222         ++ lib.optional enableAdobeFlash flashplayer
6223         # RealPlayer is disabled by default for legal reasons.
6224         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6225         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6226         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6227         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6228        );
6229   };
6231   x11vnc = callPackage ../tools/X11/x11vnc { };
6233   x2vnc = callPackage ../tools/X11/x2vnc { };
6235   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6236     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6237     inherit gsl aalib zlib libpng intltool gettext perl;
6238   };
6240   xara = callPackage ../applications/graphics/xara {
6241     inherit (gtkLibs) gtk;
6242     wxGTK = wxGTK26;
6243   };
6245   xawtv = callPackage ../applications/video/xawtv { };
6247   xchat = callPackage ../applications/networking/irc/xchat {
6248     inherit (gtkLibs) gtk;
6249   };
6251   xchm = callPackage ../applications/misc/xchm { };
6253   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6255   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6257   /* Doesn't work yet
6259   xen = builderDefsPackage (import ../applications/virtualization/xen) {
6260     inherit python e2fsprogs gnutls pkgconfig libjpeg
6261       ncurses SDL libvncserver zlib;
6262     texLive = if (getConfig ["xen" "texLive"] false) then texLive else null;
6263     graphviz = if (getConfig ["xen" "graphviz"] false) then graphviz else null;
6264     ghostscript = if (getConfig ["xen" "ghostscript"] false) then ghostscript else null;
6265   }; */
6267   xfig = callPackage ../applications/graphics/xfig {
6268     stdenv = overrideGCC stdenv gcc34;
6269   };
6271   xineUI = callPackage ../applications/video/xine-ui { };
6273   xmms = callPackage ../applications/audio/xmms {
6274     inherit (gnome) esound;
6275     inherit (gtkLibs1x) glib gtk;
6276     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6277   };
6279   xneur = callPackage ../applications/misc/xneur {
6280     GStreamer=gst_all.gstreamer;
6281     inherit (gtkLibs) glib gtk pango atk;
6282   };
6284   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6285     GStreamer = gst_all.gstreamer;
6286   };
6288   xournal = callPackage ../applications/graphics/xournal {
6289     inherit (gtkLibs) gtk atk pango glib;
6290     inherit (gnome) libgnomeprint libgnomeprintui
6291       libgnomecanvas;
6292   };
6294   xpdf = callPackage ../applications/misc/xpdf {
6295     motif = lesstif;
6296     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6297   };
6299   xpra = callPackage ../tools/X11/xpra {
6300     inherit (gtkLibs) gtk;
6301     pyrex = pyrex095;
6302   };
6304   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6305     inherit (gtkLibs) gtk;
6306     inherit (gnome) libglade;
6307   };
6309   xterm = callPackage ../applications/misc/xterm { };
6311   xtrace = callPackage ../tools/X11/xtrace { };
6313   xlaunch = callPackage ../tools/X11/xlaunch { };
6315   xmacro = callPackage ../tools/X11/xmacro { };
6317   xmove = callPackage ../applications/misc/xmove { };
6319   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6320     inherit (gtkLibs) gtk;
6321     inherit (xlibs) libX11 libXtst xextproto libXext
6322       inputproto libXi xproto recordproto;
6323     inherit pkgconfig;
6324   };
6326   xvidcap = callPackage ../applications/video/xvidcap {
6327     inherit (gtkLibs) gtk;
6328     inherit (gnome) scrollkeeper libglade;
6329   };
6331   yate = callPackage ../applications/misc/yate {
6332     qt = qt4;
6333   };
6335   # doesn't compile yet - in case someone else want's to continue ..
6336   # use Trunk because qgisReleased segfaults no resize for now
6337   qgis = qgisTrunk;
6338   qgisReleased = (import ../applications/misc/qgis) {
6339     inherit composableDerivation fetchsvn stdenv flex lib
6340             ncurses fetchurl perl cmake gdal geos proj x11
6341             gsl libpng zlib bison
6342             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6343             python postgresql pyqt4;
6344     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6345     inherit (xorg) libICE;
6346     qt = qt4;
6348     # optional features
6349     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6350   };
6352   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6353     qgis = qgisReleased;
6354   };
6356   zapping = callPackage ../applications/video/zapping {
6357     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6358     teletextSupport = true;
6359     jpegSupport = true;
6360     pngSupport = true;
6361     recordingSupport = true;
6362   };
6364   zathura = callPackage ../applications/misc/zathura {
6365     inherit (gtkLibs) gtk;
6366   };
6368   ### GAMES
6370   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6372   blackshades = callPackage ../games/blackshades { };
6374   blackshadeselite = callPackage ../games/blackshadeselite { };
6376   bsdgames = callPackage ../games/bsdgames { };
6378   castleCombat = callPackage ../games/castle-combat { };
6380   construoBase = callPackage ../games/construo {
6381     mesa = null;
6382     freeglut = null;
6383   };
6385   construo = construoBase.override {
6386     inherit mesa freeglut;
6387   };
6389   eduke32 = callPackage ../games/eduke32 {
6390     inherit (gtkLibs) gtk;
6391   };
6393   exult = callPackage ../games/exult {
6394     stdenv = overrideGCC stdenv gcc42;
6395   };
6397   /*
6398   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6399     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6400       autoconf automake libtool flex bison;
6401   });
6402   */
6404   freedink = callPackage ../games/freedink { };
6406   fsg = callPackage ../games/fsg {
6407     inherit (gtkLibs) glib gtk;
6408     wxGTK = wxGTK28.override {unicode = false;
6409   };
6410   };
6412   gemrb = callPackage ../games/gemrb { };
6414   gltron = callPackage ../games/gltron { };
6416   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6417     flex = flex2535;
6418   };
6420   gnugo = callPackage ../games/gnugo { };
6422   gparted = callPackage ../tools/misc/gparted {
6423     inherit (gtkLibs) gtk glib gtkmm;
6424     inherit (gnome) gnomedocutils;
6425   };
6427   hexen = callPackage ../games/hexen { };
6429   kobodeluxe = callPackage ../games/kobodeluxe { };
6431   lincity = builderDefsPackage (import ../games/lincity) {
6432     inherit (xlibs) libX11 libXext xextproto
6433       libICE libSM xproto;
6434     inherit libpng zlib;
6435   };
6437   micropolis = callPackage ../games/micropolis { };
6439   openttd = callPackage ../games/openttd {
6440     zlib = zlibStatic;
6441   };
6443   pioneers = import ../games/pioneers {
6444     inherit stdenv fetchurl pkgconfig intltool;
6445     inherit (gtkLibs) gtk /*glib gtkmm*/;
6446   };
6448   quake3demo = callPackage ../games/quake3/wrapper {
6449     name = "quake3-demo-${quake3game.name}";
6450     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6451     game = quake3game;
6452     paks = [quake3demodata];
6453   };
6455   quake3demodata = callPackage ../games/quake3/demo { };
6457   quake3game = callPackage ../games/quake3/game { };
6459   rogue = callPackage ../games/rogue { };
6461   scummvm = callPackage ../games/scummvm { };
6463   scorched3d = callPackage ../games/scorched3d {
6464     wxGTK = wxGTK26;
6465   };
6467   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6468     inherit (gtkLibs) gtk;
6469     inherit pkgconfig fetchsvn perl;
6470     inherit (xlibs) libX11;
6471   };
6473   six = callPackage ../games/six {
6474     inherit (kde3) arts kdelibs;
6475   };
6477   # You still can override by passing more arguments.
6478   spaceOrbit = callPackage ../games/orbit {
6479     inherit (gnome) esound;  };
6481   superTux = callPackage ../games/super-tux { };
6483   superTuxKart = callPackage ../games/super-tux-kart { };
6485   teeworlds = callPackage ../games/teeworlds { };
6487   tennix = callPackage ../games/tennix { };
6489   /*tpm = import ../games/thePenguinMachine {
6490     inherit stdenv fetchurl pil pygame SDL;
6491     python24 = python;
6492   };*/
6494   tremulous = callPackage ../games/tremulous { };
6496   ultimatestunts = callPackage ../games/ultimatestunts { };
6498   urbanterror = callPackage ../games/urbanterror { };
6500   ut2004demo = callPackage ../games/ut2004demo { };
6502   warsow = callPackage ../games/warsow {
6503     libjpeg = libjpeg62;
6504   };
6506   warzone2100 = callPackage ../games/warzone2100 {
6507     flex = flex2535;
6508   };
6510   xboard = builderDefsPackage (import ../games/xboard) {
6511     inherit (xlibs) libX11 xproto libXt libXaw libSM
6512       libICE libXmu libXext libXpm;
6513     inherit gnuchess texinfo;
6514   };
6516   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6517     inherit (xlibs) libX11 xproto libXpm libXt;
6518   };
6520   zdoom = callPackage ../games/zdoom { };
6522   zoom = callPackage ../games/zoom { };
6524   keen4 = callPackage ../games/keen4 { };
6527   ### DESKTOP ENVIRONMENTS
6530   enlightenment = callPackage ../desktops/enlightenment { };
6532   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6534   gnome = gnome28;
6536   kde3 = recurseIntoAttrs {
6538     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6539       stdenv = overrideGCC stdenv gcc43;
6540       qt = qt3;
6541     };
6543     kdebase = callPackage ../desktops/kde-3/kdebase {
6544       stdenv = overrideGCC stdenv gcc43;
6545       inherit (kde3) kdelibs;
6546       qt = qt3;
6547     };
6549     arts = callPackage ../development/libraries/arts {
6550       qt = qt3;
6551       inherit (gnome) glib;
6552       inherit (kde3) kdelibs;
6553     };
6555     k3b = callPackage ../applications/misc/k3b {
6556       inherit (kde3) kdelibs;
6557     };
6559     kbasket = callPackage ../applications/misc/kbasket {
6560       stdenv = overrideGCC stdenv gcc43;
6561       inherit (kde3) kdelibs;
6562     };
6564     kile = callPackage ../applications/editors/kile {
6565       inherit (kde3) arts kdelibs;
6566       qt = qt3;
6567     };
6569     kphone = callPackage ../applications/networking/kphone {
6570       qt = qt3;
6571       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6572     };
6574     kuickshow = callPackage ../applications/graphics/kuickshow {
6575       inherit (kde3) arts kdelibs;
6576       qt = qt3;
6577     };
6579     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6580       inherit (kde3) kdelibs;
6581       qt = qt3;
6582     };
6584   };
6586   kde4 = kde44;
6588   kde44 = makeOverridable (import ../desktops/kde-4.4) (pkgs // {
6589     qt4 = qt46;
6590     stdenv = stdenv2;
6591   });
6593   kde45 = import ../desktops/kde-4.5 (newScope ({
6594     qt4 = qt47;
6595     pyqt4 = pyqt4.override { qt4 = qt47; };
6596     libdbusmenu_qt = libdbusmenu_qt.override { qt4 = qt47; };
6597     shared_desktop_ontologies = shared_desktop_ontologies.override { v = "0.5"; };
6598     stdenv = stdenv2;
6599   } // kde45) );
6601   xfce = xfce4;
6602   xfce4 = recurseIntoAttrs (import ../desktops/xfce-4 pkgs);
6604   ### SCIENCE
6606   xplanet = callPackage ../applications/science/xplanet {
6607     inherit (gtkLibs) pango;
6608   };
6610   ### SCIENCE/GEOMETRY
6612   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6613     inherit (gnome) libglade gtk;
6614     inherit libxml2 guile perl intltool libtool pkgconfig;
6615   };
6618   ### SCIENCE/BIOLOGY
6620   alliance = callPackage ../applications/science/electronics/alliance {
6621     motif = lesstif;
6622   };
6624   arb = callPackage ../applications/science/biology/arb {
6625     lesstif = lesstif93;
6626     stdenv = overrideGCC stdenv gcc42;
6627   };
6629   biolib = callPackage ../development/libraries/science/biology/biolib { };
6631   emboss = callPackage ../applications/science/biology/emboss { };
6633   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6635   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6636     inherit tcsh mesa lesstif;
6637     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6638       libXmu libXext;
6639   };
6641   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6643   paml = callPackage ../applications/science/biology/paml { };
6645   /* slr = import ../applications/science/biology/slr {
6646     inherit fetchurl stdenv liblapack;
6647   }; */
6649   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6652   ### SCIENCE/MATH
6654   atlas = callPackage ../development/libraries/science/math/atlas { };
6656   blas = callPackage ../development/libraries/science/math/blas { };
6658   content = builderDefsPackage ../applications/science/math/content {
6659     inherit mesa lesstif;
6660     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6661       libXmu libXext libXcursor;
6662   };
6664   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6667   ### SCIENCE/LOGIC
6669   coq = callPackage ../applications/science/logic/coq {
6670     camlp5 = camlp5_transitional;
6671   };
6673   coq_beta = callPackage ../applications/science/logic/coq/beta.nix {
6674     camlp5 = camlp5_transitional;
6675   };
6677   hol_light = callPackage ../applications/science/logic/hol_light { };
6679   hol_light_binaries = callPackage ../applications/science/logic/hol_light/binaries.nix { };
6681   # This is a special version of OCaml handcrafted especially for
6682   # hol_light it should be merged with the current expresion for ocaml
6683   # one day.
6684   ocaml_with_sources = callPackage ../applications/science/logic/hol_light/ocaml-with-sources.nix { };
6686   isabelle = import ../applications/science/logic/isabelle {
6687     inherit (pkgs) stdenv fetchurl nettools perl polyml;
6688     inherit (pkgs.emacs23Packages) proofgeneral;
6689   };
6691   ssreflect = callPackage ../applications/science/logic/ssreflect {
6692     camlp5 = camlp5_transitional;
6693   };
6695   ### SCIENCE / ELECTRONICS
6697   ngspice = callPackage ../applications/science/electronics/ngspice { };
6699   gtkwave = callPackage ../applications/science/electronics/gtkwave {
6700     inherit (gtkLibs) gtk;
6701   };
6703   xoscope = callPackage ../applications/science/electronics/xoscope {
6704     inherit (gtkLibs) gtk;
6705   };
6708   ### SCIENCE / MATH
6710   maxima = callPackage ../applications/science/math/maxima { };
6712   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
6714   scilab = callPackage ../applications/science/math/scilab {
6715     inherit (gtkLibs) gtk;
6717     withXaw3d = false;
6718     withTk = true;
6719     withGtk = false;
6720     withOCaml = true;
6721     withX = true;
6722   };
6724   ### SCIENCE / MISC
6726   golly = callPackage ../applications/science/misc/golly { };
6728   simgrid = callPackage ../applications/science/misc/simgrid {
6729     stdenv = stdenv2;
6730   };
6732   tulip = callPackage ../applications/science/misc/tulip {
6733     qt = qt4;
6734   };
6736   vite = callPackage ../applications/science/misc/vite {
6737     qt = qt4;
6738     stdenv = stdenv2;
6739   };
6741   ### MISC
6743   atari800 = callPackage ../misc/emulators/atari800 { };
6745   ataripp = callPackage ../misc/emulators/atari++ { };
6747   auctex = callPackage ../misc/tex/auctex { };
6749   busybox = callPackage ../misc/busybox {
6750     enableStatic = true;
6751   };
6753   cups = callPackage ../misc/cups { };
6755   gutenprint = callPackage ../misc/drivers/gutenprint { };
6757   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
6759   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
6761   dblatex = callPackage ../misc/tex/dblatex { };
6763   dosbox = callPackage ../misc/emulators/dosbox { };
6765   dpkg = callPackage ../tools/package-management/dpkg { };
6767   electricsheep = callPackage ../misc/screensavers/electricsheep { };
6769   foldingathome = callPackage ../misc/foldingathome { };
6771   freestyle = callPackage ../misc/freestyle {
6772     #stdenv = overrideGCC stdenv gcc41;
6773   };
6775   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
6776     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
6777       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
6778       docutils;
6779     dbus = dbus.libs;
6780     inherit (gnome) gtk libglade;
6781     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
6782       scrnsaverproto;
6783     python = pythonFull;
6784   };
6786   generator = callPackage ../misc/emulators/generator {
6787     inherit (gtkLibs1x) gtk;
6788   };
6790   ghostscript = callPackage ../misc/ghostscript {
6791     x11Support = false;
6792     cupsSupport = getPkgConfig "ghostscript" "cups" true;
6793   };
6795   ghostscriptX = lowPrio (appendToName "with-X" (ghostscript.override {
6796     x11Support = true;
6797   }));
6799   gxemul = callPackage ../misc/gxemul { };
6801   hplip = callPackage ../misc/drivers/hplip {
6802     qtSupport = true;
6803   };
6805   # using the new configuration style proposal which is unstable
6806   jackaudio = callPackage ../misc/jackaudio { };
6808   keynav = callPackage ../tools/X11/keynav { };
6810   lazylist = callPackage ../misc/tex/lazylist { };
6812   lilypond = callPackage ../misc/lilypond {
6813     inherit (gtkLibs) pango;
6814     flex = flex2535;
6815   };
6817   martyr = callPackage ../development/libraries/martyr { };
6819   maven = callPackage ../misc/maven/maven-1.0.nix { };
6821   maven2 = callPackage ../misc/maven { };
6823   nix = nixUnstable;
6825   nixStable = callPackage ../tools/package-management/nix {
6826     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6827     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6828   };
6830   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
6831     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6832     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6833   };
6835   # The SQLite branch.
6836   nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
6837     inherit fetchurl stdenv perl curl bzip2 openssl sqlite;
6838     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6839     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6840   });
6842   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
6843     import ../tools/package-management/nix/custom.nix {
6844       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
6845         autoconf libtool configureFlags enableScripts lib bison libxml2;
6846       flex = flex2533;
6847       aterm = aterm25;
6848       db4 = db45;
6849       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
6850     };
6852   disnix = callPackage ../tools/package-management/disnix { };
6854   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts { };
6856   DisnixService = callPackage ../tools/package-management/disnix/DisnixService { };
6858   latex2html = callPackage ../misc/tex/latex2html/default.nix {
6859     tex = tetex;
6860   };
6862   pgadmin = callPackage ../applications/misc/pgadmin { };
6864   pgf = pgf2;
6866   # Keep the old PGF since some documents don't render properly with
6867   # the new one.
6868   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
6870   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
6872   polytable = callPackage ../misc/tex/polytable { };
6874   psi = callPackage ../applications/networking/instant-messengers/psi {
6875     qca2 = kde45.qca2;
6876     qca2_ossl = kde45.qca2_ossl;
6877     qt4 = qt47;
6878   };
6880   putty = callPackage ../applications/networking/remote/putty {
6881     inherit (gtkLibs) gtk;
6882   };
6884   rssglx = callPackage ../misc/screensavers/rss-glx { };
6886   xlockmore = callPackage ../misc/screensavers/xlockmore {
6887     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
6888   };
6890   saneBackends = callPackage ../misc/sane-backends {
6891     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
6892   };
6894   saneFrontends = callPackage ../misc/sane-front {
6895     inherit (gtkLibs) gtk;
6896   };
6898   sourceAndTags = import ../misc/source-and-tags {
6899     inherit pkgs stdenv unzip lib ctags;
6900     hasktags = haskellPackages.myhasktags;
6901   };
6903   splix = callPackage ../misc/cups/drivers/splix { };
6905   tetex = callPackage ../misc/tex/tetex { };
6907   tex4ht = callPackage ../misc/tex/tex4ht { };
6909   texFunctions = import ../misc/tex/nix pkgs;
6911   texLive = builderDefsPackage (import ../misc/tex/texlive) {
6912     inherit builderDefs zlib bzip2 ncurses libpng ed
6913       gd t1lib freetype icu perl ruby expat curl
6914       libjpeg bison python fontconfig;
6915     inherit (xlibs) libXaw libX11 xproto libXt libXpm
6916       libXmu libXext xextproto libSM libICE;
6917     flex = flex2535;
6918     ghostscript = ghostscriptX;
6919   };
6921   /* Look in configurations/misc/raskin.nix for usage example (around revisions
6922   where TeXLive was added)
6924   (texLiveAggregationFun {
6925     paths = [texLive texLiveExtra texLiveCMSuper
6926       texLiveBeamer
6927     ];
6928   })
6930   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
6931   Just installing a few packages doesn't work.
6932   */
6933   texLiveAggregationFun =
6934     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
6936   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
6937     inherit texLive;
6938   };
6940   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
6941     inherit texLive;
6942   };
6944   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
6945     inherit texLive;
6946   };
6948   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
6949     inherit texLive;
6950   };
6952   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
6953     inherit texLiveLatexXColor texLive;
6954   };
6956   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
6957     inherit texLiveLatexXColor texLivePGF texLive;
6958   };
6960   toolbuslib = callPackage ../development/libraries/toolbuslib { };
6962   trac = callPackage ../misc/trac {
6963     inherit (pythonPackages) pysqlite;
6964   };
6966   vice = callPackage ../misc/emulators/vice {
6967     inherit (gtkLibs) gtk;
6968   };
6970   wine =
6971     # Wine cannot be built in 64-bit; use a 32-bit build instead.
6972     import ../misc/emulators/wine {
6973       inherit (pkgsi686Linux) fetchurl stdenv bison mesa ncurses
6974         libpng libjpeg alsaLib lcms xlibs freetype
6975         fontconfig fontforge libxml2 libxslt openssl;
6976       flex = pkgsi686Linux.flex2535;
6977     };
6979   x2x = callPackage ../tools/X11/x2x { };
6981   xosd = callPackage ../misc/xosd { };
6983   xsane = callPackage ../misc/xsane {
6984     inherit (gtkLibs) gtk;
6985   };
6987   yafc = callPackage ../applications/networking/yafc { };
6989   myEnvFun = import ../misc/my-env {
6990     inherit substituteAll pkgs;
6991     inherit (stdenv) mkDerivation;
6992   };
6994   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
6996 }; in pkgs