summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/idea/common.nix71
-rw-r--r--pkgs/applications/editors/idea/default.nix95
-rw-r--r--pkgs/build-support/setup-hooks/separate-debug-info.sh3
-rw-r--r--pkgs/development/libraries/eigen/default.nix4
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix28
-rw-r--r--pkgs/development/python-modules/numpy-no-large-files.patch35
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix34
-rw-r--r--pkgs/servers/matrix-synapse/default.nix45
-rw-r--r--pkgs/servers/matrix-synapse/matrix-synapse.patch20
-rw-r--r--pkgs/servers/rt/default.nix23
-rw-r--r--pkgs/servers/rt/override-generated.patch21
-rw-r--r--pkgs/tools/networking/inadyn/default.nix12
-rw-r--r--pkgs/tools/text/mairix/default.nix5
-rw-r--r--pkgs/tools/text/mairix/mmap.patch115
-rw-r--r--pkgs/top-level/all-packages.nix4
-rw-r--r--pkgs/top-level/perl-packages.nix594
-rw-r--r--pkgs/top-level/python-packages.nix179
17 files changed, 1094 insertions, 194 deletions
diff --git a/pkgs/applications/editors/idea/common.nix b/pkgs/applications/editors/idea/common.nix
new file mode 100644
index 00000000000..96689fa75ad
--- /dev/null
+++ b/pkgs/applications/editors/idea/common.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, patchelf, p7zip
+, coreutils, gnugrep, which, git, python, unzip, androidsdk }:
+
+{ name, product, version, build, src, meta, jdk } @ attrs:
+
+with stdenv.lib;
+
+let loName = toLower product;
+    hiName = toUpper product;
+    execName = concatStringsSep "-" (init (splitString "-" name));
+in
+
+with stdenv; lib.makeOverridable mkDerivation rec {
+  inherit name build src meta;
+  desktopItem = makeDesktopItem {
+    name = execName;
+    exec = execName;
+    comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
+    desktopName = product;
+    genericName = meta.description;
+    categories = "Application;Development;";
+    icon = execName;
+  };
+
+  buildInputs = [ makeWrapper patchelf p7zip unzip ];
+
+  patchPhase = ''
+      get_file_size() {
+        local fname="$1"
+        echo $(ls -l $fname | cut -d ' ' -f5)
+      }
+
+      munge_size_hack() {
+        local fname="$1"
+        local size="$2"
+        strip $fname
+        truncate --size=$size $fname
+      }
+
+      interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
+      if [ "${stdenv.system}" == "x86_64-linux" ]; then
+        target_size=$(get_file_size bin/fsnotifier64)
+        patchelf --set-interpreter "$interpreter" bin/fsnotifier64
+        munge_size_hack bin/fsnotifier64 $target_size
+      else
+        target_size=$(get_file_size bin/fsnotifier)
+        patchelf --set-interpreter "$interpreter" bin/fsnotifier
+        munge_size_hack bin/fsnotifier $target_size
+      fi
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,$name,share/pixmaps,libexec/${name}}
+    cp -a . $out/$name
+    ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${execName}.png
+    mv bin/fsnotifier* $out/libexec/${name}/.
+
+    jdk=${jdk.home}
+    item=${desktopItem}
+
+    makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
+      --prefix PATH : "$out/libexec/${name}:${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin" \
+      --set JDK_HOME "$jdk" \
+      --set ${hiName}_JDK "$jdk" \
+      --set ANDROID_JAVA_HOME "$jdk" \
+      --set JAVA_HOME "$jdk"
+
+    ln -s "$item/share/applications" $out/share
+  '';
+
+}
diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index 58e9ab347df..932f31d8650 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -1,82 +1,19 @@
-{ stdenv, fetchurl, makeDesktopItem, makeWrapper, patchelf, p7zip, oraclejdk8
-, coreutils, gnugrep, which, git, python, unzip, androidsdk
+{ stdenv, callPackage, fetchurl, makeDesktopItem, makeWrapper, patchelf
+, coreutils, gnugrep, which, git, python, unzip, p7zip
+, androidsdk, jdk, oraclejdk8
 }:
 
 assert stdenv.isLinux;
 
 let
 
-  # After IDEA 15 we can no longer use OpenJDK.
-  # https://youtrack.jetbrains.com/issue/IDEA-147272
-  jdk = oraclejdk8;
-
-  mkIdeaProduct = with stdenv.lib;
-  { name, product, version, build, src, meta }:
-
-  let loName = toLower product;
-      hiName = toUpper product;
-      execName = concatStringsSep "-" (init (splitString "-" name));
-  in
-
-  with stdenv; lib.makeOverridable mkDerivation rec {
-    inherit name build src meta;
-    desktopItem = makeDesktopItem {
-      name = execName;
-      exec = execName;
-      comment = lib.replaceChars ["\n"] [" "] meta.longDescription;
-      desktopName = product;
-      genericName = meta.description;
-      categories = "Application;Development;";
-      icon = execName;
-    };
-
-    buildInputs = [ makeWrapper patchelf p7zip unzip ];
-
-    patchPhase = ''
-        get_file_size() {
-          local fname="$1"
-          echo $(ls -l $fname | cut -d ' ' -f5)
-        }
-
-        munge_size_hack() {
-          local fname="$1"
-          local size="$2"
-          strip $fname
-          truncate --size=$size $fname
-        }
-
-        interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
-        if [ "${stdenv.system}" == "x86_64-linux" ]; then
-          target_size=$(get_file_size bin/fsnotifier64)
-          patchelf --set-interpreter "$interpreter" bin/fsnotifier64
-          munge_size_hack bin/fsnotifier64 $target_size
-        else
-          target_size=$(get_file_size bin/fsnotifier)
-          patchelf --set-interpreter "$interpreter" bin/fsnotifier
-          munge_size_hack bin/fsnotifier $target_size
-        fi
-    '';
-
-    installPhase = ''
-      mkdir -p $out/{bin,$name,share/pixmaps,libexec/${name}}
-      cp -a . $out/$name
-      ln -s $out/$name/bin/${loName}.png $out/share/pixmaps/${execName}.png
-      mv bin/fsnotifier* $out/libexec/${name}/.
-
-      jdk=${jdk.home}
-      item=${desktopItem}
-
-      makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${execName}" \
-        --prefix PATH : "$out/libexec/${name}:${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin" \
-        --set JDK_HOME "$jdk" \
-        --set ${hiName}_JDK "$jdk" \
-        --set ANDROID_JAVA_HOME "$jdk" \
-        --set JAVA_HOME "$jdk"
-
-      ln -s "$item/share/applications" $out/share
-    '';
-
-  };
+  bnumber = with stdenv.lib; build: last (splitString "-" build);
+  mkIdeaProduct' = callPackage ./common.nix { };
+  mkIdeaProduct = attrs: mkIdeaProduct' ({
+      # After IDEA 15 we can no longer use OpenJDK.
+      # https://youtrack.jetbrains.com/issue/IDEA-147272
+      jdk = if (bnumber attrs.build) < "143" then jdk else oraclejdk8;
+  } // attrs);
 
   buildAndroidStudio = { name, version, build, src, license, description }:
     let drv = (mkIdeaProduct rec {
@@ -239,6 +176,18 @@ in
     };
   };
 
+  idea14-community = buildIdea rec {
+    name = "idea-community-${version}";
+    version = "14.1.6";
+    build = "IC-141.3056.4";
+    description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
+    license = stdenv.lib.licenses.asl20;
+    src = fetchurl {
+      url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
+      sha256 = "157969b37sbafby1r1gva2xm3a3y0dgj7pisgxmk8k1d5rgncvil";
+    };
+  };
+
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
     version = "15.0.2";
diff --git a/pkgs/build-support/setup-hooks/separate-debug-info.sh b/pkgs/build-support/setup-hooks/separate-debug-info.sh
index dc6de05bb69..55e3236847d 100644
--- a/pkgs/build-support/setup-hooks/separate-debug-info.sh
+++ b/pkgs/build-support/setup-hooks/separate-debug-info.sh
@@ -32,6 +32,9 @@ _separateDebugInfo() {
         mkdir -p "$dst/${id:0:2}"
         objcopy --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug" --compress-debug-sections
         strip --strip-debug "$i"
+
+        # Also a create a symlink <original-name>.debug.
+        ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
     done
 }
 
diff --git a/pkgs/development/libraries/eigen/default.nix b/pkgs/development/libraries/eigen/default.nix
index 150b72cf2f5..0e43b9fb602 100644
--- a/pkgs/development/libraries/eigen/default.nix
+++ b/pkgs/development/libraries/eigen/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, cmake}:
 
 let
-  version = "3.3-alpha1";
+  version = "3.2.5";
 in
 stdenv.mkDerivation {
   name = "eigen-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     url = "http://bitbucket.org/eigen/eigen/get/${version}.tar.gz";
     name = "eigen-${version}.tar.gz";
-    sha256 = "00vmxz3da76ml3j7s8w8447sdpszx71i3xhnmwivxhpc4smpvz2q";
+    sha256 = "1vjixip19lwfia2bjpjwm09j7l20ry75493i6mjsk9djszj61agi";
   };
   
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index 3b40b7296a7..712493e7c71 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -2,18 +2,26 @@
 , telepathy_farstream, telepathy_glib, pythonDBus, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-qt-0.9.6";
+  name = "telepathy-qt-0.9.6.1";
 
   src = fetchurl {
     url = "http://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz";
-    sha256 = "0j7hs055cx5g9chn3b2p0arig70m5g9547qgqvk29kxdyxxxsmqc";
+    sha256 = "1y51c6rxk5qvmab98c8rnmrlyk27hnl248casvbq3cd93sav8vj9";
   };
-  patches = [(fetchpatch {
-    name = "gst-1.6.patch";
-    url = "http://cgit.freedesktop.org/telepathy/telepathy-qt/patch"
-      + "/?id=ec4a3d62b68a57254515f01fc5ea3325ffb1dbfb";
-    sha256 = "1rh7n3xyrwpvpa3haqi35qn4mfz4396ha43w4zsqpmcyda9y65v2";
-  })];
+  patches = let
+    mkUrl = hash: "http://cgit.freedesktop.org/telepathy/telepathy-qt/patch/?id=" + hash;
+    in [
+      (fetchpatch {
+        name = "gst-1.6.patch";
+        url = mkUrl "ec4a3d62b68a57254515f01fc5ea3325ffb1dbfb";
+        sha256 = "1rh7n3xyrwpvpa3haqi35qn4mfz4396ha43w4zsqpmcyda9y65v2";
+      })
+      (fetchpatch {
+        name = "parallel-make.patch";
+        url = mkUrl "7389dc990c67d4269f3a79c924c054e87f2e4ac5";
+        sha256 = "0mvdvyy76kpaxacljidf06wd43fr2qripr4mwsakjs3hxb1pkk57";
+      })
+    ];
 
   nativeBuildInputs = [ cmake pkgconfig python ];
   propagatedBuildInputs = [ qtbase dbus_glib telepathy_farstream telepathy_glib pythonDBus ];
@@ -22,11 +30,13 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = "-DDESIRED_QT_VERSION=${builtins.substring 0 1 qtbase.version}";
 
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=cpp" ]; # remove after the next update
+
   preBuild = ''
     NIX_CFLAGS_COMPILE+=" `pkg-config --cflags dbus-glib-1`"
   '';
 
-  enableParallelBuilding = false; # missing _gen/future-constants.h
+  enableParallelBuilding = true;
   doCheck = false; # giving up for now
 
   meta = {
diff --git a/pkgs/development/python-modules/numpy-no-large-files.patch b/pkgs/development/python-modules/numpy-no-large-files.patch
deleted file mode 100644
index 0eb415606d3..00000000000
--- a/pkgs/development/python-modules/numpy-no-large-files.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- numpy/lib/tests/test_format.py	2015-08-11 12:03:43.000000000 -0500
-+++ numpy/lib/tests/test_format_no_large_files.py	2015-11-03 16:03:30.328084827 -0600
-@@ -810,32 +810,5 @@
-     format.write_array_header_1_0(s, d)
-     assert_raises(ValueError, format.read_array_header_1_0, s)
- 
--
--def test_large_file_support():
--    from nose import SkipTest
--    if (sys.platform == 'win32' or sys.platform == 'cygwin'):
--        raise SkipTest("Unknown if Windows has sparse filesystems")
--    # try creating a large sparse file
--    tf_name = os.path.join(tempdir, 'sparse_file')
--    try:
--        # seek past end would work too, but linux truncate somewhat
--        # increases the chances that we have a sparse filesystem and can
--        # avoid actually writing 5GB
--        import subprocess as sp
--        sp.check_call(["truncate", "-s", "5368709120", tf_name])
--    except:
--        raise SkipTest("Could not create 5GB large file")
--    # write a small array to the end
--    with open(tf_name, "wb") as f:
--        f.seek(5368709120)
--        d = np.arange(5)
--        np.save(f, d)
--    # read it back
--    with open(tf_name, "rb") as f:
--        f.seek(5368709120)
--        r = np.load(f)
--    assert_array_equal(r, d)
--
--
- if __name__ == "__main__":
-     run_module_suite()
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 95ccdd89de1..1e073ea8c70 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,30 +1,26 @@
-{stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext}:
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   name = "elfutils-${version}";
-  version = "0.163";
+  version = "0.165";
 
   src = fetchurl {
-    urls = [
-      "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "7c774f1eef329309f3b05e730bdac50013155d437518a2ec0e24871d312f2e23";
+    url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2";
+    sha256 = "0wp91hlh9n0ismikljf63558rzdwim8w1s271grsbaic35vr5z57";
   };
 
-  patches = [
-    (fetchurl {
-      url = "http://fedorahosted.org/releases/e/l/elfutils/${version}/elfutils-portability-${version}.patch";
-      sha256 = "e4e82315dad2efaa4e4476503e7537e01b7c1b1f98a96de4ca1c7fa85f4f1045";
-    }) ];
-
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
-  nativeBuildInputs = [m4 bison flex gettext bzip2];
-  buildInputs = [zlib bzip2];
+  nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
+  buildInputs = [ zlib bzip2 xz ];
+
+  configureFlags =
+    [ "--program-prefix=eu-" # prevent collisions with binutils
+      "--enable-deterministic-archives"
+    ];
 
-  configureFlags = "--disable-werror";
+  enableParallelBuilding = true;
 
   crossAttrs = {
 
@@ -67,9 +63,11 @@ stdenv.mkDerivation rec {
     '';
   };
 
-  dontAddDisableDepTrack = true;
-
   meta = {
     homepage = https://fedorahosted.org/elfutils/;
+    description = "A set of utilities to handle ELF objects";
+    platforms = lib.platforms.linux;
+    license = lib.licenses.gpl3;
+    maintainers = lib.maintainers.eelco;
   };
 }
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
new file mode 100644
index 00000000000..66d9e7258f4
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -0,0 +1,45 @@
+{ pkgs, stdenv, buildPythonPackage, pythonPackages, fetchurl, fetchFromGitHub }:
+let
+  matrix-angular-sdk = buildPythonPackage rec {
+    name = "matrix-angular-sdk-${version}";
+    version = "0.6.6";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/m/matrix-angular-sdk/matrix-angular-sdk-${version}.tar.gz";
+      sha256 = "1vknhmibb8gh8lng50va2cdvng5xm7vqv9dl680m3gj38pg0bv8a";
+    };
+  };
+in
+buildPythonPackage rec {
+  name = "matrix-synapse-${version}";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "synapse";
+    rev = "f35f8d06ea58e2d0cdccd82924c7a44fd93f4c38";
+    sha256 = "0b0k1am9lh0qglagc06m91qs26ybv37k7wpbg5333x8jaf5d1si4";
+  };
+
+  patches = [ ./matrix-synapse.patch ];
+
+  propagatedBuildInputs = with pythonPackages; [
+    blist canonicaljson daemonize dateutil frozendict pillow pybcrypt pyasn1
+    pydenticon pymacaroons-pynacl pynacl pyopenssl pysaml2 pytz requests2
+    service-identity signedjson systemd twisted15 ujson unpaddedbase64 pyyaml
+    matrix-angular-sdk
+  ];
+
+  # Checks fail because of Tox.
+  doCheck = false;
+
+  buildInputs = with pythonPackages; [
+    mock setuptoolsTrial
+  ];
+
+  meta = {
+    homepage = https://matrix.org;
+    description = "Matrix reference homeserver";
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/matrix-synapse.patch b/pkgs/servers/matrix-synapse/matrix-synapse.patch
new file mode 100644
index 00000000000..a6a393ea56c
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/matrix-synapse.patch
@@ -0,0 +1,20 @@
+diff --git a/homeserver b/homeserver
+new file mode 120000
+index 0000000..2f1d413
+--- /dev/null
++++ b/homeserver
+@@ -0,0 +1 @@
++synapse/app/homeserver.py
+\ No newline at end of file
+diff --git a/setup.py b/setup.py
+index 9d24761..f3e6a00 100755
+--- a/setup.py
++++ b/setup.py
+@@ -85,6 +85,6 @@ setup(
+     include_package_data=True,
+     zip_safe=False,
+     long_description=long_description,
+-    scripts=["synctl"] + glob.glob("scripts/*"),
++    scripts=["synctl", "homeserver"] + glob.glob("scripts/*"),
+     cmdclass={'test': Tox},
+ )
diff --git a/pkgs/servers/rt/default.nix b/pkgs/servers/rt/default.nix
new file mode 100644
index 00000000000..7f8c372c335
--- /dev/null
+++ b/pkgs/servers/rt/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  name = "rt-4.2.12";
+
+  src = fetchurl {
+    url = "https://download.bestpractical.com/pub/rt/release/${name}.tar.gz";
+
+    sha256 = "0r3jhgfwwhhk654zag42mrai85yrliw9sc0kgabwjvbh173204p2";
+  };
+
+  patches = [ ./override-generated.patch ];
+
+  buildInputs = [ perl ];
+
+  buildPhase = "true";
+
+  installPhase = ''
+    mkdir $out
+    cp -a {bin,docs,etc,lib,sbin,share} $out
+    find $out -name '*.in' -exec rm '{}' \;
+  '';
+}
diff --git a/pkgs/servers/rt/override-generated.patch b/pkgs/servers/rt/override-generated.patch
new file mode 100644
index 00000000000..5727a9b50c5
--- /dev/null
+++ b/pkgs/servers/rt/override-generated.patch
@@ -0,0 +1,21 @@
+commit 7aec1e9478ef679227e759ab9537df7584c6a852
+Author: Shea Levy <shea@shealevy.com>
+Date:   Fri Jan 15 09:09:18 2016 -0500
+
+    Make it possible to override hard-coded paths
+
+diff --git a/lib/RT/Generated.pm.in b/lib/RT/Generated.pm.in
+index 9dcb80b..99b034b 100644
+--- a/lib/RT/Generated.pm.in
++++ b/lib/RT/Generated.pm.in
+@@ -82,4 +82,10 @@ $MasonDataDir = '@MASON_DATA_PATH@';
+ $MasonSessionDir = '@MASON_SESSION_PATH@';
+ 
+ 
++if ( my $override_file = $ENV{RT_PATHS_OVERRIDE} )
++{
++    require "$override_file" || die "Couldn't load paths override file: $@";
++}
++
++
+ 1;
diff --git a/pkgs/tools/networking/inadyn/default.nix b/pkgs/tools/networking/inadyn/default.nix
index 0d9ac7f6475..b63abf1ae33 100644
--- a/pkgs/tools/networking/inadyn/default.nix
+++ b/pkgs/tools/networking/inadyn/default.nix
@@ -1,16 +1,14 @@
-{ stdenv, fetchFromGitHub, gnutls33, autoreconfHook }:
+{ stdenv, fetchurl, gnutls33, autoreconfHook }:
 
 let
-  version = "1.99.13";
+  version = "1.99.15";
 in
 stdenv.mkDerivation {
   name = "inadyn-${version}";
 
-  src = fetchFromGitHub {
-    repo = "inadyn";
-    owner = "troglobit";
-    rev = version;
-    sha256 = "19z8si66b2kwb7y29qpd8y45rhg5wrycwkdgjqqp98sg5yq8p7v0";
+  src = fetchurl {
+    url = "https://github.com/troglobit/inadyn/releases/download/${version}/inadyn-${version}.tar.xz";
+    sha256 = "05f7k9wpr0fn44y0pvdrv8xyilygmq3kjhvrwlj6dgg9ackdhkmm";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/text/mairix/default.nix b/pkgs/tools/text/mairix/default.nix
index f3fece1f177..d8db034f151 100644
--- a/pkgs/tools/text/mairix/default.nix
+++ b/pkgs/tools/text/mairix/default.nix
@@ -10,9 +10,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib bzip2 bison flex ];
 
-  # https://github.com/rc0/mairix/issues/12
+  # https://github.com/rc0/mairix/pull/19
   patches = [ ./mmap.patch ];
-  patchFlags = "-p2";
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://www.rc0.org.uk/mairix;
diff --git a/pkgs/tools/text/mairix/mmap.patch b/pkgs/tools/text/mairix/mmap.patch
index 0d43ac7ce7a..241083f2dde 100644
--- a/pkgs/tools/text/mairix/mmap.patch
+++ b/pkgs/tools/text/mairix/mmap.patch
@@ -1,25 +1,29 @@
-Fix "Cannot allocate memory" on mmap of files bigger than 2GiB.
+Making mairix work with mbox files over 2GB.
 
-https://github.com/rc0/mairix/issues/12
+https://github.com/rc0/mairix/pull/19
 
-diff -ruN t/mairix-0.22/mairix.h mairix/mairix-0.22/mairix.h
---- t/mairix-0.22/mairix.h  2010-06-05 14:41:10.000000000 -0700
-+++ mairix/mairix-0.22/mairix.h 2015-07-08 13:33:06.678718524 -0700
-@@ -327,8 +327,8 @@
+diff --git a/mairix.h b/mairix.h
+index 2480492..cb25824 100644
+--- a/mairix.h
++++ b/mairix.h
+@@ -327,9 +327,9 @@ enum data_to_rfc822_error {
+   DTR8_BAD_HEADERS, /* corrupt headers */
    DTR8_BAD_ATTACHMENT /* corrupt attachment (e.g. no body part) */
  };
- struct rfc822 *data_to_rfc822(struct msg_src *src, char *data, int length, enum data_to_rfc822_error *error);
+-struct rfc822 *data_to_rfc822(struct msg_src *src, char *data, int length, enum data_to_rfc822_error *error);
 -void create_ro_mapping(const char *filename, unsigned char **data, int *len);
 -void free_ro_mapping(unsigned char *data, int len);
++struct rfc822 *data_to_rfc822(struct msg_src *src, char *data, size_t length, enum data_to_rfc822_error *error);
 +void create_ro_mapping(const char *filename, unsigned char **data, size_t *len);
 +void free_ro_mapping(unsigned char *data, size_t len);
  char *format_msg_src(struct msg_src *src);
-
+ 
  /* In tok.c */
-diff -ruN t/mairix-0.22/mbox.c mairix/mairix-0.22/mbox.c
---- t/mairix-0.22/mbox.c    2010-06-05 14:41:10.000000000 -0700
-+++ mairix/mairix-0.22/mbox.c   2015-07-08 13:32:45.126280861 -0700
-@@ -816,7 +816,7 @@
+diff --git a/mbox.c b/mbox.c
+index ebbfa78..396e27d 100644
+--- a/mbox.c
++++ b/mbox.c
+@@ -816,7 +816,7 @@ void build_mbox_lists(struct database *db, const char *folder_base, /*{{{*/
          mb->n_old_msgs_valid = mb->n_msgs;
        } else {
          unsigned char *va;
@@ -28,28 +32,65 @@ diff -ruN t/mairix-0.22/mbox.c mairix/mairix-0.22/mbox.c
          create_ro_mapping(mb->path, &va, &len);
          if (va) {
            rescan_mbox(mb, (char *) va, len);
-@@ -852,7 +852,7 @@
+@@ -852,7 +852,7 @@ int add_mbox_messages(struct database *db)/*{{{*/
    int any_new = 0;
    int N;
    unsigned char *va;
 -  int valen;
 +  size_t valen;
    enum data_to_rfc822_error error;
-
+ 
    for (i=0; i<db->n_mboxen; i++) {
-diff -ruN t/mairix-0.22/rfc822.c mairix/mairix-0.22/rfc822.c
---- t/mairix-0.22/rfc822.c  2010-06-05 14:41:10.000000000 -0700
-+++ mairix/mairix-0.22/rfc822.c 2015-07-08 13:30:59.388133879 -0700
-@@ -1250,7 +1250,7 @@
+diff --git a/reader.c b/reader.c
+index 71ac5bd..18f0108 100644
+--- a/reader.c
++++ b/reader.c
+@@ -81,7 +81,8 @@ static void read_toktable2_db(char *data, struct toktable2_db *toktable, int sta
+ /*}}}*/
+ struct read_db *open_db(char *filename)/*{{{*/
+ {
+-  int fd, len;
++  int fd;
++  size_t len;
+   char *data;
+   struct stat sb;
+   struct read_db *result;
+diff --git a/reader.h b/reader.h
+index 9b5dfa3..d709cc4 100644
+--- a/reader.h
++++ b/reader.h
+@@ -138,7 +138,7 @@ struct toktable2_db {/*{{{*/
+ struct read_db {/*{{{*/
+   /* Raw file parameters, needed later for munmap */
+   char *data;
+-  int len;
++  size_t len;
+ 
+   /* Pathname information */
+   int n_msgs;
+diff --git a/rfc822.c b/rfc822.c
+index b411f85..9c8e1a4 100644
+--- a/rfc822.c
++++ b/rfc822.c
+@@ -990,7 +990,7 @@ static void scan_status_flags(const char *s, struct headers *hdrs)/*{{{*/
+ 
+ /*{{{ data_to_rfc822() */
+ struct rfc822 *data_to_rfc822(struct msg_src *src,
+-    char *data, int length,
++    char *data, size_t length,
+     enum data_to_rfc822_error *error)
+ {
+   struct rfc822 *result;
+@@ -1265,7 +1265,7 @@ static struct ro_mapping *add_ro_cache(const char *filename, int fd, size_t len)
  }
  #endif /* USE_GZIP_MBOX || USE_BZIP_MBOX */
-
+ 
 -void create_ro_mapping(const char *filename, unsigned char **data, int *len)/*{{{*/
 +void create_ro_mapping(const char *filename, unsigned char **data, size_t *len)/*{{{*/
  {
    struct stat sb;
    int fd;
-@@ -1371,7 +1371,7 @@
+@@ -1386,7 +1386,7 @@ comp_error:
    data_alloc_type = ALLOC_MMAP;
  }
  /*}}}*/
@@ -57,8 +98,8 @@ diff -ruN t/mairix-0.22/rfc822.c mairix/mairix-0.22/rfc822.c
 +void free_ro_mapping(unsigned char *data, size_t len)/*{{{*/
  {
    int r;
-
-@@ -1399,7 +1399,7 @@
+ 
+@@ -1414,7 +1414,7 @@ static struct msg_src *setup_msg_src(char *filename)/*{{{*/
  /*}}}*/
  struct rfc822 *make_rfc822(char *filename)/*{{{*/
  {
@@ -66,11 +107,12 @@ diff -ruN t/mairix-0.22/rfc822.c mairix/mairix-0.22/rfc822.c
 +  size_t len;
    unsigned char *data;
    struct rfc822 *result;
-
-diff -ruN t/mairix-0.22/search.c mairix/mairix-0.22/search.c
---- t/mairix-0.22/search.c  2010-06-05 14:41:10.000000000 -0700
-+++ mairix/mairix-0.22/search.c 2015-07-08 13:32:25.809888610 -0700
-@@ -667,7 +667,7 @@
+ 
+diff --git a/search.c b/search.c
+index 18b51ee..97967bc 100644
+--- a/search.c
++++ b/search.c
+@@ -681,7 +681,7 @@ static void mbox_terminate(const unsigned char *data, int len, FILE *out)/*{{{*/
  static void append_file_to_mbox(const char *path, FILE *out)/*{{{*/
  {
    unsigned char *data;
@@ -79,8 +121,8 @@ diff -ruN t/mairix-0.22/search.c mairix/mairix-0.22/search.c
    create_ro_mapping(path, &data, &len);
    if (data) {
      fprintf(out, "From mairix@mairix Mon Jan  1 12:34:56 1970\n");
-@@ -683,8 +683,8 @@
-
+@@ -698,8 +698,8 @@ static int had_failed_checksum;
+ 
  static void get_validated_mbox_msg(struct read_db *db, int msg_index,/*{{{*/
                                     int *mbox_index,
 -                                   unsigned char **mbox_data, int *mbox_len,
@@ -90,16 +132,16 @@ diff -ruN t/mairix-0.22/search.c mairix/mairix-0.22/search.c
  {
    /* msg_data==NULL if checksum mismatches */
    unsigned char *start;
-@@ -715,7 +715,7 @@
+@@ -738,7 +738,7 @@ static void append_mboxmsg_to_mbox(struct read_db *db, int msg_index, FILE *out)
  {
    /* Need to common up code with try_copy_to_path */
    unsigned char *mbox_start, *msg_start;
 -  int mbox_len, msg_len;
 +  size_t mbox_len, msg_len;
    int mbox_index;
-
+ 
    get_validated_mbox_msg(db, msg_index, &mbox_index, &mbox_start, &mbox_len, &msg_start, &msg_len);
-@@ -735,7 +735,7 @@
+@@ -759,7 +759,7 @@ static void append_mboxmsg_to_mbox(struct read_db *db, int msg_index, FILE *out)
  static void try_copy_to_path(struct read_db *db, int msg_index, char *target_path)/*{{{*/
  {
    unsigned char *data;
@@ -108,3 +150,12 @@ diff -ruN t/mairix-0.22/search.c mairix/mairix-0.22/search.c
    int mbi;
    FILE *out;
    unsigned char *start;
+@@ -1214,7 +1214,7 @@ static int do_search(struct read_db *db, char **args, char *output_path, int sho
+                 unsigned int mbix, msgix;
+                 int start, len, after_end;
+                 unsigned char *mbox_start, *msg_start;
+-                int mbox_len, msg_len;
++                size_t mbox_len, msg_len;
+                 int mbox_index;
+ 
+                 start = db->mtime_table[i];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 82708cd30e5..5d52c89d059 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2076,6 +2076,8 @@ let
 
   makebootfat = callPackage ../tools/misc/makebootfat { };
 
+  matrix-synapse = callPackage ../servers/matrix-synapse { };
+
   memtester = callPackage ../tools/system/memtester { };
 
   minidlna = callPackage ../tools/networking/minidlna { };
@@ -2905,6 +2907,8 @@ let
 
   redmine = callPackage ../applications/version-management/redmine { };
 
+  rt = callPackage ../servers/rt { };
+
   rtmpdump = callPackage ../tools/video/rtmpdump { };
   rtmpdump_gnutls = rtmpdump.override { gnutlsSupport = true; opensslSupport = false; };
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 849db4820a8..501a2d26c4e 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -180,6 +180,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ApacheSession = buildPerlPackage {
+    name = "Apache-Session-1.93";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CH/CHORNY/Apache-Session-1.93.tar.gz;
+      sha256 = "8e5a4882ac8ec657d1018d74d3ba37854e2688a41ddd0e1d73955ea59f276e8d";
+    };
+    buildInputs = [ TestDeep TestException ];
+    meta = {
+      description = "A persistence framework for session data";
+      license = "perl";
+    };
+  };
+
   ApacheTest = buildPerlPackage {
     name = "Apache-Test-1.38";
     src = fetchurl {
@@ -727,6 +740,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  CacheSimpleTimedExpiry = buildPerlPackage {
+    name = "Cache-Simple-TimedExpiry-0.27";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz;
+      sha256 = "4e78b7e4dd231b5571a48cd0ee1b63953f5e34790c9d020e1595a7c7d0abbe49";
+    };
+    meta = {
+      description = "A lightweight cache with timed expiration";
+      license = "perl";
+    };
+  };
+
   Cairo = buildPerlPackage rec {
     name = "Cairo-1.106";
     src = fetchurl {
@@ -1412,6 +1437,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  CGIEmulatePSGI = buildPerlPackage {
+    name = "CGI-Emulate-PSGI-0.21";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-Emulate-PSGI-0.21.tar.gz;
+      sha256 = "06b8f1864101de69b2264ad3c3a2b15333e428cf9f5d17a777cfc61f8c64093f";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ HTTPMessage ];
+    meta = {
+      homepage = https://github.com/tokuhirom/p5-cgi-emulate-psgi;
+      description = "PSGI adapter for CGI";
+      license = "perl";
+    };
+  };
+
   CGIExpand = buildPerlPackage {
     name = "CGI-Expand-2.04";
     src = fetchurl {
@@ -1448,6 +1488,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  CGIPSGI = buildPerlPackage {
+    name = "CGI-PSGI-0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz;
+      sha256 = "c50dcb10bf8486a9843baed032ad89d879ff2f41c993342dead62f947a598d91";
+    };
+    meta = {
+      description = "Adapt CGI.pm to the PSGI protocol";
+      license = "perl";
+    };
+  };
+
   CGISession = buildPerlPackage rec {
     name = "CGI-Session-4.48";
     src = fetchurl {
@@ -1545,6 +1597,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ClassAccessorLite = buildPerlPackage {
+    name = "Class-Accessor-Lite-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz;
+      sha256 = "75b3b8ec8efe687677b63f0a10eef966e01f60735c56656ce75cbb44caba335a";
+    };
+    meta = {
+      description = "A minimalistic variant of Class::Accessor";
+      license = "perl";
+    };
+  };
+
   ClassAutouse = buildPerlPackage {
     name = "Class-Autouse-1.99_02";
     src = fetchurl {
@@ -1731,6 +1795,19 @@ let self = _self // overrides; _self = with self; {
 
   ClassMOP = Moose;
 
+  ClassReturnValue = buildPerlPackage {
+    name = "Class-ReturnValue-0.55";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz;
+      sha256 = "ed3836885d78f734ccd7a98550ec422a616df7c31310c1b7b1f6459f5fb0e4bd";
+    };
+    propagatedBuildInputs = [ DevelStackTrace ];
+    meta = {
+      description = "A smart return value object";
+      license = "perl";
+    };
+  };
+
   ClassSingleton = buildPerlPackage rec {
     name = "Class-Singleton-1.5";
     src = fetchurl {
@@ -2052,6 +2129,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ConvertColor = buildPerlPackage {
+    name = "Convert-Color-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Convert-Color-0.11.tar.gz;
+      sha256 = "b41217c72931034ba4417d7a9e1e2999f04580d4e6b31c70993fedccc2440d38";
+    };
+    buildInputs = [ TestNumberDelta ];
+    propagatedBuildInputs = [ ListUtilsBy ModulePluggable ];
+    meta = {
+      description = "Color space conversions and named lookups";
+      license = "perl";
+    };
+  };
+
   constant = buildPerlPackage rec {
     name = "constant-1.33";
     src = fetchurl {
@@ -2461,6 +2552,20 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ Clone ];
   };
 
+  CSSSquish = buildPerlPackage {
+    name = "CSS-Squish-0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TS/TSIBLEY/CSS-Squish-0.10.tar.gz;
+      sha256 = "65fc0d69acd1fa33d9a4c3b09cce0fbd737d747b1fcc4e9d87ebd91050cbcb4e";
+    };
+    buildInputs = [ TestLongString ];
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Compact many CSS files into one big file";
+      license = "unknown";
+    };
+  };
+
   Curses = let version = "1.33"; in buildPerlPackage {
     name = "Curses-${version}";
     src = fetchurl {
@@ -2571,6 +2676,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DataGUID = buildPerlPackage {
+    name = "Data-GUID-0.048";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Data-GUID-0.048.tar.gz;
+      sha256 = "cb263b1e6eeecc5797de6f945d42ace2db26c156172883550b73fa2ecdab29dc";
+    };
+    propagatedBuildInputs = [ DataUUID SubExporter SubInstall ];
+    meta = {
+      homepage = https://github.com/rjbs/Data-GUID;
+      description = "Globally unique identifiers";
+      license = "perl";
+    };
+  };
+
   DataHierarchy = buildPerlPackage {
     name = "Data-Hierarchy-0.34";
     src = fetchurl {
@@ -2580,6 +2699,20 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [TestException];
   };
 
+  DataICal = buildPerlPackage {
+    name = "Data-ICal-0.22";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Data-ICal-0.22.tar.gz;
+      sha256 = "8ae9d20af244e5a6f606c7325e9d145dd0002676a178357af860a5e156925720";
+    };
+    buildInputs = [ TestLongString TestNoWarnings TestWarn ];
+    propagatedBuildInputs = [ ClassAccessor ClassReturnValue TextvFileasData ];
+    meta = {
+      description = "Generates iCalendar (RFC 2445) calendar files";
+      license = "perl";
+    };
+  };
+
   DataInteger = buildPerlPackage rec {
     name = "Data-Integer-0.005";
     src = fetchurl {
@@ -2731,6 +2864,16 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DateExtract = buildPerlPackage {
+    name = "Date-Extract-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SH/SHARYANTO/Date-Extract-0.05.tar.gz;
+      sha256 = "ef866b4d596e976a6f4e4b266a6ad7fe4513fad9ae761d7a9ef66f672695fe6d";
+    };
+    buildInputs = [TestMockTime];
+    propagatedBuildInputs = [DateTimeFormatNatural ClassDataInheritable];
+  };
+
   DateManip = buildPerlPackage rec {
     name = "Date-Manip-6.51";
     src = fetchurl {
@@ -2874,6 +3017,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DateTimeFormatMail = buildPerlPackage {
+    name = "DateTime-Format-Mail-0.402";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BO/BOOK/DateTime-Format-Mail-0.402.tar.gz;
+      sha256 = "d788c883969e1647ed0524cc130d897276de23eaa3261f3616458ddd3a4a88fb";
+    };
+    propagatedBuildInputs = [ DateTime ParamsValidate ];
+    meta = {
+      description = "Convert between DateTime and RFC2822/822 formats";
+      license = "perl";
+    };
+  };
+
   DateTimeFormatNatural = buildPerlPackage {
     name = "DateTime-Format-Natural-1.03";
     src = fetchurl {
@@ -2940,6 +3096,20 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ DateTime DateTimeFormatBuilder ];
   };
 
+  DateTimeFormatW3CDTF = buildPerlPackage {
+    name = "DateTime-Format-W3CDTF-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-0.06.tar.gz;
+      sha256 = "b9a542bed9c52b0a89dd590a5184e38ee334c824bbe6bac842dd7dd1f88fbd7a";
+    };
+    propagatedBuildInputs = [ DateTime ];
+    meta = {
+      homepage = http://search.cpan.org/dist/DateTime-Format-W3CDTF/;
+      description = "Parse and format W3CDTF datetime strings";
+      license = "perl";
+    };
+  };
+
   DateTimeLocale = buildPerlPackage rec {
     name = "DateTime-Locale-0.92";
     src = fetchurl {
@@ -3268,6 +3438,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DBIxDBSchema = buildPerlPackage {
+    name = "DBIx-DBSchema-0.45";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.45.tar.gz;
+      sha256 = "7a2a978fb6d9feaa3e4b109c71c963b26a008a2d130c5876ecf24c5a72338a1d";
+    };
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      description = "Unknown";
+      license = "unknown";
+    };
+  };
+
   DBIxHTMLViewLATEST = buildPerlPackage {
     name = "DBIx-HTMLView-LATEST";
     src = fetchurl {
@@ -3277,6 +3460,20 @@ let self = _self // overrides; _self = with self; {
     doCheck = false;
   };
 
+  DBIxSearchBuilder = buildPerlPackage {
+    name = "DBIx-SearchBuilder-1.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/DBIx-SearchBuilder-1.66.tar.gz;
+      sha256 = "e2703c3f4b38cf232dec48be98aeab6d2dbee077dcf059369b825629c4be702e";
+    };
+    buildInputs = [ DBDSQLite ];
+    propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBI DBIxDBSchema Want ];
+    meta = {
+      description = "Encapsulate SQL queries and rows in simple perl objects";
+      license = "perl";
+    };
+  };
+
   DBIxSimple = buildPerlPackage {
     name = "DBIx-Simple-1.35";
     src = fetchurl {
@@ -3876,6 +4073,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  EmailAddressList = buildPerlPackage {
+    name = "Email-Address-List-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Email-Address-List-0.05.tar.gz;
+      sha256 = "705c23fc2163c2347ba0aea998450259f7b10577a368c6d310bd4e98b427a033";
+    };
+    buildInputs = [ JSON ];
+    propagatedBuildInputs = [ EmailAddress ];
+    meta = {
+      description = "RFC close address list parsing";
+      license = "perl";
+    };
+  };
+
   EmailDateFormat = buildPerlPackage rec {
     name = "Email-Date-Format-1.005";
     src = fetchurl {
@@ -4006,10 +4217,14 @@ let self = _self // overrides; _self = with self; {
   };
 
   Encode = buildPerlPackage {
-    name = "Encode-2.63";
+    name = "Encode-2.78";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-2.63.tar.gz;
-      sha256 = "1wrqm6c194l5yjaifc6nxx2b768sph2pv4n86fgh4blls0pvs6z4";
+      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-2.78.tar.gz;
+      sha256 = "1fc8d5c0e75ef85beeac71d1fe4a3bfcb8207755a46b32f783a3a6682672762a";
+    };
+    meta = {
+      description = "Unknown";
+      license = "perl";
     };
   };
 
@@ -4775,6 +4990,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  FileSlurper = buildPerlPackage {
+    name = "File-Slurper-0.008";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.008.tar.gz;
+      sha256 = "10f685140e2cebdd0381f24b010b028f9ca2574361a78f99f4dfe87af5d5d233";
+    };
+    meta = {
+      description = "A simple, sane and efficient module to slurp a file";
+      license = "perl";
+    };
+  };
+
   FileSlurpTiny = buildPerlPackage rec {
     name = "File-Slurp-Tiny-0.004";
     src = fetchurl {
@@ -5232,6 +5459,47 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTMLFormatter = buildPerlModule {
+    name = "HTML-Formatter-2.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.14.tar.gz;
+      sha256 = "d28eeeab48ab5f7bfcc73cc106b0f756073d98d48dfdb91ca2951f832f8e035e";
+    };
+    buildInputs = [ FileSlurper TestCPANMeta TestEOL TestNoTabs perl ];
+    propagatedBuildInputs = [ FontAFM HTMLTree ];
+    meta = {
+      homepage = https://metacpan.org/release/HTML-Formatter;
+      description = "Base class for HTML formatters";
+      license = "perl";
+    };
+  };
+
+  HTMLFormatTextWithLinks = buildPerlPackage {
+    name = "HTML-FormatText-WithLinks-0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz;
+      sha256 = "7fcc1ab79eb58fb97d43e5bdd14e21791a250a204998918c62d6a171131833b1";
+    };
+    propagatedBuildInputs = [ HTMLFormatter HTMLTree URI ];
+    meta = {
+      description = "HTML to text conversion with links as footnotes";
+      license = "perl";
+    };
+  };
+
+  HTMLFormatTextWithLinksAndTables = buildPerlPackage {
+    name = "HTML-FormatText-WithLinks-AndTables-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.06.tar.gz;
+      sha256 = "e5b23f0475fb81fd6fed688bb914295a39542b3e5b43c8517494226a52d868fa";
+    };
+    propagatedBuildInputs = [ HTMLFormatTextWithLinks HTMLFormatter HTMLTree ];
+    meta = {
+      description = "Converts HTML to Text with tables intact";
+      license = "perl";
+    };
+  };
+
   HTMLFormFu = buildPerlPackage rec {
     name = "HTML-FormFu-2.01";
     src = fetchurl {
@@ -5283,6 +5551,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTMLMasonPSGIHandler = buildPerlPackage {
+    name = "HTML-Mason-PSGIHandler-0.53";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz;
+      sha256 = "eafd7c7655dfa8261df3446b931a283d30306877b83ac4671c49cff74ea7f00b";
+    };
+    buildInputs = [ Plack ];
+    propagatedBuildInputs = [ CGIPSGI HTMLMason ];
+    meta = {
+      homepage = http://search.cpan.org/dist/HTML-Mason-PSGIHandler/;
+      description = "PSGI handler for HTML::Mason";
+      license = "perl";
+    };
+  };
+
   HTMLParser = buildPerlPackage {
     name = "HTML-Parser-3.71";
     src = fetchurl {
@@ -5296,6 +5579,32 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTMLQuoted = buildPerlPackage {
+    name = "HTML-Quoted-0.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz;
+      sha256 = "8b41f313fdc1812f02f6f6c37d58f212c84fdcf7827f7fd4b030907f39dc650c";
+    };
+    propagatedBuildInputs = [ HTMLParser ];
+    meta = {
+      description = "Extract structure of quoted HTML mail message";
+      license = "perl";
+    };
+  };
+
+  HTMLRewriteAttributes = buildPerlPackage {
+    name = "HTML-RewriteAttributes-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz;
+      sha256 = "1808ec7cdf40d2708575fe6155a88f103b17fec77973a5831c2f24c250e7a58c";
+    };
+    propagatedBuildInputs = [ HTMLParser HTMLTagset URI ];
+    meta = {
+      description = "Concise attribute rewriting";
+      license = "perl";
+    };
+  };
+
   HTMLSelectorXPath = buildPerlPackage {
     name = "HTML-Selector-XPath-0.16";
     src = fetchurl {
@@ -6369,13 +6678,29 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [I18NLangTags];
   };
 
+  LocaleMaketextFuzzy = buildPerlPackage {
+    name = "Locale-Maketext-Fuzzy-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz;
+      sha256 = "3785171ceb78cc7671319a3a6d8ced9b190e097dfcd9b2a9ebc804cd1a282f96";
+    };
+    meta = {
+      description = "Maketext from already interpolated strings";
+      license = "unrestricted";
+    };
+  };
+
   LocaleMaketextLexicon = buildPerlPackage {
-    name = "Locale-Maketext-Lexicon-0.66";
+    name = "Locale-Maketext-Lexicon-1.00";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Lexicon-0.66.tar.gz;
-      sha256 = "1cd2kbcrlyjcmlr7m8kf94mm1hlr7hpv1r80a596f4ljk81f2nvd";
+      url = mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz;
+      sha256 = "b73f6b04a58d3f0e38ebf2115a4c1532f1a4eef6fac5c6a2a449e4e14c1ddc7c";
+    };
+    meta = {
+      homepage = http://search.cpan.org/dist/Locale-Maketext-Lexicon;
+      description = "Use other catalog formats in Maketext";
+      license = "mit";
     };
-    propagatedBuildInputs = [LocaleMaketext];
   };
 
   LocaleMaketextSimple = buildPerlPackage {
@@ -6937,6 +7262,20 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ ProcWaitStat ];
   };
 
+  MIMEtools = buildPerlPackage {
+    name = "MIME-tools-5.507";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.507.tar.gz;
+      sha256 = "2f43683e1d5bed21179207d81c0caf1d5b5d480d018ac812f4ab950879fe7793";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ MailTools ];
+    meta = {
+      description = "Tools to manipulate MIME messages";
+      license = "perl";
+    };
+  };
+
   MIMETypes = buildPerlPackage {
     name = "MIME-Types-2.04";
     src = fetchurl {
@@ -7199,6 +7538,19 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [UNIVERSALrequire];
   };
 
+  ModuleRefresh = buildPerlPackage {
+    name = "Module-Refresh-0.17";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Module-Refresh-0.17.tar.gz;
+      sha256 = "6b30a6ceddc6512ab4490c16372ecf309a259f2ca147d622e478ac54e08511c3";
+    };
+    buildInputs = [ PathClass ];
+    meta = {
+      description = "Refresh %INC files when updated on disk";
+      license = "perl";
+    };
+  };
+
   ModuleRuntime = buildPerlPackage {
     name = "Module-Runtime-0.014";
     src = fetchurl {
@@ -7280,6 +7632,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ModuleVersionsReport = buildPerlPackage {
+    name = "Module-Versions-Report-1.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz;
+      sha256 = "a3261d0d84b17678d8c4fd55eb0f892f5144d81ca53ea9a38d75d1a00ad9796a";
+    };
+    meta = {
+      description = "Report versions of all modules in memory";
+      license = "perl";
+    };
+  };
+
   mod_perl2 = buildPerlPackage {
     name = "mod_perl-2.0.9";
     src = fetchurl {
@@ -8676,6 +9040,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ParallelPrefork = buildPerlPackage {
+    name = "Parallel-Prefork-0.17";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.17.tar.gz;
+      sha256 = "0d81de2632281091bd31297de1906e14cae4e845cf32200953b50406859e763b";
+    };
+    buildInputs = [ TestRequires TestSharedFork ];
+    propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
+    meta = {
+      description = "A simple prefork server framework";
+      license = "perl";
+    };
+  };
+
   ParamsClassify = buildPerlPackage rec {
     name = "Params-Classify-0.013";
     src = fetchurl {
@@ -9139,6 +9517,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ProcWait3 = buildPerlPackage {
+    name = "Proc-Wait3-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz;
+      sha256 = "1a907f5db6933dc2939bbfeffe19eeae7ed39ef1b97a2bc9b723f2f25f81caf3";
+    };
+    meta = {
+      description = "Perl extension for wait3 system call";
+      license = "perl";
+    };
+  };
+
   ProcWaitStat = buildPerlPackage rec {
     name = "Proc-WaitStat-1.00";
     src = fetchurl {
@@ -9502,6 +9892,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  RegexpCommonnetCIDR = buildPerlPackage {
+    name = "Regexp-Common-net-CIDR-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz;
+      sha256 = "39606a57aab20d4f4468300f2ec3fa2ab557fcc9cb7880ec7c6e07d80162da33";
+    };
+    propagatedBuildInputs = [ RegexpCommon ];
+    meta = {
+      license = "perl";
+    };
+  };
+
   RegexpCopy = buildPerlPackage rec {
     name = "Regexp-Copy-0.06";
     src = fetchurl {
@@ -9510,6 +9912,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  RegexpIPv6 = buildPerlPackage {
+    name = "Regexp-IPv6-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz;
+      sha256 = "d542d17d75ce93631de8ba2156da0e0b58a755c409cd4a0d27a3873a26712ce2";
+    };
+    meta = {
+      license = "unknown";
+    };
+  };
+
   RegexpParser = buildPerlPackage {
     name = "Regexp-Parser-0.21";
     src = fetchurl {
@@ -9557,6 +9970,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  RoleBasic = buildPerlPackage {
+    name = "Role-Basic-0.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz;
+      sha256 = "38a0959ef9f193ff76e72c325a9e9211bc4868689bd0e2b005778f53f8b6f36a";
+    };
+    meta = {
+      description = "Just roles. Nothing else";
+      license = "perl";
+    };
+  };
+
   RoleHasMessage = buildPerlPackage {
     name = "Role-HasMessage-0.006";
     src = fetchurl {
@@ -9716,6 +10141,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ServerStarter = buildPerlModule {
+    name = "Server-Starter-0.32";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.32.tar.gz;
+      sha256 = "a8ecc19f05f3c3b079e1c7f2c007a6df2b9a2912b9848a8fb51bd78c7b13ac1a";
+    };
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      homepage = https://github.com/kazuho/p5-Server-Starter;
+      description = "A superdaemon for hot-deploying server programs";
+      license = "perl";
+    };
+  };
+
   SetInfinite = buildPerlPackage {
     name = "Set-Infinite-0.65";
     src = fetchurl {
@@ -9756,6 +10195,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  SignalMask = buildPerlPackage {
+    name = "Signal-Mask-0.008";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz;
+      sha256 = "043d995b6b249d9ebc04c467db31bb7ddc2e55faa08e885bdb050b1f2336b73f";
+    };
+    propagatedBuildInputs = [ IPCSignal ];
+    meta = {
+      description = "Signal masks made easy";
+      license = "perl";
+    };
+  };
+
   SOAPLite = buildPerlPackage {
     name = "SOAP-Lite-1.11";
     src = fetchurl {
@@ -9920,6 +10372,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  Starlet = buildPerlPackage {
+    name = "Starlet-0.28";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.28.tar.gz;
+      sha256 = "245f606cdc8acadbe12e7e56dfa0752a8e8daa9a094373394fc17a45f5dde850";
+    };
+    buildInputs = [ LWP TestTCP ];
+    propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
+    meta = {
+      description = "A simple, high-performance PSGI/Plack HTTP server";
+      license = "perl";
+    };
+  };
+
   Starman = let version = "0.4014"; in buildPerlModule {
     name = "Starman-${version}";
     src = fetchurl {
@@ -10358,6 +10824,18 @@ let self = _self // overrides; _self = with self; {
     doCheck = false;                             # FIXME: 2/293 test failures
   };
 
+  SymbolGlobalName = buildPerlPackage {
+    name = "Symbol-Global-Name-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz;
+      sha256 = "0f7623e9d724760aa64040222da1d82f1188586791329261cc60dad1d60d6a92";
+    };
+    meta = {
+      description = "Finds name and type of a global variable";
+      license = "perl";
+    };
+  };
+
   SymbolUtil = buildPerlPackage {
     name = "Symbol-Util-0.0203";
     src = fetchurl {
@@ -11752,6 +12230,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestManifest = buildPerlPackage {
+    name = "Test-Manifest-2.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.02.tar.gz;
+      sha256 = "064783ceaf7dd569a5724d40900a3f9d92168ee4c613f7a3cb99a99aa8283396";
+    };
+    meta = {
+      description = "Interact with a t/test_manifest file";
+      license = "perl";
+    };
+  };
+
   TextMarkdown = buildPerlPackage rec {
     name = "Text-Markdown-1.000031";
     src = fetchurl {
@@ -11805,6 +12295,30 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestNumberDelta = buildPerlPackage {
+    name = "Test-Number-Delta-1.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz;
+      sha256 = "535430919e6fdf6ce55ff76e9892afccba3b7d4160db45f3ac43b0f92ffcd049";
+    };
+    meta = {
+      homepage = https://github.com/dagolden/Test-Number-Delta;
+      description = "Compare the difference between numbers against a given tolerance";
+      license = "apache";
+    };
+  };
+
+  TextPasswordPronounceable = buildPerlPackage {
+    name = "Text-Password-Pronounceable-0.30";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz;
+      sha256 = "c186a50256e0bedfafb17e7ce157e7c52f19503bb79e18ebf06255911f6ead1a";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   TextPDF = buildPerlPackage rec {
     name = "Text-PDF-0.29a";
     src = fetchurl {
@@ -11814,6 +12328,19 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ CompressZlib ];
   };
 
+  TextQuoted = buildPerlPackage {
+    name = "Text-Quoted-2.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Text-Quoted-2.09.tar.gz;
+      sha256 = "446c3e8da7e65f7988cd36e9da1159614eb0b337d6c4c0dec8f6df7673b96c5f";
+    };
+    propagatedBuildInputs = [ TextAutoformat ];
+    meta = {
+      description = "Extract the structure of a quoted mail message";
+      license = "perl";
+    };
+  };
+
   TextRecordParser = buildPerlPackage rec {
     name = "Text-RecordParser-1.6.5";
     src = fetchurl {
@@ -12003,6 +12530,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TextvFileasData = buildPerlPackage {
+    name = "Text-vFile-asData-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz;
+      sha256 = "b291ab5e0f987c5172560a692234711a75e4596d83475f72d01278369532f82a";
+    };
+    propagatedBuildInputs = [ ClassAccessorChained ];
+    meta = {
+      description = "Parse vFile formatted files into data structures";
+      license = "perl";
+    };
+  };
+
   TextWikiFormat = buildPerlPackage {
     name = "Text-WikiFormat-0.81";
     src = fetchurl {
@@ -12016,6 +12556,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TextWrapper = buildPerlPackage {
+    name = "Text-Wrapper-1.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz;
+      sha256 = "64268e15983a9df47e1d9199a491f394e89f542e54afb33f4b78f3f318e09ab9";
+    };
+    meta = {
+      description = "Word wrap text by breaking long lines";
+      license = "perl";
+    };
+  };
+
   threads = buildPerlPackage rec {
     name = "threads-2.02";
     src = fetchurl {
@@ -12199,6 +12751,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TimeParseDate = buildPerlPackage {
+    name = "Time-ParseDate-2015.103";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz;
+      sha256 = "2c1a06235bf811813caac9eaa9daa71af758667cdf7b082cb59863220fcaeed1";
+    };
+    doCheck = false;
+    meta = {
+      description = "Parse and format time values";
+      license = "unknown";
+    };
+  };
+
   Tk = buildPerlPackage rec {
     name = "Tk-804.032_501";
     src = fetchurl {
@@ -12821,6 +13386,21 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  XMLRSS = buildPerlPackage {
+    name = "XML-RSS-1.57";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.57.tar.gz;
+      sha256 = "c540a1aa7445bf611635537015590575c90c2b07c19529537677a4bcf3a4e6ae";
+    };
+    buildInputs = [ TestManifest ];
+    propagatedBuildInputs = [ DateTime DateTimeFormatMail DateTimeFormatW3CDTF HTMLParser XMLParser ];
+    meta = {
+      homepage = http://perl-rss.sourceforge.net/;
+      description = "Creates and updates RSS files";
+      license = "perl";
+    };
+  };
+
   XMLSAX = buildPerlPackage {
     name = "XML-SAX-0.96";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ec17d9434a0..7292b812622 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -11881,11 +11881,11 @@ in modules // {
     };
   in buildPythonPackage ( rec {
     name = "numpy-${version}";
-    version = "1.10.2";
+    version = "1.10.4";
 
     src = pkgs.fetchurl {
-      url = "mirror://sourceforge/numpy/${name}.tar.gz";
-      sha256 = "23a3befdf955db4d616f8bb77b324680a80a323e0c42a7e8d7388ef578d8ffa9";
+      url = "https://pypi.python.org/packages/source/n/numpy/${name}.tar.gz";
+      sha256 = "7356e98fbcc529e8d540666f5a919912752e569150e9a4f8d869c686f14c720b";
     };
 
     disabled = isPyPy;  # WIP
@@ -11899,10 +11899,15 @@ in modules // {
     buildInputs = [ pkgs.gfortran self.nose ];
     propagatedBuildInputs = [ support.openblas ];
 
-    # This patch removes the test of large file support, which takes forever
+    # Disable failing test_f2py test.
+    # f2py couldn't be found by test,
+    # even though it was used successfully to build numpy
+    
+    # The large file support test is disabled because it takes forever
     # and can cause the machine to run out of disk space when run.
-    patchPhase = ''
-      patch -p0 < ${../development/python-modules/numpy-no-large-files.patch}
+    prePatch = ''
+      sed -i 's/test_f2py/donttest/' numpy/tests/test_scripts.py
+      sed -i 's/test_large_file_support/donttest/' numpy/lib/tests/test_format.py
     '';
 
     meta = {
@@ -17823,7 +17828,7 @@ in modules // {
       md5 = "f16f4237c9ee483a0cd13208849d96ad";
     };
 
-    propagatedBuildInputs = with self; [ twisted ];
+    propagatedBuildInputs = with self; [ twisted15 ];
 
     meta = {
       description = "setuptools plug-in that helps run unit tests built with the \"Trial\" framework (from Twisted)";
@@ -17852,11 +17857,11 @@ in modules // {
 
 
   simplejson = buildPythonPackage (rec {
-    name = "simplejson-3.3.0";
+    name = "simplejson-3.8.1";
 
     src = pkgs.fetchurl {
       url = "http://pypi.python.org/packages/source/s/simplejson/${name}.tar.gz";
-      md5 = "0e29b393bceac8081fa4e93ff9f6a001";
+      sha256 = "14r4l4rcsyf87p2j4ycsbb017n4vzxfmv285rq2gny4w47rwi2j2";
     };
 
     meta = {
@@ -19758,6 +19763,35 @@ in modules // {
     };
   };
 
+  twisted15 = buildPythonPackage rec {
+    disabled = isPy3k;
+
+    name = "Twisted-15.5.0";
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
+      sha256 = "0zy18lcrris4aaslil5k12i13k56c32hzfdv6h10kbnzl026h158";
+    };
+
+    propagatedBuildInputs = with self; [ zope_interface ];
+
+    # Generate Twisted's plug-in cache.  Twited users must do it as well.  See
+    # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
+    # and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=477103 for
+    # details.
+    postInstall = "$out/bin/twistd --help > /dev/null";
+
+    meta = {
+      homepage = http://twistedmatrix.com/;
+      description = "Twisted, an event-driven networking engine written in Python";
+      longDescription = ''
+        Twisted is an event-driven networking engine written in Python
+        and licensed under the MIT license.
+      '';
+      license = licenses.mit;
+      maintainers = [ ];
+    };
+  };
+
   tzlocal = buildPythonPackage rec {
     name = "tzlocal-1.1.1";
 
@@ -22583,6 +22617,133 @@ in modules // {
     };
   };
 
+  blist = buildPythonPackage rec {
+    name = "blist-${version}";
+    version = "1.3.6";
+    disabled = isPyPy;
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/b/blist/blist-${version}.tar.gz";
+      sha256 = "1hqz9pqbwx0czvq9bjdqjqh5bwfksva1is0anfazig81n18c84is";
+    };
+  };
+
+  canonicaljson = buildPythonPackage rec {
+    name = "canonicaljson-${version}";
+    version = "1.0.0";
+
+    src = pkgs.fetchgit {
+      url = "https://github.com/matrix-org/python-canonicaljson.git";
+      rev = "refs/tags/v${version}";
+      sha256 = "29802d0effacd26ca1d6eccc8d4c7e4f543a194754ba89263861e87f44a83f0c";
+    };
+
+    propagatedBuildInputs = with self; [
+      frozendict simplejson
+    ];
+  };
+
+  daemonize = buildPythonPackage rec {
+    name = "daemonize-${version}";
+    version = "2.4.2";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/d/daemonize/daemonize-${version}.tar.gz";
+      sha256 = "0y139sq657bpzfv6k0aqm4071z4s40i6ybpni9qvngvdcz6r86n2";
+    };
+  };
+
+  frozendict = buildPythonPackage rec {
+    name = "frozendict-${version}";
+    version = "0.5";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/f/frozendict/frozendict-0.5.tar.gz";
+      sha256 = "0m4kg6hbadvf99if78nx01q7qnbyhdw3x4znl5dasgciyi54432n";
+    };
+  };
+
+  pydenticon = buildPythonPackage rec {
+    name = "pydenticon-${version}";
+    version = "0.2";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pydenticon/pydenticon-0.2.tar.gz";
+      sha256 = "035dawcspgjw2rksbnn863s7b0i9ac8cc1nshshvd1l837ir1czp";
+    };
+    propagatedBuildInputs = with self; [
+      pillow mock
+    ];
+  };
+
+  pymacaroons-pynacl = buildPythonPackage rec {
+    name = "pymacaroons-pynacl-${version}";
+    version = "0.9.3";
+
+    src = pkgs.fetchgit {
+      url = "https://github.com/matrix-org/pymacaroons.git";
+      rev = "refs/tags/v${version}";
+      sha256 = "481a486520f5a3ad2761c3cd3954d2b08f456a94fb080aaa4ad1e68ddc705b52";
+    };
+
+    propagatedBuildInputs = with self; [ pynacl six ];
+  };
+
+  pynacl = buildPythonPackage rec {
+    name = "pynacl-${version}";
+    version = "0.3.0";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/P/PyNaCl/PyNaCl-0.3.0.tar.gz";
+      sha256 = "1hknxlp3a3f8njn19w92p8nhzl9jkfwzhv5fmxhmyq2m8hqrfj8j";
+    };
+
+    propagatedBuildInputs = with self; [pkgs.libsodium six cffi pycparser pytest];
+  };
+
+  service-identity = buildPythonPackage rec {
+    name = "service-identity-${version}";
+    version = "14.0.0";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/s/service_identity/service_identity-${version}.tar.gz";
+      sha256 = "0njg9bklkkp4rl2b9vsfh9aasxy3w2dmjkv9cq34jn65lwcs619i";
+    };
+
+    propagatedBuildInputs = with self; [
+      characteristic pyasn1 pyasn1-modules pyopenssl idna
+    ];
+
+    buildInputs = with self; [
+      pytest
+    ];
+  };
+
+  signedjson = buildPythonPackage rec {
+    name = "signedjson-${version}";
+    version = "1.0.0";
+
+    src = pkgs.fetchgit {
+      url = "https://github.com/matrix-org/python-signedjson.git";
+      rev = "refs/tags/v${version}";
+      sha256 = "4ef1c89ea85846632d711a37a2e6aae1348c62b9d62ed0e80428b4a00642e9df";
+    };
+
+    propagatedBuildInputs = with self; [
+      canonicaljson unpaddedbase64 pynacl
+    ];
+  };
+
+  unpaddedbase64 = buildPythonPackage rec {
+    name = "unpaddedbase64-${version}";
+    version = "1.0.1";
+
+    src = pkgs.fetchgit {
+      url = "https://github.com/matrix-org/python-unpaddedbase64.git";
+      rev = "refs/tags/v${version}";
+      sha256 = "f221240a6d414c4244ab906b1dc8983c4d1114acb778cb857f6fc50d710be502";
+    };
+  };
 
 
   thumbor = buildPythonPackage rec {