Add libmtp
[nixpkgs-libre.git] / pkgs / top-level / all-packages.nix
blob85513fd46c1578b237e5d47062afec17e2174b3d
1 /* This file composes the Nix Packages collection.  That is, it
2    imports the functions that build the various packages, and calls
3    them with appropriate arguments.  The result is a set of all the
4    packages in the Nix Packages collection for some particular
5    platform. */
8 { # The system (e.g., `i686-linux') for which to build the packages.
9   system ? builtins.currentSystem
11   # Usually, the system type uniquely determines the stdenv and thus
12   # how to build the packages.  But on some platforms we have
13   # different stdenvs, leading to different ways to build the
14   # packages.  For instance, on Windows we support both Cygwin and
15   # Mingw builds.  In both cases, `system' is `i686-cygwin'.  The
16   # attribute `stdenvType' is used to select the specific kind of
17   # stdenv to use, e.g., `i686-mingw'.
18 , stdenvType ? system
20 , # The standard environment to use.  Only used for bootstrapping.  If
21   # null, the default standard environment is used.
22   bootStdenv ? null
24   # More flags for the bootstrapping of stdenv.
25 , noSysDirs ? true
26 , gccWithCC ? true
27 , gccWithProfiling ? true
29 , # Allow a configuration attribute set to be passed in as an
30   # argument.  Otherwise, it's read from $NIXPKGS_CONFIG or
31   # ~/.nixpkgs/config.nix.
32   config ? null
34 , crossSystem ? null
35 , platform ? (import ./platforms.nix).pc
39 let config_ = config; in # rename the function argument
41 let
43   lib = import ../lib;
45   # The contents of the configuration file found at $NIXPKGS_CONFIG or
46   # $HOME/.nixpkgs/config.nix.
47   # for NIXOS (nixos-rebuild): use nixpkgs.config option
48   config =
49     let
50       toPath = builtins.toPath;
51       getEnv = x: if builtins ? getEnv then builtins.getEnv x else "";
52       pathExists = name:
53         builtins ? pathExists && builtins.pathExists (toPath name);
55       configFile = getEnv "NIXPKGS_CONFIG";
56       homeDir = getEnv "HOME";
57       configFile2 = homeDir + "/.nixpkgs/config.nix";
59       configExpr =
60         if config_ != null then config_
61         else if configFile != "" && pathExists configFile then import (toPath configFile)
62         else if homeDir != "" && pathExists configFile2 then import (toPath configFile2)
63         else {};
65     in
66       # allow both:
67       # { /* the config */ } and
68       # { pkgs, ... } : { /* the config */ }
69       if builtins.isFunction configExpr
70         then configExpr { inherit pkgs; }
71         else configExpr;
73   # Return an attribute from the Nixpkgs configuration file, or
74   # a default value if the attribute doesn't exist.
75   getConfig = attrPath: default: lib.attrByPath attrPath default config;
78   # Helper functions that are exported through `pkgs'.
79   helperFunctions =
80     stdenvAdapters //
81     (import ../build-support/trivial-builders.nix { inherit (pkgs) stdenv; inherit (pkgs.xorg) lndir; });
83   stdenvAdapters =
84     import ../stdenv/adapters.nix { inherit (pkgs) dietlibc fetchurl runCommand; };
87   # Allow packages to be overriden globally via the `packageOverrides'
88   # configuration option, which must be a function that takes `pkgs'
89   # as an argument and returns a set of new or overriden packages.
90   # The `packageOverrides' function is called with the *original*
91   # (un-overriden) set of packages, allowing packageOverrides
92   # attributes to refer to the original attributes (e.g. "foo =
93   # ... pkgs.foo ...").
94   pkgs = applyGlobalOverrides (getConfig ["packageOverrides"] (pkgs: {}));
97   # Return the complete set of packages, after applying the overrides
98   # returned by the `overrider' function (see above).
99   applyGlobalOverrides = overrider:
100     let
101       # Call the overrider function.  We don't want stdenv overrides
102       # in the case of cross-building, or otherwise the basic
103       # overrided packages will not be built with the crossStdenv
104       # adapter.
105       overrides = overrider pkgsOrig //
106         (lib.optionalAttrs (pkgsOrig.stdenv ? overrides && crossSystem == null) pkgsOrig.stdenv.overrides);
108       # The un-overriden packages, passed to `overrider'.
109       pkgsOrig = pkgsFun pkgs {};
111       # The overriden, final packages.
112       pkgs = pkgsFun pkgs overrides;
113     in pkgs;
116   # The package compositions.  Yes, this isn't properly indented.
117   pkgsFun = pkgs: __overrides:
118     with helperFunctions;
119     let defaultScope = pkgs // pkgs.xorg; in
120     helperFunctions // rec {
122   # `__overrides' is a magic attribute that causes the attributes in
123   # its value to be added to the surrounding `rec'.  We'll remove this
124   # eventually.
125   inherit __overrides;
128   # We use `callPackage' to be able to omit function arguments that
129   # can be obtained from `pkgs' or `pkgs.xorg' (i.e. `defaultScope').
130   # Use `newScope' for sets of packages in `pkgs' (see e.g. `gtkLibs'
131   # below).
132   callPackage = newScope {};
134   newScope = extra: lib.callPackageWith (defaultScope // extra);
137   # Override system. This is useful to build i686 packages on x86_64-linux.
138   forceSystem = system: (import ./all-packages.nix) {
139     inherit system;
140     inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
141   };
144   # Used by wine, firefox with debugging version of Flash, ...
145   pkgsi686Linux = forceSystem "i686-linux";
147   callPackage_i686 = lib.callPackageWith (pkgsi686Linux // pkgsi686Linux.xorg);
150   # For convenience, allow callers to get the path to Nixpkgs.
151   path = ../..;
154   ### Symbolic names.
157   x11 = xlibsWrapper;
159   # `xlibs' is the set of X library components.  This used to be the
160   # old modular X libraries project (called `xlibs') but now it's just
161   # the set of packages in the modular X.org tree (which also includes
162   # non-library components like the server, drivers, fonts, etc.).
163   xlibs = xorg // {xlibs = xlibsWrapper;};
166   ### Helper functions.
169   inherit lib config getConfig stdenvAdapters;
171   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
173   # Applying this to an attribute set will cause nix-env to look
174   # inside the set for derivations.
175   recurseIntoAttrs = attrs: attrs // {recurseForDerivations = true;};
177   # Return the first available value in the order: pkg.val, val, or default.
178   getPkgConfig = pkg : val : default : (getConfig [ pkg val ] (getConfig [ val ] default));
180   builderDefs = lib.composedArgsAndFun (import ../build-support/builder-defs/builder-defs.nix) {
181     inherit stringsWithDeps lib stdenv writeScript
182       fetchurl fetchmtn fetchgit;
183   };
185   builderDefsPackage = builderDefs.builderDefsPackage builderDefs;
187   stringsWithDeps = lib.stringsWithDeps;
190   ### STANDARD ENVIRONMENT
193   allStdenvs = import ../stdenv {
194     inherit system stdenvType;
195     allPackages = args: import ./all-packages.nix ({ inherit config; } // args);
196   };
198   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
200   stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
201     gccCrossStageFinal;
203   stdenv =
204     if bootStdenv != null then bootStdenv else
205       let changer = getConfig ["replaceStdenv"] null;
206       in if changer != null then
207         changer {
208           stdenv = stdenvCross;
209           overrideSetup = overrideSetup;
210         }
211       else if crossSystem != null then
212         stdenvCross
213       else
214         defaultStdenv;
216   forceBuildDrv = drv : if (crossSystem == null) then drv else
217     (drv // { hostDrv = drv.buildDrv; });
219   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
220   # it uses GCC compiled with multilib support; on i686-linux, it's
221   # just the plain stdenv.
222   stdenv_32bit =
223     if system == "x86_64-linux" then
224       overrideGCC stdenv gcc43_multi
225     else
226       stdenv;
229   ### BUILD SUPPORT
231   attrSetToDir = arg : import ../build-support/upstream-updater/attrset-to-dir.nix {
232     inherit writeTextFile stdenv lib;
233     theAttrSet = arg;
234   };
236   buildEnvScript = ../build-support/buildenv/builder.pl;
237   buildEnv = import ../build-support/buildenv {
238     inherit stdenv perl;
239   };
241   dotnetenv = import ../build-support/dotnetenv {
242     inherit stdenv;
243     dotnetfx = dotnetfx35;
244   };
246   vsenv = callPackage ../build-support/vsenv {
247     vs = vs90wrapper;
248   };
250   fetchbzr = import ../build-support/fetchbzr {
251     inherit stdenv bazaar;
252   };
254   fetchcvs = import ../build-support/fetchcvs {
255     inherit stdenv cvs;
256   };
258   fetchdarcs = import ../build-support/fetchdarcs {
259     inherit stdenv darcs nix;
260   };
262   fetchgit = import ../build-support/fetchgit {
263     inherit stdenv git;
264   };
266   fetchmtn = import ../build-support/fetchmtn {
267     inherit monotone stdenv;
268     cacheDB = getConfig ["fetchmtn" "cacheDB"] "";
269     defaultDBMirrors = getConfig ["fetchmtn" "defaultDBMirrors"] [];
270   };
272   fetchsvn = import ../build-support/fetchsvn {
273     inherit stdenv subversion openssh;
274     sshSupport = true;
275   };
277   fetchsvnssh = import ../build-support/fetchsvnssh {
278     inherit stdenv subversion openssh expect;
279     sshSupport = true;
280   };
282   fetchhg = import ../build-support/fetchhg {
283     inherit stdenv mercurial nix;
284   };
286   # `fetchurl' downloads a file from the network.
287   fetchurl = import ../build-support/fetchurl {
288     inherit curl stdenv;
289   };
291   # fetchurlBoot is used for curl and its dependencies in order to
292   # prevent a cyclic dependency (curl depends on curl.tar.bz2,
293   # curl.tar.bz2 depends on fetchurl, fetchurl depends on curl).  It
294   # uses the curl from the previous bootstrap phase (e.g. a statically
295   # linked curl in the case of stdenv-linux).
296   fetchurlBoot = stdenv.fetchurlBoot;
298   resolveMirrorURLs = {url}: fetchurl {
299     showURLs = true;
300     inherit url;
301   };
303   makeDesktopItem = import ../build-support/make-desktopitem {
304     inherit stdenv;
305   };
307   makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix {
308     inherit stdenv perl cpio contents ubootChooser;
309   };
311   makeWrapper = makeSetupHook ../build-support/make-wrapper/make-wrapper.sh;
313   makeModulesClosure = {kernel, rootModules, allowMissing ? false}:
314     import ../build-support/kernel/modules-closure.nix {
315       inherit stdenv module_init_tools kernel nukeReferences
316         rootModules allowMissing;
317     };
319   pathsFromGraph = ../build-support/kernel/paths-from-graph.pl;
321   srcOnly = args: (import ../build-support/src-only) ({inherit stdenv; } // args);
323   substituteAll = import ../build-support/substitute/substitute-all.nix {
324     inherit stdenv;
325   };
327   nukeReferences = callPackage ../build-support/nuke-references/default.nix { };
329   vmTools = import ../build-support/vm/default.nix {
330     inherit pkgs;
331   };
333   releaseTools = import ../build-support/release/default.nix {
334     inherit pkgs;
335   };
337   composableDerivation = (import ../lib/composable-derivation.nix) {
338     inherit pkgs lib;
339   };
341   platforms = import ./platforms.nix;
343   ### TOOLS
345   acct = callPackage ../tools/system/acct { };
347   aefs = callPackage ../tools/filesystems/aefs { };
349   aircrackng = callPackage ../tools/networking/aircrack-ng { };
351   asymptote = builderDefsPackage ../tools/graphics/asymptote {
352     inherit freeglut ghostscriptX imagemagick fftw boehmgc
353       mesa ncurses readline gsl libsigsegv python zlib perl
354       texinfo lzma;
355     texLive = texLiveAggregationFun {
356       paths = [
357         texLive texLiveExtra
358       ];
359     };
360   };
362   ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
364   ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
366   amule = callPackage ../tools/networking/p2p/amule { };
368   amuleDaemon = amule.override {
369     monolithic = false;
370     daemon = true;
371   };
372   
373   amuleGui = amule.override {
374     monolithic = false;
375     client = true;
376   };
377   
378   aria = builderDefsPackage (import ../tools/networking/aria) {
379   };
381   aria2 = callPackage ../tools/networking/aria2 { };
383   at = callPackage ../tools/system/at { };
385   autogen = callPackage ../development/tools/misc/autogen { };
387   autojump = callPackage ../tools/misc/autojump { };
389   avahi =
390     let qt4Support = getConfig [ "avahi" "qt4Support" ] false;
391     in
392       makeOverridable (import ../development/libraries/avahi) {
393         inherit stdenv fetchurl pkgconfig libdaemon dbus perl perlXMLParser
394           expat gettext intltool lib;
395         inherit (gtkLibs) glib gtk;
396         inherit qt4Support;
397         qt4 = if qt4Support then qt4 else null;
398       };
400   axel = callPackage ../tools/networking/axel { };
402   azureus = callPackage ../tools/networking/p2p/azureus { };
404   bc = callPackage ../tools/misc/bc { };
406   bfr = callPackage ../tools/misc/bfr { };
408   bootchart = callPackage ../tools/system/bootchart { };
410   btrfsProgs = builderDefsPackage (import ../tools/filesystems/btrfsprogs) {
411     inherit libuuid zlib acl;
412   };
414   catdoc = callPackage ../tools/text/catdoc { };
416   eggdrop = callPackage ../tools/networking/eggdrop { };
418   mcrl = callPackage ../tools/misc/mcrl { };
420   mcrl2 = callPackage ../tools/misc/mcrl2 { };
422   syslogng = callPackage ../tools/misc/syslog-ng { };
424   asciidoc = callPackage ../tools/typesetting/asciidoc { };
426   autossh = callPackage ../tools/networking/autossh { };
428   bibtextools = callPackage ../tools/typesetting/bibtex-tools {
429     inherit (strategoPackages016) strategoxt sdf;
430   };
432   bittorrent = callPackage ../tools/networking/p2p/bittorrent {
433     wxPython = wxPython26;
434     gui = true;
435   };
437   bittornado = callPackage ../tools/networking/p2p/bit-tornado { };
439   blueman = callPackage ../tools/bluetooth/blueman {
440     inherit (pythonPackages) notify;
441   };
443   bmrsa = builderDefsPackage (import ../tools/security/bmrsa/11.nix) {
444     inherit unzip;
445   };
447   bogofilter = callPackage ../tools/misc/bogofilter {
448     bdb = db4;
449   };
451   bsdiff = callPackage ../tools/compression/bsdiff { };
453   bzip2 = callPackage ../tools/compression/bzip2 { };
455   cabextract = callPackage ../tools/archivers/cabextract { };
457   ccid = callPackage ../tools/security/ccid { };
459   ccrypt = callPackage ../tools/security/ccrypt { };
461   cdecl = callPackage ../development/tools/cdecl { };
463   cdrdao = callPackage ../tools/cd-dvd/cdrdao { };
465   cdrkit = callPackage ../tools/cd-dvd/cdrkit { };
467   cfdg = builderDefsPackage ../tools/graphics/cfdg {
468     inherit libpng bison flex;
469   };
471   checkinstall = callPackage ../tools/package-management/checkinstall { };
473   cheetahTemplate = builderDefsPackage (import ../tools/text/cheetah-template/2.0.1.nix) {
474     inherit makeWrapper python;
475   };
477   chkrootkit = callPackage ../tools/security/chkrootkit { };
479   cksfv = callPackage ../tools/networking/cksfv { };
481   convertlit = callPackage ../tools/text/convertlit { };
483   unifdef = callPackage ../development/tools/misc/unifdef { };
485   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
487   cloogppl = callPackage ../development/libraries/cloog-ppl { };
489   convmv = callPackage ../tools/misc/convmv { };
491   coreutils = callPackage (if stdenv ? isDietLibC
492       then ../tools/misc/coreutils-5
493       else ../tools/misc/coreutils)
494     {
495       # TODO: Add ACL support for cross-Linux.
496       aclSupport = crossSystem == null && stdenv.isLinux;
497     };
499   cpio = callPackage ../tools/archivers/cpio { };
501   cromfs = callPackage ../tools/archivers/cromfs { };
503   cron = callPackage ../tools/system/cron {  # see also fcron
504   };
506   curl = makeOverridable (import ../tools/networking/curl) rec {
507     fetchurl = fetchurlBoot;
508     inherit stdenv zlib openssl libssh2;
509     zlibSupport = ! ((stdenv ? isDietLibC) || (stdenv ? isStatic));
510     sslSupport = zlibSupport;
511     scpSupport = zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin;
512   };
514   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
516   dadadodo = builderDefsPackage (import ../tools/text/dadadodo) {
517   };
519   dar = callPackage ../tools/archivers/dar { };
521   davfs2 = callPackage ../tools/filesystems/davfs2 {
522     neon = neon028;
523   };
525   dcraw = callPackage ../tools/graphics/dcraw { };
527   debootstrap = callPackage ../tools/misc/debootstrap { };
529   detox = callPackage ../tools/misc/detox { };
531   ddclient = callPackage ../tools/networking/ddclient { };
533   ddrescue = callPackage ../tools/system/ddrescue { };
535   desktop_file_utils = callPackage ../tools/misc/desktop-file-utils { };
537   dev86 = callPackage ../development/compilers/dev86 { };
539   dnsmasq = callPackage ../tools/networking/dnsmasq {
540     # TODO i18n can be installed as well, implement it?
541   };
543   dhcp = callPackage ../tools/networking/dhcp { };
545   dhcpcd = callPackage ../tools/networking/dhcpcd { };
547   diffstat = callPackage ../tools/text/diffstat { };
549   diffutils = callPackage ../tools/text/diffutils { };
551   dirmngr = callPackage ../tools/security/dirmngr { };
553   docbook2x = callPackage ../tools/typesetting/docbook2x {
554     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
555     libiconv = if stdenv.isDarwin then libiconv else null;
556   };
558   dosfstools = callPackage ../tools/filesystems/dosfstools { };
560   dotnetfx35 = callPackage ../development/libraries/dotnetfx35 { };
562   dropbear = callPackage ../tools/networking/dropbear {
563     enableStatic = true;
564     zlib = zlibStatic;
565   };
567   duplicity = callPackage ../tools/backup/duplicity {
568     inherit (pythonPackages) boto;
569     gnupg = gnupg1;
570   };
572   dvdplusrwtools = callPackage ../tools/cd-dvd/dvd+rw-tools { };
574   e2fsprogs = callPackage ../tools/filesystems/e2fsprogs { };
576   ebook_tools = callPackage ../tools/text/ebook-tools { };
578   ecryptfs = callPackage ../tools/security/ecryptfs { };
580   enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { };
582   enscript = callPackage ../tools/text/enscript { };
584   ethtool = callPackage ../tools/misc/ethtool { };
586   exif = callPackage ../tools/graphics/exif { };
588   exiftags = callPackage ../tools/graphics/exiftags { };
590   expect = callPackage ../tools/misc/expect { };
592   fcron = callPackage ../tools/system/fcron {  # see also cron
593   };
595   fdisk = callPackage ../tools/system/fdisk { };
597   figlet = callPackage ../tools/misc/figlet { };
599   file = callPackage ../tools/misc/file { };
601   findutils =
602     if stdenv.isDarwin
603     then findutils4227
604     else callPackage ../tools/misc/findutils { };
606   findutils4227 = callPackage ../tools/misc/findutils/4.2.27.nix { };
608   finger_bsd = callPackage ../tools/networking/bsd-finger { };
610   fontforge = callPackage ../tools/misc/fontforge { };
612   fontforgeX = callPackage ../tools/misc/fontforge {
613     withX11 = true;
614   };
616   dos2unix = callPackage ../tools/text/dos2unix { };
618   unix2dos = callPackage ../tools/text/unix2dos { };
620   gawk = callPackage ../tools/text/gawk { };
622   gdmap = callPackage ../tools/system/gdmap {
623     inherit (gtkLibs216) gtk;
624   };
626   genext2fs = callPackage ../tools/filesystems/genext2fs { };
628   gengetopt = callPackage ../development/tools/misc/gengetopt { };
630   getopt = callPackage ../tools/misc/getopt { };
632   gftp = callPackage ../tools/networking/gftp { };
634   gifsicle = callPackage ../tools/graphics/gifsicle { };
636   glusterfs = builderDefsPackage ../tools/filesystems/glusterfs {
637     inherit fuse;
638     bison = bison24;
639     flex = flex2535;
640   };
642   glxinfo = callPackage ../tools/graphics/glxinfo { };
644   gnokii = builderDefsPackage (import ../tools/misc/gnokii) {
645     inherit intltool perl gettext libusb pkgconfig;
646     inherit (gtkLibs) gtk glib;
647   };
649   gnugrep = callPackage ../tools/text/gnugrep { };
651   gnupatch = callPackage ../tools/text/gnupatch { };
653   gnupg1orig = callPackage ../tools/security/gnupg1 {
654     ideaSupport = false;
655   };
657   gnupg1compat = callPackage ../tools/security/gnupg1compat { };
659   # use config.packageOverrides if you prefer original gnupg1
660   gnupg1 = gnupg1compat;
662   gnupg = callPackage ../tools/security/gnupg { };
664   gnuplot = callPackage ../tools/graphics/gnuplot {
665     inherit (gtkLibs) pango;
666     texLive = null;
667     lua = null;
668   };
670   gnused = callPackage ../tools/text/gnused { };
672   gnused_4_2 = callPackage ../tools/text/gnused/4.2.nix { };
674   gnutar = callPackage ../tools/archivers/gnutar { };
676   gnuvd = callPackage ../tools/misc/gnuvd { };
678   graphviz = callPackage ../tools/graphics/graphviz {
679     inherit (gtkLibs) pango;
680   };
682   /* Readded by Michael Raskin. There are programs in the wild
683    * that do want 2.0 but not 2.22. Please give a day's notice for
684    * objections before removal.
685    */
686   graphviz_2_0 = callPackage ../tools/graphics/graphviz/2.0.nix {
687     inherit (gtkLibs) pango;
688   };
690   groff = callPackage ../tools/text/groff {
691     ghostscript = null;
692   };
694   grub = import ../tools/misc/grub {
695     inherit fetchurl autoconf automake;
696     stdenv = stdenv_32bit;
697     buggyBiosCDSupport = (getConfig ["grub" "buggyBiosCDSupport"] true);
698   };
700   grub2 = callPackage ../tools/misc/grub/1.9x.nix { };
702   gssdp = callPackage ../development/libraries/gssdp {
703     inherit (gnome) libsoup;
704   };
706   gt5 = callPackage ../tools/system/gt5 { };
708   gtkgnutella = callPackage ../tools/networking/p2p/gtk-gnutella { };
710   gupnp = callPackage ../development/libraries/gupnp {
711     inherit (gnome) libsoup;
712   };
714   gupnptools = callPackage ../tools/networking/gupnp-tools {
715     inherit (gnome) libsoup libglade gnomeicontheme;
716   };
718   gvpe = builderDefsPackage ../tools/networking/gvpe {
719     inherit openssl gmp nettools iproute;
720   };
722   gzip = callPackage ../tools/compression/gzip { };
724   pigz = callPackage ../tools/compression/pigz { };
726   halibut = callPackage ../tools/typesetting/halibut { };
728   hddtemp = callPackage ../tools/misc/hddtemp { };
730   hdf5 = callPackage ../tools/misc/hdf5 { };
732   hevea = callPackage ../tools/typesetting/hevea { };
734   highlight = callPackage ../tools/text/highlight { };
736   host = callPackage ../tools/networking/host { };
738   httpfs2 = callPackage ../tools/filesystems/httpfs { };
740   iasl = callPackage ../development/compilers/iasl { };
742   idutils = callPackage ../tools/misc/idutils { };
744   iftop = callPackage ../tools/networking/iftop { };
746   imapsync = callPackage ../tools/networking/imapsync {
747     inherit (perlPackages) MailIMAPClient;
748   };
750   inetutils = callPackage ../tools/networking/inetutils { };
752   iodine = callPackage ../tools/networking/iodine { };
754   iperf = callPackage ../tools/networking/iperf { };
756   ipmitool = callPackage ../tools/system/ipmitool {
757     static = false;
758   };
760   jdiskreport = callPackage ../tools/misc/jdiskreport { };
762   jfsrec = callPackage ../tools/filesystems/jfsrec { };
764   jfsutils = callPackage ../tools/filesystems/jfsutils { };
766   jhead = callPackage ../tools/graphics/jhead { };
768   jing = callPackage ../tools/text/xml/jing { };
770   jing_tools = callPackage ../tools/text/xml/jing/jing-script.nix { };
772   jnettop = callPackage ../tools/networking/jnettop {
773     inherit (gnome) glib;
774   };
776   jwhois = callPackage ../tools/networking/jwhois { };
778   keychain = callPackage ../tools/misc/keychain { };
780   kismet = callPackage ../applications/networking/sniffers/kismet { };
782   less = callPackage ../tools/misc/less { };
784   most = callPackage ../tools/misc/most { };
786   lftp = callPackage ../tools/networking/lftp { };
788   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
790   logrotate = callPackage ../tools/system/logrotate { };
792   lout = callPackage ../tools/typesetting/lout { };
794   lrzip = callPackage ../tools/compression/lrzip { };
796   lsh = callPackage ../tools/networking/lsh { };
798   lzma = xz;
800   xz = callPackage ../tools/compression/xz { };
802   lzop = callPackage ../tools/compression/lzop { };
804   mailutils = callPackage ../tools/networking/mailutils { };
806   man = callPackage ../tools/misc/man { };
808   man_db = callPackage ../tools/misc/man-db { };
810   memtest86 = callPackage ../tools/misc/memtest86 { };
812   mc = callPackage ../tools/misc/mc { };
814   mcabber = callPackage ../applications/networking/instant-messengers/mcabber { };
816   mcron = callPackage ../tools/system/mcron { };
818   mdbtools = callPackage ../tools/misc/mdbtools {
819     flex = flex2535;
820   };
822   miniupnpd = callPackage ../tools/networking/miniupnpd { };
824   mjpegtools = callPackage ../tools/video/mjpegtools { };
826   mkisofs = callPackage ../tools/cd-dvd/mkisofs { };
828   mktemp = callPackage ../tools/security/mktemp { };
830   mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
832   monit = builderDefsPackage ../tools/system/monit {
833     flex = flex2535;
834     bison = bison24;
835     inherit openssl;
836   };
838   mpage = callPackage ../tools/text/mpage { };
840   msf = builderDefsPackage (import ../tools/security/metasploit/3.1.nix) {
841     inherit ruby makeWrapper;
842   };
844   mssys = callPackage ../tools/misc/mssys { };
846   mtdutils = callPackage ../tools/filesystems/mtdutils { };
848   mtools = callPackage ../tools/filesystems/mtools { };
850   multitran = recurseIntoAttrs (let callPackage = newScope pkgs.multitran; in rec {
851     multitrandata = callPackage ../tools/text/multitran/data { };
853     libbtree = callPackage ../tools/text/multitran/libbtree { };
855     libmtsupport = callPackage ../tools/text/multitran/libmtsupport { };
857     libfacet = callPackage ../tools/text/multitran/libfacet { };
859     libmtquery = callPackage ../tools/text/multitran/libmtquery { };
861     mtutils = callPackage ../tools/text/multitran/mtutils { };
862   });
864   muscleframework = callPackage ../tools/security/muscleframework { };
866   muscletool = callPackage ../tools/security/muscletool { };
868   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
870   namazu = callPackage ../tools/text/namazu { };
872   nbd = callPackage ../tools/networking/nbd {
873     glib = gtkLibs.glib.override {
874       stdenv = makeStaticBinaries stdenv;
875     };
876   };
878   nc6 = callPackage ../tools/networking/nc6 { };
880   ncat = callPackage ../tools/networking/ncat { };
882   ncftp = callPackage ../tools/networking/ncftp { };
884   ncompress = callPackage ../tools/compression/ncompress { };
886   netcat = callPackage ../tools/networking/netcat { };
888   netkittftp = callPackage ../tools/networking/netkit/tftp { };
890   netpbm = callPackage ../tools/graphics/netpbm { };
892   netselect = callPackage ../tools/networking/netselect { };
894   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
896   nmap = callPackage ../tools/security/nmap {
897     inherit (pythonPackages) pysqlite;
898   };
900   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
902   ntfsprogs = callPackage ../tools/filesystems/ntfsprogs { };
904   ntp = callPackage ../tools/networking/ntp { };
906   nssmdns = callPackage ../tools/networking/nss-mdns { };
908   nylon = callPackage ../tools/networking/nylon { };
910   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
912   obexd = callPackage ../tools/bluetooth/obexd { };
914   obexfs = callPackage ../tools/bluetooth/obexfs { };
916   obexftp = callPackage ../tools/bluetooth/obexftp { };
918   offlineimap = import ../tools/networking/offlineimap {
919     inherit fetchurl;
920     # I did not find any better way of reusing buildPythonPackage+setuptools
921     # for a python with openssl support
922     buildPythonPackage = assert pythonFull.opensslSupport;
923       import ../development/python-modules/generic {
924         inherit makeWrapper lib;
925         python = pythonFull;
926         setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
927           inherit makeWrapper;
928           python = pythonFull;
929         };
930       };
931   };
933   opendbx = callPackage ../development/libraries/opendbx { };
935   opendkim = callPackage ../development/libraries/opendkim { };
937   openjade = callPackage ../tools/text/sgml/openjade {
938     stdenv = overrideGCC stdenv gcc33;
939   };
941   openobex = callPackage ../tools/bluetooth/openobex { };
943   opensc_0_11_7 = callPackage ../tools/security/opensc/0.11.7.nix { };
945   opensc = opensc_0_11_7;
947   opensc_dnie_wrapper = callPackage ../tools/security/opensc-dnie-wrapper { };
949   openssh = callPackage ../tools/networking/openssh {
950     hpnSupport = false;
951     etcDir = "/etc/ssh";
952   };
954   opensp = callPackage ../tools/text/sgml/opensp { };
956   openvpn = callPackage ../tools/networking/openvpn { };
958   optipng = callPackage ../tools/graphics/optipng { };
960   p7zip = callPackage ../tools/archivers/p7zip { };
962   pal = callPackage ../tools/misc/pal { };
964   panomatic = callPackage ../tools/graphics/panomatic { };
966   par2cmdline = callPackage ../tools/networking/par2cmdline { };
968   parallel = callPackage ../tools/misc/parallel { };
970   patchutils = callPackage ../tools/text/patchutils { };
972   parted = callPackage ../tools/misc/parted { };
974   patch = gnupatch;
976   pbzip2 = callPackage ../tools/compression/pbzip2 { };
978   pciutils = callPackage ../tools/system/pciutils { };
980   pcsclite = callPackage ../tools/security/pcsclite { };
982   pdf2djvu = callPackage ../tools/typesetting/pdf2djvu { };
984   pdfjam = callPackage ../tools/typesetting/pdfjam { };
986   pdfread = callPackage ../tools/graphics/pdfread { };
988   pg_top = callPackage ../tools/misc/pg_top { };
990   pdsh = callPackage ../tools/networking/pdsh {
991     rsh = true;          # enable internal rsh implementation
992     ssh = openssh;
993   };
995   pfstools = callPackage ../tools/graphics/pfstools {
996     qt = qt3;
997   };
999   pinentry = callPackage ../tools/misc/pinentry {
1000     inherit (gnome) glib gtk;
1001   };
1003   pius = callPackage ../tools/security/pius { };
1005   pk2cmd = callPackage ../tools/misc/pk2cmd { };
1007   plan9port = callPackage ../tools/system/plan9port { };
1009   ploticus = callPackage ../tools/graphics/ploticus { };
1011   plotutils = callPackage ../tools/graphics/plotutils { };
1013   pngnq = callPackage ../tools/graphics/pngnq { };
1015   povray = callPackage ../tools/graphics/povray { };
1017   ppl = callPackage ../development/libraries/ppl { };
1019   /* WARNING: this version is unsuitable for using with a setuid wrapper */
1020   ppp = builderDefsPackage (import ../tools/networking/ppp) {
1021   };
1023   proxychains = callPackage ../tools/networking/proxychains { };
1025   proxytunnel = callPackage ../tools/misc/proxytunnel { };
1027   psmisc = callPackage ../tools/misc/psmisc { };
1029   pstoedit = callPackage ../tools/graphics/pstoedit { };
1031   pv = callPackage ../tools/misc/pv { };
1033   pwgen = callPackage ../tools/security/pwgen { };
1035   pydb = callPackage ../tools/pydb { };
1037   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
1039   pythonDBus = builderDefsPackage (import ../development/python-modules/dbus) {
1040     inherit python pkgconfig dbus_glib;
1041     dbus = dbus.libs;
1042   };
1044   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
1045     inherit python;
1046   };
1048   pythonSexy = builderDefsPackage (import ../development/python-modules/libsexy) {
1049     inherit python libsexy pkgconfig libxml2 pygtk;
1050     inherit (gtkLibs) pango gtk glib;
1051   };
1053   openmpi = callPackage ../development/libraries/openmpi { };
1055   qdu = callPackage ../tools/misc/qdu { };
1057   qhull = callPackage ../development/libraries/qhull { };
1059   qshowdiff = callPackage ../tools/text/qshowdiff {
1060     qt = qt4;
1061   };
1063   rtmpdump = callPackage ../tools/video/rtmpdump { };
1065   reiser4progs = callPackage ../tools/filesystems/reiser4progs { };
1067   reiserfsprogs = callPackage ../tools/filesystems/reiserfsprogs { };
1069   relfs = callPackage ../tools/filesystems/relfs {
1070     inherit (gnome) gnomevfs GConf;
1071   };
1073   remind = callPackage ../tools/misc/remind { };
1075   replace = callPackage ../tools/text/replace { };
1077   /*
1078   rdiff_backup = callPackage ../tools/backup/rdiff-backup {
1079     python=python;  };
1080   */
1082   rsnapshot = callPackage ../tools/backup/rsnapshot {
1084     # For the `logger' command, we can use either `utillinux' or
1085     # GNU Inetutils.  The latter is more portable.
1086     logger = inetutils;
1087   };
1089   rlwrap = callPackage ../tools/misc/rlwrap { };
1091   rpPPPoE = builderDefsPackage (import ../tools/networking/rp-pppoe) {
1092     inherit ppp;
1093   };
1095   rpm = callPackage ../tools/package-management/rpm {
1096     db4 = db45;
1097   };
1099   rrdtool = callPackage ../tools/misc/rrdtool {
1100     inherit (gtkLibs) pango;
1101   };
1103   rtorrent = callPackage ../tools/networking/p2p/rtorrent { };
1105   rubber = callPackage ../tools/typesetting/rubber { };
1107   rxp = callPackage ../tools/text/xml/rxp { };
1109   rzip = callPackage ../tools/compression/rzip { };
1111   s3backer = callPackage ../tools/filesystems/s3backer { };
1113   s3sync = callPackage ../tools/networking/s3sync { };
1115   sablotron = callPackage ../tools/text/xml/sablotron { };
1117   screen = callPackage ../tools/misc/screen { };
1119   scrot = callPackage ../tools/graphics/scrot { };
1121   seccure = callPackage ../tools/security/seccure/0.4.nix { };
1123   setserial = builderDefsPackage (import ../tools/system/setserial) {
1124     inherit groff;
1125   };
1127   sharutils = callPackage ../tools/archivers/sharutils { };
1129   shebangfix = callPackage ../tools/misc/shebangfix { };
1131   slimrat = callPackage ../tools/networking/slimrat {
1132     inherit (perlPackages) WWWMechanize LWP;
1133   };
1135   slsnif = callPackage ../tools/misc/slsnif { };
1137   smartmontools = callPackage ../tools/system/smartmontools { };
1139   fusesmb = callPackage ../tools/filesystems/fusesmb { };
1141   socat = callPackage ../tools/networking/socat { };
1143   sourceHighlight = callPackage ../tools/text/source-highlight { };
1145   socat2pre = builderDefsPackage ../tools/networking/socat/2.0.0-b3.nix {
1146     inherit fetchurl stdenv openssl;
1147   };
1149   squashfsTools = callPackage ../tools/filesystems/squashfs { };
1151   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
1153   sudo = callPackage ../tools/security/sudo { };
1155   suidChroot = builderDefsPackage (import ../tools/system/suid-chroot) {
1156   };
1158   ssmtp = callPackage ../tools/networking/ssmtp {
1159     tlsSupport = true;
1160   };
1162   ssss = callPackage ../tools/security/ssss { };
1164   stun = callPackage ../tools/networking/stun { };
1166   stunnel = callPackage ../tools/networking/stunnel { };
1168   su = shadow;
1170   swec = callPackage ../tools/networking/swec {
1171     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
1172   };
1174   svnfs = callPackage ../tools/filesystems/svnfs { };
1176   system_config_printer = callPackage ../tools/misc/system-config-printer { };
1178   sitecopy = callPackage ../tools/networking/sitecopy { };
1180   privoxy = callPackage ../tools/networking/privoxy {
1181     autoconf = autoconf213;
1182   };
1184   tcpdump = callPackage ../tools/networking/tcpdump { };
1186   tcng = callPackage ../tools/networking/tcng {
1187     kernel = linux_2_6_28;
1188   };
1190   telnet = callPackage ../tools/networking/telnet { };
1192   texmacs = callPackage ../applications/office/texmacs { };
1194   tor = callPackage ../tools/security/tor { };
1196   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
1197   ttf2pt1_cl_pdf = callPackage ../tools/misc/ttf2pt1 { };
1199   ucl = callPackage ../development/libraries/ucl { };
1201   ufraw = callPackage ../applications/graphics/ufraw {
1202     inherit (gnome) gtk;
1203   };
1205   unetbootin = callPackage ../tools/cd-dvd/unetbootin { };
1207   upx = callPackage ../tools/compression/upx { };
1208   
1209   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
1211   vbetool = builderDefsPackage ../tools/system/vbetool {
1212     inherit pciutils libx86 zlib;
1213   };
1215   viking = callPackage ../applications/misc/viking { };
1217   vncrec = builderDefsPackage ../tools/video/vncrec {
1218     inherit (xlibs) imake libX11 xproto gccmakedep libXt
1219       libXmu libXaw libXext xextproto libSM libICE libXpm
1220       libXp;
1221   };
1223   vpnc = callPackage ../tools/networking/vpnc { };
1225   vtun = callPackage ../tools/networking/vtun { };
1227   testdisk = callPackage ../tools/misc/testdisk { };
1229   htmlTidy = callPackage ../tools/text/html-tidy { };
1231   tigervnc = callPackage ../tools/admin/tigervnc {
1232     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1233       xorg.fontbhlucidatypewriter75dpi ];
1234   };
1236   tightvnc = callPackage ../tools/admin/tightvnc {
1237     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
1238       xorg.fontbhlucidatypewriter75dpi ];
1239   };
1241   time = callPackage ../tools/misc/time { };
1243   tm = callPackage ../tools/system/tm { };
1245   trang = callPackage ../tools/text/xml/trang { };
1247   tre = callPackage ../development/libraries/tre { };
1249   ts = callPackage ../tools/system/ts { };
1251   transfig = callPackage ../tools/graphics/transfig { };
1253   truecrypt = callPackage ../applications/misc/truecrypt {
1254     wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
1255   };
1257   ttmkfdir = callPackage ../tools/misc/ttmkfdir {
1258     flex = flex2534;
1259   };
1261   unbound = callPackage ../tools/networking/unbound { };
1263   units = callPackage ../tools/misc/units { };
1265   unrar = callPackage ../tools/archivers/unrar { };
1267   unshield = callPackage ../tools/archivers/unshield { };
1269   unzip = unzip552;
1271   # TODO: remove in the next stdenv update.
1272   unzip552 = callPackage ../tools/archivers/unzip/5.52.nix { };
1274   unzip60 = callPackage ../tools/archivers/unzip/6.0.nix { };
1276   uptimed = callPackage ../tools/system/uptimed { };
1278   w3cCSSValidator = callPackage ../tools/misc/w3c-css-validator {
1279     tomcat = tomcat6;
1280   };
1282   wdfs = callPackage ../tools/filesystems/wdfs { };
1284   wdiff = callPackage ../tools/text/wdiff { };
1286   webalizer = callPackage ../tools/networking/webalizer { };
1288   webdruid = builderDefsPackage ../tools/admin/webdruid {
1289     inherit zlib libpng freetype gd which
1290       libxml2 geoip;
1291   };
1293   wget = callPackage ../tools/networking/wget {
1294     inherit (perlPackages) LWP;
1295   };
1297   which = callPackage ../tools/system/which { };
1299   wicd = callPackage ../tools/networking/wicd { };
1301   wv = callPackage ../tools/misc/wv { };
1303   wv2 = callPackage ../tools/misc/wv2 { };
1305   x11_ssh_askpass = callPackage ../tools/networking/x11-ssh-askpass { };
1307   xbursttools = import ../tools/misc/xburst-tools {
1308     inherit stdenv fetchgit autoconf automake libusb confuse;
1309     # It needs a cross compiler for mipsel to build the firmware it will
1310     # load into the Ben Nanonote
1311     gccCross =
1312       let
1313         pkgsCross = (import ./all-packages.nix) {
1314           inherit system;
1315           inherit bootStdenv noSysDirs gccWithCC gccWithProfiling config;
1316           # Ben Nanonote system
1317           crossSystem = {
1318             config = "mipsel-unknown-linux";
1319             bigEndian = true;
1320             arch = "mips";
1321             float = "soft";
1322             withTLS = true;
1323             libc = "uclibc";
1324             platform = {
1325               name = "ben_nanonote";
1326               kernelMajor = "2.6";
1327               # It's not a bcm47xx processor, but for the headers this should work
1328               kernelHeadersBaseConfig = "bcm47xx_defconfig";
1329               kernelArch = "mips";
1330             };
1331             gcc = {
1332               arch = "mips32";
1333             };
1334           };
1335         };
1336       in
1337         pkgsCross.gccCrossStageStatic;
1338   };
1340   xclip = callPackage ../tools/misc/xclip { };
1342   xfsprogs = callPackage ../tools/filesystems/xfsprogs { };
1344   xmlroff = callPackage ../tools/typesetting/xmlroff {
1345     inherit (gtkLibs) glib pango gtk;
1346     inherit (gnome) libgnomeprint;
1347   };
1349   xmlstarlet = callPackage ../tools/text/xml/xmlstarlet { };
1351   xmlto = callPackage ../tools/typesetting/xmlto { };
1353   xmltv = callPackage ../tools/misc/xmltv { };
1355   xmpppy = builderDefsPackage (import ../development/python-modules/xmpppy) {
1356     inherit python setuptools;
1357   };
1359   xpf = callPackage ../tools/text/xml/xpf {
1360     libxml2 = libxml2Python;
1361   };
1363   xsel = callPackage ../tools/misc/xsel { };
1365   zdelta = callPackage ../tools/compression/zdelta { };
1367   zile = callPackage ../applications/editors/zile { };
1369   zip = callPackage ../tools/archivers/zip { };
1371   zsync = callPackage ../tools/compression/zsync { };
1373   ### SHELLS
1376   bash = lowPrio (callPackage ../shells/bash {
1377     texinfo = null;
1378   });
1380   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
1381     interactive = true;
1382   });
1384   dash = callPackage ../shells/dash { };
1386   tcsh = callPackage ../shells/tcsh { };
1388   rush = callPackage ../shells/rush { };
1390   zsh = callPackage ../shells/zsh { };
1393   ### DEVELOPMENT / COMPILERS
1396   abc =
1397     abcPatchable [];
1399   abcPatchable = patches :
1400     import ../development/compilers/abc/default.nix {
1401       inherit stdenv fetchurl patches jre apacheAnt;
1402       javaCup = callPackage ../development/libraries/java/cup { };
1403     };
1405   aspectj = callPackage ../development/compilers/aspectj { };
1407   bigloo = callPackage ../development/compilers/bigloo { };
1409   ccl = builderDefsPackage ../development/compilers/ccl {};
1411   clang = llvm.override {
1412     buildClang = true;
1413   };
1415   dylan = callPackage ../development/compilers/gwydion-dylan {
1416     dylan =
1417       import ../development/compilers/gwydion-dylan/binary.nix {
1418         inherit fetchurl stdenv;
1419   };
1420   };
1422   ecl = builderDefsPackage ../development/compilers/ecl {
1423     inherit gmp mpfr;
1424   };
1426   eql = callPackage ../development/compilers/eql {};
1428   adobe_flex_sdk = callPackage ../development/compilers/adobe-flex-sdk { };
1430   fpc = callPackage ../development/compilers/fpc { };
1432   gambit = callPackage ../development/compilers/gambit { };
1434   gcc = gcc44;
1436   gcc295 = wrapGCC (import ../development/compilers/gcc-2.95 {
1437     inherit fetchurl stdenv noSysDirs;
1438   });
1440   gcc33 = wrapGCC (import ../development/compilers/gcc-3.3 {
1441     inherit fetchurl stdenv noSysDirs;
1442   });
1444   gcc34 = wrapGCC (import ../development/compilers/gcc-3.4 {
1445     inherit fetchurl stdenv noSysDirs;
1446   });
1448   # XXX: GCC 4.2 (and possibly others) misdetects `makeinfo' when
1449   # using Texinfo >= 4.10, just because it uses a stupid regexp that
1450   # expects a single digit after the dot.  As a workaround, we feed
1451   # GCC with Texinfo 4.9.  Stupid bug, hackish workaround.
1453   gcc40 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.0) {
1454     inherit fetchurl stdenv noSysDirs;
1455     texinfo = texinfo49;
1456     profiledCompiler = true;
1457   });
1459   gcc41 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.1) {
1460     inherit fetchurl stdenv noSysDirs;
1461     texinfo = texinfo49;
1462     profiledCompiler = false;
1463   });
1465   gcc42 = wrapGCC (makeOverridable (import ../development/compilers/gcc-4.2) {
1466     inherit fetchurl stdenv noSysDirs;
1467     profiledCompiler = false;
1468   });
1470   gcc44 = gcc44_real;
1472   gcc43 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.3) {
1473     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1474     profiledCompiler = true;
1475   }));
1477   gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) {
1478     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs;
1479     binutilsCross = binutilsCross;
1480     libcCross = libcCross;
1481     profiledCompiler = false;
1482     enableMultilib = true;
1483     crossStageStatic = false;
1484     cross = assert crossSystem != null; crossSystem;
1485   };
1487   gcc44_realCross = lib.addMetaAttrs { platforms = []; }
1488     (makeOverridable (import ../development/compilers/gcc-4.4) {
1489       inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs
1490           gettext which;
1491       binutilsCross = binutilsCross;
1492       libcCross = libcCross;
1493       profiledCompiler = false;
1494       enableMultilib = false;
1495       crossStageStatic = false;
1496       cross = assert crossSystem != null; crossSystem;
1497     });
1499   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
1500     (makeOverridable (import ../development/compilers/gcc-4.5) {
1501       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
1502         ppl cloogppl gettext which noSysDirs;
1503       binutilsCross = binutilsCross;
1504       libcCross = libcCross;
1505       profiledCompiler = false;
1506       enableMultilib = false;
1507       crossStageStatic = false;
1508       cross = assert crossSystem != null; crossSystem;
1509     });
1511   gcc_realCross = gcc45_realCross;
1513   gccCrossStageStatic = let
1514       isMingw = (stdenv.cross.libc == "msvcrt");
1515       libcCross1 = if isMingw then windows.mingw_headers1 else null;
1516     in
1517       wrapGCCCross {
1518       gcc = forceBuildDrv (lib.addMetaAttrs { platforms = []; } (
1519         gcc_realCross.override {
1520           crossStageStatic = true;
1521           langCC = false;
1522           libcCross = libcCross1;
1523           enableShared = false;
1524         }));
1525       libc = libcCross1;
1526       binutils = binutilsCross;
1527       cross = assert crossSystem != null; crossSystem;
1528   };
1530   # Only needed for mingw builds
1531   gccCrossMingw2 = wrapGCCCross {
1532     gcc = gccCrossStageStatic.gcc;
1533     libc = windows.mingw_headers2;
1534     binutils = binutilsCross;
1535     cross = assert crossSystem != null; crossSystem;
1536   };
1538   gccCrossStageFinal = wrapGCCCross {
1539     gcc = forceBuildDrv (gcc_realCross.override {
1540       libpthreadCross =
1541         # FIXME: Don't explicitly refer to `i586-pc-gnu'.
1542         if crossSystem != null && crossSystem.config == "i586-pc-gnu"
1543         then hurdLibpthreadCross
1544         else null;
1545      });
1546     libc = libcCross;
1547     binutils = binutilsCross;
1548     cross = assert crossSystem != null; crossSystem;
1549   };
1551   gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override {
1552     stdenv = overrideGCC stdenv (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi gcc);
1553     profiledCompiler = false;
1554     enableMultilib = true;
1555   }));
1557   gcc44_real = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.4) {
1558     inherit fetchurl stdenv texinfo gmp mpfr /* ppl cloogppl */
1559       gettext which noSysDirs;
1560     profiledCompiler = true;
1561   }));
1563   gcc45 = lowPrio (wrapGCC (makeOverridable (import ../development/compilers/gcc-4.5) {
1564     inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib perl
1565       ppl cloogppl
1566       gettext which noSysDirs;
1567     profiledCompiler = true;
1568   }));
1570   gccApple =
1571     wrapGCC ( (if stdenv.system == "i686-darwin" then import ../development/compilers/gcc-apple else import ../development/compilers/gcc-apple64) {
1572       inherit fetchurl stdenv noSysDirs;
1573       profiledCompiler = true;
1574     }) ;
1576   gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
1577     inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
1578     texinfo = texinfo49;
1579   });
1581   gfortran = gfortran43;
1583   gfortran40 = wrapGCC (gcc40.gcc.override {
1584     langFortran = true;
1585     langCC = false;
1586     inherit gmp mpfr;
1587   });
1589   gfortran41 = wrapGCC (gcc41.gcc.override {
1590     name = "gfortran";
1591     langFortran = true;
1592     langCC = false;
1593     langC = false;
1594     inherit gmp mpfr;
1595   });
1597   gfortran42 = wrapGCC (gcc42.gcc.override {
1598     name = "gfortran";
1599     langFortran = true;
1600     langCC = false;
1601     langC = false;
1602     inherit gmp mpfr;
1603   });
1605   gfortran43 = wrapGCC (gcc43.gcc.override {
1606     name = "gfortran";
1607     langFortran = true;
1608     langCC = false;
1609     langC = false;
1610     profiledCompiler = false;
1611   });
1613   gfortran44 = wrapGCC (gcc44_real.gcc.override {
1614     name = "gfortran";
1615     langFortran = true;
1616     langCC = false;
1617     langC = false;
1618     profiledCompiler = false;
1619   });
1621   gcj = gcj45;
1623   gcj44 = wrapGCC (gcc44_real.gcc.override {
1624     name = "gcj";
1625     langJava = true;
1626     langFortran = false;
1627     langCC = true;
1628     langC = false;
1629     profiledCompiler = false;
1630     inherit zip unzip zlib boehmgc gettext pkgconfig;
1631     inherit (gtkLibs) gtk;
1632     inherit (gnome) libart_lgpl;
1633     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1634       libXrandr xproto renderproto xextproto inputproto randrproto;
1635   });
1637   gcj45 = wrapGCC (gcc45.gcc.override {
1638     name = "gcj";
1639     langJava = true;
1640     langFortran = false;
1641     langCC = true;
1642     langC = false;
1643     profiledCompiler = false;
1644     inherit zip unzip zlib boehmgc gettext pkgconfig perl;
1645     inherit (gtkLibs) gtk;
1646     inherit (gnome) libart_lgpl;
1647     inherit (xlibs) libX11 libXt libSM libICE libXtst libXi libXrender
1648       libXrandr xproto renderproto xextproto inputproto randrproto;
1649   });
1651   gnat = gnat44;
1653   gnat44 = wrapGCC (gcc44_real.gcc.override {
1654     name = "gnat";
1655     langCC = false;
1656     langC = true;
1657     langAda = true;
1658     profiledCompiler = false;
1659     inherit gnatboot;
1660     # We can't use the ppl stuff, because we would have
1661     # libstdc++ problems.
1662     cloogppl = null;
1663     ppl = null;
1664   });
1666   gnatboot = wrapGCC (import ../development/compilers/gnatboot {
1667     inherit fetchurl stdenv;
1668   });
1670   ghdl = wrapGCC (import ../development/compilers/gcc-4.3 {
1671     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat;
1672     name = "ghdl";
1673     langVhdl = true;
1674     langCC = false;
1675     langC = false;
1676     profiledCompiler = false;
1677     enableMultilib = false;
1678   });
1680   # Not officially supported version for ghdl
1681   ghdl_gcc44 = lowPrio (wrapGCC (import ../development/compilers/gcc-4.4 {
1682     inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gnat gettext which
1683       ppl cloogppl;
1684     name = "ghdl";
1685     langVhdl = true;
1686     langCC = false;
1687     langC = false;
1688     profiledCompiler = false;
1689     enableMultilib = false;
1690   }));
1692   gcl = builderDefsPackage ../development/compilers/gcl {
1693     inherit mpfr m4 binutils fetchcvs emacs zlib which
1694       gmp texinfo;
1695     inherit (xlibs) libX11 xproto inputproto libXi
1696       libXext xextproto libXt libXaw libXmu;
1697     inherit stdenv;
1698     texLive = texLiveAggregationFun {
1699       paths = [
1700         texLive texLiveExtra
1701       ];
1702     };
1703   };
1705   # GHC
1707   # GHC binaries are around for bootstrapping purposes
1709   # If we'd want to reactivate the 6.6 and 6.8 series of ghc, we'd
1710   # need to reenable an old binary such as this.
1711   /*
1712   ghc642Binary = lowPrio (import ../development/compilers/ghc/6.4.2-binary.nix {
1713     inherit fetchurl stdenv ncurses gmp;
1714     readline = if stdenv.system == "i686-linux" then readline4 else readline5;
1715     perl = perl58;
1716   });
1717   */
1719   ghc6101Binary = lowPrio (import ../development/compilers/ghc/6.10.1-binary.nix {
1720     inherit fetchurl stdenv perl ncurses gmp libedit;
1721   });
1723   ghc6102Binary = lowPrio (import ../development/compilers/ghc/6.10.2-binary.nix {
1724     inherit fetchurl stdenv perl ncurses gmp libedit;
1725   });
1727   # For several compiler versions, we export a large set of Haskell-related
1728   # packages.
1730   # This should point to the current default version.
1731   haskellPackages = haskellPackages_ghc6123;
1733   # Old versions of ghc that currently don't build because the binary
1734   # is broken.
1735   /*
1736   haskellPackages_ghc642 = callPackage ./haskell-packages.nix {
1737     ghc = import ../development/compilers/ghc/6.4.2.nix {
1738       inherit fetchurl stdenv perl ncurses readline m4 gmp;
1739       ghc = ghc642Binary;  };
1740   };
1742   haskellPackages_ghc661 = callPackage ./haskell-packages.nix {
1743     ghc = import ../development/compilers/ghc/6.6.1.nix {
1744       inherit fetchurl stdenv readline perl58 gmp ncurses m4;
1745       ghc = ghc642Binary;
1746   };
1747   };
1749   haskellPackages_ghc682 = callPackage ./haskell-packages.nix {
1750     ghc = import ../development/compilers/ghc/6.8.2.nix {
1751       inherit fetchurl stdenv perl gmp ncurses m4;
1752       readline = readline5;
1753       ghc = ghc642Binary;
1754   };
1755   };
1757   haskellPackages_ghc683 = recurseIntoAttrs (import ./haskell-packages.nix {
1758     inherit pkgs;
1759     ghc = callPackage ../development/compilers/ghc/6.8.3.nix {
1760       ghc = ghc642Binary;
1761       haddock = import ../development/tools/documentation/haddock/boot.nix {
1762         inherit gmp;
1763         cabal = import ../development/libraries/haskell/cabal/cabal.nix {
1764           inherit stdenv fetchurl lib;
1765           ghc = ghc642Binary;    };
1766       };
1767     };
1768   });
1769   */
1771   # NOTE: After discussion, we decided to enable recurseIntoAttrs for all
1772   # currently available ghc versions. (Before, it used to be enabled only
1773   # for a selected few versions.) If someone complains about nix-env -qa
1774   # output being spammed by lots of Haskell packages, we can talk about
1775   # reducing the number or "enabled" versions again.
1777   # Helper functions to abstract away from repetitive instantiations.
1778   haskellPackagesFun610 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1779     inherit pkgs newScope;
1780     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1781     ghc = callPackage ghcPath {
1782       ghc = ghc6101Binary;    };
1783   });
1785   haskellPackagesFun612 = ghcPath : profDefault : recurseIntoAttrs (import ./haskell-packages.nix {
1786     inherit pkgs newScope;
1787     enableLibraryProfiling = getConfig [ "cabal" "libraryProfiling" ] profDefault;
1788     ghc = callPackage ghcPath {
1789       ghc = ghc6101Binary;    };
1790   });
1792   # Currently active GHC versions.
1793   haskellPackages_ghc6101 =
1794     haskellPackagesFun610 ../development/compilers/ghc/6.10.1.nix false;
1796   haskellPackages_ghc6102 =
1797     haskellPackagesFun610 ../development/compilers/ghc/6.10.2.nix false;
1799   haskellPackages_ghc6103 =
1800     haskellPackagesFun610 ../development/compilers/ghc/6.10.3.nix false;
1802   # Current default version.
1803   haskellPackages_ghc6104 =
1804     haskellPackagesFun610 ../development/compilers/ghc/6.10.4.nix false;
1806   haskellPackages_ghc6121 =
1807     haskellPackagesFun612 ../development/compilers/ghc/6.12.1.nix false;
1809   haskellPackages_ghc6122 =
1810     haskellPackagesFun612 ../development/compilers/ghc/6.12.2.nix false;
1812   haskellPackages_ghc6123 =
1813     haskellPackagesFun612 ../development/compilers/ghc/6.12.3.nix false;
1815   # Currently not pointing to the actual HEAD, therefore disabled
1816   /*
1817   haskellPackages_ghcHEAD = lowPrio (import ./haskell-packages.nix {
1818     inherit pkgs;
1819     ghc = callPackage ../development/compilers/ghc/6.11.nix {
1820       inherit (haskellPackages) happy alex; # hope these aren't required for the final version
1821       ghc = ghc6101Binary;    };
1822   });
1823   */
1825   haxeDist = import ../development/compilers/haxe {
1826     inherit fetchurl sourceFromHead stdenv lib ocaml zlib makeWrapper neko;
1827   };
1828   haxe = haxeDist.haxe;
1829   haxelib = haxeDist.haxelib;
1831   falcon = builderDefsPackage (import ../development/interpreters/falcon) {
1832     inherit cmake;
1833   };
1835   go = callPackage ../development/compilers/go { };
1837   gprolog = callPackage ../development/compilers/gprolog { };
1839   gwt = callPackage ../development/compilers/gwt {
1840     inherit (gtkLibs) glib gtk pango atk;
1841     libstdcpp5 = gcc33.gcc;
1842   };
1844   ikarus = callPackage ../development/compilers/ikarus { };
1846   #TODO add packages http://cvs.haskell.org/Hugs/downloads/2006-09/packages/ and test
1847   # commented out because it's using the new configuration style proposal which is unstable
1848   hugs = callPackage ../development/compilers/hugs { };
1850   path64 = callPackage ../development/compilers/path64 {
1851     stdenv = stdenv2;
1852   };
1854   openjdkDarwin = callPackage ../development/compilers/openjdk-darwin { };
1856   j2sdk14x = (
1857     assert system == "i686-linux";
1858     import ../development/compilers/jdk/default-1.4.nix {
1859       inherit fetchurl stdenv;
1860     });
1862   jdk5 = (
1863     assert system == "i686-linux" || system == "x86_64-linux";
1864     import ../development/compilers/jdk/default-5.nix {
1865       inherit fetchurl stdenv unzip;
1866     });
1868   jdk       = if stdenv.isDarwin then openjdkDarwin else jdkdistro true  false;
1869   jre       = jdkdistro false false;
1871   jdkPlugin = jdkdistro true true;
1872   jrePlugin = jdkdistro false true;
1874   supportsJDK =
1875     system == "i686-linux" ||
1876     system == "x86_64-linux" ||
1877     system == "i686-cygwin" ||
1878     system == "powerpc-linux";
1880   jdkdistro = installjdk: pluginSupport:
1881        (assert supportsJDK;
1882     (if pluginSupport then appendToName "plugin" else x: x) (import ../development/compilers/jdk {
1883       inherit fetchurl stdenv unzip installjdk xlibs pluginSupport makeWrapper cabextract;
1884     }));
1886   jikes = callPackage ../development/compilers/jikes { };
1888   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
1889     inherit fpc makeWrapper;
1890     inherit (gtkLibs) gtk glib pango atk;
1891     inherit (xlibs) libXi inputproto libX11 xproto libXext xextproto;
1892   };
1894   llvm = callPackage ../development/compilers/llvm { };
1896   mitscheme = callPackage ../development/compilers/mit-scheme { };
1898   mlton = callPackage ../development/compilers/mlton { };
1900   mono = callPackage ../development/compilers/mono { };
1902   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
1904   mozart = callPackage ../development/compilers/mozart { };
1906   neko = callPackage ../development/compilers/neko { };
1908   nasm = callPackage ../development/compilers/nasm { };
1910   ocaml = ocaml_3_11_1;
1912   ocaml_3_08_0 = callPackage ../development/compilers/ocaml/3.08.0.nix { };
1914   ocaml_3_10_0 = callPackage ../development/compilers/ocaml/3.10.0.nix { };
1916   ocaml_3_11_1 = callPackage ../development/compilers/ocaml/3.11.1.nix { };
1918   opencxx = callPackage ../development/compilers/opencxx {
1919     gcc = gcc33;
1920   };
1922   qcmm = callPackage ../development/compilers/qcmm {
1923     lua   = lua4;
1924     ocaml = ocaml_3_08_0;
1925   };
1927   roadsend = callPackage ../development/compilers/roadsend { };
1929   sbcl = builderDefsPackage (import ../development/compilers/sbcl) {
1930     inherit makeWrapper clisp;
1931   };
1933   scala = callPackage ../development/compilers/scala { };
1935   stalin = callPackage ../development/compilers/stalin { };
1937   strategoPackages = strategoPackages017;
1939   strategoPackages016 = callPackage ../development/compilers/strategoxt/0.16.nix {
1940     stdenv = overrideInStdenv stdenv [gnumake380];
1941   };
1943   strategoPackages017 = callPackage ../development/compilers/strategoxt/0.17.nix {
1944     readline = readline5;
1945   };
1947   strategoPackages018 = callPackage ../development/compilers/strategoxt/0.18.nix {
1948     readline = readline5;
1949   };
1951   metaBuildEnv = callPackage ../development/compilers/meta-environment/meta-build-env { };
1953   swiProlog = callPackage ../development/compilers/swi-prolog { };
1955   tinycc = callPackage ../development/compilers/tinycc { };
1957   urweb = callPackage ../development/compilers/urweb { };
1959   vala = callPackage ../development/compilers/vala { };
1961   visualcpp = callPackage ../development/compilers/visual-c++ { };
1963   vs90wrapper = callPackage ../development/compilers/vs90wrapper { };
1965   webdsl = callPackage ../development/compilers/webdsl { };
1967   win32hello = callPackage ../development/compilers/visual-c++/test { };
1969   wrapGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
1970     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
1971     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
1972     nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
1973     gcc = baseGCC;
1974     libc = glibc;
1975     inherit stdenv binutils coreutils zlib;
1976   };
1978   wrapGCC = wrapGCCWith (import ../build-support/gcc-wrapper) glibc;
1980   # To be removed on stdenv-updates
1981   # By now this has at least the fix of setting the proper rpath when a file "libbla.so"
1982   # is passed directly to the linker.
1983   # This is of interest to programs built by cmake, because this is a common practice
1984   # in cmake builds.
1985   wrapGCC2 = wrapGCCWith (import ../build-support/gcc-wrapper/default2.nix) glibc;
1986   stdenv2 = if (gcc.nativeTools) then stdenv else (overrideGCC stdenv (wrapGCC2 gcc.gcc));
1988   wrapGCCCross =
1989     {gcc, libc, binutils, cross, shell ? "", name ? "gcc-cross-wrapper"}:
1991     forceBuildDrv (import ../build-support/gcc-cross-wrapper {
1992       nativeTools = false;
1993       nativeLibc = false;
1994       noLibc = (libc == null);
1995       inherit stdenv gcc binutils libc shell name cross;
1996     });
1998   # FIXME: This is a specific hack for GCC-UPC.  Eventually, we may
1999   # want to merge `gcc-upc-wrapper' and `gcc-wrapper'.
2000   wrapGCCUPC = baseGCC: import ../build-support/gcc-upc-wrapper {
2001     nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
2002     nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
2003     gcc = baseGCC;
2004     libc = glibc;
2005     inherit stdenv binutils;
2006   };
2008   # prolog
2009   yap = callPackage ../development/compilers/yap { };
2011   yasm = callPackage ../development/compilers/yasm { };
2013   ### DEVELOPMENT / INTERPRETERS
2015   acl2 = builderDefsPackage ../development/interpreters/acl2 {
2016     inherit sbcl;
2017   };
2019   clisp = callPackage ../development/interpreters/clisp { };
2021   # compatibility issues in 2.47 - at list 2.44.1 is known good
2022   # for sbcl bootstrap
2023   clisp_2_44_1 = callPackage ../development/interpreters/clisp/2.44.1.nix {
2024     libsigsegv = libsigsegv_25;  };
2026   erlang = callPackage ../development/interpreters/erlang { };
2028   erlangR13B = callPackage ../development/interpreters/erlang/R13B.nix { };
2030   groovy = callPackage ../development/interpreters/groovy { };
2032   guile = callPackage ../development/interpreters/guile { };
2034   guile_1_9 = callPackage ../development/interpreters/guile/1.9.nix { };
2036   io = builderDefsPackage (import ../development/interpreters/io) {
2037     inherit sqlite zlib gmp libffi cairo ncurses freetype mesa
2038       libpng libtiff libjpeg readline libsndfile libxml2
2039       freeglut e2fsprogs libsamplerate pcre libevent libedit;
2040   };
2042   kaffe = callPackage ../development/interpreters/kaffe { };
2044   lua4 = callPackage ../development/interpreters/lua-4 { };
2046   lua5 = callPackage ../development/interpreters/lua-5 { };
2048   maude = callPackage ../development/interpreters/maude { };
2050   octave = callPackage ../development/interpreters/octave {
2051     # Needed because later gm versions require an initialization the actual octave is not
2052     # doing.
2053     # http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2010-February/015295.html
2054     graphicsmagick = graphicsmagick137;
2055   };
2057   # mercurial (hg) bleeding edge version
2058   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
2060   perl58 = callPackage ../development/interpreters/perl-5.8 {
2061     impureLibcPath = if stdenv.isLinux then null else "/usr";
2062   };
2064   perl510 = callPackage ../development/interpreters/perl-5.10 {
2065     fetchurl = fetchurlBoot;
2066   };
2068   perl = if system != "i686-cygwin" then perl510 else sysPerl;
2070   php = makeOverridable (import ../development/interpreters/php) {
2071     inherit
2072       stdenv fetchurl lib composableDerivation autoconf automake
2073       flex bison apacheHttpd mysql libxml2
2074       zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
2075   };
2077   phpXdebug = callPackage ../development/interpreters/php-xdebug { };
2079   pltScheme = builderDefsPackage (import ../development/interpreters/plt-scheme) {
2080     inherit cairo fontconfig freetype libjpeg libpng openssl
2081       perl mesa zlib which;
2082     inherit (xorg) libX11 libXaw libXft libXrender libICE xproto
2083       renderproto pixman libSM libxcb libXext xextproto libXmu
2084       libXt;
2085   };
2087   polyml = callPackage ../development/compilers/polyml { };
2089   python = if getConfig ["python" "full"] false then pythonFull else pythonBase;
2090   python26 = if getConfig ["python" "full"] false then python26Full else python26Base;
2091   python27 = if getConfig ["python" "full"] false then python27Full else python27Base;
2092   pythonBase = python26Base;
2093   pythonFull = python26Full;
2095   pythonWrapper = callPackage ../development/interpreters/python/wrapper.nix { };
2097   python24 = lowPrio (callPackage ../development/interpreters/python/2.4 { });
2099   python26Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.6) {
2100     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2101     arch = if stdenv.isDarwin then darwinArchUtility else null;
2102     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2103   });
2105   python26Full = lowPrio (python26Base.override {
2106     # FIXME: We lack ncurses support, needed, e.g., for `gpsd'.
2107     db4 = if getConfig ["python" "db4Support"] true then db4 else null;
2108     sqlite = if getConfig ["python" "sqliteSupport"] true then sqlite else null;
2109     readline = if getConfig ["python" "readlineSupport"] true then readline else null;
2110     openssl = if getConfig ["python" "opensslSupport"] true then openssl else null;
2111     tk = if getConfig ["python" "tkSupport"] true then tk else null;
2112     tcl = if getConfig ["python" "tkSupport"] true then tcl else null;
2113     libX11 = if getConfig ["python" "tkSupport"] true then xlibs.libX11 else null;
2114     xproto = if getConfig ["python" "tkSupport"] true then xlibs.xproto else null;
2115     ncurses = if getConfig ["python" "curses"] true then ncurses else null;
2116   });
2118   python27Base = lowPrio (makeOverridable (import ../development/interpreters/python/2.7) {
2119     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2120     arch = if stdenv.isDarwin then darwinArchUtility else null;
2121     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2122   });
2124   python27Full = lowPrio (python27Base.override {
2125     inherit (pkgs) db4 sqlite readline openssl tcl tk ncurses;
2126     inherit (pkgs.xlibs) libX11 xproto;
2127   });
2129   python31Base = lowPrio (makeOverridable (import ../development/interpreters/python/3.1) {
2130     inherit (pkgs) fetchurl stdenv zlib bzip2 gdbm;
2131     arch = if stdenv.isDarwin then darwinArchUtility else null;
2132     sw_vers = if stdenv.isDarwin then darwinSwVersUtility else null;
2133   });
2135   pyrex = pyrex095;
2137   pyrex095 = callPackage ../development/interpreters/pyrex/0.9.5.nix { };
2139   pyrex096 = callPackage ../development/interpreters/pyrex/0.9.6.nix { };
2141   qi = callPackage ../development/compilers/qi { };
2143   racket = callPackage ../development/interpreters/racket { };
2145   ruby18 = callPackage ../development/interpreters/ruby { };
2146   #ruby19 = import ../development/interpreters/ruby/ruby-19.nix { inherit ruby18 fetchurl; };
2147   ruby = ruby18;
2149   rubyLibs = recurseIntoAttrs (import ../development/interpreters/ruby/libs.nix {
2150     inherit pkgs stdenv;
2151   });
2153   rake = callPackage ../development/ruby-modules/rake { };
2155   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
2157   rLang = callPackage ../development/interpreters/r-lang {
2158     withBioconductor = getConfig ["rLang" "withBioconductor"] false;
2159   };
2161   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/gems.nix) {
2162     inherit ruby makeWrapper;
2163   };
2164   rubygems = rubygemsFun ruby;
2166   rq = callPackage ../applications/networking/cluster/rq { };
2168   scsh = callPackage ../development/interpreters/scsh { };
2170   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
2171   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
2173   sysPerl = callPackage ../development/interpreters/sys-perl { };
2175   tcl = callPackage ../development/interpreters/tcl { };
2177   xulrunnerWrapper = {application, launcher}:
2178     import ../development/interpreters/xulrunner/wrapper {
2179       inherit stdenv application launcher;
2180       xulrunner = firefox36Pkgs.xulrunner;
2181     };
2184   ### DEVELOPMENT / MISC
2186   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {
2187     gcc = gcc40;
2188   };
2190   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
2192   /*
2193   toolbus = callPackage ../development/interpreters/toolbus { };
2194   */
2196   sourceFromHead = import ../build-support/source-from-head-fun.nix {
2197     inherit getConfig;
2198   };
2200   ecj = callPackage ../development/eclipse/ecj { };
2202   ecjDarwin = ecj.override { gcj = openjdkDarwin; ant = antDarwin; };
2204   jdtsdk = callPackage ../development/eclipse/jdt-sdk { };
2206   jruby116 = callPackage ../development/interpreters/jruby { };
2208   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
2210   guileGnome = callPackage ../development/guile-modules/guile-gnome {
2211     gconf = gnome.GConf;
2212     inherit (gnome) glib gnomevfs gtk libglade libgnome libgnomecanvas
2213       libgnomeui pango;
2214   };
2216   guile_lib = callPackage ../development/guile-modules/guile-lib { };
2218   windowssdk = (
2219     import ../development/misc/windows-sdk {
2220       inherit fetchurl stdenv cabextract;
2221     });
2224   ### DEVELOPMENT / TOOLS
2227   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
2229   antlr3 = callPackage ../development/tools/parsing/antlr { };
2231   antDarwin = apacheAnt.override rec { jdk = openjdkDarwin ; name = "ant-" + jdk.name ; } ;
2233   ant = apacheAnt;
2234   apacheAnt = callPackage ../development/tools/build-managers/apache-ant {
2235     name = "ant-" + jdk.name;  };
2237   apacheAnt14 = callPackage ../development/tools/build-managers/apache-ant {
2238     jdk = j2sdk14x;
2239     name = "ant-" + j2sdk14x.name;
2240   };
2242   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {  # must be either pre-built or built with GCJ *alone*
2243     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
2244   };
2246   autobuild = callPackage ../development/tools/misc/autobuild { };
2248   autoconf = callPackage ../development/tools/misc/autoconf { };
2250   autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
2252   automake = automake110x;
2254   automake17x = callPackage ../development/tools/misc/automake/automake-1.7.x.nix { };
2256   automake19x = callPackage ../development/tools/misc/automake/automake-1.9.x.nix { };
2258   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
2260   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix { };
2262   avrdude = callPackage ../development/tools/misc/avrdude { };
2264   binutils = callPackage ../development/tools/misc/binutils {
2265     inherit noSysDirs;
2266   };
2268   binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils {
2269       inherit stdenv fetchurl;
2270       noSysDirs = true;
2271       cross = assert crossSystem != null; crossSystem;
2272   });
2274   bison = bison23;
2276   bison1875 = callPackage ../development/tools/parsing/bison/bison-1.875.nix { };
2278   bison23 = callPackage ../development/tools/parsing/bison/bison-2.3.nix { };
2280   bison24 = callPackage ../development/tools/parsing/bison/bison-2.4.nix { };
2282   buildbot = callPackage ../development/tools/build-managers/buildbot {
2283     inherit (pythonPackages) twisted;
2284   };
2286   byacc = callPackage ../development/tools/parsing/byacc { };
2288   camlp5_strict = callPackage ../development/tools/ocaml/camlp5 { };
2290   camlp5_transitional = callPackage ../development/tools/ocaml/camlp5 {
2291     transitional = true;
2292   };
2294   ccache = callPackage ../development/tools/misc/ccache { };
2296   ctags = callPackage ../development/tools/misc/ctags { };
2298   ctagsWrapped = import ../development/tools/misc/ctags/wrapped.nix {
2299     inherit pkgs ctags writeScriptBin;
2300   };
2302   cmake = callPackage ../development/tools/build-managers/cmake { };
2304   cmakeCurses = cmake.override { useNcurses = true; };
2306   cmakeWithGui = cmakeCurses.override { useQt4 = true; };
2308   coccinelle = callPackage ../development/tools/misc/coccinelle { };
2310   cppi = callPackage ../development/tools/misc/cppi { };
2312   cproto = callPackage ../development/tools/misc/cproto { };
2314   cflow = callPackage ../development/tools/misc/cflow { };
2316   cscope = callPackage ../development/tools/misc/cscope { };
2318   dejagnu = callPackage ../development/tools/misc/dejagnu { };
2320   ddd = callPackage ../development/tools/misc/ddd { };
2322   distcc = callPackage ../development/tools/misc/distcc {
2323     static = false;
2324   };
2326   docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
2327     inherit python pil makeWrapper;
2328   };
2330   doxygen = callPackage ../development/tools/documentation/doxygen {
2331     qt = qt4;
2332   };
2334   eggdbus = callPackage ../development/tools/misc/eggdbus { };
2336   elfutils = callPackage ../development/tools/misc/elfutils { };
2338   epm = callPackage ../development/tools/misc/epm { };
2340   emma = callPackage ../development/tools/analysis/emma { };
2342   findbugs = callPackage ../development/tools/analysis/findbugs { };
2344   pmd = callPackage ../development/tools/analysis/pmd { };
2346   jdepend = callPackage ../development/tools/analysis/jdepend { };
2348   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
2350   flex = flex254a;
2352   flex2535 = callPackage ../development/tools/parsing/flex/flex-2.5.35.nix { };
2354   flex2534 = callPackage ../development/tools/parsing/flex/flex-2.5.34.nix { };
2356   flex2533 = callPackage ../development/tools/parsing/flex/flex-2.5.33.nix { };
2358   # Note: 2.5.4a is much older than 2.5.35 but happens first when sorting
2359   # alphabetically, hence the low priority.
2360   flex254a = lowPrio (import ../development/tools/parsing/flex/flex-2.5.4a.nix {
2361     inherit fetchurl stdenv yacc;
2362   });
2364   m4 = gnum4;
2366   global = callPackage ../development/tools/misc/global { };
2368   gnum4 = callPackage ../development/tools/misc/gnum4 { };
2370   gnumake = callPackage ../development/tools/build-managers/gnumake { };
2372   gnumake380 = callPackage ../development/tools/build-managers/gnumake-3.80 { };
2374   gradle = callPackage ../development/tools/build-managers/gradle { };
2376   gperf = callPackage ../development/tools/misc/gperf { };
2378   gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
2380   guileLint = callPackage ../development/tools/guile/guile-lint { };
2382   gwrap = callPackage ../development/tools/guile/g-wrap { };
2384   help2man = callPackage ../development/tools/misc/help2man {
2385     inherit (perlPackages) LocaleGettext;
2386   };
2388   iconnamingutils = callPackage ../development/tools/misc/icon-naming-utils {
2389     inherit (perlPackages) XMLSimple;
2390   };
2392   indent = callPackage ../development/tools/misc/indent { };
2394   inotifyTools = callPackage ../development/tools/misc/inotify-tools { };
2396   ired = callPackage ../development/tools/analysis/radare/ired.nix { };
2398   jikespg = callPackage ../development/tools/parsing/jikespg { };
2400   lcov = callPackage ../development/tools/analysis/lcov { };
2402   libtool = libtool_2;
2404   libtool_1_5 = callPackage ../development/tools/misc/libtool { };
2406   libtool_2 = callPackage ../development/tools/misc/libtool/libtool2.nix { };
2408   lsof = callPackage ../development/tools/misc/lsof { };
2410   ltrace = callPackage ../development/tools/misc/ltrace { };
2412   mig = callPackage ../os-specific/gnu/mig { };
2414   mk = callPackage ../development/tools/build-managers/mk { };
2416   noweb = callPackage ../development/tools/literate-programming/noweb { };
2418   omake = callPackage ../development/tools/ocaml/omake { };
2421   openocd = callPackage ../development/tools/misc/openocd { };
2423   oprofile = import ../development/tools/profiling/oprofile {
2424     inherit fetchurl stdenv binutils popt makeWrapper gawk which gnugrep;
2426     # Optional build inputs for the (useless) GUI.
2427     /*
2428     qt = qt3;
2429     inherit (xlibs) libX11 libXext;
2430     inherit libpng;
2431      */
2432   };
2434   patchelf = callPackage ../development/tools/misc/patchelf { };
2436   patchelf06 = callPackage ../development/tools/misc/patchelf/0.6.nix { };
2438   pmccabe = callPackage ../development/tools/misc/pmccabe { };
2440   /* Make pkgconfig always return a buildDrv, never a proper hostDrv,
2441      because most usage of pkgconfig as buildInput (inheritance of
2442      pre-cross nixpkgs) means using it using as buildNativeInput
2443      cross_renaming: we should make all programs use pkgconfig as
2444      buildNativeInput after the renaming.
2445      */
2446   pkgconfig = forceBuildDrv (callPackage ../development/tools/misc/pkgconfig { });
2448   radare = callPackage ../development/tools/analysis/radare {
2449     inherit (gnome) vte;
2450     lua = lua5;
2451     useX11 = getConfig ["radare" "useX11"] false;
2452     pythonBindings = getConfig ["radare" "pythonBindings"] false;
2453     rubyBindings = getConfig ["radare" "rubyBindings"] false;
2454     luaBindings = getConfig ["radare" "luaBindings"] false;
2455   };
2457   ragel = callPackage ../development/tools/parsing/ragel { };
2459   remake = callPackage ../development/tools/build-managers/remake { };
2461   # couldn't find the source yet
2462   seleniumRCBin = callPackage ../development/tools/selenium/remote-control {
2463     jre = jdk;  };
2465   scons = callPackage ../development/tools/build-managers/scons { };
2467   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
2469   sloccount = callPackage ../development/tools/misc/sloccount { };
2471   sparse = callPackage ../development/tools/analysis/sparse { };
2473   spin = callPackage ../development/tools/analysis/spin { };
2475   splint = callPackage ../development/tools/analysis/splint { };
2477   strace = callPackage ../development/tools/misc/strace { };
2479   swig = callPackage ../development/tools/misc/swig { };
2481   swigWithJava = swig;
2483   swftools = callPackage ../tools/video/swftools { };
2485   texinfo49 = callPackage ../development/tools/misc/texinfo/4.9.nix { };
2487   texinfo = callPackage ../development/tools/misc/texinfo { };
2489   texi2html = callPackage ../development/tools/misc/texi2html { };
2491   uisp = callPackage ../development/tools/misc/uisp { };
2493   gdb = callPackage ../development/tools/misc/gdb {
2494     readline = readline5;
2495   };
2497   gdbCross = callPackage ../development/tools/misc/gdb {
2498     readline = readline5;
2499     target = crossSystem;
2500   };
2502   valgrind = callPackage ../development/tools/analysis/valgrind { };
2504   xxdiff = builderDefsPackage (import ../development/tools/misc/xxdiff/3.2.nix) {
2505     flex = flex2535;
2506     qt = qt3;
2507     inherit pkgconfig makeWrapper bison python;
2508     inherit (xlibs) libXext libX11;
2509   };
2511   yacc = bison;
2513   yodl = callPackage ../development/tools/misc/yodl { };
2516   ### DEVELOPMENT / LIBRARIES
2519   a52dec = callPackage ../development/libraries/a52dec { };
2521   aalib = callPackage ../development/libraries/aalib { };
2523   acl = callPackage ../development/libraries/acl { };
2525   adns = import ../development/libraries/adns/1.4.nix {
2526     inherit stdenv fetchurl;
2527     static = getPkgConfig "adns" "static" (stdenv ? isStatic || stdenv ? isDietLibC);
2528   };
2530   agg = callPackage ../development/libraries/agg { };
2532   amrnb = callPackage ../development/libraries/amrnb { };
2534   amrwb = callPackage ../development/libraries/amrwb { };
2536   apr = callPackage ../development/libraries/apr { };
2538   aprutil = callPackage ../development/libraries/apr-util {
2539     bdbSupport = true;
2540   };
2542   aspell = callPackage ../development/libraries/aspell { };
2544   aspellDicts = recurseIntoAttrs (import ../development/libraries/aspell/dictionaries.nix {
2545     inherit fetchurl stdenv aspell which;
2546   });
2548   aterm = aterm25;
2550   aterm242fixes = lowPrio (import ../development/libraries/aterm/2.4.2-fixes.nix {
2551     inherit fetchurl stdenv;
2552   });
2554   aterm25 = callPackage ../development/libraries/aterm/2.5.nix { };
2556   aterm28 = lowPrio (callPackage ../development/libraries/aterm/2.8.nix { });
2558   attr = callPackage ../development/libraries/attr { };
2560   aubio = callPackage ../development/libraries/aubio { };
2562   axis = callPackage ../development/libraries/axis { };
2564   babl = callPackage ../development/libraries/babl { };
2566   beecrypt = callPackage ../development/libraries/beecrypt { };
2568   boehmgc = callPackage ../development/libraries/boehm-gc { };
2570   boolstuff = callPackage ../development/libraries/boolstuff { };
2572   boost = callPackage ../development/libraries/boost { };
2574   # A Boost build with all library variants enabled.  Very large (about 250 MB).
2575   boostFull = appendToName "full" (boost.override {
2576     enableDebug = true;
2577     enableSingleThreaded = true;
2578     enableStatic = true;
2579   });
2581   botan = builderDefsPackage (import ../development/libraries/botan) {
2582     inherit perl;
2583   };
2585   buddy = callPackage ../development/libraries/buddy { };
2587   cairo = callPackage ../development/libraries/cairo { };
2589   cairomm = callPackage ../development/libraries/cairomm { };
2591   scmccid = callPackage ../development/libraries/scmccid { };
2593   ccrtp = callPackage ../development/libraries/ccrtp { };
2595   chipmunk = builderDefsPackage (import ../development/libraries/chipmunk) {
2596     inherit cmake freeglut mesa;
2597     inherit (xlibs) libX11 xproto inputproto libXi libXmu;
2598   };
2600   chmlib = callPackage ../development/libraries/chmlib { };
2602   cil = callPackage ../development/libraries/cil { };
2604   cilaterm = callPackage ../development/libraries/cil-aterm {
2605     stdenv = overrideInStdenv stdenv [gnumake380];
2606   };
2608   clanlib = callPackage ../development/libraries/clanlib { };
2610   clapack = callPackage ../development/libraries/clapack {
2611     stdenv = stdenv2;
2612   };
2614   classads = callPackage ../development/libraries/classads { };
2616   classpath = callPackage ../development/libraries/java/classpath {
2617     javac = gcj;
2618     jvm = gcj;
2619     gconf = gnome.GConf;
2620   };
2622   clearsilver = callPackage ../development/libraries/clearsilver { };
2624   cln = callPackage ../development/libraries/cln { };
2626   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) {
2627   };
2629   cluceneCore = callPackage ../development/libraries/clucene-core { };
2631   clutter = callPackage ../development/libraries/clutter {
2632     inherit (gnome) glib pango gtk;
2633   };
2635   clutter_gtk = callPackage ../development/libraries/clutter-gtk {
2636     inherit (gnome) gtk;
2637   };
2639   commoncpp2 = callPackage ../development/libraries/commoncpp2 { };
2641   confuse = callPackage ../development/libraries/confuse { };
2643   consolekit = callPackage ../development/libraries/consolekit { };
2645   coredumper = callPackage ../development/libraries/coredumper { };
2647   ctl = callPackage ../development/libraries/ctl { };
2649   cppunit = callPackage ../development/libraries/cppunit { };
2651   cracklib = callPackage ../development/libraries/cracklib { };
2653   cryptopp = callPackage ../development/libraries/crypto++ { };
2655   cyrus_sasl = callPackage ../development/libraries/cyrus-sasl { };
2657   db4 = db45;
2659   db44 = callPackage ../development/libraries/db4/db4-4.4.nix { };
2661   db45 = callPackage ../development/libraries/db4/db4-4.5.nix { };
2663   dbus = callPackage ../development/libraries/dbus {
2664     useX11 = true; # !!! `false' doesn't build
2665   };
2667   dbus_glib = makeOverridable (import ../development/libraries/dbus-glib) {
2668     inherit fetchurl stdenv pkgconfig gettext dbus expat glib;
2669     libiconv = if (stdenv.system == "i686-freebsd") then libiconv else null;
2670   };
2672   dbus_java = callPackage ../development/libraries/java/dbus-java { };
2674   dclib = callPackage ../development/libraries/dclib { };
2676   directfb = callPackage ../development/libraries/directfb { };
2678   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix {
2679     stdenv = overrideGCC stdenv gcc45;
2680   };
2682   enchant = callPackage ../development/libraries/enchant {
2683     inherit (gnome) glib;
2684   };
2686   enet = callPackage ../development/libraries/enet { };
2688   enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { };
2690   esdl = callPackage ../development/libraries/esdl { };
2692   exiv2 = callPackage ../development/libraries/exiv2 { };
2694   expat = callPackage ../development/libraries/expat { };
2696   extremetuxracer = builderDefsPackage (import ../games/extremetuxracer) {
2697     inherit mesa tcl freeglut SDL SDL_mixer pkgconfig
2698       libpng gettext intltool;
2699     inherit (xlibs) libX11 xproto libXi inputproto
2700       libXmu libXext xextproto libXt libSM libICE;
2701   };
2703   eventlog = callPackage ../development/libraries/eventlog { };
2705   facile = callPackage ../development/libraries/facile {
2706     # Actually, we don't need this version but we need native-code compilation
2707     ocaml = ocaml_3_10_0;
2708   };
2710   faac = callPackage ../development/libraries/faac { };
2712   faad2 = callPackage ../development/libraries/faad2 { };
2714   farsight2 = callPackage ../development/libraries/farsight2 {
2715     inherit (gnome) glib;
2716     inherit (gst_all) gstreamer gstPluginsBase;
2717   };
2719   fcgi = callPackage ../development/libraries/fcgi { };
2721   ffmpeg = callPackage ../development/libraries/ffmpeg { };
2723   fftw = callPackage ../development/libraries/fftw {
2724     singlePrecision = false;
2725   };
2727   fftwSinglePrec = callPackage ../development/libraries/fftw {
2728     singlePrecision = true;
2729   };
2731   fltk11 = callPackage ../development/libraries/fltk/fltk11.nix { };
2733   fltk20 = callPackage ../development/libraries/fltk { };
2735   fmod = callPackage ../development/libraries/fmod { };
2737   freeimage = callPackage ../development/libraries/freeimage { };
2739   freetts = callPackage ../development/libraries/freetts { };
2741   cfitsio = callPackage ../development/libraries/cfitsio { };
2743   fontconfig = callPackage ../development/libraries/fontconfig { };
2745   makeFontsConf = let fontconfig_ = fontconfig; in {fontconfig ? fontconfig_, fontDirectories}:
2746     import ../development/libraries/fontconfig/make-fonts-conf.nix {
2747       inherit runCommand libxslt fontconfig fontDirectories;
2748     };
2750   freealut = callPackage ../development/libraries/freealut { };
2752   freeglut = callPackage ../development/libraries/freeglut { };
2754   freetype = callPackage ../development/libraries/freetype { };
2756   fribidi = callPackage ../development/libraries/fribidi { };
2758   fam = gamin;
2760   gamin = callPackage ../development/libraries/gamin { };
2762   gav = callPackage ../games/gav {
2763     stdenv = overrideGCC stdenv gcc41;
2764   };
2766   gdbm = callPackage ../development/libraries/gdbm { };
2768   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
2769     inherit (gtkLibs1x) gtk;
2770   };
2772   gegl = callPackage ../development/libraries/gegl {
2773     #  avocodec avformat librsvg
2774     inherit (gtkLibs) pango glib gtk;
2775   };
2777   geoip = builderDefsPackage ../development/libraries/geoip {
2778     inherit zlib;
2779   };
2781   geoipjava = callPackage ../development/libraries/java/geoipjava { };
2783   geos = callPackage ../development/libraries/geos { };
2785   gettext = callPackage ../development/libraries/gettext { };
2787   # XXX: Remove me when `stdenv-updates' is merged.
2788   gettext_0_18 = callPackage ../development/libraries/gettext/0.18.nix { };
2790   gd = callPackage ../development/libraries/gd { };
2792   gdal = callPackage ../development/libraries/gdal { };
2794   giblib = callPackage ../development/libraries/giblib { };
2796   glew = callPackage ../development/libraries/glew { };
2798   glfw = callPackage ../development/libraries/glfw { };
2800   glibc = glibc211;
2802   glibc25 = callPackage ../development/libraries/glibc-2.5 {
2803     kernelHeaders = linuxHeaders;
2804     installLocales = false;
2805   };
2807   glibc27 = callPackage ../development/libraries/glibc-2.7 {
2808     kernelHeaders = linuxHeaders;
2809     #installLocales = false;
2810   };
2812   glibc29 = callPackage ../development/libraries/glibc-2.9 {
2813     kernelHeaders = linuxHeaders;
2814     installLocales = getPkgConfig "glibc" "locales" false;
2815   };
2817   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) {
2818     inherit stdenv fetchurl;
2819     gccCross = gccCrossStageStatic;
2820     kernelHeaders = linuxHeadersCross;
2821     installLocales = getPkgConfig "glibc" "locales" false;
2822   });
2824   glibc211 = callPackage ../development/libraries/glibc-2.11 {
2825     kernelHeaders = linuxHeaders;
2826     installLocales = getPkgConfig "glibc" "locales" false;
2827     machHeaders = null;
2828     hurdHeaders = null;
2829     gccCross = null;
2830   };
2832   glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11)
2833     (let crossGNU = (crossSystem != null && crossSystem.config == "i586-pc-gnu");
2834      in ({
2835        inherit stdenv fetchurl;
2836        gccCross = gccCrossStageStatic;
2837        kernelHeaders = if crossGNU then hurdHeaders else linuxHeadersCross;
2838        installLocales = getPkgConfig "glibc" "locales" false;
2839      }
2841      //
2843      (if crossGNU
2844       then { inherit machHeaders hurdHeaders mig fetchgit; }
2845       else { }))));
2847   glibcCross = glibc211Cross;
2849   # We can choose:
2850   libcCrossChooser = name : if (name == "glibc") then glibcCross
2851     else if (name == "uclibc") then uclibcCross
2852     else if (name == "msvcrt") then windows.mingw_headers3
2853     else throw "Unknown libc";
2855   libcCross = assert crossSystem != null; libcCrossChooser crossSystem.libc;
2857   libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
2859   libdwg = callPackage ../development/libraries/libdwg { };
2861   eglibc = callPackage ../development/libraries/eglibc {
2862     kernelHeaders = linuxHeaders;
2863     installLocales = getPkgConfig "glibc" "locales" false;
2864   };
2866   glibcLocales = callPackage ../development/libraries/glibc-2.11/locales.nix { };
2868   glibcInfo = callPackage ../development/libraries/glibc-2.11/info.nix { };
2870   glibc_multi =
2871       runCommand "${glibc.name}-multi"
2872         { glibc64 = glibc;
2873           glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
2874         }
2875         ''
2876           ensureDir $out
2877           ln -s $glibc64/* $out/
2879           rm $out/lib $out/lib64
2880           ensureDir $out/lib
2881           ln -s $glibc64/lib/* $out/lib
2882           ln -s $glibc32/lib $out/lib/32
2883           ln -s lib $out/lib64
2885           rm $out/include
2886           cp -rs $glibc32/include $out
2887           chmod -R u+w $out/include
2888           cp -rsf $glibc64/include $out
2889         '' # */
2890         ;
2892   glpk = callPackage ../development/libraries/glpk { };
2894   gmime = callPackage ../development/libraries/gmime { };
2896   gmime_2_2 = callPackage ../development/libraries/gmime/2.2.x.nix { };
2898   gmm = callPackage ../development/libraries/gmm { };
2900   gmp =
2901     if stdenv.system == "i686-darwin" then
2902       # GMP 4.3.2 is broken on Darwin, so use 4.3.1.
2903       makeOverridable (import ../development/libraries/gmp/4.3.1.nix) {
2904         inherit stdenv fetchurl m4;
2905         cxx = false;
2906       }
2907     else
2908       makeOverridable (import ../development/libraries/gmp) {
2909         inherit stdenv fetchurl m4;
2910         cxx = false;
2911       };
2913   gmpxx = gmp.override { cxx = true; };
2915   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection { };
2917   goffice = callPackage ../development/libraries/goffice {
2918     inherit (gnome) glib gtk libglade libgnomeui pango;
2919     gconf = gnome.GConf;
2920     libart = gnome.libart_lgpl;
2921   };
2923   goocanvas = callPackage ../development/libraries/goocanvas {
2924     inherit (gnome) gtk glib;
2925   };
2927   #GMP ex-satellite, so better keep it near gmp
2928   mpfr = callPackage ../development/libraries/mpfr { };
2930   gst_all = recurseIntoAttrs (import ../development/libraries/gstreamer {
2931     inherit lib stdenv fetchurl perl bison pkgconfig libxml2
2932       python alsaLib cdparanoia libogg libvorbis libtheora freetype liboil
2933       libjpeg zlib speex libpng libdv aalib cairo libcaca flac hal libiec61883
2934       dbus libavc1394 ladspaH taglib pulseaudio gdbm bzip2 which makeOverridable
2935       libcap libtasn1;
2936     flex = flex2535;
2937     inherit (xorg) libX11 libXv libXext;
2938     inherit (gtkLibs) glib pango gtk;
2939     inherit (gnome) gnomevfs /* <- only passed for the no longer used older versions
2940              it is deprecated and didn't build on amd64 due to samba dependency */ gtkdoc
2941       libsoup;
2942   });
2944   gnet = callPackage ../development/libraries/gnet { };
2946   gnutls = callPackage ../development/libraries/gnutls {
2947     guileBindings = getConfig ["gnutls" "guile"] true;
2948   };
2950   gpgme = callPackage ../development/libraries/gpgme { };
2952   grantlee = callPackage ../development/libraries/grantlee { };
2954   gsasl = callPackage ../development/libraries/gsasl { };
2956   gsl = callPackage ../development/libraries/gsl { };
2958   gsoap = callPackage ../development/libraries/gsoap { };
2960   gss = callPackage ../development/libraries/gss { };
2962   gtkimageview = callPackage ../development/libraries/gtkimageview {
2963     inherit (gnome) gtk;
2964   };
2966   gtkLibs = gtkLibs220;
2968   glib = gtkLibs.glib;
2969   gtk = gtkLibs.gtk;
2971   gtkLibs1x = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs1x; in rec {
2973     glib = callPackage ../development/libraries/glib/1.2.x.nix { };
2975     gtk = callPackage ../development/libraries/gtk+/1.2.x.nix { };
2977   });
2979   gtkLibs216 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs216; in rec {
2981     glib = callPackage ../development/libraries/glib/2.20.x.nix { };
2983     glibmm = callPackage ../development/libraries/glibmm/2.18.x.nix { };
2985     atk = callPackage ../development/libraries/atk/1.24.x.nix { };
2987     pango = callPackage ../development/libraries/pango/1.24.x.nix { };
2989     pangomm = callPackage ../development/libraries/pangomm/2.14.x.nix { };
2991     gtk = callPackage ../development/libraries/gtk+/2.16.x.nix { };
2993     gtkmm = callPackage ../development/libraries/gtkmm/2.14.x.nix { };
2995   });
2997   gtkLibs218 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs218; in rec {
2999     glib = callPackage ../development/libraries/glib/2.22.x.nix {
3000       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
3001     };
3003     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3005     atk = callPackage ../development/libraries/atk/1.28.x.nix { };
3007     pango = callPackage ../development/libraries/pango/1.26.x.nix { };
3009     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3011     gtk = callPackage ../development/libraries/gtk+/2.18.x.nix { };
3013     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3015   });
3017   gtkLibs220 = recurseIntoAttrs (let callPackage = newScope pkgs.gtkLibs220; in rec {
3019     glib = callPackage ../development/libraries/glib/2.24.x.nix {
3020       libiconv = if stdenv.system == "i686-freebsd" then libiconv else null;
3021     };
3023     glibmm = callPackage ../development/libraries/glibmm/2.22.x.nix { };
3025     atk = callPackage ../development/libraries/atk/1.30.x.nix { };
3027     pango = callPackage ../development/libraries/pango/1.28.x.nix { };
3029     pangomm = callPackage ../development/libraries/pangomm/2.26.x.nix { };
3031     gtk = callPackage ../development/libraries/gtk+/2.20.x.nix { };
3033     gtkmm = callPackage ../development/libraries/gtkmm/2.18.x.nix { };
3035   });
3037   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
3038     inherit (gnome) gtk;
3039     gtksharp = gtksharp2;
3040   };
3042   gtksharp1 = callPackage ../development/libraries/gtk-sharp-1 {
3043     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3044               libgnomecanvas libgnomeui libgnomeprint
3045               libgnomeprintui GConf;
3046   };
3048   gtksharp2 = callPackage ../development/libraries/gtk-sharp-2 {
3049     inherit (gnome) gtk glib pango libglade libgtkhtml gtkhtml
3050               libgnomecanvas libgnomeui libgnomeprint
3051               libgnomeprintui GConf gnomepanel;
3052   };
3054   gtksourceviewsharp = callPackage ../development/libraries/gtksourceview-sharp {
3055     inherit (gnome) gtksourceview;
3056     gtksharp = gtksharp2;
3057   };
3059   gtkspell = callPackage ../development/libraries/gtkspell { };
3061   # TODO : Add MIT Kerberos and let admin choose.
3062   kerberos = heimdal;
3064   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
3066   hsqldb = callPackage ../development/libraries/java/hsqldb { };
3068   hunspell = callPackage ../development/libraries/hunspell { };
3070   hwloc = callPackage ../development/libraries/hwloc { };
3072   hydraAntLogger = callPackage ../development/libraries/java/hydra-ant-logger { };
3074   icu = callPackage ../development/libraries/icu { };
3076   id3lib = callPackage ../development/libraries/id3lib { };
3078   ilbc = callPackage ../development/libraries/ilbc { };
3080   ilmbase = callPackage ../development/libraries/ilmbase { };
3082   imlib = callPackage ../development/libraries/imlib { };
3084   imlib2 = callPackage ../development/libraries/imlib2 { };
3086   indilib = callPackage ../development/libraries/indilib { };
3088   iniparser = callPackage ../development/libraries/iniparser { };
3090   intltool = gnome.intltool;
3092   isocodes = callPackage ../development/libraries/iso-codes { };
3094   itk = callPackage ../development/libraries/itk { };
3096   jamp = builderDefsPackage ../games/jamp {
3097     inherit mesa SDL SDL_image SDL_mixer;
3098   };
3100   jasper = callPackage ../development/libraries/jasper { };
3102   jbig2dec = callPackage ../development/libraries/jbig2dec { };
3104   jetty_gwt = callPackage ../development/libraries/java/jetty-gwt { };
3106   jetty_util = callPackage ../development/libraries/java/jetty-util { };
3108   judy = callPackage ../development/libraries/judy { };
3110   krb5 = callPackage ../development/libraries/kerberos/krb5.nix { };
3112   lablgtk = callPackage ../development/libraries/lablgtk {
3113     inherit (gnome) libgnomecanvas;
3114   };
3116   lcms = lcms1;
3118   lcms1 = callPackage ../development/libraries/lcms { };
3120   lcms2 = callPackage ../development/libraries/lcms2 { };
3122   lensfun = callPackage ../development/libraries/lensfun {
3123     inherit (gnome) glib;
3124   };
3126   lesstif = callPackage ../development/libraries/lesstif { };
3128   lesstif93 = callPackage ../development/libraries/lesstif-0.93 { };
3130   levmar = callPackage ../development/libraries/levmar { };
3132   lib3ds = callPackage ../development/libraries/lib3ds { };
3134   libaal = callPackage ../development/libraries/libaal { };
3136   libao = callPackage ../development/libraries/libao {
3137     usePulseAudio = getConfig [ "pulseaudio" ] true;
3138   };
3140   libarchive = callPackage ../development/libraries/libarchive { };
3142   libassuan1 = callPackage ../development/libraries/libassuan1 { };
3144   libassuan = callPackage ../development/libraries/libassuan { };
3146   libavc1394 = callPackage ../development/libraries/libavc1394 { };
3148   libcaca = callPackage ../development/libraries/libcaca { };
3150   libcanberra = callPackage ../development/libraries/libcanberra {
3151     gstreamer = gst_all.gstreamer;
3152   };
3154   libcdaudio = callPackage ../development/libraries/libcdaudio { };
3156   libcddb = callPackage ../development/libraries/libcddb { };
3158   libcdio = callPackage ../development/libraries/libcdio { };
3160   libchamplain = callPackage ../development/libraries/libchamplain {
3161     inherit (gnome) gtk glib libsoup;
3162   };
3164   libcm = callPackage ../development/libraries/libcm { };
3166   libcue = callPackage ../development/libraries/libcue { };
3168   libcv = builderDefsPackage (import ../development/libraries/libcv) {
3169     inherit libtiff libjpeg libpng pkgconfig;
3170     inherit (gtkLibs) gtk glib;
3171   };
3173   libdaemon = callPackage ../development/libraries/libdaemon { };
3175   libdbi = callPackage ../development/libraries/libdbi { };
3177   libdbiDriversBase = callPackage ../development/libraries/libdbi-drivers {
3178     mysql = null;
3179     sqlite = null;
3180   };
3182   libdbiDrivers = libdbiDriversBase.override {
3183     inherit sqlite mysql;
3184   };
3186   libdiscid = callPackage ../development/libraries/libdiscid { };
3188   libdv = callPackage ../development/libraries/libdv { };
3190   libdrm = if stdenv.isDarwin then null else (import ../development/libraries/libdrm {
3191     inherit fetchurl stdenv pkgconfig;
3192     inherit (xorg) libpthreadstubs;
3193   });
3195   libdvdcss = callPackage ../development/libraries/libdvdcss { };
3197   libdvdnav = callPackage ../development/libraries/libdvdnav { };
3199   libdvdread = callPackage ../development/libraries/libdvdread { };
3201   libedit = callPackage ../development/libraries/libedit { };
3203   libelf = callPackage ../development/libraries/libelf { };
3205   liblo = callPackage ../development/libraries/liblo { };
3207   libev = builderDefsPackage ../development/libraries/libev {
3208   };
3210   libevent = callPackage ../development/libraries/libevent { };
3212   libewf = callPackage ../development/libraries/libewf { };
3214   libexif = callPackage ../development/libraries/libexif { };
3216   libextractor = callPackage ../development/libraries/libextractor {
3217     inherit (gnome) gtk;
3218     libmpeg2 = mpeg2dec;
3219   };
3221   libffcall = builderDefsPackage (import ../development/libraries/libffcall) {
3222     inherit fetchcvs;
3223   };
3225   libffi = callPackage ../development/libraries/libffi { };
3227   libftdi = callPackage ../development/libraries/libftdi { };
3229   libgcrypt = callPackage ../development/libraries/libgcrypt { };
3231   libgpgerror = callPackage ../development/libraries/libgpg-error { };
3233   libgphoto2 = callPackage ../development/libraries/libgphoto2 { };
3235   libgpod = callPackage ../development/libraries/libgpod { };
3237   libharu = callPackage ../development/libraries/libharu { };
3239   libical = callPackage ../development/libraries/libical { };
3241   libiodbc = callPackage ../development/libraries/libiodbc {
3242     useGTK = getPkgConfig "libiodbc" "gtk" false;
3243   };
3245   libktorrent = newScope pkgs.kde4 ../development/libraries/libktorrent { };
3247   liblqr1 = callPackage ../development/libraries/liblqr-1 {
3248     inherit (gnome) glib;
3249   };
3251   libmhash = callPackage ../development/libraries/libmhash {};
3253   libmtp = callPackage ../development/libraries/libmtp { };
3255   libnice = callPackage ../development/libraries/libnice {
3256     inherit (gnome) glib;
3257   };
3259   libplist = callPackage ../development/libraries/libplist { stdenv = stdenv2; };
3261   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
3263   libsamplerate = callPackage ../development/libraries/libsamplerate { };
3265   libspectre = callPackage ../development/libraries/libspectre {
3266     ghostscript = ghostscriptX;
3267   };
3269   libgsf = callPackage ../development/libraries/libgsf {
3270     inherit (gnome) glib gnomevfs libbonobo;
3271   };
3273   libiconv = callPackage ../development/libraries/libiconv { };
3275   libid3tag = callPackage ../development/libraries/libid3tag { };
3277   libidn = callPackage ../development/libraries/libidn { };
3279   libiec61883 = callPackage ../development/libraries/libiec61883 { };
3281   libinfinity = callPackage ../development/libraries/libinfinity {
3282     inherit (gnome) gtkdoc;
3283   };
3285   libiptcdata = callPackage ../development/libraries/libiptcdata { };
3287   libjingle = callPackage ../development/libraries/libjingle/0.3.11.nix { };
3289   libjpeg = callPackage ../development/libraries/libjpeg { };
3291   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
3293   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
3294     libtool = libtool_1_5;
3295   };
3297   libksba = callPackage ../development/libraries/libksba { };
3299   libmad = callPackage ../development/libraries/libmad { };
3301   libmatchbox = callPackage ../development/libraries/libmatchbox {
3302     inherit (gtkLibs) pango;
3303   };
3305   libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
3307   libmcs = callPackage ../development/libraries/libmcs { };
3309   libmicrohttpd = callPackage ../development/libraries/libmicrohttpd { };
3311   libmikmod = callPackage ../development/libraries/libmikmod { };
3313   libmilter = callPackage ../development/libraries/libmilter { };
3315   libmowgli = callPackage ../development/libraries/libmowgli { };
3317   libmng = callPackage ../development/libraries/libmng { };
3319   libmpcdec = callPackage ../development/libraries/libmpcdec { };
3321   libmsn = callPackage ../development/libraries/libmsn { };
3323   libmspack = callPackage ../development/libraries/libmspack { };
3325   libmusclecard = callPackage ../development/libraries/libmusclecard { };
3327   libmusicbrainz2 = callPackage ../development/libraries/libmusicbrainz/2.x.nix { };
3329   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
3331   libmusicbrainz = libmusicbrainz3;
3333   libnih = callPackage ../development/libraries/libnih { };
3335   libnova = callPackage ../development/libraries/libnova { };
3337   libofa = callPackage ../development/libraries/libofa { };
3339   libofx = callPackage ../development/libraries/libofx { };
3341   libogg = callPackage ../development/libraries/libogg { };
3343   liboil = callPackage ../development/libraries/liboil { };
3345   liboop = callPackage ../development/libraries/liboop { };
3347   libosip = callPackage ../development/libraries/osip {};
3349   libotr = callPackage ../development/libraries/libotr { };
3351   libp11 = callPackage ../development/libraries/libp11 { };
3353   libpcap = callPackage ../development/libraries/libpcap { };
3355   libpng = callPackage ../development/libraries/libpng { };
3357   libproxy = callPackage ../development/libraries/libproxy { };
3359   libpseudo = callPackage ../development/libraries/libpseudo { };
3361   libqalculate = callPackage ../development/libraries/libqalculate { };
3363   librsync = callPackage ../development/libraries/librsync { };
3365   libsigcxx = callPackage ../development/libraries/libsigcxx { };
3367   libsigcxx12 = callPackage ../development/libraries/libsigcxx/1.2.nix { };
3369   libsigsegv = callPackage ../development/libraries/libsigsegv { };
3371   # To bootstrap SBCL, I need CLisp 2.44.1; it needs libsigsegv 2.5
3372   libsigsegv_25 = callPackage ../development/libraries/libsigsegv/2.5.nix { };
3374   libsndfile = callPackage ../development/libraries/libsndfile { };
3376   libssh = callPackage ../development/libraries/libssh { };
3378   libssh2 = callPackage ../development/libraries/libssh2 { };
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   libtunepimp = callPackage ../development/libraries/libtunepimp { };
3392   libgeotiff = callPackage ../development/libraries/libgeotiff { };
3394   libunistring = callPackage ../development/libraries/libunistring { };
3396   libupnp = callPackage ../development/libraries/pupnp { };
3398   giflib = callPackage ../development/libraries/giflib { };
3400   libungif = callPackage ../development/libraries/giflib/libungif.nix { };
3402   libusb = callPackage ../development/libraries/libusb { };
3404   libusb1 = callPackage ../development/libraries/libusb1 { };
3406   libunwind = callPackage ../development/libraries/libunwind { };
3408   libv4l = callPackage ../development/libraries/libv4l { };
3410   libvirt = callPackage ../development/libraries/libvirt { };
3412   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
3413     inherit libtool libjpeg openssl zlib;
3414     inherit (xlibs) xproto libX11 damageproto libXdamage
3415       libXext xextproto fixesproto libXfixes xineramaproto
3416       libXinerama libXrandr randrproto libXtst;
3417   };
3419   libviper = callPackage ../development/libraries/libviper { };
3421   libvpx = callPackage ../development/libraries/libvpx { };
3423   libvterm = callPackage ../development/libraries/libvterm { };
3425   libvorbis = callPackage ../development/libraries/libvorbis { };
3427   libwmf = callPackage ../development/libraries/libwmf { };
3429   libwpd = callPackage ../development/libraries/libwpd {
3430     inherit (gnome) glib;
3431   };
3433   libwpg = callPackage ../development/libraries/libwpg { };
3435   libx86 = builderDefsPackage ../development/libraries/libx86 {};
3437   libxcrypt = callPackage ../development/libraries/libxcrypt { };
3439   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
3441   libxklavier = callPackage ../development/libraries/libxklavier { };
3443   libxmi = callPackage ../development/libraries/libxmi { };
3445   libxml2 = callPackage ../development/libraries/libxml2 {
3446     pythonSupport = false;
3447   };
3449   libxml2Python = libxml2.override {
3450     pythonSupport = true;
3451   };
3453   libxmlxx = callPackage ../development/libraries/libxmlxx {
3454     inherit (gtkLibs) glibmm;
3455   };
3457   libxslt = callPackage ../development/libraries/libxslt { };
3459   libixp_for_wmii = lowPrio (import ../development/libraries/libixp_for_wmii {
3460     inherit fetchurl stdenv;
3461   });
3463   libyaml = callPackage ../development/libraries/libyaml { };
3465   libzip = callPackage ../development/libraries/libzip { };
3467   libzrtpcpp = callPackage ../development/libraries/libzrtpcpp { };
3469   lightning = callPackage ../development/libraries/lightning { };
3471   liquidwar = builderDefsPackage ../games/liquidwar {
3472     inherit (xlibs) xproto libX11 libXrender;
3473     inherit gmp guile mesa libjpeg libpng
3474       expat gettext perl
3475       SDL SDL_image SDL_mixer SDL_ttf
3476       curl sqlite
3477       libogg libvorbis
3478       ;
3479   };
3481   log4cxx = callPackage ../development/libraries/log4cxx { };
3483   loudmouth = callPackage ../development/libraries/loudmouth { };
3485   lzo = callPackage ../development/libraries/lzo { };
3487   # failed to build
3488   mediastreamer = callPackage ../development/libraries/mediastreamer { };
3490   mesaSupported =
3491     system == "i686-linux" ||
3492     system == "x86_64-linux" ||
3493     system == "x86_64-darwin" ||
3494     system == "i686-darwin";
3496   mesa = callPackage ../development/libraries/mesa {
3497     lipo = if stdenv.isDarwin then darwinLipoUtility else null;
3498   };
3500   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
3501     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
3502     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
3503     cLibrary      = callPackage ../development/libraries/c-library { aterm = aterm28; };
3504     errorSupport  = callPackage ../development/libraries/error-support { aterm = aterm28; };
3505     ptSupport     = callPackage ../development/libraries/pt-support { aterm = aterm28; };
3506     ptableSupport = callPackage ../development/libraries/ptable-support { aterm = aterm28; };
3507     configSupport = callPackage ../development/libraries/config-support { aterm = aterm28; };
3508     asfSupport    = callPackage ../development/libraries/asf-support { aterm = aterm28; };
3509     tideSupport   = callPackage ../development/libraries/tide-support { aterm = aterm28; };
3510     rstoreSupport = callPackage ../development/libraries/rstore-support { aterm = aterm28; };
3511     sdfSupport    = callPackage ../development/libraries/sdf-support { aterm = aterm28; };
3512     sglr          = callPackage ../development/libraries/sglr { aterm = aterm28; };
3513     ascSupport    = callPackage ../development/libraries/asc-support { aterm = aterm28; };
3514     pgen          = callPackage ../development/libraries/pgen { aterm = aterm28; };
3515   });
3517   ming = callPackage ../development/libraries/ming { };
3519   mlt = callPackage ../development/libraries/mlt {
3520     qt = qt4;
3521   };
3523   mpeg2dec = callPackage ../development/libraries/mpeg2dec { };
3525   msilbc = callPackage ../development/libraries/msilbc { };
3527   mp4v2 = callPackage ../development/libraries/mp4v2 { };
3529   mpc = callPackage ../development/libraries/mpc { };
3531   mpich2 = callPackage ../development/libraries/mpich2 { };
3533   muparser = callPackage ../development/libraries/muparser { };
3535   ncurses = makeOverridable (import ../development/libraries/ncurses) {
3536     inherit fetchurl stdenv;
3537     # The "! (stdenv ? cross)" is for the cross-built arm ncurses, which
3538     # don't build for me in unicode.
3539     unicode = (system != "i686-cygwin" && crossSystem == null);
3540   };
3542   neon = neon029;
3544   neon026 = callPackage ../development/libraries/neon/0.26.nix {
3545     compressionSupport = true;
3546     sslSupport = true;
3547   };
3549   neon028 = callPackage ../development/libraries/neon/0.28.nix {
3550     compressionSupport = true;
3551     sslSupport = true;
3552   };
3554   neon029 = callPackage ../development/libraries/neon/0.29.nix {
3555     compressionSupport = true;
3556     sslSupport = true;
3557   };
3559   nethack = builderDefsPackage (import ../games/nethack) {
3560     inherit ncurses flex bison;
3561   };
3563   nettle = callPackage ../development/libraries/nettle { };
3565   nspr = callPackage ../development/libraries/nspr { };
3567   nss = callPackage ../development/libraries/nss { };
3569   nssTools = callPackage ../development/libraries/nss {
3570     includeTools = true;
3571   };
3573   ode = builderDefsPackage (import ../development/libraries/ode) {
3574   };
3576   openal = callPackage ../development/libraries/openal { };
3578   # added because I hope that it has been easier to compile on x86 (for blender)
3579   openalSoft = callPackage ../development/libraries/openal-soft { };
3581   openbabel = callPackage ../development/libraries/openbabel { };
3583   opencascade = callPackage ../development/libraries/opencascade { };
3585   openct = callPackage ../development/libraries/openct { };
3587   opencv = callPackage ../development/libraries/opencv {
3588     inherit (gst_all) gstreamer;
3589     stdenv = stdenv2;
3590   };
3592   # this ctl version is needed by openexr_viewers
3593   openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
3595   openexr = callPackage ../development/libraries/openexr { };
3597   openldap = callPackage ../development/libraries/openldap { };
3599   openlierox = builderDefsPackage ../games/openlierox {
3600     inherit (xlibs) libX11 xproto;
3601     inherit gd SDL SDL_image SDL_mixer zlib libxml2
3602       pkgconfig;
3603   };
3605   libopensc_dnie = callPackage ../development/libraries/libopensc-dnie {
3606     opensc = opensc_0_11_7;
3607   };
3609   opal = callPackage ../development/libraries/opal {};
3611   openjpeg = callPackage ../development/libraries/openjpeg { };
3613   openssl = callPackage ../development/libraries/openssl {
3614     fetchurl = fetchurlBoot;
3615   };
3617   ortp = callPackage ../development/libraries/ortp { };
3619   pangoxsl = callPackage ../development/libraries/pangoxsl {
3620     inherit (gtkLibs) glib pango;
3621   };
3623   pcre = callPackage ../development/libraries/pcre {
3624     unicodeSupport = getConfig ["pcre" "unicode"] false;
3625     cplusplusSupport = !stdenv ? isDietLibC;
3626   };
3628   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
3630   phonon_backend_vlc = newScope pkgs.kde4 ../development/libraries/phonon-backend-vlc { };
3632   physfs = callPackage ../development/libraries/physfs { };
3634   plib = callPackage ../development/libraries/plib { };
3636   podofo = callPackage ../development/libraries/podofo {
3637     stdenv = stdenv2;
3638   };
3640   polkit = callPackage ../development/libraries/polkit { };
3642   policykit = callPackage ../development/libraries/policykit { };
3644   poppler = callPackage ../development/libraries/poppler {
3645     qt4Support = false;
3646   };
3648   popplerQt4 = poppler.override {
3649     inherit qt4;
3650     qt4Support = true;
3651   };
3653   popt = callPackage ../development/libraries/popt { };
3655   portaudio = callPackage ../development/libraries/portaudio { };
3657   proj = callPackage ../development/libraries/proj { };
3659   postgis = callPackage ../development/libraries/postgis { };
3661   pth = callPackage ../development/libraries/pth { };
3663   ptlib = callPackage ../development/libraries/ptlib {};
3665   qjson = callPackage ../development/libraries/qjson { };
3667   qt3 = callPackage ../development/libraries/qt-3 {
3668     openglSupport = mesaSupported;
3669     mysqlSupport = getConfig ["qt" "mysql"] false;
3670   };
3672   qt3mysql = qt3.override {
3673     mysqlSupport = true;
3674   };
3676   qt4 = qt46;
3678   qt45 = callPackage ../development/libraries/qt-4.x/4.5 {
3679     inherit (gnome) glib;
3680   };
3682   qt46 = callPackage ../development/libraries/qt-4.x/4.6 {
3683     inherit (gnome) glib;
3684   };
3686   qt47 = callPackage ../development/libraries/qt-4.x/4.7 {
3687     inherit (pkgs.gst_all) gstreamer gstPluginsBase;
3688     inherit (pkgs.gnome) glib;
3689   };
3691   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
3693   quassel = newScope pkgs.kde4 ../applications/networking/irc/quassel { };
3695   quasselDaemon = quassel.override {
3696     monolithic = false;
3697     daemon = true;
3698   };
3699   
3700   quasselClient = quassel.override {
3701     monolithic = false;
3702     client = true;
3703   };
3704   
3705   quesoglc = callPackage ../development/libraries/quesoglc { };
3707   readline = readline6;
3709   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
3711   readline5 = callPackage ../development/libraries/readline/readline5.nix { };
3713   readline6 = callPackage ../development/libraries/readline/readline6.nix { };
3715   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
3717   librdf_rasqal = callPackage ../development/libraries/librdf/rasqal.nix { };
3719   librdf = callPackage ../development/libraries/librdf { };
3721   qrupdate = callPackage ../development/libraries/qrupdate { };
3723   redland = callPackage ../development/libraries/redland/1.0.10.nix {
3724     bdb = db4;
3725     postgresql = null;
3726   };
3728   rhino = callPackage ../development/libraries/java/rhino {
3729     ant = apacheAntGcj;
3730     javac = gcj;
3731     jvm = gcj;
3732   };
3734   rte = callPackage ../development/libraries/rte { };
3736   rubberband = callPackage ../development/libraries/rubberband {
3737     fftw = fftwSinglePrec;
3738     inherit (vamp) vampSDK;
3739   };
3741   schroedinger = callPackage ../development/libraries/schroedinger { };
3743   SDL = callPackage ../development/libraries/SDL {
3744     openglSupport = mesaSupported;
3745     alsaSupport = true;
3746     pulseaudioSupport = false; # better go through ALSA
3747   };
3749   SDL_gfx = callPackage ../development/libraries/SDL_gfx { };
3751   SDL_image = callPackage ../development/libraries/SDL_image { };
3753   SDL_mixer = callPackage ../development/libraries/SDL_mixer { };
3755   SDL_net = callPackage ../development/libraries/SDL_net { };
3757   SDL_sound = callPackage ../development/libraries/SDL_sound { };
3759   SDL_ttf = callPackage ../development/libraries/SDL_ttf { };
3761   slang = callPackage ../development/libraries/slang { };
3763   slibGuile = callPackage ../development/libraries/slib {
3764     scheme = guile;
3765   };
3767   snack = callPackage ../development/libraries/snack {
3768         # optional
3769   };
3771   speex = callPackage ../development/libraries/speex { };
3773   srtp = callPackage ../development/libraries/srtp {};
3775   sqlite = callPackage ../development/libraries/sqlite {
3776     readline = null;
3777     ncurses = null;
3778   };
3780   sqlite36 = callPackage ../development/libraries/sqlite/3.6.x.nix {
3781     readline = null;
3782     ncurses = null;
3783   };
3785   sqliteInteractive = appendToName "interactive" (sqlite.override {
3786     inherit readline ncurses;
3787   });
3789   stlport = callPackage ../development/libraries/stlport { };
3791   suitesparse = callPackage ../development/libraries/suitesparse { };
3793   t1lib = callPackage ../development/libraries/t1lib { };
3795   taglib = callPackage ../development/libraries/taglib { };
3797   taglib_extras = callPackage ../development/libraries/taglib-extras { };
3799   talloc = callPackage ../development/libraries/talloc { };
3801 ##  tapioca_qt = import ../development/libraries/tapioca-qt {
3802 ##    inherit stdenv fetchurl cmake qt4 telepathy_qt;
3803 ##  };
3805   tdb = callPackage ../development/libraries/tdb { };
3807   tecla = callPackage ../development/libraries/tecla { };
3809   telepathy_gabble = callPackage ../development/libraries/telepathy-gabble { };
3811   telepathy_glib = callPackage ../development/libraries/telepathy-glib { };
3813   telepathy_qt = callPackage ../development/libraries/telepathy-qt { };
3815   tk = callPackage ../development/libraries/tk { };
3817   tsocks = callPackage ../development/libraries/tsocks { };
3819   unixODBC = callPackage ../development/libraries/unixODBC { };
3821   unixODBCDrivers = recurseIntoAttrs (import ../development/libraries/unixODBCDrivers {
3822     inherit fetchurl stdenv unixODBC glibc libtool openssl zlib;
3823     inherit postgresql mysql sqlite;
3824   });
3826   vamp = callPackage ../development/libraries/audio/vamp { };
3828   vigra = callPackage ../development/libraries/vigra { };
3830   vtk = callPackage ../development/libraries/vtk { };
3832   vxl = callPackage ../development/libraries/vxl { };
3834   webkit = ((builderDefsPackage ../development/libraries/webkit {
3835     inherit (gnome28) gtkdoc libsoup;
3836     inherit (gtkLibs) gtk atk pango glib;
3837     inherit freetype fontconfig gettext gperf curl
3838       libjpeg libtiff libpng libxml2 libxslt sqlite
3839       icu cairo perl intltool automake libtool
3840       pkgconfig autoconf bison libproxy enchant
3841       python ruby;
3842     inherit (gst_all) gstreamer gstPluginsBase gstFfmpeg
3843       gstPluginsGood;
3844     flex = flex2535;
3845     inherit (xlibs) libXt;
3846   }).deepOverride {libsoup = gnome28.libsoup_2_31;});
3848   wvstreams = callPackage ../development/libraries/wvstreams { };
3850   wxGTK = wxGTK28;
3852   wxGTK26 = callPackage ../development/libraries/wxGTK-2.6 {
3853     inherit (gtkLibs216) gtk;
3854   };
3856   wxGTK28 = callPackage ../development/libraries/wxGTK-2.8 {
3857     inherit (gtkLibs216) gtk;
3858   };
3860   wtk = callPackage ../development/libraries/wtk { };
3862   x264 = callPackage ../development/libraries/x264 { };
3864   xapian = callPackage ../development/libraries/xapian { };
3866   xapianBindings = callPackage ../development/libraries/xapian/bindings {  # TODO perl php Java, tcl, C#, python
3867   };
3869   Xaw3d = callPackage ../development/libraries/Xaw3d {
3870     flex = flex2533;
3871   };
3873   xbase = callPackage ../development/libraries/xbase { };
3875   xineLib = callPackage ../development/libraries/xine-lib { };
3877   xautolock = callPackage ../misc/screensavers/xautolock { };
3879   xercesJava = callPackage ../development/libraries/java/xerces {
3880     ant   = apacheAntGcj;  # for bootstrap purposes
3881     javac = gcj;
3882     jvm   = gcj;
3883   };
3885   xlibsWrapper = callPackage ../development/libraries/xlibs-wrapper {
3886     packages = [
3887       freetype fontconfig xlibs.xproto xlibs.libX11 xlibs.libXt
3888       xlibs.libXft xlibs.libXext xlibs.libSM xlibs.libICE
3889       xlibs.xextproto
3890     ];
3891   };
3893   xvidcore = callPackage ../development/libraries/xvidcore { };
3895   zangband = builderDefsPackage (import ../games/zangband) {
3896     inherit ncurses flex bison autoconf automake m4 coreutils;
3897   };
3899   zlib = callPackage ../development/libraries/zlib {
3900     fetchurl = fetchurlBoot;
3901   };
3903   zlibStatic = lowPrio (appendToName "static" (import ../development/libraries/zlib {
3904     inherit fetchurl stdenv;
3905     static = true;
3906   }));
3908   zvbi = callPackage ../development/libraries/zvbi {
3909     pngSupport = true;
3910   };
3913   ### DEVELOPMENT / LIBRARIES / JAVA
3916   atermjava = callPackage ../development/libraries/java/aterm {
3917     stdenv = overrideInStdenv stdenv [gnumake380];
3919   };
3921   commonsFileUpload = callPackage ../development/libraries/java/jakarta-commons/file-upload { };
3923   fastjar = callPackage ../development/tools/java/fastjar { };
3925   httpunit = callPackage ../development/libraries/java/httpunit { };
3927   gwtdragdrop = callPackage ../development/libraries/java/gwt-dragdrop { };
3929   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
3931   jakartabcel = callPackage ../development/libraries/java/jakarta-bcel {
3932     regexp = jakartaregexp;
3933   };
3935   jakartaregexp = callPackage ../development/libraries/java/jakarta-regexp { };
3937   javaCup = callPackage ../development/libraries/java/cup { };
3939   javasvn = callPackage ../development/libraries/java/javasvn { };
3941   jclasslib = callPackage ../development/tools/java/jclasslib {
3942     ant = apacheAnt14;
3943   };
3945   jdom = callPackage ../development/libraries/java/jdom { };
3947   jflex = callPackage ../development/libraries/java/jflex { };
3949   jjtraveler = callPackage ../development/libraries/java/jjtraveler {
3950     stdenv = overrideInStdenv stdenv [gnumake380];
3951   };
3953   junit = callPackage ../development/libraries/java/junit { };
3955   lucene = callPackage ../development/libraries/java/lucene { };
3957   mockobjects = callPackage ../development/libraries/java/mockobjects { };
3959   saxon = callPackage ../development/libraries/java/saxon { };
3961   saxonb = callPackage ../development/libraries/java/saxon/default8.nix { };
3963   sharedobjects = callPackage ../development/libraries/java/shared-objects {
3964     stdenv = overrideInStdenv stdenv [gnumake380];
3965   };
3967   smack = callPackage ../development/libraries/java/smack { };
3969   swt = callPackage ../development/libraries/java/swt { };
3971   xalanj = xalanJava;
3972   xalanJava = callPackage ../development/libraries/java/xalanj {
3973     ant    = apacheAntGcj;  # for bootstrap purposes
3974     javac  = gcj;
3975     jvm    = gcj;
3976     xerces = xercesJava;  };
3978   zziplib = callPackage ../development/libraries/zziplib { };
3981   ### DEVELOPMENT / PERL MODULES
3983   buildPerlPackage = import ../development/perl-modules/generic perl;
3985   perlPackages = recurseIntoAttrs (import ./perl-packages.nix {
3986     inherit pkgs;
3987   });
3989   perlXMLParser = perlPackages.XMLParser;
3991   ack = perlPackages.ack;
3993   perlcritic = perlPackages.PerlCritic;
3996   ### DEVELOPMENT / PYTHON MODULES
3998   buildPythonPackage = import ../development/python-modules/generic {
3999     inherit python setuptools makeWrapper lib;
4000   };
4002   buildPython26Package = import ../development/python-modules/generic {
4003     inherit makeWrapper lib;
4004     python = python26;
4005     setuptools = setuptools.override { python = python26; };
4006   };
4008   buildPython27Package = import ../development/python-modules/generic {
4009     inherit makeWrapper lib;
4010     python = python27;
4011     setuptools = setuptools.override { python = python27; doCheck = false; };
4012   };
4014   pythonPackages = python26Packages;
4016   python26Packages = recurseIntoAttrs (import ./python-packages.nix {
4017     inherit pkgs;
4018     python = python26;
4019     buildPythonPackage = buildPython26Package;
4020   });
4022   python27Packages = recurseIntoAttrs (import ./python-packages.nix {
4023     inherit pkgs;
4024     python = python27;
4025     buildPythonPackage = buildPython27Package;
4026   });
4028   foursuite = callPackage ../development/python-modules/4suite { };
4030   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
4032   flup = builderDefsPackage ../development/python-modules/flup {
4033     inherit fetchurl stdenv python setuptools;
4034   };
4036   numeric = callPackage ../development/python-modules/numeric { };
4038   pil = callPackage ../development/python-modules/pil { };
4040   psyco = callPackage ../development/python-modules/psyco { };
4042   pycairo = callPackage ../development/python-modules/pycairo { };
4044   pycrypto = callPackage ../development/python-modules/pycrypto { };
4046   pycups = callPackage ../development/python-modules/pycups { };
4048   pygame = callPackage ../development/python-modules/pygame { };
4050   pygobject = callPackage ../development/python-modules/pygobject { };
4052   pygtk = callPackage ../development/python-modules/pygtk { };
4054   pyGtkGlade = callPackage ../development/python-modules/pygtk {
4055     inherit (gnome) libglade;
4056   };
4058   pyopenssl = builderDefsPackage (import ../development/python-modules/pyopenssl) {
4059     inherit python openssl;
4060   };
4062   rhpl = callPackage ../development/python-modules/rhpl { };
4064   sip = callPackage ../development/python-modules/python-sip { };
4066   pyqt4 = callPackage ../development/python-modules/pyqt { };
4068   pyx = callPackage ../development/python-modules/pyx { };
4070   pyxml = callPackage ../development/python-modules/pyxml { };
4072   setuptools = builderDefsPackage (import ../development/python-modules/setuptools) {
4073     inherit python makeWrapper;
4074   };
4076   wxPython = wxPython26;
4078   wxPython26 = callPackage ../development/python-modules/wxPython/2.6.nix {
4079     wxGTK = wxGTK26;
4080   };
4082   wxPython28 = callPackage ../development/python-modules/wxPython/2.8.nix { };
4084   twisted = pythonPackages.twisted;
4086   ZopeInterface = pythonPackages.zopeInterface;
4088   zope = callPackage ../development/python-modules/zope {
4089     python = python24;
4090   };
4092   ### SERVERS
4094   rdf4store = callPackage ../servers/http/4store { };
4096   apacheHttpd = callPackage ../servers/http/apache-httpd {
4097     sslSupport = true;
4098   };
4100   sabnzbd = callPackage ../servers/sabnzbd { };
4102   bind = builderDefsPackage (import ../servers/dns/bind/9.5.0.nix) {
4103     inherit openssl libtool;
4104   };
4106   dico = callPackage ../servers/dico { };
4108   dict = callPackage ../servers/dict { };
4110   dictdDBs = recurseIntoAttrs (import ../servers/dict/dictd-db.nix {
4111     inherit builderDefs;
4112   });
4114   dictDBCollector = import ../servers/dict/dictd-db-collector.nix {
4115     inherit stdenv lib dict;
4116   };
4118   dovecot = callPackage ../servers/mail/dovecot { };
4119   dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
4121   ejabberd = callPackage ../servers/xmpp/ejabberd {
4122     erlang = erlangR13B ;
4123   };
4125   couchdb = callPackage ../servers/http/couchdb { };
4127   felix = callPackage ../servers/felix { };
4129   felix_remoteshell = callPackage ../servers/felix/remoteshell.nix { };
4131   fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
4133   firebird = callPackage ../servers/firebird { };
4135   ircdHybrid = callPackage ../servers/irc/ircd-hybrid { };
4137   jboss = callPackage ../servers/http/jboss { };
4139   jboss_mysql_jdbc = callPackage ../servers/http/jboss/jdbc/mysql { };
4141   jetty = callPackage ../servers/http/jetty { };
4143   jetty61 = callPackage ../servers/http/jetty/6.1 { };
4145   lighttpd = callPackage ../servers/http/lighttpd { };
4147   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
4149   mpd = callPackage ../servers/mpd { };
4151   myserver = callPackage ../servers/http/myserver { };
4153   nginx = builderDefsPackage (import ../servers/http/nginx) {
4154     inherit openssl pcre zlib libxml2 libxslt;
4155   };
4157   postfix = callPackage ../servers/mail/postfix { };
4159   pulseaudio = callPackage ../servers/pulseaudio {
4160     gconf = gnome.GConf;
4161   };
4163   tomcat_connectors = callPackage ../servers/http/apache-modules/tomcat-connectors { };
4165   portmap = callPackage ../servers/portmap { };
4167   monetdb = callPackage ../servers/sql/monetdb { };
4169   mysql4 = import ../servers/sql/mysql {
4170     inherit fetchurl stdenv ncurses zlib perl;
4171     ps = procps; /* !!! Linux only */
4172   };
4174   mysql5 = import ../servers/sql/mysql5 {
4175     inherit fetchurl stdenv ncurses zlib perl openssl;
4176     ps = procps; /* !!! Linux only */
4177   };
4179   mysql51 = import ../servers/sql/mysql51 {
4180     inherit fetchurl ncurses zlib perl openssl stdenv;
4181     ps = procps; /* !!! Linux only */
4182   };
4184   mysql = mysql5;
4186   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
4188   nagios = callPackage ../servers/monitoring/nagios {
4189     gdSupport = true;
4190   };
4192   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official { };
4194   openfire = callPackage ../servers/xmpp/openfire { };
4196   postgresql = postgresql83;
4198   postgresql83 = callPackage ../servers/sql/postgresql/8.3.x.nix { };
4200   postgresql84 = callPackage ../servers/sql/postgresql/8.4.x.nix { };
4202   postgresql_jdbc = callPackage ../servers/sql/postgresql/jdbc { };
4204   pyIRCt = builderDefsPackage (import ../servers/xmpp/pyIRCt) {
4205     inherit xmpppy pythonIRClib python makeWrapper;
4206   };
4208   pyMAILt = builderDefsPackage (import ../servers/xmpp/pyMAILt) {
4209     inherit xmpppy python makeWrapper fetchcvs;
4210   };
4212   radius = callPackage ../servers/radius { };
4214   redstore = callPackage ../servers/http/redstore { };
4216   samba = callPackage ../servers/samba { };
4218   shishi = callPackage ../servers/shishi { };
4220   squids = recurseIntoAttrs( import ../servers/squid/squids.nix {
4221     inherit fetchurl stdenv perl lib composableDerivation;
4222   });
4223   squid = squids.squid3Beta; # has ipv6 support
4225   tomcat5 = callPackage ../servers/http/tomcat { };
4227   tomcat6 = callPackage ../servers/http/tomcat/6.0.nix { };
4229   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
4231   axis2 = callPackage ../servers/http/tomcat/axis2 { };
4233   virtuoso = callPackage ../servers/sql/virtuoso { };
4235   vsftpd = callPackage ../servers/ftp/vsftpd { };
4237   xinetd = callPackage ../servers/xinetd { };
4239   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
4240     inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
4241       libxslt expat libdrm libpng zlib perl mesa
4242       xkeyboard_config dbus hal libuuid openssl gperf m4
4243       automake autoconf libtool xmlto asciidoc udev;
4245     # !!! pythonBase is used instead of python because this causes an
4246     # infinite recursion when the flag python.full is set to true.
4247     # Packages contained in the loop are python, tk, xlibs-wrapper,
4248     # libX11, libxcd (and xcb-proto).
4249     python = pythonBase;
4250   });
4252   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
4254   xorgVideoUnichrome = callPackage ../servers/x11/xorg/unichrome/default.nix { };
4256   zabbix = recurseIntoAttrs (import ../servers/monitoring/zabbix {
4257     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
4258   });
4261   ### OS-SPECIFIC
4263   afuse = callPackage ../os-specific/linux/afuse { };
4265   autofs5 = callPackage ../os-specific/linux/autofs/autofs-v5.nix { };
4267   _915resolution = callPackage ../os-specific/linux/915resolution { };
4269   nfsUtils = callPackage ../os-specific/linux/nfs-utils { };
4271   acpi = callPackage ../os-specific/linux/acpi { };
4273   acpid = callPackage ../os-specific/linux/acpid { };
4275   acpitool = callPackage ../os-specific/linux/acpitool { };
4277   alsaLib = callPackage ../os-specific/linux/alsa-lib { };
4279   alsaPlugins = callPackage ../os-specific/linux/alsa-plugins { };
4280   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
4282   alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
4284   bluez = callPackage ../os-specific/linux/bluez { };
4286   bridge_utils = callPackage ../os-specific/linux/bridge-utils { };
4288   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
4290   conky = callPackage ../os-specific/linux/conky { };
4292   cpufrequtils = (
4293     import ../os-specific/linux/cpufrequtils {
4294     inherit fetchurl stdenv libtool gettext;
4295     glibc = stdenv.gcc.libc;
4296     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4297   });
4299   cryopid = callPackage ../os-specific/linux/cryopid { };
4301   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
4303   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
4305   darwinArchUtility = callPackage ../os-specific/darwin/arch { };
4307   darwinSwVersUtility = callPackage ../os-specific/darwin/sw_vers { };
4309   darwinLipoUtility = callPackage ../os-specific/darwin/lipo { };
4311   devicemapper = lvm2;
4313   dmidecode = callPackage ../os-specific/linux/dmidecode { };
4315   dmtcp = callPackage ../os-specific/linux/dmtcp { };
4317   dietlibc = callPackage ../os-specific/linux/dietlibc {
4318     # Dietlibc 0.30 doesn't compile on PPC with GCC 4.1, bus GCC 3.4 works.
4319     stdenv = if stdenv.system == "powerpc-linux" then overrideGCC stdenv gcc34 else stdenv;
4320   };
4322   directvnc = builderDefsPackage ../os-specific/linux/directvnc {
4323     inherit libjpeg pkgconfig zlib directfb;
4324     inherit (xlibs) xproto;
4325   };
4327   dmraid = builderDefsPackage ../os-specific/linux/dmraid {
4328     inherit devicemapper;
4329   };
4331   libuuid =
4332     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
4333     then (utillinuxng // {
4334       hostDrv = lib.overrideDerivation utillinuxng.hostDrv (args: {
4335         # `libblkid' fails to build on GNU/Hurd.
4336         configureFlags = args.configureFlags
4337           + " --disable-libblkid --disable-mount --disable-fsck"
4338           + " --enable-static";
4339         doCheck = false;
4340         CPPFLAGS =                    # ugly hack for ugly software!
4341           lib.concatStringsSep " "
4342             (map (v: "-D${v}=4096")
4343                  [ "PATH_MAX" "MAXPATHLEN" "MAXHOSTNAMELEN" ]);
4344       });
4345     })
4346     else if stdenv.isLinux
4347     then utillinuxng
4348     else null;
4350   e3cfsprogs = callPackage ../os-specific/linux/e3cfsprogs { };
4352   eject = callPackage ../os-specific/linux/eject { };
4354   fbterm = builderDefsPackage (import ../os-specific/linux/fbterm) {
4355     inherit fontconfig gpm freetype pkgconfig ncurses;
4356   };
4358   fuse = callPackage ../os-specific/linux/fuse { };
4360   fxload = callPackage ../os-specific/linux/fxload { };
4362   gpm = callPackage ../servers/gpm {
4363     flex = flex2535;
4364   };
4366   hal = callPackage ../os-specific/linux/hal { };
4368   halevt = callPackage ../os-specific/linux/hal/hal-evt.nix { };
4370   hal_info = callPackage ../os-specific/linux/hal/info.nix { };
4372   hal_info_synaptics = callPackage ../os-specific/linux/hal/synaptics.nix { };
4374   hdparm = callPackage ../os-specific/linux/hdparm { };
4376   hibernate = callPackage ../os-specific/linux/hibernate { };
4378   htop = callPackage ../os-specific/linux/htop { };
4380   hurdCross = forceBuildDrv(import ../os-specific/gnu/hurd {
4381     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4382       mig glibcCross;
4383     automake = automake111x;
4384     headersOnly = false;
4385     cross = assert crossSystem != null; crossSystem;
4386     gccCross = gccCrossStageFinal;
4387   });
4389   hurdCrossIntermediate = forceBuildDrv(import ../os-specific/gnu/hurd {
4390     inherit fetchgit stdenv autoconf libtool texinfo machHeaders
4391       mig glibcCross;
4392     automake = automake111x;
4393     headersOnly = false;
4394     cross = assert crossSystem != null; crossSystem;
4396     # The "final" GCC needs glibc and the Hurd libraries (libpthread in
4397     # particular) so we first need an intermediate Hurd built with the
4398     # intermediate GCC.
4399     gccCross = gccCrossStageStatic;
4401     # This intermediate Hurd is only needed to build libpthread, which really
4402     # only needs libihash.
4403     buildTarget = "libihash";
4404     installTarget = "libihash-install";
4405   });
4407   hurdHeaders = callPackage ../os-specific/gnu/hurd {
4408     automake = automake111x;
4409     headersOnly = true;
4410     gccCross = null;
4411     glibcCross = null;
4412   };
4414   hurdLibpthreadCross = forceBuildDrv(import ../os-specific/gnu/libpthread {
4415     inherit fetchgit stdenv autoconf automake libtool
4416       machHeaders hurdHeaders glibcCross;
4417     hurd = hurdCrossIntermediate;
4418     gccCross = gccCrossStageStatic;
4419     cross = assert crossSystem != null; crossSystem;
4420   });
4422   hwdata = callPackage ../os-specific/linux/hwdata { };
4424   ifplugd = callPackage ../os-specific/linux/ifplugd { };
4426   iproute = callPackage ../os-specific/linux/iproute { };
4428   iputils = (
4429     import ../os-specific/linux/iputils {
4430     inherit fetchurl stdenv;
4431     glibc = stdenv.gcc.libc;
4432     linuxHeaders = stdenv.gcc.libc.kernelHeaders;
4433   });
4435   iptables = callPackage ../os-specific/linux/iptables { };
4437   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
4439   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
4441   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
4443   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
4445   iwlwifi4965ucodeV2 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode/version-2.nix { };
4447   iwlwifi5000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-5000-ucode { };
4449   kbd = callPackage ../os-specific/linux/kbd { };
4451   libcroup = callPackage ../os-specific/linux/libcg { };
4453   linuxHeaders = linuxHeaders_2_6_28;
4455   linuxHeaders26Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix {
4456     inherit stdenv fetchurl perl;
4457     cross = assert crossSystem != null; crossSystem;
4458   });
4460   linuxHeaders24Cross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.4.nix {
4461     inherit stdenv fetchurl perl;
4462     cross = assert crossSystem != null; crossSystem;
4463   });
4465   # We can choose:
4466   linuxHeadersCrossChooser = ver : if (ver == "2.4") then linuxHeaders24Cross
4467     else if (ver == "2.6") then linuxHeaders26Cross
4468     else throw "Unknown linux kernel version";
4470   linuxHeadersCross = assert crossSystem != null;
4471     linuxHeadersCrossChooser crossSystem.platform.kernelMajor;
4473   linuxHeaders_2_6_18 = callPackage ../os-specific/linux/kernel-headers/2.6.18.5.nix { };
4475   linuxHeaders_2_6_28 = callPackage ../os-specific/linux/kernel-headers/2.6.28.nix { };
4477   linuxHeaders_2_6_32 = callPackage ../os-specific/linux/kernel-headers/2.6.32.nix { };
4479   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
4481   linux_2_6_25 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.25.nix) {
4482     inherit fetchurl stdenv perl mktemp module_init_tools;
4483     kernelPatches =
4484       [ kernelPatches.fbcondecor_2_6_25
4485         kernelPatches.sec_perm_2_6_24
4486       ];
4487   };
4489   linux_2_6_27 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.27.nix) {
4490     inherit fetchurl stdenv perl mktemp module_init_tools;
4491     kernelPatches =
4492       [ kernelPatches.fbcondecor_2_6_27
4493         kernelPatches.sec_perm_2_6_24
4494       ];
4495   };
4497   linux_2_6_28 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.28.nix) {
4498     inherit fetchurl stdenv perl mktemp module_init_tools;
4499     kernelPatches =
4500       [ kernelPatches.fbcondecor_2_6_28
4501         kernelPatches.sec_perm_2_6_24
4502         kernelPatches.ext4_softlockups_2_6_28
4503       ];
4504   };
4506   linux_2_6_29 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.29.nix) {
4507     inherit fetchurl stdenv perl mktemp module_init_tools;
4508     kernelPatches =
4509       [ kernelPatches.fbcondecor_2_6_29
4510         kernelPatches.sec_perm_2_6_24
4511       ];
4512   };
4514   linux_2_6_31 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.31.nix) {
4515     inherit fetchurl stdenv perl mktemp module_init_tools platform;
4516     kernelPatches = [];
4517   };
4519   linux_2_6_32 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4520     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4521     kernelPatches =
4522       [ kernelPatches.fbcondecor_2_6_31
4523         kernelPatches.sec_perm_2_6_24
4524         kernelPatches.aufs2_2_6_32
4525         kernelPatches.cifs_timeout
4526         kernelPatches.no_xsave
4527         kernelPatches.dell_rfkill
4528       ];
4529   };
4531   linux_2_6_32_xen = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32-xen.nix) {
4532     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4533     kernelPatches =
4534       [ kernelPatches.fbcondecor_2_6_31
4535         kernelPatches.sec_perm_2_6_24
4536         kernelPatches.aufs2_2_6_32
4537         kernelPatches.cifs_timeout
4538         kernelPatches.no_xsave
4539         kernelPatches.dell_rfkill
4540       ];
4541   };
4543   linux_2_6_32_systemtap = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.32.nix) {
4544     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4545     extraConfig =
4546       ''
4547         DEBUG_KERNEL y
4548         KPROBES y # kernel probes (needs `utrace' for process probes)
4549         DEBUG_INFO y
4550         RELAY y
4551         DEBUG_FS y
4552       '';
4553     dontStrip = true;
4554     kernelPatches =
4555       [ kernelPatches.fbcondecor_2_6_31
4556         kernelPatches.sec_perm_2_6_24
4557         kernelPatches.tracehook_2_6_32
4558         kernelPatches.utrace_2_6_32
4559       ];
4560   };
4562   linux_2_6_32_zen4 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.32-zen4.nix) {
4563     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4564   };
4566   linux_2_6_32_zen4_oldi686 = linux_2_6_32_zen4.override {
4567     features = {
4568       oldI686 = true;
4569     };
4570   };
4572   linux_2_6_32_zen4_bfs = linux_2_6_32_zen4.override {
4573     features = {
4574       ckSched = true;
4575     };
4576   };
4578   linux_2_6_33 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.33.nix) {
4579     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4580     kernelPatches =
4581       [ kernelPatches.fbcondecor_2_6_33
4582         kernelPatches.sec_perm_2_6_24
4583       ];
4584   };
4586   linux_2_6_33_zen1 = makeOverridable (import ../os-specific/linux/zen-kernel/2.6.33-zen1.nix) {
4587     inherit fetchurl stdenv perl mktemp module_init_tools runCommand xz;
4588   };
4590   linux_2_6_33_zen1_oldi686 = linux_2_6_33_zen1.override {
4591     features = {
4592       oldI686 = true;
4593     };
4594   };
4596   linux_2_6_33_zen1_bfs = linux_2_6_33_zen1.override {
4597     features = {
4598       ckSched = true;
4599     };
4600   };
4602   linux_2_6_34 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.34.nix) {
4603     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4604     kernelPatches =
4605       [ /*kernelPatches.fbcondecor_2_6_33*/
4606         kernelPatches.sec_perm_2_6_24
4607         kernelPatches.aufs2_2_6_34
4608       ];
4609   };
4611   linux_2_6_35 = makeOverridable (import ../os-specific/linux/kernel/linux-2.6.35.nix) {
4612     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
4613     kernelPatches =
4614       [ #kernelPatches.fbcondecor_2_6_35
4615         kernelPatches.sec_perm_2_6_24
4616         kernelPatches.aufs2_2_6_35
4617       ];
4618   };
4620   linux_2_6_35_oldI686 = linux_2_6_35.override {
4621       extraConfig = ''
4622           HIGHMEM64G? n
4623           XEN? n
4624       '';
4625       extraMeta = {
4626         platforms = ["i686-linux"];
4627         maintainers = [lib.maintainers.raskin];
4628       };
4629   };
4631   /* Linux kernel modules are inherently tied to a specific kernel.  So
4632      rather than provide specific instances of those packages for a
4633      specific kernel, we have a function that builds those packages
4634      for a specific kernel.  This function can then be called for
4635      whatever kernel you're using. */
4637   linuxPackagesFor = kernel: self: let callPackage = newScope self; in rec {
4639     inherit kernel;
4641     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
4643     aufs = callPackage ../os-specific/linux/aufs { };
4645     aufs2 = callPackage ../os-specific/linux/aufs2 { };
4647     aufs2_util = callPackage ../os-specific/linux/aufs2-util { };
4649     blcr = callPackage ../os-specific/linux/blcr {
4650       #libtool = libtool_1_5; # libtool 2 causes a fork bomb
4651     };
4653     exmap = callPackage ../os-specific/linux/exmap {
4654       inherit (gtkLibs) gtkmm;
4655     };
4657     iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
4659     iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
4661     iwlwifi4965ucode =
4662       (if (builtins.compareVersions kernel.version "2.6.27" == 0)
4663           || (builtins.compareVersions kernel.version "2.6.27" == 1)
4664        then iwlwifi4965ucodeV2
4665        else iwlwifi4965ucodeV1);
4667     atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
4669     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
4671     nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
4672     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
4674     openafsClient = callPackage ../servers/openafs-client { };
4676     openiscsi = callPackage ../os-specific/linux/open-iscsi { };
4678     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
4680     kqemu = builderDefsPackage ../os-specific/linux/kqemu/1.4.0pre1.nix {
4681       inherit kernel perl;
4682     };
4684     splashutils =
4685       if kernel.features ? fbConDecor then pkgs.splashutils else null;
4687     ext3cowtools = callPackage ../os-specific/linux/ext3cow-tools {
4688       kernel_ext3cowpatched = kernel;
4689     };
4691     /* compiles but has to be integrated into the kernel somehow
4692       Let's have it uncommented and finish it..
4693     */
4694     ndiswrapper = callPackage ../os-specific/linux/ndiswrapper { };
4696     ov511 = callPackage ../os-specific/linux/ov511 {
4697       stdenv = overrideGCC stdenv gcc34;
4698     };
4700     # State Nix
4701     snix = callPackage ../tools/package-management/snix {
4703       aterm = aterm25;
4704       db4 = db45;
4706       flex = flex2533;
4707       ext3cow_kernel = kernel;    };
4709     sysprof = callPackage ../development/tools/profiling/sysprof {
4710       inherit (gnome) gtk glib pango libglade;
4711     };
4713     systemtap = callPackage ../development/tools/profiling/systemtap {
4714       linux = kernel;
4715       inherit (gnome) gtkmm libglademm;
4716     };
4718     virtualbox = callPackage ../applications/virtualization/virtualbox {
4719       stdenv = stdenv_32bit;
4720       inherit (gnome) libIDL;
4721     };
4723     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
4724   };
4726   # Build the kernel modules for the some of the kernels.
4727   linuxPackages_2_6_25 = recurseIntoAttrs (linuxPackagesFor linux_2_6_25 pkgs.linuxPackages_2_6_25);
4728   linuxPackages_2_6_27 = recurseIntoAttrs (linuxPackagesFor linux_2_6_27 pkgs.linuxPackages_2_6_27);
4729   linuxPackages_2_6_28 = recurseIntoAttrs (linuxPackagesFor linux_2_6_28 pkgs.linuxPackages_2_6_28);
4730   linuxPackages_2_6_29 = recurseIntoAttrs (linuxPackagesFor linux_2_6_29 pkgs.linuxPackages_2_6_29);
4731   linuxPackages_2_6_31 = recurseIntoAttrs (linuxPackagesFor linux_2_6_31 pkgs.linuxPackages_2_6_31);
4732   linuxPackages_2_6_32 = recurseIntoAttrs (linuxPackagesFor linux_2_6_32 pkgs.linuxPackages_2_6_32);
4733   linuxPackages_2_6_32_systemtap =
4734     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_systemtap pkgs.linuxPackages_2_6_32_systemtap);
4735   linuxPackages_2_6_32_xen =
4736     recurseIntoAttrs (linuxPackagesFor linux_2_6_32_xen pkgs.linuxPackages_2_6_32_xen);
4737   linuxPackages_2_6_33 = recurseIntoAttrs (linuxPackagesFor linux_2_6_33 pkgs.linuxPackages_2_6_33);
4738   linuxPackages_2_6_34 = recurseIntoAttrs (linuxPackagesFor linux_2_6_34 pkgs.linuxPackages_2_6_34);
4739   linuxPackages_2_6_35 = recurseIntoAttrs (linuxPackagesFor linux_2_6_35 pkgs.linuxPackages_2_6_35);
4741   # The current default kernel / kernel modules.
4742   linux = linux_2_6_32;
4743   linuxPackages = linuxPackages_2_6_32;
4745   keyutils = callPackage ../os-specific/linux/keyutils { };
4747   libselinux = callPackage ../os-specific/linux/libselinux { };
4749   libraw1394 = callPackage ../development/libraries/libraw1394 { };
4751   libsexy = callPackage ../development/libraries/libsexy {
4752     inherit (gtkLibs) glib gtk pango;
4753   };
4755   librsvg = gnome.librsvg;
4757   libsepol = callPackage ../os-specific/linux/libsepol { };
4759   libsmbios = callPackage ../os-specific/linux/libsmbios { };
4761   lm_sensors = callPackage ../os-specific/linux/lm_sensors { };
4763   lsiutil = callPackage ../os-specific/linux/lsiutil { };
4765   klibc = callPackage ../os-specific/linux/klibc {
4766     linuxHeaders = glibc.kernelHeaders;
4767   };
4769   klibcShrunk = callPackage ../os-specific/linux/klibc/shrunk.nix { };
4771   kvm = qemu_kvm;
4773   libcap = callPackage ../os-specific/linux/libcap { };
4775   libnscd = callPackage ../os-specific/linux/libnscd { };
4777   libnotify = callPackage ../development/libraries/libnotify { };
4779   libvolume_id = callPackage ../os-specific/linux/libvolume_id { };
4781   lvm2 = callPackage ../os-specific/linux/lvm2 { };
4783   # In theory GNU Mach doesn't have to be cross-compiled.  However, since it
4784   # has to be built for i586 (it doesn't work on x86_64), one needs a cross
4785   # compiler for that host.
4786   mach = callPackage ../os-specific/gnu/mach {
4787     automake = automake111x;  };
4789   machHeaders = callPackage ../os-specific/gnu/mach {
4790     automake = automake111x;
4791     headersOnly = true;
4792     mig = null;
4793   };
4795   mdadm = callPackage ../os-specific/linux/mdadm { };
4797   mingetty = callPackage ../os-specific/linux/mingetty { };
4799   module_init_tools = callPackage ../os-specific/linux/module-init-tools { };
4801   mountall = callPackage ../os-specific/linux/mountall {
4802     automake = automake111x;
4803   };
4805   aggregateModules = modules:
4806     import ../os-specific/linux/module-init-tools/aggregator.nix {
4807       inherit stdenv module_init_tools modules buildEnv;
4808     };
4810   modutils = callPackage ../os-specific/linux/modutils {
4811     stdenv = overrideGCC stdenv gcc34;
4812   };
4814   nettools = callPackage ../os-specific/linux/net-tools { };
4816   neverball = callPackage ../games/neverball { };
4818   numactl = callPackage ../os-specific/linux/numactl { };
4820   gw6c = builderDefsPackage (import ../os-specific/linux/gw6c) {
4821     inherit fetchurl stdenv nettools openssl procps iproute;
4822   };
4824   nss_ldap = callPackage ../os-specific/linux/nss_ldap { };
4826   pam = callPackage ../os-specific/linux/pam { };
4828   # pam_bioapi ( see http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader )
4830   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds {
4831     db = db4;
4832   };
4834   pam_console = callPackage ../os-specific/linux/pam_console {
4835     libtool = libtool_1_5;
4836     flex = if stdenv.system == "i686-linux" then flex else flex2533;
4837   };
4839   pam_devperm = callPackage ../os-specific/linux/pam_devperm { };
4841   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
4843   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
4845   pam_login = callPackage ../os-specific/linux/pam_login { };
4847   pam_unix2 = callPackage ../os-specific/linux/pam_unix2 { };
4849   pam_usb = callPackage ../os-specific/linux/pam_usb { };
4851   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
4852     firmware = getConfig ["pcmciaUtils" "firmware"] [];
4853     config = getConfig ["pcmciaUtils" "config"] null;
4854   };
4856   pmount = callPackage ../os-specific/linux/pmount { };
4858   pmutils = callPackage ../os-specific/linux/pm-utils { };
4860   powertop = callPackage ../os-specific/linux/powertop { };
4862   procps = callPackage ../os-specific/linux/procps { };
4864   pwdutils = callPackage ../os-specific/linux/pwdutils { };
4866   qemu_kvm = callPackage ../os-specific/linux/qemu-kvm { };
4868   radeontools = callPackage ../os-specific/linux/radeontools { };
4870   rfkill = callPackage ../os-specific/linux/rfkill { };
4872   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
4874   rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
4876   sdparm = callPackage ../os-specific/linux/sdparm { };
4878   shadow = callPackage ../os-specific/linux/shadow { };
4880   splashutils = callPackage ../os-specific/linux/splashutils/default.nix { };
4882   statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
4884   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
4886   # Provided with sysfsutils.
4887   libsysfs = sysfsutils;
4888   systool = sysfsutils;
4890   sysklogd = callPackage ../os-specific/linux/sysklogd { };
4892   syslinux = callPackage ../os-specific/linux/syslinux { };
4894   sysstat = callPackage ../os-specific/linux/sysstat { };
4896   sysvinit = callPackage ../os-specific/linux/sysvinit { };
4898   sysvtools = callPackage ../os-specific/linux/sysvinit {
4899     withoutInitTools = true;
4900   };
4902   # FIXME: `tcp-wrapper' is actually not OS-specific.
4903   tcpWrapper = callPackage ../os-specific/linux/tcp-wrapper { };
4905   trackballs = callPackage ../games/trackballs {
4906     debug = false;
4907   };
4909   tunctl = callPackage ../os-specific/linux/tunctl { };
4911   /*tuxracer = builderDefsPackage (import ../games/tuxracer) {
4912     inherit mesa tcl freeglut;
4913     inherit (xlibs) libX11 xproto;
4914   };*/
4916   ubootChooser = name : if (name == "upstream") then ubootUpstream
4917     else if (name == "sheevaplug") then ubootSheevaplug
4918     else throw "Unknown uboot";
4920   ubootUpstream = callPackage ../misc/uboot { };
4922   ubootSheevaplug = callPackage ../misc/uboot/sheevaplug.nix { };
4924   uclibc = callPackage ../os-specific/linux/uclibc { };
4926   uclibcCross = import ../os-specific/linux/uclibc {
4927     inherit fetchurl stdenv;
4928     linuxHeaders = linuxHeadersCross;
4929     gccCross = gccCrossStageStatic;
4930     cross = assert crossSystem != null; crossSystem;
4931   };
4933   udev = callPackage ../os-specific/linux/udev { };
4935   uml = import ../os-specific/linux/kernel/linux-2.6.29.nix {
4936     inherit fetchurl stdenv perl mktemp module_init_tools;
4937     userModeLinux = true;
4938   };
4940   umlutilities = callPackage ../os-specific/linux/uml-utilities {
4941     tunctl = true; mconsole = true;
4942   };
4944   upstart = callPackage ../os-specific/linux/upstart { };
4946   usbutils = callPackage ../os-specific/linux/usbutils { };
4948   utillinux = utillinuxng;
4950   utillinuxCurses = utillinuxngCurses;
4952   utillinuxng = callPackage ../os-specific/linux/util-linux-ng {
4953     ncurses = null;
4954   };
4956   utillinuxngCurses = utillinuxng.override {
4957     inherit ncurses;
4958   };
4960   windows = rec {
4961     w32api = callPackage ../os-specific/windows/w32api {
4962       gccCross = gccCrossStageStatic;
4963       binutilsCross = binutilsCross;
4964     };
4966     w32api_headers = w32api.override {
4967       onlyHeaders = true;
4968     };
4970     mingw_runtime = callPackage ../os-specific/windows/mingwrt {
4971       gccCross = gccCrossMingw2;
4972       binutilsCross = binutilsCross;
4973     };
4975     mingw_runtime_headers = mingw_runtime.override {
4976       onlyHeaders = true;
4977     };
4979     mingw_headers1 = buildEnv {
4980       name = "mingw-headers-1";
4981       paths = [ w32api_headers mingw_runtime_headers ];
4982     };
4984     mingw_headers2 = buildEnv {
4985       name = "mingw-headers-2";
4986       paths = [ w32api mingw_runtime_headers ];
4987     };
4989     mingw_headers3 = buildEnv {
4990       name = "mingw-headers-3";
4991       paths = [ w32api mingw_runtime ];
4992     };
4994     wxMSW = callPackage ../os-specific/windows/wxMSW-2.8 { };
4995   };
4997   wesnoth = callPackage ../games/wesnoth {
4998     inherit (gtkLibs) pango;
4999   };
5001   wirelesstools = callPackage ../os-specific/linux/wireless-tools { };
5003   wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant {
5004     guiSupport = false;
5005   };
5006   # prebuild binaries:
5007   wpa_supplicant_gui = wpa_supplicant.override { guiSupport = true; };
5009   # deprecated, but contains icon ? Does no longer build
5010   /* didn't build Sun Apr 25 20:34:18 CEST 2010
5011   wpa_supplicant_gui_qt4_old = callPackage ../os-specific/linux/wpa_supplicant/gui-qt4.nix { };
5012   */
5014   xf86_input_wacom = callPackage ../os-specific/linux/xf86-input-wacom { };
5016   xmoto = builderDefsPackage (import ../games/xmoto) {
5017     inherit chipmunk sqlite curl zlib bzip2 libjpeg libpng
5018       freeglut mesa SDL SDL_mixer SDL_image SDL_net SDL_ttf
5019       lua5 ode libxdg_basedir;
5020   };
5022   xorg_sys_opengl = callPackage ../os-specific/linux/opengl/xorg-sys { };
5024   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
5026   ### DATA
5028   arkpandora_ttf = builderDefsPackage (import ../data/fonts/arkpandora) {
5029   };
5031   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
5033   cacert = callPackage ../data/misc/cacert { };
5035   corefonts = callPackage ../data/fonts/corefonts { };
5037   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
5038     inherit fetchurl stdenv builderDefs paths ttmkfdir;
5039     inherit (xorg) mkfontdir mkfontscale;
5040   });
5042   clearlyU = callPackage ../data/fonts/clearlyU { };
5044   dejavu_fonts = callPackage ../data/fonts/dejavu-fonts {
5045     inherit (perlPackages) FontTTF;
5046   };
5048   docbook5 = callPackage ../data/sgml+xml/schemas/docbook-5.0 { };
5050   docbook_xml_dtd_412 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.1.2.nix { };
5052   docbook_xml_dtd_42 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.2.nix { };
5054   docbook_xml_dtd_43 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.3.nix { };
5056   docbook_xml_dtd_45 = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook/4.5.nix { };
5058   docbook_xml_ebnf_dtd = callPackage ../data/sgml+xml/schemas/xml-dtd/docbook-ebnf { };
5060   docbook_xml_xslt = docbook_xsl;
5062   docbook_xsl = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl { };
5064   docbook5_xsl = docbook_xsl_ns;
5066   docbook_xsl_ns = callPackage ../data/sgml+xml/stylesheets/xslt/docbook-xsl-ns { };
5068   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
5070   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
5072   junicode = callPackage ../data/fonts/junicode { };
5074   liberation_ttf = callPackage ../data/fonts/redhat-liberation-fonts { };
5076   libertine = builderDefsPackage (import ../data/fonts/libertine/2.7.nix) {
5077     inherit fontforge;
5078   };
5079   libertineBin = builderDefsPackage (import ../data/fonts/libertine/2.7.bin.nix) {
5080   };
5082   lmodern = callPackage ../data/fonts/lmodern { };
5084   manpages = callPackage ../data/documentation/man-pages { };
5086   miscfiles = callPackage ../data/misc/miscfiles { };
5088   mph_2b_damase = callPackage ../data/fonts/mph-2b-damase { };
5090   pthreadmanpages = callPackage ../data/documentation/pthread-man-pages { };
5092   shared_mime_info = callPackage ../data/misc/shared-mime-info { };
5094   shared_desktop_ontologies = callPackage ../data/misc/shared-desktop-ontologies { };
5096   stdmanpages = callPackage ../data/documentation/std-man-pages { };
5098   iana_etc = callPackage ../data/misc/iana-etc { };
5100   popplerData = callPackage ../data/misc/poppler-data { };
5102   r3rs = callPackage ../data/documentation/rnrs/r3rs.nix { };
5104   r4rs = callPackage ../data/documentation/rnrs/r4rs.nix { };
5106   r5rs = callPackage ../data/documentation/rnrs/r5rs.nix { };
5108   themes = name: import (../data/misc/themes + ("/" + name + ".nix")) {
5109     inherit fetchurl;
5110   };
5112   terminus_font = callPackage ../data/fonts/terminus-font { };
5114   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
5116   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
5118   unifont = callPackage ../data/fonts/unifont { };
5120   vistafonts = callPackage ../data/fonts/vista-fonts { };
5122   wqy_zenhei = callPackage ../data/fonts/wqy-zenhei { };
5124   xhtml1 = callPackage ../data/sgml+xml/schemas/xml-dtd/xhtml1 { };
5126   xkeyboard_config = callPackage ../data/misc/xkeyboard-config { };
5129   ### APPLICATIONS
5132   aangifte2005 = callPackage_i686 ../applications/taxes/aangifte-2005 { };
5134   aangifte2006 = callPackage_i686 ../applications/taxes/aangifte-2006 { };
5136   aangifte2007 = callPackage_i686 ../applications/taxes/aangifte-2007 { };
5138   aangifte2008 = callPackage_i686 ../applications/taxes/aangifte-2008 { };
5140   aangifte2009 = callPackage_i686 ../applications/taxes/aangifte-2009 { };
5142   abcde = callPackage ../applications/audio/abcde { };
5144   abiword = callPackage ../applications/office/abiword {
5145     inherit (gnome) libglade libgnomecanvas;
5146   };
5148   adobeReader = callPackage_i686 ../applications/misc/adobe-reader {
5149     inherit (pkgsi686Linux.gtkLibs) glib pango atk gtk;
5150   };
5152   amsn = callPackage ../applications/networking/instant-messengers/amsn {
5153     libstdcpp = gcc33.gcc;
5154   };
5156   ardour = callPackage ../applications/audio/ardour {
5157     inherit (gtkLibs) glib pango gtk glibmm gtkmm;
5158     inherit (gnome) libgnomecanvas;
5159   };
5161   arora = callPackage ../applications/networking/browsers/arora { };
5163   audacious = callPackage ../applications/audio/audacious { };
5165   audacity = callPackage ../applications/audio/audacity { };
5167   aumix = callPackage ../applications/audio/aumix {
5168     gtkGUI = false;
5169   };
5171   autopanosiftc = callPackage ../applications/graphics/autopanosiftc { };
5173   avidemux = callPackage ../applications/video/avidemux {
5174     stdenv = stdenv2;
5175   };
5177   awesome = callPackage ../applications/window-managers/awesome {
5178     inherit (gtkLibs) glib pango;
5179     lua = lua5;
5180     cairo = cairo.override { xcbSupport = true; };
5181   };
5183   bangarang = newScope pkgs.kde4 ../applications/video/bangarang { };
5185   batik = callPackage ../applications/graphics/batik { };
5187   bazaar = callPackage ../applications/version-management/bazaar {
5188     python = pythonFull;
5189   };
5191   bazaarTools = builderDefsPackage (import ../applications/version-management/bazaar/tools.nix) {
5192     inherit bazaar;
5193   };
5195   beast = callPackage ../applications/audio/beast {
5196     inherit (gnome) libgnomecanvas libart_lgpl;
5197   };
5199   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee { };
5201   bitlbeeOtr = callPackage ../applications/networking/instant-messengers/bitlbee-otr { };
5203   # commented out because it's using the new configuration style proposal which is unstable
5204   #biew = import ../applications/misc/biew {
5205   #  inherit lib stdenv fetchurl ncurses;
5206   #};
5208   # only to be able to compile blender - I couldn't compile the default openal software
5209   # Perhaps this can be removed - don't know which one openal{,soft} is better
5210   freealut_soft = callPackage ../development/libraries/freealut {
5211     openal = openalSoft;  };
5213   blender = callPackage ../applications/misc/blender/2.49.nix {
5214     python = python26Base;
5215     stdenv = stdenv2;
5216   };
5218   blender_2_50 = lowPrio (import ../applications/misc/blender {
5219     inherit fetchurl cmake mesa gettext libjpeg libpng zlib openal SDL openexr
5220       libsamplerate libtiff ilmbase;
5221     inherit (xlibs) libXi;
5222     python = python31Base;
5223     stdenv = stdenv2;
5224   });
5226   bmp = callPackage ../applications/audio/bmp {
5227     inherit (gnome) esound libglade;
5228   };
5230   bmp_plugin_musepack = callPackage ../applications/audio/bmp-plugins/musepack { };
5232   bmp_plugin_wma = callPackage ../applications/audio/bmp-plugins/wma { };
5234   bvi = callPackage ../applications/editors/bvi { };
5236   calibre = callPackage ../applications/misc/calibre {
5237     python = python26Full;
5238     inherit (python26Packages) mechanize lxml dateutil cssutils beautifulsoap;
5239   };
5241   carrier = builderDefsPackage (import ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
5242     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 openssl nss
5243       gtkspell aspell gettext ncurses avahi dbus dbus_glib python
5244       libtool automake autoconf;
5245     GStreamer = gst_all.gstreamer;
5246     inherit (gtkLibs) gtk glib;
5247     inherit (gnome) startupnotification GConf ;
5248     inherit (xlibs) libXScrnSaver scrnsaverproto libX11 xproto kbproto;
5249   };
5250   funpidgin = carrier;
5252   cddiscid = callPackage ../applications/audio/cd-discid { };
5254   cdparanoia = cdparanoiaIII;
5256   cdparanoiaIII = callPackage ../applications/audio/cdparanoia { };
5258   cdrtools = callPackage ../applications/misc/cdrtools { };
5260   chatzilla =
5261     xulrunnerWrapper {
5262       launcher = "chatzilla";
5263       application = callPackage ../applications/networking/irc/chatzilla { };
5264     };
5266   chrome = callPackage ../applications/networking/browsers/chromium {
5267     inherit (gtkLibs) gtk glib pango atk;
5268     inherit (gnome) GConf;
5269     patchelf = patchelf06;
5270     libjpeg = libjpeg62;
5271   };
5273   chromeWrapper = wrapFirefox chrome "chrome" "";
5275   cinelerra = callPackage ../applications/video/cinelerra {
5276     fftw = fftwSinglePrec;
5277     inherit (gnome) esound;
5278   };
5280   compizBase = (builderDefsPackage (import ../applications/window-managers/compiz/0.8.0.nix)) {
5281     inherit lib stringsWithDeps builderDefs;
5282     inherit fetchurl stdenv pkgconfig libpng mesa perl perlXMLParser libxslt gettext
5283       intltool binutils;
5284     inherit (xorg) libXcomposite libXfixes libXdamage libXrandr
5285       libXinerama libICE libSM libXrender xextproto compositeproto fixesproto
5286       damageproto randrproto xineramaproto renderproto kbproto xproto libX11
5287       libxcb;
5288     inherit (gnome) startupnotification libwnck GConf;
5289     inherit (gtkLibs) gtk;
5290     inherit (gnome) libgnome libgnomeui metacity
5291       glib pango libglade libgtkhtml gtkhtml
5292       libgnomecanvas libgnomeprint
5293       libgnomeprintui gnomepanel;
5294     gnomegtk = gnome.gtk;
5295     inherit librsvg fuse;
5296     inherit dbus dbus_glib;
5297   };
5299   compiz = compizBase.passthru.function (x : x // {
5300     extraConfigureFlags = getConfig ["compiz" "extraConfigureFlags"] [];
5301   });
5303   compizFusion = callPackage ../applications/window-managers/compiz-fusion {
5304     version = getConfig ["compizFusion" "version"] "0.7.8";
5305     inherit (gnome) startupnotification libwnck GConf;
5306     inherit (gnome) libgnome libgnomeui metacity
5307       glib pango libglade libgtkhtml gtkhtml
5308       libgnomecanvas libgnomeprint
5309       libgnomeprintui gnomepanel gnomedesktop;
5310     inherit pyrex;
5311     gnomegtk = gnome.gtk;
5312   };
5314   compizExtra = callPackage ../applications/window-managers/compiz/extra.nix {
5315     inherit (gnome) GConf;
5316   };
5318   cinepaint = callPackage ../applications/graphics/cinepaint {
5319     fltk = fltk11;
5320   };
5322   codeville = builderDefsPackage (import ../applications/version-management/codeville/0.8.0.nix) {
5323     inherit makeWrapper;
5324     python = pythonFull;
5325   };
5327   comical = callPackage ../applications/graphics/comical {
5328     wxGTK = wxGTK26;
5329   };
5331   conkeror = xulrunnerWrapper {
5332     launcher = "conkeror";
5333     application = callPackage ../applications/networking/browsers/conkeror { };
5334   };
5336   cuneiform = builderDefsPackage (import ../tools/graphics/cuneiform) {
5337     inherit cmake patchelf;
5338     imagemagick=imagemagick;
5339   };
5341   cvs = callPackage ../applications/version-management/cvs { };
5343   cvsps = callPackage ../applications/version-management/cvsps { };
5345   cvs2svn = callPackage ../applications/version-management/cvs2svn { };
5347   d4x = callPackage ../applications/misc/d4x { };
5349   darcs = haskellPackages.darcs;
5351   dia = callPackage ../applications/graphics/dia { };
5353   djvulibre = callPackage ../applications/misc/djvulibre { };
5355   djview4 = callPackage ../applications/graphics/djview { };
5357   dmenu = callPackage ../applications/misc/dmenu { };
5359   dmtx = builderDefsPackage (import ../tools/graphics/dmtx) {
5360     inherit libpng libtiff libjpeg imagemagick librsvg
5361       pkgconfig bzip2 zlib libtool freetype fontconfig
5362       ghostscript jasper;
5363     inherit (xlibs) libX11;
5364   };
5366   dvdauthor = callPackage ../applications/video/dvdauthor { };
5368   dwm = callPackage ../applications/window-managers/dwm {
5369     patches = getConfig [ "dwm" "patches" ] [];
5370   };
5372   eaglemode = callPackage ../applications/misc/eaglemode { };
5374   eclipse = callPackage ../applications/editors/eclipse {
5375     # GTK 2.18 gives glitches such as mouse clicks on buttons not
5376     # working correctly.
5377     inherit (gtkLibs216) glib gtk;
5378   };
5379   eclipseLatest = eclipse.override { version = "latest"; };
5381   ed = callPackage ../applications/editors/ed { };
5383   elinks = callPackage ../applications/networking/browsers/elinks { };
5385   elvis = callPackage ../applications/editors/elvis { };
5387   emacs = emacs23;
5389   emacs22 = callPackage ../applications/editors/emacs-22 {
5390     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5391     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5392   };
5394   emacs23 = callPackage ../applications/editors/emacs-23 {
5395     # use override to select the appropriate gui toolkit
5396     libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
5397     Xaw3d = null;
5398     gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
5399     # TODO: these packages don't build on Darwin.
5400     gconf = if stdenv.isDarwin then null else gnome.GConf;
5401     librsvg = if stdenv.isDarwin then null else librsvg;
5402   };
5404   emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
5405     xawSupport = getPkgConfig "emacs" "xawSupport" false;
5406     xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
5407     gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
5408     xftSupport = getPkgConfig "emacs" "xftSupport" true;
5409     dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
5410   });
5412   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
5413     inherit emacs;
5415     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
5417     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
5419     cua = callPackage ../applications/editors/emacs-modes/cua { };
5421     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
5423     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
5425     emacsSessionManagement = callPackage ../applications/editors/emacs-modes/session-management-for-emacs { };
5427     emacsw3m = callPackage ../applications/editors/emacs-modes/emacs-w3m { };
5429     emms = callPackage ../applications/editors/emacs-modes/emms { };
5431     jdee = callPackage ../applications/editors/emacs-modes/jdee {
5432       # Requires Emacs 23, for `avl-tree'.
5433     };
5435     stratego = callPackage ../applications/editors/emacs-modes/stratego { };
5437     haskellMode = callPackage ../applications/editors/emacs-modes/haskell { };
5439     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
5441     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
5443     magit = callPackage ../applications/editors/emacs-modes/magit { };
5445     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
5447     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
5449     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
5450     # we want it to have higher precedence.
5451     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
5453     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
5455     proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
5457     quack = callPackage ../applications/editors/emacs-modes/quack { };
5459     remember = callPackage ../applications/editors/emacs-modes/remember { };
5461     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
5463     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
5464   };
5466   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
5467   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
5469   epdfview = callPackage ../applications/misc/epdfview { };
5471   espeak = callPackage ../applications/audio/espeak { };
5473   evince = callPackage ../applications/misc/evince {
5474     inherit (gnome) gnomedocutils gnomeicontheme libgnome
5475       libgnomeui libglade glib gtk scrollkeeper gnome_keyring;
5476   };
5478   evolution_data_server = (newScope (gnome // gtkLibs))
5479   ../servers/evolution-data-server {
5480   };
5482   exrdisplay = callPackage ../applications/graphics/exrdisplay {
5483     fltk = fltk20;
5484   };
5486   fbpanel = callPackage ../applications/window-managers/fbpanel { };
5488   fetchmail = import ../applications/misc/fetchmail {
5489     inherit stdenv fetchurl openssl;
5490   };
5492   fossil = callPackage ../applications/version-management/fossil { };
5494   grass = import ../applications/misc/grass {
5495     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
5496       libXaw libXrender;
5497     inherit getConfig composableDerivation stdenv fetchurl
5498       lib flex bison cairo fontconfig
5499       gdal zlib ncurses gdbm proj pkgconfig swig
5500       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
5501       readline sqlite tcl tk libtiff freetype ffmpeg makeWrapper wxGTK;
5502     fftw = fftwSinglePrec;
5503     motif = lesstif;
5504     opendwg = libdwg;
5505     wxPython = wxPython28;
5506   };
5508   grip = callPackage ../applications/misc/grip {
5509     inherit (gnome) libgnome libgnomeui vte;
5510   };
5512   wavesurfer = callPackage ../applications/misc/audio/wavesurfer { };
5514   wireshark = callPackage ../applications/networking/sniffers/wireshark { };
5516   wvdial = callPackage ../os-specific/linux/wvdial { };
5518   fbida = builderDefsPackage ../applications/graphics/fbida {
5519     inherit libjpeg libexif giflib libtiff libpng
5520       imagemagick ghostscript which curl pkgconfig
5521       freetype fontconfig;
5522   };
5524   fdupes = callPackage ../tools/misc/fdupes { };
5526   feh = callPackage ../applications/graphics/feh { };
5528   firefox = firefox36Pkgs.firefox;
5529   firefoxWrapper = firefox36Wrapper;
5531   firefox35Pkgs = callPackage ../applications/networking/browsers/firefox/3.5.nix {
5532     inherit (gtkLibs) gtk pango;
5533     inherit (gnome) libIDL;
5534   };
5536   firefox35Wrapper = wrapFirefox firefox35Pkgs.firefox "firefox" "";
5538   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
5539     inherit (gtkLibs) gtk pango;
5540     inherit (gnome) libIDL;
5541   };
5543   firefox36Wrapper = wrapFirefox firefox36Pkgs.firefox "firefox" "";
5545   flac = callPackage ../applications/audio/flac { };
5547   flashplayer = flashplayer10;
5549   flashplayer9 = (
5550     import ../applications/networking/browsers/mozilla-plugins/flashplayer-9 {
5551       inherit fetchurl stdenv zlib alsaLib nss nspr fontconfig freetype expat;
5552       inherit (xlibs) libX11 libXext libXrender libXt;
5553       inherit (gtkLibs) gtk glib pango atk;
5554     });
5556   flashplayer10 = (
5557     import ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
5558       inherit fetchurl stdenv zlib alsaLib curl nss nspr fontconfig freetype expat cairo;
5559       inherit (xlibs) libX11 libXext libXrender libXt ;
5560       inherit (gtkLibs) gtk glib pango atk;
5561       debug = getConfig ["flashplayer" "debug"] false;
5562     });
5564   flite = callPackage ../applications/misc/flite { };
5566   freemind = callPackage ../applications/misc/freemind {
5567     jdk = jdk;
5568     jre = jdk;
5569   };
5571   freepv = callPackage ../applications/graphics/freepv { };
5573   xfontsel = callPackage ../applications/misc/xfontsel { };
5574   xlsfonts = callPackage ../applications/misc/xlsfonts { };
5576   fspot = callPackage ../applications/graphics/f-spot {
5577     inherit (gnome) libgnome libgnomeui;
5578     gtksharp = gtksharp1;
5579   };
5581   gimp = callPackage ../applications/graphics/gimp {
5582     inherit (gnome) gtk libart_lgpl;
5583   };
5585   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
5586     inherit pkgs gimp;
5587   });
5589   gitAndTools = recurseIntoAttrs (import ../applications/version-management/git-and-tools {
5590     inherit pkgs;
5591   });
5592   git = gitAndTools.git;
5593   gitFull = gitAndTools.gitFull;
5595   gnucash = callPackage ../applications/office/gnucash {
5596     inherit (gnome) gtk glib libglade libgnomeui libgtkhtml gtkhtml
5597       libgnomeprint;
5598     gconf = gnome.GConf;
5599   };
5601   qcad = callPackage ../applications/misc/qcad { };
5603   qjackctl = callPackage ../applications/audio/qjackctl {
5604     qt4 = qt4;
5605   };
5607   gkrellm = callPackage ../applications/misc/gkrellm { };
5609   gnash = callPackage ../applications/video/gnash {
5610     inherit (gnome) gtkglext;
5611     inherit (gst_all) gstreamer gstPluginsBase gstPluginsGood gstFfmpeg;
5612   };
5614   gnome_mplayer = callPackage ../applications/video/gnome-mplayer {
5615     inherit (gnome) GConf;
5616   };
5618   gnunet = callPackage ../applications/networking/p2p/gnunet {
5619     inherit (gnome) gtk libglade;
5620     gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
5621   };
5623   gocr = callPackage ../applications/graphics/gocr { };
5625   gphoto2 = callPackage ../applications/misc/gphoto2 { };
5627   gphoto2fs = builderDefsPackage ../applications/misc/gphoto2/gphotofs.nix {
5628     inherit libgphoto2 fuse pkgconfig glib;
5629   };
5631   graphicsmagick = callPackage ../applications/graphics/graphicsmagick { };
5633   graphicsmagick137 = callPackage ../applications/graphics/graphicsmagick/1.3.7.nix { };
5635   gtkpod = callPackage ../applications/audio/gtkpod {
5636     inherit (gnome) libglade;
5637   };
5639   qrdecode = builderDefsPackage (import ../tools/graphics/qrdecode) {
5640     inherit libpng libcv;
5641   };
5643   qrencode = builderDefsPackage (import ../tools/graphics/qrencode) {
5644     inherit libpng pkgconfig;
5645   };
5647   gecko_mediaplayer = callPackage ../applications/networking/browsers/mozilla-plugins/gecko-mediaplayer {
5648     inherit (gnome) GConf;
5649     browser = firefox;
5650   };
5652   geeqie = callPackage ../applications/graphics/geeqie { };
5654   gqview = callPackage ../applications/graphics/gqview { };
5656   googleearth = callPackage_i686 ../applications/misc/googleearth { };
5658   gosmore = builderDefsPackage ../applications/misc/gosmore {
5659     inherit fetchsvn curl pkgconfig libxml2;
5660     inherit (gtkLibs) gtk;
5661   };
5663   gpsbabel = callPackage ../applications/misc/gpsbabel { };
5665   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
5667   gpsd = callPackage ../servers/gpsd {
5668     # We need a Python with NCurses bindings.
5669     python = pythonFull;
5670   };
5672   gv = callPackage ../applications/misc/gv { };
5674   hello = callPackage ../applications/misc/hello/ex-2 { };
5676   homebank = callPackage ../applications/office/homebank { };
5678   htmldoc = callPackage ../applications/misc/htmldoc {
5679     fltk = fltk11;
5680   };
5682   hugin = callPackage ../applications/graphics/hugin {
5683     stdenv = stdenv2;
5684   };
5686   i810switch = callPackage ../os-specific/linux/i810switch { };
5688   icecat3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5689     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5690       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5691       wirelesstools;
5692     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5693     inherit (xlibs) pixman;
5694     inherit (pythonPackages) ply;
5695   });
5697   icecatXulrunner3 = lowPrio (import ../applications/networking/browsers/icecat-3 {
5698     application = "xulrunner";
5699     inherit fetchurl stdenv xz pkgconfig perl zip libjpeg libpng zlib cairo
5700       python dbus dbus_glib freetype fontconfig bzip2 xlibs alsaLib libnotify
5701       wirelesstools;
5702     inherit (gnome) libIDL libgnomeui gnomevfs gtk pango;
5703     inherit (xlibs) pixman;
5704     inherit (pythonPackages) ply;
5705   });
5707   icecat3Xul =
5708     (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
5709        [ icecat3 icecatXulrunner3 ])
5710     // { inherit (icecat3) gtk isFirefox3Like meta; };
5712   icecatWrapper = wrapFirefox icecat3Xul "icecat" "";
5714   icewm = callPackage ../applications/window-managers/icewm { };
5716   id3v2 = callPackage ../applications/audio/id3v2 { };
5718   ikiwiki = callPackage ../applications/misc/ikiwiki {
5719     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
5720       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
5721       RpcXML XMLSimple PerlMagick;
5722     gitSupport = getPkgConfig "ikiwiki" "git" false;
5723     monotoneSupport = getPkgConfig "ikiwiki" "monotone" false;
5724     extraUtils = [];
5725   };
5727   imagemagick = callPackage ../applications/graphics/ImageMagick {
5728     tetex = null;
5729     librsvg = null;
5730   };
5732   imagemagickBig = callPackage ../applications/graphics/ImageMagick { };
5734   # Impressive, formerly known as "KeyJNote".
5735   impressive = callPackage ../applications/office/impressive {
5737     # XXX These are the PyOpenGL dependencies, which we need here.
5739     inherit (pythonPackages) pyopengl;  };
5741   inkscape = callPackage ../applications/graphics/inkscape {
5742     inherit (pythonPackages) lxml;
5743     inherit (gtkLibs) gtk glib glibmm gtkmm;
5744   };
5746   ion3 = callPackage ../applications/window-managers/ion-3 {
5747     lua = lua5;
5748   };
5750   iptraf = callPackage ../applications/networking/iptraf { };
5752   irssi = callPackage ../applications/networking/irc/irssi { };
5754   jackmeter = callPackage ../applications/audio/jackmeter { };
5756   jedit = callPackage ../applications/editors/jedit { };
5758   jigdo = callPackage ../applications/misc/jigdo { };
5760   joe = callPackage ../applications/editors/joe { };
5762   jwm = callPackage ../applications/window-managers/jwm { };
5764   kbluetooth = newScope pkgs.kde4 ../tools/bluetooth/kbluetooth { };
5766   kermit = callPackage ../tools/misc/kermit { };
5768   kino = import ../applications/video/kino {
5769     inherit fetchurl stdenv pkgconfig libxml2 perl perlXMLParser
5770       libdv libraw1394 libavc1394 libiec61883 x11 gettext cairo; /* libavformat */
5771     inherit libsamplerate ffmpeg;
5772     inherit (gnome) libglade gtk glib;
5773     inherit (xlibs) libXv libX11;
5774   };
5776   koffice = newScope pkgs.kde4 ../applications/office/koffice { };
5778   konversation = newScope pkgs.kde4 ../applications/networking/irc/konversation { };
5780   krename = newScope pkgs.kde4 ../applications/misc/krename { };
5782   ktorrent = newScope pkgs.kde4 ../applications/networking/ktorrent { };
5784   lame = callPackage ../applications/audio/lame { };
5786   larswm = callPackage ../applications/window-managers/larswm { };
5788   ladspaH = callPackage ../applications/audio/ladspa-plugins/ladspah.nix { };
5790   ladspaPlugins = callPackage ../applications/audio/ladspa-plugins {
5791     fftw = fftwSinglePrec;
5792   };
5794   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
5795     inherit (gnome) libglade;
5796   };
5798   links = callPackage ../applications/networking/browsers/links { };
5800   ledger = callPackage ../applications/office/ledger { };
5802   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
5803     inherit fetchurl stdenv bzip2 zlib libjpeg libpng libtiff
5804       gpm openssl SDL SDL_image SDL_net pkgconfig;
5805     inherit (xlibs) libX11 libXau xproto libXt;
5806   };
5808   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
5810   lynx = callPackage ../applications/networking/browsers/lynx { };
5812   lyx = callPackage ../applications/misc/lyx {
5813    qt = qt4;
5814   };
5816   matchbox = callPackage ../applications/window-managers/matchbox { };
5818   meld = callPackage ../applications/version-management/meld {
5819     inherit (gnome) scrollkeeper;
5820     pygtk = pyGtkGlade;
5821   };
5823   mercurial = callPackage ../applications/version-management/mercurial {
5824     guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
5825     python = # allow cloning sources from https servers.
5826       if getConfig ["mercurial" "httpsSupport"] true
5827       then pythonFull
5828       else pythonBase;
5829   };
5831   merkaartor = callPackage ../applications/misc/merkaartor {
5832     qt = qt4;
5833   };
5835   meshlab = callPackage ../applications/graphics/meshlab {
5836     qt = qt4;
5837   };
5839   midori = builderDefsPackage (import ../applications/networking/browsers/midori) {
5840     inherit imagemagick intltool python pkgconfig webkit libxml2
5841       which gettext makeWrapper file libidn sqlite docutils libnotify
5842       vala dbus_glib;
5843     inherit (gtkLibs) gtk glib;
5844     inherit (gnome28) gtksourceview;
5845     inherit (webkit.passthru.args) libsoup;
5846     inherit (xlibs) kbproto xproto libXScrnSaver scrnsaverproto;
5847   };
5849   minicom = callPackage ../tools/misc/minicom { };
5851   mmex = callPackage ../applications/office/mmex { };
5853   monodevelop = callPackage ../applications/editors/monodevelop {
5854     inherit (gnome) gnomevfs libbonobo libglade libgnome GConf glib gtk;
5855     mozilla = firefox;
5856     gtksharp = gtksharp2;
5857   };
5859   monodoc = callPackage ../applications/editors/monodoc {
5860     gtksharp = gtksharp1;
5861   };
5863   monotone = callPackage ../applications/version-management/monotone {
5864     lua = lua5;
5865   };
5867   monotoneViz = builderDefsPackage (import ../applications/version-management/monotone-viz/mtn-head.nix) {
5868     inherit ocaml lablgtk graphviz pkgconfig autoconf automake libtool;
5869     inherit (gnome) gtk libgnomecanvas glib;
5870   };
5872   mozilla = callPackage ../applications/networking/browsers/mozilla {
5873     inherit (gnome) libIDL;
5874   };
5876   mozplugger = builderDefsPackage (import ../applications/networking/browsers/mozilla-plugins/mozplugger) {
5877     inherit firefox;
5878     inherit (xlibs) libX11 xproto;
5879   };
5881   mpc123 = callPackage ../applications/audio/mpc123 { };
5883   mpg321 = callPackage ../applications/audio/mpg321 { };
5885   MPlayer = callPackage ../applications/video/MPlayer { };
5887   MPlayerPlugin = browser:
5888     import ../applications/networking/browsers/mozilla-plugins/mplayerplug-in {
5889       inherit browser;
5890       inherit fetchurl stdenv pkgconfig gettext;
5891       inherit (xlibs) libXpm;
5892       # !!! should depend on MPlayer
5893     };
5895   mrxvt = callPackage ../applications/misc/mrxvt { };
5897   multisync = callPackage ../applications/misc/multisync {
5898     inherit (gnome) gtk glib ORBit2 libbonobo libgnomeui GConf;
5899   };
5901   mutt = callPackage ../applications/networking/mailreaders/mutt { };
5903   msmtp = callPackage ../applications/networking/msmtp { };
5905   mupdf = callPackage ../applications/misc/mupdf {
5906   };
5908   mythtv = callPackage ../applications/video/mythtv {
5909     qt3 = qt3mysql;
5910   };
5912   nano = callPackage ../applications/editors/nano { };
5914   navipowm = callPackage ../applications/misc/navipowm {
5915   };
5917   navit = callPackage ../applications/misc/navit { };
5919   nedit = callPackage ../applications/editors/nedit {
5920       motif = lesstif;
5921   };
5923   netsurfBrowser = netsurf.browser;
5924   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
5926   nvi = callPackage ../applications/editors/nvi { };
5928   openjump = callPackage ../applications/misc/openjump { };
5930   openoffice = callPackage ../applications/office/openoffice {
5931     inherit (perlPackages) ArchiveZip CompressZlib;
5932     inherit (gnome) GConf ORBit2;
5933     neon = neon029;
5934     stdenv = stdenv2;
5935   };
5937   go_oo = callPackage ../applications/office/openoffice/go-oo.nix {
5938     inherit (perlPackages) ArchiveZip CompressZlib;
5939     inherit (gnome) GConf ORBit2;
5940     neon = neon029;
5941     stdenv = stdenv2;
5942   };
5944   opera = callPackage ../applications/networking/browsers/opera {
5945     qt = qt3;
5946   };
5948   pan = callPackage ../applications/networking/newsreaders/pan {
5949     gmime = gmime_2_2;
5950     spellChecking = false;
5951   };
5953   panotools = callPackage ../applications/graphics/panotools { };
5955   pavucontrol = callPackage ../applications/audio/pavucontrol {
5956     inherit (gtkLibs) gtkmm;
5957     inherit (gnome) libglademm;
5958   };
5960   paraview = callPackage ../applications/graphics/paraview {
5961     stdenv = stdenv2;
5962   };
5964   partitionManager = newScope pkgs.kde4 ../tools/misc/partition-manager { };
5966   pdftk = callPackage ../tools/typesetting/pdftk { };
5968   pidgin = import ../applications/networking/instant-messengers/pidgin {
5969     inherit fetchurl stdenv pkgconfig perl perlXMLParser libxml2 nss nspr farsight2 python
5970       gtkspell aspell gettext ncurses avahi dbus dbus_glib lib intltool libidn;
5971     openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
5972     gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
5973     GStreamer = gst_all.gstreamer;
5974     inherit (gtkLibs) gtk;
5975     inherit (gnome) startupnotification;
5976     inherit (xlibs) libXScrnSaver;
5977     inherit (gst_all) gstPluginsBase;
5978   };
5980   pidginlatex = callPackage ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex {
5981     imagemagick = imagemagickBig;
5982   };
5984   pidginlatexSF = builderDefsPackage
5985     (import ../applications/networking/instant-messengers/pidgin-plugins/pidgin-latex/pidgin-latex-sf.nix)
5986     {
5987       inherit pkgconfig pidgin texLive imagemagick which;
5988       inherit (gtkLibs) glib gtk;
5989     };
5991   pidginmsnpecan = callPackage ../applications/networking/instant-messengers/pidgin-plugins/msn-pecan { };
5993   pidginotr = callPackage ../applications/networking/instant-messengers/pidgin-plugins/otr { };
5995   pidginsipe = callPackage ../applications/networking/instant-messengers/pidgin-plugins/sipe { };
5997   pinfo = callPackage ../applications/misc/pinfo { };
5999   pinta = callPackage ../applications/graphics/pinta {
6000     gtksharp = gtksharp2;
6001   };
6003   pqiv = callPackage ../applications/graphics/pqiv { };
6005   # perhaps there are better apps for this task? It's how I had configured my preivous system.
6006   # And I don't want to rewrite all rules
6007   procmail = callPackage ../applications/misc/procmail { };
6009   pstree = callPackage ../applications/misc/pstree { };
6011   pythonmagick = callPackage ../applications/graphics/PythonMagick { };
6013   qemu = callPackage ../applications/virtualization/qemu/0.12.3.nix { };
6015   qemuSVN = callPackage ../applications/virtualization/qemu/svn-6642.nix { };
6017   qemuImage = callPackage ../applications/virtualization/qemu/linux-img { };
6019   qtpfsgui = callPackage ../applications/graphics/qtpfsgui { };
6021   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
6023   ratpoison = callPackage ../applications/window-managers/ratpoison { };
6025   rawtherapee = callPackage ../applications/graphics/rawtherapee {
6026     inherit (gtkLibs) gtk gtkmm;
6027   };
6029   rcs = callPackage ../applications/version-management/rcs { };
6031   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
6033   RealPlayer = callPackage ../applications/video/RealPlayer {
6034       inherit (gtkLibs) glib pango atk gtk;
6035       libstdcpp5 = gcc33.gcc;
6036   };
6038   rekonq = newScope pkgs.kde4 ../applications/networking/browsers/rekonq { };
6040   rsibreak = newScope pkgs.kde4 ../applications/misc/rsibreak { };
6042   rsync = callPackage ../applications/networking/sync/rsync {
6043     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
6044   };
6046   rxvt = callPackage ../applications/misc/rxvt { };
6048   # = urxvt
6049   rxvt_unicode = callPackage ../applications/misc/rxvt_unicode {
6050     perlSupport = false;  };
6052   sakura = callPackage ../applications/misc/sakura {
6053     inherit (gnome) vte;
6054   };
6056   sbagen = callPackage ../applications/misc/sbagen { };
6058   scribus = callPackage ../applications/office/scribus {
6059     inherit (gnome) libart_lgpl;
6060     qt = qt3;
6061   };
6063   seeks = callPackage ../tools/networking/p2p/seeks { };
6065   seg3d = callPackage ../applications/graphics/seg3d {
6066     wxGTK = wxGTK28.override {
6067       unicode = false;
6068   };
6069   };
6071   semnotes = newScope pkgs.kde4 ../applications/misc/semnotes { };
6073   skype_linux = callPackage_i686 ../applications/networking/skype { };
6075   slim = callPackage ../applications/display-managers/slim { };
6077   sndBase = builderDefsPackage (import ../applications/audio/snd) {
6078     inherit fetchurl stdenv stringsWithDeps lib fftw;
6079     inherit pkgconfig gmp gettext;
6080     inherit (xlibs) libXpm libX11;
6081     inherit (gtkLibs) gtk glib;
6082   };
6084   snd = sndBase.passthru.function {
6085     inherit guile mesa libtool jackaudio alsaLib;
6086   };
6088   sonicVisualizer = callPackage ../applications/audio/sonic-visualizer {
6089     inherit (vamp) vampSDK;
6090     qt = qt4;
6091   };
6093   sox = callPackage ../applications/misc/audio/sox { };
6095   stumpwm = builderDefsPackage (import ../applications/window-managers/stumpwm) {
6096     inherit texinfo;
6097     clisp = clisp_2_44_1;
6098   };
6100   subversion = callPackage ../applications/version-management/subversion/default.nix {
6101     neon = neon029;
6102     bdbSupport = getConfig ["subversion" "bdbSupport"] true;
6103     httpServer = getConfig ["subversion" "httpServer"] false;
6104     httpSupport = getConfig ["subversion" "httpSupport"] true;
6105     sslSupport = getConfig ["subversion" "sslSupport"] true;
6106     pythonBindings = getConfig ["subversion" "pythonBindings"] false;
6107     perlBindings = getConfig ["subversion" "perlBindings"] false;
6108     javahlBindings = supportsJDK && getConfig ["subversion" "javahlBindings"] false;
6109     compressionSupport = getConfig ["subversion" "compressionSupport"] true;
6110     httpd = apacheHttpd;
6111   };
6113   svk = perlPackages.SVK;
6115   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed {
6116     sslSupport = true;
6117     gpgSupport = true;
6118   };
6120   # linux only by now
6121   synergy = callPackage ../applications/misc/synergy { };
6123   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
6124     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
6125       pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
6126       numpy pyasn1;
6127     mock = pythonPackages.mock060;
6128   };
6130   tailor = builderDefsPackage (import ../applications/version-management/tailor) {
6131     inherit makeWrapper python;
6132   };
6134   tangogps = callPackage ../applications/misc/tangogps {
6135     gconf = gnome.GConf;
6136   };
6138   /* does'nt work yet i686-linux only (32bit version)
6139   teamspeak_client = callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
6140   */
6142   taskJuggler = callPackage ../applications/misc/taskjuggler {
6143     qt = qt3;
6145     # KDE support is not working yet.
6146     inherit (kde3) kdelibs kdebase;
6147     withKde = getPkgConfig "taskJuggler" "kde" false;
6148   };
6150   thinkingRock = callPackage ../applications/misc/thinking-rock { };
6152   thunderbird = thunderbird3;
6154   thunderbird2 = callPackage ../applications/networking/mailreaders/thunderbird/2.x.nix {
6155     inherit (gnome) libIDL;
6156   };
6158   thunderbird3 = callPackage ../applications/networking/mailreaders/thunderbird/3.x.nix {
6159     inherit (gnome) libIDL;
6160   };
6162   timidity = callPackage ../tools/misc/timidity { };
6164   tkcvs = callPackage ../applications/version-management/tkcvs { };
6166   tla = callPackage ../applications/version-management/arch { };
6168   transmission = callPackage ../applications/networking/p2p/transmission { };
6170   twinkle = callPackage ../applications/networking/twinkle {
6171     qt = qt3;
6172     boost = boostFull;
6173   };
6175   unison = callPackage ../applications/networking/sync/unison { };
6177   uucp = callPackage ../tools/misc/uucp { };
6179   uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
6180     inherit pkgconfig webkit makeWrapper;
6181     inherit (gtkLibs) gtk glib;
6182     inherit (xlibs) libX11;
6183     libsoup = gnome28.libsoup_2_31;
6184   };
6186   valknut = callPackage ../applications/networking/p2p/valknut {
6187     qt = qt3;
6188   };
6190   veracity = callPackage ../applications/version-management/veracity {};
6192   viewMtn = builderDefsPackage (import ../applications/version-management/viewmtn/0.10.nix)
6193   {
6194     inherit
6195       monotone flup cheetahTemplate highlight ctags
6196       makeWrapper graphviz which python;
6197   };
6199   vim = callPackage ../applications/editors/vim { };
6201   vimHugeX = vim_configurable;
6203   vim_configurable = import ../applications/editors/vim/configurable.nix {
6204     inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib;
6205     inherit (pkgs.xlibs) libX11 libXext libSM libXpm
6206         libXt libXaw libXau libXmu libICE;
6207     inherit (pkgs.gtkLibs) glib gtk;
6208     features = "huge"; # one of  tiny, small, normal, big or huge
6209     # optional features by passing
6210     # python
6211     # TODO mzschemeinterp perlinterp
6212     inherit (pkgs) python perl tcl ruby /*x11*/;
6214     lua = pkgs.lua5;
6216     # optional features by flags
6217     flags = [ "X11" ]; # only flag "X11" by now
6218   };
6220   virtualgl = callPackage ../tools/X11/virtualgl { };
6222   vlc = callPackage ../applications/video/vlc {
6223     dbus = dbus.libs;
6224     alsa = alsaLib;
6225     lua = lua5;
6226   };
6228   vnstat = callPackage ../applications/networking/vnstat { };
6230   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
6232   vwm = callPackage ../applications/window-managers/vwm { };
6234   w3m = callPackage ../applications/networking/browsers/w3m {
6235     graphicsSupport = false;
6236   };
6238   weechat = callPackage ../applications/networking/irc/weechat { };
6240   wings = callPackage ../applications/graphics/wings { };
6242   # I'm keen on wmiimenu only  >wmii-3.5 no longer has it...
6243   wmiimenu = import ../applications/window-managers/wmii31 {
6244     libixp = libixp_for_wmii;
6245     inherit fetchurl /* fetchhg */ stdenv gawk;
6246     inherit (xlibs) libX11;
6247   };
6249   wmiiSnap = import ../applications/window-managers/wmii {
6250     libixp = libixp_for_wmii;
6251     inherit fetchurl /* fetchhg */ stdenv gawk;
6252     inherit (xlibs) libX11 xextproto libXt libXext;
6253     includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
6254   };
6256   wordnet = callPackage ../applications/misc/wordnet { };
6258   wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox/wrapper.nix {
6259     inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName;
6260     plugins =
6261       let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
6262       in
6263        ([]
6264         ++ lib.optional (!enableAdobeFlash) gnash
6265         ++ lib.optional enableAdobeFlash flashplayer
6266         # RealPlayer is disabled by default for legal reasons.
6267         ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
6268         ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
6269         ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
6270         ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
6271        );
6272   };
6274   x11vnc = callPackage ../tools/X11/x11vnc { };
6276   x2vnc = callPackage ../tools/X11/x2vnc { };
6278   xaos = builderDefsPackage (import ../applications/graphics/xaos) {
6279     inherit (xlibs) libXt libX11 libXext xextproto xproto;
6280     inherit gsl aalib zlib libpng intltool gettext perl;
6281   };
6283   xara = callPackage ../applications/graphics/xara {
6284     wxGTK = wxGTK26;
6285   };
6287   xawtv = callPackage ../applications/video/xawtv { };
6289   xchat = callPackage ../applications/networking/irc/xchat { };
6291   xchm = callPackage ../applications/misc/xchm { };
6293   xcompmgr = callPackage ../applications/window-managers/xcompmgr { };
6295   xdg_utils = callPackage ../tools/X11/xdg-utils { };
6297   xen = callPackage ../applications/virtualization/xen {
6298     python = pythonFull;
6299   };
6301   xfig = callPackage ../applications/graphics/xfig {
6302     stdenv = overrideGCC stdenv gcc34;
6303   };
6305   xineUI = callPackage ../applications/video/xine-ui { };
6307   xmms = callPackage ../applications/audio/xmms {
6308     inherit (gnome) esound;
6309     inherit (gtkLibs1x) glib gtk;
6310     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
6311   };
6313   xneur = callPackage ../applications/misc/xneur {
6314     GStreamer=gst_all.gstreamer;
6315     inherit (gtkLibs) glib gtk pango atk;
6316   };
6318   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix {
6319     GStreamer = gst_all.gstreamer;
6320   };
6322   xournal = callPackage ../applications/graphics/xournal {
6323     inherit (gtkLibs) gtk atk pango glib;
6324     inherit (gnome) libgnomeprint libgnomeprintui
6325       libgnomecanvas;
6326   };
6328   xpdf = callPackage ../applications/misc/xpdf {
6329     motif = lesstif;
6330     base14Fonts = "${ghostscript}/share/ghostscript/fonts";
6331   };
6333   libxpdf = callPackage ../applications/misc/xpdf/libxpdf.nix {
6334   };
6336   xpra = callPackage ../tools/X11/xpra {
6337     pyrex = pyrex095;
6338   };
6340   xscreensaver = callPackage ../applications/graphics/xscreensaver {
6341     inherit (gnome) libglade;
6342   };
6344   xterm = callPackage ../applications/misc/xterm { };
6346   xtrace = callPackage ../tools/X11/xtrace { };
6348   xlaunch = callPackage ../tools/X11/xlaunch { };
6350   xmacro = callPackage ../tools/X11/xmacro { };
6352   xmove = callPackage ../applications/misc/xmove { };
6354   xnee = builderDefsPackage (import ../tools/X11/xnee) {
6355     inherit (gtkLibs) gtk;
6356     inherit (xlibs) libX11 libXtst xextproto libXext
6357       inputproto libXi xproto recordproto;
6358     inherit pkgconfig;
6359   };
6361   xvidcap = callPackage ../applications/video/xvidcap {
6362     inherit (gnome) scrollkeeper libglade;
6363   };
6365   yate = callPackage ../applications/misc/yate {
6366     qt = qt4;
6367   };
6369   # doesn't compile yet - in case someone else want's to continue ..
6370   # use Trunk because qgisReleased segfaults no resize for now
6371   qgis = qgisTrunk;
6372   qgisReleased = (import ../applications/misc/qgis) {
6373     inherit composableDerivation fetchsvn stdenv flex lib
6374             ncurses fetchurl perl cmake gdal geos proj x11
6375             gsl libpng zlib bison
6376             sqlite glibc fontconfig freetype /* use libc from stdenv ? - to lazy now - Marc */
6377             python postgresql pyqt4;
6378     inherit (xlibs) libSM libXcursor libXinerama libXrandr libXrender;
6379     inherit (xorg) libICE;
6380     qt = qt4;
6382     # optional features
6383     # grass = "not yet supported" # cmake -D WITH_GRASS=TRUE  and GRASS_PREFX=..
6384   };
6386   qgisTrunk = callPackage ../applications/misc/qgis/trunk.nix {
6387     qgis = qgisReleased;
6388   };
6390   yakuake = newScope pkgs.kde4 ../applications/misc/yakuake { };
6392   zapping = callPackage ../applications/video/zapping {
6393     inherit (gnome) scrollkeeper libgnomeui libglade esound;
6394     teletextSupport = true;
6395     jpegSupport = true;
6396     pngSupport = true;
6397     recordingSupport = true;
6398   };
6400   zathura = callPackage ../applications/misc/zathura { };
6402   ### GAMES
6404   asc = callPackage ../games/asc {
6405     lua = lua5;
6406     libsigcxx = libsigcxx12;
6407   };
6409   ballAndPaddle = callPackage ../games/ball-and-paddle { };
6411   blackshades = callPackage ../games/blackshades { };
6413   blackshadeselite = callPackage ../games/blackshadeselite { };
6415   bsdgames = callPackage ../games/bsdgames { };
6417   castle_combat = callPackage ../games/castle-combat { };
6419   construoBase = callPackage ../games/construo {
6420     mesa = null;
6421     freeglut = null;
6422   };
6424   construo = construoBase.override {
6425     inherit mesa freeglut;
6426   };
6428   eduke32 = callPackage ../games/eduke32 { };
6430   egoboo = callPackage ../games/egoboo { };
6432   exult = callPackage ../games/exult {
6433     stdenv = overrideGCC stdenv gcc42;
6434   };
6436   /*
6437   exultSnapshot = lowPrio (import ../games/exult/snapshot.nix {
6438     inherit fetchurl stdenv SDL SDL_mixer zlib libpng unzip
6439       autoconf automake libtool flex bison;
6440   });
6441   */
6443   freedink = callPackage ../games/freedink { };
6445   fsg = callPackage ../games/fsg {
6446     wxGTK = wxGTK28.override { unicode = false; };
6447   };
6449   gemrb = callPackage ../games/gemrb { };
6451   gltron = callPackage ../games/gltron { };
6453   gnuchess = builderDefsPackage (import ../games/gnuchess) {
6454     flex = flex2535;
6455   };
6457   gnugo = callPackage ../games/gnugo { };
6459   gparted = callPackage ../tools/misc/gparted {
6460     inherit (gtkLibs) gtk glib gtkmm;
6461     inherit (gnome) gnomedocutils;
6462   };
6464   hexen = callPackage ../games/hexen { };
6466   kobodeluxe = callPackage ../games/kobodeluxe { };
6468   lincity = builderDefsPackage (import ../games/lincity) {
6469     inherit (xlibs) libX11 libXext xextproto
6470       libICE libSM xproto;
6471     inherit libpng zlib;
6472   };
6474   micropolis = callPackage ../games/micropolis { };
6476   openttd = callPackage ../games/openttd {
6477     zlib = zlibStatic;
6478   };
6480   pioneers = callPackage ../games/pioneers { };
6482   quake3demo = callPackage ../games/quake3/wrapper {
6483     name = "quake3-demo-${quake3game.name}";
6484     description = "Demo of Quake 3 Arena, a classic first-person shooter";
6485     game = quake3game;
6486     paks = [quake3demodata];
6487   };
6489   quake3demodata = callPackage ../games/quake3/demo { };
6491   quake3game = callPackage ../games/quake3/game { };
6493   rogue = callPackage ../games/rogue { };
6495   scummvm = callPackage ../games/scummvm { };
6497   scorched3d = callPackage ../games/scorched3d {
6498     wxGTK = wxGTK26;
6499   };
6501   sgtpuzzles = builderDefsPackage (import ../games/sgt-puzzles) {
6502     inherit (gtkLibs) gtk;
6503     inherit pkgconfig fetchsvn perl;
6504     inherit (xlibs) libX11;
6505   };
6507   six = callPackage ../games/six {
6508     inherit (kde3) arts kdelibs;
6509   };
6511   # You still can override by passing more arguments.
6512   spaceOrbit = callPackage ../games/orbit {
6513     inherit (gnome) esound;  };
6515   superTux = callPackage ../games/super-tux { };
6517   superTuxKart = callPackage ../games/super-tux-kart { };
6519   teeworlds = callPackage ../games/teeworlds { };
6521   tennix = callPackage ../games/tennix { };
6523   /*tpm = import ../games/thePenguinMachine {
6524     inherit stdenv fetchurl pil pygame SDL;
6525     python24 = python;
6526   };*/
6528   tremulous = callPackage ../games/tremulous { };
6530   torcs = callPackage ../games/torcs {
6531     # Torcs wants to make shared libraries linked with plib libraries (it provides static).
6532     # i686 is the only platform I know than can do that linking without plib built with -fPIC
6533     plib = plib.override { enablePIC = if stdenv.isi686 then false else true; };
6534   };
6536   ufoai = callPackage ../games/ufoai {
6537     inherit (gnome) gtksourceview gtkglext;
6538   };
6540   ultimatestunts = callPackage ../games/ultimatestunts { };
6542   urbanterror = callPackage ../games/urbanterror { };
6544   ut2004demo = callPackage ../games/ut2004demo { };
6546   warsow = callPackage ../games/warsow {
6547     libjpeg = libjpeg62;
6548   };
6550   warzone2100 = callPackage ../games/warzone2100 {
6551     flex = flex2535;
6552   };
6554   xboard = builderDefsPackage (import ../games/xboard) {
6555     inherit (xlibs) libX11 xproto libXt libXaw libSM
6556       libICE libXmu libXext libXpm;
6557     inherit gnuchess texinfo;
6558   };
6560   xsokoban = builderDefsPackage (import ../games/xsokoban) {
6561     inherit (xlibs) libX11 xproto libXpm libXt;
6562   };
6564   zdoom = callPackage ../games/zdoom { };
6566   zoom = callPackage ../games/zoom { };
6568   keen4 = callPackage ../games/keen4 { };
6571   ### DESKTOP ENVIRONMENTS
6574   enlightenment = callPackage ../desktops/enlightenment { };
6576   gnome28 = recurseIntoAttrs (import ../desktops/gnome-2.28 pkgs);
6578   gnome = gnome28;
6580   kde3 = recurseIntoAttrs {
6582     kdelibs = callPackage ../desktops/kde-3/kdelibs {
6583       stdenv = overrideGCC stdenv gcc43;
6584       qt = qt3;
6585     };
6587     kdebase = callPackage ../desktops/kde-3/kdebase {
6588       stdenv = overrideGCC stdenv gcc43;
6589       inherit (kde3) kdelibs;
6590       qt = qt3;
6591     };
6593     arts = callPackage ../development/libraries/arts {
6594       qt = qt3;
6595       inherit (gnome) glib;
6596       inherit (kde3) kdelibs;
6597     };
6599     k3b = callPackage ../applications/misc/k3b {
6600       inherit (kde3) kdelibs;
6601     };
6603     kbasket = callPackage ../applications/misc/kbasket {
6604       stdenv = overrideGCC stdenv gcc43;
6605       inherit (kde3) kdelibs;
6606     };
6608     kile = callPackage ../applications/editors/kile {
6609       inherit (kde3) arts kdelibs;
6610       qt = qt3;
6611     };
6613     kphone = callPackage ../applications/networking/kphone {
6614       qt = qt3;
6615       stdenv = overrideGCC stdenv gcc42; # I'm to lazy to clean up header files
6616     };
6618     kuickshow = callPackage ../applications/graphics/kuickshow {
6619       inherit (kde3) arts kdelibs;
6620       qt = qt3;
6621     };
6623     kcachegrind = callPackage ../development/tools/misc/kcachegrind {
6624       inherit (kde3) kdelibs;
6625       qt = qt3;
6626     };
6628   };
6630   kde4 = kde44;
6632   kde44 = makeOverridable (import ../desktops/kde-4.4) (pkgs // {
6633     qt4 = pkgs.qt46;
6634     stdenv = pkgs.stdenv2;
6635   });
6637   kde45 = callPackage ../desktops/kde-4.5 {
6638     callPackage = newScope ({
6639       qjson  = pkgs.qjson.override { inherit (pkgs.kde45) qt4; };
6640       pyqt4 = pkgs.pyqt4.override { inherit (pkgs.kde45) qt4; };
6641       libdbusmenu_qt = pkgs.libdbusmenu_qt.override { inherit (pkgs.kde45) qt4; };
6642       libktorrent = pkgs.libktorrent.override {
6643         inherit (pkgs.kde45) qt4 kdelibs;
6644       };
6645       shared_desktop_ontologies = pkgs.shared_desktop_ontologies.override { v = "0.5"; };
6646       stdenv = pkgs.stdenv2;
6647     } // pkgs.kde45);
6648   };
6650   xfce = xfce4;
6652   xfce4 = recurseIntoAttrs
6653     (let callPackage = newScope pkgs.xfce4; in
6654      import ../desktops/xfce-4 { inherit callPackage pkgs; });
6657   ### SCIENCE
6659   xplanet = callPackage ../applications/science/xplanet {
6660     inherit (gtkLibs) pango;
6661   };
6664   ### SCIENCE/GEOMETRY
6666   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
6667     inherit (gnome) libglade gtk;
6668     inherit libxml2 guile perl intltool libtool pkgconfig;
6669   };
6671   tetgen = callPackage ../applications/science/geometry/tetgen { };
6674   ### SCIENCE/BIOLOGY
6676   alliance = callPackage ../applications/science/electronics/alliance {
6677     motif = lesstif;
6678   };
6680   arb = callPackage ../applications/science/biology/arb {
6681     lesstif = lesstif93;
6682     stdenv = overrideGCC stdenv gcc42;
6683   };
6685   biolib = callPackage ../development/libraries/science/biology/biolib { };
6687   emboss = callPackage ../applications/science/biology/emboss { };
6689   mrbayes = callPackage ../applications/science/biology/mrbayes { };
6691   ncbiCTools = builderDefsPackage ../development/libraries/ncbi {
6692     inherit tcsh mesa lesstif;
6693     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6694       libXmu libXext;
6695   };
6697   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
6699   paml = callPackage ../applications/science/biology/paml { };
6701   /* slr = import ../applications/science/biology/slr {
6702     inherit fetchurl stdenv liblapack;
6703   }; */
6705   pal2nal = callPackage ../applications/science/biology/pal2nal { };
6708   ### SCIENCE/MATH
6710   atlas = callPackage ../development/libraries/science/math/atlas { };
6712   blas = callPackage ../development/libraries/science/math/blas { };
6714   content = builderDefsPackage ../applications/science/math/content {
6715     inherit mesa lesstif;
6716     inherit (xlibs) libX11 libXaw xproto libXt libSM libICE
6717       libXmu libXext libXcursor;
6718   };
6720   liblapack = callPackage ../development/libraries/science/math/liblapack { };
6723   ### SCIENCE/LOGIC
6725   coq = callPackage ../applications/science/logic/coq {
6726     camlp5 = camlp5_transitional;
6727   };
6729   coq_devel = callPackage ../applications/science/logic/coq/8.3rc1.nix {
6730     camlp5 = camlp5_transitional;
6731   };
6733   eprover = callPackage ../applications/science/logic/eProver {
6734     texLive = texLiveAggregationFun {
6735       paths = [
6736         texLive texLiveExtra
6737       ];
6738   };
6739   };
6741   hol = callPackage ../applications/science/logic/hol { };
6743   hol_light = callPackage ../applications/science/logic/hol_light { };
6745   hol_light_sources = callPackage ../applications/science/logic/hol_light/sources.nix { };
6747   hol_light_checkpoint_dmtcp =
6748      recurseIntoAttrs (callPackage ../applications/science/logic/hol_light/dmtcp_checkpoint.nix { });
6750   isabelle = import ../applications/science/logic/isabelle {
6751     inherit (pkgs) stdenv fetchurl nettools perl polyml;
6752     inherit (pkgs.emacs23Packages) proofgeneral;
6753   };
6755   prover9 = callPackage ../applications/science/logic/prover9 { };
6757   ssreflect = callPackage ../applications/science/logic/ssreflect {
6758     camlp5 = camlp5_transitional;
6759   };
6761   ### SCIENCE / ELECTRONICS
6763   kicad = callPackage ../applications/science/electronics/kicad {
6764     stdenv = stdenv2;
6765   };
6767   ngspice = callPackage ../applications/science/electronics/ngspice { };
6769   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
6771   xoscope = callPackage ../applications/science/electronics/xoscope { };
6774   ### SCIENCE / MATH
6776   maxima = callPackage ../applications/science/math/maxima { };
6778   wxmaxima = callPackage ../applications/science/math/wxmaxima { };
6780   scilab = callPackage ../applications/science/math/scilab {
6781     withXaw3d = false;
6782     withTk = true;
6783     withGtk = false;
6784     withOCaml = true;
6785     withX = true;
6786   };
6788   yacas = callPackage ../applications/science/math/yacas { };
6790   ### SCIENCE / MISC
6792   golly = callPackage ../applications/science/misc/golly { };
6794   simgrid = callPackage ../applications/science/misc/simgrid {
6795     stdenv = stdenv2;
6796   };
6798   tulip = callPackage ../applications/science/misc/tulip {
6799     qt = qt4;
6800   };
6802   vite = callPackage ../applications/science/misc/vite {
6803     qt = qt4;
6804     stdenv = stdenv2;
6805   };
6807   ### MISC
6809   atari800 = callPackage ../misc/emulators/atari800 { };
6811   ataripp = callPackage ../misc/emulators/atari++ { };
6813   auctex = callPackage ../misc/tex/auctex { };
6815   busybox = callPackage ../misc/busybox {
6816     enableStatic = true;
6817   };
6819   cups = callPackage ../misc/cups { };
6821   gutenprint = callPackage ../misc/drivers/gutenprint { };
6823   gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { };
6825   cupsBjnp = callPackage ../misc/cups/drivers/cups-bjnp { };
6827   dblatex = callPackage ../misc/tex/dblatex { };
6829   dosbox = callPackage ../misc/emulators/dosbox { };
6831   dpkg = callPackage ../tools/package-management/dpkg { };
6833   ekiga = lib.callPackageWith (pkgs // pkgs.xorg // pkgs.gtkLibs // pkgs.gnome)
6834     ../applications/networking/ekiga {};
6836   electricsheep = callPackage ../misc/screensavers/electricsheep { };
6838   foldingathome = callPackage ../misc/foldingathome { };
6840   freestyle = callPackage ../misc/freestyle {
6841     #stdenv = overrideGCC stdenv gcc41;
6842   };
6844   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
6845     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
6846       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
6847       docutils;
6848     dbus = dbus.libs;
6849     inherit (gnome) gtk libglade;
6850     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
6851       scrnsaverproto;
6852     python = pythonFull;
6853   };
6855   generator = callPackage ../misc/emulators/generator {
6856     inherit (gtkLibs1x) gtk;
6857   };
6859   gensgs = callPackage_i686 ../misc/emulators/gens-gs { };
6861   ghostscript = callPackage ../misc/ghostscript {
6862     x11Support = false;
6863     cupsSupport = getPkgConfig "ghostscript" "cups" true;
6864   };
6866   ghostscriptX = appendToName "with-X" (ghostscript.override {
6867     x11Support = true;
6868   });
6870   gxemul = callPackage ../misc/gxemul { };
6872   hplip = callPackage ../misc/drivers/hplip {
6873     qtSupport = true;
6874   };
6876   # using the new configuration style proposal which is unstable
6877   jackaudio = callPackage ../misc/jackaudio { };
6879   keynav = callPackage ../tools/X11/keynav { };
6881   lazylist = callPackage ../misc/tex/lazylist { };
6883   lilypond = callPackage ../misc/lilypond {
6884     inherit (gtkLibs) pango;
6885     flex = flex2535;
6886   };
6888   martyr = callPackage ../development/libraries/martyr { };
6890   maven = callPackage ../misc/maven/maven-1.0.nix { };
6892   maven2 = callPackage ../misc/maven { };
6894   mess = callPackage ../misc/emulators/mess { };
6896   nix = nixStable;
6898   nixStable = callPackage ../tools/package-management/nix {
6899     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6900     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6901   };
6903   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
6904     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6905     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6906   };
6909   # The SQLite branch.
6910   nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) {
6911     inherit fetchurl stdenv perl curl bzip2 openssl sqlite;
6912     storeDir = getPkgConfig "nix" "storeDir" "/nix/store";
6913     stateDir = getPkgConfig "nix" "stateDir" "/nix/var";
6914   });
6916   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
6917     import ../tools/package-management/nix/custom.nix {
6918       inherit fetchurl stdenv perl curl bzip2 openssl src preConfigure automake
6919         autoconf libtool configureFlags enableScripts lib bison libxml2;
6920       flex = flex2533;
6921       aterm = aterm25;
6922       db4 = db45;
6923       inherit docbook5_xsl libxslt docbook5 docbook_xml_dtd_43 w3m;
6924     };
6926   disnix = callPackage ../tools/package-management/disnix { };
6928   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts { };
6930   DisnixService = callPackage ../tools/package-management/disnix/DisnixService { };
6932   latex2html = callPackage ../misc/tex/latex2html/default.nix {
6933     tex = tetex;
6934   };
6936   pgadmin = callPackage ../applications/misc/pgadmin { };
6938   pgf = pgf2;
6940   # Keep the old PGF since some documents don't render properly with
6941   # the new one.
6942   pgf1 = callPackage ../misc/tex/pgf/1.x.nix { };
6944   pgf2 = callPackage ../misc/tex/pgf/2.x.nix { };
6946   polytable = callPackage ../misc/tex/polytable { };
6948   psi = makeOverridable (callPackage ../applications/networking/instant-messengers/psi) {
6949     qca2 = kde45.qca2;
6950     qca2_ossl = kde45.qca2_ossl;
6951     qt4 = qt47;
6952   };
6954   putty = callPackage ../applications/networking/remote/putty { };
6956   rssglx = callPackage ../misc/screensavers/rss-glx { };
6958   xlockmore = callPackage ../misc/screensavers/xlockmore {
6959     pam = if getPkgConfig "xlockmore" "pam" true then pam else null;
6960   };
6962   saneBackends = callPackage ../misc/sane-backends {
6963     gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
6964   };
6966   saneFrontends = callPackage ../misc/sane-front { };
6968   sourceAndTags = import ../misc/source-and-tags {
6969     inherit pkgs stdenv unzip lib ctags;
6970     hasktags = haskellPackages.myhasktags;
6971   };
6973   splix = callPackage ../misc/cups/drivers/splix { };
6975   tetex = callPackage ../misc/tex/tetex { };
6977   tex4ht = callPackage ../misc/tex/tex4ht { };
6979   texFunctions = import ../misc/tex/nix pkgs;
6981   texLive = builderDefsPackage (import ../misc/tex/texlive) {
6982     inherit builderDefs zlib bzip2 ncurses libpng ed
6983       gd t1lib freetype icu perl ruby expat curl
6984       libjpeg bison python fontconfig;
6985     inherit (xlibs) libXaw libX11 xproto libXt libXpm
6986       libXmu libXext xextproto libSM libICE;
6987     flex = flex2535;
6988     ghostscript = ghostscriptX;
6989   };
6991   /* Look in configurations/misc/raskin.nix for usage example (around revisions
6992   where TeXLive was added)
6994   (texLiveAggregationFun {
6995     paths = [texLive texLiveExtra texLiveCMSuper
6996       texLiveBeamer
6997     ];
6998   })
7000   You need to use texLiveAggregationFun to regenerate, say, ls-R (TeX-related file list)
7001   Just installing a few packages doesn't work.
7002   */
7003   texLiveAggregationFun =
7004     (builderDefsPackage (import ../misc/tex/texlive/aggregate.nix));
7006   texLiveContext = builderDefsPackage (import ../misc/tex/texlive/context.nix) {
7007     inherit texLive;
7008   };
7010   texLiveExtra = builderDefsPackage (import ../misc/tex/texlive/extra.nix) {
7011     inherit texLive;
7012   };
7014   texLiveCMSuper = builderDefsPackage (import ../misc/tex/texlive/cm-super.nix) {
7015     inherit texLive;
7016   };
7018   texLiveLatexXColor = builderDefsPackage (import ../misc/tex/texlive/xcolor.nix) {
7019     inherit texLive;
7020   };
7022   texLivePGF = builderDefsPackage (import ../misc/tex/texlive/pgf.nix) {
7023     inherit texLiveLatexXColor texLive;
7024   };
7026   texLiveBeamer = builderDefsPackage (import ../misc/tex/texlive/beamer.nix) {
7027     inherit texLiveLatexXColor texLivePGF texLive;
7028   };
7030   trac = callPackage ../misc/trac {
7031     inherit (pythonPackages) pysqlite;
7032   };
7034   vice = callPackage ../misc/emulators/vice { };
7036   # Wine cannot be built in 64-bit; use a 32-bit build instead.
7037   wine = callPackage_i686 ../misc/emulators/wine {
7038     flex = pkgsi686Linux.flex2535;
7039   };
7041   wineWacraft = callPackage_i686 ../misc/emulators/wine/wine-warcraft.nix {
7042     flex = pkgsi686Linux.flex2535;
7043   };
7045   x2x = callPackage ../tools/X11/x2x { };
7047   xosd = callPackage ../misc/xosd { };
7049   xsane = callPackage ../misc/xsane { };
7051   yafc = callPackage ../applications/networking/yafc { };
7053   myEnvFun = import ../misc/my-env {
7054     inherit substituteAll pkgs;
7055     inherit (stdenv) mkDerivation;
7056   };
7058   misc = import ../misc/misc.nix { inherit pkgs stdenv; };
7060 }; in pkgs