summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-06-17 22:08:16 +0200
committerVladimír Čunát <vcunat@gmail.com>2013-06-17 22:08:16 +0200
commit6bcf790d055944fa56129cc4f5e1ac5374e6aea6 (patch)
tree11ef08e17443d2e87429254b9dbf1331225004bc
parentafdc7fdfb6ff0380c8c46cf56afbe8611f34ba7d (diff)
parent0b875c8706276b2625e0dc8efd8372ac84fef5c4 (diff)
downloadnixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar.gz
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar.bz2
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar.lz
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar.xz
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.tar.zst
nixpkgs-6bcf790d055944fa56129cc4f5e1ac5374e6aea6.zip
Merge branch 'master' into x-updates
-rw-r--r--maintainers/scripts/nix-generate-from-cpan.nix2
-rwxr-xr-xmaintainers/scripts/nix-generate-from-cpan.pl10
-rw-r--r--pkgs/applications/misc/cgminer/default.nix44
-rw-r--r--pkgs/applications/networking/dropbox-cli/default.nix16
-rw-r--r--pkgs/development/interpreters/octave/default.nix10
-rw-r--r--pkgs/development/interpreters/ruby/ruby-19.nix14
-rw-r--r--pkgs/development/libraries/haskell/Chart-gtk/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix6
-rw-r--r--pkgs/development/libraries/nlopt/default.nix15
-rw-r--r--pkgs/development/misc/amdadl-sdk/default.nix44
-rw-r--r--pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch10
-rw-r--r--pkgs/development/misc/amdapp-sdk/default.nix105
-rw-r--r--pkgs/development/tools/haskell/timeplot/default.nix4
-rw-r--r--pkgs/lib/licenses.nix12
-rw-r--r--pkgs/lib/modules.nix23
-rw-r--r--pkgs/lib/options.nix16
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix25
-rw-r--r--pkgs/top-level/haskell-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix443
-rw-r--r--pkgs/top-level/python-packages.nix30
-rw-r--r--pkgs/top-level/release-haskell.nix439
22 files changed, 761 insertions, 531 deletions
diff --git a/maintainers/scripts/nix-generate-from-cpan.nix b/maintainers/scripts/nix-generate-from-cpan.nix
index 59a9b89bbe7..fffe11f1a5f 100644
--- a/maintainers/scripts/nix-generate-from-cpan.nix
+++ b/maintainers/scripts/nix-generate-from-cpan.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "nix-generate-from-cpan-1";
 
-  buildInputs = [ makeWrapper perl perlPackages.YAML perlPackages.JSON ];
+  buildInputs = [ makeWrapper perl perlPackages.YAMLLibYAML perlPackages.JSON ];
 
   unpackPhase = "true";
   buildPhase = "true";
diff --git a/maintainers/scripts/nix-generate-from-cpan.pl b/maintainers/scripts/nix-generate-from-cpan.pl
index 86749bcac69..1eb6c51a16a 100755
--- a/maintainers/scripts/nix-generate-from-cpan.pl
+++ b/maintainers/scripts/nix-generate-from-cpan.pl
@@ -2,7 +2,7 @@
 
 use strict;
 use CPANPLUS::Backend;
-use YAML;
+use YAML::XS;
 use JSON;
 
 my $module_name = $ARGV[0];
@@ -50,7 +50,13 @@ print STDERR "unpacked to: $pkg_path\n";
 
 my $meta;
 if (-e "$pkg_path/META.yml") {
-    $meta = YAML::LoadFile("$pkg_path/META.yml");
+    eval {
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml");
+    };
+    if ($@) {
+	system("iconv -f windows-1252 -t utf-8 '$pkg_path/META.yml' > '$pkg_path/META.yml.tmp'");
+	$meta = YAML::XS::LoadFile("$pkg_path/META.yml.tmp");
+    }
 }
 
 print STDERR "metadata: ", encode_json($meta), "\n";
diff --git a/pkgs/applications/misc/cgminer/default.nix b/pkgs/applications/misc/cgminer/default.nix
new file mode 100644
index 00000000000..4ae404a002f
--- /dev/null
+++ b/pkgs/applications/misc/cgminer/default.nix
@@ -0,0 +1,44 @@
+{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake,
+  curl, ncurses, amdappsdk, amdadlsdk, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "2.11.4";
+  name = "cgminer-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/ckolivas/cgminer.git";
+    rev = "96c8ff5f10f2d8f0cf4d1bd889e8eeac2e4aa715";
+    sha256  = "1vf9agy4vw50cap03qig2y65hdrsdy7cknkzyagv89w5xb230r9a";
+  };
+
+  buildInputs = [ autoconf automake pkgconfig libtool curl ncurses amdappsdk amdadlsdk xorg.libX11 xorg.libXext xorg.libXinerama ];
+  configureScript = "./autogen.sh";
+  configureFlags = "--enable-scrypt";
+  NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
+
+  preConfigure = ''
+    ln -s ${amdadlsdk}/include/* ADL_SDK/
+  '';
+
+  postBuild = ''
+    gcc api-example.c -I compat/jansson -o cgminer-api
+  '';
+
+  postInstall = ''
+    cp cgminer-api $out/bin/
+    chmod 444 $out/bin/*.cl
+  '';
+
+  meta = with stdenv.lib; {
+    description = "CPU/GPU miner in c for bitcoin";
+    longDescription= ''
+      This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
+      monitoring, (over)clocking and fanspeed support for bitcoin and derivative
+      coins. Do not use on multiple block chains at the same time!
+    '';
+    homepage = "https://github.com/ckolivas/cgminer";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/dropbox-cli/default.nix b/pkgs/applications/networking/dropbox-cli/default.nix
index b298b3c9df9..34fe6db8932 100644
--- a/pkgs/applications/networking/dropbox-cli/default.nix
+++ b/pkgs/applications/networking/dropbox-cli/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, coreutils, fetchurl, python }:
+{ stdenv, coreutils, fetchurl, python, dropbox }:
 
 stdenv.mkDerivation {
   name = "dropbox-cli";
 
   src = fetchurl {
+    # Note: dropbox doesn't version this file. Annoying.
     url = "https://linux.dropbox.com/packages/dropbox.py";
-    sha256 = "1x46i0aplah4a2nqglb8byl3c60w7h1cjja62myxj2dpxyv7fydy";
+    sha256 = "0p1pg8bw6mlhqi5k8y3pgs7byg0kfvq57s53sh188lb5sxvlg7yz";
   };
 
   buildInputs = [ coreutils python ];
 
   phases = "installPhase fixupPhase";
-  
+
   installPhase = ''
     mkdir -pv $out/bin/
     cp $src $out/bin/dropbox-cli
@@ -20,17 +21,18 @@ stdenv.mkDerivation {
   fixupPhase = ''
     substituteInPlace $out/bin/dropbox-cli \
       --replace "/usr/bin/python" ${python}/bin/python \
-      --replace "use dropbox help" "use dropbox-cli help"
-    
+      --replace "use dropbox help" "use dropbox-cli help" \
+      --replace "~/.dropbox-dist/dropboxd" ${dropbox}/bin/dropbox
+
     chmod +x $out/bin/dropbox-cli
   '';
-  
+
   meta = {
     homepage = http://dropbox.com;
     description = "Command line client for the dropbox daemon.";
     license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
     # NOTE: Dropbox itself only works on linux, so this is ok.
     platforms = stdenv.lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 73f13c11a7d..428d97eaf79 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -2,8 +2,11 @@
 libX11, graphicsmagick, pcre, liblapack, texLive, pkgconfig, mesa, fltk,
 fftw, fftwSinglePrec, zlib, curl, qrupdate }:
 
+let
+  version = "3.6.4";
+in
 stdenv.mkDerivation rec {
-  name = "octave-3.6.4";
+  name = "octave-${version}";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
     sha256 = "0qn9s7jrjmrn6w3rvp8d7vfnymyv0spnxzrp9l7p8p8zb7wms67s";
@@ -27,6 +30,11 @@ stdenv.mkDerivation rec {
     cp test/fntests.log $out/share/octave/${name}-fntests.log
   '';
 
+  passthru = {
+    inherit version;
+    sitePath = "share/octave/${version}/site";
+  };
+
   meta = {
     homepage = http://octave.org/;
     license = "GPLv3+";
diff --git a/pkgs/development/interpreters/ruby/ruby-19.nix b/pkgs/development/interpreters/ruby/ruby-19.nix
index 638aeab11ca..090bb0c1bce 100644
--- a/pkgs/development/interpreters/ruby/ruby-19.nix
+++ b/pkgs/development/interpreters/ruby/ruby-19.nix
@@ -30,7 +30,12 @@ stdenv.mkDerivation rec {
     ++ (op zlibSupport zlib)
     ++ (op opensslSupport openssl)
     ++ (op gdbmSupport gdbm)
-    ++ (op yamlSupport libyaml);
+    ++ (op yamlSupport libyaml)
+    # Looks like ruby fails to build on darwin without readline even if curses
+    # support is not enabled, so add readline to the build inputs if curses
+    # support is disabled (if it's enabled, we already have it) and we're
+    # running on darwin
+    ++ (op (!cursesSupport && stdenv.isDarwin) readline);
 
   enableParallelBuilding = true;
   patches = [ ./ruby19-parallel-install.patch ];
@@ -42,10 +47,11 @@ stdenv.mkDerivation rec {
   postInstall = "mkdir -pv $out/${passthru.gemPath}";
 
   meta = {
-    license = "Ruby";
-    homepage = "http://www.ruby-lang.org/en/";
+    license     = "Ruby";
+    homepage    = "http://www.ruby-lang.org/en/";
     description = "The Ruby language";
-    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+    platforms   = stdenv.lib.platforms.all;
   };
 
   passthru = rec {
diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
new file mode 100644
index 00000000000..dd6c54cf6b8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cairo, Chart, colour, dataAccessor, dataAccessorTemplate
+, gtk, mtl, time
+}:
+
+cabal.mkDerivation (self: {
+  pname = "Chart-gtk";
+  version = "0.17";
+  sha256 = "1i411kdpz75azyhfaryazr0bpij5xcl0y82m9a7k23w8mhybqwc7";
+  buildDepends = [
+    cairo Chart colour dataAccessor dataAccessorTemplate gtk mtl time
+  ];
+  meta = {
+    homepage = "https://github.com/timbod7/haskell-chart/wiki";
+    description = "Utility functions for using the chart library with GTK";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index a59e4ca7f42..dafa834e4d4 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -4,13 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "0.16";
-  sha256 = "1mb8hgxj0i5s7l061pfn49m5f6qdwvmgy6ni7jmg85vpy6b7jra3";
+  version = "0.17";
+  sha256 = "1ip1a61ryypwfzj6dc6n6pl92rflf7lqf1760ppjyg05q5pn6qxg";
   buildDepends = [
     cairo colour dataAccessor dataAccessorTemplate mtl time
   ];
   meta = {
-    homepage = "http://www.dockerz.net/software/chart.html";
+    homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "A library for generating 2D Charts and Plots";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
index 0936332cd48..cc216a59d75 100644
--- a/pkgs/development/libraries/nlopt/default.nix
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -1,12 +1,19 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv
+, withOctave ? true, octave ? null}:
 
 stdenv.mkDerivation rec {
-  name = "nlopt-2.2.1";
+  name = "nlopt-2.3";
 
   src = fetchurl {
     url = "http://ab-initio.mit.edu/nlopt/${name}.tar.gz";
-    sha256 = "0p7ri7dcp6vga7jwng7wj9bf2ixk6p5ldxp76r93xkrdixqfngaq";
+    sha256 = "1iw2cjgypyqz779f47fz0nmifbrvk4zs4rxi1ibk36f4ly3wg6p6";
   };
 
-  configureFlags = "--with-cxx --with-pic --without-guile --without-python --without-octave --without-matlab";
+  buildInputs = stdenv.lib.optional withOctave octave;
+
+  configureFlags = "--with-cxx --enable-shared --with-pic --without-guile --without-python
+  --without-matlab " +
+    stdenv.lib.optionalString withOctave ("--with-octave " +
+        "M_INSTALL_DIR=$(out)/${octave.sitePath}/m " +
+        "OCT_INSTALL_DIR=$(out)/${octave.sitePath}/oct ");
 }
diff --git a/pkgs/development/misc/amdadl-sdk/default.nix b/pkgs/development/misc/amdadl-sdk/default.nix
new file mode 100644
index 00000000000..d311b6b722a
--- /dev/null
+++ b/pkgs/development/misc/amdadl-sdk/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "4.0";
+  name = "amdadl-sdk-${version}";
+
+  src = fetchurl {
+    url = "http://download2-developer.amd.com/amd/GPU/zip/ADL_SDK_${version}.zip";
+    sha256 = "4265ee2f265b69cc39b61e10f79741c1d799f4edb71dce14a7d88509fbec0efa";
+  };
+
+  buildInputs = [ unzip ];
+
+  doCheck = false;
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildPhase = ''
+    #Build adlutil
+    cd adlutil
+    gcc main.c -o adlutil -DLINUX -ldl -I ../include/ 
+    cd ..
+  '';
+
+  installPhase = ''
+    #Install SDK
+    mkdir -p $out/bin
+    cp -r include "$out/"
+    cp "adlutil/adlutil" "$out/bin/adlutil"
+
+    #Fix modes
+    chmod -R 755 "$out/bin/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "API to access display driver functionality for ATI graphics cards";
+    homepage = http://developer.amd.com/tools/graphics-development/display-library-adl-sdk/;
+    license = licenses.amdadl;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch b/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
new file mode 100644
index 00000000000..f474f76f01e
--- /dev/null
+++ b/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
@@ -0,0 +1,10 @@
+--- samples/Makefile	2012-11-29 05:58:48.000000000 +0100
++++ samples/Makefile	2012-12-30 20:13:30.926576277 +0100
+@@ -3,7 +3,6 @@
+ include $(DEPTH)/make/openclsdkdefs.mk 
+ 
+ SUBDIRS = opencl 
+-SUBDIRS += aparapi 
+ ifneq ($(OS), lnx)
+ SUBDIRS += C++Amp
+ ifeq ($(BITS), 64)
diff --git a/pkgs/development/misc/amdapp-sdk/default.nix b/pkgs/development/misc/amdapp-sdk/default.nix
new file mode 100644
index 00000000000..355afb9587b
--- /dev/null
+++ b/pkgs/development/misc/amdapp-sdk/default.nix
@@ -0,0 +1,105 @@
+{ stdenv, fetchurl, makeWrapper, perl, mesa, xorg,
+  version? "2.8", # What version
+  samples? false # Should samples be installed
+}:
+
+let
+
+  src_hashes = {
+    "2.6" = {
+      x86 = "99610737f21b2f035e0eac4c9e776446cc4378a614c7667de03a82904ab2d356";
+      x86_64 = "1fj55358s4blxq9bp77k07gqi22n5nfkzwjkbdc62gmy1zxxlhih";
+    };
+
+    "2.7" = {
+      x86 = "99610737f21b2f035e0eac4c9e776446cc4378a614c7667de03a82904ab2d356";
+      x86_64 = "08bi43bgnsxb47vbirh09qy02w7zxymqlqr8iikk9aavfxjlmch1";
+    };
+
+    "2.8" = {
+      x86 = "99610737f21b2f035e0eac4c9e776446cc4378a614c7667de03a82904ab2d356";
+      x86_64 = "d9c120367225bb1cd21abbcf77cb0a69cfb4bb6932d0572990104c566aab9681";
+    };
+  };
+
+  bits = if stdenv.system == "x86_64-linux" then "64"
+         else "32";
+
+  arch = if stdenv.system == "x86_64-linux" then "x86_64"
+         else "x86";
+
+in stdenv.mkDerivation rec {
+  name = "amdapp-sdk-${version}";
+
+  src = if stdenv.system == "x86_64-linux" then fetchurl {
+    url = "http://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v${version}-lnx64.tgz";
+    sha256 = (builtins.getAttr version src_hashes).x86_64;
+  } else if stdenv.system == "i686-linux" then fetchurl {
+    url = "http://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v${version}-lnx32.tgz";
+    sha256 = (builtins.getAttr version src_hashes).x86;
+  } else
+    throw "System not supported";
+
+  # TODO: Add support for aparapi, java parallel api
+  patches = [ ./01-remove-aparapi-samples.patch ];
+
+  patchFlags = "-p0";
+  buildInputs = [ makeWrapper perl mesa xorg.libX11 xorg.libXext xorg.libXaw xorg.libXi xorg.libXxf86vm ];
+  propagatedBuildInputs = [ stdenv.gcc ];
+  NIX_LDFLAGS = "-lX11 -lXext -lXmu -lXi -lXxf86vm";
+  doCheck = false;
+
+  unpackPhase = ''
+    tar xvzf $src
+    tar xf AMD-APP-SDK-v${version}-RC-lnx${bits}.tgz
+    cd AMD-APP-SDK-v${version}-RC-lnx${bits}
+  '';
+
+  buildPhase = if !samples then ''echo "nothing to build"'' else null;
+
+  installPhase = ''
+    # Install SDK
+    mkdir -p $out
+    cp -r {docs,include} "$out/"
+    mkdir -p "$out/"{bin,lib,samples/opencl/bin}
+    cp -r "./bin/${arch}/clinfo" "$out/bin/clinfo"
+    cp -r "./lib/${arch}/"* "$out/lib/"
+
+    # Register ICD
+    mkdir -p "$out/etc/OpenCL/vendors"
+    echo "$out/lib/libamdocl${bits}.so" > "$out/etc/OpenCL/vendors/amd.icd"
+    # The OpenCL ICD specifications: http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt
+
+    # Install includes
+    mkdir -p "$out/usr/include/"{CAL,OpenVideo}
+    install -m644 './include/OpenVideo/'{OVDecode.h,OVDecodeTypes.h} "$out/usr/include/OpenVideo/"
+
+    ${ if samples then ''
+      # Install samples
+      find ./samples/opencl/ -mindepth 1 -maxdepth 1 -type d -not -name bin -exec cp -r {} "$out/samples/opencl" \;
+      cp -r "./samples/opencl/bin/${arch}/"* "$out/samples/opencl/bin"
+      for f in $(find "$out/samples/opencl/bin/" -type f -not -name "*.*");
+      do
+        wrapProgram "$f" --prefix PATH ":" "${stdenv.gcc}/bin"
+      done'' else ""
+    }
+
+    # Create wrappers
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/bin/clinfo
+    patchelf --set-rpath ${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib $out/bin/clinfo
+
+    # Fix modes
+    find "$out/" -type f -exec chmod 644 {} \;
+    chmod -R 755 "$out/bin/"
+    find "$out/samples/opencl/bin/" -type f -name ".*" -exec chmod 755 {} \;
+    find "$out/samples/opencl/bin/" -type f -not -name "*.*" -exec chmod 755 {} \;
+  '';
+
+  meta = with stdenv.lib; {
+    description = "AMD Accelerated Parallel Processing (APP) SDK, with OpenCL 1.2 support";
+    homepage = http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/;
+    license = licenses.amd;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
index 62a03cae14e..b2f6316dd99 100644
--- a/pkgs/development/tools/haskell/timeplot/default.nix
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "timeplot";
-  version = "1.0.20";
-  sha256 = "0zlpqfd1l1ss9jjjb967a7jnn1h560ygv8zfiikcx6iagsjmysh2";
+  version = "1.0.21";
+  sha256 = "0x9f95w235yijp98xx9nry0ibsxr0iyshk6cd89n51xrk1zpk41l";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/lib/licenses.nix b/pkgs/lib/licenses.nix
index 89edcd738f4..0669bc3f5c3 100644
--- a/pkgs/lib/licenses.nix
+++ b/pkgs/lib/licenses.nix
@@ -16,6 +16,18 @@
     url = https://www.gnu.org/licenses/agpl.html;
   };
 
+  amd = {
+    shortName = "amd";
+    fullName = "AMD License Agreement";
+    url = "http://developer.amd.com/amd-license-agreement/";
+  };
+
+  amdadl = {
+    shortName = "amd-adl";
+    fullName = "amd-adl license";
+    url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/AMD-ADL?revision=1.1";
+  };
+
   asl20 = {
     shortName = "ASL2.0";
     fullName = "Apache Software License 2.0";
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index 286178a0fa7..ea38010cecc 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -75,12 +75,19 @@ rec {
         );
 
 
-  unifyOptionModule = {key ? "<unknown location>"}: m: (args:
-    let module = lib.applyIfFunction m args; in
-    if lib.isModule module then
-      { inherit key; } // module
+  unifyOptionModule = {key ? "<unknown location>"}: name: index: m: (args:
+    let
+      module = lib.applyIfFunction m args;
+      key_ = rec {
+        file = key;
+        option = name;
+        number = index;
+        outPath = key;
+      };
+    in if lib.isModule module then
+      { key = key_; } // module
     else
-      { inherit key; options = module; }
+      { key = key_; options = module; }
   );
 
 
@@ -197,9 +204,9 @@ rec {
       recurseInto = name:
         moduleMerge (addName name) (modulesOf name);
 
-      recurseForOption = name: modules:
+      recurseForOption = name: modules: args:
         moduleMerge name (
-          map unifyModuleSyntax modules
+          moduleClosure modules args
         );
 
       errorSource = modules:
@@ -240,7 +247,7 @@ rec {
           decls = # add location to sub-module options.
             map (m:
               mapSubOptions
-                (unifyOptionModule {inherit (m) key;})
+                (unifyOptionModule {inherit (m) key;} name)
                 m.options
             ) declarations;
 
diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix
index 3a8cc0006ef..1fdf9ad8088 100644
--- a/pkgs/lib/options.nix
+++ b/pkgs/lib/options.nix
@@ -31,7 +31,7 @@ rec {
   mapSubOptions = f: opt:
     if opt ? options then
       opt // {
-        options = map f (toList opt.options);
+        options = imap f (toList opt.options);
       }
     else
       opt;
@@ -82,16 +82,18 @@ rec {
       handleOptionSets = opt:
         if opt ? type && opt.type.hasOptions then
           let
-            
-            optionConfig = vals: args:
-              map (f: lib.applyIfFunction f args)
-                (opt.options ++ toList vals);
-
             # Evaluate sub-modules.
             subModuleMerge = path: vals:
               lib.fix (args:
                 let
-                  result = recurseInto path (optionConfig vals args);
+                  result = recurseInto path (opt.options ++ imap (index: v: args: {
+                    key = rec {
+                      #!!! Would be nice if we had the file the val was from
+                      option = path;
+                      number = index;
+                      outPath = "option ${option} config number ${toString number}";
+                    };
+                  } // (lib.applyIfFunction v args)) (toList vals)) args;
                   name = lib.removePrefix (opt.name + ".") path;
                   extraArgs = opt.extraArgs or {};
                   individualExtraArgs = opt.individualExtraArgs or {};
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index 3e6902a183d..485edf7335d 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -17,11 +17,11 @@
 assert libX11 != null -> (fontconfig != null && gnused != null && coreutils != null);
 
 stdenv.mkDerivation rec {
-  name = "gnuplot-4.6.0";
+  name = "gnuplot-4.6.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${name}.tar.gz";
-    sha256 = "1ghp1jbcf95yy09lqhjcfmvb6y2101qfdbf20zs42dcs0fsssq3f";
+    sha256 = "1xd7gqdhlk7k1p9yyqf9vkk811nadc7m4si0q3nb6cpv4pxglpyz";
   };
 
   buildInputs =
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 44d19c74a0f..a014961b8ca 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3099,6 +3099,27 @@ let
 
   ### DEVELOPMENT / MISC
 
+  amdadlsdk = callPackage ../development/misc/amdadl-sdk { };
+
+  amdappsdk26 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.6";
+  };
+
+  amdappsdk27 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.7";
+  };
+
+  amdappsdk28 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.8";
+  };
+
+  amdappsdk = amdappsdk28;
+
+  amdappsdkFull = callPackage ../development/misc/amdapp-sdk {
+    version = "2.8";
+    samples = true;
+  };
+
   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {};
 
   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
@@ -6941,6 +6962,10 @@ let
 
   cgit = callPackage ../applications/version-management/git-and-tools/cgit { };
 
+  cgminer = callPackage ../applications/misc/cgminer {
+    amdappsdk = amdappsdk28;
+  };
+
   chatzilla = callPackage ../applications/networking/irc/chatzilla {
     xulrunner = firefox36Pkgs.xulrunner;
   };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 2cf5b3eeacf..99ba9e01895 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -682,6 +682,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Chart = callPackage ../development/libraries/haskell/Chart {};
 
+  ChartGtk = callPackage ../development/libraries/haskell/Chart-gtk {};
+
   ChasingBottoms = callPackage ../development/libraries/haskell/ChasingBottoms {};
 
   checkers = callPackage ../development/libraries/haskell/checkers {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 9af849da8f1..5c4574fddd8 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -282,11 +282,16 @@ rec {
     };
   };
 
-  Boolean = buildPerlPackage rec {
-    name = "boolean-0.20";
+  boolean = buildPerlPackage {
+    name = "boolean-0.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "1xqhzy3m2r08my13alff9bzl8b6xgd68312834x0hf33yir3l1yn";
+      url = mirror://cpan/authors/id/I/IN/INGY/boolean-0.30.tar.gz;
+      sha256 = "f46e7a6121d5728ef2ce285a82d1dde94f6dfa0b846a612db75b1dcd37b9fc7f";
+    };
+    meta = {
+      homepage = https://github.com/ingydotnet/boolean-pm/tree;
+      description = "Boolean support for Perl";
+      license = "perl";
     };
   };
 
@@ -1060,6 +1065,19 @@ rec {
     };
   };
 
+  ClassMethodMaker = buildPerlPackage {
+    name = "Class-MethodMaker-2.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SC/SCHWIGON/Class-MethodMaker-2.18.tar.gz;
+      sha256 = "223b7a79025e9bff984d755f9744182505e110680b13eedbac2831d45ddbeeba";
+    };
+    preConfigure = "patchShebangs .";
+    meta = {
+      description = "A module for creating generic methods";
+      license = "perl";
+    };
+  };
+
   ClassMethodModifiers = buildPerlPackage {
     name = "Class-Method-Modifiers-2.00";
     src = fetchurl {
@@ -1608,6 +1626,21 @@ rec {
     };
   };
 
+  DataStreamBulk = buildPerlPackage {
+    name = "Data-Stream-Bulk-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz;
+      sha256 = "06e08432a6b97705606c925709b99129ad926516e477d58e4461e4b3d9f30917";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ Moose PathClass SubExporter namespaceclean ];
+    meta = {
+      homepage = http://metacpan.org/release/Data-Stream-Bulk;
+      description = "N at a time iteration API";
+      license = "perl";
+    };
+  };
+
   DataTaxi = buildPerlPackage {
     name = "Data-Taxi-0.96";
     propagatedBuildInputs = [DebugShowStuff];
@@ -1669,31 +1702,91 @@ rec {
   };
 
   DateTime = buildPerlModule {
-    name = "DateTime-0.78";
+    name = "DateTime-1.03";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-0.78.tar.gz;
-      sha256 = "0gicc3ib42jba989lxwy5i5sp4w3bmakdimgfxqbb57mbdarpxc5";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.03.tar.gz;
+      sha256 = "384f97c73da02492d771d6b5c3b37f6b18c2e12f4db3246b1d61ff19c6d6ad6d";
     };
     buildInputs = [ TestFatal ];
-    propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate ];
+    propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate TryTiny ];
     meta = {
-      homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
       description = "A date and time object";
       license = "artistic_2";
     };
   };
 
-  DateTimeFormatBuilder = buildPerlPackage rec {
-    name = "DateTime-Format-Builder-0.7901";
+  DateTimeEventICal = buildPerlPackage {
+    name = "DateTime-Event-ICal-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "08zl89gh5lkff8736fkdnrf6dgppsjbmymnysbc06s7igd4ig8zf";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.11.tar.gz;
+      sha256 = "6c3ca03c1810c996fa66943138f1f891bbc4baeb41ae2108a5f821040d78dd4c";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeEventRecurrence ];
+    meta = {
+      description = "DateTime rfc2445 recurrences";
+      license = "unknown";
+    };
+  };
+
+  DateTimeEventRecurrence = buildPerlPackage {
+    name = "DateTime-Event-Recurrence-0.16";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.16.tar.gz;
+      sha256 = "3872e0126cd9527a918d3e537f85342d1fbb1e6a9ae5833262201b31879f8609";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeSet ];
+  };
+
+  DateTimeFormatBuilder = buildPerlPackage {
+    name = "DateTime-Format-Builder-0.81";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.81.tar.gz;
+      sha256 = "7cd58a8cb53bf698407cc992f89e4d49bf3dc55baf4f3f00f1def63a0fff33ef";
+    };
+    propagatedBuildInputs = [ ClassFactoryUtil DateTime DateTimeFormatStrptime ParamsValidate ];
+    meta = {
+      description = "Create DateTime parser classes and objects";
+      license = "artistic_2";
+    };
+  };
+
+  DateTimeFormatFlexible = buildPerlPackage {
+    name = "DateTime-Format-Flexible-0.25";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.25.tar.gz;
+      sha256 = "cd3267e68736ece386d677289b334d4ef1f33ff2524b17b9c9deb53d20420090";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeFormatBuilder DateTimeTimeZone ListMoreUtils TestMockTime ];
+    meta = {
+      description = "DateTime::Format::Flexible - Flexibly parse strings and turn them into DateTime objects";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatHTTP = buildPerlPackage {
+    name = "DateTime-Format-HTTP-0.40";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.40.tar.gz;
+      sha256 = "214e9e2e364090ebc5bc682b29709828944ae67f0bb4a989dd1e6d010845213f";
+    };
+    propagatedBuildInputs = [ DateTime HTTPDate ];
+    meta = {
+      description = "Date conversion routines";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatICal = buildPerlPackage {
+    name = "DateTime-Format-ICal-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz;
+      sha256 = "8b09f6539f5e9c0df0e6135031699ed4ef9eef8165fc80aefeecc817ef997c33";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeEventICal DateTimeSet DateTimeTimeZone ParamsValidate ];
+    meta = {
+      description = "Parse and format iCal datetime and duration strings";
+      license = "perl";
     };
-    propagatedBuildInputs = [
-      DateTime ParamsValidate TaskWeaken DateTimeFormatStrptime
-      ClassFactoryUtil
-    ];
-    buildInputs = [TestPod];
   };
 
   DateTimeFormatISO8601 = buildPerlPackage {
@@ -1709,16 +1802,18 @@ rec {
     };
   };
 
-  DateTimeFormatNatural = buildPerlPackage rec {
-    name = "DateTime-Format-Natural-0.74";
+  DateTimeFormatNatural = buildPerlPackage {
+    name = "DateTime-Format-Natural-1.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/${name}.tar.gz";
-      sha256 = "0hq33s5frfa8cpj2al7qi0sbmimm5sdlxf0h3b57fjm9x5arlkcn";
+      url = mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.02.tar.gz;
+      sha256 = "5479c48ade5eca9712784afee18c58308d56742a204d5ea9040d011f705303e3";
+    };
+    buildInputs = [ ModuleUtil TestMockTime ];
+    propagatedBuildInputs = [ Clone DateTime DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
+    meta = {
+      description = "Create machine readable date/time with natural parsing logic";
+      license = "perl";
     };
-    propagatedBuildInputs = [
-      DateTime ListMoreUtils ParamsValidate DateCalc
-      TestMockTime Boolean
-    ];
   };
 
   DateTimeFormatPg = buildPerlPackage {
@@ -1734,33 +1829,72 @@ rec {
     };
   };
 
-  DateTimeFormatStrptime = buildPerlPackage rec {
-    name = "DateTime-Format-Strptime-1.5000";
+  DateTimeFormatStrptime = buildPerlPackage {
+    name = "DateTime-Format-Strptime-1.54";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0m55rqbixrsfa6g6mqs8aa0rhcxh6aj2g3n8fgl63wyz9an93w8y";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.54.tar.gz;
+      sha256 = "00bb61b12472fb1a637ec55bbd8878db05b3aac89a67b7991b281e32896db9de";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone ParamsValidate ];
+    meta = {
+      description = "Parse and format strp and strf time patterns";
+      license = "artistic_2";
     };
-    propagatedBuildInputs =
-      [ DateTime DateTimeLocale DateTimeTimeZone ParamsValidate ];
   };
 
-  DateTimeLocale = buildPerlPackage rec {
+  DateTimeLocale = buildPerlPackage {
     name = "DateTime-Locale-0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "175grkrxiv012n6ch3z1sip4zprcili6m5zqi3njdk5c1gdvi8ca";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-0.45.tar.gz;
+      sha256 = "8aa1b8db0baccc26ed88f8976a228d2cdf4f6ed4e10fc88c1501ecd8f3ccaf9c";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ParamsValidate ];
+    meta = {
+      homepage = http://datetime.perl.org/;
+      description = "Localization support for DateTime.pm";
+      license = "perl";
     };
-    propagatedBuildInputs = [ListMoreUtils ParamsValidate];
   };
 
-  DateTimeTimeZone = buildPerlPackage rec {
-    name = "DateTime-TimeZone-1.45";
+  DateTimeSet = buildPerlPackage {
+    name = "DateTime-Set-0.31";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0wnjg6mcpcy7hg79jdsg3vi8ad89rghkcgqjmqiq6pqc0k9sbq2q";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.31.tar.gz;
+      sha256 = "499b59e42a1129bf10fd269eb7542d337a29fbbcbf08ef8313fd465d3ae5df02";
+    };
+    propagatedBuildInputs = [ DateTime SetInfinite ];
+    meta = {
+      description = "DateTime set objects";
+      license = "unknown";
+    };
+  };
+
+  DateTimeTimeZone = buildPerlPackage {
+    name = "DateTime-TimeZone-1.59";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-1.59.tar.gz;
+      sha256 = "b1d50f6abde68671da1db883168ef8d6793a11ba75de02174f42e1dfd16b2522";
     };
     buildInputs = [ TestOutput ];
-    propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate TryTiny ];
+    propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate ];
+    meta = {
+      description = "Time zone object base class and factory";
+      license = "perl";
+    };
+  };
+
+  DateTimeXEasy = buildPerlPackage {
+    name = "DateTimeX-Easy-0.089";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RO/ROKR/DateTimeX-Easy-0.089.tar.gz;
+      sha256 = "17e6d202e7ac6049523048e97bb8f195e3c79208570da1504f4313584e487a79";
+    };
+    buildInputs = [ TestMost ];
+    propagatedBuildInputs = [ DateTime DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
+    meta = {
+      description = "Parse a date/time string using the best method available";
+      license = "perl";
+    };
   };
 
   DebugShowStuff = buildPerlPackage {
@@ -2326,6 +2460,17 @@ rec {
     propagatedBuildInputs = [ ExceptionBase ];
   };
 
+  ExporterLite = buildPerlPackage {
+    name = "Exporter-Lite-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSCHWERN/Exporter-Lite-0.02.tar.gz;
+      sha256 = "20c1e9b7ddc017b788feb34c032fc585e2c5b46a484e93f519373fd18830ce0e";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   ExtUtilsCBuilder = buildPerlPackage rec {
     name = "ExtUtils-CBuilder-0.280202";
     src = fetchurl {
@@ -2649,6 +2794,18 @@ rec {
     };
   };
 
+  ForksSuper = buildPerlPackage {
+    name = "Forks-Super-0.67";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.67.tar.gz;
+      sha256 = "8831cd70e1eb3d4ab7d9a8c3692caa7b7220dc888cd1a8dc5640fb2a08379141";
+    };
+    meta = {
+      description = "Extensions and convenience methods to manage background processes";
+      license = "perl";
+    };
+  };
+
   FreezeThaw = buildPerlPackage {
     name = "FreezeThaw-0.43";
     src = fetchurl {
@@ -3194,6 +3351,18 @@ rec {
     };
   };
 
+  IOInteractive = buildPerlPackage {
+    name = "IO-Interactive-0.0.6";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-0.0.6.tar.gz;
+      sha256 = "9cc016cbd94b500027e137cb5070d19487e4431bf822f0cb534c38b6b2c1038c";
+    };
+    meta = {
+      description = "Utilities for interactive I/O";
+      license = "perl";
+    };
+  };
+
   IOLockedFile = buildPerlPackage rec {
     name = "IO-LockedFile-0.23";
     src = fetchurl {
@@ -3670,14 +3839,17 @@ rec {
     };
   };
 
-  LWPxParanoidAgent = buildPerlPackage rec {
-    name = "LWPx-ParanoidAgent-1.07";
+  LWPUserAgentDetermined = buildPerlPackage {
+    name = "LWP-UserAgent-Determined-1.06";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BR/BRADFITZ/${name}.tar.gz";
-      sha256 = "bd7ccbe6ed6b64195a967e9b2b04c185b7b97e8ec5a8835bb45dbcd42a18e76a";
+      url = mirror://cpan/authors/id/J/JE/JESSE/LWP-UserAgent-Determined-1.06.tar.gz;
+      sha256 = "c31d8e16dc92e2113c81cdbfb11149cfd19039e789f77cd34333ac9184346fc5";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "A virtual browser that retries errors";
+      license = "unknown";
     };
-    doCheck = false; # 3 tests fail, probably because they try to connect to the network
-    propagatedBuildInputs = [ LWP NetDNS ];
   };
 
   LWPUserAgentMockable = buildPerlPackage {
@@ -3689,6 +3861,16 @@ rec {
     propagatedBuildInputs = [ LWP HookLexWrap ];
   };
 
+  LWPxParanoidAgent = buildPerlPackage rec {
+    name = "LWPx-ParanoidAgent-1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRADFITZ/${name}.tar.gz";
+      sha256 = "bd7ccbe6ed6b64195a967e9b2b04c185b7b97e8ec5a8835bb45dbcd42a18e76a";
+    };
+    doCheck = false; # 3 tests fail, probably because they try to connect to the network
+    propagatedBuildInputs = [ LWP NetDNS ];
+  };
+
   maatkit = import ../development/perl-modules/maatkit {
     inherit fetchurl buildPerlPackage stdenv DBDmysql;
   };
@@ -3990,6 +4172,19 @@ rec {
     };
   };
 
+  ModuleUtil = buildPerlPackage {
+    name = "Module-Util-1.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz;
+      sha256 = "6cfbcb6a45064446ec8aa0ee1a7dddc420b54469303344187aef84d2c7f3e2c6";
+    };
+    buildInputs = [ ModuleBuild ];
+    meta = {
+      description = "Module name tools and transformations";
+      license = "perl";
+    };
+  };
+
   ModuleVersions = buildPerlPackage {
     name = "Module-Versions-0.02";
     src = fetchurl {
@@ -4259,6 +4454,20 @@ rec {
     buildInputs = [ Moose TestFatal TestRequires ];
   };
 
+  MooseXStrictConstructor = buildPerlPackage {
+    name = "MooseX-StrictConstructor-0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.19.tar.gz;
+      sha256 = "486573c16901e83c081da3d90a544281af1baa40bbf036337d6fa91994e48a31";
+    };
+    buildInputs = [ Moose TestFatal ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Make your object constructors blow up on unknown attributes";
+      license = "artistic_2";
+    };
+  };
+
   MooseXTraits = buildPerlPackage rec {
     name = "MooseX-Traits-0.11";
     src = fetchurl {
@@ -4314,6 +4523,20 @@ rec {
     propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone Moose MooseXTypes namespaceclean TestException TestUseOk ];
   };
 
+  MooseXTypesDateTimeMoreCoercions = buildPerlPackage {
+    name = "MooseX-Types-DateTime-MoreCoercions-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILMARI/MooseX-Types-DateTime-MoreCoercions-0.11.tar.gz;
+      sha256 = "c746a9284b7db49ce9acb2fbce26629fa816e6636e883d2ed6c62e336cfc52cb";
+    };
+    buildInputs = [ TestException TestUseOk ];
+    propagatedBuildInputs = [ DateTime DateTimeXEasy Moose MooseXTypes MooseXTypesDateTime TimeDurationParse namespaceclean ];
+    meta = {
+      description = "Extensions to MooseX::Types::DateTime";
+      license = "perl";
+    };
+  };
+
   MooseXTypesLoadableClass = buildPerlPackage rec {
     name = "MooseX-Types-LoadableClass-0.008";
     src = fetchurl {
@@ -4489,6 +4712,20 @@ rec {
     buildInputs = [ DBI DBDSQLite ];
   };
 
+  NetAmazonS3 = buildPerlPackage {
+    name = "Net-Amazon-S3-0.59";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PF/PFIG/Net-Amazon-S3-0.59.tar.gz;
+      sha256 = "94f2bd6b317a9142e400d7d17bd573dc9d22284c3ceaa4864474ba674e0e2e9f";
+    };
+    buildInputs = [ LWP TestException ];
+    propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule HTTPDate HTTPMessage LWPUserAgentDetermined MIMETypes Moose MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions PathClass RegexpCommon TermEncoding TermProgressBarSimple URI XMLLibXML ];
+    meta = {
+      description = "Use the Amazon S3 - Simple Storage Service";
+      license = "perl";
+    };
+  };
+
   NetAmazonS3Policy = buildPerlPackage {
     name = "Net-Amazon-S3-Policy-0.001002";
     src = fetchurl {
@@ -5252,6 +5489,17 @@ rec {
     };
   };
 
+  SetInfinite = buildPerlPackage {
+    name = "Set-Infinite-0.65";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz;
+      sha256 = "07bc880734492de40b4a3a8b5a331762f64e69b4629029fd9a9d357b25b87e1f";
+    };
+    meta = {
+      description = "Infinite Sets math";
+    };
+  };
+
   SetObject = buildPerlPackage {
     name = "Set-Object-1.26";
     src = fetchurl {
@@ -5809,6 +6057,54 @@ rec {
     };
   };
 
+  TermEncoding = buildPerlPackage {
+    name = "Term-Encoding-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.02.tar.gz;
+      sha256 = "f274e72346a0c0cfacfb53030ac1e38b57425512fc5bdc5cd9ef75ab0f26cfcc";
+    };
+    meta = {
+      description = "Detect encoding of the current terminal";
+      license = "perl";
+    };
+  };
+
+  TermProgressBar = buildPerlPackage {
+    name = "Term-ProgressBar-2.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SZ/SZABGAB/Term-ProgressBar-2.13.tar.gz;
+      sha256 = "95a56e1529928b7a0d7adf5bc2f54b9b9ae9da58c43b519af74a1e6596209b3c";
+    };
+    buildInputs = [ CaptureTiny TestException ];
+    propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
+    meta = {
+      description = "Provide a progress meter on a standard terminal";
+      license = "perl";
+    };
+  };
+
+  TermProgressBarQuiet = buildPerlPackage {
+    name = "Term-ProgressBar-Quiet-0.31";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz;
+      sha256 = "25675292f588bc29d32e710cf3667da9a2a1751e139801770a9fdb18cd2184a6";
+    };
+    propagatedBuildInputs = [ IOInteractive TermProgressBar TestMockObject ];
+    meta = {
+      description = "";
+      license = "perl";
+    };
+  };
+
+  TermProgressBarSimple = buildPerlPackage {
+    name = "Term-ProgressBar-Simple-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz;
+      sha256 = "a20db3c67d5bdfd0c1fab392c6d1c26880a7ee843af602af4f9b53a7043579a6";
+    };
+    propagatedBuildInputs = [ TermProgressBarQuiet ];
+  };
+
   TermReadKey = buildPerlPackage {
     name = "TermReadKey-2.30";
     src = fetchurl {
@@ -6024,6 +6320,19 @@ rec {
 
   TestMore = TestSimple;
 
+  TestMost = buildPerlPackage {
+    name = "Test-Most-0.31";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.31.tar.gz;
+      sha256 = "0ddc6034dc7cde3631dde41ecb558ed823fc07804bfd051b8ec9a70131862ab7";
+    };
+    propagatedBuildInputs = [ ExceptionClass TestDeep TestDifferences TestException TestWarn ];
+    meta = {
+      description = "Most commonly needed test functions and features";
+      license = "perl";
+    };
+  };
+
   TestNoWarnings = buildPerlPackage {
     name = "Test-NoWarnings-1.04";
     src = fetchurl {
@@ -6187,11 +6496,16 @@ rec {
     };
   };
 
-  TestUseOk = buildPerlPackage rec {
-    name = "Test-use-ok-0.02";
+  TestUseOk = buildPerlPackage {
+    name = "Test-use-ok-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
-      sha256 = "11inaxiavb35k8zwxwbfbp9wcffvfqas7k9idy822grn2sz5gyig";
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/Test-use-ok-0.11.tar.gz;
+      sha256 = "8410438a2acf127bffcf1ab92205b747a615b487e80a48e8c3d0bb9fa0dbb2a8";
+    };
+    meta = {
+      homepage = http://github.com/audreyt/Test-use-ok/tree;
+      description = "Alternative to Test::More::use_ok";
+      license = "unrestricted";
     };
   };
 
@@ -6508,6 +6822,33 @@ rec {
     };
   };
 
+  TimeDuration = buildPerlPackage {
+    name = "Time-Duration-1.1";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AV/AVIF/Time-Duration-1.1.tar.gz;
+      sha256 = "a69c419c4892f21eba10002e2ab8c55b657b6691cf6873544ef99ef5fd188f4e";
+    };
+    buildInputs = [ TestPod TestPodCoverage ];
+    meta = {
+      description = "Rounded or exact English expression of durations";
+      license = "perl";
+    };
+  };
+
+  TimeDurationParse = buildPerlPackage {
+    name = "Time-Duration-Parse-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Time-Duration-Parse-0.06.tar.gz;
+      sha256 = "e88f0e1c322b477ec98fb295324bc78657ce25aa53cb353656f01241ea7fe4db";
+    };
+    buildInputs = [ TimeDuration ];
+    propagatedBuildInputs = [ ExporterLite ];
+    meta = {
+      description = "Parse string that represents time duration";
+      license = "perl";
+    };
+  };
+
   TimeHiRes = buildPerlPackage rec {
     name = "Time-HiRes-1.9725";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 0d3e532efab..7a0e527f386 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5636,6 +5636,36 @@ pythonPackages = python.modules // rec {
   };
 
 
+  tarman = buildPythonPackage rec {
+    version = "0.1";
+    name = "tarman-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip";
+      sha256 = "1g6p9v7z2qrg000150flwmpykkzc4y8l3lvkvpn0rb8czyw7l27f";
+    };
+
+    buildInputs = [ pkgs.unzip unittest2 nose mock ];
+    propagatedBuildInputs = [ python.modules.curses libarchive ];
+
+    # two tests fail
+    doCheck = false;
+  };
+
+
+  libarchive = buildPythonPackage rec {
+    version = "3.0.4-5";
+    name = "libarchive-${version}";
+
+    src = fetchurl {
+      url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
+      sha256 = "141yx9ym8gvybn67mw0lmgafzsd79rmd9l77lk0k6m2fzclqx1j5";
+    };
+
+    propagatedBuildInputs = [ pkgs.libarchive ];
+  };
+
+
   pyzmq = buildPythonPackage rec {
     name = "pyzmq-13.0.0";
     src = fetchurl {
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
deleted file mode 100644
index 8ebec1e249e..00000000000
--- a/pkgs/top-level/release-haskell.nix
+++ /dev/null
@@ -1,439 +0,0 @@
-/* Essential Haskell packages that must build. */
-
-{ supportedSystems ? [ "x86_64-linux" ] }:
-
-with import ./release-lib.nix { inherit supportedSystems; };
-
-let
-
-  ghc6104 = "ghc6104";
-  ghc6123 = "ghc6123";
-  ghc704  = "ghc704";
-  ghc742  = "ghc742";
-  ghc763  = "ghc763";
-  default = [ ghc763 ];
-  latest  = [ ];
-  all     = [ ghc6104 ghc6123 ghc704 ghc742 ghc763 ];
-
-  allBut = platform: pkgs.lib.filter (x: platform != x) all;
-
-  filterSupportedSystems = systems: pkgs.lib.filter (x: pkgs.lib.elem x supportedSystems) systems;
-
-  mapHaskellTestOn = attrs: pkgs.lib.mapAttrs mkJobs attrs;
-
-  mkJobs = pkg: ghcs: builtins.listToAttrs (pkgs.lib.concatMap (ghc: mkJob ghc pkg) ghcs);
-
-  mkJob = ghc: pkg:
-    let
-      pkgPath = ["haskellPackages_${ghc}" "${pkg}"];
-      systems = filterSupportedSystems (pkgs.lib.attrByPath (pkgPath ++ ["meta" "platforms"]) [] pkgs);
-    in
-      map (system: mkSystemJob system ghc pkg) systems;
-
-  mkSystemJob = system: ghc: pkg:
-    pkgs.lib.nameValuePair "${ghc}" (pkgs.lib.setAttrByPath [system] ((pkgs.lib.getAttrFromPath ["haskellPackages_${ghc}" "${pkg}"] (pkgsFor system))));
-
-in
-
-mapTestOn {
-
-  gitAndTools.gitAnnex = supportedSystems;
-  jhc = supportedSystems;
-
-}
-//
-mapHaskellTestOn {
-
-  abstractPar = default;
-  ACVector = default;
-  aeson = default;
-  AgdaExecutable = default;
-  alex = all;
-  alexMeta = default;
-  alsaCore = default;
-  alsaPcm = default;
-  alternativeIo = default;
-  ansiTerminal = default;
-  ansiWlPprint = default;
-  asn1Data = default;
-  AspectAG = default;
-  async = default ++ latest;
-  attempt = default;
-  attoparsec = default;
-  attoparsecEnumerator = default;
-  authenticate = default;
-  base64Bytestring = default;
-  baseUnicodeSymbols = default;
-  benchpress = default;
-  bimap = default;
-  binaryShared = default;
-  bitmap = default;
-  bktrees = default;
-  blazeBuilder = default;
-  blazeBuilderEnumerator = default;
-  blazeHtml = default;
-  blazeTextual = default;
-  bloomfilter = default;
-  bmp = default;
-  BNFC = default ++ latest;
-  BNFCMeta = default;
-  Boolean = default;
-  bytestringMmap = default;
-  bytestringNums = default;
-  bytestringTrie = default;
-  Cabal_1_16_0_3 = all;
-  cabal2Ghci = default;
-  cabal2nix = allBut ghc6104;
-  cabalDev = default ++ latest;
-  cabalGhci = default ++ latest;
-  cabalInstall_1_16_0_2 = all;
-  cabalInstall = all;
-  cairo = default;
-  caseInsensitive = default;
-  cautiousFile = default;
-  cereal = default;
-  certificate = default;
-  cgi = all;
-  Chart = default;
-  citeprocHs = default;
-  clientsession = default;
-  cmdargs = default;
-  cmdlib = default ++ latest;
-  colorizeHaskell = default;
-  colour = default;
-  comonadsFd = default;
-  conduit = default;
-  ConfigFile = default;
-  continuedFractions = default;
-  converge = default;
-  convertible = default;
-  cookie = default;
-  cpphs = default;
-  cprngAes = default;
-  criterion = default ++ latest;
-  cryptoApi = default;
-  cryptocipher = default;
-  Crypto = default;
-  cryptohash = default;
-  cssText = default;
-  csv = default;
-  darcs = default;
-  dataAccessor = default;
-  dataAccessorTemplate = default;
-  dataDefault = default;
-  dataenc = default;
-  dataReify = default;
-  datetime = default;
-  DAV = default;
-  dbus = default;
-  derive = default;
-  diagrams = default;
-  Diff = default;
-  digest = default;
-  digestiveFunctorsHeist = default;
-  digestiveFunctorsSnap = default;
-  dimensional = default ++ latest;
-  dimensionalTf = default ++ latest;
-  directoryTree = default;
-  dlist = default;
-  dns = default;
-  doctest = default ++ latest;
-  dotgen = default;
-  doubleConversion = default;
-  editDistance = default;
-  editline = default;
-  emailValidate = default;
-  entropy = default;
-  enumerator = default;
-  erf = default;
-  failure = default;
-  fclabels = default;
-  feed = default;
-  fgl = all;
-  fileEmbed = default;
-  filestore = default;
-  fingertree = default;
-  flexibleDefaults = default;
-  fsnotify = [ ghc704 ghc742 ghc763 ];
-  funcmp = all;
-  gamma = default;
-  gdiff = default;
-  ghc = default;
-  ghcEvents = default;
-  ghcMod = default ++ latest;
-  ghcMtl = default;
-  ghcPaths = default;
-  ghcSybUtils = default;
-  githubBackup = default;
-  github = default;
-  gitit = default;
-  glade = default;
-  glib = default;
-  Glob = default;
-  gloss = default;
-  GLUT = all;
-  gnutls = default;
-  graphviz = default ++ latest;
-  gtk = default;
-  gtksourceview2 = default;
-  hackageDb = default ++ latest;
-  haddock = all;
-  hakyll = default;
-  hamlet = default;
-  happstackHamlet = default;
-  happstackServer = default;
-  happy = all;
-  hashable = default;
-  hashedStorage = default;
-  haskeline = default;
-  haskellLexer = default;
-  haskellPlatform = all;
-  haskellSrc = all;
-  haskellSrcExts = default;
-  haskellSrcMeta = default;
-  HaXml = default;
-  haxr = default;
-  HDBC = default;
-  HDBCPostgresql = default;
-  HDBCSqlite3 = default;
-  highlightingKate = default;
-  hinotify = default;
-  hint = default;
-  hledger = default ++ latest;
-  hledgerInterest = default ++ latest;
-  hledgerLib = default ++ latest;
-  hledgerWeb = default;
-  hlint = default ++ latest;
-  HList = default ++ latest;
-  hmatrix = default;
-  hoogle = default ++ latest;
-  hopenssl = all;
-  hostname = default;
-  hp2anyCore = default;
-  hp2anyGraph = default;
-  hS3 = default;
-  hscolour = default;
-  hsdns = all;
-  hsemail = allBut ghc6104;
-  hslogger = default;
-  hsloggerTemplate = default;
-  hspec = default ++ latest;
-  HsSyck = default;
-  HStringTemplate = default ++ latest;
-  hsyslog = all;
-  html = all;
-  HTTP = all;
-  httpConduit = default;
-  httpDate = default;
-  httpdShed = default;
-  httpTypes = default;
-  HUnit = all;
-  hxt = default;
-  idris = default;
-  IfElse = default;
-  irc = default;
-  iteratee = default;
-  jailbreakCabal = all;
-  json = default;
-  jsonTypes = default;
-  keter = default;
-  lambdabot = default;
-  languageCQuote = default;
-  languageJavascript = default;
-  largeword = default;
-  lens = default;
-  libxmlSax = default;
-  liftedBase = default;
-  ListLike = default;
-  logfloat = default;
-  mainlandPretty = default;
-  maude = default;
-  MaybeT = default;
-  MemoTrie = default;
-  mersenneRandomPure64 = default;
-  mimeMail = default;
-  MissingH = default;
-  mmap = default;
-  MonadCatchIOMtl = default;
-  MonadCatchIOTransformers = default;
-  monadControl = default;
-  monadLoops = default;
-  monadPar = default ++ latest;
-  monadPeel = default;
-  MonadPrompt = default;
-  MonadRandom = default;
-  mpppc = default;
-  mtl = all;
-  mtlparse = default;
-  multiplate = default;
-  multirec = default;
-  murmurHash = default;
-  mwcRandom = default;
-  nat = default;
-  nats = default;
-  naturals = default;
-  network = all;
-  networkInfo = default;
-  networkMulticast = default;
-  networkProtocolXmpp = default;
-  nonNegative = default;
-  numericPrelude = default;
-  numtype = default;
-  numtypeTf = default;
-  ObjectName = default;
-  OneTuple = default;
-  OpenAL = all;
-  optparseApplicative = allBut ghc6104;
-  packunused = default;
-  pandoc = default ++ latest;
-  pandocTypes = default;
-  pango = default;
-  parallel = all;
-  parseargs = default;
-  parsec3 = default;
-  parsec = all;
-  parsimony = default;
-  pathPieces = default;
-  pathtype = default;
-  pcreLight = default;
-  permutation = default ++ latest;
-  persistent = default;
-  persistentPostgresql = default;
-  persistentSqlite = default;
-  persistentTemplate = default;
-  polyparse = default;
-  ppm = default;
-  prettyShow = default;
-  primitive = all;
-  PSQueue = default;
-  pureMD5 = default;
-  pwstoreFast = default;
-  QuickCheck2 = default;
-  QuickCheck = all;
-  random = default ++ latest;
-  randomFu = default;
-  randomShuffle = default;
-  randomSource = default;
-  RangedSets = default;
-  ranges = default;
-  readline = default;
-  recaptcha = default;
-  regexBase = all;
-  regexCompat = all;
-  regexPCRE = default;
-  regexPosix = all;
-  regexpr = default;
-  regexTDFA = default;
-  regular = default;
-  RSA = default;
-  rvar = default;
-  safe = default;
-  SafeSemaphore = default;
-  SDL = default;
-  SDLImage = default;
-  SDLMixer = default;
-  SDLTtf = default;
-  semigroups = default;
-  sendfile = default;
-  SHA = default;
-  shake = default;
-  Shellac = default;
-  shelly = default;
-  simpleSendfile = default;
-  smallcheck = default ++ latest;
-  SMTPClient = default;
-  snapCore = default;
-  snap = default;
-  snapLoaderStatic = default;
-  snapServer = default;
-  split = default ++ latest;
-  srcloc = default;
-  stateref = default;
-  StateVar = default;
-  statistics = default;
-  stbImage = default;
-  stm = all;
-  storableComplex = default;
-  storableRecord = default;
-  streamproc = all;
-  strict = default;
-  strptime = default;
-  svgcairo = default;
-  syb = [ ghc704 ghc742 ghc763 ];
-  sybWithClass = default;
-  sybWithClassInstancesText = default;
-  tabular = default;
-  tagged = default;
-  tagsoup = default;
-  tar = default ++ latest;
-  Tensor = default;
-  terminfo = default;
-  testFramework = default ++ latest;
-  testFrameworkHunit = default ++ latest;
-  texmath = default;
-  text = all;
-  thLift = default;
-  timeplot = default;
-  tls = default;
-  tlsExtra = default;
-  transformers = all;
-  transformersBase = default;
-  transformersCompat = default;
-  tuple = default;
-  typeLevelNaturalNumber = default;
-  uniplate = default;
-  uniqueid = default;
-  unixCompat = default;
-  unorderedContainers = default;
-  url = default;
-  utf8Light = default;
-  utf8String = default;
-  utilityHt = default;
-  uuagc = default;
-  uuid = default;
-  uulib = default ++ latest;
-  uuOptions = default;
-  uuParsinglib = default;
-  vacuum = default;
-  vcsRevision = default;
-  Vec = default;
-  vectorAlgorithms = default;
-  vector = all;
-  vectorSpace = default;
-  vty = default;
-  waiAppStatic = default;
-  wai = default;
-  waiExtra = default;
-  waiLogger = default;
-  warp = default;
-  wlPprint = default ++ latest;
-  wlPprintExtras = default;
-  wlPprintTerminfo = default;
-  X11 = default;
-  xhtml = all;
-  xmlConduit = default;
-  xml = default;
-  xmlHamlet = default;
-  xmlTypes = default;
-  xmobar = default ++ latest;
-  xmonadContrib = default ++ latest;
-  xmonad = default ++ latest;
-  xmonadExtras = default ++ latest;
-  xssSanitize = default;
-  yesodAuth = default;
-  yesodCore = default;
-  yesod = default;
-  yesodDefault = default;
-  yesodForm = default;
-  yesodJson = default;
-  yesodPersistent = default;
-  yesodStatic = default;
-  zeromq3Haskell = default;
-  zeromqHaskell = default;
-  zipArchive = default;
-  zipper = default;
-  zlib = all;
-  zlibBindings = default;
-  zlibEnum = default;
-
-}