summary refs log tree commit diff
path: root/pkgs/top-level/all-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/all-packages.nix')
-rw-r--r--pkgs/top-level/all-packages.nix121
1 files changed, 96 insertions, 25 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4413ddb4f92a..f44f19b2db50 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -204,15 +204,20 @@ let
 
   stdenv =
     if bootStdenv != null then (bootStdenv // {inherit platform;}) else
-      let changer = getConfig ["replaceStdenv"] null;
-      in if changer != null then
-        changer {
-          stdenv = stdenvCross;
-          overrideSetup = overrideSetup;
-        }
-      else if crossSystem != null then
+      if crossSystem != null then
         stdenvCross
       else
+        let
+            changer = getConfig ["replaceStdenv"] null;
+        in if changer != null then
+          changer {
+            # We import again all-packages to avoid recursivities.
+            pkgs = import ./all-packages.nix {
+              # We remove packageOverrides to avoid recursivities
+              config = removeAttrs config [ "replaceStdenv" ];
+            };
+          }
+      else
         defaultStdenv;
 
   forceBuildDrv = drv : if (crossSystem == null) then drv else
@@ -1781,6 +1786,30 @@ let
 
   gcc45 = gcc45_real;
 
+  gcc45_debug =
+    let gcc = lib.overrideDerivation gcc45.gcc (attrs:
+      # GCC 4.5's builder.sh contains hard-coded `-g0' flags, so patch it to
+      # remove them.
+      # TODO: Remove those `-g0' and this hack on the next stdenv update.
+      let
+        orig_builder = builtins.head (builtins.tail attrs.args);
+        new_builder = stdenv.mkDerivation {
+          name = "builder-gcc-4.5-debug";
+          phases = "buildPhase";
+          buildPhase =
+            '' cp -v "${orig_builder}" "$out"
+               sed -i "$out" -e 's/-g0//g ; s/--strip-debug//g'
+               chmod +x "$out"
+            '';
+        };
+      in {
+        args = [ "-e" "${new_builder}" ];
+        postHook = '' rm -rf "$out/src/build" '';
+      });
+   in
+     lowPrio (wrapGCC (misc.debugVersion gcc));
+
+
   gcc46 = gcc46_real;
 
   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
@@ -2824,6 +2853,8 @@ let
     gcj = gcj.gcc; # use the raw GCJ, which has ${gcj}/lib/jvm
   };
 
+  astyle = callPackage ../development/tools/misc/astyle { };
+
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
   autoconf = callPackage ../development/tools/misc/autoconf { };
@@ -2888,6 +2919,24 @@ let
 
   ccache = callPackage ../development/tools/misc/ccache { };
 
+  # Wrapper that works as gcc or g++
+  # It can be used by setting in nixpkgs config like this, for example:
+  #    replaceStdenv = { pkgs }: pkgs.ccacheStdenv;
+  # But if you build in chroot, you should have that path in chroot
+  # If instantiated directly, it will use the HOME/.ccache as cache directory.
+  # You can use an override in packageOverrides to set extraConfig:
+  #    packageOverrides = pkgs: {
+  #     ccacheWrapper = pkgs.ccacheWrapper.override {
+  #       extraConfig = ''
+  #         CCACHE_COMPRESS=1
+  #         CCACHE_DIR=/bin/.ccache
+  #       '';
+  #     };
+  #
+  ccacheWrapper = makeOverridable ({ extraConfig ? "" }:
+     wrapGCC (ccache.links extraConfig)) {};
+  ccacheStdenv = overrideGCC stdenv ccacheWrapper;
+
   complexity = callPackage ../development/tools/misc/complexity { };
 
   ctags = callPackage ../development/tools/misc/ctags { };
@@ -5767,6 +5816,8 @@ let
 
     acpi_call = callPackage ../os-specific/linux/acpi-call {};
 
+    bbswitch = callPackage ../os-specific/linux/bbswitch {};
+
     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
 
     aufs =
@@ -6614,12 +6665,17 @@ let
     librsvg = null /* if stdenv.isDarwin then null else librsvg */;
   };
 
-  emacsSnapshot = lowPrio (callPackage ../applications/editors/emacs-snapshot {
-    xawSupport = getConfig [ "emacs" "xawSupport" ] false;
-    xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
-    gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
-    xftSupport = getConfig [ "emacs" "xftSupport" ] true;
-    dbusSupport = getConfig [ "emacs" "dbusSupport" ] true;
+  emacs24 = lowPrio (callPackage ../applications/editors/emacs-24 {
+    # use override to select the appropriate gui toolkit
+    libXaw = if stdenv.isDarwin then xlibs.libXaw else null;
+    Xaw3d = null;
+    gtk = if stdenv.isDarwin then null else gtkLibs.gtk;
+    # TODO: these packages don't build on Darwin.
+    gconf = null /* if stdenv.isDarwin then null else gnome.GConf */;
+    librsvg = if stdenv.isDarwin then null else librsvg;
+    # alsa only on linux
+    alsaLib = if stdenv.isLinux then alsaLib else null;
+    imagemagick = imagemagickBig;
   });
 
   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
@@ -6657,6 +6713,8 @@ let
 
     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
 
+    notmuch = callPackage ../applications/networking/mailreaders/notmuch { };
+
     nxml = callPackage ../applications/editors/emacs-modes/nxml { };
 
     # This is usually a newer version of Org-Mode than that found in GNU Emacs, so
@@ -6667,7 +6725,11 @@ let
 
     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
 
-    proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral { };
+    proofgeneral = callPackage ../applications/editors/emacs-modes/proofgeneral {
+      texLive = pkgs.texLiveAggregationFun {
+                  paths = [ pkgs.texLive pkgs.texLiveCMSuper ];
+                };
+    };
 
     quack = callPackage ../applications/editors/emacs-modes/quack { };
 
@@ -6680,6 +6742,7 @@ let
 
   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
   emacs23Packages = recurseIntoAttrs (emacsPackages emacs23 pkgs.emacs23Packages);
+  emacs24Packages = recurseIntoAttrs (emacsPackages emacs24 pkgs.emacs24Packages);
 
   epdfview = callPackage ../applications/misc/epdfview { };
 
@@ -7065,13 +7128,18 @@ let
 
   librecad = callPackage ../applications/misc/librecad { };
 
+  libreoffice = callPackage ../applications/office/openoffice/libreoffice.nix {
+    inherit (perlPackages) ArchiveZip CompressZlib;
+    inherit (gnome) GConf ORBit2;
+  };
+
   lingot = callPackage ../applications/audio/lingot {
     inherit (gnome) libglade;
   };
 
   links = callPackage ../applications/networking/browsers/links { };
 
-  ledger = callPackage ../applications/office/ledger { };
+  ledger = callPackage ../applications/office/ledger/2.6.3.nix { };
   ledger3 = callPackage ../applications/office/ledger/3.0.nix { };
 
   links2 = (builderDefsPackage ../applications/networking/browsers/links2) {
@@ -7106,14 +7174,12 @@ let
   };
 
   mercurial = callPackage ../applications/version-management/mercurial {
-    guiSupport = getConfig ["mercurial" "guiSupport"] false; # for hgk (gitk gui for hg)
     inherit (pythonPackages) ssl curses;
-    # when used with hg-fast-export (git) mercurials files are using
-    # httplib.FakeSocket which is not provided after python 2.6.  (httplib2
-    # has removed it from its interface).
-    python = python27;
+    guiSupport = false;		# use mercurialFull to get hgk GUI
   };
 
+  mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
+
   merkaartor = callPackage ../applications/misc/merkaartor { };
 
   meshlab = callPackage ../applications/graphics/meshlab {
@@ -7221,7 +7287,10 @@ let
   netsurfBrowser = netsurf.browser;
   netsurf = recurseIntoAttrs (import ../applications/networking/browsers/netsurf { inherit pkgs; });
 
-  notmuch = callPackage ../applications/networking/mailreaders/notmuch { };
+  notmuch = callPackage ../applications/networking/mailreaders/notmuch {
+      # use emacsPackages.notmuch if you want emacs support
+      emacs = null;
+  };
 
   nova = callPackage ../applications/virtualization/nova { };
 
@@ -7593,9 +7662,7 @@ let
     inherit (xlibs) libX11;
   };
 
-  vlc = callPackage ../applications/video/vlc {
-    lua = lua5;
-  };
+  vlc = callPackage ../applications/video/vlc { };
 
   vnstat = callPackage ../applications/networking/vnstat { };
 
@@ -8166,7 +8233,9 @@ let
 
       polkit_kde_agent = callPackage ../tools/security/polkit-kde-agent { };
 
-      psi = callPackage ../applications/networking/instant-messengers/psi { };
+      psi = callPackage ../applications/networking/instant-messengers/psi {
+        inherit (gtkLibs) glib;
+      };
 
       quassel = callPackage ../applications/networking/irc/quassel { };
 
@@ -8191,6 +8260,8 @@ let
       yakuake = callPackage ../applications/misc/yakuake { };
 
       zanshin = callPackage ../applications/office/zanshin { };
+
+      kwooty = callPackage ../applications/networking/newsreaders/kwooty { };
     };
 
   redshift = callPackage ../applications/misc/redshift {