summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-09-24 18:54:31 +0200
committerVladimír Čunát <vcunat@gmail.com>2016-09-24 18:54:31 +0200
commitfffc7638cda106c4864e0b986ff498b4f939a847 (patch)
tree12b83c1bc7d39a65df8dbff46390c8465347f202
parentd2965a7d85f7ce3f5ce265ca8dc3b73feaae226f (diff)
parente2a9617185321c38482cab343e5d4a6a182b7ce9 (diff)
downloadnixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar.gz
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar.bz2
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar.lz
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar.xz
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.tar.zst
nixlib-fffc7638cda106c4864e0b986ff498b4f939a847.zip
Merge branch 'master' into staging
-rw-r--r--.github/CONTRIBUTING.md2
-rw-r--r--doc/default.nix4
-rw-r--r--doc/languages-frameworks/index.xml1
-rw-r--r--lib/maintainers.nix4
-rw-r--r--nixos/doc/manual/release-notes/rl-1609.xml5
-rw-r--r--nixos/modules/i18n/input-method/default.nix2
-rw-r--r--nixos/modules/module-list.nix4
-rw-r--r--nixos/modules/rename.nix3
-rw-r--r--nixos/modules/services/databases/mongodb.nix18
-rw-r--r--nixos/modules/services/databases/riak.nix3
-rw-r--r--nixos/modules/services/misc/gitlab.nix2
-rw-r--r--nixos/modules/services/misc/nix-optimise.nix49
-rw-r--r--nixos/modules/services/monitoring/prometheus/alertmanager.nix116
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix27
-rw-r--r--nixos/modules/services/networking/htpdate.nix80
-rw-r--r--nixos/modules/services/networking/murmur.nix4
-rw-r--r--nixos/modules/services/web-apps/selfoss.nix166
-rw-r--r--nixos/modules/system/activation/activation-script.nix4
-rw-r--r--nixos/modules/system/boot/stage-1.nix7
-rw-r--r--nixos/modules/system/boot/stage-2-init.sh10
-rw-r--r--nixos/modules/tasks/filesystems.nix5
-rw-r--r--nixos/modules/virtualisation/containers.nix99
-rw-r--r--nixos/release.nix1
-rw-r--r--nixos/tests/kde5.nix2
-rw-r--r--nixos/tests/mongodb.nix34
-rw-r--r--nixos/tests/pump.io.nix2
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix6
-rw-r--r--pkgs/applications/editors/emacs/macport-25.1.nix91
-rw-r--r--pkgs/applications/editors/sublime3/default.nix6
-rw-r--r--pkgs/applications/editors/vim/configurable.nix10
-rw-r--r--pkgs/applications/editors/vim/python_framework.patch24
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix5
-rw-r--r--pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--pkgs/applications/graphics/rawtherapee/ReleaseInfo.cmake4
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix6
-rw-r--r--pkgs/applications/graphics/rawtherapee/dev.nix36
-rw-r--r--pkgs/applications/misc/calibre/default.nix10
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix4
-rw-r--r--pkgs/applications/misc/keepass-plugins/keefox/default.nix4
-rw-r--r--pkgs/applications/misc/keepass/default.nix6
-rw-r--r--pkgs/applications/misc/keepass/keepass-plugins-load.patch2
-rw-r--r--pkgs/applications/misc/keepass/keepass-plugins.patch46
-rw-r--r--pkgs/applications/misc/xmind/default.nix63
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/sources.nix366
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix8
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix20
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix6
-rw-r--r--pkgs/applications/networking/irc/irssi/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/retroshare/0.6.nix3
-rw-r--r--pkgs/applications/office/libreoffice/default.nix16
-rwxr-xr-xpkgs/applications/office/libreoffice/generate-libreoffice-srcs.py56
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix1261
-rw-r--r--pkgs/applications/office/libreoffice/libreoffice-srcs.nix1273
-rw-r--r--pkgs/applications/office/libreoffice/still.nix16
-rw-r--r--pkgs/applications/office/tagainijisho/default.nix2
-rw-r--r--pkgs/applications/science/logic/eprover/default.nix43
-rw-r--r--pkgs/applications/science/logic/eprover/default.upstream3
-rw-r--r--pkgs/applications/science/logic/redprl/default.nix26
-rw-r--r--pkgs/applications/science/math/ecm/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix9
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix4
-rw-r--r--pkgs/applications/version-management/tortoisehg/default.nix4
-rw-r--r--pkgs/applications/version-management/vcsh/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix8
-rw-r--r--pkgs/applications/video/streamlink/default.nix30
-rw-r--r--pkgs/applications/virtualization/rkt/default.nix6
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix6
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix1
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix9
-rw-r--r--pkgs/build-support/fetchurl/boot.nix1
-rw-r--r--pkgs/build-support/vm/default.nix12
-rw-r--r--pkgs/data/fonts/google-fonts/default.nix37
-rw-r--r--pkgs/data/fonts/lato/default.nix44
-rw-r--r--pkgs/development/compilers/as31/default.nix11
-rw-r--r--pkgs/development/compilers/ghdl/default.nix31
-rw-r--r--pkgs/development/compilers/mlton/default.nix2
-rw-r--r--pkgs/development/compilers/ocaml/4.01.0.nix85
-rw-r--r--pkgs/development/compilers/ocaml/4.02.nix83
-rw-r--r--pkgs/development/compilers/ocaml/4.03.nix6
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix89
-rw-r--r--pkgs/development/compilers/openjdk/7.nix16
-rw-r--r--pkgs/development/interpreters/erlang/R19.nix13
-rw-r--r--pkgs/development/interpreters/php/default.nix4
-rw-r--r--pkgs/development/libraries/appstream-glib/default.nix8
-rw-r--r--pkgs/development/libraries/botan/unstable.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/2.8.nix4
-rw-r--r--pkgs/development/libraries/jansson/default.nix4
-rw-r--r--pkgs/development/libraries/libxmlxx/default.nix10
-rw-r--r--pkgs/development/libraries/mesa/symlink-drivers.patch59
-rw-r--r--pkgs/development/libraries/openssl/1.0.1-CVE-2016-2177.diff256
-rw-r--r--pkgs/development/libraries/openssl/1.0.2-CVE-2016-2177.diff279
-rw-r--r--pkgs/development/libraries/openssl/default.nix20
-rw-r--r--pkgs/development/libraries/rabbitmq-c/0.4.nix21
-rw-r--r--pkgs/development/libraries/strigi/default.nix11
-rw-r--r--pkgs/development/libraries/webkitgtk/2.10.nix86
-rw-r--r--pkgs/development/libraries/webkitgtk/2.14.nix63
-rw-r--r--pkgs/development/node-packages/README.md6
-rw-r--r--pkgs/development/ocaml-modules/async/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/async_extra/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/async_find/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/async_kernel/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/async_shell/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/async_ssl/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/async_unix/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/cohttp/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/core/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/core_extended/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/core_kernel/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/cstruct/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/custom_printf/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ezjsonm/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/frontc/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-extra.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-kernel.nix16
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-unix.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async.nix16
-rw-r--r--pkgs/development/ocaml-modules/janestreet/bin_prot.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix35
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core-extended.nix22
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core_kernel.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/fieldslib.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch11
-rw-r--r--pkgs/development/ocaml-modules/janestreet/js-build-tools.nix29
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-assert.nix16
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-bench.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-compare.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-core.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-driver.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-expect.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-fail.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-here.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-jane.nix22
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-let.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/re2.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/sexplib.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/textutils.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/typerep.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/variantslib.nix19
-rw-r--r--pkgs/development/ocaml-modules/pa_test/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools/default.nix43
-rw-r--r--pkgs/development/ocaml-modules/re2/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/textutils/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/uri/default.nix4
-rw-r--r--pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch34
-rw-r--r--pkgs/development/ruby-modules/bundler/default.nix4
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix8
-rw-r--r--pkgs/development/ruby-modules/gem/nix-bundle-install.rb5
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix19
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix10
-rw-r--r--pkgs/development/tools/glide/default.nix16
-rw-r--r--pkgs/development/tools/misc/ccache/default.nix52
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix25
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix26
-rw-r--r--pkgs/development/tools/ocaml/camlp4/4_03.nix45
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix16
-rw-r--r--pkgs/development/tools/ocaml/ocamlbuild/default.nix42
-rw-r--r--pkgs/development/tools/ocaml/ocp-build/default.nix21
-rw-r--r--pkgs/development/tools/ocaml/ocp-index/default.nix33
-rw-r--r--pkgs/games/brogue/default.nix3
-rw-r--r--pkgs/games/gnuchess/default.nix4
-rw-r--r--pkgs/games/quake3/wrapper/builder.sh18
-rw-r--r--pkgs/games/quake3/wrapper/default.nix31
-rw-r--r--pkgs/misc/drivers/hplip/default.nix2
-rw-r--r--pkgs/misc/vim-plugins/default.nix17
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/os-specific/linux/ena/default.nix1
-rw-r--r--pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix23
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix4
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix23
-rw-r--r--pkgs/os-specific/linux/rtlwifi_new/default.nix38
-rw-r--r--pkgs/servers/asterisk/default.nix2
-rw-r--r--pkgs/servers/caddy/default.nix13
-rw-r--r--pkgs/servers/caddy/deps.nix85
-rw-r--r--pkgs/servers/dns/bind/default.nix4
-rw-r--r--pkgs/servers/dns/coredns/default.nix27
-rw-r--r--pkgs/servers/dns/coredns/deps.nix453
-rw-r--r--pkgs/servers/dns/coredns/pull-278.patch153
-rw-r--r--pkgs/servers/http/lighttpd/default.nix4
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/tomcat/default.nix14
-rw-r--r--pkgs/servers/mail/postfix/pflogsumm.nix1
-rw-r--r--pkgs/servers/nextcloud/default.nix32
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix5
-rw-r--r--pkgs/servers/sql/cockroachdb/default.nix6
-rw-r--r--pkgs/servers/sql/mariadb/default.nix4
-rw-r--r--pkgs/servers/sql/mysql/5.5.x.nix4
-rw-r--r--pkgs/servers/sql/mysql/jdbc/default.nix8
-rw-r--r--pkgs/servers/sql/postgresql/pg_repack/default.nix35
-rw-r--r--pkgs/servers/web-apps/selfoss/default.nix29
-rw-r--r--pkgs/tools/admin/salt/default.nix5
-rw-r--r--pkgs/tools/admin/salt/testing.nix8
-rw-r--r--pkgs/tools/audio/pnmixer/default.nix21
-rw-r--r--pkgs/tools/graphics/gmic/default.nix8
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix34
-rw-r--r--pkgs/tools/misc/docbook2mdoc/default.nix23
-rw-r--r--pkgs/tools/misc/fzf/default.nix13
-rw-r--r--pkgs/tools/misc/pod2mdoc/default.nix26
-rw-r--r--pkgs/tools/misc/texi2mdoc/default.nix21
-rw-r--r--pkgs/tools/misc/xflux/gui.nix27
-rw-r--r--pkgs/tools/misc/yle-dl/default.nix7
-rw-r--r--pkgs/tools/networking/aria2/default.nix4
-rw-r--r--pkgs/tools/networking/chrony/default.nix4
-rw-r--r--pkgs/tools/networking/davix/default.nix6
-rw-r--r--pkgs/tools/networking/htpdate/default.nix24
-rw-r--r--pkgs/tools/networking/openvpn/default.nix4
-rw-r--r--pkgs/tools/security/pass/rofi-pass.nix26
-rw-r--r--pkgs/tools/security/sudo/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/security/vault/default.nix19
-rw-r--r--pkgs/tools/system/collectd/default.nix13
-rw-r--r--pkgs/tools/text/a2ps/default.nix22
-rw-r--r--pkgs/tools/virtualization/nixos-container/default.nix2
-rwxr-xr-xpkgs/tools/virtualization/nixos-container/nixos-container.pl23
-rw-r--r--pkgs/top-level/all-packages.nix255
-rw-r--r--pkgs/top-level/perl-packages.nix79
-rw-r--r--pkgs/top-level/python-packages.nix157
235 files changed, 5779 insertions, 2832 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index fb8c6b53cb5d..9be21f2c2923 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -28,5 +28,5 @@ under the terms of [COPYING](../COPYING), which is an MIT-like license.
   * Not start with the package name
   * Not have a dot at the end
 
-See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](http://hydra.nixos.org/job/nixpkgs/trunk/manual/latest/download-by-type/doc/manual#chap-submitting-changes).
+See the nixpkgs manual for more details on how to [Submit changes to nixpkgs](https://nixos.org/nixpkgs/manual/#chap-submitting-changes).
 
diff --git a/doc/default.nix b/doc/default.nix
index f4f467b1f5a0..03134cf4cc86 100644
--- a/doc/default.nix
+++ b/doc/default.nix
@@ -61,6 +61,10 @@ pkgs.stdenv.mkDerivation {
       outputFile = "languages-frameworks/idris.xml";
     }
   + toDocbook {
+      inputFile = ../pkgs/development/node-packages/README.md;
+      outputFile = "languages-frameworks/node.xml";
+    }
+  + toDocbook {
       inputFile = ../pkgs/development/r-modules/README.md;
       outputFile = "languages-frameworks/r.xml";
     }
diff --git a/doc/languages-frameworks/index.xml b/doc/languages-frameworks/index.xml
index 8076c33f1b3f..81352ec2a9a6 100644
--- a/doc/languages-frameworks/index.xml
+++ b/doc/languages-frameworks/index.xml
@@ -21,6 +21,7 @@ such as Perl or Haskell.  These are described in this chapter.</para>
 <xi:include href="idris.xml" /> <!-- generated from ../../pkgs/development/idris-modules/README.md  -->
 <xi:include href="java.xml" />
 <xi:include href="lua.xml" />
+<xi:include href="node.xml" /> <!-- generated from ../../pkgs/development/node-packages/README.md  -->
 <xi:include href="perl.xml" />
 <xi:include href="python.xml" />
 <xi:include href="qt.xml" />
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 93d96c04a9a9..0a08b2885624 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -12,6 +12,7 @@
   abbradar = "Nikolay Amiantov <ab@fmap.me>";
   aboseley = "Adam Boseley <adam.boseley@gmail.com>";
   abuibrahim = "Ruslan Babayev <ruslan@babayev.com>";
+  acowley = "Anthony Cowley <acowley@gmail.com>";
   adev = "Adrien Devresse <adev@adev.name>";
   Adjective-Object = "Maxwell Huang-Hobbs <mhuan13@gmail.com>";
   adnelson = "Allen Nelson <ithinkican@gmail.com>";
@@ -341,6 +342,7 @@
   redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
   redvers = "Redvers Davies <red@infect.me>";
   refnil = "Martin Lavoie <broemartino@gmail.com>";
+  regnat = "Théophane Hufschmitt <regnat@regnat.ovh>";
   relrod = "Ricky Elrod <ricky@elrod.me>";
   renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
   retrry = "Tadas Barzdžius <retrry@gmail.com>";
@@ -367,6 +369,7 @@
   samuelrivas = "Samuel Rivas <samuelrivas@gmail.com>";
   sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
   schmitthenner = "Fabian Schmitthenner <development@schmitthenner.eu>";
+  schneefux = "schneefux <schneefux+nixos_pkg@schneefux.xyz>";
   schristo = "Scott Christopher <schristopher@konputa.com>";
   scolobb = "Sergiu Ivanov <sivanov@colimite.fr>";
   sepi = "Raffael Mancini <raffael@mancini.lu>";
@@ -419,6 +422,7 @@
   ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
   tv = "Tomislav Viljetić <tv@shackspace.de>";
   tvestelind = "Tomas Vestelind <tomas.vestelind@fripost.org>";
+  tvorog = "Marsel Zaripov <marszaripov@gmail.com>";
   twey = "James ‘Twey’ Kay <twey@twey.co.uk>";
   uralbash = "Svintsov Dmitry <root@uralbash.ru>";
   urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
diff --git a/nixos/doc/manual/release-notes/rl-1609.xml b/nixos/doc/manual/release-notes/rl-1609.xml
index fe55a0e801f7..c884eaa3ec28 100644
--- a/nixos/doc/manual/release-notes/rl-1609.xml
+++ b/nixos/doc/manual/release-notes/rl-1609.xml
@@ -106,6 +106,11 @@ following incompatible changes:</para>
     tool introduced to generate Go package definition from its Go source automatically.</para>
   </listitem>
 
+  <listitem>
+    <para><literal>services.mongodb.extraConfig</literal> configuration format
+    was changed to YAML.</para>
+  </listitem>
+
 </itemizedlist>
 
 
diff --git a/nixos/modules/i18n/input-method/default.nix b/nixos/modules/i18n/input-method/default.nix
index f3e568f1dde3..693e1df66c6c 100644
--- a/nixos/modules/i18n/input-method/default.nix
+++ b/nixos/modules/i18n/input-method/default.nix
@@ -7,7 +7,7 @@ let
     preferLocalBuild = true; 
     allowSubstitutes = false;
     name = "gtk2-immodule.cache";
-    buildInputs = [ pkgs.gtk cfg.package ];
+    buildInputs = [ pkgs.gtk2 cfg.package ];
     buildCommand = ''
       mkdir -p $out/etc/gtk-2.0/
       GTK_PATH=${cfg.package}/lib/gtk-2.0/ gtk-query-immodules-2.0 > $out/etc/gtk-2.0/immodules.cache
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6616238f50de..2c422085a74f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -250,6 +250,7 @@
   ./services/misc/mwlib.nix
   ./services/misc/nix-daemon.nix
   ./services/misc/nix-gc.nix
+  ./services/misc/nix-optimise.nix
   ./services/misc/nixos-manual.nix
   ./services/misc/nix-ssh-serve.nix
   ./services/misc/nzbget.nix
@@ -289,6 +290,7 @@
   ./services/monitoring/nagios.nix
   ./services/monitoring/prometheus/default.nix
   ./services/monitoring/prometheus/node-exporter.nix
+  ./services/monitoring/prometheus/alertmanager.nix
   ./services/monitoring/riemann.nix
   ./services/monitoring/riemann-dash.nix
   ./services/monitoring/riemann-tools.nix
@@ -353,6 +355,7 @@
   ./services/networking/haproxy.nix
   ./services/networking/heyefi.nix
   ./services/networking/hostapd.nix
+  ./services/networking/htpdate.nix
   ./services/networking/i2pd.nix
   ./services/networking/i2p.nix
   ./services/networking/iodine.nix
@@ -474,6 +477,7 @@
   ./services/web-apps/mattermost.nix
   ./services/web-apps/pump.io.nix
   ./services/web-apps/tt-rss.nix
+  ./services/web-apps/selfoss.nix
   ./services/web-servers/apache-httpd/default.nix
   ./services/web-servers/caddy.nix
   ./services/web-servers/fcgiwrap.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 34b9724442eb..e597cec6b32d 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -139,6 +139,9 @@ with lib;
     # fontconfig-ultimate
     (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "rendering" ] [ "fonts" "fontconfig" "ultimate" "preset" ])
 
+    # murmur
+    (mkRenamedOptionModule [ "services" "murmur" "welcome" ] [ "services" "murmur" "welcometext" ])
+
     # Options that are obsolete and have no replacement.
     (mkRemovedOptionModule [ "boot" "initrd" "luks" "enable" ] "")
     (mkRemovedOptionModule [ "programs" "bash" "enable" ] "")
diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix
index ef9bc46e4a0e..38e46a0c6ef9 100644
--- a/nixos/modules/services/databases/mongodb.nix
+++ b/nixos/modules/services/databases/mongodb.nix
@@ -12,13 +12,11 @@ let
 
   mongoCnf = pkgs.writeText "mongodb.conf"
   ''
-    bind_ip = ${cfg.bind_ip}
-    ${optionalString cfg.quiet "quiet = true"}
-    dbpath = ${cfg.dbpath}
-    syslog = true
-    fork = true
-    pidfilepath = ${cfg.pidFile}
-    ${optionalString (cfg.replSetName != "") "replSet = ${cfg.replSetName}"}
+    net.bindIp: ${cfg.bind_ip}
+    ${optionalString cfg.quiet "systemLog.quiet: true"}
+    systemLog.destination: syslog
+    storage.dbPath: ${cfg.dbpath}
+    ${optionalString (cfg.replSetName != "") "replication.replSetName: ${cfg.replSetName}"}
     ${cfg.extraConfig}
   '';
 
@@ -84,9 +82,9 @@ in
       extraConfig = mkOption {
         default = "";
         example = ''
-          nojournal = true
+          storage.journal.enabled: false
         '';
-        description = "MongoDB extra configuration";
+        description = "MongoDB extra configuration in YAML format";
       };
     };
 
@@ -112,7 +110,7 @@ in
         after = [ "network.target" ];
 
         serviceConfig = {
-          ExecStart = "${mongodb}/bin/mongod --quiet --config ${mongoCnf}";
+          ExecStart = "${mongodb}/bin/mongod --quiet --config ${mongoCnf} --fork --pidfilepath ${cfg.pidFile}";
           User = cfg.user;
           PIDFile = cfg.pidFile;
           Type = "forking";
diff --git a/nixos/modules/services/databases/riak.nix b/nixos/modules/services/databases/riak.nix
index bee768fa42ae..4477904f78c6 100644
--- a/nixos/modules/services/databases/riak.nix
+++ b/nixos/modules/services/databases/riak.nix
@@ -20,7 +20,7 @@ in
 
       package = mkOption {
         type = types.package;
-        example = literalExample "pkgs.riak2";
+        example = literalExample "pkgs.riak";
         description = ''
           Riak package to use.
         '';
@@ -108,6 +108,7 @@ in
         pkgs.bash
       ];
 
+      environment.HOME = "${cfg.dataDir}";
       environment.RIAK_DATA_DIR = "${cfg.dataDir}";
       environment.RIAK_LOG_DIR = "${cfg.logDir}";
       environment.RIAK_ETC_DIR = "/etc/riak";
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index b3f09999adba..de90d461f527 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -533,6 +533,8 @@ in {
           fi
         fi
 
+        # enable required pg_trgm extension for gitlab
+        psql gitlab -c "CREATE EXTENSION IF NOT EXISTS pg_trgm"
         # Always do the db migrations just to be sure the database is up-to-date
         ${gitlab-rake}/bin/gitlab-rake db:migrate RAILS_ENV=production
 
diff --git a/nixos/modules/services/misc/nix-optimise.nix b/nixos/modules/services/misc/nix-optimise.nix
new file mode 100644
index 000000000000..fea322a68f8e
--- /dev/null
+++ b/nixos/modules/services/misc/nix-optimise.nix
@@ -0,0 +1,49 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.nix.optimise;
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    nix.optimise = {
+
+      automatic = mkOption {
+        default = false;
+        type = types.bool;
+        description = "Automatically run the nix store optimiser at a specific time.";
+      };
+
+      dates = mkOption {
+        default = "03:45";
+        type = types.listOf types.str;
+        description = ''
+          Specification (in the format described by
+          <citerefentry><refentrytitle>systemd.time</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>) of the time at
+          which the optimiser will run.
+        '';
+      };
+    };
+  };
+
+
+  ###### implementation
+
+  config = {
+
+    systemd.services.nix-optimise =
+      { description = "Nix Store Optimiser";
+        serviceConfig.ExecStart = "${config.nix.package}/bin/nix-store --optimise";
+        startAt = optional cfg.automatic cfg.dates;
+      };
+
+  };
+
+}
diff --git a/nixos/modules/services/monitoring/prometheus/alertmanager.nix b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
new file mode 100644
index 000000000000..a9c0ce4ed6cb
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/alertmanager.nix
@@ -0,0 +1,116 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.alertmanager;
+  mkConfigFile = pkgs.writeText "alertmanager.yml" (builtins.toJSON cfg.configuration);
+in {
+  options = {
+    services.prometheus.alertmanager = {
+      enable = mkEnableOption "Prometheus Alertmanager";
+
+      user = mkOption {
+        type = types.str;
+        default = "nobody";
+        description = ''
+          User name under which Alertmanager shall be run.
+        '';
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "nogroup";
+        description = ''
+          Group under which Alertmanager shall be run.
+        '';
+      };
+
+      configuration = mkOption {
+        type = types.attrs;
+        default = {};
+        description = ''
+          Alertmanager configuration as nix attribute set.
+        '';
+      };
+
+      logFormat = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          If set use a syslog logger or JSON logging.
+        '';
+      };
+
+      logLevel = mkOption {
+        type = types.enum ["debug" "info" "warn" "error" "fatal"];
+        default = "warn";
+        description = ''
+          Only log messages with the given severity or above.
+        '';
+      };
+
+      webExternalUrl = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          The URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy).
+          Used for generating relative and absolute links back to Alertmanager itself.
+          If the URL has a path portion, it will be used to prefix all HTTP endoints served by Alertmanager.
+          If omitted, relevant URL components will be derived automatically.
+        '';
+      };
+
+      listenAddress = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Address to listen on for the web interface and API.
+        '';
+      };
+
+      port = mkOption {
+        type = types.int;
+        default = 9093;
+        description = ''
+          Port to listen on for the web interface and API.
+        '';
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Open port in firewall for incoming connections.
+        '';
+      };
+    };
+  };
+
+
+  config = mkIf cfg.enable {
+    networking.firewall.allowedTCPPorts = optional cfg.openFirewall cfg.port;
+
+    systemd.services.alertmanager = {
+      wantedBy = [ "multi-user.target" ];
+      after    = [ "network.target" ];
+      script = ''
+        ${pkgs.prometheus-alertmanager.bin}/bin/alertmanager \
+        -config.file ${mkConfigFile} \
+        -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+        -log.level ${cfg.logLevel} \
+        ${optionalString (cfg.webExternalUrl != null) ''-web.external-url ${cfg.webExternalUrl} \''}
+        ${optionalString (cfg.logFormat != null) "-log.format ${cfg.logFormat}"}
+      '';
+
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        Restart  = "always";
+        PrivateTmp = true;
+        WorkingDirectory = "/tmp";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 31979d2660cc..e6817ee227ab 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -29,6 +29,9 @@ let
     "-storage.local.path=${cfg.dataDir}/metrics"
     "-config.file=${writePrettyJSON "prometheus.yml" promConfig}"
     "-web.listen-address=${cfg.listenAddress}"
+    "-alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
+    "-alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
+    (optionalString (cfg.alertmanagerURL != []) "-alertmanager.url=${concatStringsSep "," cfg.alertmanagerURL}")
   ];
 
   promTypes.globalConfig = types.submodule {
@@ -388,6 +391,30 @@ in {
           A list of scrape configurations.
         '';
       };
+
+      alertmanagerURL = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          List of Alertmanager URLs to send notifications to.
+        '';
+      };
+
+      alertmanagerNotificationQueueCapacity = mkOption {
+        type = types.int;
+        default = 10000;
+        description = ''
+          The capacity of the queue for pending alert manager notifications.
+        '';
+      };
+
+      alertmanagerTimeout = mkOption {
+        type = types.int;
+        default = 10;
+        description = ''
+          Alert manager HTTP API timeout (in seconds).
+        '';
+      };
     };
   };
 
diff --git a/nixos/modules/services/networking/htpdate.nix b/nixos/modules/services/networking/htpdate.nix
new file mode 100644
index 000000000000..f5d512c7cd5a
--- /dev/null
+++ b/nixos/modules/services/networking/htpdate.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  inherit (pkgs) htpdate;
+
+  cfg = config.services.htpdate;
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.htpdate = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable htpdate daemon.
+        '';
+      };
+
+      extraOptions = mkOption {
+        type = types.str;
+        default = "";
+        description = ''
+          Additional command line arguments to pass to htpdate.
+        '';
+      };
+
+      servers = mkOption {
+        type = types.listOf types.str;
+        default = [ "www.google.com" ];
+        description = ''
+          HTTP servers to use for time synchronization.
+        '';
+      };
+
+      proxy = mkOption {
+        type = types.str;
+        default = "";
+        example = "127.0.0.1:8118";
+        description = ''
+          HTTP proxy used for requests.
+        '';
+      };
+
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    systemd.services.htpdate = {
+      description = "htpdate daemon";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "forking";
+        PIDFile = "/var/run/htpdate.pid";
+        ExecStart = concatStringsSep " " [
+          "${htpdate}/bin/htpdate"
+          "-D -u nobody"
+          "-a -s"
+          "-l"
+          "${optionalString (cfg.proxy != "") "-P ${cfg.proxy}"}"
+          "${cfg.extraOptions}"
+          "${concatStringsSep " " cfg.servers}"
+        ];
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/networking/murmur.nix b/nixos/modules/services/networking/murmur.nix
index 1cc19a2c9e09..134544cda681 100644
--- a/nixos/modules/services/networking/murmur.nix
+++ b/nixos/modules/services/networking/murmur.nix
@@ -15,7 +15,7 @@ let
     logfile=/var/log/murmur/murmurd.log
     pidfile=${cfg.pidfile}
 
-    welcome="${cfg.welcome}"
+    welcometext="${cfg.welcometext}"
     port=${toString cfg.port}
 
     ${if cfg.hostName == "" then "" else "host="+cfg.hostName}
@@ -84,7 +84,7 @@ in
         description = "Path to PID file for Murmur daemon.";
       };
 
-      welcome = mkOption {
+      welcometext = mkOption {
         type = types.str;
         default = "";
         description = "Welcome message for connected clients.";
diff --git a/nixos/modules/services/web-apps/selfoss.nix b/nixos/modules/services/web-apps/selfoss.nix
new file mode 100644
index 000000000000..5571f77334cc
--- /dev/null
+++ b/nixos/modules/services/web-apps/selfoss.nix
@@ -0,0 +1,166 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.selfoss;
+
+  poolName = "selfoss_pool";
+  phpfpmSocketName = "/var/run/phpfpm/${poolName}.sock";
+
+  dataDir = "/var/lib/selfoss";
+
+  selfoss-config =
+  let
+    db_type = cfg.database.type;
+    default_port = if (db_type == "mysql") then 3306 else 5342;
+  in
+  pkgs.writeText "selfoss-config.ini" ''
+    [globals]
+    ${lib.optionalString (db_type != "sqlite") ''
+      db_type=${db_type}
+      db_host=${cfg.database.host}
+      db_database=${cfg.database.name}
+      db_username=${cfg.database.user}
+      db_password=${cfg.database.password}
+      db_port=${if (cfg.database.port != null) then cfg.database.port
+                    else default_port}
+    ''
+    }
+    ${cfg.extraConfig}
+  '';
+in
+  {
+    options = {
+      services.selfoss = {
+        enable = mkEnableOption "selfoss";
+
+        user = mkOption {
+          type = types.str;
+          default = "nginx";
+          example = "nginx";
+          description = ''
+            User account under which both the service and the web-application run.
+          '';
+        };
+
+        pool = mkOption {
+          type = types.str;
+          default = "${poolName}";
+          description = ''
+            Name of existing phpfpm pool that is used to run web-application.
+            If not specified a pool will be created automatically with
+            default values.
+          '';
+        };
+
+      database = {
+        type = mkOption {
+          type = types.enum ["pgsql" "mysql" "sqlite"];
+          default = "sqlite";
+          description = ''
+            Database to store feeds. Supported are sqlite, pgsql and mysql.
+          '';
+        };
+
+        host = mkOption {
+          type = types.str;
+          default = "localhost";
+          description = ''
+            Host of the database (has no effect if type is "sqlite").
+          '';
+        };
+
+        name = mkOption {
+          type = types.str;
+          default = "tt_rss";
+          description = ''
+            Name of the existing database (has no effect if type is "sqlite").
+          '';
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "tt_rss";
+          description = ''
+            The database user. The user must exist and has access to
+            the specified database (has no effect if type is "sqlite").
+          '';
+        };
+
+        password = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          description = ''
+            The database user's password (has no effect if type is "sqlite").
+          '';
+        };
+
+        port = mkOption {
+          type = types.nullOr types.int;
+          default = null;
+          description = ''
+            The database's port. If not set, the default ports will be
+            provided (5432 and 3306 for pgsql and mysql respectively)
+            (has no effect if type is "sqlite").
+          '';
+        };
+      };
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Extra configuration added to config.ini
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") {
+      "${poolName}" = ''
+        listen = "${phpfpmSocketName}";
+        listen.owner = nginx
+        listen.group = nginx
+        listen.mode = 0600
+        user = nginx
+        pm = dynamic
+        pm.max_children = 75
+        pm.start_servers = 10
+        pm.min_spare_servers = 5
+        pm.max_spare_servers = 20
+        pm.max_requests = 500
+        catch_workers_output = 1
+      '';
+    };
+
+    systemd.services.selfoss-config = {
+      serviceConfig.Type = "oneshot";
+      script = ''
+        mkdir -m 755 -p ${dataDir}
+        cd ${dataDir}
+
+        # Delete all but the "data" folder
+        ls | grep -v data | while read line; do rm -rf $line; done || true
+
+        # Create the files
+        cp -r "${pkgs.selfoss}/"* "${dataDir}"
+        ln -sf "${selfoss-config}" "${dataDir}/config.ini"
+        chown -R "${cfg.user}" "${dataDir}"
+        chmod -R 755 "${dataDir}"
+      '';
+      wantedBy = [ "multi-user.target" ];
+    };
+
+    systemd.services.selfoss-update = {
+      serviceConfig = {
+        ExecStart = "${pkgs.php}/bin/php ${dataDir}/cliupdate.php";
+        User = "${cfg.user}";
+      };
+      startAt = "hourly";
+      after = [ "selfoss-config.service" ];
+      wantedBy = [ "multi-user.target" ];
+
+    };
+
+  };
+}
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 60298362d767..4c3d30e346c5 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -142,10 +142,10 @@ in
         # Empty, immutable home directory of many system accounts.
         mkdir -p /var/empty
         # Make sure it's really empty
-        ${pkgs.e2fsprogs}/bin/chattr -i /var/empty
+        ${pkgs.e2fsprogs}/bin/chattr -f -i /var/empty || true
         find /var/empty -mindepth 1 -delete
         chmod 0555 /var/empty
-        ${pkgs.e2fsprogs}/bin/chattr +i /var/empty
+        ${pkgs.e2fsprogs}/bin/chattr -f +i /var/empty || true
       '';
 
     system.activationScripts.usrbinenv = if config.environment.usrbinenv != null
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 513c121347b1..40e67fa5f8d2 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -198,9 +198,10 @@ let
       preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
 
     resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
-                    (filter (sd: (sd ? label || hasPrefix "/dev/" sd.device) && !sd.randomEncryption 
-                    # Don't include zram devices
-                    && !(hasPrefix "/dev/zram" sd.device)) config.swapDevices);
+                    (filter (sd: hasPrefix "/dev/" sd.device && !sd.randomEncryption
+                             # Don't include zram devices
+                             && !(hasPrefix "/dev/zram" sd.device)
+                            ) config.swapDevices);
 
     fsInfo =
       let f = fs: [ fs.mountPoint (if fs.device != null then fs.device else "/dev/disk/by-label/${fs.label}") fs.fsType (builtins.concatStringsSep "," fs.options) ];
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index ae88222f2780..f827e530f877 100644
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -111,16 +111,6 @@ rm -f /etc/{group,passwd,shadow}.lock
 rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
 
 
-# Create a ramfs on /run/keys to hold secrets that shouldn't be
-# written to disk (generally used for NixOps, harmless elsewhere).
-if ! mountpoint -q /run/keys; then
-    rm -rf /run/keys
-    mkdir /run/keys
-    mount -t ramfs ramfs /run/keys
-    chown 0:96 /run/keys
-    chmod 0750 /run/keys
-fi
-
 mkdir -m 0755 -p /run/lock
 
 
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index 3c822c8716d0..d47f6854e338 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -18,7 +18,7 @@ let
 
   prioOption = prio: optionalString (prio != null) " pri=${toString prio}";
 
-  specialFSTypes = [ "proc" "sysfs" "tmpfs" "devtmpfs" "devpts" ];
+  specialFSTypes = [ "proc" "sysfs" "tmpfs" "ramfs" "devtmpfs" "devpts" ];
 
   coreFileSystemOpts = { name, config, ... }: {
 
@@ -290,6 +290,9 @@ in
       "/dev" = { fsType = "devtmpfs"; options = [ "nosuid" "strictatime" "mode=755" "size=${config.boot.devSize}" ]; };
       "/dev/shm" = { fsType = "tmpfs"; options = [ "nosuid" "nodev" "strictatime" "mode=1777" "size=${config.boot.devShmSize}" ]; };
       "/dev/pts" = { fsType = "devpts"; options = [ "nosuid" "noexec" "mode=620" "gid=${toString config.ids.gids.tty}" ]; };
+
+      # To hold secrets that shouldn't be written to disk (generally used for NixOps, harmless elsewhere)
+      "/run/keys" = { fsType = "ramfs"; options = [ "nosuid" "nodev" "mode=750" "gid=${toString config.ids.gids.keys}" ]; };
     } // optionalAttrs (!config.boot.isContainer) {
       # systemd-nspawn populates /sys by itself, and remounting it causes all
       # kinds of weird issues (most noticeably, waiting for host disk device
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 413aa94339f1..f570813805cf 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -12,21 +12,21 @@ let
         ''
         echo "Bringing ${name} up"
         ip link set dev ${name} up
-        ${optionalString (cfg . "localAddress" or null != null) ''
+        ${optionalString (cfg.localAddress != null) ''
           echo "Setting ip for ${name}"
-          ip addr add ${cfg . "localAddress"} dev ${name}
+          ip addr add ${cfg.localAddress} dev ${name}
         ''}
-        ${optionalString (cfg . "localAddress6" or null != null) ''
+        ${optionalString (cfg.localAddress6 != null) ''
           echo "Setting ip6 for ${name}"
-          ip -6 addr add ${cfg . "localAddress6"} dev ${name}
+          ip -6 addr add ${cfg.localAddress6} dev ${name}
         ''}
-        ${optionalString (cfg . "hostAddress" or null != null) ''
+        ${optionalString (cfg.hostAddress != null) ''
           echo "Setting route to host for ${name}"
-          ip route add ${cfg . "hostAddress"} dev ${name}
+          ip route add ${cfg.hostAddress} dev ${name}
         ''}
-        ${optionalString (cfg . "hostAddress6" or null != null) ''
+        ${optionalString (cfg.hostAddress6 != null) ''
           echo "Setting route6 to host for ${name}"
-          ip -6 route add ${cfg . "hostAddress6"} dev ${name}
+          ip -6 route add ${cfg.hostAddress6} dev ${name}
         ''}
         ''
         );
@@ -56,9 +56,7 @@ let
             ip -6 route add default via $HOST_ADDRESS6
           fi
 
-          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
-          ip a
-          ip r
+          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
         fi
 
         # Start the regular stage 1 script.
@@ -67,7 +65,8 @@ let
     );
 
   nspawnExtraVethArgs = (name: cfg: "--network-veth-extra=${name}");
-  startScript = (cfg:
+
+  startScript = cfg:
     ''
       mkdir -p -m 0755 "$root/etc" "$root/var/lib"
       mkdir -p -m 0700 "$root/var/lib/private" "$root/root" /run/containers
@@ -92,11 +91,7 @@ let
         fi
       fi
 
-      ${if cfg . "extraVeths" or null != null then
-        ''extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg . "extraVeths" or {})}"''
-        else
-          ''# No extra veth pairs to create''
-      }
+      extraFlags+=" ${concatStringsSep " " (mapAttrsToList nspawnExtraVethArgs cfg.extraVeths)}"
 
       for iface in $INTERFACES; do
         extraFlags+=" --network-interface=$iface"
@@ -135,10 +130,9 @@ let
         --setenv LOCAL_ADDRESS6="$LOCAL_ADDRESS6" \
         --setenv PATH="$PATH" \
         ${containerInit cfg} "''${SYSTEM_PATH:-/nix/var/nix/profiles/system}/init"
-    ''
-    );
+    '';
 
-  preStartScript = (cfg:
+  preStartScript = cfg:
     ''
       # Clean up existing machined registration and interfaces.
       machinectl terminate "$INSTANCE" 2> /dev/null || true
@@ -151,45 +145,43 @@ let
       ${concatStringsSep "\n" (
         mapAttrsToList (name: cfg:
           ''ip link del dev ${name} 2> /dev/null || true ''
-        ) cfg . "extraVeths" or {}
+        ) cfg.extraVeths
       )}
-   ''
-    );
+   '';
+
   postStartScript = (cfg:
     let
-      ipcall = (cfg: ipcmd: variable: attribute:
-        if cfg . attribute or null == null then
+      ipcall = cfg: ipcmd: variable: attribute:
+        if cfg.${attribute} == null then
           ''
             if [ -n "${variable}" ]; then
               ${ipcmd} add ${variable} dev $ifaceHost
             fi
           ''
         else
-          ''${ipcmd} add ${cfg . attribute} dev $ifaceHost''
-        );
-      renderExtraVeth = (name: cfg:
-        if cfg . "hostBridge" or null != null then
+          ''${ipcmd} add ${cfg.${attribute}} dev $ifaceHost'';
+      renderExtraVeth = name: cfg:
+        if cfg.hostBridge != null then
           ''
             # Add ${name} to bridge ${cfg.hostBridge}
             ip link set dev ${name} master ${cfg.hostBridge} up
           ''
         else
           ''
-          # Set IPs and routes for ${name}
-          ${optionalString (cfg . "hostAddress" or null != null) ''
-            ip addr add ${cfg . "hostAddress"} dev ${name}
-          ''}
-          ${optionalString (cfg . "hostAddress6" or null != null) ''
-            ip -6 addr add ${cfg . "hostAddress6"} dev ${name}
-          ''}
-          ${optionalString (cfg . "localAddress" or null != null) ''
-            ip route add ${cfg . "localAddress"} dev ${name}
-          ''}
-          ${optionalString (cfg . "localAddress6" or null != null) ''
-            ip -6 route add ${cfg . "localAddress6"} dev ${name}
-          ''}
-          ''
-        );
+            # Set IPs and routes for ${name}
+            ${optionalString (cfg.hostAddress != null) ''
+              ip addr add ${cfg.hostAddress} dev ${name}
+            ''}
+            ${optionalString (cfg.hostAddress6 != null) ''
+              ip -6 addr add ${cfg.hostAddress6} dev ${name}
+            ''}
+            ${optionalString (cfg.localAddress != null) ''
+              ip route add ${cfg.localAddress} dev ${name}
+            ''}
+            ${optionalString (cfg.localAddress6 != null) ''
+              ip -6 route add ${cfg.localAddress6} dev ${name}
+            ''}
+          '';
     in
       ''
         if [ "$PRIVATE_NETWORK" = 1 ]; then
@@ -202,7 +194,7 @@ let
             ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"}
             ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"}
           fi
-          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg . "extraVeths" or {})}
+          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
         fi
 
         # Get the leader PID so that we can signal it in
@@ -307,6 +299,15 @@ let
 
   };
 
+  dummyConfig =
+    {
+      extraVeths = {};
+      hostAddress = null;
+      hostAddress6 = null;
+      localAddress = null;
+      localAddress6 = null;
+    };
+
 in
 
 {
@@ -451,7 +452,7 @@ in
         containers.  Each container appears as a service
         <literal>container-<replaceable>name</replaceable></literal>
         on the host system, allowing it to be started and stopped via
-        <command>systemctl</command> .
+        <command>systemctl</command>.
       '';
     };
 
@@ -470,11 +471,11 @@ in
       environment.INSTANCE = "%i";
       environment.root = "/var/lib/containers/%i";
 
-      preStart = preStartScript {};
+      preStart = preStartScript dummyConfig;
 
-      script = startScript {};
+      script = startScript dummyConfig;
 
-      postStart = postStartScript {};
+      postStart = postStartScript dummyConfig;
 
       preStop =
         ''
diff --git a/nixos/release.nix b/nixos/release.nix
index d66ebd7cb15c..7fcff78f6b95 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -260,6 +260,7 @@ in rec {
   #tests.logstash = callTest tests/logstash.nix {};
   tests.mathics = callTest tests/mathics.nix {};
   tests.misc = callTest tests/misc.nix {};
+  tests.mongodb = callTest tests/mongodb.nix {};
   tests.mumble = callTest tests/mumble.nix {};
   tests.munin = callTest tests/munin.nix {};
   tests.mysql = callTest tests/mysql.nix {};
diff --git a/nixos/tests/kde5.nix b/nixos/tests/kde5.nix
index 787dd2f8cbdd..30a0d09d18bb 100644
--- a/nixos/tests/kde5.nix
+++ b/nixos/tests/kde5.nix
@@ -1,7 +1,7 @@
 import ./make-test.nix ({ pkgs, ...} :
 
 {
-  name = "sddm";
+  name = "kde5";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ ttuegel ];
   };
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
new file mode 100644
index 000000000000..18535f51af9b
--- /dev/null
+++ b/nixos/tests/mongodb.nix
@@ -0,0 +1,34 @@
+# This test start mongodb, runs a query using mongo shell
+
+import ./make-test.nix ({ pkgs, ...} : let
+  testQuery = pkgs.writeScript "nixtest.js" ''
+    db.greetings.insert({ "greeting": "hello" });
+    print(db.greetings.findOne().greeting);
+  '';
+in {
+  name = "mongodb";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bluescreen303 offline wkennington cstrahan rvl ];
+  };
+
+  nodes = {
+    one =
+      { config, pkgs, ... }:
+        {
+          services = {
+           mongodb.enable = true;
+           mongodb.extraConfig = ''
+             # Allow starting engine with only a small virtual disk
+             storage.journal.enabled: false
+             storage.mmapv1.smallFiles: true
+           '';
+          };
+        };
+    };
+
+  testScript = ''
+    startAll;
+    $one->waitForUnit("mongodb.service");
+    $one->succeed("mongo nixtest ${testQuery}") =~ /hello/ or die;
+  '';
+})
diff --git a/nixos/tests/pump.io.nix b/nixos/tests/pump.io.nix
index 3864f676497e..18da52b5134b 100644
--- a/nixos/tests/pump.io.nix
+++ b/nixos/tests/pump.io.nix
@@ -77,7 +77,7 @@ in {
            }; };
            mongodb.enable = true;
            mongodb.extraConfig = ''
-             nojournal = true
+             storage.journal.enabled: false
            '';
           };
           systemd.services.mongodb.unitConfig.Before = "pump.io.service";
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index b3008f8cb241..bc3f7b064d49 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -403,16 +403,16 @@ rec {
 
   testng = buildEclipsePlugin rec {
     name = "testng-${version}";
-    version = "6.9.11.201604020423";
+    version = "6.9.12.201607091356";
 
     srcFeature = fetchurl {
       url = "http://beust.com/eclipse-old/eclipse_${version}/features/org.testng.eclipse_${version}.jar";
-      sha256 = "1cp7f6f0525wqwjj4pyrp0q0ii7zcd5gwd5acaq9jjb13xgw8vav";
+      sha256 = "06c6885d3ggg1i085zhfwayj06jn4v1jip9zz40921vpq0iand54";
     };
 
     srcPlugin = fetchurl {
       url = "http://beust.com/eclipse-old/eclipse_${version}/plugins/org.testng.eclipse_${version}.jar";
-      sha256 = "04m07cdfw0isp27ykx6dbrlcdw33rxww7vnavanygxxnlpyvyas3";
+      sha256 = "0bpyb9bnh8kglajmdzb7pr21i1sly73kwdjbygg75ad7z37l58br";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/emacs/macport-25.1.nix b/pkgs/applications/editors/emacs/macport-25.1.nix
new file mode 100644
index 000000000000..81e77c725d9c
--- /dev/null
+++ b/pkgs/applications/editors/emacs/macport-25.1.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake
+, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
+, ImageCaptureCore, GSS, ImageIO # These may be optional
+}:
+
+stdenv.mkDerivation rec {
+  emacsName = "emacs-25.1";
+  name = "${emacsName}-mac-6.0";
+
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "ftp://ftp.gnu.org/gnu/emacs/${emacsName}.tar.xz";
+    sha256 = "19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33";
+  };
+
+  macportSrc = fetchurl {
+    url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
+    sha256 = "2f7a3fd826e6dea541ada04f4a1ff2903a87a1f736b89c5b90bf7bb820568e34";
+  };
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ ncurses libxml2 gnutls pkgconfig texinfo gettext autoconf automake];
+
+  propagatedBuildInputs = [
+    AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
+    ImageCaptureCore GSS ImageIO   # may be optional
+  ];
+
+  postUnpack = ''
+    mv $sourceRoot $name
+    tar xzf $macportSrc
+    mv $name $sourceRoot
+  '';
+
+  postPatch = ''
+    patch -p1 < patch-mac
+    substituteInPlace lisp/international/mule-cmds.el \
+      --replace /usr/share/locale ${gettext}/share/locale
+  '';
+
+  configureFlags = [
+    "LDFLAGS=-L${ncurses.out}/lib"
+    "--with-xml2=yes"
+    "--with-gnutls=yes"
+    "--with-mac"
+    "--enable-mac-app=$$out/Applications"
+  ];
+
+  CFLAGS = "-O3 -DMAC_OS_X_VERSION_MAX_ALLOWED=1090";
+  LDFLAGS = "-O3 -L${ncurses.out}/lib";
+
+  postInstall = ''
+    mkdir -p $out/share/emacs/site-lisp/
+    cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "GNU Emacs 25, the extensible, customizable text editor";
+    homepage    = http://www.gnu.org/software/emacs/;
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jwiegley ];
+    platforms   = platforms.darwin;
+
+    longDescription = ''
+      GNU Emacs is an extensible, customizable text editor—and more.  At its
+      core is an interpreter for Emacs Lisp, a dialect of the Lisp
+      programming language with extensions to support text editing.
+
+      The features of GNU Emacs include: content-sensitive editing modes,
+      including syntax coloring, for a wide variety of file types including
+      plain text, source code, and HTML; complete built-in documentation,
+      including a tutorial for new users; full Unicode support for nearly all
+      human languages and their scripts; highly customizable, using Emacs
+      Lisp code or a graphical interface; a large number of extensions that
+      add other functionality, including a project planner, mail and news
+      reader, debugger interface, calendar, and more.  Many of these
+      extensions are distributed with GNU Emacs; others are available
+      separately.
+
+      This is "Mac port" addition to GNU Emacs 24. This provides a native
+      GUI support for Mac OS X 10.4 - 10.11. Note that Emacs 23 and later
+      already contain the official GUI support via the NS (Cocoa) port for
+      Mac OS X 10.4 and later. So if it is good enough for you, then you
+      don't need to try this.
+    '';
+  };
+}
diff --git a/pkgs/applications/editors/sublime3/default.nix b/pkgs/applications/editors/sublime3/default.nix
index 96e47e18483b..c7badf6a77cc 100644
--- a/pkgs/applications/editors/sublime3/default.nix
+++ b/pkgs/applications/editors/sublime3/default.nix
@@ -6,7 +6,7 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
 assert gksuSupport -> gksu != null;
 
 let
-  build = "3114";
+  build = "3126";
   libPath = stdenv.lib.makeLibraryPath [glib xorg.libX11 gtk2 cairo pango];
   redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]
     ++ stdenv.lib.optional gksuSupport "/usr/bin/gksudo=${gksu}/bin/gksudo";
@@ -20,13 +20,13 @@ in let
         fetchurl {
           name = "sublimetext-${build}.tar.bz2";
           url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x32.tar.bz2";
-          sha256 = "0xrfx76ilw5hlx26hv9zx1kw8q9qf76646yyjmn36p6mq9vs6y0d";
+          sha256 = "0acff4wj1s61x3xszdd93lkhaqa26lb7ryqdxnbphxzhf2jfzzwj";
         }
       else
         fetchurl {
           name = "sublimetext-${build}.tar.bz2";
           url = "https://download.sublimetext.com/sublime_text_3_build_${build}_x64.tar.bz2";
-          sha256 = "0nmi2gkpz56a47a0f56nx6nl3sl7gif035517gx2v82113y9nh66";
+          sha256 = "0ykj33fq86iv7f9zx76h90pl9y86iri0idhlj09a6prhk8p17nqq";
         };
 
     dontStrip = true;
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index b7c87092e892..4ab0ca3f27c9 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -42,7 +42,7 @@ composableDerivation {
 } (fix: rec {
 
     name = "vim_configurable-${version}";
-    version = "7.4.826";
+    version = "8.0.0005";
 
     enableParallelBuilding = true; # test this
 
@@ -54,7 +54,7 @@ composableDerivation {
         owner = "vim";
         repo = "vim";
         rev = "v${version}";
-        sha256 = "04hp2gqbbj9h872bgj1g9xcaj5qlg9q45v6by2ch9n105dng9aj3";
+        sha256 = "0ys3l3dr43vjad1f096ch1sl3x2ajsqkd03rdn6n812m7j4wipx0";
       };
 
       "vim-nox" =
@@ -69,12 +69,6 @@ composableDerivation {
 
     prePatch = "cd src";
 
-    # if darwin support is enabled, we want to make sure we're not building with
-    # OS-installed python framework
-    patches = stdenv.lib.optionals
-      (stdenv.isDarwin && (config.vim.darwin or true))
-      [ ./python_framework.patch ];
-
     configureFlags
       = [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ];
 
diff --git a/pkgs/applications/editors/vim/python_framework.patch b/pkgs/applications/editors/vim/python_framework.patch
deleted file mode 100644
index ba4ddef889f6..000000000000
--- a/pkgs/applications/editors/vim/python_framework.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/auto/configure
-+++ b/auto/configure
-@@ -5895,13 +5895,6 @@
- eof
- 	    	    eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
- 	    rm -f -- "${tmp_mkf}"
--	    if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
--		"import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
--	      vi_cv_path_python_plibs="-framework Python"
--	      if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then
--		  vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python"
--	      fi
--	    else
- 	      if test "${vi_cv_var_python_version}" = "1.4"; then
- 		  vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
- 	      else
-@@ -5921,7 +5914,6 @@
- 	      vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
- 	      	      vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
- 
--fi
- 
- 	if ${vi_cv_dll_name_python+:} false; then :
-   $as_echo_n "(cached) " >&6
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 6d507c5d227a..d481bb934d4c 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -11,11 +11,12 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "6.9.5-2";
-    sha256 = "09h3rpr1jnzd7ipy5d16r2gi0bwg4hk5khwzv4cyhv1xzs8pk7pj";
+    version = "6.9.5-10";
+    sha256 = "0cxjzqzca80vf6sfx4z9zq4wq2w0vy9ajp9kf88jb4na8mwsn198";
     patches = [];
   }
     # Freeze version on mingw so we don't need to port the patch too often.
+    # FIXME: This version has multiple security vulnerabilities
     // lib.optionalAttrs (stdenv.cross.libc or null == "msvcrt") {
         version = "6.9.2-0";
         sha256 = "17ir8bw1j7g7srqmsz3rx780sgnc21zfn0kwyj78iazrywldx8h7";
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 2a4d52088e8e..e75d5193fd3e 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -11,12 +11,12 @@
 assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
-  version = "2.0.5";
+  version = "2.0.6";
   name = "darktable-${version}";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "00hap68yvfdif6a4lpbhn4jx1n68mpd2kj473kml1xby9swp32w9";
+    sha256 = "1h9qwxyvcv0fc6y5b6l2x4jd5mmw026blhjkcihj00r1aa3c2s13";
   };
 
   buildInputs =
diff --git a/pkgs/applications/graphics/rawtherapee/ReleaseInfo.cmake b/pkgs/applications/graphics/rawtherapee/ReleaseInfo.cmake
new file mode 100644
index 000000000000..28096618c9e3
--- /dev/null
+++ b/pkgs/applications/graphics/rawtherapee/ReleaseInfo.cmake
@@ -0,0 +1,4 @@
+set(GIT_BRANCH master)
+set(GIT_VERSION 4.2.1050)
+set(GIT_CHANGESET 2d0e5e4feeac9801994d82c5931531f508deb2e9)
+set(GIT_TAGDISTANCE 1050)
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index 450124706c6c..9259b7c76483 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   name = "rawtherapee-4.2";
-  
+
   src = fetchFromGitHub {
     owner = "Beep6581";
     repo = "RawTherapee";
     rev = "4.2";
     sha256 = "1v4px239vlmk9l8wbzlvlyni4ns12icxmgfz21m86jkd10pj5dgr";
   };
-  
+
   buildInputs = [ pkgconfig cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp
     lcms2 libiptcdata mercurial libcanberra_gtk2 fftw expat pcre libsigcxx ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     description = "RAW converter and digital photo processing software";
     homepage = http://www.rawtherapee.com/;
     license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = with stdenv.lib.maintainers; [viric jcumming mahe];
+    maintainers = with stdenv.lib.maintainers; [ viric jcumming mahe the-kenny ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/graphics/rawtherapee/dev.nix b/pkgs/applications/graphics/rawtherapee/dev.nix
new file mode 100644
index 000000000000..2d664e5cf15d
--- /dev/null
+++ b/pkgs/applications/graphics/rawtherapee/dev.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, cmake, pixman, libpthreadstubs, gtkmm2, libXau
+, libXdmcp, lcms2, libiptcdata, libcanberra_gtk2, fftw, expat, pcre, libsigcxx
+}:
+
+stdenv.mkDerivation rec {
+  name = "rawtherapee-git-2016-09-21";
+
+  src = fetchFromGitHub {
+    owner = "Beep6581";
+    repo = "RawTherapee";
+    rev = "2d0e5e4feeac9801994d82c5931531f508deb2e9";
+    sha256 = "1d9bi3b6cslm0rhhqf0rx47nlnsnky284vqsxyq3mss6bd8880xh";
+  };
+
+  buildInputs = [ pkgconfig cmake pixman libpthreadstubs gtkmm2 libXau libXdmcp
+    lcms2 libiptcdata libcanberra_gtk2 fftw expat pcre libsigcxx ];
+
+  NIX_CFLAGS_COMPILE = "-std=gnu++11 -Wno-deprecated-declarations -Wno-unused-result";
+
+  # Copy generated ReleaseInfo.cmake so we don't need git. File was
+  # generated manually using `./tools/generateReleaseInfo` in the
+  # source folder. Make sure to regenerate it when updating.
+  preConfigure = ''
+    cp ${./ReleaseInfo.cmake} ./ReleaseInfo.cmake
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "RAW converter and digital photo processing software";
+    homepage = http://www.rawtherapee.com/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ viric jcumming mahe the-kenny ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index fe5227e395b4..d2e618b105b5 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.66.0";
+  version = "2.68.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "1dbv6p9cq9zj51zvhfy2b7aic2zqa44lmfmq7k7fkqcgb6wmanic";
+    sha256 = "0mn6wdws1xxc4yvhp5vdzb5i5c9dsmamyms1njdzs5fv754rszpm";
   };
 
   inherit python;
@@ -129,14 +129,14 @@ stdenv.mkDerivation rec {
     ];
     categories = "Office";
     extraEntries = ''
-      Actions=ebook-edit ebook-viewer
+      Actions=Edit;Viewer;
 
-      [Desktop Action ebook-edit]
+      [Desktop Action Edit]
       Name=Edit E-book
       Icon=@out@/share/calibre/images/tweak.png
       Exec=@out@/bin/ebook-edit --detach %F
 
-      [Desktop Action ebook-viewer]
+      [Desktop Action Viewer]
       Name=E-book Viewer
       Icon=@out@/share/calibre/images/viewer.png
       Exec=@out@/bin/ebook-viewer --detach %F
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 789f2d7c3fae..1f263a2b1dd5 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "gpsprune-${version}";
-  version = "18.4";
+  version = "18.5";
 
   src = fetchurl {
     url = "http://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "0wrkvff3c1w66373m2w2ib07rkn3rmbp3n7ixz72qd1swvbk6xx1";
+    sha256 = "0xd97b7rs5i41hyih6zdbvls090903yfr1r9lflq93dyqhmzpdhn";
   };
 
   phases = [ "installPhase" ];
diff --git a/pkgs/applications/misc/keepass-plugins/keefox/default.nix b/pkgs/applications/misc/keepass-plugins/keefox/default.nix
index e32f0b7ca012..cb48ff22bef0 100644
--- a/pkgs/applications/misc/keepass-plugins/keefox/default.nix
+++ b/pkgs/applications/misc/keepass-plugins/keefox/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildEnv, fetchurl, mono, unzip }:
 
 let
-  version = "1.5.4";
+  version = "1.6.3";
   drv = stdenv.mkDerivation {
     name = "keefox-${version}";
     src = fetchurl {
       url    = "https://github.com/luckyrat/KeeFox/releases/download/v${version}/${version}.xpi";
-      sha256 = "c7c30770beb0ea32cbdee5311d03a9910fb7772695af3aa655e4ae64cd4d8335";
+      sha256 = "dc26c51a6b3690d4bec527c3732a72f67a85b804c60db5e699260552e2dd2bd9";
     };
 
     meta = {
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
index 391410628bad..5eaad6514e1f 100644
--- a/pkgs/applications/misc/keepass/default.nix
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -8,11 +8,11 @@
 # plugin derivations in the Nix store and nowhere else.
 with builtins; buildDotnetPackage rec {
   baseName = "keepass";
-  version = "2.33";
+  version = "2.34";
 
   src = fetchurl {
     url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
-    sha256 = "0n4rkx2awyq1gbqiby1lkf2zw82brji96s4fkjsahmci528a882i";
+    sha256 = "e3f184e4deddd1aa5ee2b52e2373c772d3f3975e5eddb2fd729eb27b437011aa";
   };
 
   sourceRoot = ".";
@@ -20,7 +20,7 @@ with builtins; buildDotnetPackage rec {
   buildInputs = [ unzip makeWrapper icoutils ];
 
   pluginLoadPathsPatch =
-    let outputLc = toString (add 8 (length plugins));
+    let outputLc = toString (add 7 (length plugins));
         patchTemplate = readFile ./keepass-plugins.patch;
         loadTemplate  = readFile ./keepass-plugins-load.patch;
         loads =
diff --git a/pkgs/applications/misc/keepass/keepass-plugins-load.patch b/pkgs/applications/misc/keepass/keepass-plugins-load.patch
index 872b6c06d788..b7bea38e4c81 100644
--- a/pkgs/applications/misc/keepass/keepass-plugins-load.patch
+++ b/pkgs/applications/misc/keepass/keepass-plugins-load.patch
@@ -1 +1 @@
-+				m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass");
++				m_pluginManager.LoadAllPlugins("$PATH$/lib/dotnet/keepass", SearchOption.TopDirectoryOnly, new string[] {});
diff --git a/pkgs/applications/misc/keepass/keepass-plugins.patch b/pkgs/applications/misc/keepass/keepass-plugins.patch
index 1a32d77806a4..1793f04a1708 100644
--- a/pkgs/applications/misc/keepass/keepass-plugins.patch
+++ b/pkgs/applications/misc/keepass/keepass-plugins.patch
@@ -1,13 +1,45 @@
 --- old/KeePass/Forms/MainForm.cs
 +++ new/KeePass/Forms/MainForm.cs
-@@ -384,9 +384,$OUTPUT_LC$ @@ namespace KeePass.Forms
- 			m_pluginManager.Initialize(m_pluginDefaultHost);
- 
+@@ -386,42 +386,$OUTPUT_LC$ @@ namespace KeePass.Forms
  			m_pluginManager.UnloadAllPlugins();
--			if(AppPolicy.Current.Plugins)
--				m_pluginManager.LoadAllPlugins(UrlUtil.GetFileDirectory(
--					WinUtil.GetExecutable(), false, true));
-+			if(AppPolicy.Current.Plugins) {
+ 			if(AppPolicy.Current.Plugins)
+ 			{
+-				string[] vExclNames = new string[] {
+-					AppDefs.FileNames.Program, AppDefs.FileNames.XmlSerializers,
+-					AppDefs.FileNames.NativeLib32, AppDefs.FileNames.NativeLib64,
+-					AppDefs.FileNames.ShInstUtil
+-				};
+-
+-				string strPlgRoot = UrlUtil.GetFileDirectory(
+-					WinUtil.GetExecutable(), false, true);
+-				m_pluginManager.LoadAllPlugins(strPlgRoot, SearchOption.TopDirectoryOnly,
+-					vExclNames);
+-
+-				if(!NativeLib.IsUnix())
+-				{
+-					string strPlgSub = UrlUtil.EnsureTerminatingSeparator(strPlgRoot,
+-						false) + AppDefs.PluginsDir;
+-					m_pluginManager.LoadAllPlugins(strPlgSub, SearchOption.AllDirectories,
+-						vExclNames);
+-				}
+-				else // Unix
+-				{
+-					try
+-					{
+-						DirectoryInfo diPlgRoot = new DirectoryInfo(strPlgRoot);
+-						foreach(DirectoryInfo diSub in diPlgRoot.GetDirectories())
+-						{
+-							if(diSub == null) { Debug.Assert(false); continue; }
+-
+-							if(string.Equals(diSub.Name, AppDefs.PluginsDir,
+-								StrUtil.CaseIgnoreCmp))
+-								m_pluginManager.LoadAllPlugins(diSub.FullName,
+-									SearchOption.AllDirectories, vExclNames);
+-						}
+-					}
+-					catch(Exception) { Debug.Assert(false); }
+-				}
+-			}
 $DO_LOADS$+			}
  
  			// Delete old files *after* loading plugins (when timestamps
diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix
new file mode 100644
index 000000000000..a578c53f0e7c
--- /dev/null
+++ b/pkgs/applications/misc/xmind/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "xmind-${version}";
+  version = "7.5-update1";
+
+  src = if stdenv.system == "i686-linux" then fetchurl {
+    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb";
+    sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1";
+  } else if stdenv.system == "x86_64-linux" then fetchurl {
+    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb";
+    sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9";
+  } else throw "platform ${stdenv.system} not supported!";
+
+  nativeBuildInputs = [ dpkg makeWrapper ];
+
+  unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
+
+  libPath = lib.makeLibraryPath [ gtk2 libXtst ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r usr/lib/xmind $out/libexec
+    cp -r usr/bin usr/share $out
+    rm $out/libexec/XMind.ini
+    mv etc/XMind.ini $out/libexec
+
+    patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      $out/libexec/XMind
+
+    wrapProgram $out/libexec/XMind \
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+
+    substituteInPlace "$out/bin/XMind" \
+       --replace '/usr/lib/xmind' "$out/libexec"
+
+    ln -s ${jre} $out/libexec/jre
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Mind-mapping software";
+    longDescription = ''
+      XMind is a mind mapping and brainstorming software. In addition
+      to the management elements, the software can capture ideas,
+      clarify thinking, manage complex information, and promote team
+      collaboration for higher productivity.
+
+      It supports mind maps, fishbone diagrams, tree diagrams,
+      organization charts, spreadsheets, etc. Normally, it is used for
+      knowledge management, meeting minutes, task management, and
+      GTD. Meanwhile, XMind can read FreeMind and MindManager files,
+      and save to Evernote.
+    '';
+    homepage = http://www.xmind.net/;
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ michalrus ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/sources.nix b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
index b4e683372e11..057468d7fd61 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/sources.nix
@@ -4,189 +4,189 @@
 # ruby generate_sources.rb 46.0.1 > sources.nix
 
 {
-  version = "48.0.2";
+  version = "49.0";
   sources = [
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ach/firefox-48.0.2.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "2e06c639284e5258e9bba9f02f3d21df6a3a37e3dc55667b2836e9eb68ad5ab24ccd99f82714da14231b5c6a301a40acaf9763ca19b920bb4f6acf535dc753b6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ach/firefox-48.0.2.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "d0777aa0a5128f9ea0b0929781a7d86ad81e72bc8c204e8f026d37bac120d0e210b0a0c8ed42aabd378f96fe52237a103ea25c773b49ea814d06862e770e3180"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/af/firefox-48.0.2.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "81cddaae3ab0ac26b3cb5faefddfb088addea7f5d112a317d5c56c16cdae2801539e7c9c4fd9d77a14ad77db7a96a75767d5c08b3858455b801adab8a997da02"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/af/firefox-48.0.2.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "5020fda908bcc8b3bb937c5ea4f5a78e74cf836488937f3c4c6f6533a57d5e086e88a85fefac3983407254e3f9a9e2a0b03167095ba9b6e30e69b7381dfe756f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/an/firefox-48.0.2.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "a47b6bd64f1e654ed9041035c36ddda60cedaf634327fd005f9610390a53433da21f12fbe4a3225d756755544a01b9fea463965c47c08145103b357e5b1071b6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/an/firefox-48.0.2.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "31d116e6e1950ae3e93ad0ac744967f00699a04f3df89f9e0e4a2cea62e2a9675f7499ca41fcc2acbb91a72cbe3cd74f057dc25a6db947b1b5448fb0d92decdb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ar/firefox-48.0.2.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "bb9acd986a258cdc8c368aa1375cee500bf45be31821220c90d562bcc3d526bafc5362c91d4dbd7a003955adc9f26adfe8d62403cf3b9004b82f3880a5b58db7"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ar/firefox-48.0.2.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "dc4ae811b19887c8f039b046ec2d48d4aaf628f7869e471c97b637e5daaa0e0b0b96fa327ab3b2ba3a184ffbf91213f4cb619d2d2a396b22849782ac41f7f31b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/as/firefox-48.0.2.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "d9dd79d56912bc65e4993214ff58f7dc725077a62e391495acb6aa4b50c371d1c843811e5c511408dc3b343df0056bf33efc1e8f16177f4549ee49fe7b22ccdb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/as/firefox-48.0.2.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f8278a0141814f2b0e1ac4bb0e94e6d566e97943fabfd7561e249de6a2da9650edfc42456e503ed2473d7df65b4f1949d5fe423b79f9519d59a1ece121361029"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ast/firefox-48.0.2.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "e1aca0b09d6c7ef78eff26e88d817a203ffc142f9be998ba08be74dce67da8ae4c728853c6f6f19a4b18fb439ed01fab556718a4f991a206bf5cc069232665a4"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ast/firefox-48.0.2.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "53ab2cc04741152f11fd4f7ad70eec7f927c7aa70997cf9d3069736a13bafa3b26dcabe610cb5dc10243a1b6b00f22bf9d6bc05afd26d0b7de254f55412c5805"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/az/firefox-48.0.2.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "39649887ca38ed1beb819227d80f5c75b0fbc08c537d6af48755c35a0ecc195127d9cf4c1af05a09b0e9e604144f5e9e00ad57d1cf895cc3f0142b482c98980a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/az/firefox-48.0.2.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "5c75fb1a34fa9fa447f7b279ef57cd0701baeeb95a2dee48b878d01d7e33eeba3d7985ef375317080a1a74732bebc4c26883bedfd00578d1a653deb2a250ca6e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/be/firefox-48.0.2.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "7879202dc251f9f2dce656058e51a724b7e49e9b03db8bf5921448b8e48b74186c40425ef51a84be6df810819ce2e297895017ac748b30221e3cad73c80eb0eb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/be/firefox-48.0.2.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "35291f1c2326af74938c953ecb55e55951ceb8fe10443f39edd2b505dfd137be161f8c4a1e776e3ef75311f52609ce74cc5c13fb78f59893cbf7d7bdcb4c7162"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bg/firefox-48.0.2.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "07d630045d9c99655ef04b6de10e34e4c1eb6a38f5a1eed4f08f90ce0f61ca9129235e48882005c0c98eb962273ac644a46dd4cdf76b748ad1b007a018b7f1ef"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bg/firefox-48.0.2.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "457d65bb0afa6c755048191a24eaef286f5fbd9b68b020abf554c7ad978398605947cf276ce09d4447cca4b64f053b956af805196c45617f2f14911598a75f6b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bn-BD/firefox-48.0.2.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "a355957e649ab82a6693e8da580b075111fa14bb1efa722397e3fc56c1dd14e6bc4f1315c7a74f1dc47aca228d0faa59db358b7f2baf79939f480c2e4113781b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bn-BD/firefox-48.0.2.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "612ef87c01fe221c6e546f110efe228a73e632312af5ee3a4324904aba028365d06c9aaf080eb010b90f653d0aeb4a19f78a0abd15ee02688102cfd4f4c15f5f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bn-IN/firefox-48.0.2.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "43e41905c397a2e311ab1a326f70070e0a1b922dd38301cfe9af17ae7916f2b697e1f3d218bbfd26741492d10ab5f6623a182691f036dbb653996d87cba10861"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bn-IN/firefox-48.0.2.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "29299d5174cc226330f7d89b734b15f934a8dbf6c577e81f37b362ce8fc2adf4d8f901f2ddbdf90d8d43181e369b5e339408604b5cd0bea8a2c6eeca5e319957"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/br/firefox-48.0.2.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "38ed922491f7690cc9aa62a4d9703c7d83dd67b067f3901a8ce34a3f937063fefacc0991530a79c66581554a86c564f8d0468f9a3aaf500c56abcc89ae4d872b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/br/firefox-48.0.2.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "efbb2ccf082f2ac5b5d580f02642730b934e367fc4b6e841c53fc651b43c129ad092c0028d810d94aed102f01b521838dd81a0137cf057e903ccc78e182911b6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/bs/firefox-48.0.2.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "d9183190513145a246db8592631b22c61cb895fd8b8b5294c772da1c584f63cfdfdf67ab664cea5045611a9366521d91ec3ddeb74079a1046886ede1c0421ea5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/bs/firefox-48.0.2.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "140a0e65e8995702986e3c85fd38ef5b729911405156a3d3fbc37d7c10685a88300850c339ddb94687994bfa8482fa1f93690e3781d3e02f8f90f8f6eee17371"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ca/firefox-48.0.2.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "d80b1716eeafb294b2e1d68791e9d84b45285851361f732ec84688b5c440da1c30b669ac01b7a77bf8e065523d77d0a5a4e997a98a82652100b2111177c5567a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ca/firefox-48.0.2.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "12282634abc6acbd0877436258657116d1a0ea07f90b04447d8ce372c950e3b5288de9ae76a867b1af5c2d4dc2c85efbb349df616eaca95aa03774d7dd331c7a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cak/firefox-48.0.2.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "407f1eb4b637a8abdc342b61ed898a5900d9914e5fc67c9c9f44327221dcbcb2fba0e27e9b1af5540d25ad282e9765d1c91bc70ec4a7ac641404ce05d83ea22e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cak/firefox-48.0.2.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "a611f37240c3b22e715121d64ed636a650620022edadf8090cd4a51769373c669f230efd39316244b4d727244e093087fb88754aafdeba2948b0bff3316092e5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cs/firefox-48.0.2.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "e7c7a1564944bbbc5852d11c11480bc03366cfaaacd132f2252a9322fe4f4cc94cc4d7853b56b4c5a130882f254fce4d791a047e5d141dc5143c97d5248da72f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cs/firefox-48.0.2.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "d6931627e77fd8e4e0c445573e05a5e96bc6a2a47193cf2fb21403d0c10bdf009eb699d1cad6daee787e569d3508fb85f6edd8ffea80b69d6afed724d568ea50"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/cy/firefox-48.0.2.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "15df651ea244c39150534bcb467649467c636281b7442af8ef5f2a296104b39ee951202b950fd6a960b10ff54fcea0f37a0b2a8f76cb969fbd9ed57e5a92d66b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/cy/firefox-48.0.2.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "0b168a6fc6f181303f7398ee3366f18bb2b256d654229da9cfa46ce0b424b4d5d414652509df3ca6600ddc7a9adf823050165d716a3d376a08563457af3e6696"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/da/firefox-48.0.2.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "64ef134d5839659c096d556e7060ee07ec160c59adc9ca3105eddbdc1c2b2b166e00996b2a88422461c7bdecdcd71b917e4ce1df8e92912542c413845ace7c69"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/da/firefox-48.0.2.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "cd477b4c541fa16f8c4054f670143c6605b7beb48fbe1b26948c50435e11f0d4fbcf907f192b53a1419a2be8589daf5c1efcae013366567a8c0003da0186593f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/de/firefox-48.0.2.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "6768f6445dabcd1e98ed27a8a28b930a160c7717b688ea38e0930055c59c123fcd7f52d0159dd2b2425978fd9e8e2d0e4e0877e6bba659f840836ff68b2e6c67"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/de/firefox-48.0.2.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "6dd6fe70fc26f4b7fbcc1e7ec212263e4e6822d365704364ae8f4ef3ede45a68ea1651e65c02f36e90dc44f2462a874703cfa02bc45e74bf0ab19bc31267e471"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/dsb/firefox-48.0.2.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "328e30142ed129560ca2a23de9963f40cdb0ff87454a9257b00b9bdd9b5d566b6f2f263c484f3c58c8e52ae6de5221a1ca936f7960ce01d88f7ba4c9b97f789e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/dsb/firefox-48.0.2.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "7e57b66afdfca30e7c770ec87d7ffcbdc644c54e01e037bb348709c8f091d82da48a3ff3a3dd8187f12f5ba1f94599f8aa8ed375c7e6bd90a2f787b3b5a09340"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/el/firefox-48.0.2.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "ea715903a796e386aa1d1bca22a0dc3cde08690efc17ecaa8380f086fdb0968292a838296adb4c78ac30b7c93baabd4dc19d088ffd890e11c76b58d9baf73efd"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/el/firefox-48.0.2.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "1bf80e3b64c95d74b7893e2ee36947f293f574c49461d742d7f47ea990d198fa78d9d3f9c04ec3c4d81745549a23b2a502497766441c61098b9ccd5f9169f191"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-GB/firefox-48.0.2.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "4db30d4d7140cdeafb41353133c9ea5679f5eeae8fdafde86887d6ac3553d1d0db74f2e189219f6f7cb9a8d33f2c2eef58b3280fd0d435593109ab5058404eab"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-GB/firefox-48.0.2.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "4b9d24e2faff85cf56012baa7c4d32b29173f903a5c19b0ebc20c7959ae291be39ee875f98f08a07d16aacc0fa5e7633245e265f11b30c64f703f22c889abf7c"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-US/firefox-48.0.2.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "656ddb1fc57f2308cd5a6b376828676d9c7529dca18751e5ec6f4b903b47cc31c15f6fb70717605219051f8a54a89d9c579cd70327e2029ca374953671d9d1e6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-US/firefox-48.0.2.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "ea8a1edee8ac64720a2694d0ed0ccecbc38d1b1aa6b65fa87969b31189f624549d3e3712052c55e0aebc65119701e88d4397bf01c8526b3ba662e6583acec815"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/en-ZA/firefox-48.0.2.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "27b805f5f89f999bf5a95f174dcc6d611dd297e8ae094e1557300d12311963a3410ad0c077355e2cb31d0e134f0d015fbdf7662e2f172174a1abb24dabdb4040"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/en-ZA/firefox-48.0.2.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "abad4283afed609217799fd3f97e6dd1b89d5844344a68912f712a8796613db371259883b92292fa12a33c923692f7302f63123431fbcba590c780fe4a9e2517"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/eo/firefox-48.0.2.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "04fd9ec015150c9c8d26c69e7e0213caeb3a880b162eee48123b0355f73488bf667d5217cdcd2c45cd3cd5fc88c01ad02b4e2cc40b220beb93d55d64689206c6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/eo/firefox-48.0.2.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "fabb940bc6f392ed1f5e6e0fe23947d28e1b8143f29784509eeac361050921f1fc97ffe18e51f47026b7a69178ddbb367e4dec6cda45feccfc6876e9e178d6f1"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-AR/firefox-48.0.2.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "01015a8756aaaa012fe35ba9d8192304fe8a22af6a512a644b20794446a31738b9142e03492db10e0e237a63cb3ffa2f581e700df00dfa3f4616157782cddf28"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-AR/firefox-48.0.2.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "0383d5df8041ee2ba1d32b9b1e090c50a4b911bcfe5354d0cc43a09355a790882afe5a9a837dcf2d9f4456ac75594112c5e3f520400e23d7bc91d37499ac9533"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-CL/firefox-48.0.2.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "4d74b9de4b4f0ab8ec43290d7f11c0439a1050e8561ae5192ff4fd3d0576d7d1857c9e616ed75b6fe7da5207e284b9713cb7184e65b093e101cbcb25fd90f74f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-CL/firefox-48.0.2.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "77aa56f1fca65c9374f15f012ecf1bbe439b99ed6ebe9823cd7f820e06cb10014033a4f6abb914969d0a5b03564385910af2569eb060c6065b7d1ceab5bbe7ef"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-ES/firefox-48.0.2.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "9e93a646c345a5c129bd9472601dc9d1cf3955ee0e6ad44a4b55f2dec7dba7d133c865d2c8b59383f48b1a870e2e02f781c93ced3811b03873e9c2d241ba0513"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-ES/firefox-48.0.2.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "488b79aba6acefe5a7973d63ba034eacc8894fd2e5aaea6c010af84975f45f00c49e85c003e876f1636a00dd396c6071511c84f61c0b6961ab677cee6b31ac3b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/es-MX/firefox-48.0.2.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "d2c353bc74b35d13f0e018ac8f8a1c3bba211524269b82188504e4b76701a2db2b085bea9c293caee4cd8ea8251d1c871ef0628bf7fe17123a0ca4475611dcc2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/es-MX/firefox-48.0.2.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "6bfea70619b2d9e853b36ad93ddc4b5b09c98279541eb737dda98009e61642fb9066ea097230fdfd942286d94fe512365fb48fa30ffddbde898589a471e02f89"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/et/firefox-48.0.2.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "c527a2736b3fabb6b248816e04373235281a5dd0f1275108fc006db1f2e48485bd5f413169f698f94d015aab2d6d8a00ba638a35eb574556453af2b8a2c20172"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/et/firefox-48.0.2.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "f3fad1f2f0256d0bdfabb3ce20eb475c1f54c762e3af1fec90565eb18cd7ef3603586c79821bfadca27eb7db42aad3a887abb348f955d394c8bbaad909314ce7"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/eu/firefox-48.0.2.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "772423ee4b87e308d1dbda39265e6671a6576c3b950abcd2dbabe2491a8cc5b5b6fa8ddbb00504efa2f5f43b59339423ef1347a3a92b8f00f61ea4be5bab2c20"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/eu/firefox-48.0.2.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "0b87aff412594848f1aca67e766c2423e1f28ad294a42feb894a69514fbd97efe97e6c119a19daba21c8d09f6e205ecc94bf1c4d150a5b684f7990494dcd2524"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fa/firefox-48.0.2.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "9d8c4f63297198054074bf244f947cb92db29f70695c69c6fd54cc18844653e4dae1447543c8ad8b8687c20231d72b6965e59d552aafb6f4c35bde89839b3909"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fa/firefox-48.0.2.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "7f3248c02c142ec88a9a32eed0a3f9802b6ad18a6fa56a28f2b5fd580ca917850352bbb4193559686f9e95f53e8e85727afd500eb03e3b5181180a1e5022328a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ff/firefox-48.0.2.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "fc160572277bfdb35cd3fb9c5a5b0a39710c78de4782ed679b96ae00c6cdf22b14d99d62462679bb4ab9bd68b8f7dc3cf43fb390a382e31120c91b24a98993f9"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ff/firefox-48.0.2.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "c192466b8f92186a80895f5bfe1094747b214ace2135c72cbb19bd71a7fb7b77491c8af4648a88dcbf2a1235d73a408c6122d7b46fe923633bce8d7113f03298"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fi/firefox-48.0.2.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "98bb77f6ad8b39d506e4fb0666386332fa22f01f4b7362fd614ea951c3520b7f692e8282d1aa175d94d43c46c267c941d4cfd0d19b454a7345ce13f7a264b6bf"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fi/firefox-48.0.2.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "14bf0b3a34dd2a6a7b5d0dcf8f5c0313e643f8a730afda92ab94afcf8505bed895724098e991c28344851288180d25e18b5327c44c742918d7e83007177cfb6c"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fr/firefox-48.0.2.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "b6a4ba15cc2c4d0f9aac90789e86f69d983e7dd33b744d213fa856259b57192e403ec67fce870d710782f0c0d3c24ae23a38bcb101d60efc967e87bf9efc43af"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fr/firefox-48.0.2.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "dba11e63b3435fe2665f5437147d854ac590394e1f270bc0ea9638f0f8622a8639ce54c74fb2ef0b75cc6df2eeaf28fa21ae4aec6a41637fa2b107581970ec4f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/fy-NL/firefox-48.0.2.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "6be75948bacadfb5de5f49f5a1455294e5a511aaa30cd9575823c91b304b1f433fa5e10c146d971497f23052e6e2db2111d740ffb9e48ea8aafac81fd5477ff8"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/fy-NL/firefox-48.0.2.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "6e7e28ff66b29d39e87625711da4d83e376cca5521f8734b25b60b34e9bd350fb6b24a982306b902bfacbf367d9ebc3bb0d1de0d9d4f7fec39f5629aaeaec79b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ga-IE/firefox-48.0.2.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "22a3def2c74cefd8d7a254f4b746b1d131d9bc508f686c2027ad29bafd31a4e414d10a94d0c8c8ab7a4ac59b8a453e98183ce5e7597fd1624710803c139e704a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ga-IE/firefox-48.0.2.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "cc5ada6a14ca46a89a8d20deefd7da57b012ec1cf2a271e6327de676639217b67d60208c9bbf4ea88418b5447ca62dd2addc584613e55a51afe04b3fbafe4a60"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gd/firefox-48.0.2.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "1c25a5d9c95c38faa1f9ee2709b1dbd2c3adad7b7c0d18a56dfb0e16b61cb0b47683e259d2876e2cce5a25c738fcec422939e417e3cc71229917af043a6425ac"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gd/firefox-48.0.2.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "c4f68019652565cb4fd9c3f7da7ff476442a6d2f168531db40f29524bf4b4961b04de98effefdbff935c8a7bd110fad0cd72aa229500348bda16807d55fa5de6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gl/firefox-48.0.2.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "a74a1c2f18c2955f643315bf896d7ad2ca2b0f42c84622244c8ecb448911acb9a8aceb27e15b7f643c95293d7afef625ad7c6b927732e670f811a99287ccce3b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gl/firefox-48.0.2.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "51cb84043f5bccb269c39fd7d043445d70a750ebc13fa85d902aabeafdd72d6696eaf0b955a0e040abec44c9134ba6709b67f7b635b80ad45eb78fa5a1013d44"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gn/firefox-48.0.2.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "f05f87f4be059f08a874cd28b5eea0a8be071bf548e726f9e14a47f0d96f9d0d9417cebb92919020fd5fc40801e83455a543270d61ce83652909508eac43d5a2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gn/firefox-48.0.2.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "29f9a5895df46fb1844e447b1289b791d42b14250f814875afe67873cb00aba43d62175f29debc5d099abb9b0b4050465d2180d25987ec721d747ab46f433f47"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/gu-IN/firefox-48.0.2.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "b45dcf6d34b54bf69f36f49fd71589257ed6ce039315e50737c2ef4434917fb6b8dac18a4ee903575808d02762282620b9830c564578b87c1d4a5bd5a2234d30"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/gu-IN/firefox-48.0.2.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "efe560a176f13da9995ca59e5b8858d0c7a06c91aeebf361affcbecb0f0de88c977d33b15eb8ec9f80f305000b0ef2b621addf44cfa9ff4fbfb740b937b441f8"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/he/firefox-48.0.2.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "314706b90bfd6ea3c94c28f880284992b0886897a4576c5c55b6bc2b02aa31e7050ccc11af1d5a085633a7fe65dd5fd03a435fc378c64ca5ddaa10ed91853f58"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/he/firefox-48.0.2.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "44b716392d79a000732a3ce2737f2367f65d855481c7a0d75f33898812a49abcbe73ed6c57a983035a6628b5f80ecf3921a336e4f45c964a7d52145c71c73b48"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hi-IN/firefox-48.0.2.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "03b36a04acfaf4a2e79a0e34368292723aa9aabbb2f4a0f0508dc8a7c7511133d18973ae08fe00b2ea571976ed6acabec44092694fc230c4cdaeee174d6aacb5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hi-IN/firefox-48.0.2.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "7d1b3d4e3b33c61d63671f4ec4a36e422c2ae99c192231bfd70d98c68b81a8ea61b0538e8efa47a3ad4b23ba58e405dcdd8044a7403aa1ff241aaf4ab76d4eec"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hr/firefox-48.0.2.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "eb445e988d3ad1b009c1a8f92e07aafc38babcc8641c92b161efede4b7079731e72140d609cadf6220bbba23e3146ccabfd7fe875836c962ca4b12f451e8ac00"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hr/firefox-48.0.2.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "dbb8fa4458a36c403f68642c41c15fbd9cf1e7a703805ebdde827b9bf25752885c0263c1a604f37d0508994513259a2e3719b288fa9ed4d0b563d82e0e5f0dd9"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hsb/firefox-48.0.2.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "e2b7c81ff1c57f1e656169fd206f33660718278468f062e46249b875babc6598857bcfcb884ac658ebe907e745413c82d948d8bf7a0ec34617a55cb0ae90f7e9"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hsb/firefox-48.0.2.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "14544652977e0faa49cb5727e283e1e6cf59df14194b67777ee151e37ea68c53ed8efb2b5000233ffe8efa530ca881d4e84a7b5bf281a0f51d8baffb115f11fe"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hu/firefox-48.0.2.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "072c40fac3ce476abed251140e71b1c537aa61ba29460bc26a6cbf224a43fd926cd2e690929c108e0437537025fe0a45fdda71fc2ac6637385a0e75678330cf8"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hu/firefox-48.0.2.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "e9893aaab901d03e9563bf84839577d55942f8d78d1f520388922392d7e7101d7752354816696f6fb1ab77bc2473b0cdaa7b2c62d6412c33c6616353f0b9a984"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/hy-AM/firefox-48.0.2.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "bd4f2e7a1c9c7ab1558caced2716acd3e0d3441873dc00f1fcef9e20bc2b25e1d3ec3d520a378c3b8fe9bac36a500d745516f16f14aa9b530c9ad940565690f5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/hy-AM/firefox-48.0.2.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "e36ba4db7706d08d03c84cf3a78c20c60e7e67ebed01943d54b1483ec86e5b2f17dc7a1319c29863e7f6fd3b35ff390d1b462692c06c8ec26c164c0daa251dfb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/id/firefox-48.0.2.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "61cba41c80783921039ecb5038bc16da52e8191e38b8dd8d276225fe21f6bf1c8628d0e8f15292e02fa07a962ca355d7173f0dce6cd3b2259f87b823d2ce70ca"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/id/firefox-48.0.2.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "12ca05a297c65780d1a2df33aec2bed06498db34e98283053b1f7082e96fd83f92d320a8db91d7e4bd44405c21c5d276913f47403da479cacb3a082f6d1e43fa"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/is/firefox-48.0.2.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "7df3200095a8b8b02bbf41f1a160e4557e059e514ffa4ef25c0dc0e274c319677d134cd8d2583e4ec51bed68091ca7cb8b13bf6e26afd682398ed285dc055da7"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/is/firefox-48.0.2.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "c55649493a8bd47a9d53ffc8d6c22f741550fc40124f54bce320c96a73316e6c48229e12d0615c48b55e873b3ddddf38320987af5a109db68f53646e3c8206a1"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/it/firefox-48.0.2.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "f42fc4acdb2f30650c62dd8ff440e1def00920a1481f8f008565517bb535459773f8c7a39d7d89edcac91b683f92eeeac41c0c4d4c5d4fbf6d74f66ddf528a07"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/it/firefox-48.0.2.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "c7828610404f8bf93f3dde1feaf713e3111a7d3a6db792b013ecfc0dc225782d537d5842ac35af292451a7c5e475407655f246881472575d2912d0c607b52c30"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ja/firefox-48.0.2.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "9464f9a33ca3d0fbee32df31d1fe677ff298b21209986db8cc4893ff9414a96b885fa408f36d32c95e68274e2815a77be02c3859754c217874a5d3c0b6d280d6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ja/firefox-48.0.2.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "d150ad3102d90bcb755bd91c9960710c64518b7ffa445a6f4e15055a449eb9aeb4203084180cf2234c000dbe98620ac91fc9dc453415cb7e981457c43d08ae4f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/kk/firefox-48.0.2.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "d28ad5965aa76f2525164045a06118a289cd543b1b9afd7e0681da4739467858a2c1eaf3a7aab1002c3c18d51a3a5623801d974c0230b78a07a664016d302b33"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/kk/firefox-48.0.2.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "4846ea6f4834cb21b609d1c71b3efbd75bc5a98b63cda04d152c18e0b22ff5980004e01d09aeb83a108ba2c401e655e5b6b2e5ea1a2e9fd707b1bb409c46f3c9"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/km/firefox-48.0.2.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "6d3fca317792c6929e55fc0757f72decbbd2f714f259fe53eeb549d0b85984745dd1177aa15d68bc352a541703d1d3f4983943b03c4d3cdc2edb6e57c1cfc2dc"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/km/firefox-48.0.2.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "c719b3631626d57da3d14a1ae356122b3df1f3c92a1633e2f85ecdaed9ac83abf066cd2ea5ce679e6e38dbc1d1f6839e2f3df9ff2f8e217f25bd25900693f47e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/kn/firefox-48.0.2.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "76faf5f9b98e4a13a42c71df7411fa51c0b6def1d973970c149b18adfa36b2e2eb14c94e3371d303abb3d0c7e226d9d42b15cb7a77d161fe404a4c567fea01ca"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/kn/firefox-48.0.2.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "a772a4adf418adf933bf82379cc3b69c4f5e426ed63d4d6458a87b005a59070cd035a483718dedb433d9401f4da4dbec70e0a5e920f5046478a1aaa4547547e2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ko/firefox-48.0.2.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "0ada95e8e3367ac30c91be660a037de18c5bb9edaf10d8a078d8c5f37c954717c3e33b710249274faf5e95409f9f67cef28f28d2ab34e452deae4fb66ab01bad"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ko/firefox-48.0.2.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "dda86dbbd40721ac85c9b8486dd54a33fc5978ca79312cabfeb7700e0fbba809062c3b6be61e6c784c6b479f435d4ab886c2a6788dd115585af9e9f277ba6192"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lij/firefox-48.0.2.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "f9053b301331d36710e31fe6d2172a98af5219e9900d60810bb02eaf1f19e6f4db6e0500de6ef6e77acd4705fdb0bc5025e9db52ef44bb79d82c674b53eee6e0"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lij/firefox-48.0.2.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "63a4b697a1295b92b93d8602abb027be6a07cc58c45ade11957f716d91b3670015901ae6f5a667c4119798f4135c59be128f3c8e97c7ed6dc69b7f2f40c7d58d"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lt/firefox-48.0.2.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "77dc96b596e3010cdad83d3ce2b23f075672ddae73999652fbff24c85ef7ec0a749c1793b77eb7d34bb9c8beb6803d97c8ccc84b8f6ec02a8629c895d1a3400f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lt/firefox-48.0.2.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "f7252d515e700fae4ffe31219b0135629d50487359947ad2b6d7a61e578b20997b95c4c2a7930b93f1b59ab9262a8b28bcfad22c14fc98029043339e3f2318aa"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/lv/firefox-48.0.2.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "44d97dc8855004fd91b96155592edd4f6ac9e92257814eae2727df0a4e1df496e1be13fb95c0e2ba6d0e31e8ea12df659317cc5ac8d005322075c9d8d13a67ec"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/lv/firefox-48.0.2.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "1fa86b8f8cfaec70db3c6033276f1b5a943e2065d78754f873c7ca99897f0195e0793bec936d2471b814a90c5a211a9653d8ef5480d64cd1fa9c49d7f8ed34bc"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mai/firefox-48.0.2.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "df4e98b7414b58c145e7fe82b78c66c5d8a7fa8dbb34f78b91f9160ce3bb9e22ab065485de15e13d3660186760a9cb3c88403e8955ad092064eaab29f8dfe9b2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mai/firefox-48.0.2.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "7bf726777eaa92f4a18107c4be48024cb2a7ae4a3aa9d94cf55a6b0fa46ab7256f097e7f7c610ae1f748c376063b7dd275f03dc7664e86fc738b867671e5d231"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mk/firefox-48.0.2.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "7c48c47f916ac8389b5b10bae29d40820b59b3e52fc86b1408c426f4ed662f49243fbe6e7267b17ed3ff9dc179b435fbfa2516dce974972097fb39985039b4e3"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mk/firefox-48.0.2.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "b184dc34a47a9336190ff0090140b47ca345b9445dfe40133ed08ba30bb9966e1f7b5488a5289ddc4d84cb4de0b7121824ed6570afe857f0da8ebf6ab26a5c4b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ml/firefox-48.0.2.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "cb363c7b01ba9d252375b4f01d9515561bec11d72655730aa7c05d95d8ac4ba58288c64638543bcc48fb36387e6ea4e4604f34616d8b90ea068e09f7bfb8be61"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ml/firefox-48.0.2.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "789aaaf1495740adbcc4ffc90ffe0e3dd2b7d1822444bea6676bddcad228aaecb0a67916560cac892067383f2faca06b066782e8a40f39928e7cdf2370a3f0f8"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/mr/firefox-48.0.2.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "d6a45cf0bf37fcf67369bfd9a3e0fd2a3fa4b1538a905e419915d5eaa350f812739de97179f2efcedf5aa2fa0571f555fe4012bd05a39adc331a34bab934808e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/mr/firefox-48.0.2.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "46bac718bade7205bd307b7c1ec9957d245c18d305f08d9c2263e070128f49d4fb7e4fbd3b1270866a1aeae8e726a21e7befb884af8d86bf323bc6723cc05c63"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ms/firefox-48.0.2.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "490fc881444dcdda259719b2545de34b8a3759d6f13a4d66cdd449fb629948bf6ded39576a2ffa53ef6d83ff16854c8c0b8521001ce3f43abf1f35387c8d6191"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ms/firefox-48.0.2.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "fc4c0588aeec05fdb2d65adadbacb210d04470e9588b3950d2011ab0e667311aed76262888f9870a4ce409370d8ed19b3d481437bef72960b151f76d0eb7ecb4"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nb-NO/firefox-48.0.2.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "d75931b47ede66d7c5025c4fabfdd918f21b0f66a9d8c2a5e772d3d26d941926da4f0852ac8dab92dc9236a0aec4b5cc1eadf5132d00721a91676cff1d7076cb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nb-NO/firefox-48.0.2.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "e42a91e469b87235a8deed1e4564899287dd568d0ae93ebe139d499d9d5f59aafc327178a86f36f5f44d90ffb404907c80643f00f1160014708f061afe1e17a6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nl/firefox-48.0.2.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "e0dbe6187eadcf305546f2916c8d21c6ae6dfa634aa30b51002a8d2ddda412cb35fd2c6cf5a44ab42c9805ec3a6c3322132e5121b04476935d7f67d30291011f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nl/firefox-48.0.2.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "56b674761390018c7bbfdc8523b0ccef1d66576478cee43a6464d6df3e0da741ed9775e7ab48abf57028f62f43d91d8a0e7b17a8ce301c87ee576f9daaceb1f5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/nn-NO/firefox-48.0.2.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "a18693969b1d3f8824ecdc705c3b577dc1288cd5ba47ca0e3cd8e88d0a5a01927f87e56a2beff62d3ca9e6aa325619221f2f134c8c95b0687a49bc0f2cfc2ada"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/nn-NO/firefox-48.0.2.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "73874b50e63de07f73de2feac7a907dfb4e0eb014d913ea433c2f7d3ce9050b8ba811b72884ff7129a149ee38a30603246aaa55d81f11bb80e9fdfff87ba9120"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/or/firefox-48.0.2.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "de8dc3c4b91e96c5e49b32197e1351717cd1b359ba3802c9f0fd39516f25d4df7a9a57b4d4058d32e1d31af3c0ca8e1a8fd3fb4edbdb9718dc51f0881499bb0e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/or/firefox-48.0.2.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "999a71a5f978e2cf507966ac465ae170b4c01602c703b7ee85fa02224c8edb0f789d35bb0a20a5f72c86782a95943e9f8f4bfca301fd74ecc7f063f35bfe1f4c"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pa-IN/firefox-48.0.2.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "7378012baf763bdab21238f306244be208c20ade796cb15e2801133f0ac8b00cd92a86403d9591d5c2af94ea6fafd7162953ce88b5e9148fd447118128b2398f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pa-IN/firefox-48.0.2.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "b20490e7303aeecb8d7b158464dd1a4f4b70979d74d0c4f2f15661abd0403dacb4674ea1bc2a09ce5b04ebed2987eab4475e839786e63dfb2f1eedfc44ec021c"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pl/firefox-48.0.2.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "e0cf99f816eeca80e7f2a5344b11202be124e1fa1f7a2c206ffb5c349556e0a2d5a7a3c653538bbb867c0a4d19eb9126c947806e0f021b68a9268d1913a178c3"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pl/firefox-48.0.2.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "fe27c64b344f6d02e09e240f1a8c45236c9632c2ea9422ede227ef4c1890bb81c049a8c320e4a53cc818c129927e289f8279a64cf15655563958af23b4ca7076"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pt-BR/firefox-48.0.2.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "868461b1d4d971ae4af0010bffa03012940758fd5ae10c05045c77fd5bd0f50997775a1c390f1cdc553197eceb583de47659ce84055145a290ca81e6e66a0a36"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pt-BR/firefox-48.0.2.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "ff50b389d0c653db38a4ab8bf3b28095ca81b30340e973315bfccedfc737e9e853711d813fb08c52178e9948f49f7ec1bf7ae7958d611c1998fe938a9478b657"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/pt-PT/firefox-48.0.2.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "6a786c014c60268c8d24ca99e40106571fcc1777afef117a0125f7a78658f41cdcab4b16bfc2dd4c7ee520af0753b0b4180fcdcf32eaca8dfec7975146a08a60"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/pt-PT/firefox-48.0.2.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "56e911a6b2839a10c3d06b76bcdf0b746fb45fa0ced80c466d240a31cf7e6aba6df21b98dec1a4d3bf11baba2f530dbf06d1f94706b622acd2b08f2b2ef9ebf4"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/rm/firefox-48.0.2.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "88fe9ad3d7afc11e195f40ec0bddb4ab5e04446e08f9317f82733e32e536d32b2a68a1ebb235f8cca828555c4b315911dbba178159f12f8bb2cad64a8a44511a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/rm/firefox-48.0.2.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "5153adba79e65368d1e901dc557d311b637d8e9b0506ba979246bd1ab6d5e31e2d885a73be704488457e051e81467412bd45a6c74d30e20198d9309f6ce59dd6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ro/firefox-48.0.2.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "faea58185a6bf7d57134b218a058ed4a3abf4d51dec96a5f5dde0f04daf2a2c8c76846bef8b8b43ed7fce05b4c6431fad52ee61f4e47ad62be95ef8b8914a726"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ro/firefox-48.0.2.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "319792a258e2ba40cceeabf5b0879c2572811484046bf34fa04b213c083391de20da1bcdb654294ac961a8b818f0c9c9287f32948e65eb50f3a85f43b15e538b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ru/firefox-48.0.2.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "ec44f3a0d95beaebf99e9492c7457ecf3857899d4587e8d27ecbd2205d5b4a1c1d0159f471ccdff01b5d9efdeda9dcdf28bb84bbd12c73e676ea0baeafe0afbf"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ru/firefox-48.0.2.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "3525382dcd7b2ee2f3ce847245216c0b8925679d539ef2f83e43d9062be06724db6f66b9b4747f3e20c5e7355e4b6ecabd816c07f201f2afe921570905cd0a3f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/si/firefox-48.0.2.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "6cb64f9fa85fe4adddaf68f0a221da8b2dd92625b2302102ad530c15d51c6ca1994ba53a300ab1c054da1fc20c5073deb308a46060ee6d7ab6ca843a930a6138"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/si/firefox-48.0.2.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "499dd5b16a48ecca536379fec41fc9ebefc71ae12963bac44dd0d76014709e2ab219869f3b3fb08f5196b051ec8a7e519fb994b15613559b38b35c4e6d8bbfcc"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sk/firefox-48.0.2.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "11a73be8c2f801be0a46831b81980c2a9b2b9a4a645a710d01fb0d9a8e2de91ee18ea57c23b73b25e091bf88b15351a8fa261c349e9768d200172ea053e5c465"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sk/firefox-48.0.2.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "07e1462282e2484b58ba6b413034081a3e99ac907d7285f207530cb46d6ee61a6b166bb9d8820ca696789b57a0dcc3c1dc058975688d06b63b32f8a7a65974d2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sl/firefox-48.0.2.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "64d0b5cfefc8e98c8ede5497164be13854334f72d1e526a08d43d6712e6286ae509347805e9329cb38bb8f4708615d51e56221309198071c0b6ecd6c7dfdfbb5"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sl/firefox-48.0.2.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "d6e727ca07084eefc02b2287a286daf6302ea0cc3c8fcc22f238ce2c9074e95c0ec031068acdeb34277786670a91faf85027c9ae5acb963d150b1a89e534f98f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/son/firefox-48.0.2.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "9ac81b861b81d7cd4e9e71b6cf72a1bd8469c8190371b93b41034596148d831ef7f231b84de9cb8e520d7e3e92e83fdaf2290bca5e9c578ade17e0dfab41293a"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/son/firefox-48.0.2.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "9759f52732b9a84b8c6b3237356b0ec1c2aa0a2a1db79164cee491e761a9e10d88e931f73a5bbf0b7ed184738c44d12e542903577e1f0811f823853d43daf2d4"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sq/firefox-48.0.2.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "c7bc8ec81124127735d49d74bb12b77de24a5a851c34c3728adc752596e04c6b1ebeaf1a361fbca36631135cd9e385664adaef4d3c76ecea4d41cf88d7b6adfd"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sq/firefox-48.0.2.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "aa7b7c20f372f23d507aa7bfd088b2d2306b267a3cbf1b0004400d29b96187d9ea74a77933b9dcc42ef081d7dcb8db56b397d37ff001c61bed22976a6435d3b8"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sr/firefox-48.0.2.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "cdef642d72e3c3e33c1e2cfb8a5005249719390ce732b06ffeb15b01a77539263605fd8657ac8cbe8acfa2c92b2e1c0dd2168728ae2578e25453d6d79c06a17b"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sr/firefox-48.0.2.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "f12bbabaefb8811d3babe7b3673fd7f281645bb8bba0372594cca4fee4e0b81afedf46378fef714c1e624ede6039c913f66bb227a2d076a6950a0e623606adad"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/sv-SE/firefox-48.0.2.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "dac4342478d5a8e2743c6cbb44f58774be0b9bb96d9ec7a94b4ef41d093e76a511ff914d323ee5aa55cd8a00292c477e41eb0bb9fe37cfd91c89fae432a661b7"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/sv-SE/firefox-48.0.2.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "44323f6ff400058dad98f2e7a2f82afd52d706fecd34e7a6dd1780f45b6af77d2f6e892e2aa33784e4624f40ec5251e494ad0b8f95bbc11351dca94c599b405f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/ta/firefox-48.0.2.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "cac58900c6d169d1ef3828b4627c36c86224e21a011141c8bbf9fd3df3ea3bcddb5ba821d7d8ac9f5e6f5e348d1ae3cd92cbf2c151d380c22cb925f595cb637e"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/ta/firefox-48.0.2.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "38fba18d8edc2a4fd614a39b77aeeafeafea98e1dbc3bc2863284bbc2b7b07d28b273da9e3fa0bcabac90bd8049dc295db3d28e0dd0f1f522bb496f06d7e7c5d"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/te/firefox-48.0.2.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "25adccb31523a1159fa9022791198869d87c8ef44deb8e3d7626a2500ddd82fa977d3c294d755b7e0385eb4dc80e00067091da78c65ece26e45b3ab9f2a4676c"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/te/firefox-48.0.2.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "550ba329d8c968fda79d0dbc7291f83bfd66227ba60a79c697cfb29a81216d3323853a651e401a0a8d02c658093330470b42bc0b91f4e27bcde368b33072ed8f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/th/firefox-48.0.2.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "a41abdaa15a97e55e0062a9f114a80bdc0e750112c15fe7204124aa1f9e54ad3caa1515caf145cf5e5269f41d1b32d8a0c2fa6691612e1b36fbcbc685ba17f79"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/th/firefox-48.0.2.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "ecd440389c07042aaf7aad74a135562eaf60c23f840bea0b9b3b62438610c0adf8de1c2ca57ab700f70913ee498317d92fd1c00f92d1af5d6d50a95c15d9bf72"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/tr/firefox-48.0.2.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "06b828afd3c9a89aaa448d9a8e18579142cf19d0008c409e115bb0148c4cb298eb2e896bdf20f3593f5f873489eb9b701104643d6088218c98e7b2ed44a6a775"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/tr/firefox-48.0.2.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "3107986002dd0b05fc10de856a532c40d5c38291bfbea07948b2c4fefe9cc2d4f5d8567b0e9856ec7fbbc7004078bc485a572b1a1dacf444db5c71aa7684edc6"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/uk/firefox-48.0.2.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "9e6d5854a468c5ecc942735c89d740fc8e304053f6e07a9caa3960dbf95e4cb9a6c7c0dd2e9e951bb49314c4cf0385a5a99ad7df6700ba21b9816f6aa3c77689"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/uk/firefox-48.0.2.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "ef021c365d2ef8d2eeaa6a92ac5d9d979361de30e2de06c7442f2085d66719a9fa876f77393737778f5b8afa29cff1898a0ac638df2e45b6c54e0c25c7c9b2b2"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/uz/firefox-48.0.2.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "d15770f8b6db9f55ecaff13d27a0c2559c032870873930c420fcd2d94c79ef3853138e42fe4205b5ac8af33aafcd6b2130c712025ef49801717b153e416058bc"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/uz/firefox-48.0.2.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "4b47c53585f3ed44d80d0099596ab710dc6565499c2f9ce0ed38ac24274882d5bdab16260c4c67c73b1b93b4fe9a8ceb0ca135b2d432fdae28c91025d1cb2e9d"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/vi/firefox-48.0.2.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "2d2dfc0c5515dac6bbc337acb41d72aad101837caa75257a1e369991ca93dac0bbc4cc3b31c8457f76ccba18afc9751eba33b9f602777a65d65da5ce0c208858"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/vi/firefox-48.0.2.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "7afafaee8de0e47d8e9919bb60da7cd361b18ee15b764522d9609e44e1aeac3ca8b5ffa97c23430a66efc4f38c28a5ffdc05bb4a46734ad2e3388f587b16110f"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/xh/firefox-48.0.2.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "b86ceb71c96d19e92af81604925b005eef63c7a55ce5fd9c1176017c9938389c30a5d91134c3d900a4a0635dcad7b25233f39848f9b50fee4e1ca1520dcf2c95"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/xh/firefox-48.0.2.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "c6ed1a65b72d6d63b4c031da93fa1e07cca97027d2a3dedc15e9cd2ffc21b371236e1b2cdeae02534e37c7efe6112cdbce0e5924e872c76e057cd59445ceef04"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/zh-CN/firefox-48.0.2.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "90ea550631d4b3a314b56896d1eeff147e42e41667a94f6457fd18cd2c4bf0e18ca3134e4dc20696a2a30ad9795cfeb454908cb99c580b30bd5eb147e53004cb"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/zh-CN/firefox-48.0.2.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "3ef020131a05958aff64d5d313aa8bcb92801d1ea0215406532efa55cbc66291d976e7aaa9bb11b38d35634d3e2ead7f838a7d908066e0b36b65d41767d38583"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-i686/zh-TW/firefox-48.0.2.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "8725261467ff069d523d6e813ca04a8912a21df2fada21cfc8c9442aada3a882fbab7468fed376a2a16be121caf68e74de21fffbd1b9345bd68923dffa2c4a31"; }
-    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/48.0.2/linux-x86_64/zh-TW/firefox-48.0.2.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "172fe85c404b8ae7e073e11953a74896a07238c89077fc487be2dbb52a43fa183dd1ec17fb43971b2ada95c8c85a6aeb2b5bd9b637f0de8a3322a57b18783255"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ach/firefox-49.0.tar.bz2"; locale = "ach"; arch = "linux-i686"; sha512 = "b082245bf287224c9487d650305cbc8cc8a602c36b526fc0174f56489bbe211dfff78ec40ad2dcf8df5eb4d951c352fdba5fe4b7a3181b54b54d1304ce9cfdfe"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ach/firefox-49.0.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; sha512 = "0c724d60357c817d78a4430103a50188db56f9e6b915cffc1d5177675727e1f253bdec37244651bfe1d055974a202306424f59e43c97c41c31954fa931c73f7c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/af/firefox-49.0.tar.bz2"; locale = "af"; arch = "linux-i686"; sha512 = "0cde959ebafc32dd5bb34af6bd7eb30a556ab6092459766a52e60621f545051300b41c3212786afb5a2e01cd3dc744fda72fd1461f4d2770e734537df930c7fb"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/af/firefox-49.0.tar.bz2"; locale = "af"; arch = "linux-x86_64"; sha512 = "59d8b7ae0db4720811e9d85f00055eb2f702a24cd9a1e0b6fc6cc1b07d55559d02976a6cc176063c777f391f5c1206c647cbdfaa8c880c4d97b3764e42ce3fb9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/an/firefox-49.0.tar.bz2"; locale = "an"; arch = "linux-i686"; sha512 = "e0a5d4993fc3088b517330278228d87d27871c2c6b07b1c771c3af274bdb7968de36cd16d78d1056dfd32773a3e813d38728bea3f5177d83c7ad87645f339aa4"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/an/firefox-49.0.tar.bz2"; locale = "an"; arch = "linux-x86_64"; sha512 = "d10c9bda25fdf945c11dc83abb088ef5758c7cefc6c1eab2db246d680c8bf97517bf7839710481684f03c6339089fdc1c01f6eedd88e1c675320e4f7898ed2ab"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ar/firefox-49.0.tar.bz2"; locale = "ar"; arch = "linux-i686"; sha512 = "6f9d6f15dfd5af271d4e0a7944d2a37c17c755278ac9c951bb8c2e6602f71bacd0aa63297e041f1422364f0125310af8179975d023bd7cf0e01556695b720981"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ar/firefox-49.0.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; sha512 = "374ab7e28f5ef960b6d0ba6ffa2bef136d697916dbbcfb8d87186c9bc25aff188063d81bd250a6581c0e1870f222526ac7bf179f6960ffb34c08974b0f6a4be7"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/as/firefox-49.0.tar.bz2"; locale = "as"; arch = "linux-i686"; sha512 = "ea216d3def6e83a8dd6db481d3477747ba87049f668b41906c40abcce9913758aebe478c3ccd258b5267d6c9ad013bac3652fc6496811fb96e4639ad8adc829e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/as/firefox-49.0.tar.bz2"; locale = "as"; arch = "linux-x86_64"; sha512 = "f25cd18e71f331c906edfafa229f93336c92f792d023f7ad87f77d7ff59a80bdeb9a9d77fec585d623dc13c9694d3c256262c1bc9396e996fb713decf7c5991a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ast/firefox-49.0.tar.bz2"; locale = "ast"; arch = "linux-i686"; sha512 = "2bcd3c9d217389ad200896d3e8f79b3708c0df0f255e1e3241156ce6bcf61123b839eda1e7700313b0fdd77cc4857f5ce321df228fc4133d7be475427d41550a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ast/firefox-49.0.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; sha512 = "a408ab3ac9ebb6b0f2ad6fc67577617597ddae3ef944d72648246c538da7d7dea6af260323ec061c43a1e84c3946cc879ea9ac85e19f780459021832186a66b2"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/az/firefox-49.0.tar.bz2"; locale = "az"; arch = "linux-i686"; sha512 = "ef7def291ac82d2675b9bd65907451a1ae1cc7e6f9ba33a99801230a945aa801b9e31b74fc66038644cd9b2d77eba4cbaf4de5af2be14351dbe06b6cd46ebb60"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/az/firefox-49.0.tar.bz2"; locale = "az"; arch = "linux-x86_64"; sha512 = "7b9df427933588e40fcdd99486b28a3a1df4bb2c7de54aa9feca2c4a3b0aafcbc86005962af228e5a57a5c48d84cc1104d95505dfae6d70f0d58297d22425849"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/be/firefox-49.0.tar.bz2"; locale = "be"; arch = "linux-i686"; sha512 = "4605f9e2b679ee41bb0b2ef915d7eafebc2018ad6291d4732468b264917691561c49b7497e2bcb4bd9b121dab239c1c35a837e622538410b1c3fb2056cb0b401"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/be/firefox-49.0.tar.bz2"; locale = "be"; arch = "linux-x86_64"; sha512 = "e0864d2534562c794ecb790dc1859d37ba400bf79e06fbcef571e2dff36458d515fe42e50bcc5ec172d2643225d146ea38065b1b595061252001a75d595ec82e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bg/firefox-49.0.tar.bz2"; locale = "bg"; arch = "linux-i686"; sha512 = "4da00516d997ecaaf9ccd27b54e2d52916246f24ce28b62ac62451cf77f37611eccbea6b494b36c56d352327ebaa25a1de3fad4ebd8f076a113d204126591ed9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bg/firefox-49.0.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; sha512 = "973290680cf923eaeab4a0ca2fc6950bc7445b5579c6d4c73845a3881b545ad1aaf9fbafa5d37fa45f271f4a3fd38eefc2d7a756d7dedaa08a52f55955473929"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bn-BD/firefox-49.0.tar.bz2"; locale = "bn-BD"; arch = "linux-i686"; sha512 = "5fb2558b29c80b45208ba36874442e31d406c0a1b4c46ac8accc930b1ab98f1a24ea51d4172a2b2942af5475d21cc19db798b0db2032599f02eca60f7ee5cd30"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bn-BD/firefox-49.0.tar.bz2"; locale = "bn-BD"; arch = "linux-x86_64"; sha512 = "db253c316e328385431d89ee373ac782b42ecc89c7aa6305253e85ba331b15513bf6295bd7f867ee298e2067afd4cec4c6a00e8645b94a31be14f4a1b89e64fb"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bn-IN/firefox-49.0.tar.bz2"; locale = "bn-IN"; arch = "linux-i686"; sha512 = "574c3f178d81f2a2cf5aac98577b3f6e384a5adbbd4b2645111a3829cd0a7962a8304bf42d7dd29ca5e37311bf1b1e8b62634cac823d1bbfd832a71a2fb5cc3d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bn-IN/firefox-49.0.tar.bz2"; locale = "bn-IN"; arch = "linux-x86_64"; sha512 = "2b5e63643bc6a39f7493ee2e3744ca6b0c5a0c6251f4b1af32ab911f71cb5219d5506910bccc8f0168353c3fd0ab7d1eedf487ee7406f5a1852e010f6261cc02"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/br/firefox-49.0.tar.bz2"; locale = "br"; arch = "linux-i686"; sha512 = "efd72e7824440c1220ee34f578176d1b1652f2ca31cb4f28f7343bfa4d7cd91f40ead137b879fef39840d790e76b4261724f68175e8eaadc7a55f0b9ecce5538"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/br/firefox-49.0.tar.bz2"; locale = "br"; arch = "linux-x86_64"; sha512 = "17abd7de76cbc9b1871886d09a0c35df49d7acb3736b3a6c616a200932565170864ebbf1dc6b320ace2a0c95de1b892aae170fd3be794e9c27025f0c19c435f5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/bs/firefox-49.0.tar.bz2"; locale = "bs"; arch = "linux-i686"; sha512 = "8ef4c39bcf10068156bdce5bb3df64753914476f92ce565b7fd681a674d6a45a5005efd2a7c4969bddb8eadbe11ddee7fa8ea206868b8505024b6688cd11c47d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/bs/firefox-49.0.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; sha512 = "3e25aa90f2348725517858299ac6ec3b1febad9dc2080f17484113c23e43862a1abf06d473c623bb0764a589ab68e3295c48b997ba3e76f21d5e04e0ecfdedaf"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ca/firefox-49.0.tar.bz2"; locale = "ca"; arch = "linux-i686"; sha512 = "4120e2c2cfd3183c294be353243f32631f34f8e3ddd0767b5772a355058c3148557e606d1971e1a89da349fbcab56072366342f8a7f03d2b702a0ee55d1a6268"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ca/firefox-49.0.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; sha512 = "e3d8e3d060ad6cf28cbe06d51b21c26285f89cdc32695eede992d6953f9d62068f6951506f02e32e1ada37034abf095b1d6dd7a57076ae0eeac9ff939e2e84c5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cak/firefox-49.0.tar.bz2"; locale = "cak"; arch = "linux-i686"; sha512 = "5b27d128df2101f08a59dcd46f66ba7c07434b29e9729ece3c4681d7a5b6a4330023bfddda42ad5f1765c1ea3c1401f2664c019b0f84c182f709e91520813f7d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cak/firefox-49.0.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; sha512 = "ea241cee1ef1ddc3545f4af9b0ad4e93a7879e04fc0c11e2288b3ea59d1ba2a5db36a048d5eebe0f69319b40ed6654866c498879ab50970124dbfa904f5929a2"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cs/firefox-49.0.tar.bz2"; locale = "cs"; arch = "linux-i686"; sha512 = "93080871362ee9f8d07993fc2e509beb6e6abe496ab1b9cf8451979e65c25b7a6e4eda0759ec6d6631a1dd04874cea08e4e0e777bd0429ec6525563777040b02"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cs/firefox-49.0.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; sha512 = "9aaec753784c6e5db6fd48a2fe134cf4a9c008ff3f5ca09a17c5982b7389f2949c6551a004e0bac723c91ec5e20dab46221b35aa3f94974b5fc14629cb375096"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/cy/firefox-49.0.tar.bz2"; locale = "cy"; arch = "linux-i686"; sha512 = "843b18d25d94808737283b2b572902d999bf34ea17fe620319b3b15bf004d0b5526c89416d6f09ab84a6087353212e0e1a72fc3ef8df50acb7336da2819d4830"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/cy/firefox-49.0.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; sha512 = "caa53c6ab2c4f8127fa637d8b8df9727e31b0c0ec9da8e016447cf8e1333cd82e0e41b93917821ceb8db59c558761ca52f4dd34fc4916e1b70499f491a9b3ecb"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/da/firefox-49.0.tar.bz2"; locale = "da"; arch = "linux-i686"; sha512 = "c4a441053cb6c116cb35817e03774690ad540b6f9c6865c6a64d4751137c3935c5c2422cafc60f10f4b9d393a6418c2862c8e05f8ce814abd1e028f867114901"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/da/firefox-49.0.tar.bz2"; locale = "da"; arch = "linux-x86_64"; sha512 = "8cb552f986e49d590659901f438e6f10d494445758d09798285285629f2cd11e7da39e828f56793673d70f5616b3ae9bea10d18c859f89190fb4998f5d75cab5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/de/firefox-49.0.tar.bz2"; locale = "de"; arch = "linux-i686"; sha512 = "50f7a3e44c19e56d4845423065a47b6ccd12d353b10ff2ed21798a668e77fd37da86824a9da2b740f95d6f83af9a33eb3c50d8539db7d27a421606139212a71d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/de/firefox-49.0.tar.bz2"; locale = "de"; arch = "linux-x86_64"; sha512 = "2678fdbd4a9ee6281eee6a04b3586d2e577110fdf98e8a589d934dddbbc4be565ef50d4b457709758a732506b56084938144d5d2e0b95a9fcba5afc3c826ad02"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/dsb/firefox-49.0.tar.bz2"; locale = "dsb"; arch = "linux-i686"; sha512 = "6fd71b3130ea4571ff4456876219f5720f99e190b92ea0615c6fdb519fed1dbc4432ecc65205a92023bfcf6c1ac49a622dca3dc0e3f362dd4a82253baffbd220"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/dsb/firefox-49.0.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; sha512 = "a23f6f93bb47ab231ee670817a28187e78ebbd459d4151444fd39b68b2c44990f06f8c90c850628ff8e88ab262c0aef48d990d4c235aeceb4d252249326bb16d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/el/firefox-49.0.tar.bz2"; locale = "el"; arch = "linux-i686"; sha512 = "12406ba82fc63d94245188dc5e3a1afe8e97f00ced23d19b0f463806b1fe98fd49daaf9e7caea0f1b0a6f6bfd05237a1231bca5b6a49298c8e9a1ceabf5f3a94"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/el/firefox-49.0.tar.bz2"; locale = "el"; arch = "linux-x86_64"; sha512 = "dd4f50c2201652a912dbd5ee7b6e3053c2519d0fcc13ea683ff7c6f6b1ff80ed5ff27215980def1de5254c658dbcb59df13f5be09ca9acc7f41e5711c9819d6f"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-GB/firefox-49.0.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; sha512 = "4ce5cbeefef030ba020f1f4ca674587734729d1451c072efc8bf7486b3f0929b9720ff399bb7acb80afbbd39997e218c47ad2a9c6b248c97695248e9b3448c65"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-GB/firefox-49.0.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; sha512 = "ff7b4aaf59af5524d015ad680cd684e705cc9bd97b9afd459d829261d2b9f43a39a9a6cf56374b69e5e23674f97ac08e6ea4babc1732efb013e289c6c7835b8e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-US/firefox-49.0.tar.bz2"; locale = "en-US"; arch = "linux-i686"; sha512 = "d3815b311f7798c4c2dae7682c93ec32fa374fbddf5bc696cf13f048a2a6b1b35ba6b5700a30f0c0727ba346905e846da38402b8bdbb6b15549cbc2aa0d9446c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-US/firefox-49.0.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; sha512 = "eecb07437e814ddb9c9331fde306b1531dd225866d91a7b15412aef905e89d753332940f2da7b6bc53e7d73c348091ef58b8304f95775378c4bff1a740c18162"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/en-ZA/firefox-49.0.tar.bz2"; locale = "en-ZA"; arch = "linux-i686"; sha512 = "c1e47313c2a07b5d33ab09d00148cf62e09ae566e0601518e0d3f65805e258c65fffbb240197f46e52d21c93b171d7cff64a74a3d7d9ac4ad8849a7648718165"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/en-ZA/firefox-49.0.tar.bz2"; locale = "en-ZA"; arch = "linux-x86_64"; sha512 = "50a5a6df373af7620b6fb3166a3c7ea06a73ed6d14d9dab46c1f7fb885f6a7da6a4fd7b1fa7e44b91f3dcf2e2b432e140f9ace19f51e35c7e7fb5994e024b5f1"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/eo/firefox-49.0.tar.bz2"; locale = "eo"; arch = "linux-i686"; sha512 = "9424ac023e76cf2c41e9bf50d941ae59a73ca716050c98401ebc6a7f2c891e22fe399bfab105454206dec7e503c05c16afd9605e44bbf9f3827b429a3372e416"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/eo/firefox-49.0.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; sha512 = "bf8338a6ebc3c9c3f21249367e6d288b06fa31988ab110d11fd136a7575501531d5e7cb687d15cc883468d3f852ceb015c0570e42b355ddea5f384eb1dab53c0"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-AR/firefox-49.0.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; sha512 = "6b5e1014d1c5379c6a461c8835459dc6bb030ec0b898aee547f122b1b92ae284d4fa2a2bd93893f43faeee5c30e3ddcef1bbd06abb655178fdf2d080af5bb137"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-AR/firefox-49.0.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; sha512 = "d9625988b3754c2c0bd89aedf78bff52c53404ea8d47f642726767e6a11d18059c4e9e261bc5f5eee02dcf820a184020aa504570b32d3ced6d15beb82bc6916c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-CL/firefox-49.0.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; sha512 = "3cb9ff0f823aa1b8f2f33d2ad39763df9992ff84be75c1c4685ee34a3f3d1e614869f4d31a95f16c86e540318736845814c143a6bf26a5e6324df466e1ea02aa"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-CL/firefox-49.0.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; sha512 = "1010add5bb4418960b77cdef8f1267ef9ba98fe9d7d82bbe7d125ed23589ad9b2f934af82e35e477bedeae324e9fa862354e268ca829346061bbe4308cf2b107"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-ES/firefox-49.0.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; sha512 = "d64fcf43f71de119c4e5916943ff17b5e47e4c51c7482b4ebd9e90ae411cd1a302c6e246dde3a90ae5bd29d33f3915529633a3b87120ae571a90e6bf3e676c87"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-ES/firefox-49.0.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; sha512 = "ce0d7b320514c975dfe74b9d6cf63a51162c68e40d4addbfddc378377a0788b501b6e6b80787137987196cff286fd62021cf99d9ef128bdaf2a9a271e6e83ed7"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/es-MX/firefox-49.0.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; sha512 = "097d9e98cbb024042325188fa4744acc28035fa89788c613a579a74ae8619d02a16a49e7b73a8b4cce95102d9388bb3a857036c17b825be1b12acf7a8ab7568c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/es-MX/firefox-49.0.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; sha512 = "3cc5950e78621a31b11a3b1cc0946d41d4cf1eade23dd92c818df6f5f2bf60db228d278999610f80b2383feb5b8e1e78b90532135d8111c5ebc3b628d4804845"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/et/firefox-49.0.tar.bz2"; locale = "et"; arch = "linux-i686"; sha512 = "5be378c889cf86aa71e2c234ec090db8d8a67a778fe2fb8b271e141e931082e93c086aace526026ef57888accc8cc52d37827dfaa6e975d0a3b1710f27a02902"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/et/firefox-49.0.tar.bz2"; locale = "et"; arch = "linux-x86_64"; sha512 = "1754850a8415771904ae90b8096d3d04a3fe75df3aa87c1ea967bcfcb747483f2171ded2c8f3f091eaacfab3a2587b3be4a0009384fac74627c53135173a3508"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/eu/firefox-49.0.tar.bz2"; locale = "eu"; arch = "linux-i686"; sha512 = "e6356d13de9445e11e6b0a1908d2ab10ffb559c907a8e6d06cff090afbfcd4a557e1bc16ff13caeee61818d2044fbacc65ace65a7d27428aaa071cc52b453404"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/eu/firefox-49.0.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; sha512 = "15d3cbb376dfa269eace5b2910172256b79787e16f1eaaaa7dd002e92d73f50540398f0097146e6d494e173e2f1c2f0dd7bbc4c7d52f3dbfc98ad6e376fc5bc5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fa/firefox-49.0.tar.bz2"; locale = "fa"; arch = "linux-i686"; sha512 = "151f18d14cd3be6360c36fa63c4cb605078fdc9146c3e28605d626fd85886561159275cc1dad44bb130f8b530da09aa897e3a23e061fc044c61ed74c930ce81e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fa/firefox-49.0.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; sha512 = "5810155928327671fac79d99b114c16f96120f3ca6c26c286c37d23d7fe71dfba2e8b9f0236a16a2cc6d1fc9fe2bd84278b6e5ddf25aa7876d672c6c157d2065"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ff/firefox-49.0.tar.bz2"; locale = "ff"; arch = "linux-i686"; sha512 = "5716afa43a8efa70b2261906b990b376aa1505c206446273156f75c0fe8ce9cf0713e40a72125b4f0999cfa6d7d7d55872221a3effedde2f31abd4bad15085a1"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ff/firefox-49.0.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; sha512 = "bb85b1f71568d117d27d891978ea14b65340027803fdf0693a0a2c42b9429c7a57462c5e3b0acfa133a6a133ac4faf31ba83faa417587c1a35c3ae752d0be5a8"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fi/firefox-49.0.tar.bz2"; locale = "fi"; arch = "linux-i686"; sha512 = "ed3a084f08985d9f4021327fc9b597bf184ef37e067ed6f96573337f63aae35f96f887594d9620d57c840ac6b2259add0e2a029b0a7f86d25bd3217cee609daf"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fi/firefox-49.0.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; sha512 = "f4d137824175b1231b662d800270bd59f1d1eb8a5d3c975f15a1f9a1efa4c9def03af0d82c0243e05e4113d1b23a7e08da35019f66c3e0f257d5f26cf0259bb1"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fr/firefox-49.0.tar.bz2"; locale = "fr"; arch = "linux-i686"; sha512 = "0583f12e50318ae7eba691251e94a9828a227d1ca462ac1ef0dadc6371aab88838cc3cfe9c6ddcb9899b81111cfdc851d7a9dd9e82cbd89eeab29c02d3e2bd23"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fr/firefox-49.0.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; sha512 = "b12009c61cd54c7ad8d60a8d358b3f8fed9fd09172ae928d477844437c276fbf04021a2c367565923e204a6e3170857bc910a20364d66232bd4c3142dd7afc47"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/fy-NL/firefox-49.0.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; sha512 = "8e35ee5c5b323daf54624cf2dffe306a2a59b490d28c516c6537fd2cc6430e52e6134729dc98f03fef945c06d888cff690939f6c2fd418b2d99991bd8f4acc35"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/fy-NL/firefox-49.0.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; sha512 = "5b070c19834d6ecff8f607ed2cfb149dcd487d128620f79e1ecbd9fc874e594f5af43fa34f1543263f244f51b8d748af99c8a1cd8b10207e4014658e3f18ff36"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ga-IE/firefox-49.0.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; sha512 = "482d840f25a6d734d530f81aabd30e516cf8070e0f43e0dea13af1745463a478c3f84f61eb305beb2440cdd3c1e219336c7dce8edf0197d21e87b3adde0eee17"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ga-IE/firefox-49.0.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; sha512 = "fcf48da92e7b86d5a7bd59f09a919cab41bb72c33a73768fafbb93a970a254546df3b090b7aa3414ec25bc9b97b0c16b66ad57fca4a04218c07d8865e1bcbbcc"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gd/firefox-49.0.tar.bz2"; locale = "gd"; arch = "linux-i686"; sha512 = "e6c244ea5ba25ed59695e961deffac3f99b9bfa03c1416c7c52d25d8be26c438813f3531c7dad243dc0ab36e6aab0c6485ffeebdec16e5ad47d4f6b5b3718edf"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gd/firefox-49.0.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; sha512 = "6cc1052e440888ca0114c6c7fb7ffc3c08cf9fc5ae5f38be0fd94dbda8e2230936f3046761983840a9b909b472852474641418b80eb5e268686b0f94ec2da39a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gl/firefox-49.0.tar.bz2"; locale = "gl"; arch = "linux-i686"; sha512 = "69d928c79b5cefce463f4831363395954787690a0d0b6dadc9f9e89ddeba9f210c71a1a6b7504a35722b0f36cc871dacc82bf40b2b9bee454f871c045919ca10"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gl/firefox-49.0.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; sha512 = "190a8504b7ae9e72e06f0848a6c0746164fc208c7a7554caccd8e81f65f0ab914796f9e811095b8ecf50c6ec9b213856e3969bb8631f1734bd74255908eb2a42"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gn/firefox-49.0.tar.bz2"; locale = "gn"; arch = "linux-i686"; sha512 = "801acc36c2821035af178d6ba779897041d2a7dfa760eb0e5dbfe578877fb62e40547fb5c26d0f6442ae0eba5b333616ede8d746565325fbb2d8e5b1d870e699"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gn/firefox-49.0.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; sha512 = "79db4de1e92e21264f2ec1bc8b9bf334adec8a48cc207b2d691ffc570bfff4d48da0a51accbab1b64395dc7679d1650fb158d8f4516de48004be7e3cf4b1932c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/gu-IN/firefox-49.0.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; sha512 = "2520fb3d79e8a37b954a83cd4195ba79547fd12fde3c2a91f13a8d0ae9dd165f07cda6e7ffa9f9c3edc0e81998ff6e9343fac49bffd8d707010083adddf553a7"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/gu-IN/firefox-49.0.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; sha512 = "0864172462c8ca9bd162c8227e59f4684f6a90106c864a36224d58fd749b2d19d1496c6b877e432a1b8a6c680f9cde63d50352223def13ce8da4d5806de56a93"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/he/firefox-49.0.tar.bz2"; locale = "he"; arch = "linux-i686"; sha512 = "f1a595f504376d70531e5eb04efa86797705d869d462c7505909b416840040f2f7fc2a27718de6a743a9b2d37e5abd443674ba2f389882d9ecda86707adf8b8a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/he/firefox-49.0.tar.bz2"; locale = "he"; arch = "linux-x86_64"; sha512 = "4a4a7ed80a016812dcae29079c0f0badbdd39c020418dfbe07e05dca97b7632c9bc689bc084f7e957da6046cb2cdc74a7e0d9f06d358701c80f73e702cffb2fa"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hi-IN/firefox-49.0.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; sha512 = "608477ed47c0d4cf9cbe33a240775dc10009546c4834012257839dee6d516b527051118c92ca8bc289a9f868cdaf432c1c44247efdf8d53e9cca87db02837bfa"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hi-IN/firefox-49.0.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; sha512 = "9d2e91b8df386a3263b82cf88a945b5cc7de1a9fa3515b52c48f27ed1c8dd9b4edf471b588ba9c5a9d1eabebd7dc0fca89b33c0fff7ef6a0030a4474a158dbda"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hr/firefox-49.0.tar.bz2"; locale = "hr"; arch = "linux-i686"; sha512 = "354d3cb33707ceb6a9d4d3f20304ad252e8f2efa36882f512c4382663b05ea70428f2978d2f9fd8871006cfba8a74d46f66b288bc0f2093218b0383d6248790a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hr/firefox-49.0.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; sha512 = "d5ee0aad4e91596503309d0028dc636550ac9f9fc5d36b1352026dda8de2c5a931175d96fb98192d93e52236b6c89c42fb9b56f2a69c484108281d2fae4dcbba"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hsb/firefox-49.0.tar.bz2"; locale = "hsb"; arch = "linux-i686"; sha512 = "d18f984de95199e074d7d115f2a685f3d99d890cefd216e6d6fced2f5a8f71f0275729c5d35107f0810538373bf46e1ed04f541e1933cf0d4feac89e9bf44931"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hsb/firefox-49.0.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; sha512 = "91e39217abcc24eb11fba06d95da8ff61355efc4c60be213197eca86359d6ce386ec890534ded720ec40814a7c347c6e2ff100fcf8a75697c40a06da496b078c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hu/firefox-49.0.tar.bz2"; locale = "hu"; arch = "linux-i686"; sha512 = "e6f1ee393c56d6f156b2f6c263460df19e7e52d6aeeee668702911fe0f016cabd8900db8a774b89ec74d43c5963c39cd8db75862a350565a13d9382964c9adc9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hu/firefox-49.0.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; sha512 = "8f404fa390e70b54903267def0a458046ec6bf68bf8515352a61849a7ff72ac26c849c6bf69b992d3212268316ac8b954535aef9979b8edd4493481be6c8f9ae"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/hy-AM/firefox-49.0.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; sha512 = "e2adbeb30ac0b272e4e62dcf1876579dd3bfe0ab1d5f5385edc07c6a04d62d38cecbc584bbab12c1ba27377f7680d5a2a740e621c5a89d6fc616bca13e988661"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/hy-AM/firefox-49.0.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; sha512 = "7ce1778d1facd77af248f20f7b63ba5d20c13407dfa3ac25307777691d7f4f4844e421c1a6011867b8c7e18f2172f1905f81cf833268610042823525d1179932"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/id/firefox-49.0.tar.bz2"; locale = "id"; arch = "linux-i686"; sha512 = "6d98e771905f729de5890bbd75dc1131bfccc901638aaf362ce139c9341c417c8292e2f362adbd46ab8c8675c8f59f9a523a41b760a2f3dbadc96debeadc3a2a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/id/firefox-49.0.tar.bz2"; locale = "id"; arch = "linux-x86_64"; sha512 = "7feab0aadd4aaaa30d4a9a528ad1ce4737ee14c32df5d7c672708ec02b5f9567bf9f985d64c3064b86917de9c25fe10ce3b361c81bc5be1fba54439f287143c9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/is/firefox-49.0.tar.bz2"; locale = "is"; arch = "linux-i686"; sha512 = "6fa9e14841a790ecb83969ab803fc90c73da1fc974af17cb0814abfc22d3d334538feb2b121b0bc976ea247f12242c7a9e0eca1a544492ae6c51376dd4f41677"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/is/firefox-49.0.tar.bz2"; locale = "is"; arch = "linux-x86_64"; sha512 = "18924e3085893b1182e60e490dee1332278bcd030ddf4ed0a05f1dc2cdd9ccafa5885b7eba6361d647e562cddfa3675d16708338073e88ad010b2cee4f8fa0c2"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/it/firefox-49.0.tar.bz2"; locale = "it"; arch = "linux-i686"; sha512 = "c67b8d3836c388c8433a779e55c23790ca906ca812b28c7d0d97261627e5c57534b8d0311ba50ae1876055745a8ad20911b482b53ab0eedf0d9767578082cbc6"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/it/firefox-49.0.tar.bz2"; locale = "it"; arch = "linux-x86_64"; sha512 = "705518c053e6af3a3b23e66b019c3ee1e51d73a75755663ccc671335f1ac3fb5b8c941a4f09dbe21abb279474d0cfb822beb115b51cd3edaf32f72154c661f21"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ja/firefox-49.0.tar.bz2"; locale = "ja"; arch = "linux-i686"; sha512 = "585800058eb00b56bb6509886cd4f51ab9d9fb80de5c4b63f60a1b9bf5779a1b9f5310a99d746fcd8931c7eb2bb078ddd444518b624a73cbdfb535bbe38f759b"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ja/firefox-49.0.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; sha512 = "4dd92b0d0261649ffe51d20898cd633fd35efba7c8a55585a8fad9fb5b49ee6be53dea58deb0fc84ed13355406f0a663a78ad2a41cd6f1cd52b63e1c1ab8724a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/kk/firefox-49.0.tar.bz2"; locale = "kk"; arch = "linux-i686"; sha512 = "a199ed24401d183745166d82929305c742a2a1cbed24ef09c91259515564bd5e5b86e30125285766f820755e65bd8e62eddb3079092243b88a4a91e5d5ca47b4"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/kk/firefox-49.0.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; sha512 = "413078071b8ca1c9ff8c971e1fc8ae7b23e93414c8eee70820fb8662a4197f4f7ac7f8db11e7aacb2a914c3846be43a2aff9ed13f18c065bf7fd467807c51a50"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/km/firefox-49.0.tar.bz2"; locale = "km"; arch = "linux-i686"; sha512 = "c0ab421db1c33783e201762a3790d807e54f789ed16c2bdd372223cf10207995d91e45f600ee9df778fa4548fa0e09ae1f432b11cf4fbb1e50b4c46c5a805bfc"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/km/firefox-49.0.tar.bz2"; locale = "km"; arch = "linux-x86_64"; sha512 = "5e50bcf2b9a70efe7ddfad9d05d4eef954c7da7d8ebad7ad6ff15b7464b46f636db49612f5d42294fff4e8225e8919934253f6acf4ffe4ad5967c75a6ba33be9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/kn/firefox-49.0.tar.bz2"; locale = "kn"; arch = "linux-i686"; sha512 = "123bffa9583f8e5db3e94668baafb581aa5af023b3ca646e052360761b46be086b128a5a3c7b518f38bb9c57dc49df82ad9e88caf289655609708735421a4490"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/kn/firefox-49.0.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; sha512 = "06b7bc1716f64c84f580e62051e437129624c02d6c5def9a4fa8b3489f6302e263e977743731ccf123a1eecc70d1cb4ab6a83cf0ec80fdaf82d4d11421ec3b31"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ko/firefox-49.0.tar.bz2"; locale = "ko"; arch = "linux-i686"; sha512 = "bf8ceaaa462c253fbdfff2d57feba1fb649d74e7ade09f9e6120597ecd7e7bbabcae6d32da09764ed660d173f8f28eef993366876928145947a1befaeb564597"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ko/firefox-49.0.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; sha512 = "e3dd9441bc01aca97ab96763ce086c1c52b33781fdb90083431c15a5a057a5e51092cd79adbc10793d6159dec30d72704577e1dfebc68bb02f7182645a38528d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lij/firefox-49.0.tar.bz2"; locale = "lij"; arch = "linux-i686"; sha512 = "e47d12ed8959ab76c670e98fdee111e9a1897ca58a82730239ce1544c24d0149a40066666da74fd941b6653d19d65f75b7064391fd45a47d4926d6f4d3a6a771"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lij/firefox-49.0.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; sha512 = "81521acf4cc49a3e4dc7c4af58b7f048a949d170b95789001bf5cc02cade557042cce3b5243927e28c4c2bfebccaf1e4667bf0ce42871a51475baec2dc116fd4"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lt/firefox-49.0.tar.bz2"; locale = "lt"; arch = "linux-i686"; sha512 = "2c9b2df1e811ecb5488ddc012c7c408b067901ad6329bfd6fa0838e7cccdb63eaf3c7bbf9ea5be5ff2f03aae8acf6b62612a90126209bbfece59a00b41a73598"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lt/firefox-49.0.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; sha512 = "587ae06c7639043ea347ef68bc1b143baf0d507d1e98ab0b5bcf5d3f6ae364c3d77d2855550ebf6f63f972fecebc9d7bd05eebe4227bde512f9b2a4c72f4d0a4"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/lv/firefox-49.0.tar.bz2"; locale = "lv"; arch = "linux-i686"; sha512 = "833a69b97e5f74ef1829ae80a91dd6219b20918b5a8e0faa272bb1defdda1704a4e17e21892f15d606d74d644a4506196b83b33000f8ef8697aeef85c4f5315e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/lv/firefox-49.0.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; sha512 = "059d16aa412e31eb6453002b46a26384b125aaa1d212a22747ad465f6ccdc2cabfaef88a63479a04878f6c662ef45da0caed62b8e0c5a4cb8bf5037a820b34c5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mai/firefox-49.0.tar.bz2"; locale = "mai"; arch = "linux-i686"; sha512 = "df520edb25360d686cef1d8eb3c3566581a2f71e2b6a6119e2d6eed7c2004d3193d1e2784d3ae575ee5f750956f8eb83558d5793786abcf075ca991e78a610ea"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mai/firefox-49.0.tar.bz2"; locale = "mai"; arch = "linux-x86_64"; sha512 = "6562f84949698c920b220982a32e04a6686a4a3690e97db835e0a648952035217f49e0f7d4c8441cf31130e80a952bdda986b7d943f4b5cdbead9ab6c316a0e6"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mk/firefox-49.0.tar.bz2"; locale = "mk"; arch = "linux-i686"; sha512 = "3db4b5257edbf0f03585f7fe7ac0d2ddf269d2fc2c4ccb6cb17f62b61e4c152c02b54a5ae32cfdeb1f6eafba82a3db44ec1c8f82de5187226ded7ee2f6a0e442"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mk/firefox-49.0.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; sha512 = "4a09dd37f58904b1b5790dc23d7a81caa34e69bb663b7946ae9a7bba9d139696ce14b662ecdadc453a0021f33df90503110685b59f4bde528b53d8fa4ce68fd8"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ml/firefox-49.0.tar.bz2"; locale = "ml"; arch = "linux-i686"; sha512 = "39d7b2342c9a2dfe07a643e0f15b6f0368c331d1576f075d6e864122f91bba8ad8af43619fdfd1cc880337267a7bf0e885879e60cee22dc3d4e4cd8c23713bd1"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ml/firefox-49.0.tar.bz2"; locale = "ml"; arch = "linux-x86_64"; sha512 = "2a0d77e1e542b6a6a32c4cb122400b1b1023111cf234bbaf8e0d7c23e572283e163142b7de7c35108a2098e88352a31b118ed6914d07a832b8d155297cc317b0"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/mr/firefox-49.0.tar.bz2"; locale = "mr"; arch = "linux-i686"; sha512 = "ccdbdeefd26a0a6e005028976d0549a22fde6ce5c054806c15aba6447595785789eec0365d3a48712f2077e834b68e46ae6ea085ca776a9cb6b5bf326929b0d5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/mr/firefox-49.0.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; sha512 = "a5053f31dc8ea124756933ecc79870887d89fde3c6bfe0aee4d930a778edac865d3a929d2afbb714629ec77717aa1bba19d7647ddd3784951dd4510d76dc95d4"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ms/firefox-49.0.tar.bz2"; locale = "ms"; arch = "linux-i686"; sha512 = "83b325c1c175dd01b3a04f35533e6adb0b82a5629a1be4e560a2eb65bc705c3d4e762db9fe8faa59aeb02cd55eeb95f1f587fca555ea1c5f5e353a6fb8edd550"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ms/firefox-49.0.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; sha512 = "674ac356543ffe310e0adae210ca8f01f287130eab80a610428ba854bce781c3fb281f6a2d2ce540acf66a650de3b9f960f1a7a0606c93576f0f02f5a1179865"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nb-NO/firefox-49.0.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; sha512 = "8efba2a1704c6c37fd91776d40f702aa9fc1951dae23aa164d8dc50cc14e22e047ac88f93a5090f15782fab37be1c0d1448ccf641e1426313bfd013488585da7"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nb-NO/firefox-49.0.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; sha512 = "799179660bc918c5fb0c9781581ed0dac0ec7932dbf897fbb632a1fc8e7b310161b6d0d13d34d6259380e51be726e4afc1875abf3ae4a2a3bbc3454711f503cb"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nl/firefox-49.0.tar.bz2"; locale = "nl"; arch = "linux-i686"; sha512 = "d5ae51a144176a1748c3d7060d6e81e71975faf8ce02daefc53f087524e6afbc101c16e32fca2568f38d438cb748cd7194d64a6e89c6ceaab00d3adfff154ea8"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nl/firefox-49.0.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; sha512 = "ee514f354a05630ac3135afdc668d59780626ab58e01f88d4d60effad71b8772f5bbced8fd2616e53236d75a32bb9ab7c187c399942f1d3c58fe7cdc7449f715"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/nn-NO/firefox-49.0.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; sha512 = "6f4c1959d9fd6d793908ca790b74c96f609167211aeb814ce630c0a57842c5d1a22e67697e71871cc9e04a2bb1b4c72603ede8cbcbade3702a07e24831b9bfbd"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/nn-NO/firefox-49.0.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; sha512 = "5159f3b060724bbdbc7f7575955d1143eda0d7e38eb4ed7efa29e82908311a351a4597f3ac374023574ec8021a1ea26a439379357eee5710aab6ff9b6e59cf39"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/or/firefox-49.0.tar.bz2"; locale = "or"; arch = "linux-i686"; sha512 = "a2057b3d615c61075a1667ac3b55fde78f8e037f6b67496faf7590067b0b4192065af8818b189f0eedf4c0a22e9cc6a0e35095cfc2f832168dadd174fa0b0cfa"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/or/firefox-49.0.tar.bz2"; locale = "or"; arch = "linux-x86_64"; sha512 = "e109c47b21d7dd4f18fb728f2f20322cfaa26574e43be5bc8b100fbc6272a8117ea00575bda525fe2876415e4127393882c41a252786f9857346b732255981c0"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pa-IN/firefox-49.0.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; sha512 = "54dfeaf8cf5ae829f802e985ec4b4ccf12bdc967df9ce5e35bd19b4cbb932fffb425127519703d576ba58ede507f97d609caf2168be1159acec9aadaf393f24f"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pa-IN/firefox-49.0.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; sha512 = "4abd39707f2fc415b12a9041e1763978d90ddfbb167fd7ac901002a155e5b82f7c9299e446aa4de222e35f894b29a51b25b0ce0803ec54480788a52b9740679d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pl/firefox-49.0.tar.bz2"; locale = "pl"; arch = "linux-i686"; sha512 = "df54680a948595d2a889c5d92e321f64161081a0618bf9227593ba22db57b9dd639e245637d5a2473da7dec46a81487720ce8651963223ac368f1cd52504fe06"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pl/firefox-49.0.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; sha512 = "2230bc383cdad5d6ecdbab7f2890d511420d89bd4de3b52f987c1d62c81153b8ce47ecf25f74c210572c50f8ac90f289f235d95df14c69bbb16dc5a817c146b8"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pt-BR/firefox-49.0.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; sha512 = "c5155061326efd963a43d44add6644c42ef1b84fb07e0ffaa8e9f2d8b5f213d614ccea04d8251435aac6c88523e759449e7b91c49317fd19380c33d39572ab4c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pt-BR/firefox-49.0.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; sha512 = "b2757aaba8b0078b23a9e8c12c26ee2699a93e19029deeef37809086e57d23ac4c58338268d814774a6c8aa2c727efbb12205256795c5e19ca9ebe5b1cfb59cc"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/pt-PT/firefox-49.0.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; sha512 = "e3c6728add0ed5a320da8abfec1dd2bf63952e38a01f71601bc882789be771423fdf5625c35c9b4c0d278c0c3ea646e0409b09596f74f16a6397568524815b8d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/pt-PT/firefox-49.0.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; sha512 = "8763f5917f2945536524af90916301e94ec60ec7cf1e5d3d128e9c72f01f25924d34f65e48708cd2a9aafe9f3a4d4beac26d83e8803b7e2bb3c6eaf630dfeda5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/rm/firefox-49.0.tar.bz2"; locale = "rm"; arch = "linux-i686"; sha512 = "ed1285152ef25a0471846f1aef7785a7958246d078cf78617e543de851d0b1722964b0428a3216d7d4feb40a8c2b76faf9802ed7c278a95592f252897415f4f7"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/rm/firefox-49.0.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; sha512 = "f7d042a502a7c7cbe4af94e3649170cbcc52d3d925ff6158245aa60935fd09ebd743a29edee2b78908232e0e98cc1a1c40a50c6e19b6ca037c0b2f6249f39e60"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ro/firefox-49.0.tar.bz2"; locale = "ro"; arch = "linux-i686"; sha512 = "2dc4658d7b9aad11ee14a036db8e6171c5a912f93ed24e94b951c188f418eb7180e4621ad0d540eb9878ae8664f202287e09aa3636eaa1afc2cbdcf7606e6232"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ro/firefox-49.0.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; sha512 = "b5643df75ab40c4830afdc88d010e50c0c2fb7b9560caf985c80d84a0744b47fcc08f5d3dfa3a45bfc55f4ec22adf49e9cfe9513fa3d645887b813a0ae8bea4e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ru/firefox-49.0.tar.bz2"; locale = "ru"; arch = "linux-i686"; sha512 = "b74c8e4e82e113b07f901d66108e505010087f8a44664b172af8625bd622dedd178a94a9391d29af22347f309cc8d455cfc4392d1bdf7fefb2dfd7bc35ccc3fc"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ru/firefox-49.0.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; sha512 = "eae3cf9a4588f99ff93d6ab08943872bdc4b215f1442aa1dd5d2ba9f1866264b767753a84de033e0979f24518876b536f8476840523920a7a1e1a94779080e29"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/si/firefox-49.0.tar.bz2"; locale = "si"; arch = "linux-i686"; sha512 = "69b3282ddd9b4cc57775cf1b13bfae3dcb7efe6c04f5279bb2d055ddeac0a008b05bbc82e12768521c075b83a8a7c37b8ec8d9ae01b022cea309b7155642495c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/si/firefox-49.0.tar.bz2"; locale = "si"; arch = "linux-x86_64"; sha512 = "fee048d1f5a743f5c9ec01241b87ed3c1c5c725423348b29bc76eb2ff9b23ab39b9fc5374e82b43412efe6e3b5a10cbe8b559b1c2b3289ae763901032c877496"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sk/firefox-49.0.tar.bz2"; locale = "sk"; arch = "linux-i686"; sha512 = "ebad91e8633219cd7a5fe14712c83b8ad5e8931d201f42c67d61d955293de1adc836eff993450acd6df02211b7219cd2f4e274ecc515d6e422f77cbff4245118"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sk/firefox-49.0.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; sha512 = "b02a2ff848f6da677ae77d873e3d2ad77b6c650efbf44b967a1e2b704bb813875ffb39be9f7fbc1a39ac31060a6214266c4649c6e665b24a53c23c3e6b126258"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sl/firefox-49.0.tar.bz2"; locale = "sl"; arch = "linux-i686"; sha512 = "de23536009e3d11816304f3bfc49d7ba77c4427907ae91a337e41ddb301cd188ff9802bbb42d6505e0b559d7107a2f150675e7c5ec53e9f3c689daee6a100c3c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sl/firefox-49.0.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; sha512 = "ee47a01e1673eca4101c69f67e639ad6dba6272502affa1c5af3081cf4bc8ee9cd3156006c14f8eccb687139913c61ef582aa567e6d35ff8630a075072e9b6fb"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/son/firefox-49.0.tar.bz2"; locale = "son"; arch = "linux-i686"; sha512 = "de572494fd7ec09ab71d6b65e51fa2bf16934ed26fc7a21e74d55f3b6309075d830b6c41bd37887ebcdf9eed46a0e2093a853d8b4733bf112b4d06582afc239f"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/son/firefox-49.0.tar.bz2"; locale = "son"; arch = "linux-x86_64"; sha512 = "bae6e78ca201f0ba6f3c882cee89fcb5c5a46149d54d114196d689bb5b26e785fe3a3ff0a659a10d140e5530de847ea4d775cfc919d8e36be1ff21f0452f585f"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sq/firefox-49.0.tar.bz2"; locale = "sq"; arch = "linux-i686"; sha512 = "c1a3828372703a06ff71752de271a5e6e999be5be2cc7bbf3ae7b1c23737035a3cb0685113806d98f96e62873818ee2d8a113822966499c1f54578e0570105a9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sq/firefox-49.0.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; sha512 = "491fea89f4d662061d1ff4b7a91756aceaa1bf336733d68f2ec775eff0505a98397ac7eabc9e411d38e3b96298a7c7f948b389b4574a277e490d364416dce010"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sr/firefox-49.0.tar.bz2"; locale = "sr"; arch = "linux-i686"; sha512 = "e7ef9c19f485a50b46a2944283e3d2e46c82c68e350786e3bf31720367a682464e096ec7b3045f740c8af981be76be94d1c8965a1f10cf5271be4328edfb5a9a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sr/firefox-49.0.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; sha512 = "7fbf31358db27264452544742c5589e8cc57d0b2998748545d63ad8f88d6e6d43f358cc72fbde6004edf9370a32b7d5e53d7b6aa831c86271742ad007e9e3304"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/sv-SE/firefox-49.0.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; sha512 = "cde0b52a9b03c2673a13cc330c8d47308d84e43d7e70183cacd53252572b25c97d932fabed06dddfc395a8a192717a28f5b8fa175f857d90209971462ab45a09"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/sv-SE/firefox-49.0.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; sha512 = "c2a4297b7f096b187fbfd59166e10182090eed5a9063d90ddad591fd0b235ae145f22829a7d36176f8c18d760c177882131749eb29d76ddeda062f17da07f9af"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/ta/firefox-49.0.tar.bz2"; locale = "ta"; arch = "linux-i686"; sha512 = "d8e7dc079889db15438a8e59ee42b78ff818014cc03136efa9a69a238f36a3c0db3fec073ba156280e427c8d67ac54f606eac390854337edcf6ecc751cbb8695"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/ta/firefox-49.0.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; sha512 = "881280f9799000fbfe664c7b67ced2bea2d9c99400ae7aa5a5e8274472306f5d6ca030d7eb7ce060c98c308d887af1bc00558c48cc1915ada7b43940d955c224"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/te/firefox-49.0.tar.bz2"; locale = "te"; arch = "linux-i686"; sha512 = "f628a62da53b356b0543b59ecb8ac3eab72956de499761fbec7e93c1c415929f0c0571c274c16a5412c69c709ef1c82b6f35bbee2d48286c092ad6b7fccf4e8c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/te/firefox-49.0.tar.bz2"; locale = "te"; arch = "linux-x86_64"; sha512 = "a3f2bc14ac0e3961ed75ad5c221374a91373a637cea05e023c87c2b06bc2beb63ab7470c1bf6da95304b5afe615ef05c0843cc508ff491b549e73a9e65d17d59"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/th/firefox-49.0.tar.bz2"; locale = "th"; arch = "linux-i686"; sha512 = "cf5196484a6408a3ba27f440909492c542305fb47dc463e5e54801f264efb274916484bb7b5850c34eb6fd3937a484fe3800d807e40c0d1a3bc902040fabf1b1"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/th/firefox-49.0.tar.bz2"; locale = "th"; arch = "linux-x86_64"; sha512 = "8f70f70faaeeba6cff2326dba2b43f4e80924e7f11666ede7474e896dbba42cfba650b0e9328d2b432474b06fc0ec738edaacf2b17e8acf549d5d7b590f75f3c"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/tr/firefox-49.0.tar.bz2"; locale = "tr"; arch = "linux-i686"; sha512 = "1af9ff1d8376ec7eba385ac88d17bea0cdf02885b88d501f77b40d5402f9d918ed42cb8e4ce2e33610eb3f57ca5a26850acf6cfe83954bec205ee33a6d74fc31"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/tr/firefox-49.0.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; sha512 = "9a8ead1fdd4cf3cd49c8e3d626cc721ed79d949b91a9646157360c4d74381ccc6e32118adbae46ee060d8e0b7e5eaccdfad9af42beea216c1bdcb081a14e91a6"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/uk/firefox-49.0.tar.bz2"; locale = "uk"; arch = "linux-i686"; sha512 = "c105b652cafd9baf5b8d3f8ebcd64ad1ace6da89d9746ee65fbee00891b2a4ad821c9a181cf1d6ddeb3b75dca08cace3b7e74f1e357aac5a6f08960499efdd4d"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/uk/firefox-49.0.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; sha512 = "01eeb3f62f2ee7377811aa38ec69426fbbb0fccac23e91d0202a7c35ede59eeab1d534fce6dfa7c51fb083626fbc9b3cfba48793c7d0fe625e1163d14fccf36a"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/uz/firefox-49.0.tar.bz2"; locale = "uz"; arch = "linux-i686"; sha512 = "38259f998ff94528b1f466cfdc332f0fcd10b3ec4da3e0f88a5b3966eb7fc703763f2b9e4fabfc71ec286e9349d47c8c929b036f539dfef833411c6bae32d6e3"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/uz/firefox-49.0.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; sha512 = "dfdaa4540b742911226034fa75127c5de88ee3e97e10e7c29514df1331e5d8e3d1b8798f7050083c18a71838c6210343d6e63343ce6964ace885ac8172438314"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/vi/firefox-49.0.tar.bz2"; locale = "vi"; arch = "linux-i686"; sha512 = "634f54f7d54f1b47a401b319eb8053ab08e43711650117a0155757280b6824eafa9d9f9ab6887cddce1d9c8190f949194d93cd9741d76bdf3df5d82a27b767d9"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/vi/firefox-49.0.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; sha512 = "b9cfd74289669d4d2ee49e216ae0eed15aa2377d54c632ec0d15f9799867a0bf24ad2efe17047fe63e3fdf2d9e486c33c1d96926872106053a36968e5f546714"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/xh/firefox-49.0.tar.bz2"; locale = "xh"; arch = "linux-i686"; sha512 = "26c6bf5c9d2d1007d93d95351e3f9bd7ea246cee6b40ea77f7e26087d8612f709a01829a7e5bcfff8bdee4f7874c36966ae229b86a31f74c724deda875221de5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/xh/firefox-49.0.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; sha512 = "153e6a2c1644e00bdc950f092f99c515aa079dbafdbd618287639f00481af22a4acaca7e8d4aeb0e78e004eaf17a11911425ce8296b67298b4b6bfafd2d4dc23"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/zh-CN/firefox-49.0.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; sha512 = "a24bc352a98315fab4a64cb1078b35b1531b559b3f044cb349a2d4f52e4ee54b27510e8b0c9e3aa2d891dcb17036e1ab057bf3b6395cd73147314e413894d90e"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/zh-CN/firefox-49.0.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; sha512 = "a9b26841eceda1c9cea02f3b0b4707d8c79ad78c26fecbd5d6a69fdcdbbf087d487252934b2e6f02f89c29644f241beba1a555b67d22a396e60db8c5e21b9512"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-i686/zh-TW/firefox-49.0.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; sha512 = "a81cfb6d197d99476dd9d4386df40a7b507d9fdbf6c8966aa20bed2537c7689c3ae0e09f5053f66b9e3d5f4a462157d4d09de371c31cecc5c64a8c6e1501ffd5"; }
+    { url = "http://download-installer.cdn.mozilla.net/pub/firefox/releases/49.0/linux-x86_64/zh-TW/firefox-49.0.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; sha512 = "2c98d22cfe74847143601acc36adceba62d93ca90adc8c2b8044bbeb101ef39f7ddc19210cd0905542cc8205cd2dfaf9709fdd3d6596113b9ca1eca522ebd7eb"; }
   ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index 5df2387ec7f1..d12c3722e403 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -141,14 +141,14 @@ in {
 
   firefox-unwrapped = common {
     pname = "firefox";
-    version = "48.0.2";
-    sha512 = "d5addb0cd01e2aeb0fd9387800e82e385f3986716887840322d261d772a442f6fdb1d910cd53f2373f0fb82ed0b2a45356ac83f3ef230e14a2b9db8999ad8a4e";
+    version = "49.0";
+    sha512 = "9431f86dec5587131699ae57ae428be168e4d6c7d1d48df643c10540e8e18bc5eadfcd08bb204950be611c87d35d8a40aa8ece454b7dfa3992239639c2d688a9";
   };
 
   firefox-esr-unwrapped = common {
     pname = "firefox-esr";
-    version = "45.3.0esr";
-    sha512 = "ee618aec579625122c3e511a7ac83ac4db9718f5695b6fe6250717602178bae9bb7e5ebe8764f4d33ecf44d3db13abfed0d24c1ec71e64a1087fb6d5a579b0c0";
+    version = "45.4.0esr";
+    sha512 = "2955e02f829a10186a8b22320fb97d4b0fc2b45721fcffa6295653fd760d516ae72b5656547685ba1e0699b381e28044996d9ee12a8738842b4e6b8acd296715";
   };
 
 }
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 29da56b4d73c..8509140552ea 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -10,17 +10,18 @@
 }:
 
 let
-  version = "1.3";
-  build = "551.30-1";
+  version = "1.4";
+  build = "589.29-1";
   fullVersion = "stable_${version}.${build}";
 
   info = if stdenv.is64bit then {
       arch = "amd64";
-      sha256 = "89d0630c9df56cfb12a87f23430179f6d14a8c57fb029d1c8d28ab06c98b7640";
+      sha256 = "14sb58qrqnqcpkzacwnwfln558p018zargppxq21p5ic8s92v1g6";
     } else {
       arch = "i386";
-      sha256 = "0a7e07833f5359e38516222767da63edeca92177cbb6d4ef4946a6ef7c7b2946";
+      sha256 = "0c4l9ji5xlxwzcjsrvxjkx53j76y777fj6hh7plfkkanlrfkryac";
     };
+
 in stdenv.mkDerivation rec {
   product    = "vivaldi";
   name       = "${product}-${version}";
@@ -65,6 +66,17 @@ in stdenv.mkDerivation rec {
     cp -r opt "$out"
     mkdir "$out/bin"
     ln -s "$out/opt/vivaldi/vivaldi" "$out/bin/vivaldi"
+    mkdir -p "$out/share"
+    cp -r usr/share/{applications,xfce4} "$out"/share
+    substituteInPlace "$out"/share/applications/*.desktop \
+      --replace /usr/bin/vivaldi-stable "$out"/bin/vivaldi
+    local d
+    for d in 16 22 24 32 48 64 128 256; do
+      mkdir -p "$out"/share/icons/hicolor/''${d}x''${d}/apps
+      ln -s \
+        "$out"/opt/vivaldi/product_logo_''${d}.png \
+        "$out"/share/icons/hicolor/''${d}x''${d}/apps/vivaldi.png
+    done
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 72b38a00e0e2..70b810c35373 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "terraform-${version}";
-  version = "0.7.2";
+  version = "0.7.4";
   rev = "v${version}";
 
   goPackagePath = "github.com/hashicorp/terraform";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "hashicorp";
     repo = "terraform";
-    sha256 = "002jg4iwg4g4hkg4hm3szlkyagqzipln3l44b8azh1a7vh1m8cp2";
+    sha256 = "1mj9kk9awhfv717xf9d8nc35xva8wqhbgls7cbgycg550cc2hf85";
   };
 
   postInstall = ''
@@ -27,5 +27,6 @@ buildGoPackage rec {
     description = "Tool for building, changing, and versioning infrastructure";
     homepage = "https://www.terraform.io/";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ zimbatm ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
index 494496e48075..13b9b6e3401a 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-hangouts/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "purple-hangouts-hg-${version}";
-  version = "2016-07-17";
+  version = "2016-08-31";
 
   src = fetchhg {
     url = "https://bitbucket.org/EionRobb/purple-hangouts/";
-    rev = "2c60a5e";
-    sha256 = "1m8132ywg9982q3yiqgy1hzm61wkgi590425pp8yk1q03yipd6zb";
+    rev = "1c0286e48e92";
+    sha256 = "0iv1isa8brm89nvmwrvxjm5ymx4svqrz3gf5yciqzf6kpc82gnxr";
   };
 
   buildInputs = [ pidgin glib json_glib protobuf protobufc ];
diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix
index a467cead17c4..5fd453685365 100644
--- a/pkgs/applications/networking/irc/irssi/default.nix
+++ b/pkgs/applications/networking/irc/irssi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
 
-  version = "0.8.19";
+  version = "0.8.20";
   name = "irssi-${version}";
 
   src = fetchurl {
     urls = [ "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz" ];
-    sha256 = "0ny8dry1b8siyc5glaxcwzng0d2mxnwxk74v64f8xplqhrvlnkzy";
+    sha256 = "0riz2wsdcs5hx5rwynm99fi01973lfrss21y8qy30dw2m9v0zqpm";
   };
 
   buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
diff --git a/pkgs/applications/networking/p2p/retroshare/0.6.nix b/pkgs/applications/networking/p2p/retroshare/0.6.nix
index 39c1fd02b2b6..4b881445323a 100644
--- a/pkgs/applications/networking/p2p/retroshare/0.6.nix
+++ b/pkgs/applications/networking/p2p/retroshare/0.6.nix
@@ -36,7 +36,8 @@ stdenv.mkDerivation {
     qmakeFlags="$qmakeFlags DESTDIR=$out"
   '';
 
-  enableParallelBuilding = true;
+  # gui/settings/PluginsPage.h:25:28: fatal error: ui_PluginsPage.h: No such file or directory
+  enableParallelBuilding = false;
 
   postInstall = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index d929bc99b101..c0e1e7b290d2 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -28,25 +28,17 @@ let
   lib = stdenv.lib;
   langsSpaces = lib.concatStringsSep " " langs;
 
-  fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
-    inherit name md5;
-    url = if brief then
-            "http://dev-www.libreoffice.org/src/${subDir}${name}"
-          else
-            "http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
-  };
-
   fetchSrc = {name, sha256}: fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
     inherit sha256;
   };
 
   srcs = {
-    third_party = [ (fetchurl rec {
+    third_party = [ (let md5 = "185d60944ea767075d27247c3162b3bc"; in fetchurl rec {
         url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
-        md5 = "185d60944ea767075d27247c3162b3bc";
+        sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
         name = "unowinreg.dll";
-      }) ] ++ (map fetchThirdParty (import ./libreoffice-srcs.nix));
+      }) ] ++ (map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;})) (import ./libreoffice-srcs.nix));
 
     translations = fetchSrc {
       name = "translations";
@@ -84,7 +76,7 @@ in stdenv.mkDerivation rec {
 
   postUnpack = ''
     mkdir -v $sourceRoot/src
-  '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.md5 or f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
   + ''
     ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
     ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
diff --git a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
index 9af2ef2fd88a..3d56c74e3ab8 100755
--- a/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
+++ b/pkgs/applications/office/libreoffice/generate-libreoffice-srcs.py
@@ -8,28 +8,66 @@ of the input file, and writes the result to stdout.
 
 todo - Ideally we would move as much as possible into derivation dependencies.
 """
-import collections, itertools, json, re, sys, os
+import collections, itertools, json, re, subprocess, sys, os
 
 def main():
 
+    packages = list(get_packages())
+
+    for x in packages:
+        print(x, file=sys.stderr)
+
     print('[')
 
-    for x in get_packages():
+    for x in packages:
+
+        md5 = x['md5']
+        tarball = x['tarball']
 
-        print('{')
+        url = construct_url(x)
+        print('url: {}'.format(url), file=sys.stderr)
 
-        print('  name = "{}";'.format(x['tarball']))
-        print('  md5 = "{}";'.format(x['md5']))
-        print('  brief = {};'.format('true' if x['brief'] else 'false'))
+        path = download(url, tarball, md5)
+        print('path: {}'.format(path), file=sys.stderr)
 
-        if 'subdir' in x:
-            print('  subDir = "{}";'.format(x['subdir']))
+        sha256 = get_sha256(path)
+        print('sha256: {}'.format(sha256), file=sys.stderr)
 
-        print('}')
+        print('  {')
+        print('    name = "{}";'.format(tarball))
+        print('    url = "{}";'.format(url))
+        print('    sha256 = "{}";'.format(sha256))
+        print('    md5 = "{}";'.format(md5))
+        print('    md5name = "{}-{}";'.format(md5,tarball))
+        print('  }')
 
     print(']')
 
 
+def construct_url(x):
+    if x['brief']:
+        return 'http://dev-www.libreoffice.org/src/{}{}'.format(
+            x.get('subdir', ''), x['tarball'])
+    else:
+        return 'http://dev-www.libreoffice.org/src/{}{}-{}'.format(
+            x.get('subdir', ''), x['md5'], x['tarball'])
+
+
+def download(url, name, md5):
+    cmd = ['nix-prefetch-url', url, md5, '--print-path',
+           '--type', 'md5', '--name', name]
+    proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
+                          universal_newlines=True)
+    return proc.stdout.split('\n')[1].strip()
+
+
+def get_sha256(path):
+    cmd = ['sha256sum', path]
+    proc = subprocess.run(cmd, stdout=subprocess.PIPE, check=True,
+                          universal_newlines=True)
+    return proc.stdout.split(' ')[0].strip()
+
+
 def get_packages():
     """
     All of the package data: What's parsed from download.lst,
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
index 0d626728c9a4..d2010d81a8a7 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs-still.nix
@@ -1,528 +1,737 @@
 [
-{
-  name = "libabw-0.1.1.tar.bz2";
-  md5 = "7a3815b506d064313ba309617b6f5a0b";
-  brief = true;
-}
-{
-  name = "commons-logging-1.2-src.tar.gz";
-  md5 = "ce977548f1cbf46918e93cd38ac35163";
-  brief = true;
-}
-{
-  name = "apr-1.4.8.tar.gz";
-  md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
-  brief = true;
-}
-{
-  name = "apr-util-1.5.3.tar.gz";
-  md5 = "71a11d037240b292f824ba1eb537b4e3";
-  brief = true;
-}
-{
-  name = "boost_1_59_0.tar.bz2";
-  md5 = "6aa9a5c6a4ca1016edd0ed1178e3cb87";
-  brief = true;
-}
-{
-  name = "bsh-2.0b5-src.zip";
-  md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
-  brief = false;
-}
-{
-  name = "bzip2-1.0.6.tar.gz";
-  md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
-  brief = false;
-}
-{
-  name = "cairo-1.10.2.tar.gz";
-  md5 = "f101a9e88b783337b20b2e26dfd26d5f";
-  brief = false;
-}
-{
-  name = "libcdr-0.1.2.tar.bz2";
-  md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
-  brief = true;
-}
-{
-  name = "clucene-core-2.3.3.4.tar.gz";
-  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
-  brief = false;
-}
-{
-  name = "libcmis-0.5.0.tar.gz";
-  md5 = "5821b806a98e6c38370970e682ce76e8";
-  brief = false;
-}
-{
-  name = "CoinMP-1.7.6.tgz";
-  md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
-  brief = true;
-}
-{
-  name = "collada2gltf-master-cb1d97788a.tar.bz2";
-  md5 = "4b87018f7fff1d054939d19920b751a0";
-  brief = false;
-}
-{
-  name = "cppunit-1.13.2.tar.gz";
-  md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
-  brief = true;
-}
-{
-  name = "converttexttonumber-1-5-0.oxt";
-  md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
-  brief = false;
-}
-{
-  name = "curl-7.43.0.tar.bz2";
-  md5 = "11bddbb452a8b766b932f859aaeeed39";
-  brief = true;
-}
-{
-  name = "libe-book-0.1.2.tar.bz2";
-  md5 = "6b48eda57914e6343efebc9381027b78";
-  brief = true;
-}
-{
-  name = "epm-3.7.tar.gz";
-  md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
-  brief = false;
-}
-{
-  name = "libetonyek-0.1.6.tar.bz2";
-  md5 = "77ff46936dcc83670557274e7dd2aa33";
-  brief = true;
-}
-{
-  name = "expat-2.1.1.tar.bz2";
-  md5 = "7380a64a8e3a9d66a9887b01d0d7ea81";
-  brief = true;
-}
-{
-  name = "Firebird-2.5.4.26856-0.tar.bz2";
-  md5 = "7a17ec9889424b98baa29e001a054434";
-  brief = true;
-}
-{
-  name = "fontconfig-2.8.0.tar.gz";
-  md5 = "77e15a92006ddc2adbb06f840d591c0e";
-  brief = false;
-}
-{
-  name = "crosextrafonts-20130214.tar.gz";
-  md5 = "368f114c078f94214a308a74c7e991bc";
-  brief = false;
-}
-{
-  name = "crosextrafonts-carlito-20130920.tar.gz";
-  md5 = "c74b7223abe75949b4af367942d96c7a";
-  brief = false;
-}
-{
-  name = "dejavu-fonts-ttf-2.35.zip";
-  md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
-  brief = false;
-}
-{
-  name = "gentiumbasic-fonts-1.10.zip";
-  md5 = "35efabc239af896dfb79be7ebdd6e6b9";
-  brief = false;
-}
-{
-  name = "liberation-fonts-ttf-1.07.4.tar.gz";
-  md5 = "134d8262145fc793c6af494dcace3e71";
-  brief = false;
-}
-{
-  name = "liberation-fonts-ttf-2.00.1.tar.gz";
-  md5 = "5c781723a0d9ed6188960defba8e91cf";
-  brief = false;
-}
-{
-  name = "LinLibertineG-20120116.zip";
-  md5 = "e7a384790b13c29113e22e596ade9687";
-  brief = false;
-}
-{
-  name = "open-sans-font-ttf-1.10.tar.gz";
-  md5 = "7a15edea7d415ac5150ea403e27401fd";
-  brief = false;
-}
-{
-  name = "pt-serif-font-1.0000W.tar.gz";
-  md5 = "c3c1a8ba7452950636e871d25020ce0d";
-  brief = false;
-}
-{
-  name = "source-code-font-1.009.tar.gz";
-  md5 = "0279a21fab6f245e85a6f85fea54f511";
-  brief = false;
-}
-{
-  name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
-  md5 = "edc4d741888bc0d38e32dbaa17149596";
-  brief = false;
-}
-{
-  name = "libfreehand-0.1.1.tar.bz2";
-  md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
-  brief = true;
-}
-{
-  name = "freetype-2.4.8.tar.bz2";
-  md5 = "dbf2caca1d3afd410a29217a9809d397";
-  brief = false;
-}
-{
-  name = "glew-1.12.0.zip";
-  md5 = "3941e9cab2f4f9d8faee3e8d57ae7664";
-  brief = false;
-}
-{
-  name = "glm-0.9.4.6-libreoffice.zip";
-  md5 = "bae83fa5dc7f081768daace6e199adc3";
-  brief = false;
-}
-{
-  name = "glyphy-0.2.0.tar.bz2";
-  md5 = "5d303fb955beb9bf112267316ca9d021";
-  brief = false;
-}
-{
-  name = "graphite-minimal-1.3.6.tgz";
-  md5 = "17df8301bcc459e83f8a8f3aca6183b2";
-  brief = false;
-}
-{
-  name = "harfbuzz-0.9.40.tar.bz2";
-  md5 = "0e27e531f4c4acff601ebff0957755c2";
-  brief = true;
-}
-{
-  name = "hsqldb_1_8_0.zip";
-  md5 = "17410483b5b5f267aa18b7e00b65e6e0";
-  brief = false;
-}
-{
-  name = "hunspell-1.3.3.tar.gz";
-  md5 = "4967da60b23413604c9e563beacc63b4";
-  brief = false;
-}
-{
-  name = "hyphen-2.8.8.tar.gz";
-  md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
-  brief = false;
-}
-{
-  name = "icu4c-56_1-src.tgz";
-  md5 = "c4a2d71ff56aec5ebfab2a3f059be99d";
-  brief = false;
-}
-{
-  name = "flow-engine-0.9.4.zip";
-  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
-  brief = false;
-}
-{
-  name = "flute-1.1.6.zip";
-  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
-  brief = false;
-}
-{
-  name = "libbase-1.1.6.zip";
-  md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
-  brief = false;
-}
-{
-  name = "libfonts-1.1.6.zip";
-  md5 = "3bdf40c0d199af31923e900d082ca2dd";
-  brief = false;
-}
-{
-  name = "libformula-1.1.7.zip";
-  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
-  brief = false;
-}
-{
-  name = "liblayout-0.2.10.zip";
-  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
-  brief = false;
-}
-{
-  name = "libloader-1.1.6.zip";
-  md5 = "97b2d4dba862397f446b217e2b623e71";
-  brief = false;
-}
-{
-  name = "librepository-1.1.6.zip";
-  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
-  brief = false;
-}
-{
-  name = "libserializer-1.1.6.zip";
-  md5 = "f94d9870737518e3b597f9265f4e9803";
-  brief = false;
-}
-{
-  name = "libxml-1.1.7.zip";
-  md5 = "ace6ab49184e329db254e454a010f56d";
-  brief = false;
-}
-{
-  name = "sacjava-1.3.zip";
-  md5 = "39bb3fcea1514f1369fcfc87542390fd";
-  brief = false;
-}
-{
-  name = "jpegsrc.v9a.tar.gz";
-  md5 = "3353992aecaee1805ef4109aadd433e7";
-  brief = true;
-}
-{
-  name = "libjpeg-turbo-1.4.2.tar.gz";
-  md5 = "86b0d5f7507c2e6c21c00219162c3c44";
-  brief = true;
-}
-{
-  name = "language-subtag-registry-2016-02-10.tar.bz2";
-  md5 = "d1e7c55a0383f7d720d3ead0b6117284";
-  brief = true;
-}
-{
-  name = "JLanguageTool-1.7.0.tar.bz2";
-  md5 = "b63e6340a02ff1cacfeadb2c42286161";
-  brief = false;
-}
-{
-  name = "lcms2-2.6.tar.gz";
-  md5 = "f4c08d38ceade4a664ebff7228910a33";
-  brief = true;
-}
-{
-  name = "libatomic_ops-7_2d.zip";
-  md5 = "c0b86562d5aa40761a87134f83e6adcf";
-  brief = true;
-}
-{
-  name = "libeot-0.01.tar.bz2";
-  md5 = "aa24f5dd2a2992f4a116aa72af817548";
-  brief = true;
-}
-{
-  name = "libexttextcat-3.4.4.tar.bz2";
-  md5 = "10d61fbaa6a06348823651b1bd7940fe";
-  brief = false;
-}
-{
-  name = "libgltf-0.0.2.tar.bz2";
-  md5 = "d63a9f47ab048f5009d90693d6aa6424";
-  brief = true;
-  subDir = "libgltf/";
-}
-{
-  name = "liblangtag-0.5.8.tar.bz2";
-  md5 = "aa899eff126216dafe721149fbdb511b";
-  brief = false;
-}
-{
-  name = "xmlsec1-1.2.14.tar.gz";
-  md5 = "1f24ab1d39f4a51faf22244c94a6203f";
-  brief = false;
-}
-{
-  name = "libxml2-2.9.4.tar.gz";
-  md5 = "ae249165c173b1ff386ee8ad676815f5";
-  brief = false;
-}
-{
-  name = "libxslt-1.1.28.tar.gz";
-  md5 = "9667bf6f9310b957254fdcf6596600b7";
-  brief = false;
-}
-{
-  name = "lp_solve_5.5.tar.gz";
-  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
-  brief = false;
-}
-{
-  name = "mariadb_client-2.0.0-src.tar.gz";
-  md5 = "a233181e03d3c307668b4c722d881661";
-  brief = false;
-}
-{
-  name = "mdds_0.12.1.tar.bz2";
-  md5 = "ef2560ed5416652a7fe195305b14cebe";
-  brief = true;
-}
-{
-  name = "libmspub-0.1.2.tar.bz2";
-  md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
-  brief = true;
-}
-{
-  name = "libmwaw-0.3.7.tar.bz2";
-  md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
-  brief = true;
-}
-{
-  name = "mysql-connector-c++-1.1.4.tar.gz";
-  md5 = "7239a4430efd4d0189c4f24df67f08e5";
-  brief = false;
-}
-{
-  name = "mythes-1.2.4.tar.gz";
-  md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
-  brief = false;
-}
-{
-  name = "neon-0.30.1.tar.gz";
-  md5 = "231adebe5c2f78fded3e3df6e958878e";
-  brief = false;
-}
-{
-  name = "nss-3.22.2-with-nspr-4.12.tar.gz";
-  md5 = "6b254cf2f8cb4b27a3f0b8b7b9966ea7";
-  brief = false;
-}
-{
-  name = "libodfgen-0.1.6.tar.bz2";
-  md5 = "32572ea48d9021bbd6fa317ddb697abc";
-  brief = true;
-}
-{
-  name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
-  md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
-  brief = true;
-}
-{
-  name = "openldap-2.4.31.tgz";
-  md5 = "804c6cb5698db30b75ad0ff1c25baefd";
-  brief = false;
-}
-{
-  name = "openssl-1.0.2h.tar.gz";
-  md5 = "9392e65072ce4b614c1392eefc1f23d0";
-  brief = true;
-}
-{
-  name = "liborcus-0.9.2.tar.gz";
-  md5 = "e6efcbe50a5fd4d50d513c9a7a4139b0";
-  brief = true;
-}
-{
-  name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
-  md5 = "593f0aa47bf2efc0efda2d28fae063b2";
-  brief = true;
-}
-{
-  name = "libpagemaker-0.0.2.tar.bz2";
-  md5 = "795cc7a59ace4db2b12586971d668671";
-  brief = true;
-}
-{
-  name = "pixman-0.24.4.tar.bz2";
-  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
-  brief = false;
-}
-{
-  name = "libpng-1.6.19.tar.gz";
-  md5 = "3121bdc77c365a87e054b9f859f421fe";
-  brief = true;
-}
-{
-  name = "poppler-0.26.4.tar.gz";
-  md5 = "35c0660065d023365e9854c13e289d12";
-  brief = true;
-}
-{
-  name = "postgresql-9.2.1.tar.bz2";
-  md5 = "c0b4799ea9850eae3ead14f0a60e9418";
-  brief = false;
-}
-{
-  name = "Python-3.3.5.tgz";
-  md5 = "803a75927f8f241ca78633890c798021";
-  brief = true;
-}
-{
-  name = "Python-3.5.0.tgz";
-  md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
-  brief = true;
-}
-{
-  name = "raptor2-2.0.9.tar.gz";
-  md5 = "4ceb9316488b0ea01acf011023cf7fff";
-  brief = false;
-}
-{
-  name = "rasqal-0.9.30.tar.gz";
-  md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
-  brief = false;
-}
-{
-  name = "redland-1.0.16.tar.gz";
-  md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
-  brief = false;
-}
-{
-  name = "librevenge-0.0.4.tar.bz2";
-  md5 = "5b9ac52ec77d4d19157cf5962ebc0aea";
-  brief = true;
-}
-{
-  name = "rhino1_5R5.zip";
-  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
-  brief = false;
-}
-{
-  name = "serf-1.2.1.tar.bz2";
-  md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
-  brief = true;
-}
-{
-  name = "swingExSrc.zip";
-  md5 = "35c94d2df8893241173de1d16b6034c0";
-  brief = false;
-}
-{
-  name = "ucpp-1.3.2.tar.gz";
-  md5 = "0168229624cfac409e766913506961a8";
-  brief = false;
-}
-{
-  name = "vigra1.6.0.tar.gz";
-  md5 = "d62650a6f908e85643e557a236ea989c";
-  brief = false;
-}
-{
-  name = "libvisio-0.1.5.tar.bz2";
-  md5 = "cbee198a78b842b2087f32d33c522818";
-  brief = true;
-}
-{
-  name = "libwpd-0.10.1.tar.bz2";
-  md5 = "79b56bcc349264d686a67994506ad199";
-  brief = true;
-}
-{
-  name = "libwpg-0.3.1.tar.bz2";
-  md5 = "dfd066658ec9d2fb2262417039a8a1c3";
-  brief = true;
-}
-{
-  name = "libwps-0.4.2.tar.bz2";
-  md5 = "8a6c55542ce80203dd6d3b1cba99d4e5";
-  brief = true;
-}
-{
-  name = "xsltml_2.1.2.zip";
-  md5 = "a7983f859eafb2677d7ff386a023bc40";
-  brief = false;
-}
-{
-  name = "zlib-1.2.8.tar.gz";
-  md5 = "44d667c142d7cda120332623eab69f40";
-  brief = true;
-}
+  {
+    name = "libabw-0.1.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libabw-0.1.1.tar.bz2";
+    sha256 = "7a3d3415cf82ab9894f601d1b3057c4615060304d5279efdec6275e01b96a199";
+    md5 = "7a3815b506d064313ba309617b6f5a0b";
+    md5name = "7a3815b506d064313ba309617b6f5a0b-libabw-0.1.1.tar.bz2";
+  }
+  {
+    name = "commons-logging-1.2-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz";
+    sha256 = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81";
+    md5 = "ce977548f1cbf46918e93cd38ac35163";
+    md5name = "ce977548f1cbf46918e93cd38ac35163-commons-logging-1.2-src.tar.gz";
+  }
+  {
+    name = "apr-1.4.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-1.4.8.tar.gz";
+    sha256 = "1689e415bdfab6aaa41f07836b5dd9ed4901d22ddeb99feffdb2cee3124adf49";
+    md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
+    md5name = "eff9d741b0999a9bbab96862dd2a2a3d-apr-1.4.8.tar.gz";
+  }
+  {
+    name = "apr-util-1.5.3.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-util-1.5.3.tar.gz";
+    sha256 = "76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743";
+    md5 = "71a11d037240b292f824ba1eb537b4e3";
+    md5name = "71a11d037240b292f824ba1eb537b4e3-apr-util-1.5.3.tar.gz";
+  }
+  {
+    name = "boost_1_59_0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/boost_1_59_0.tar.bz2";
+    sha256 = "727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca";
+    md5 = "6aa9a5c6a4ca1016edd0ed1178e3cb87";
+    md5name = "6aa9a5c6a4ca1016edd0ed1178e3cb87-boost_1_59_0.tar.bz2";
+  }
+  {
+    name = "bsh-2.0b5-src.zip";
+    url = "http://dev-www.libreoffice.org/src/ec1941a74d3ef513c4ce57a9092b74e1-bsh-2.0b5-src.zip";
+    sha256 = "90993aa17a786996653fc5fcf148e879fb3689b8678f9ba99b376a5a13dff513";
+    md5 = "ec1941a74d3ef513c4ce57a9092b74e1";
+    md5name = "ec1941a74d3ef513c4ce57a9092b74e1-bsh-2.0b5-src.zip";
+  }
+  {
+    name = "bzip2-1.0.6.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+    sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
+    md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
+    md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+  }
+  {
+    name = "cairo-1.10.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+    sha256 = "32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41";
+    md5 = "f101a9e88b783337b20b2e26dfd26d5f";
+    md5name = "f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+  }
+  {
+    name = "libcdr-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.2.tar.bz2";
+    sha256 = "d05a986dab9f960e64466072653a900d03f8257b084440d9d16599e16060581e";
+    md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
+    md5name = "6e3062b55b149d7b3c6aedb3bb5b86e2-libcdr-0.1.2.tar.bz2";
+  }
+  {
+    name = "clucene-core-2.3.3.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+    sha256 = "ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab";
+    md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+    md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+  }
+  {
+    name = "libcmis-0.5.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.tar.gz";
+    sha256 = "a87e02913dee3ee659db5abf6d7dafcfcd85dd4b24bf4389d8d4afe8c8dcf9b6";
+    md5 = "5821b806a98e6c38370970e682ce76e8";
+    md5name = "5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.tar.gz";
+  }
+  {
+    name = "CoinMP-1.7.6.tgz";
+    url = "http://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
+    sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+    md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
+    md5name = "1cce53bf4b40ae29790d2c5c9f8b1129-CoinMP-1.7.6.tgz";
+  }
+  {
+    name = "collada2gltf-master-cb1d97788a.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2";
+    sha256 = "b0adb8e71aef80751b999c9c055e419a625c4a05184e407aef2aee28752ad8cb";
+    md5 = "4b87018f7fff1d054939d19920b751a0";
+    md5name = "4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2";
+  }
+  {
+    name = "cppunit-1.13.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz";
+    sha256 = "3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f";
+    md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
+    md5name = "d1c6bdd5a76c66d2c38331e2d287bc01-cppunit-1.13.2.tar.gz";
+  }
+  {
+    name = "converttexttonumber-1-5-0.oxt";
+    url = "http://dev-www.libreoffice.org/src/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+    sha256 = "71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3";
+    md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
+    md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+  }
+  {
+    name = "curl-7.43.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/curl-7.43.0.tar.bz2";
+    sha256 = "baa654a1122530483ccc1c58cc112fec3724a82c11c6a389f1e6a37dc8858df9";
+    md5 = "11bddbb452a8b766b932f859aaeeed39";
+    md5name = "11bddbb452a8b766b932f859aaeeed39-curl-7.43.0.tar.bz2";
+  }
+  {
+    name = "libe-book-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libe-book-0.1.2.tar.bz2";
+    sha256 = "b710a57c633205b933015474d0ac0862253d1c52114d535dd09b20939a0d1850";
+    md5 = "6b48eda57914e6343efebc9381027b78";
+    md5name = "6b48eda57914e6343efebc9381027b78-libe-book-0.1.2.tar.bz2";
+  }
+  {
+    name = "epm-3.7.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+    sha256 = "b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91";
+    md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+    md5name = "3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+  }
+  {
+    name = "libetonyek-0.1.6.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libetonyek-0.1.6.tar.bz2";
+    sha256 = "032f53e8d7691e48a73ddbe74fa84c906ff6ff32a33e6ee2a935b6fdb6aecb78";
+    md5 = "77ff46936dcc83670557274e7dd2aa33";
+    md5name = "77ff46936dcc83670557274e7dd2aa33-libetonyek-0.1.6.tar.bz2";
+  }
+  {
+    name = "expat-2.1.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/expat-2.1.1.tar.bz2";
+    sha256 = "aff584e5a2f759dcfc6d48671e9529f6afe1e30b0cd6a4cec200cbe3f793de67";
+    md5 = "7380a64a8e3a9d66a9887b01d0d7ea81";
+    md5name = "7380a64a8e3a9d66a9887b01d0d7ea81-expat-2.1.1.tar.bz2";
+  }
+  {
+    name = "Firebird-2.5.4.26856-0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/Firebird-2.5.4.26856-0.tar.bz2";
+    sha256 = "4e775dcf218640d3af507a816aef0060f52a295b9ee5f66ec66f0b0564da18d3";
+    md5 = "7a17ec9889424b98baa29e001a054434";
+    md5name = "7a17ec9889424b98baa29e001a054434-Firebird-2.5.4.26856-0.tar.bz2";
+  }
+  {
+    name = "fontconfig-2.8.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz";
+    sha256 = "fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335";
+    md5 = "77e15a92006ddc2adbb06f840d591c0e";
+    md5name = "77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz";
+  }
+  {
+    name = "crosextrafonts-20130214.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+    sha256 = "c48d1c2fd613c9c06c959c34da7b8388059e2408d2bb19845dc3ed35f76e4d09";
+    md5 = "368f114c078f94214a308a74c7e991bc";
+    md5name = "368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+  }
+  {
+    name = "crosextrafonts-carlito-20130920.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+    sha256 = "4bd12b6cbc321c1cf16da76e2c585c925ce956a08067ae6f6c64eff6ccfdaf5a";
+    md5 = "c74b7223abe75949b4af367942d96c7a";
+    md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+  }
+  {
+    name = "dejavu-fonts-ttf-2.35.zip";
+    url = "http://dev-www.libreoffice.org/src/d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
+    sha256 = "7e0d00f20080784c3a38a845d5858c161af14f0073d9474cdbfdedae883cc747";
+    md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
+    md5name = "d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
+  }
+  {
+    name = "gentiumbasic-fonts-1.10.zip";
+    url = "http://dev-www.libreoffice.org/src/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+    sha256 = "f1691e48d02effdee0701622297394451759f13e0e0b36e788847f4b3e2ba11b";
+    md5 = "35efabc239af896dfb79be7ebdd6e6b9";
+    md5name = "35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+  }
+  {
+    name = "liberation-fonts-ttf-1.07.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+    sha256 = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4cfee5c";
+    md5 = "134d8262145fc793c6af494dcace3e71";
+    md5name = "134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+  }
+  {
+    name = "liberation-fonts-ttf-2.00.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+    sha256 = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504";
+    md5 = "5c781723a0d9ed6188960defba8e91cf";
+    md5name = "5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+  }
+  {
+    name = "LinLibertineG-20120116.zip";
+    url = "http://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+    sha256 = "54adcb2bc8cac0927a647fbd9362f45eff48130ce6e2379dc3867643019e08c5";
+    md5 = "e7a384790b13c29113e22e596ade9687";
+    md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+  }
+  {
+    name = "open-sans-font-ttf-1.10.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz";
+    sha256 = "cc80fd415e57ecec067339beadd0eef9eaa45e65d3c51a922ba5f9172779bfb8";
+    md5 = "7a15edea7d415ac5150ea403e27401fd";
+    md5name = "7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz";
+  }
+  {
+    name = "pt-serif-font-1.0000W.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz";
+    sha256 = "6757feb23f889a82df59679d02b8ee1f907df0a0ac1c49cdb48ed737b60e5dfa";
+    md5 = "c3c1a8ba7452950636e871d25020ce0d";
+    md5name = "c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz";
+  }
+  {
+    name = "source-code-font-1.009.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz";
+    sha256 = "9b295127164c81bcf28c7ebb687f1555b71796108b443a04d40202b7364e4cce";
+    md5 = "0279a21fab6f245e85a6f85fea54f511";
+    md5name = "0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz";
+  }
+  {
+    name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
+    md5 = "edc4d741888bc0d38e32dbaa17149596";
+    md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+  }
+  {
+    name = "libfreehand-0.1.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libfreehand-0.1.1.tar.bz2";
+    sha256 = "45dab0e5d632eb51eeb00847972ca03835d6791149e9e714f093a9df2b445877";
+    md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
+    md5name = "8cf70c5dc4d24d2dc4a107f509d2d6d7-libfreehand-0.1.1.tar.bz2";
+  }
+  {
+    name = "freetype-2.4.8.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2";
+    sha256 = "a9eb7da3875fcb2f022a9c280c01b94ae45ac83d8102838c05dce1277948fb71";
+    md5 = "dbf2caca1d3afd410a29217a9809d397";
+    md5name = "dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2";
+  }
+  {
+    name = "glew-1.12.0.zip";
+    url = "http://dev-www.libreoffice.org/src/3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip";
+    sha256 = "6f1083eb034efbc3b2017ef052d58f3e9bd70963ec2acd26b3d59231ee1633d4";
+    md5 = "3941e9cab2f4f9d8faee3e8d57ae7664";
+    md5name = "3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip";
+  }
+  {
+    name = "glm-0.9.4.6-libreoffice.zip";
+    url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+    sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
+    md5 = "bae83fa5dc7f081768daace6e199adc3";
+    md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+  }
+  {
+    name = "glyphy-0.2.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
+    sha256 = "9a8f629f7ea40ba118199a37adee8f2dfb084cffa5f7f4db3a47b8b0075777be";
+    md5 = "5d303fb955beb9bf112267316ca9d021";
+    md5name = "5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
+  }
+  {
+    name = "graphite-minimal-1.3.6.tgz";
+    url = "http://dev-www.libreoffice.org/src/17df8301bcc459e83f8a8f3aca6183b2-graphite-minimal-1.3.6.tgz";
+    sha256 = "db27e1a6092b8ea00b5f8eec2a3ea500756fbb769c1023a1afc3386c5918d1b8";
+    md5 = "17df8301bcc459e83f8a8f3aca6183b2";
+    md5name = "17df8301bcc459e83f8a8f3aca6183b2-graphite-minimal-1.3.6.tgz";
+  }
+  {
+    name = "harfbuzz-0.9.40.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/harfbuzz-0.9.40.tar.bz2";
+    sha256 = "1771d53583be6d91ca961854b2a24fb239ef0545eed221ae3349abae0ab8321f";
+    md5 = "0e27e531f4c4acff601ebff0957755c2";
+    md5name = "0e27e531f4c4acff601ebff0957755c2-harfbuzz-0.9.40.tar.bz2";
+  }
+  {
+    name = "hsqldb_1_8_0.zip";
+    url = "http://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+    sha256 = "d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370";
+    md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+    md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+  }
+  {
+    name = "hunspell-1.3.3.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/4967da60b23413604c9e563beacc63b4-hunspell-1.3.3.tar.gz";
+    sha256 = "a7b2c0de0e2ce17426821dc1ac8eb115029959b3ada9d80a81739fa19373246c";
+    md5 = "4967da60b23413604c9e563beacc63b4";
+    md5name = "4967da60b23413604c9e563beacc63b4-hunspell-1.3.3.tar.gz";
+  }
+  {
+    name = "hyphen-2.8.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+    sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705";
+    md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+    md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+  }
+  {
+    name = "icu4c-56_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/c4a2d71ff56aec5ebfab2a3f059be99d-icu4c-56_1-src.tgz";
+    sha256 = "3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816";
+    md5 = "c4a2d71ff56aec5ebfab2a3f059be99d";
+    md5name = "c4a2d71ff56aec5ebfab2a3f059be99d-icu4c-56_1-src.tgz";
+  }
+  {
+    name = "flow-engine-0.9.4.zip";
+    url = "http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+    sha256 = "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd";
+    md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+    md5name = "ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+  }
+  {
+    name = "flute-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+    sha256 = "1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133";
+    md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+    md5name = "d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+  }
+  {
+    name = "libbase-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+    sha256 = "75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba";
+    md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+    md5name = "eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+  }
+  {
+    name = "libfonts-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+    sha256 = "e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743";
+    md5 = "3bdf40c0d199af31923e900d082ca2dd";
+    md5name = "3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+  }
+  {
+    name = "libformula-1.1.7.zip";
+    url = "http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+    sha256 = "5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b";
+    md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+    md5name = "3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+  }
+  {
+    name = "liblayout-0.2.10.zip";
+    url = "http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+    sha256 = "e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772";
+    md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+    md5name = "db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+  }
+  {
+    name = "libloader-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+    sha256 = "3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8";
+    md5 = "97b2d4dba862397f446b217e2b623e71";
+    md5name = "97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+  }
+  {
+    name = "librepository-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+    sha256 = "abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095";
+    md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+    md5name = "8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+  }
+  {
+    name = "libserializer-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+    sha256 = "05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343";
+    md5 = "f94d9870737518e3b597f9265f4e9803";
+    md5name = "f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+  }
+  {
+    name = "libxml-1.1.7.zip";
+    url = "http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+    sha256 = "7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66";
+    md5 = "ace6ab49184e329db254e454a010f56d";
+    md5name = "ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+  }
+  {
+    name = "sacjava-1.3.zip";
+    url = "http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+    sha256 = "085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045";
+    md5 = "39bb3fcea1514f1369fcfc87542390fd";
+    md5name = "39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+  }
+  {
+    name = "jpegsrc.v9a.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/jpegsrc.v9a.tar.gz";
+    sha256 = "3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7";
+    md5 = "3353992aecaee1805ef4109aadd433e7";
+    md5name = "3353992aecaee1805ef4109aadd433e7-jpegsrc.v9a.tar.gz";
+  }
+  {
+    name = "libjpeg-turbo-1.4.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libjpeg-turbo-1.4.2.tar.gz";
+    sha256 = "521bb5d3043e7ac063ce3026d9a59cc2ab2e9636c655a2515af5f4706122233e";
+    md5 = "86b0d5f7507c2e6c21c00219162c3c44";
+    md5name = "86b0d5f7507c2e6c21c00219162c3c44-libjpeg-turbo-1.4.2.tar.gz";
+  }
+  {
+    name = "language-subtag-registry-2016-02-10.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2016-02-10.tar.bz2";
+    sha256 = "1e3a74b39e999bc9ff9fb0dd6fa6a64a0ed6bf7f0775ff3756e7c9e8db45a353";
+    md5 = "d1e7c55a0383f7d720d3ead0b6117284";
+    md5name = "d1e7c55a0383f7d720d3ead0b6117284-language-subtag-registry-2016-02-10.tar.bz2";
+  }
+  {
+    name = "JLanguageTool-1.7.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+    sha256 = "48c87e41636783bba438b65fd895821e369ed139e1465fac654323ad93c5a82d";
+    md5 = "b63e6340a02ff1cacfeadb2c42286161";
+    md5name = "b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+  }
+  {
+    name = "lcms2-2.6.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/lcms2-2.6.tar.gz";
+    sha256 = "5172528839647c54c3da211837225e221be93e4733f5b5e9f57668f7107e14b1";
+    md5 = "f4c08d38ceade4a664ebff7228910a33";
+    md5name = "f4c08d38ceade4a664ebff7228910a33-lcms2-2.6.tar.gz";
+  }
+  {
+    name = "libatomic_ops-7_2d.zip";
+    url = "http://dev-www.libreoffice.org/src/libatomic_ops-7_2d.zip";
+    sha256 = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad";
+    md5 = "c0b86562d5aa40761a87134f83e6adcf";
+    md5name = "c0b86562d5aa40761a87134f83e6adcf-libatomic_ops-7_2d.zip";
+  }
+  {
+    name = "libeot-0.01.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libeot-0.01.tar.bz2";
+    sha256 = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a";
+    md5 = "aa24f5dd2a2992f4a116aa72af817548";
+    md5name = "aa24f5dd2a2992f4a116aa72af817548-libeot-0.01.tar.bz2";
+  }
+  {
+    name = "libexttextcat-3.4.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2";
+    sha256 = "9595601c41051356d03d0a7d5dcad334fe1b420d221f6885d143c14bb8d62163";
+    md5 = "10d61fbaa6a06348823651b1bd7940fe";
+    md5name = "10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2";
+  }
+  {
+    name = "libgltf-0.0.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libgltf/libgltf-0.0.2.tar.bz2";
+    sha256 = "d1cc7297ed1921aa969e26413b4c4e18afc882ce4d2f5a2aa2a2905706f7206b";
+    md5 = "d63a9f47ab048f5009d90693d6aa6424";
+    md5name = "d63a9f47ab048f5009d90693d6aa6424-libgltf-0.0.2.tar.bz2";
+  }
+  {
+    name = "liblangtag-0.5.8.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
+    sha256 = "08e2f64bfe3f750be7391eb0af53967e164b628c59f02be4d83789eb4f036eaa";
+    md5 = "aa899eff126216dafe721149fbdb511b";
+    md5name = "aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
+  }
+  {
+    name = "xmlsec1-1.2.14.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz";
+    sha256 = "390a5085651828b8fe12aa978b200f59b9155eedbb91a4be89bf7cf39eefdd4a";
+    md5 = "1f24ab1d39f4a51faf22244c94a6203f";
+    md5name = "1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz";
+  }
+  {
+    name = "libxml2-2.9.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz";
+    sha256 = "ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c";
+    md5 = "ae249165c173b1ff386ee8ad676815f5";
+    md5name = "ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz";
+  }
+  {
+    name = "libxslt-1.1.28.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz";
+    sha256 = "5fc7151a57b89c03d7b825df5a0fae0a8d5f05674c0e7cf2937ecec4d54a028c";
+    md5 = "9667bf6f9310b957254fdcf6596600b7";
+    md5name = "9667bf6f9310b957254fdcf6596600b7-libxslt-1.1.28.tar.gz";
+  }
+  {
+    name = "lp_solve_5.5.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+    sha256 = "171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695";
+    md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+    md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+  }
+  {
+    name = "mariadb_client-2.0.0-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+    sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
+    md5 = "a233181e03d3c307668b4c722d881661";
+    md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+  }
+  {
+    name = "mdds_0.12.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds_0.12.1.tar.bz2";
+    sha256 = "23565e9d7810a6ac30478833813db847f80e927b414a7be07b7cc03ed3aae83d";
+    md5 = "ef2560ed5416652a7fe195305b14cebe";
+    md5name = "ef2560ed5416652a7fe195305b14cebe-mdds_0.12.1.tar.bz2";
+  }
+  {
+    name = "libmspub-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libmspub-0.1.2.tar.bz2";
+    sha256 = "26d488527ffbb0b41686d4bab756e3e6aaeb99f88adeb169d0c16d2cde96859a";
+    md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
+    md5name = "ff9d0f9dd8fbc523408ea1953d5bde41-libmspub-0.1.2.tar.bz2";
+  }
+  {
+    name = "libmwaw-0.3.7.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.7.tar.bz2";
+    sha256 = "a66b3e45a5ba5dd89849a766e128585cac8aaf9e9c6f037040200e5bf31f1427";
+    md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
+    md5name = "4a8a53a9d997cf0e2bd208178797dbfb-libmwaw-0.3.7.tar.bz2";
+  }
+  {
+    name = "mysql-connector-c++-1.1.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+    sha256 = "a25f14dad39e93a2f9cdf09166ee53981f7212dce829e4208e07a522963a8585";
+    md5 = "7239a4430efd4d0189c4f24df67f08e5";
+    md5name = "7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+  }
+  {
+    name = "mythes-1.2.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+    sha256 = "1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b0e0790a305f";
+    md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
+    md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+  }
+  {
+    name = "neon-0.30.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz";
+    sha256 = "00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd";
+    md5 = "231adebe5c2f78fded3e3df6e958878e";
+    md5name = "231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz";
+  }
+  {
+    name = "nss-3.22.2-with-nspr-4.12.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/6b254cf2f8cb4b27a3f0b8b7b9966ea7-nss-3.22.2-with-nspr-4.12.tar.gz";
+    sha256 = "7bc7e5483fc90071be5facd3043f94c69b153055a369c8f0b751ad374c5ae09e";
+    md5 = "6b254cf2f8cb4b27a3f0b8b7b9966ea7";
+    md5name = "6b254cf2f8cb4b27a3f0b8b7b9966ea7-nss-3.22.2-with-nspr-4.12.tar.gz";
+  }
+  {
+    name = "libodfgen-0.1.6.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2";
+    sha256 = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2";
+    md5 = "32572ea48d9021bbd6fa317ddb697abc";
+    md5name = "32572ea48d9021bbd6fa317ddb697abc-libodfgen-0.1.6.tar.bz2";
+  }
+  {
+    name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/OpenCOLLADA-master-6509aa13af.tar.bz2";
+    sha256 = "8f25d429237cde289a448c82a0a830791354ccce5ee40d77535642e46367d6c4";
+    md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
+    md5name = "4ca8a6ef0afeefc864e9ef21b9f14bd6-OpenCOLLADA-master-6509aa13af.tar.bz2";
+  }
+  {
+    name = "openldap-2.4.31.tgz";
+    url = "http://dev-www.libreoffice.org/src/804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
+    sha256 = "bde845840df4794b869a6efd6a6b1086f80989038e4844b2e4d7d6b57b39c5b6";
+    md5 = "804c6cb5698db30b75ad0ff1c25baefd";
+    md5name = "804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
+  }
+  {
+    name = "openssl-1.0.2h.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/openssl-1.0.2h.tar.gz";
+    sha256 = "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919";
+    md5 = "9392e65072ce4b614c1392eefc1f23d0";
+    md5name = "9392e65072ce4b614c1392eefc1f23d0-openssl-1.0.2h.tar.gz";
+  }
+  {
+    name = "liborcus-0.9.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.9.2.tar.gz";
+    sha256 = "adcf90f6cb1e6546ef1ea11277db39cb875786ea4b283e37f5e37c8c09b4952b";
+    md5 = "e6efcbe50a5fd4d50d513c9a7a4139b0";
+    md5name = "e6efcbe50a5fd4d50d513c9a7a4139b0-liborcus-0.9.2.tar.gz";
+  }
+  {
+    name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+    sha256 = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb";
+    md5 = "593f0aa47bf2efc0efda2d28fae063b2";
+    md5name = "593f0aa47bf2efc0efda2d28fae063b2-owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+  }
+  {
+    name = "libpagemaker-0.0.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libpagemaker-0.0.2.tar.bz2";
+    sha256 = "43be46721affcb5a967406c09acfc36c79d2d968917fe36a21cc004230a01e0f";
+    md5 = "795cc7a59ace4db2b12586971d668671";
+    md5name = "795cc7a59ace4db2b12586971d668671-libpagemaker-0.0.2.tar.bz2";
+  }
+  {
+    name = "pixman-0.24.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
+    sha256 = "3d1bf79329be76103c7d9632a79962178364371807104a10e5f63ae0551731dc";
+    md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+    md5name = "c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
+  }
+  {
+    name = "libpng-1.6.19.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libpng-1.6.19.tar.gz";
+    sha256 = "9f977ac8e4e3d4d5b001b32243f111eeec21bb6b59e583f2fb41fd2e48840352";
+    md5 = "3121bdc77c365a87e054b9f859f421fe";
+    md5name = "3121bdc77c365a87e054b9f859f421fe-libpng-1.6.19.tar.gz";
+  }
+  {
+    name = "poppler-0.26.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/poppler-0.26.4.tar.gz";
+    sha256 = "e05a4d8d8252a564ec7a96a99af772042b2d85275ffda8043f427dde31e97fe8";
+    md5 = "35c0660065d023365e9854c13e289d12";
+    md5name = "35c0660065d023365e9854c13e289d12-poppler-0.26.4.tar.gz";
+  }
+  {
+    name = "postgresql-9.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+    sha256 = "db61d498105a7d5fe46185e67ac830c878cdd7dc1f82a87f06b842217924c461";
+    md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+    md5name = "c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+  }
+  {
+    name = "Python-3.3.5.tgz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.3.5.tgz";
+    sha256 = "916bc57dd8524dc27429bebae7b39d6942742cf9699b875b2b496a3d960c7168";
+    md5 = "803a75927f8f241ca78633890c798021";
+    md5name = "803a75927f8f241ca78633890c798021-Python-3.3.5.tgz";
+  }
+  {
+    name = "Python-3.5.0.tgz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.5.0.tgz";
+    sha256 = "584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0";
+    md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
+    md5name = "a56c0c0b45d75a0ec9c6dee933c41c36-Python-3.5.0.tgz";
+  }
+  {
+    name = "raptor2-2.0.9.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
+    sha256 = "e26fb9c18e6ebf71100f434070d50196a21d592b715e361850c3b4e789b5f6ef";
+    md5 = "4ceb9316488b0ea01acf011023cf7fff";
+    md5name = "4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
+  }
+  {
+    name = "rasqal-0.9.30.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
+    sha256 = "abf0e93d80cc79bdf383fd3e904255bf98bc729356d6cf2f673bce74b08b1cfd";
+    md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
+    md5name = "b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
+  }
+  {
+    name = "redland-1.0.16.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
+    sha256 = "d9a274fc086e61119d5c9beafb8d05527e040ec86f4c0961276ca8de0a049dbd";
+    md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
+    md5name = "32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
+  }
+  {
+    name = "librevenge-0.0.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
+    sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+    md5 = "5b9ac52ec77d4d19157cf5962ebc0aea";
+    md5name = "5b9ac52ec77d4d19157cf5962ebc0aea-librevenge-0.0.4.tar.bz2";
+  }
+  {
+    name = "rhino1_5R5.zip";
+    url = "http://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+    sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
+    md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+    md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+  }
+  {
+    name = "serf-1.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/serf-1.2.1.tar.bz2";
+    sha256 = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700";
+    md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
+    md5name = "4f8e76c9c6567aee1d66aba49f76a58b-serf-1.2.1.tar.bz2";
+  }
+  {
+    name = "swingExSrc.zip";
+    url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+    sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+    md5 = "35c94d2df8893241173de1d16b6034c0";
+    md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+  }
+  {
+    name = "ucpp-1.3.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+    sha256 = "983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776";
+    md5 = "0168229624cfac409e766913506961a8";
+    md5name = "0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+  }
+  {
+    name = "vigra1.6.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz";
+    sha256 = "1f188ac03a8aa4663223eca8c82f91a55293d066d67127082e29a7dba1a98c9f";
+    md5 = "d62650a6f908e85643e557a236ea989c";
+    md5name = "d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz";
+  }
+  {
+    name = "libvisio-0.1.5.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libvisio-0.1.5.tar.bz2";
+    sha256 = "b83b7991a40b4e7f07d0cac7bb46ddfac84dece705fd18e21bfd119a09be458e";
+    md5 = "cbee198a78b842b2087f32d33c522818";
+    md5name = "cbee198a78b842b2087f32d33c522818-libvisio-0.1.5.tar.bz2";
+  }
+  {
+    name = "libwpd-0.10.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwpd-0.10.1.tar.bz2";
+    sha256 = "efc20361d6e43f9ff74de5f4d86c2ce9c677693f5da08b0a88d603b7475a508d";
+    md5 = "79b56bcc349264d686a67994506ad199";
+    md5name = "79b56bcc349264d686a67994506ad199-libwpd-0.10.1.tar.bz2";
+  }
+  {
+    name = "libwpg-0.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwpg-0.3.1.tar.bz2";
+    sha256 = "29049b95895914e680390717a243b291448e76e0f82fb4d2479adee5330fbb59";
+    md5 = "dfd066658ec9d2fb2262417039a8a1c3";
+    md5name = "dfd066658ec9d2fb2262417039a8a1c3-libwpg-0.3.1.tar.bz2";
+  }
+  {
+    name = "libwps-0.4.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.2.tar.bz2";
+    sha256 = "254b8aeb36a3b58eabf682b04a5a6cf9b01267e762c7dc57d4533b95f30dc587";
+    md5 = "8a6c55542ce80203dd6d3b1cba99d4e5";
+    md5name = "8a6c55542ce80203dd6d3b1cba99d4e5-libwps-0.4.2.tar.bz2";
+  }
+  {
+    name = "xsltml_2.1.2.zip";
+    url = "http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+    sha256 = "75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870";
+    md5 = "a7983f859eafb2677d7ff386a023bc40";
+    md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+  }
+  {
+    name = "zlib-1.2.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/zlib-1.2.8.tar.gz";
+    sha256 = "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d";
+    md5 = "44d667c142d7cda120332623eab69f40";
+    md5name = "44d667c142d7cda120332623eab69f40-zlib-1.2.8.tar.gz";
+  }
 ]
diff --git a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
index 5240edcf5d1b..bf9150b98ec4 100644
--- a/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
+++ b/pkgs/applications/office/libreoffice/libreoffice-srcs.nix
@@ -1,533 +1,744 @@
 [
-{
-  name = "libabw-0.1.1.tar.bz2";
-  md5 = "7a3815b506d064313ba309617b6f5a0b";
-  brief = true;
-}
-{
-  name = "commons-logging-1.2-src.tar.gz";
-  md5 = "ce977548f1cbf46918e93cd38ac35163";
-  brief = true;
-}
-{
-  name = "apr-1.4.8.tar.gz";
-  md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
-  brief = true;
-}
-{
-  name = "apr-util-1.5.3.tar.gz";
-  md5 = "71a11d037240b292f824ba1eb537b4e3";
-  brief = true;
-}
-{
-  name = "boost_1_60_0.tar.bz2";
-  md5 = "65a840e1a0b13a558ff19eeb2c4f0cbe";
-  brief = true;
-}
-{
-  name = "breakpad.zip";
-  md5 = "415ce291aa6f2ee1d5db7b62bf62ade8";
-  brief = true;
-}
-{
-  name = "bsh-2.0b6-src.zip";
-  md5 = "beeca87be45ec87d241ddd0e1bad80c1";
-  brief = false;
-}
-{
-  name = "bzip2-1.0.6.tar.gz";
-  md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
-  brief = false;
-}
-{
-  name = "cairo-1.10.2.tar.gz";
-  md5 = "f101a9e88b783337b20b2e26dfd26d5f";
-  brief = false;
-}
-{
-  name = "libcdr-0.1.2.tar.bz2";
-  md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
-  brief = true;
-}
-{
-  name = "clucene-core-2.3.3.4.tar.gz";
-  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
-  brief = false;
-}
-{
-  name = "libcmis-0.5.1.tar.gz";
-  md5 = "3270154f0f40d86fce849b161f914101";
-  brief = true;
-}
-{
-  name = "CoinMP-1.7.6.tgz";
-  md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
-  brief = true;
-}
-{
-  name = "collada2gltf-master-cb1d97788a.tar.bz2";
-  md5 = "4b87018f7fff1d054939d19920b751a0";
-  brief = false;
-}
-{
-  name = "cppunit-1.13.2.tar.gz";
-  md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
-  brief = true;
-}
-{
-  name = "converttexttonumber-1-5-0.oxt";
-  md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
-  brief = false;
-}
-{
-  name = "curl-7.43.0.tar.bz2";
-  md5 = "11bddbb452a8b766b932f859aaeeed39";
-  brief = true;
-}
-{
-  name = "libe-book-0.1.2.tar.bz2";
-  md5 = "6b48eda57914e6343efebc9381027b78";
-  brief = true;
-}
-{
-  name = "epm-3.7.tar.gz";
-  md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
-  brief = false;
-}
-{
-  name = "libetonyek-0.1.6.tar.bz2";
-  md5 = "77ff46936dcc83670557274e7dd2aa33";
-  brief = true;
-}
-{
-  name = "expat-2.2.0.tar.bz2";
-  md5 = "2f47841c829facb346eb6e3fab5212e2";
-  brief = true;
-}
-{
-  name = "Firebird-2.5.5.26952-0.tar.bz2";
-  md5 = "b0b5293991fcf07347b38431c80be1d4";
-  brief = true;
-}
-{
-  name = "fontconfig-2.8.0.tar.gz";
-  md5 = "77e15a92006ddc2adbb06f840d591c0e";
-  brief = false;
-}
-{
-  name = "crosextrafonts-20130214.tar.gz";
-  md5 = "368f114c078f94214a308a74c7e991bc";
-  brief = false;
-}
-{
-  name = "crosextrafonts-carlito-20130920.tar.gz";
-  md5 = "c74b7223abe75949b4af367942d96c7a";
-  brief = false;
-}
-{
-  name = "dejavu-fonts-ttf-2.35.zip";
-  md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
-  brief = false;
-}
-{
-  name = "gentiumbasic-fonts-1.10.zip";
-  md5 = "35efabc239af896dfb79be7ebdd6e6b9";
-  brief = false;
-}
-{
-  name = "liberation-fonts-ttf-1.07.4.tar.gz";
-  md5 = "134d8262145fc793c6af494dcace3e71";
-  brief = false;
-}
-{
-  name = "liberation-fonts-ttf-2.00.1.tar.gz";
-  md5 = "5c781723a0d9ed6188960defba8e91cf";
-  brief = false;
-}
-{
-  name = "LinLibertineG-20120116.zip";
-  md5 = "e7a384790b13c29113e22e596ade9687";
-  brief = false;
-}
-{
-  name = "open-sans-font-ttf-1.10.tar.gz";
-  md5 = "7a15edea7d415ac5150ea403e27401fd";
-  brief = false;
-}
-{
-  name = "pt-serif-font-1.0000W.tar.gz";
-  md5 = "c3c1a8ba7452950636e871d25020ce0d";
-  brief = false;
-}
-{
-  name = "source-code-font-1.009.tar.gz";
-  md5 = "0279a21fab6f245e85a6f85fea54f511";
-  brief = false;
-}
-{
-  name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
-  md5 = "edc4d741888bc0d38e32dbaa17149596";
-  brief = false;
-}
-{
-  name = "libfreehand-0.1.1.tar.bz2";
-  md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
-  brief = true;
-}
-{
-  name = "freetype-2.4.8.tar.bz2";
-  md5 = "dbf2caca1d3afd410a29217a9809d397";
-  brief = false;
-}
-{
-  name = "glew-1.12.0.zip";
-  md5 = "3941e9cab2f4f9d8faee3e8d57ae7664";
-  brief = false;
-}
-{
-  name = "glm-0.9.4.6-libreoffice.zip";
-  md5 = "bae83fa5dc7f081768daace6e199adc3";
-  brief = false;
-}
-{
-  name = "glyphy-0.2.0.tar.bz2";
-  md5 = "5d303fb955beb9bf112267316ca9d021";
-  brief = false;
-}
-{
-  name = "graphite2-minimal-1.3.8.tgz";
-  md5 = "4311dd9ace498b57c85f611e0670df64";
-  brief = false;
-}
-{
-  name = "harfbuzz-1.2.6.tar.bz2";
-  md5 = "9f4b6831c86135faef011e991f59f77f";
-  brief = true;
-}
-{
-  name = "hsqldb_1_8_0.zip";
-  md5 = "17410483b5b5f267aa18b7e00b65e6e0";
-  brief = false;
-}
-{
-  name = "hunspell-1.4.1.tar.gz";
-  md5 = "33d370f7fe5a030985e445a5672b2067";
-  brief = false;
-}
-{
-  name = "hyphen-2.8.8.tar.gz";
-  md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
-  brief = false;
-}
-{
-  name = "icu4c-57_1-src.tgz";
-  md5 = "976734806026a4ef8bdd17937c8898b9";
-  brief = false;
-}
-{
-  name = "flow-engine-0.9.4.zip";
-  md5 = "ba2930200c9f019c2d93a8c88c651a0f";
-  brief = false;
-}
-{
-  name = "flute-1.1.6.zip";
-  md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
-  brief = false;
-}
-{
-  name = "libbase-1.1.6.zip";
-  md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
-  brief = false;
-}
-{
-  name = "libfonts-1.1.6.zip";
-  md5 = "3bdf40c0d199af31923e900d082ca2dd";
-  brief = false;
-}
-{
-  name = "libformula-1.1.7.zip";
-  md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
-  brief = false;
-}
-{
-  name = "liblayout-0.2.10.zip";
-  md5 = "db60e4fde8dd6d6807523deb71ee34dc";
-  brief = false;
-}
-{
-  name = "libloader-1.1.6.zip";
-  md5 = "97b2d4dba862397f446b217e2b623e71";
-  brief = false;
-}
-{
-  name = "librepository-1.1.6.zip";
-  md5 = "8ce2fcd72becf06c41f7201d15373ed9";
-  brief = false;
-}
-{
-  name = "libserializer-1.1.6.zip";
-  md5 = "f94d9870737518e3b597f9265f4e9803";
-  brief = false;
-}
-{
-  name = "libxml-1.1.7.zip";
-  md5 = "ace6ab49184e329db254e454a010f56d";
-  brief = false;
-}
-{
-  name = "sacjava-1.3.zip";
-  md5 = "39bb3fcea1514f1369fcfc87542390fd";
-  brief = false;
-}
-{
-  name = "jpegsrc.v9a.tar.gz";
-  md5 = "3353992aecaee1805ef4109aadd433e7";
-  brief = true;
-}
-{
-  name = "libjpeg-turbo-1.4.2.tar.gz";
-  md5 = "86b0d5f7507c2e6c21c00219162c3c44";
-  brief = true;
-}
-{
-  name = "language-subtag-registry-2016-07-19.tar.bz2";
-  md5 = "8a037dc60b16bf8c5fe871b33390a4a2";
-  brief = true;
-}
-{
-  name = "JLanguageTool-1.7.0.tar.bz2";
-  md5 = "b63e6340a02ff1cacfeadb2c42286161";
-  brief = false;
-}
-{
-  name = "lcms2-2.6.tar.gz";
-  md5 = "f4c08d38ceade4a664ebff7228910a33";
-  brief = true;
-}
-{
-  name = "libatomic_ops-7_2d.zip";
-  md5 = "c0b86562d5aa40761a87134f83e6adcf";
-  brief = true;
-}
-{
-  name = "libeot-0.01.tar.bz2";
-  md5 = "aa24f5dd2a2992f4a116aa72af817548";
-  brief = true;
-}
-{
-  name = "libexttextcat-3.4.4.tar.bz2";
-  md5 = "10d61fbaa6a06348823651b1bd7940fe";
-  brief = false;
-}
-{
-  name = "libgltf-0.0.2.tar.bz2";
-  md5 = "d63a9f47ab048f5009d90693d6aa6424";
-  brief = true;
-  subDir = "libgltf/";
-}
-{
-  name = "liblangtag-0.5.8.tar.bz2";
-  md5 = "aa899eff126216dafe721149fbdb511b";
-  brief = false;
-}
-{
-  name = "xmlsec1-1.2.20.tar.gz";
-  md5 = "ce12af00283eb90d9281956524250d6e";
-  brief = false;
-}
-{
-  name = "libxml2-2.9.4.tar.gz";
-  md5 = "ae249165c173b1ff386ee8ad676815f5";
-  brief = false;
-}
-{
-  name = "libxslt-1.1.29.tar.gz";
-  md5 = "a129d3c44c022de3b9dcf6d6f288d72e";
-  brief = false;
-}
-{
-  name = "lp_solve_5.5.tar.gz";
-  md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
-  brief = false;
-}
-{
-  name = "mariadb_client-2.0.0-src.tar.gz";
-  md5 = "a233181e03d3c307668b4c722d881661";
-  brief = false;
-}
-{
-  name = "mdds-1.2.0.tar.bz2";
-  md5 = "9f3383fb7bae825eab69f3a6ec1d74b2";
-  brief = true;
-}
-{
-  name = "mDNSResponder-576.30.4.tar.gz";
-  md5 = "940057ac8b513b00e8e9ca12ef796762";
-  brief = true;
-}
-{
-  name = "libmspub-0.1.2.tar.bz2";
-  md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
-  brief = true;
-}
-{
-  name = "libmwaw-0.3.7.tar.bz2";
-  md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
-  brief = true;
-}
-{
-  name = "mysql-connector-c++-1.1.4.tar.gz";
-  md5 = "7239a4430efd4d0189c4f24df67f08e5";
-  brief = false;
-}
-{
-  name = "mythes-1.2.4.tar.gz";
-  md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
-  brief = false;
-}
-{
-  name = "neon-0.30.1.tar.gz";
-  md5 = "231adebe5c2f78fded3e3df6e958878e";
-  brief = false;
-}
-{
-  name = "nss-3.22.2-with-nspr-4.12.tar.gz";
-  md5 = "6b254cf2f8cb4b27a3f0b8b7b9966ea7";
-  brief = false;
-}
-{
-  name = "libodfgen-0.1.6.tar.bz2";
-  md5 = "32572ea48d9021bbd6fa317ddb697abc";
-  brief = true;
-}
-{
-  name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
-  md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
-  brief = true;
-}
-{
-  name = "openldap-2.4.31.tgz";
-  md5 = "804c6cb5698db30b75ad0ff1c25baefd";
-  brief = false;
-}
-{
-  name = "openssl-1.0.2h.tar.gz";
-  md5 = "9392e65072ce4b614c1392eefc1f23d0";
-  brief = true;
-}
-{
-  name = "liborcus-0.11.2.tar.gz";
-  md5 = "205badaee72adf99422add8c4c49d669";
-  brief = true;
-}
-{
-  name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
-  md5 = "593f0aa47bf2efc0efda2d28fae063b2";
-  brief = true;
-}
-{
-  name = "libpagemaker-0.0.3.tar.bz2";
-  md5 = "5c4985a68be0b79d3f809da5e12b143c";
-  brief = true;
-}
-{
-  name = "pixman-0.24.4.tar.bz2";
-  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
-  brief = false;
-}
-{
-  name = "libpng-1.6.24.tar.gz";
-  md5 = "65213080dd30a9b16193d9b83adc1ee9";
-  brief = true;
-}
-{
-  name = "poppler-0.46.0.tar.bz2";
-  md5 = "38c758d84437378ec4f5aae9f875301d";
-  brief = true;
-}
-{
-  name = "postgresql-9.2.1.tar.bz2";
-  md5 = "c0b4799ea9850eae3ead14f0a60e9418";
-  brief = false;
-}
-{
-  name = "Python-3.3.5.tgz";
-  md5 = "803a75927f8f241ca78633890c798021";
-  brief = true;
-}
-{
-  name = "Python-3.5.0.tgz";
-  md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
-  brief = true;
-}
-{
-  name = "raptor2-2.0.9.tar.gz";
-  md5 = "4ceb9316488b0ea01acf011023cf7fff";
-  brief = false;
-}
-{
-  name = "rasqal-0.9.30.tar.gz";
-  md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
-  brief = false;
-}
-{
-  name = "redland-1.0.16.tar.gz";
-  md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
-  brief = false;
-}
-{
-  name = "librevenge-0.0.4.tar.bz2";
-  md5 = "5b9ac52ec77d4d19157cf5962ebc0aea";
-  brief = true;
-}
-{
-  name = "rhino1_5R5.zip";
-  md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
-  brief = false;
-}
-{
-  name = "serf-1.2.1.tar.bz2";
-  md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
-  brief = true;
-}
-{
-  name = "swingExSrc.zip";
-  md5 = "35c94d2df8893241173de1d16b6034c0";
-  brief = false;
-}
-{
-  name = "ucpp-1.3.2.tar.gz";
-  md5 = "0168229624cfac409e766913506961a8";
-  brief = false;
-}
-{
-  name = "libvisio-0.1.5.tar.bz2";
-  md5 = "cbee198a78b842b2087f32d33c522818";
-  brief = true;
-}
-{
-  name = "libwpd-0.10.1.tar.bz2";
-  md5 = "79b56bcc349264d686a67994506ad199";
-  brief = true;
-}
-{
-  name = "libwpg-0.3.1.tar.bz2";
-  md5 = "dfd066658ec9d2fb2262417039a8a1c3";
-  brief = true;
-}
-{
-  name = "libwps-0.4.3.tar.bz2";
-  md5 = "027fb17fb9e43553aa6624dc18f830ac";
-  brief = true;
-}
-{
-  name = "xsltml_2.1.2.zip";
-  md5 = "a7983f859eafb2677d7ff386a023bc40";
-  brief = false;
-}
-{
-  name = "zlib-1.2.8.tar.gz";
-  md5 = "44d667c142d7cda120332623eab69f40";
-  brief = true;
-}
+  {
+    name = "libabw-0.1.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libabw-0.1.1.tar.bz2";
+    sha256 = "7a3d3415cf82ab9894f601d1b3057c4615060304d5279efdec6275e01b96a199";
+    md5 = "7a3815b506d064313ba309617b6f5a0b";
+    md5name = "7a3815b506d064313ba309617b6f5a0b-libabw-0.1.1.tar.bz2";
+  }
+  {
+    name = "commons-logging-1.2-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/commons-logging-1.2-src.tar.gz";
+    sha256 = "49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81";
+    md5 = "ce977548f1cbf46918e93cd38ac35163";
+    md5name = "ce977548f1cbf46918e93cd38ac35163-commons-logging-1.2-src.tar.gz";
+  }
+  {
+    name = "apr-1.4.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-1.4.8.tar.gz";
+    sha256 = "1689e415bdfab6aaa41f07836b5dd9ed4901d22ddeb99feffdb2cee3124adf49";
+    md5 = "eff9d741b0999a9bbab96862dd2a2a3d";
+    md5name = "eff9d741b0999a9bbab96862dd2a2a3d-apr-1.4.8.tar.gz";
+  }
+  {
+    name = "apr-util-1.5.3.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/apr-util-1.5.3.tar.gz";
+    sha256 = "76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743";
+    md5 = "71a11d037240b292f824ba1eb537b4e3";
+    md5name = "71a11d037240b292f824ba1eb537b4e3-apr-util-1.5.3.tar.gz";
+  }
+  {
+    name = "boost_1_60_0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/boost_1_60_0.tar.bz2";
+    sha256 = "686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b";
+    md5 = "65a840e1a0b13a558ff19eeb2c4f0cbe";
+    md5name = "65a840e1a0b13a558ff19eeb2c4f0cbe-boost_1_60_0.tar.bz2";
+  }
+  {
+    name = "breakpad.zip";
+    url = "http://dev-www.libreoffice.org/src/breakpad.zip";
+    sha256 = "7060149be16a8789b0ccf596bdeaf63115f03f520acb508f72a14686fb311cb9";
+    md5 = "415ce291aa6f2ee1d5db7b62bf62ade8";
+    md5name = "415ce291aa6f2ee1d5db7b62bf62ade8-breakpad.zip";
+  }
+  {
+    name = "bsh-2.0b6-src.zip";
+    url = "http://dev-www.libreoffice.org/src/beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+    sha256 = "9e93c73e23aff644b17dfff656444474c14150e7f3b38b19635e622235e01c96";
+    md5 = "beeca87be45ec87d241ddd0e1bad80c1";
+    md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
+  }
+  {
+    name = "bzip2-1.0.6.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+    sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
+    md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
+    md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+  }
+  {
+    name = "cairo-1.10.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+    sha256 = "32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41";
+    md5 = "f101a9e88b783337b20b2e26dfd26d5f";
+    md5name = "f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+  }
+  {
+    name = "libcdr-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.2.tar.bz2";
+    sha256 = "d05a986dab9f960e64466072653a900d03f8257b084440d9d16599e16060581e";
+    md5 = "6e3062b55b149d7b3c6aedb3bb5b86e2";
+    md5name = "6e3062b55b149d7b3c6aedb3bb5b86e2-libcdr-0.1.2.tar.bz2";
+  }
+  {
+    name = "clucene-core-2.3.3.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+    sha256 = "ddfdc433dd8ad31b5c5819cc4404a8d2127472a3b720d3e744e8c51d79732eab";
+    md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+    md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
+  }
+  {
+    name = "libcmis-0.5.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libcmis-0.5.1.tar.gz";
+    sha256 = "6acbdf22ecdbaba37728729b75bfc085ee5a4b49a6024757cfb86ccd3da27b0e";
+    md5 = "3270154f0f40d86fce849b161f914101";
+    md5name = "3270154f0f40d86fce849b161f914101-libcmis-0.5.1.tar.gz";
+  }
+  {
+    name = "CoinMP-1.7.6.tgz";
+    url = "http://dev-www.libreoffice.org/src/CoinMP-1.7.6.tgz";
+    sha256 = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f";
+    md5 = "1cce53bf4b40ae29790d2c5c9f8b1129";
+    md5name = "1cce53bf4b40ae29790d2c5c9f8b1129-CoinMP-1.7.6.tgz";
+  }
+  {
+    name = "collada2gltf-master-cb1d97788a.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2";
+    sha256 = "b0adb8e71aef80751b999c9c055e419a625c4a05184e407aef2aee28752ad8cb";
+    md5 = "4b87018f7fff1d054939d19920b751a0";
+    md5name = "4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2";
+  }
+  {
+    name = "cppunit-1.13.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/cppunit-1.13.2.tar.gz";
+    sha256 = "3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f";
+    md5 = "d1c6bdd5a76c66d2c38331e2d287bc01";
+    md5name = "d1c6bdd5a76c66d2c38331e2d287bc01-cppunit-1.13.2.tar.gz";
+  }
+  {
+    name = "converttexttonumber-1-5-0.oxt";
+    url = "http://dev-www.libreoffice.org/src/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+    sha256 = "71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3";
+    md5 = "1f467e5bb703f12cbbb09d5cf67ecf4a";
+    md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
+  }
+  {
+    name = "curl-7.43.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/curl-7.43.0.tar.bz2";
+    sha256 = "baa654a1122530483ccc1c58cc112fec3724a82c11c6a389f1e6a37dc8858df9";
+    md5 = "11bddbb452a8b766b932f859aaeeed39";
+    md5name = "11bddbb452a8b766b932f859aaeeed39-curl-7.43.0.tar.bz2";
+  }
+  {
+    name = "libe-book-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libe-book-0.1.2.tar.bz2";
+    sha256 = "b710a57c633205b933015474d0ac0862253d1c52114d535dd09b20939a0d1850";
+    md5 = "6b48eda57914e6343efebc9381027b78";
+    md5name = "6b48eda57914e6343efebc9381027b78-libe-book-0.1.2.tar.bz2";
+  }
+  {
+    name = "epm-3.7.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+    sha256 = "b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91";
+    md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
+    md5name = "3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+  }
+  {
+    name = "libetonyek-0.1.6.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libetonyek-0.1.6.tar.bz2";
+    sha256 = "032f53e8d7691e48a73ddbe74fa84c906ff6ff32a33e6ee2a935b6fdb6aecb78";
+    md5 = "77ff46936dcc83670557274e7dd2aa33";
+    md5name = "77ff46936dcc83670557274e7dd2aa33-libetonyek-0.1.6.tar.bz2";
+  }
+  {
+    name = "expat-2.2.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/expat-2.2.0.tar.bz2";
+    sha256 = "d9e50ff2d19b3538bd2127902a89987474e1a4db8e43a66a4d1a712ab9a504ff";
+    md5 = "2f47841c829facb346eb6e3fab5212e2";
+    md5name = "2f47841c829facb346eb6e3fab5212e2-expat-2.2.0.tar.bz2";
+  }
+  {
+    name = "Firebird-2.5.5.26952-0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/Firebird-2.5.5.26952-0.tar.bz2";
+    sha256 = "b33e63ede88184d9ef2ae6760537ab75bfe641513821410b83e837946162b7d1";
+    md5 = "b0b5293991fcf07347b38431c80be1d4";
+    md5name = "b0b5293991fcf07347b38431c80be1d4-Firebird-2.5.5.26952-0.tar.bz2";
+  }
+  {
+    name = "fontconfig-2.8.0.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz";
+    sha256 = "fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335";
+    md5 = "77e15a92006ddc2adbb06f840d591c0e";
+    md5name = "77e15a92006ddc2adbb06f840d591c0e-fontconfig-2.8.0.tar.gz";
+  }
+  {
+    name = "crosextrafonts-20130214.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+    sha256 = "c48d1c2fd613c9c06c959c34da7b8388059e2408d2bb19845dc3ed35f76e4d09";
+    md5 = "368f114c078f94214a308a74c7e991bc";
+    md5name = "368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz";
+  }
+  {
+    name = "crosextrafonts-carlito-20130920.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+    sha256 = "4bd12b6cbc321c1cf16da76e2c585c925ce956a08067ae6f6c64eff6ccfdaf5a";
+    md5 = "c74b7223abe75949b4af367942d96c7a";
+    md5name = "c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz";
+  }
+  {
+    name = "dejavu-fonts-ttf-2.35.zip";
+    url = "http://dev-www.libreoffice.org/src/d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
+    sha256 = "7e0d00f20080784c3a38a845d5858c161af14f0073d9474cdbfdedae883cc747";
+    md5 = "d8b5214d35bcd2bfcb2cffa7795b351d";
+    md5name = "d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip";
+  }
+  {
+    name = "gentiumbasic-fonts-1.10.zip";
+    url = "http://dev-www.libreoffice.org/src/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+    sha256 = "f1691e48d02effdee0701622297394451759f13e0e0b36e788847f4b3e2ba11b";
+    md5 = "35efabc239af896dfb79be7ebdd6e6b9";
+    md5name = "35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+  }
+  {
+    name = "liberation-fonts-ttf-1.07.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+    sha256 = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4cfee5c";
+    md5 = "134d8262145fc793c6af494dcace3e71";
+    md5name = "134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz";
+  }
+  {
+    name = "liberation-fonts-ttf-2.00.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+    sha256 = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504";
+    md5 = "5c781723a0d9ed6188960defba8e91cf";
+    md5name = "5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz";
+  }
+  {
+    name = "LinLibertineG-20120116.zip";
+    url = "http://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+    sha256 = "54adcb2bc8cac0927a647fbd9362f45eff48130ce6e2379dc3867643019e08c5";
+    md5 = "e7a384790b13c29113e22e596ade9687";
+    md5name = "e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+  }
+  {
+    name = "open-sans-font-ttf-1.10.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz";
+    sha256 = "cc80fd415e57ecec067339beadd0eef9eaa45e65d3c51a922ba5f9172779bfb8";
+    md5 = "7a15edea7d415ac5150ea403e27401fd";
+    md5name = "7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz";
+  }
+  {
+    name = "pt-serif-font-1.0000W.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz";
+    sha256 = "6757feb23f889a82df59679d02b8ee1f907df0a0ac1c49cdb48ed737b60e5dfa";
+    md5 = "c3c1a8ba7452950636e871d25020ce0d";
+    md5name = "c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz";
+  }
+  {
+    name = "source-code-font-1.009.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz";
+    sha256 = "9b295127164c81bcf28c7ebb687f1555b71796108b443a04d40202b7364e4cce";
+    md5 = "0279a21fab6f245e85a6f85fea54f511";
+    md5name = "0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz";
+  }
+  {
+    name = "source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+    sha256 = "e7bc9a1fec787a529e49f5a26b93dcdcf41506449dfc70f92cdef6d17eb6fb61";
+    md5 = "edc4d741888bc0d38e32dbaa17149596";
+    md5name = "edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz";
+  }
+  {
+    name = "libfreehand-0.1.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libfreehand-0.1.1.tar.bz2";
+    sha256 = "45dab0e5d632eb51eeb00847972ca03835d6791149e9e714f093a9df2b445877";
+    md5 = "8cf70c5dc4d24d2dc4a107f509d2d6d7";
+    md5name = "8cf70c5dc4d24d2dc4a107f509d2d6d7-libfreehand-0.1.1.tar.bz2";
+  }
+  {
+    name = "freetype-2.4.8.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2";
+    sha256 = "a9eb7da3875fcb2f022a9c280c01b94ae45ac83d8102838c05dce1277948fb71";
+    md5 = "dbf2caca1d3afd410a29217a9809d397";
+    md5name = "dbf2caca1d3afd410a29217a9809d397-freetype-2.4.8.tar.bz2";
+  }
+  {
+    name = "glew-1.12.0.zip";
+    url = "http://dev-www.libreoffice.org/src/3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip";
+    sha256 = "6f1083eb034efbc3b2017ef052d58f3e9bd70963ec2acd26b3d59231ee1633d4";
+    md5 = "3941e9cab2f4f9d8faee3e8d57ae7664";
+    md5name = "3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip";
+  }
+  {
+    name = "glm-0.9.4.6-libreoffice.zip";
+    url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+    sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
+    md5 = "bae83fa5dc7f081768daace6e199adc3";
+    md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+  }
+  {
+    name = "glyphy-0.2.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
+    sha256 = "9a8f629f7ea40ba118199a37adee8f2dfb084cffa5f7f4db3a47b8b0075777be";
+    md5 = "5d303fb955beb9bf112267316ca9d021";
+    md5name = "5d303fb955beb9bf112267316ca9d021-glyphy-0.2.0.tar.bz2";
+  }
+  {
+    name = "graphite2-minimal-1.3.8.tgz";
+    url = "http://dev-www.libreoffice.org/src/4311dd9ace498b57c85f611e0670df64-graphite2-minimal-1.3.8.tgz";
+    sha256 = "d16940175822760753e9762d0af9679c9726e64f25955677fe7ab68448601c3b";
+    md5 = "4311dd9ace498b57c85f611e0670df64";
+    md5name = "4311dd9ace498b57c85f611e0670df64-graphite2-minimal-1.3.8.tgz";
+  }
+  {
+    name = "harfbuzz-1.2.6.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/harfbuzz-1.2.6.tar.bz2";
+    sha256 = "7537bacccb3524df0cd2a4d5bc7e168bcc10e8171e0324f3cd522583868192c1";
+    md5 = "9f4b6831c86135faef011e991f59f77f";
+    md5name = "9f4b6831c86135faef011e991f59f77f-harfbuzz-1.2.6.tar.bz2";
+  }
+  {
+    name = "hsqldb_1_8_0.zip";
+    url = "http://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+    sha256 = "d30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370";
+    md5 = "17410483b5b5f267aa18b7e00b65e6e0";
+    md5name = "17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+  }
+  {
+    name = "hunspell-1.4.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz";
+    sha256 = "c4476aff0ced52eec334eae1e8d3fdaaebdd90f5ecd0b57cf2a92a6fd220d1bb";
+    md5 = "33d370f7fe5a030985e445a5672b2067";
+    md5name = "33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz";
+  }
+  {
+    name = "hyphen-2.8.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+    sha256 = "304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705";
+    md5 = "5ade6ae2a99bc1e9e57031ca88d36dad";
+    md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
+  }
+  {
+    name = "icu4c-57_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/976734806026a4ef8bdd17937c8898b9-icu4c-57_1-src.tgz";
+    sha256 = "ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581";
+    md5 = "976734806026a4ef8bdd17937c8898b9";
+    md5name = "976734806026a4ef8bdd17937c8898b9-icu4c-57_1-src.tgz";
+  }
+  {
+    name = "flow-engine-0.9.4.zip";
+    url = "http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+    sha256 = "233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd";
+    md5 = "ba2930200c9f019c2d93a8c88c651a0f";
+    md5name = "ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+  }
+  {
+    name = "flute-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+    sha256 = "1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133";
+    md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
+    md5name = "d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+  }
+  {
+    name = "libbase-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+    sha256 = "75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba";
+    md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
+    md5name = "eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+  }
+  {
+    name = "libfonts-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+    sha256 = "e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743";
+    md5 = "3bdf40c0d199af31923e900d082ca2dd";
+    md5name = "3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+  }
+  {
+    name = "libformula-1.1.7.zip";
+    url = "http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+    sha256 = "5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b";
+    md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
+    md5name = "3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+  }
+  {
+    name = "liblayout-0.2.10.zip";
+    url = "http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+    sha256 = "e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772";
+    md5 = "db60e4fde8dd6d6807523deb71ee34dc";
+    md5name = "db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+  }
+  {
+    name = "libloader-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+    sha256 = "3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8";
+    md5 = "97b2d4dba862397f446b217e2b623e71";
+    md5name = "97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+  }
+  {
+    name = "librepository-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+    sha256 = "abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095";
+    md5 = "8ce2fcd72becf06c41f7201d15373ed9";
+    md5name = "8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+  }
+  {
+    name = "libserializer-1.1.6.zip";
+    url = "http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+    sha256 = "05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343";
+    md5 = "f94d9870737518e3b597f9265f4e9803";
+    md5name = "f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+  }
+  {
+    name = "libxml-1.1.7.zip";
+    url = "http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+    sha256 = "7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66";
+    md5 = "ace6ab49184e329db254e454a010f56d";
+    md5name = "ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+  }
+  {
+    name = "sacjava-1.3.zip";
+    url = "http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+    sha256 = "085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045";
+    md5 = "39bb3fcea1514f1369fcfc87542390fd";
+    md5name = "39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+  }
+  {
+    name = "jpegsrc.v9a.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/jpegsrc.v9a.tar.gz";
+    sha256 = "3a753ea48d917945dd54a2d97de388aa06ca2eb1066cbfdc6652036349fe05a7";
+    md5 = "3353992aecaee1805ef4109aadd433e7";
+    md5name = "3353992aecaee1805ef4109aadd433e7-jpegsrc.v9a.tar.gz";
+  }
+  {
+    name = "libjpeg-turbo-1.4.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libjpeg-turbo-1.4.2.tar.gz";
+    sha256 = "521bb5d3043e7ac063ce3026d9a59cc2ab2e9636c655a2515af5f4706122233e";
+    md5 = "86b0d5f7507c2e6c21c00219162c3c44";
+    md5name = "86b0d5f7507c2e6c21c00219162c3c44-libjpeg-turbo-1.4.2.tar.gz";
+  }
+  {
+    name = "language-subtag-registry-2016-07-19.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2016-07-19.tar.bz2";
+    sha256 = "e3dc30bdbfdad442c542dc0e165df9d8d2ba06a357cd55957155d8259d1661dc";
+    md5 = "8a037dc60b16bf8c5fe871b33390a4a2";
+    md5name = "8a037dc60b16bf8c5fe871b33390a4a2-language-subtag-registry-2016-07-19.tar.bz2";
+  }
+  {
+    name = "JLanguageTool-1.7.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+    sha256 = "48c87e41636783bba438b65fd895821e369ed139e1465fac654323ad93c5a82d";
+    md5 = "b63e6340a02ff1cacfeadb2c42286161";
+    md5name = "b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2";
+  }
+  {
+    name = "lcms2-2.6.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/lcms2-2.6.tar.gz";
+    sha256 = "5172528839647c54c3da211837225e221be93e4733f5b5e9f57668f7107e14b1";
+    md5 = "f4c08d38ceade4a664ebff7228910a33";
+    md5name = "f4c08d38ceade4a664ebff7228910a33-lcms2-2.6.tar.gz";
+  }
+  {
+    name = "libatomic_ops-7_2d.zip";
+    url = "http://dev-www.libreoffice.org/src/libatomic_ops-7_2d.zip";
+    sha256 = "cf5c52f08a2067ae4fe7c8919e3c1ccf3ee917f1749e0bcc7efffff59c68d9ad";
+    md5 = "c0b86562d5aa40761a87134f83e6adcf";
+    md5name = "c0b86562d5aa40761a87134f83e6adcf-libatomic_ops-7_2d.zip";
+  }
+  {
+    name = "libeot-0.01.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libeot-0.01.tar.bz2";
+    sha256 = "cf5091fa8e7dcdbe667335eb90a2cfdd0a3fe8f8c7c8d1ece44d9d055736a06a";
+    md5 = "aa24f5dd2a2992f4a116aa72af817548";
+    md5name = "aa24f5dd2a2992f4a116aa72af817548-libeot-0.01.tar.bz2";
+  }
+  {
+    name = "libexttextcat-3.4.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2";
+    sha256 = "9595601c41051356d03d0a7d5dcad334fe1b420d221f6885d143c14bb8d62163";
+    md5 = "10d61fbaa6a06348823651b1bd7940fe";
+    md5name = "10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2";
+  }
+  {
+    name = "libgltf-0.0.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libgltf/libgltf-0.0.2.tar.bz2";
+    sha256 = "d1cc7297ed1921aa969e26413b4c4e18afc882ce4d2f5a2aa2a2905706f7206b";
+    md5 = "d63a9f47ab048f5009d90693d6aa6424";
+    md5name = "d63a9f47ab048f5009d90693d6aa6424-libgltf-0.0.2.tar.bz2";
+  }
+  {
+    name = "liblangtag-0.5.8.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
+    sha256 = "08e2f64bfe3f750be7391eb0af53967e164b628c59f02be4d83789eb4f036eaa";
+    md5 = "aa899eff126216dafe721149fbdb511b";
+    md5name = "aa899eff126216dafe721149fbdb511b-liblangtag-0.5.8.tar.bz2";
+  }
+  {
+    name = "xmlsec1-1.2.20.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz";
+    sha256 = "3221593ca50f362b546a0888a1431ad24be1470f96b2469c0e0df5e1c55e7305";
+    md5 = "ce12af00283eb90d9281956524250d6e";
+    md5name = "ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz";
+  }
+  {
+    name = "libxml2-2.9.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz";
+    sha256 = "ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c";
+    md5 = "ae249165c173b1ff386ee8ad676815f5";
+    md5name = "ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz";
+  }
+  {
+    name = "libxslt-1.1.29.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a129d3c44c022de3b9dcf6d6f288d72e-libxslt-1.1.29.tar.gz";
+    sha256 = "b5976e3857837e7617b29f2249ebb5eeac34e249208d31f1fbf7a6ba7a4090ce";
+    md5 = "a129d3c44c022de3b9dcf6d6f288d72e";
+    md5name = "a129d3c44c022de3b9dcf6d6f288d72e-libxslt-1.1.29.tar.gz";
+  }
+  {
+    name = "lp_solve_5.5.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+    sha256 = "171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695";
+    md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
+    md5name = "26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+  }
+  {
+    name = "mariadb_client-2.0.0-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+    sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
+    md5 = "a233181e03d3c307668b4c722d881661";
+    md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+  }
+  {
+    name = "mdds-1.2.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.2.0.tar.bz2";
+    sha256 = "f44fd0635de94c7d490f9a65f74b5e55860d7bdd507951428294f9690fda45b6";
+    md5 = "9f3383fb7bae825eab69f3a6ec1d74b2";
+    md5name = "9f3383fb7bae825eab69f3a6ec1d74b2-mdds-1.2.0.tar.bz2";
+  }
+  {
+    name = "mDNSResponder-576.30.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mDNSResponder-576.30.4.tar.gz";
+    sha256 = "4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0";
+    md5 = "940057ac8b513b00e8e9ca12ef796762";
+    md5name = "940057ac8b513b00e8e9ca12ef796762-mDNSResponder-576.30.4.tar.gz";
+  }
+  {
+    name = "libmspub-0.1.2.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libmspub-0.1.2.tar.bz2";
+    sha256 = "26d488527ffbb0b41686d4bab756e3e6aaeb99f88adeb169d0c16d2cde96859a";
+    md5 = "ff9d0f9dd8fbc523408ea1953d5bde41";
+    md5name = "ff9d0f9dd8fbc523408ea1953d5bde41-libmspub-0.1.2.tar.bz2";
+  }
+  {
+    name = "libmwaw-0.3.7.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.7.tar.bz2";
+    sha256 = "a66b3e45a5ba5dd89849a766e128585cac8aaf9e9c6f037040200e5bf31f1427";
+    md5 = "4a8a53a9d997cf0e2bd208178797dbfb";
+    md5name = "4a8a53a9d997cf0e2bd208178797dbfb-libmwaw-0.3.7.tar.bz2";
+  }
+  {
+    name = "mysql-connector-c++-1.1.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+    sha256 = "a25f14dad39e93a2f9cdf09166ee53981f7212dce829e4208e07a522963a8585";
+    md5 = "7239a4430efd4d0189c4f24df67f08e5";
+    md5name = "7239a4430efd4d0189c4f24df67f08e5-mysql-connector-c++-1.1.4.tar.gz";
+  }
+  {
+    name = "mythes-1.2.4.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+    sha256 = "1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b0e0790a305f";
+    md5 = "a8c2c5b8f09e7ede322d5c602ff6a4b6";
+    md5name = "a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz";
+  }
+  {
+    name = "neon-0.30.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz";
+    sha256 = "00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd";
+    md5 = "231adebe5c2f78fded3e3df6e958878e";
+    md5name = "231adebe5c2f78fded3e3df6e958878e-neon-0.30.1.tar.gz";
+  }
+  {
+    name = "nss-3.22.2-with-nspr-4.12.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/6b254cf2f8cb4b27a3f0b8b7b9966ea7-nss-3.22.2-with-nspr-4.12.tar.gz";
+    sha256 = "7bc7e5483fc90071be5facd3043f94c69b153055a369c8f0b751ad374c5ae09e";
+    md5 = "6b254cf2f8cb4b27a3f0b8b7b9966ea7";
+    md5name = "6b254cf2f8cb4b27a3f0b8b7b9966ea7-nss-3.22.2-with-nspr-4.12.tar.gz";
+  }
+  {
+    name = "libodfgen-0.1.6.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libodfgen-0.1.6.tar.bz2";
+    sha256 = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2";
+    md5 = "32572ea48d9021bbd6fa317ddb697abc";
+    md5name = "32572ea48d9021bbd6fa317ddb697abc-libodfgen-0.1.6.tar.bz2";
+  }
+  {
+    name = "OpenCOLLADA-master-6509aa13af.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/OpenCOLLADA-master-6509aa13af.tar.bz2";
+    sha256 = "8f25d429237cde289a448c82a0a830791354ccce5ee40d77535642e46367d6c4";
+    md5 = "4ca8a6ef0afeefc864e9ef21b9f14bd6";
+    md5name = "4ca8a6ef0afeefc864e9ef21b9f14bd6-OpenCOLLADA-master-6509aa13af.tar.bz2";
+  }
+  {
+    name = "openldap-2.4.31.tgz";
+    url = "http://dev-www.libreoffice.org/src/804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
+    sha256 = "bde845840df4794b869a6efd6a6b1086f80989038e4844b2e4d7d6b57b39c5b6";
+    md5 = "804c6cb5698db30b75ad0ff1c25baefd";
+    md5name = "804c6cb5698db30b75ad0ff1c25baefd-openldap-2.4.31.tgz";
+  }
+  {
+    name = "openssl-1.0.2h.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/openssl-1.0.2h.tar.gz";
+    sha256 = "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919";
+    md5 = "9392e65072ce4b614c1392eefc1f23d0";
+    md5name = "9392e65072ce4b614c1392eefc1f23d0-openssl-1.0.2h.tar.gz";
+  }
+  {
+    name = "liborcus-0.11.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.11.2.tar.gz";
+    sha256 = "10afc617fd7600fa02bd4467d2e3c7bd058f84e4d672d558e1db90e82dafd256";
+    md5 = "205badaee72adf99422add8c4c49d669";
+    md5name = "205badaee72adf99422add8c4c49d669-liborcus-0.11.2.tar.gz";
+  }
+  {
+    name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+    sha256 = "b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb";
+    md5 = "593f0aa47bf2efc0efda2d28fae063b2";
+    md5name = "593f0aa47bf2efc0efda2d28fae063b2-owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
+  }
+  {
+    name = "libpagemaker-0.0.3.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libpagemaker-0.0.3.tar.bz2";
+    sha256 = "3b5de037692f8e156777a75e162f6b110fa24c01749e4a66d7eb83f364e52a33";
+    md5 = "5c4985a68be0b79d3f809da5e12b143c";
+    md5name = "5c4985a68be0b79d3f809da5e12b143c-libpagemaker-0.0.3.tar.bz2";
+  }
+  {
+    name = "pixman-0.24.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
+    sha256 = "3d1bf79329be76103c7d9632a79962178364371807104a10e5f63ae0551731dc";
+    md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+    md5name = "c63f411b3ad147db2bcce1bf262a0e02-pixman-0.24.4.tar.bz2";
+  }
+  {
+    name = "libpng-1.6.24.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/libpng-1.6.24.tar.gz";
+    sha256 = "be46e0d14ccac3800f816ae860d191a1187a40164b7552c44afeee97a9caa0a3";
+    md5 = "65213080dd30a9b16193d9b83adc1ee9";
+    md5name = "65213080dd30a9b16193d9b83adc1ee9-libpng-1.6.24.tar.gz";
+  }
+  {
+    name = "poppler-0.46.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/poppler-0.46.0.tar.bz2";
+    sha256 = "e3b53c4d1baffb047d4752d68886210fcb279e75cc32c0c61c7165e4d4cf846a";
+    md5 = "38c758d84437378ec4f5aae9f875301d";
+    md5name = "38c758d84437378ec4f5aae9f875301d-poppler-0.46.0.tar.bz2";
+  }
+  {
+    name = "postgresql-9.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+    sha256 = "db61d498105a7d5fe46185e67ac830c878cdd7dc1f82a87f06b842217924c461";
+    md5 = "c0b4799ea9850eae3ead14f0a60e9418";
+    md5name = "c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2";
+  }
+  {
+    name = "Python-3.3.5.tgz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.3.5.tgz";
+    sha256 = "916bc57dd8524dc27429bebae7b39d6942742cf9699b875b2b496a3d960c7168";
+    md5 = "803a75927f8f241ca78633890c798021";
+    md5name = "803a75927f8f241ca78633890c798021-Python-3.3.5.tgz";
+  }
+  {
+    name = "Python-3.5.0.tgz";
+    url = "http://dev-www.libreoffice.org/src/Python-3.5.0.tgz";
+    sha256 = "584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0";
+    md5 = "a56c0c0b45d75a0ec9c6dee933c41c36";
+    md5name = "a56c0c0b45d75a0ec9c6dee933c41c36-Python-3.5.0.tgz";
+  }
+  {
+    name = "raptor2-2.0.9.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
+    sha256 = "e26fb9c18e6ebf71100f434070d50196a21d592b715e361850c3b4e789b5f6ef";
+    md5 = "4ceb9316488b0ea01acf011023cf7fff";
+    md5name = "4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz";
+  }
+  {
+    name = "rasqal-0.9.30.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
+    sha256 = "abf0e93d80cc79bdf383fd3e904255bf98bc729356d6cf2f673bce74b08b1cfd";
+    md5 = "b12c5f9cfdb6b04efce5a4a186b8416b";
+    md5name = "b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz";
+  }
+  {
+    name = "redland-1.0.16.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
+    sha256 = "d9a274fc086e61119d5c9beafb8d05527e040ec86f4c0961276ca8de0a049dbd";
+    md5 = "32f8e1417a64d3c6f2c727f9053f55ea";
+    md5name = "32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz";
+  }
+  {
+    name = "librevenge-0.0.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/librevenge-0.0.4.tar.bz2";
+    sha256 = "c51601cd08320b75702812c64aae0653409164da7825fd0f451ac2c5dbe77cbf";
+    md5 = "5b9ac52ec77d4d19157cf5962ebc0aea";
+    md5name = "5b9ac52ec77d4d19157cf5962ebc0aea-librevenge-0.0.4.tar.bz2";
+  }
+  {
+    name = "rhino1_5R5.zip";
+    url = "http://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+    sha256 = "1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753";
+    md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
+    md5name = "798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+  }
+  {
+    name = "serf-1.2.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/serf-1.2.1.tar.bz2";
+    sha256 = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700";
+    md5 = "4f8e76c9c6567aee1d66aba49f76a58b";
+    md5name = "4f8e76c9c6567aee1d66aba49f76a58b-serf-1.2.1.tar.bz2";
+  }
+  {
+    name = "swingExSrc.zip";
+    url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+    sha256 = "64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1";
+    md5 = "35c94d2df8893241173de1d16b6034c0";
+    md5name = "35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+  }
+  {
+    name = "ucpp-1.3.2.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+    sha256 = "983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776";
+    md5 = "0168229624cfac409e766913506961a8";
+    md5name = "0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz";
+  }
+  {
+    name = "libvisio-0.1.5.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libvisio-0.1.5.tar.bz2";
+    sha256 = "b83b7991a40b4e7f07d0cac7bb46ddfac84dece705fd18e21bfd119a09be458e";
+    md5 = "cbee198a78b842b2087f32d33c522818";
+    md5name = "cbee198a78b842b2087f32d33c522818-libvisio-0.1.5.tar.bz2";
+  }
+  {
+    name = "libwpd-0.10.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwpd-0.10.1.tar.bz2";
+    sha256 = "efc20361d6e43f9ff74de5f4d86c2ce9c677693f5da08b0a88d603b7475a508d";
+    md5 = "79b56bcc349264d686a67994506ad199";
+    md5name = "79b56bcc349264d686a67994506ad199-libwpd-0.10.1.tar.bz2";
+  }
+  {
+    name = "libwpg-0.3.1.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwpg-0.3.1.tar.bz2";
+    sha256 = "29049b95895914e680390717a243b291448e76e0f82fb4d2479adee5330fbb59";
+    md5 = "dfd066658ec9d2fb2262417039a8a1c3";
+    md5name = "dfd066658ec9d2fb2262417039a8a1c3-libwpg-0.3.1.tar.bz2";
+  }
+  {
+    name = "libwps-0.4.3.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.3.tar.bz2";
+    sha256 = "0c30407865a873ff76b6d5b2d2aa599f6af68936638c81ca8292449324042a6c";
+    md5 = "027fb17fb9e43553aa6624dc18f830ac";
+    md5name = "027fb17fb9e43553aa6624dc18f830ac-libwps-0.4.3.tar.bz2";
+  }
+  {
+    name = "xsltml_2.1.2.zip";
+    url = "http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+    sha256 = "75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870";
+    md5 = "a7983f859eafb2677d7ff386a023bc40";
+    md5name = "a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+  }
+  {
+    name = "zlib-1.2.8.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/zlib-1.2.8.tar.gz";
+    sha256 = "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d";
+    md5 = "44d667c142d7cda120332623eab69f40";
+    md5name = "44d667c142d7cda120332623eab69f40-zlib-1.2.8.tar.gz";
+  }
 ]
diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix
index 383e43a74aad..2963eff83e7d 100644
--- a/pkgs/applications/office/libreoffice/still.nix
+++ b/pkgs/applications/office/libreoffice/still.nix
@@ -28,25 +28,17 @@ let
   lib = stdenv.lib;
   langsSpaces = lib.concatStringsSep " " langs;
 
-  fetchThirdParty = {name, md5, brief, subDir ? ""}: fetchurl {
-    inherit name md5;
-    url = if brief then
-            "http://dev-www.libreoffice.org/src/${subDir}${name}"
-          else
-            "http://dev-www.libreoffice.org/src/${subDir}${md5}-${name}";
-  };
-
   fetchSrc = {name, sha256}: fetchurl {
     url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
     inherit sha256;
   };
 
   srcs = {
-    third_party = [ (fetchurl rec {
+    third_party = [ (let md5 = "185d60944ea767075d27247c3162b3bc"; in fetchurl rec {
         url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
-        md5 = "185d60944ea767075d27247c3162b3bc";
+        sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
         name = "unowinreg.dll";
-      }) ] ++ (map fetchThirdParty (import ./libreoffice-srcs-still.nix));
+      }) ] ++ (map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;})) (import ./libreoffice-srcs-still.nix));
 
     translations = fetchSrc {
       name = "translations";
@@ -94,7 +86,7 @@ in stdenv.mkDerivation rec {
 
   postUnpack = ''
     mkdir -v $sourceRoot/src
-  '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.md5 or f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party)
   + ''
     ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
     ln -svf ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
diff --git a/pkgs/applications/office/tagainijisho/default.nix b/pkgs/applications/office/tagainijisho/default.nix
index 9283ee1274c0..bd7d537a2c6e 100644
--- a/pkgs/applications/office/tagainijisho/default.nix
+++ b/pkgs/applications/office/tagainijisho/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
       /* program */ gpl3Plus
       /* data */ cc-by-sa-30
     ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/applications/science/logic/eprover/default.nix b/pkgs/applications/science/logic/eprover/default.nix
index 1f36858ae320..92b5b49cec7c 100644
--- a/pkgs/applications/science/logic/eprover/default.nix
+++ b/pkgs/applications/science/logic/eprover/default.nix
@@ -1,46 +1,29 @@
 { stdenv, fetchurl, which }:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="eprover";
-    version="1.9";
-    name="${baseName}-${version}";
-    hash="0vipapqjg0339lpc98vpvz58m6xkqrhgxylmp0hrnld4lrhmcdn4";
-    url="http://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_1.9/E.tgz";
-    sha256="0vipapqjg0339lpc98vpvz58m6xkqrhgxylmp0hrnld4lrhmcdn4";
-  };
-in
-stdenv.mkDerivation {
-  inherit (s) name;
+stdenv.mkDerivation rec {
+  name = "eprover-${version}";
+  version = "1.9.1";
 
   src = fetchurl {
-    name = "E-${s.version}.tar.gz";
-    inherit (s) url sha256;
+    url = "http://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
+    sha256 = "1vi977mdfqnj04m590aw4896nqzlc4c5rqadjzk86z1zvj7mqnqw";
   };
 
   buildInputs = [ which ];
 
   preConfigure = ''
-    sed -e 's@^EXECPATH\\s.*@EXECPATH = '\$out'/bin@' \
-    -e 's/^CC *= gcc$//' \
-    -i Makefile.vars
+    sed -e 's/ *CC *= gcc$//' -i Makefile.vars
   '';
+  configureFlags = "--exec-prefix=$(out) --man-prefix=$(out)/share/man";
 
-  buildPhase = "make install";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    make install
-    echo eproof -xAuto --tstp-in --tstp-out '"$@"' > $out/bin/eproof-tptp
-    chmod a+x $out/bin/eproof-tptp
+  postInstall = ''
+    sed -e s,EXECPATH=.\*,EXECPATH=$out/bin, -i $out/bin/eproof{,_ram}
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with stdenv.lib; {
     description = "Automated theorem prover for full first-order logic with equality";
     homepage = http://www.eprover.org/;
-    license = stdenv.lib.licenses.gpl2;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin gebner ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/logic/eprover/default.upstream b/pkgs/applications/science/logic/eprover/default.upstream
deleted file mode 100644
index f871d4985bbd..000000000000
--- a/pkgs/applications/science/logic/eprover/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url http://wwwlehre.dhbw-stuttgart.de/~sschulz/E/Download.html
-version_link '[.]tgz$'
-version '.*[/]V_([0-9.]+)[/].*' '\1'
diff --git a/pkgs/applications/science/logic/redprl/default.nix b/pkgs/applications/science/logic/redprl/default.nix
new file mode 100644
index 000000000000..1df3fa940f94
--- /dev/null
+++ b/pkgs/applications/science/logic/redprl/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, mlton }:
+stdenv.mkDerivation {
+  name = "redprl-2016-09-22";
+  src = fetchgit {
+    url = "https://github.com/RedPRL/sml-redprl.git";
+    rev = "3215faf0d494f4ac14d6e10172329a161df192c4";
+    sha256 = "0pcq4q9xy34j7ziwbly4qxccpkcrl92r9y11bv6hdkbzwm1g2a77";
+    fetchSubmodules = true;
+  };
+  buildInputs = [ mlton ];
+  builder = builtins.toFile "builder.sh" ''
+    source $stdenv/setup
+    mkdir -p $out/bin
+    cp -r $src/* .
+    chmod -R +w src
+    ./script/mlton.sh
+    mv ./bin/redprl $out/bin
+  '';
+  meta = {
+    description = "A proof assistant for Nominal Computational Type Theory";
+    homepage = "http://www.redprl.org/";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.acowley ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/ecm/default.nix b/pkgs/applications/science/math/ecm/default.nix
index 53b289983a4a..072d772775cd 100644
--- a/pkgs/applications/science/math/ecm/default.nix
+++ b/pkgs/applications/science/math/ecm/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.gpl2Plus;
     homepage = http://ecm.gforge.inria.fr/;
     maintainers = [ stdenv.lib.maintainers.roconnor ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index ff21271956b3..98999e93db72 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "hub-${version}";
-  version = "2.2.5";
+  version = "2.2.8";
 
   src = fetchgit {
     url = https://github.com/github/hub.git;
     rev = "refs/tags/v${version}";
-    sha256 = "13pab3r2ngac2kljy9jb4lz3g3d6smkwydlx23ydjvyjbg2zb75r";
+    sha256 = "1fv4jb9vsbkscnb79gss2mwnd1yf9jhgzw1mhimhx25xizbx1fck";
   };
 
 
@@ -30,9 +30,8 @@ stdenv.mkDerivation rec {
     mkdir -p "$out/share/zsh/site-functions"
     cp "etc/hub.zsh_completion" "$out/share/zsh/site-functions/_hub"
 
-# Broken: https://github.com/github/hub/issues/592
-#    mkdir -p "$out/etc/bash_completion.d"
-#    cp "etc/hub.bash_completion.sh" "$out/etc/bash_completion.d/"
+    mkdir -p "$out/etc/bash_completion.d"
+    cp "etc/hub.bash_completion.sh" "$out/etc/bash_completion.d/"
 
 # Should we also install provided git-hooks?
 # ?
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index d3f5f39dde04..13385209019f 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -4,7 +4,7 @@
 
 let
   # if you bump version, update pkgs.tortoisehg too or ping maintainer
-  version = "3.8.2";
+  version = "3.9.1";
   name = "mercurial-${version}";
   inherit (pythonPackages) curses docutils hg-git dulwich python;
 in
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/${name}.tar.gz";
-    sha256 = "1zdz42znd6i7c3nf31j0k6frcs68qyniyvcad8k2a1hlarlv2y6b";
+    sha256 = "0x6zjl8za6nnlbmyxng4pfrr2h77zi3wbg985262ghjyx33lypk2";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index 99d0c2df543f..754b7df5153f 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
     name = "tortoisehg-${version}";
-    version = "3.8.1";
+    version = "3.9.1";
 
     src = fetchurl {
       url = "https://bitbucket.org/tortoisehg/targz/downloads/${name}.tar.gz";
-      sha256 = "1v5h5yz9b360ris9p8zsdjxqvaflp9z2b6b7dfb4abn2irv3jip6";
+      sha256 = "12bqvkkwkb6m5hls7gipkxbnspfrk1k6l9l0fff0wp1zajnp4pnn";
     };
 
     pythonPath = with pythonPackages; [ pyqt4 mercurial qscintilla iniparse ];
diff --git a/pkgs/applications/version-management/vcsh/default.nix b/pkgs/applications/version-management/vcsh/default.nix
index af8496688755..4f87f4b569c7 100644
--- a/pkgs/applications/version-management/vcsh/default.nix
+++ b/pkgs/applications/version-management/vcsh/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "1.20141026-1";
+  version = "1.20151229-1";
   name = "vcsh-${version}";
 
   src = fetchurl {
     url = "https://github.com/RichiH/vcsh/archive/v${version}.tar.gz";
-    sha256 = "1wgrmkygsbmk8zj88kjx9aim2fc44hh2d1a83h4mn2j714pffh33";
+    sha256 = "0wgg5zz11ql2v37vby5gbqvnbs80g1q83b9qbvm8d2pqx8bsb0kn";
   };
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 22072ca742c1..0d02377b7140 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -22,11 +22,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];
 
   buildInputs = [
-    expat
-    file xdg_utils boost libebml zlib
-    libmatroska libogg libvorbis flac
-    (optional withGUI qt5.qtbase)
-  ];
+    expat file xdg_utils boost libebml zlib libmatroska libogg
+    libvorbis flac
+  ] ++ optional withGUI qt5.qtbase;
 
   preConfigure = "./autogen.sh; patchShebangs .";
   buildPhase   = "./drake -j $NIX_BUILD_CORES";
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
new file mode 100644
index 000000000000..cca1ed34f6dc
--- /dev/null
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump }:
+
+pythonPackages.buildPythonApplication rec {
+  version = "1.14.0-rc1";
+  name = "streamlink-${version}";
+
+  src = fetchFromGitHub {
+    owner = "streamlink";
+    repo = "streamlink";
+    rev = "ffc099b16b9a9d2c0c44081d687c50ee2e935f29";
+    sha256 = "0ix2k2yd2jzcazkjjb0iczr4bv7pgx873k7bhxgb9zwplklxpw1k";
+  };
+
+  propagatedBuildInputs = (with pythonPackages; [ pycrypto requests2 ]) ++ [ rtmpdump ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/streamlink/streamlink;
+    description = "CLI for extracting streams from various websites to video player of your choosing";
+    longDescription = ''
+      Streamlink is a CLI utility that pipes flash videos from online
+      streaming services to a variety of video players such as VLC, or
+      alternatively, a browser.
+
+      Streamlink is a fork of the livestreamer project.
+    '';
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.dezgeg ];
+  };
+}
diff --git a/pkgs/applications/virtualization/rkt/default.nix b/pkgs/applications/virtualization/rkt/default.nix
index d41002d30dcb..6a53ad32b39f 100644
--- a/pkgs/applications/virtualization/rkt/default.nix
+++ b/pkgs/applications/virtualization/rkt/default.nix
@@ -12,15 +12,15 @@ let
   stage1Dir = "lib/rkt/stage1-images";
 
 in stdenv.mkDerivation rec {
-  version = "1.14.0";
+  version = "1.15.0";
   name = "rkt-${version}";
   BUILDDIR="build-${name}";
 
   src = fetchFromGitHub {
-      rev = "v${version}";
       owner = "coreos";
       repo = "rkt";
-      sha256 = "0wniknmsv6xml3cp6ggjlqvcpwhp4bw1dqdnbm561mchvm69zhc2";
+      rev = "v${version}";
+      sha256 = "0ppi6r3wr69s6ka1j9xljvq3rw2chp8syyvqcx6ijnzjbwgbwar3";
   };
 
   stage1BaseImage = fetchurl {
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index baf18c3f66f4..ef834897022d 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -9,6 +9,7 @@
 , pulseSupport ? false, libpulseaudio ? null
 , enableHardening ? false
 , headless ? false
+, patchelfUnstable # needed until 0.10 is released
 }:
 
 with stdenv.lib;
@@ -48,7 +49,7 @@ in stdenv.mkDerivation {
   buildInputs =
     [ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor libIDL
       libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
-      pkgconfig which libXmu libpng ]
+      pkgconfig which libXmu libpng patchelfUnstable ]
     ++ optional javaBindings jdk
     ++ optional pythonBindings python
     ++ optional pulseSupport libpulseaudio
@@ -181,9 +182,6 @@ in stdenv.mkDerivation {
 
   passthru = { inherit version; /* for guest additions */ };
 
-  # Workaround for https://github.com/NixOS/patchelf/issues/93 (can be removed once this issue is addressed)
-  dontPatchELF = true;
-
   meta = {
     description = "PC emulator";
     homepage = http://www.virtualbox.org/;
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index c32a34fbc127..30b4f782e167 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -139,5 +139,6 @@ stdenv.mkDerivation {
     license = "GPL";
     maintainers = [ lib.maintainers.sander ];
     platforms = lib.platforms.linux;
+    broken = kernel.features.grsecurity or false;
   };
 }
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index 483c815db01b..dd781143d862 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -2,13 +2,14 @@
 , xcbutilimage, pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
 
 stdenv.mkDerivation rec {
-  rev = "63a4c23ec6f0b3f62144122a4277d51caf023e4f";
-  name = "i3lock-color-2.7_rev${builtins.substring 0 7 rev}";
+  rev = "c8e1aece7301c3c6481bf2f695734f8d273f252e";
+  version = "2.7-2016-09-17";
+  name = "i3lock-color-${version}";
   src = fetchFromGitHub {
-    owner = "Arcaena";
+    owner = "chrjguill";
     repo = "i3lock-color";
     inherit rev;
-    sha256 = "1wfp0p85h45l50l6zfk5cr9ynka60vhjlgnyk8mqd5fp0w4ibxip";
+    sha256 = "07fpvwgdfxsnxnf63idrz3n1kbyayr53lsfns2q775q93cz1mfia";
   };
   buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11
     libev cairo libxkbcommon libxkbfile ];
diff --git a/pkgs/build-support/fetchurl/boot.nix b/pkgs/build-support/fetchurl/boot.nix
index c007281e87b0..722fd2566ef3 100644
--- a/pkgs/build-support/fetchurl/boot.nix
+++ b/pkgs/build-support/fetchurl/boot.nix
@@ -16,5 +16,4 @@ import <nix/fetchurl.nix> {
     let m = builtins.match "mirror://([a-z]+)/(.*)" url; in
     if m == null then url
     else builtins.head (mirrors.${builtins.elemAt m 0}) + (builtins.elemAt m 1);
-
 }
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 07ea6f6e76b6..245d0bebb45d 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -1886,22 +1886,22 @@ rec {
     };
 
     debian8i386 = {
-      name = "debian-8.5-jessie-i386";
-      fullName = "Debian 8.5 Jessie (i386)";
+      name = "debian-8.6-jessie-i386";
+      fullName = "Debian 8.6 Jessie (i386)";
       packagesList = fetchurl {
         url = mirror://debian/dists/jessie/main/binary-i386/Packages.xz;
-        sha256 = "f87a1ee673b335c28cb6ac87be61d6ef20f32dd847835c2bb7d400a00a464c7f";
+        sha256 = "b915c936233609af3ecf9272cd53fbdb2144d463e8472a30507aa112ef5e6a6b";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
 
     debian8x86_64 = {
-      name = "debian-8.5-jessie-amd64";
-      fullName = "Debian 8.5 Jessie (amd64)";
+      name = "debian-8.6-jessie-amd64";
+      fullName = "Debian 8.6 Jessie (amd64)";
       packagesList = fetchurl {
         url = mirror://debian/dists/jessie/main/binary-amd64/Packages.xz;
-        sha256 = "df6aea15d5547ae8dc6d7ceadc8bf6499bc5a3907d13231f811bf3c1c22474ef";
+        sha256 = "8b80b6608a8fc72509b949efe1730077f0e8383b29c6aed5f86d9f9b51a631d8";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
diff --git a/pkgs/data/fonts/google-fonts/default.nix b/pkgs/data/fonts/google-fonts/default.nix
index 0e41cd4e6b71..62e99079d177 100644
--- a/pkgs/data/fonts/google-fonts/default.nix
+++ b/pkgs/data/fonts/google-fonts/default.nix
@@ -1,15 +1,34 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "google-fonts";
-  version = "2015-11-18";
+  name = "google-fonts-${version}";
+  version = "2016-08-30";
 
-  src = fetchurl {
-    url = "https://github.com/google/fonts/archive/a26bc2b9f4ad27266c2587dc0355b3066519844a.tar.gz";
-    sha256 = "1aizwzsxg30mjds1628280bs7ishgsfairnx131654gm51aihw8p";
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fonts";
+    rev = "7a4070f65f2ca85ffdf2d465ff5e095005bae197";
+    sha256 = "0c20vcsd0jki8drrim68z2ca0cxli4wyh1i1gyg4iyac0a0v8wx3";
   };
 
-  phases = [ "unpackPhase" "installPhase" ];
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "13n2icpdp1z7i14rnfwkjdydhbjgdvyl1crd71hfy6l1j2p3kzyf";
+
+  phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+  patchPhase = ''
+    # These directories need to be removed because they contain
+    # older or duplicate versions of fonts also present in other
+    # directories. This causes non-determinism in the install since
+    # the installation order of font files with the same name is not
+    # fixed.
+    rm -rv ofl/alefhebrew \
+      ofl/misssaintdelafield \
+      ofl/mrbedford \
+      ofl/siamreap \
+      ofl/terminaldosislight
+  '';
 
   installPhase = ''
     dest=$out/share/fonts/truetype
@@ -18,10 +37,6 @@ stdenv.mkDerivation rec {
     chmod -x $dest/*.ttf
   '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0q03gg0sh2mljlbmhamnxz28d13znh9dzca84p554s7pwg6z4wca";
-
   meta = with stdenv.lib; {
     homepage = https://www.google.com/fontsl;
     description = "Font files available from Google Font";
diff --git a/pkgs/data/fonts/lato/default.nix b/pkgs/data/fonts/lato/default.nix
new file mode 100644
index 000000000000..8d1111090aab
--- /dev/null
+++ b/pkgs/data/fonts/lato/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "lato-2.0";
+
+  src = fetchurl {
+    url = http://www.latofonts.com/download/Lato2OFL.zip;
+    sha256 = "1f5540g0ja1nx3ddd3ywn77xc81ssrxpq8n3gyb9sabyq2b4xda2";
+  };
+
+  sourceRoot = "Lato2OFL";
+
+  buildInputs = [ unzip ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/lato
+    cp *.ttf $out/share/fonts/lato
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.latofonts.com/;
+
+    description = ''
+      Sans-serif typeface family designed in Summer 2010 by Łukasz Dziedzic
+    '';
+
+    longDescription = ''
+      Lato is a sans-serif typeface family designed in the Summer 2010 by
+      Warsaw-based designer Łukasz Dziedzic ("Lato" means "Summer" in Polish).
+      In December 2010 the Lato family was published under the open-source Open
+      Font License by his foundry tyPoland, with support from Google.
+
+      In 2013-2014, the family was greatly extended to cover 3000+ glyphs per
+      style. The Lato 2.010 family now supports 100+ Latin-based languages, 50+
+      Cyrillic-based languages as well as Greek and IPA phonetics. In the
+      process, the metrics and kerning of the family have been revised and four
+      additional weights were created.
+    '';
+
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ chris-martin ];
+  };
+}
diff --git a/pkgs/development/compilers/as31/default.nix b/pkgs/development/compilers/as31/default.nix
index 4db3b1b5a8de..fa34b3afe51b 100644
--- a/pkgs/development/compilers/as31/default.nix
+++ b/pkgs/development/compilers/as31/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, yacc }:
+{ stdenv, fetchpatch, fetchurl, yacc }:
 
 let
 
@@ -14,6 +14,15 @@ in stdenv.mkDerivation {
 
   buildInputs = [ yacc ];
 
+  patches = [
+    # CVE-2012-0808
+    (fetchpatch {
+       name = "as31-mkstemps.patch";
+       url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=655496;filename=as31-mkstemps.patch;msg=5";
+       sha256 = "0iia4wa8m141bwz4588yxb1dp2qwhapcii382sncm6jvwyngwh21";
+     })
+  ];
+
   preConfigure = ''
     chmod +x ./configure
   '';
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
index d8b0598e2783..ff772864e625 100644
--- a/pkgs/development/compilers/ghdl/default.nix
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -1,16 +1,28 @@
-{ stdenv, fetchurl, gnat, zlib }:
+{ stdenv, fetchFromGitHub, gnat, zlib, llvm_35, ncurses, clang, flavour ? "mcode" }:
+
+# mcode only works on x86, while the llvm flavour works on both x86 and x86_64.
+
+
+assert flavour == "llvm" || flavour == "mcode";
+
 let
+  inherit (stdenv.lib) optional;
+  inherit (stdenv.lib) optionals;
   version = "0.33";
 in
 stdenv.mkDerivation rec {
-  name = "ghdl-mcode-${version}";
+  name = "ghdl-${flavour}-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/tgingold/ghdl/archive/v${version}.tar.gz";
-    sha256 = "09yvgqyglbakd74v2dgr470clzm744i232nixyffcds55vkij5da";
+  src = fetchFromGitHub {
+    owner = "tgingold";
+    repo = "ghdl";
+    rev = "v${version}";
+    sha256 = "0g72rk2yzr0lrpncq2c1qcv71w3mi2hjq84r1yzgjr6d0qm87r2a";
   };
 
-  buildInputs = [ gnat zlib ];
+  buildInputs = [ gnat zlib ] ++ optionals (flavour == "llvm") [ clang ncurses ];
+
+  configureFlags = optional (flavour == "llvm") "--with-llvm=${llvm_35}";
 
   patchPhase = ''
     # Disable warnings-as-errors, because there are warnings (unused things)
@@ -23,11 +35,10 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://sourceforge.net/p/ghdl-updates/wiki/Home/";
-    description = "Free VHDL simulator, mcode flavour";
+    description = "Free VHDL simulator";
     maintainers = with stdenv.lib.maintainers; [viric];
-    # I think that mcode can only generate x86 code,
-    # so it fails to link pieces on x86_64.
-    platforms = with stdenv.lib.platforms; [ "i686-linux" ];
+    platforms = with stdenv.lib.platforms; (if flavour == "llvm" then [ "i686-linux" "x86_64-linux" ]
+      else [ "i686-linux" ]);
     license = stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/compilers/mlton/default.nix b/pkgs/development/compilers/mlton/default.nix
index 2a72387028d2..9c5ce109b86b 100644
--- a/pkgs/development/compilers/mlton/default.nix
+++ b/pkgs/development/compilers/mlton/default.nix
@@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
     done
 
     substituteInPlace $(pwd)/../${usr_prefix}/bin/mlton --replace '/${usr_prefix}/lib/mlton' $(pwd)/../${usr_prefix}/lib/mlton
+  '' + stdenv.lib.optionalString stdenv.cc.isClang ''
+    sed -i "s_	patch -s -p0 <gdtoa.hide-public-fns.patch_	patch -s -p0 <gdtoa.hide-public-fns.patch\n\tsed -i 's|printf(emptyfmt|printf(\"\"|g' ./gdtoa/arithchk.c_" ./runtime/Makefile
   '';
 
   preBuild = ''
diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix
index 1d323ec0cba6..aa6cf68d2c96 100644
--- a/pkgs/development/compilers/ocaml/4.01.0.nix
+++ b/pkgs/development/compilers/ocaml/4.01.0.nix
@@ -1,82 +1,7 @@
-let
-  safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
-in
-
-{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
-
-if useX11 && !(safeX11 stdenv)
-  then throw "x11 not available in ocaml with arm or mips arch"
-  else # let the indentation flow
-
-let
-   useNativeCompilers = !stdenv.isMips;
-   inherit (stdenv.lib) optionals optionalString;
-in
-
-stdenv.mkDerivation rec {
-
-  x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
-  x11lib = x11env + "/lib";
-  x11inc = x11env + "/include";
-
-  name = "ocaml-4.01.0";
-
-  src = fetchurl {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.01/${name}.tar.bz2";
-    sha256 = "b1ca708994180236917ae79e17606da5bd334ca6acd6873a550027e1c0ec874a";
-  };
-
+import ./generic.nix rec {
+  major_version = "4";
+  minor_version = "01";
+  patch_version = "0";
   patches = [ ./fix-clang-build-on-osx.diff ];
-
-  prefixKey = "-prefix ";
-  configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11lib
-                                                    "-x11include" x11inc ];
-
-  buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
-  buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
-  installTargets = "install" + optionalString useNativeCompilers " installopt";
-  preConfigure = ''
-    CAT=$(type -tp cat)
-    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-  '';
-  postBuild = ''
-    mkdir -p $out/include
-    ln -sv $out/lib/ocaml/caml $out/include/caml
-  '';
-
-  passthru = {
-    nativeCompilers = useNativeCompilers;
-  };
-
-  meta = with stdenv.lib; {
-    homepage = http://caml.inria.fr/ocaml;
-    branch = "4.01";
-    license = with licenses; [
-      qpl /* compiler */
-      lgpl2 /* library */
-    ];
-    description = "Most popular variant of the Caml language";
-
-    longDescription =
-      ''
-        OCaml is the most popular variant of the Caml language.  From a
-        language standpoint, it extends the core Caml language with a
-        fully-fledged object-oriented layer, as well as a powerful module
-        system, all connected by a sound, polymorphic type system featuring
-        type inference.
-
-        The OCaml system is an industrial-strength implementation of this
-        language, featuring a high-performance native-code compiler (ocamlopt)
-        for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
-        Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
-        and an interactive read-eval-print loop (ocaml) for quick development
-        and portability.  The OCaml distribution includes a comprehensive
-        standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
-        parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
-        and a documentation generator (ocamldoc).
-      '';
-
-    platforms = with platforms; linux ++ darwin;
-  };
-
+  sha256 = "03d7ida94s1gpr3gadf4jyhmh5rrszd5s4m4z59daaib25rvfyv7";
 }
diff --git a/pkgs/development/compilers/ocaml/4.02.nix b/pkgs/development/compilers/ocaml/4.02.nix
index 91b543151e33..9ac53f567909 100644
--- a/pkgs/development/compilers/ocaml/4.02.nix
+++ b/pkgs/development/compilers/ocaml/4.02.nix
@@ -1,80 +1,7 @@
-let
-  safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
-in
-
-{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
-
-assert useX11 -> !stdenv.isArm && !stdenv.isMips;
-
-let
-   useNativeCompilers = !stdenv.isMips;
-   inherit (stdenv.lib) optionals optionalString;
-in
-
-stdenv.mkDerivation rec {
-
-  x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
-  x11lib = x11env + "/lib";
-  x11inc = x11env + "/include";
-
-  name = "ocaml-4.02.3";
-
-  src = fetchurl {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.02/${name}.tar.xz";
-    sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
-  };
-
+import ./generic.nix rec {
+  major_version = "4";
+  minor_version = "02";
+  patch_version = "3";
   patches = [ ./ocamlbuild.patch ];
-
-  prefixKey = "-prefix ";
-  configureFlags = optionals useX11 [ "-x11lib" x11lib
-                                      "-x11include" x11inc ];
-
-  buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
-  buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
-  installTargets = "install" + optionalString useNativeCompilers " installopt";
-  preConfigure = ''
-    CAT=$(type -tp cat)
-    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
-  '';
-  postBuild = ''
-    mkdir -p $out/include
-    ln -sv $out/lib/ocaml/caml $out/include/caml
-  '';
-
-  passthru = {
-    nativeCompilers = useNativeCompilers;
-  };
-
-  meta = with stdenv.lib; {
-    homepage = http://caml.inria.fr/ocaml;
-    branch = "4.02";
-    license = with licenses; [
-      qpl /* compiler */
-      lgpl2 /* library */
-    ];
-    description = "Most popular variant of the Caml language";
-
-    longDescription =
-      ''
-        OCaml is the most popular variant of the Caml language.  From a
-        language standpoint, it extends the core Caml language with a
-        fully-fledged object-oriented layer, as well as a powerful module
-        system, all connected by a sound, polymorphic type system featuring
-        type inference.
-
-        The OCaml system is an industrial-strength implementation of this
-        language, featuring a high-performance native-code compiler (ocamlopt)
-        for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
-        Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
-        and an interactive read-eval-print loop (ocaml) for quick development
-        and portability.  The OCaml distribution includes a comprehensive
-        standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
-        parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
-        and a documentation generator (ocamldoc).
-      '';
-
-    platforms = with platforms; linux ++ darwin;
-  };
-
+  sha256 = "1qwwvy8nzd87hk8rd9sm667nppakiapnx4ypdwcrlnav2dz6kil3";
 }
diff --git a/pkgs/development/compilers/ocaml/4.03.nix b/pkgs/development/compilers/ocaml/4.03.nix
new file mode 100644
index 000000000000..c9536c487d05
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/4.03.nix
@@ -0,0 +1,6 @@
+import ./generic.nix rec {
+  major_version = "4";
+  minor_version = "03";
+  patch_version = "0";
+  sha256 = "09p3iwwi55r6rbrpyp8f0wmkb0ppcgw67yxw6yfky60524wayp39";
+}
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix
new file mode 100644
index 000000000000..f75d6384b905
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/generic.nix
@@ -0,0 +1,89 @@
+{ minor_version, major_version, patch_version
+, url ? null
+, sha256, ...}@args:
+let
+  versionNoPatch = "${toString major_version}.${toString minor_version}";
+  version = "${versionNoPatch}.${toString patch_version}";
+  real_url = if url == null then
+    "http://caml.inria.fr/pub/distrib/ocaml-${versionNoPatch}/ocaml-${version}.tar.xz"
+  else url;
+  safeX11 = stdenv: !(stdenv.isArm || stdenv.isMips);
+in
+
+{ stdenv, fetchurl, ncurses, buildEnv, libX11, xproto, useX11 ? safeX11 stdenv }:
+
+assert useX11 -> !stdenv.isArm && !stdenv.isMips;
+
+let
+   useNativeCompilers = !stdenv.isMips;
+   inherit (stdenv.lib) optionals optionalString;
+   name = "ocaml-${version}";
+in
+
+stdenv.mkDerivation (args // rec {
+
+  x11env = buildEnv { name = "x11env"; paths = [libX11 xproto]; };
+  x11lib = x11env + "/lib";
+  x11inc = x11env + "/include";
+
+  inherit name;
+
+  src = fetchurl {
+    url = real_url;
+    inherit sha256;
+  };
+
+  prefixKey = "-prefix ";
+  configureFlags = optionals useX11 [ "-x11lib" x11lib
+                                      "-x11include" x11inc ];
+
+  buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
+  buildInputs = [ncurses] ++ optionals useX11 [ libX11 xproto ];
+  installTargets = "install" + optionalString useNativeCompilers " installopt";
+  preConfigure = ''
+    CAT=$(type -tp cat)
+    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
+  '';
+  postBuild = ''
+    mkdir -p $out/include
+    ln -sv $out/lib/ocaml/caml $out/include/caml
+  '';
+
+  passthru = {
+    nativeCompilers = useNativeCompilers;
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://caml.inria.fr/ocaml;
+    branch = "4.03";
+    license = with licenses; [
+      qpl /* compiler */
+      lgpl2 /* library */
+    ];
+    description = "Most popular variant of the Caml language";
+
+    longDescription =
+      ''
+        OCaml is the most popular variant of the Caml language.  From a
+        language standpoint, it extends the core Caml language with a
+        fully-fledged object-oriented layer, as well as a powerful module
+        system, all connected by a sound, polymorphic type system featuring
+        type inference.
+
+        The OCaml system is an industrial-strength implementation of this
+        language, featuring a high-performance native-code compiler (ocamlopt)
+        for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
+        Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
+        and an interactive read-eval-print loop (ocaml) for quick development
+        and portability.  The OCaml distribution includes a comprehensive
+        standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
+        parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
+        and a documentation generator (ocamldoc).
+      '';
+
+    platforms = with platforms; linux ++ darwin;
+  };
+
+})
+
+
diff --git a/pkgs/development/compilers/openjdk/7.nix b/pkgs/development/compilers/openjdk/7.nix
index e6186bc8f13c..6dcbb0a330f1 100644
--- a/pkgs/development/compilers/openjdk/7.nix
+++ b/pkgs/development/compilers/openjdk/7.nix
@@ -17,7 +17,7 @@ let
     else
       throw "openjdk requires i686-linux or x86_64 linux";
 
-  update = "91";
+  update = "111";
 
   build = "01";
 
@@ -28,31 +28,31 @@ let
   repover = "jdk7u${update}-b${build}";
   jdk7 = fetchurl {
     url = "${baseurl}/archive/${repover}.tar.gz";
-    sha256 = "08f7cbayyrryim3xbrs12cr12i1mczcikyc9rdlsyih0r4xvll28";
+    sha256 = "0wgb7hr2gipx1jg28fnsjh7xa744sh1mgr6z3xivmnsfy3dm91gi";
   };
   langtools = fetchurl {
     url = "${baseurl}/langtools/archive/${repover}.tar.gz";
-    sha256 = "0rmlzrgsacn60blpg1sp30k6p0sgzsml8wb41yc998km1bsnjxnh";
+    sha256 = "0x1xs923h6sma02cbp1whg735x8vcndh5k01b7rkf714g6rxwa0y";
   };
   hotspot = fetchurl {
     url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
-    sha256 = "1w1n81y9jcvjzssl4049yzfc0gdfnh73ki6wg1d8pg22zlyhrrwv";
+    sha256 = "187apnsvnd4cfa7ss5g59dbh7x5ah8f1lwa2wvjfv055h2cmphpn";
   };
   corba = fetchurl {
     url = "${baseurl}/corba/archive/${repover}.tar.gz";
-    sha256 = "086yr927bxnlgljx7mw2cg6f6aip57hi4qpn1h35n6fsyvb4n67h";
+    sha256 = "0vmxf5sgjcmkm7i1scanaa2x75a1byj8b36vcajlr6j7qmdx6r8c";
   };
   jdk = fetchurl {
     url = "${baseurl}/jdk/archive/${repover}.tar.gz";
-    sha256 = "14r39ylj3qa63arpqxl0h84baah1kjgnyp3v9d7d4vd0yagpn66b";
+    sha256 = "1f8f2dgrjhx8aw1gzawrf8qggf5j0dygsla08bbsxhx5mc5a6cka";
   };
   jaxws = fetchurl {
     url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
-    sha256 = "1p1739gb5gx9m4sm3i4javfk9lk41wnz92k6gis6sq99dd1bj1l5";
+    sha256 = "03982ajxm0hzany1jg009ym84vryx7a8qfi6wcgjxyxvk8vnz37c";
   };
   jaxp = fetchurl {
     url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
-    sha256 = "1nl3kmbwqhhymcp25rnmf5mr3dn87lgdxvz9wgng7if6yqxlyakq";
+    sha256 = "0578h04y1ha60yjplsa8lqdjds9s2lxzgs9ybm9rs1rqzxmm0xmy";
   };
   openjdk = stdenv.mkDerivation rec {
     name = "openjdk-7u${update}b${build}";
diff --git a/pkgs/development/interpreters/erlang/R19.nix b/pkgs/development/interpreters/erlang/R19.nix
index 1cd68221fa70..ddeccb29b59d 100644
--- a/pkgs/development/interpreters/erlang/R19.nix
+++ b/pkgs/development/interpreters/erlang/R19.nix
@@ -20,7 +20,7 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "erlang-" + version + "${optionalString odbcSupport "-odbc"}"
   + "${optionalString javacSupport "-javac"}";
-  version = "19.0.2";
+  version = "19.1";
 
   # Minor OTP releases are not always released as tarbals at
   # http://erlang.org/download/ So we have to download from
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "erlang";
     repo = "otp";
     rev = "OTP-${version}";
-    sha256 = "1vsykghhzpgmc42jwj48crl11zzzpvrqvh2lk8lxfqbflzflxm6j";
+    sha256 = "0nnjj069d5pjhgcd8vvqbrkjdac3p1v4s3zb59i4h73vg7f5p736";
   };
 
   buildInputs =
@@ -42,15 +42,6 @@ stdenv.mkDerivation rec {
 
   debugInfo = enableDebugInfo;
 
-  envAndCpPatch = fetchurl {
-     url = "https://github.com/binarin/otp/commit/9f9841eb7327c9fe73e84e197fd2965a97b639cf.patch";
-     sha256 = "10h5348p6g279b4q01i5jdqlljww5chcvrx5b4b0dv79pk0p0m9f";
-  };
-
-  patches = [
-    envAndCpPatch
-  ];
-
   preConfigure = ''
     ./otp_build autoconf
   '';
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 811b1a3817c3..7b816b49db53 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -300,8 +300,8 @@ let
 
 in {
   php56 = generic {
-    version = "5.6.25";
-    sha256 = "1pldn4z7pzcjm8li9xryrniz5cz542cbv4nlrr13wzzdmhr61kjq";
+    version = "5.6.26";
+    sha256 = "0dk2ifn50iv8jvw2jyw2pr9xqnkksxfv9qbpay84na54hf0anynl";
   };
 
   php70 = generic {
diff --git a/pkgs/development/libraries/appstream-glib/default.nix b/pkgs/development/libraries/appstream-glib/default.nix
index 8450def08452..caaa826ae67d 100644
--- a/pkgs/development/libraries/appstream-glib/default.nix
+++ b/pkgs/development/libraries/appstream-glib/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchFromGitHub, pkgconfig, gettext, gtk3, intltool, glib
 , gtk_doc, autoconf, automake, libtool, libarchive, libyaml
 , gobjectIntrospection, sqlite, libsoup, gcab, attr, acl, docbook_xsl
-, libuuid, json_glib
+, libuuid, json_glib, autoconf-archive
 }:
 
 stdenv.mkDerivation rec {
-  name = "appstream-glib-0.5.12";
+  name = "appstream-glib-0.6.3";
 
   src = fetchFromGitHub {
     owner = "hughsie";
     repo = "appstream-glib";
     rev = stdenv.lib.replaceStrings ["." "-"] ["_" "_"] name;
-    sha256 = "00b0441f409vzgy0znn42k093w7hwv3495qvsakxnhvk1h1ws23s";
+    sha256 = "12l0vzhi9vpyrnf7vrpq21rb26mb6yskp5zgngdjyjanwhzmc617";
   };
 
-  nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool ];
+  nativeBuildInputs = [ autoconf automake libtool pkgconfig intltool autoconf-archive ];
   buildInputs = [ glib gtk_doc gettext sqlite libsoup
                   gcab attr acl docbook_xsl libuuid json_glib
                   libarchive libyaml gtk3 gobjectIntrospection ];
diff --git a/pkgs/development/libraries/botan/unstable.nix b/pkgs/development/libraries/botan/unstable.nix
index 4e004da32175..170e7a757490 100644
--- a/pkgs/development/libraries/botan/unstable.nix
+++ b/pkgs/development/libraries/botan/unstable.nix
@@ -2,8 +2,8 @@
 
 callPackage ./generic.nix (args // {
   baseVersion = "1.11";
-  revision = "30";
-  sha256 = "09d1cvg6dnfi225wipc1fw691bq7xxdcmgkq8smldc5kivf3mbwd";
+  revision = "31";
+  sha256 = "1vnx75g5zzzbgsrwnmnhqdal29gcn63g0ldyj0g9cky8ha8iqx8f";
   openssl = null;
   postPatch = "sed '1i#include <cmath>' -i src/tests/test_bigint.cpp";
 })
diff --git a/pkgs/development/libraries/ffmpeg/2.8.nix b/pkgs/development/libraries/ffmpeg/2.8.nix
index 63e6ec2f6952..04336c9ee4d3 100644
--- a/pkgs/development/libraries/ffmpeg/2.8.nix
+++ b/pkgs/development/libraries/ffmpeg/2.8.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
-  version = "${branch}.7";
+  version = "${branch}.8";
   branch = "2.8";
-  sha256 = "1rggcy8kflmlvdyf5yqv0zshycysyqz45fl06v8zsh2n6d5cwxw7";
+  sha256 = "19h6xmlcb933hgpfd40mjwkral8v389v25sx660a3p7aiyalh25p";
 })
diff --git a/pkgs/development/libraries/jansson/default.nix b/pkgs/development/libraries/jansson/default.nix
index f0f9cc65cb2b..a24005487bee 100644
--- a/pkgs/development/libraries/jansson/default.nix
+++ b/pkgs/development/libraries/jansson/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "jansson-2.7";
+  name = "jansson-2.8";
 
   src = fetchurl {
     url = "http://www.digip.org/jansson/releases/${name}.tar.gz";
-    sha256 = "1mvq9p85khsl818i4vbszyfab0fd45mdrwrxjkzw05mk1xcyc1br";
+    sha256 = "0v7v82mv7x44rpcxmrpnmb8hqimx67qwsp2cz9mv3y0f37iykwnf";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libxmlxx/default.nix b/pkgs/development/libraries/libxmlxx/default.nix
index 72afc1d55eb5..65e10c5a3995 100644
--- a/pkgs/development/libraries/libxmlxx/default.nix
+++ b/pkgs/development/libraries/libxmlxx/default.nix
@@ -1,11 +1,13 @@
 { stdenv, fetchurl, pkgconfig, libxml2, glibmm, perl }:
 
 stdenv.mkDerivation rec {
-  name = "libxml++-2.38.1";
+  name = "libxml++-${maj_ver}.${min_ver}";
+  maj_ver = "2.40";
+  min_ver = "1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libxml++/2.38/${name}.tar.xz";
-    sha256 = "0px0ljcf9rsfa092dzmm097yn7wln6d5fgsvj9lnrnq3kcc2j9c8";
+    url = "mirror://gnome/sources/libxml++/${maj_ver}/${name}.tar.xz";
+    sha256 = "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a";
   };
 
   nativeBuildInputs = [ pkgconfig perl ];
@@ -14,8 +16,6 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libxml2 ];
 
-  configureFlags = "--disable-documentation"; #doesn't build without this for some reason
-
   meta = with stdenv.lib; {
     homepage = http://libxmlplusplus.sourceforge.net/;
     description = "C++ wrapper for the libxml2 XML parser library";
diff --git a/pkgs/development/libraries/mesa/symlink-drivers.patch b/pkgs/development/libraries/mesa/symlink-drivers.patch
index b96e8e0b816e..68c0f1da26b6 100644
--- a/pkgs/development/libraries/mesa/symlink-drivers.patch
+++ b/pkgs/development/libraries/mesa/symlink-drivers.patch
@@ -1,7 +1,7 @@
-diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am mesa-11.1.4/src/gallium/targets/dri/Makefile.am
---- mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am	2016-05-09 14:20:52.000000000 +0200
-+++ mesa-11.1.4/src/gallium/targets/dri/Makefile.am	2016-05-22 17:56:03.396185082 +0200
-@@ -126,14 +126,13 @@
+diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am mesa-12.0.3/src/gallium/targets/dri/Makefile.am
+--- mesa-12.0.3-orig/src/gallium/targets/dri/Makefile.am	2016-09-08 18:57:48.000000000 +0200
++++ mesa-12.0.3/src/gallium/targets/dri/Makefile.am	2016-09-22 14:42:19.173575498 +0200
+@@ -134,14 +134,13 @@
  	done;
  endif
  
@@ -19,9 +19,25 @@ diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/dri/Makefile.am mesa-11.1.
  
  uninstall-hook:
  	for i in $(TARGET_DRIVERS); do                                  \
-diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am
---- mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am	2016-01-29 13:21:30.000000000 +0100
-+++ mesa-11.1.4/src/gallium/targets/vdpau/Makefile.am	2016-05-22 20:54:12.722358242 +0200
+diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am mesa-12.0.3/src/gallium/targets/va/Makefile.am
+--- mesa-12.0.3-orig/src/gallium/targets/va/Makefile.am	2016-09-08 18:57:48.000000000 +0200
++++ mesa-12.0.3/src/gallium/targets/va/Makefile.am	2016-09-22 14:45:39.635963339 +0200
+@@ -71,10 +71,10 @@
+ # gallium_drv_video.so in the set of final installed files.
+ install-data-hook:
+ 	for i in $(TARGET_DRIVERS); do                                  \
+-		ln -f $(DESTDIR)$(vadir)/gallium_drv_video.so                \
++		ln -srf $(DESTDIR)$(vadir)/gallium_drv_video.so                \
+ 		      $(DESTDIR)$(vadir)/$${i}_drv_video.so;                 \
+ 	done;                                                           \
+-	$(RM) $(DESTDIR)$(vadir)/gallium_drv_video.*
++	$(RM) $(DESTDIR)$(vadir)/gallium_drv_video.la
+ 
+ uninstall-hook:
+ 	for i in $(TARGET_DRIVERS); do                                  \
+diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am
+--- mesa-12.0.3-orig/src/gallium/targets/vdpau/Makefile.am	2016-05-24 21:19:37.000000000 +0200
++++ mesa-12.0.3/src/gallium/targets/vdpau/Makefile.am	2016-09-22 14:42:19.173575498 +0200
 @@ -103,15 +103,14 @@
  	done;
  endif
@@ -49,10 +65,31 @@ diff -ru -x '*~' mesa-11.1.4-orig/src/gallium/targets/vdpau/Makefile.am mesa-11.
  
  uninstall-hook:
  	for i in $(TARGET_DRIVERS); do					\
-diff -ru -x '*~' mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am mesa-11.1.4/src/mesa/drivers/dri/Makefile.am
---- mesa-11.1.4-orig/src/mesa/drivers/dri/Makefile.am	2016-01-18 08:39:26.000000000 +0100
-+++ mesa-11.1.4/src/mesa/drivers/dri/Makefile.am	2016-05-22 17:55:46.251244940 +0200
-@@ -86,14 +86,13 @@
+diff -ru -x '*~' mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am
+--- mesa-12.0.3-orig/src/gallium/targets/xvmc/Makefile.am	2016-05-24 21:19:37.000000000 +0200
++++ mesa-12.0.3/src/gallium/targets/xvmc/Makefile.am	2016-09-22 14:54:22.291014543 +0200
+@@ -73,7 +73,7 @@
+ 		j=libXvMCgallium.$(LIB_EXT);				\
+ 		k=libXvMC$${i}.$(LIB_EXT);				\
+ 		l=$${k}.$(XVMC_MAJOR).$(XVMC_MINOR).0;			\
+-		ln -f $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0	\
++		ln -srf $${dest_dir}/$${j}.$(XVMC_MAJOR).$(XVMC_MINOR).0	\
+ 		      $${dest_dir}/$${l};				\
+ 		ln -sf $${l}						\
+ 		       $${dest_dir}/$${k}.$(XVMC_MAJOR).$(XVMC_MINOR);	\
+@@ -82,7 +82,7 @@
+ 		ln -sf $${l}						\
+ 		       $${dest_dir}/$${k};				\
+ 	done;								\
+-	$(RM) $${dest_dir}/libXvMCgallium.*
++	$(RM) $${dest_dir}/libXvMCgallium.la
+ 
+ uninstall-hook:
+ 	for i in $(TARGET_DRIVERS); do					\
+diff -ru -x '*~' mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am mesa-12.0.3/src/mesa/drivers/dri/Makefile.am
+--- mesa-12.0.3-orig/src/mesa/drivers/dri/Makefile.am	2016-09-08 18:57:48.000000000 +0200
++++ mesa-12.0.3/src/mesa/drivers/dri/Makefile.am	2016-09-22 14:42:19.173575498 +0200
+@@ -94,14 +94,13 @@
  	done;
  endif
  
diff --git a/pkgs/development/libraries/openssl/1.0.1-CVE-2016-2177.diff b/pkgs/development/libraries/openssl/1.0.1-CVE-2016-2177.diff
deleted file mode 100644
index f8a4b7c22573..000000000000
--- a/pkgs/development/libraries/openssl/1.0.1-CVE-2016-2177.diff
+++ /dev/null
@@ -1,256 +0,0 @@
-From 6f35f6deb5ca7daebe289f86477e061ce3ee5f46 Mon Sep 17 00:00:00 2001
-From: Matt Caswell <matt@openssl.org>
-Date: Thu, 5 May 2016 11:10:26 +0100
-Subject: [PATCH] Avoid some undefined pointer arithmetic
-
-A common idiom in the codebase is:
-
-if (p + len > limit)
-{
-    return; /* Too long */
-}
-
-Where "p" points to some malloc'd data of SIZE bytes and
-limit == p + SIZE
-
-"len" here could be from some externally supplied data (e.g. from a TLS
-message).
-
-The rules of C pointer arithmetic are such that "p + len" is only well
-defined where len <= SIZE. Therefore the above idiom is actually
-undefined behaviour.
-
-For example this could cause problems if some malloc implementation
-provides an address for "p" such that "p + len" actually overflows for
-values of len that are too big and therefore p + len < limit!
-
-Issue reported by Guido Vranken.
-
-CVE-2016-2177
-
-Reviewed-by: Rich Salz <rsalz@openssl.org>
----
- ssl/s3_srvr.c  | 14 +++++++-------
- ssl/ssl_sess.c |  2 +-
- ssl/t1_lib.c   | 48 ++++++++++++++++++++++++++----------------------
- 3 files changed, 34 insertions(+), 30 deletions(-)
-
-diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
-index 04cf93a..6c74caa 100644
---- a/ssl/s3_srvr.c
-+++ b/ssl/s3_srvr.c
-@@ -1040,7 +1040,7 @@ int ssl3_get_client_hello(SSL *s)
- 
-         session_length = *(p + SSL3_RANDOM_SIZE);
- 
--        if (p + SSL3_RANDOM_SIZE + session_length + 1 >= d + n) {
-+        if (SSL3_RANDOM_SIZE + session_length + 1 >= (d + n) - p) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-@@ -1058,7 +1058,7 @@ int ssl3_get_client_hello(SSL *s)
-     /* get the session-id */
-     j = *(p++);
- 
--    if (p + j > d + n) {
-+    if ((d + n) - p < j) {
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-         goto f_err;
-@@ -1114,14 +1114,14 @@ int ssl3_get_client_hello(SSL *s)
- 
-     if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) {
-         /* cookie stuff */
--        if (p + 1 > d + n) {
-+        if ((d + n) - p < 1) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-         }
-         cookie_len = *(p++);
- 
--        if (p + cookie_len > d + n) {
-+        if ((d + n ) - p < cookie_len) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-@@ -1166,7 +1166,7 @@ int ssl3_get_client_hello(SSL *s)
-         p += cookie_len;
-     }
- 
--    if (p + 2 > d + n) {
-+    if ((d + n ) - p < 2) {
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-         goto f_err;
-@@ -1180,7 +1180,7 @@ int ssl3_get_client_hello(SSL *s)
-     }
- 
-     /* i bytes of cipher data + 1 byte for compression length later */
--    if ((p + i + 1) > (d + n)) {
-+    if ((d + n) - p < i + 1) {
-         /* not enough data */
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
-@@ -1246,7 +1246,7 @@ int ssl3_get_client_hello(SSL *s)
- 
-     /* compression */
-     i = *(p++);
--    if ((p + i) > (d + n)) {
-+    if ((d + n) - p < i) {
-         /* not enough data */
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
-diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
-index 48fc451..a97d060 100644
---- a/ssl/ssl_sess.c
-+++ b/ssl/ssl_sess.c
-@@ -602,7 +602,7 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
-     int r;
- #endif
- 
--    if (session_id + len > limit) {
-+    if (limit - session_id < len) {
-         fatal = 1;
-         goto err;
-     }
-diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
-index 0bdb77d..8ed1793 100644
---- a/ssl/t1_lib.c
-+++ b/ssl/t1_lib.c
-@@ -942,11 +942,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-         0x02, 0x03,             /* SHA-1/ECDSA */
-     };
- 
--    if (data >= (limit - 2))
-+    if (limit - data <= 2)
-         return;
-     data += 2;
- 
--    if (data > (limit - 4))
-+    if (limit - data < 4)
-         return;
-     n2s(data, type);
-     n2s(data, size);
-@@ -954,7 +954,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-     if (type != TLSEXT_TYPE_server_name)
-         return;
- 
--    if (data + size > limit)
-+    if (limit - data < size)
-         return;
-     data += size;
- 
-@@ -962,7 +962,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-         const size_t len1 = sizeof(kSafariExtensionsBlock);
-         const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
- 
--        if (data + len1 + len2 != limit)
-+        if (limit - data != (int)(len1 + len2))
-             return;
-         if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
-             return;
-@@ -971,7 +971,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-     } else {
-         const size_t len = sizeof(kSafariExtensionsBlock);
- 
--        if (data + len != limit)
-+        if (limit - data != (int)(len))
-             return;
-         if (memcmp(data, kSafariExtensionsBlock, len) != 0)
-             return;
-@@ -1019,19 +1019,19 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned char **p,
-     if (data == limit)
-         goto ri_check;
- 
--    if (data > (limit - 2))
-+    if (limit - data < 2)
-         goto err;
- 
-     n2s(data, len);
- 
--    if (data + len != limit)
-+    if (limit - data != len)
-         goto err;
- 
--    while (data <= (limit - 4)) {
-+    while (limit - data >= 4) {
-         n2s(data, type);
-         n2s(data, size);
- 
--        if (data + size > (limit))
-+        if (limit - data < size)
-             goto err;
- # if 0
-         fprintf(stderr, "Received extension type %d size %d\n", type, size);
-@@ -1460,20 +1460,20 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **p, unsigned char *d,
-                              SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
- # endif
- 
--    if (data >= (d + n - 2))
-+    if ((d + n) - data <= 2)
-         goto ri_check;
- 
-     n2s(data, length);
--    if (data + length != d + n) {
-+    if ((d + n) - data != length) {
-         *al = SSL_AD_DECODE_ERROR;
-         return 0;
-     }
- 
--    while (data <= (d + n - 4)) {
-+    while ((d + n) - data >= 4) {
-         n2s(data, type);
-         n2s(data, size);
- 
--        if (data + size > (d + n))
-+        if ((d + n) - data < size)
-             goto ri_check;
- 
-         if (s->tlsext_debug_cb)
-@@ -2179,29 +2179,33 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len,
-     /* Skip past DTLS cookie */
-     if (s->version == DTLS1_VERSION || s->version == DTLS1_BAD_VER) {
-         i = *(p++);
--        p += i;
--        if (p >= limit)
-+
-+        if (limit - p <= i)
-             return -1;
-+
-+        p += i;
-     }
-     /* Skip past cipher list */
-     n2s(p, i);
--    p += i;
--    if (p >= limit)
-+    if (limit - p <= i)
-         return -1;
-+    p += i;
-+
-     /* Skip past compression algorithm list */
-     i = *(p++);
--    p += i;
--    if (p > limit)
-+    if (limit - p < i)
-         return -1;
-+    p += i;
-+
-     /* Now at start of extensions */
--    if ((p + 2) >= limit)
-+    if (limit - p <= 2)
-         return 0;
-     n2s(p, i);
--    while ((p + 4) <= limit) {
-+    while (limit - p >= 4) {
-         unsigned short type, size;
-         n2s(p, type);
-         n2s(p, size);
--        if (p + size > limit)
-+        if (limit - p < size)
-             return 0;
-         if (type == TLSEXT_TYPE_session_ticket) {
-             int r;
--- 
-1.9.1
-
diff --git a/pkgs/development/libraries/openssl/1.0.2-CVE-2016-2177.diff b/pkgs/development/libraries/openssl/1.0.2-CVE-2016-2177.diff
deleted file mode 100644
index ca934c20a674..000000000000
--- a/pkgs/development/libraries/openssl/1.0.2-CVE-2016-2177.diff
+++ /dev/null
@@ -1,279 +0,0 @@
-From a004e72b95835136d3f1ea90517f706c24c03da7 Mon Sep 17 00:00:00 2001
-From: Matt Caswell <matt@openssl.org>
-Date: Thu, 5 May 2016 11:10:26 +0100
-Subject: [PATCH] Avoid some undefined pointer arithmetic
-
-A common idiom in the codebase is:
-
-if (p + len > limit)
-{
-    return; /* Too long */
-}
-
-Where "p" points to some malloc'd data of SIZE bytes and
-limit == p + SIZE
-
-"len" here could be from some externally supplied data (e.g. from a TLS
-message).
-
-The rules of C pointer arithmetic are such that "p + len" is only well
-defined where len <= SIZE. Therefore the above idiom is actually
-undefined behaviour.
-
-For example this could cause problems if some malloc implementation
-provides an address for "p" such that "p + len" actually overflows for
-values of len that are too big and therefore p + len < limit!
-
-Issue reported by Guido Vranken.
-
-CVE-2016-2177
-
-Reviewed-by: Rich Salz <rsalz@openssl.org>
----
- ssl/s3_srvr.c  | 14 +++++++-------
- ssl/ssl_sess.c |  2 +-
- ssl/t1_lib.c   | 56 ++++++++++++++++++++++++++++++--------------------------
- 3 files changed, 38 insertions(+), 34 deletions(-)
-
-diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c
-index ab28702..ab7f690 100644
---- a/ssl/s3_srvr.c
-+++ b/ssl/s3_srvr.c
-@@ -980,7 +980,7 @@ int ssl3_get_client_hello(SSL *s)
- 
-         session_length = *(p + SSL3_RANDOM_SIZE);
- 
--        if (p + SSL3_RANDOM_SIZE + session_length + 1 >= d + n) {
-+        if (SSL3_RANDOM_SIZE + session_length + 1 >= (d + n) - p) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-@@ -998,7 +998,7 @@ int ssl3_get_client_hello(SSL *s)
-     /* get the session-id */
-     j = *(p++);
- 
--    if (p + j > d + n) {
-+    if ((d + n) - p < j) {
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-         goto f_err;
-@@ -1054,14 +1054,14 @@ int ssl3_get_client_hello(SSL *s)
- 
-     if (SSL_IS_DTLS(s)) {
-         /* cookie stuff */
--        if (p + 1 > d + n) {
-+        if ((d + n) - p < 1) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-         }
-         cookie_len = *(p++);
- 
--        if (p + cookie_len > d + n) {
-+        if ((d + n ) - p < cookie_len) {
-             al = SSL_AD_DECODE_ERROR;
-             SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-             goto f_err;
-@@ -1131,7 +1131,7 @@ int ssl3_get_client_hello(SSL *s)
-         }
-     }
- 
--    if (p + 2 > d + n) {
-+    if ((d + n ) - p < 2) {
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_TOO_SHORT);
-         goto f_err;
-@@ -1145,7 +1145,7 @@ int ssl3_get_client_hello(SSL *s)
-     }
- 
-     /* i bytes of cipher data + 1 byte for compression length later */
--    if ((p + i + 1) > (d + n)) {
-+    if ((d + n) - p < i + 1) {
-         /* not enough data */
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
-@@ -1211,7 +1211,7 @@ int ssl3_get_client_hello(SSL *s)
- 
-     /* compression */
-     i = *(p++);
--    if ((p + i) > (d + n)) {
-+    if ((d + n) - p < i) {
-         /* not enough data */
-         al = SSL_AD_DECODE_ERROR;
-         SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO, SSL_R_LENGTH_MISMATCH);
-diff --git a/ssl/ssl_sess.c b/ssl/ssl_sess.c
-index b182998..54ee783 100644
---- a/ssl/ssl_sess.c
-+++ b/ssl/ssl_sess.c
-@@ -573,7 +573,7 @@ int ssl_get_prev_session(SSL *s, unsigned char *session_id, int len,
-     int r;
- #endif
- 
--    if (session_id + len > limit) {
-+    if (limit - session_id < len) {
-         fatal = 1;
-         goto err;
-     }
-diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
-index fb64607..cdac011 100644
---- a/ssl/t1_lib.c
-+++ b/ssl/t1_lib.c
-@@ -1867,11 +1867,11 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-         0x02, 0x03,             /* SHA-1/ECDSA */
-     };
- 
--    if (data >= (limit - 2))
-+    if (limit - data <= 2)
-         return;
-     data += 2;
- 
--    if (data > (limit - 4))
-+    if (limit - data < 4)
-         return;
-     n2s(data, type);
-     n2s(data, size);
-@@ -1879,7 +1879,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-     if (type != TLSEXT_TYPE_server_name)
-         return;
- 
--    if (data + size > limit)
-+    if (limit - data < size)
-         return;
-     data += size;
- 
-@@ -1887,7 +1887,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-         const size_t len1 = sizeof(kSafariExtensionsBlock);
-         const size_t len2 = sizeof(kSafariTLS12ExtensionsBlock);
- 
--        if (data + len1 + len2 != limit)
-+        if (limit - data != (int)(len1 + len2))
-             return;
-         if (memcmp(data, kSafariExtensionsBlock, len1) != 0)
-             return;
-@@ -1896,7 +1896,7 @@ static void ssl_check_for_safari(SSL *s, const unsigned char *data,
-     } else {
-         const size_t len = sizeof(kSafariExtensionsBlock);
- 
--        if (data + len != limit)
-+        if (limit - data != (int)(len))
-             return;
-         if (memcmp(data, kSafariExtensionsBlock, len) != 0)
-             return;
-@@ -2053,19 +2053,19 @@ static int ssl_scan_clienthello_tlsext(SSL *s, unsigned char **p,
-     if (data == limit)
-         goto ri_check;
- 
--    if (data > (limit - 2))
-+    if (limit - data < 2)
-         goto err;
- 
-     n2s(data, len);
- 
--    if (data + len != limit)
-+    if (limit - data != len)
-         goto err;
- 
--    while (data <= (limit - 4)) {
-+    while (limit - data >= 4) {
-         n2s(data, type);
-         n2s(data, size);
- 
--        if (data + size > (limit))
-+        if (limit - data < size)
-             goto err;
- # if 0
-         fprintf(stderr, "Received extension type %d size %d\n", type, size);
-@@ -2472,18 +2472,18 @@ static int ssl_scan_clienthello_custom_tlsext(SSL *s,
-     if (s->hit || s->cert->srv_ext.meths_count == 0)
-         return 1;
- 
--    if (data >= limit - 2)
-+    if (limit - data <= 2)
-         return 1;
-     n2s(data, len);
- 
--    if (data > limit - len)
-+    if (limit - data < len)
-         return 1;
- 
--    while (data <= limit - 4) {
-+    while (limit - data >= 4) {
-         n2s(data, type);
-         n2s(data, size);
- 
--        if (data + size > limit)
-+        if (limit - data < size)
-             return 1;
-         if (custom_ext_parse(s, 1 /* server */ , type, data, size, al) <= 0)
-             return 0;
-@@ -2569,20 +2569,20 @@ static int ssl_scan_serverhello_tlsext(SSL *s, unsigned char **p,
-                              SSL_TLSEXT_HB_DONT_SEND_REQUESTS);
- # endif
- 
--    if (data >= (d + n - 2))
-+    if ((d + n) - data <= 2)
-         goto ri_check;
- 
-     n2s(data, length);
--    if (data + length != d + n) {
-+    if ((d + n) - data != length) {
-         *al = SSL_AD_DECODE_ERROR;
-         return 0;
-     }
- 
--    while (data <= (d + n - 4)) {
-+    while ((d + n) - data >= 4) {
-         n2s(data, type);
-         n2s(data, size);
- 
--        if (data + size > (d + n))
-+        if ((d + n) - data < size)
-             goto ri_check;
- 
-         if (s->tlsext_debug_cb)
-@@ -3307,29 +3307,33 @@ int tls1_process_ticket(SSL *s, unsigned char *session_id, int len,
-     /* Skip past DTLS cookie */
-     if (SSL_IS_DTLS(s)) {
-         i = *(p++);
--        p += i;
--        if (p >= limit)
-+
-+        if (limit - p <= i)
-             return -1;
-+
-+        p += i;
-     }
-     /* Skip past cipher list */
-     n2s(p, i);
--    p += i;
--    if (p >= limit)
-+    if (limit - p <= i)
-         return -1;
-+    p += i;
-+
-     /* Skip past compression algorithm list */
-     i = *(p++);
--    p += i;
--    if (p > limit)
-+    if (limit - p < i)
-         return -1;
-+    p += i;
-+
-     /* Now at start of extensions */
--    if ((p + 2) >= limit)
-+    if (limit - p <= 2)
-         return 0;
-     n2s(p, i);
--    while ((p + 4) <= limit) {
-+    while (limit - p >= 4) {
-         unsigned short type, size;
-         n2s(p, type);
-         n2s(p, size);
--        if (p + size > limit)
-+        if (limit - p < size)
-             return 0;
-         if (type == TLSEXT_TYPE_session_ticket) {
-             int r;
--- 
-1.9.1
-
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index c023965c0f63..f684969f9054 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -106,26 +106,18 @@ let
 in {
 
   openssl_1_0_1 = common {
-    version = "1.0.1t";
-    sha256 = "4a6ee491a2fdb22e519c76fdc2a628bb3cec12762cd456861d207996c8a07088";
-    patches = [
-      # https://git.openssl.org/?p=openssl.git;a=commit;h=6f35f6deb5ca7daebe289f86477e061ce3ee5f46
-      ./1.0.1-CVE-2016-2177.diff
-    ];
+    version = "1.0.1u";
+    sha256 = "0fb7y9pwbd76pgzd7xzqfrzibmc0vf03sl07f34z5dhm2b5b84j3";
   };
 
   openssl_1_0_2 = common {
-    version = "1.0.2h";
-    sha256 = "1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919";
-    patches = [
-      # https://git.openssl.org/?p=openssl.git;a=commit;h=a004e72b95835136d3f1ea90517f706c24c03da7
-      ./1.0.2-CVE-2016-2177.diff
-    ];
+    version = "1.0.2i";
+    sha256 = "0vyy038676cv3m2523fi9ll9nkjxadqdnz18zdp5nm6925yli1wj";
   };
 
   openssl_1_1_0 = common {
-    version = "1.1.0";
-    sha256 = "10lcpmnxap9nw8ymdglys93cgkwd1lf1rz4fhq5whwhlmkwrzipm";
+    version = "1.1.0a";
+    sha256 = "0as40a1lipl9qfax7495jc1xfb049ygavkaxxk4y5kcn8birdrn2";
   };
 
 }
diff --git a/pkgs/development/libraries/rabbitmq-c/0.4.nix b/pkgs/development/libraries/rabbitmq-c/0.4.nix
deleted file mode 100644
index 2c92ba5618cf..000000000000
--- a/pkgs/development/libraries/rabbitmq-c/0.4.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, cmake, openssl, popt, xmlto }:
-
-stdenv.mkDerivation rec {
-  version = "0.4.1";
-  name = "rabbitmq-c-${version}";
-
-  src = fetchurl {
-    name = "${name}.tar.gz";
-    url = "https://github.com/alanxz/rabbitmq-c/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "01m4n043hzhhxky8z67zj3r4gbg3mwcqbwqr9nms9lqbfaa70x93";
-  };
-
-  buildInputs = [ cmake openssl popt xmlto ];
-
-  meta = {
-    description = "RabbitMQ C AMQP client library";
-    homepage = https://github.com/alanxz/rabbitmq-c;
-    license = stdenv.lib.licenses.mit;
-    platforms = with stdenv.lib.platforms; linux;
-  };
-}
diff --git a/pkgs/development/libraries/strigi/default.nix b/pkgs/development/libraries/strigi/default.nix
index ee89eda327d0..faba57d155fb 100644
--- a/pkgs/development/libraries/strigi/default.nix
+++ b/pkgs/development/libraries/strigi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     url = "http://www.vandenoever.info/software/strigi/${name}.tar.bz2";
     sha256 = "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23";
   };
-  
+
   includeAllQtDirs = true;
 
   CLUCENE_HOME = clucene_core;
@@ -24,6 +24,15 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  # Strigi installs some libraries in an incorrect place
+  # ($out/$out/lib instead of $out/lib), so move them to the right
+  # place.
+  postInstall =
+    ''
+      mv $out/$out/lib/* $out/lib
+      rm -rf $out/nix
+    '';
+
   meta = {
     homepage = http://strigi.sourceforge.net;
     description = "A very fast and efficient crawler to index data on your harddrive";
diff --git a/pkgs/development/libraries/webkitgtk/2.10.nix b/pkgs/development/libraries/webkitgtk/2.10.nix
deleted file mode 100644
index e74cc6421b24..000000000000
--- a/pkgs/development/libraries/webkitgtk/2.10.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv, fetchurl, fetchpatch, perl, python, ruby, bison, gperf, cmake
-, pkgconfig, gettext, gobjectIntrospection, libnotify
-, gtk2, gtk3, wayland, libwebp, enchant
-, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
-, enableGeoLocation ? false, geoclue2, sqlite, xorg
-, enableCredentialStorage ? !stdenv.isDarwin
-, gst-plugins-base, readline, libedit
-}:
-
-assert enableGeoLocation -> geoclue2 != null;
-assert stdenv.isDarwin -> !enableCredentialStorage;
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
-  name = "webkitgtk-${version}";
-  version = "2.10.9";
-
-  meta = {
-    description = "Web content rendering engine, GTK+ port";
-    homepage = "http://webkitgtk.org/";
-    license = licenses.bsd2;
-    platforms = platforms.linux;
-    hydraPlatforms = [];
-    maintainers = with maintainers; [ koral ];
-  };
-
-  preConfigure = "patchShebangs Tools";
-
-  src = fetchurl {
-    url = "http://webkitgtk.org/releases/${name}.tar.xz";
-    sha256 = "0sg935wpkgyd5ypd5fj25vd7ri8s6sbrmssb53xbgcc02xs8vcdv";
-  };
-
-  patches = [
-    ./finding-harfbuzz-icu.patch
-  ] ++ optional stdenv.isDarwin ./adding-libintl.patch;
-
-  cmakeFlags = [
-    "-DPORT=GTK"
-    "-DUSE_LIBHYPHEN=OFF"
-  ] ++ optionals (!enableCredentialStorage) [
-    "-DENABLE_CREDENTIAL_STORAGE=OFF"
-  ] ++ optionals (!enableGeoLocation) [
-    "-DENABLE_GEOLOCATION=OFF"
-  ] ++ optionals stdenv.isDarwin [
-    "-DENABLE_WEBKIT=ON"
-    "-DENABLE_X11_TARGET=OFF"
-    "-DENABLE_QUARTZ_TARGET=ON"
-    "-DENABLE_TOOLS=ON"
-    "-DENABLE_MINIBROWSER=ON"
-    "-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
-    "-DENABLE_VIDEO=OFF"
-    "-DENABLE_WEB_AUDIO=OFF"
-    "-DENABLE_OPENGL=OFF"
-    "-DENABLE_INTROSPECTION=OFF"
-    "-DUSE_LIBNOTIFY=OFF"
-    "-DCMAKE_SHARED_LINKER_FLAGS=-L/path/to/nonexistent/folder"
-  ];
-
-  # XXX: WebKit2 missing include path for gst-plugins-base.
-  # Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
-  NIX_CFLAGS_COMPILE = "-I${gst-plugins-base.dev}/include/gstreamer-1.0";
-
-  nativeBuildInputs = [
-    cmake perl python ruby bison gperf sqlite
-    pkgconfig gettext gobjectIntrospection
-  ];
-
-  buildInputs = [
-    gtk2 libwebp enchant libnotify
-    libxml2 libxslt harfbuzz libpthreadstubs
-    gst-plugins-base xorg.libXt
-  ] ++ optionals enableCredentialStorage [
-    libsecret
-  ] ++ (if stdenv.isDarwin then [
-    readline libedit
-  ] else [
-    wayland
-  ]) ++ optional enableGeoLocation geoclue2;
-
-  propagatedBuildInputs = [
-    libsoup gtk3
-  ];
-
-  enableParallelBuilding = true;
-}
diff --git a/pkgs/development/libraries/webkitgtk/2.14.nix b/pkgs/development/libraries/webkitgtk/2.14.nix
new file mode 100644
index 000000000000..fca358ed4305
--- /dev/null
+++ b/pkgs/development/libraries/webkitgtk/2.14.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, perl, python, ruby, bison, gperf, cmake
+, pkgconfig, gettext, gobjectIntrospection, libnotify, gnutls
+, gtk2, gtk3, wayland, libwebp, enchant, xlibs, libxkbcommon, epoxy, at_spi2_core
+, libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs
+, enableGeoLocation ? true, geoclue2, sqlite
+, gst-plugins-base
+}:
+
+assert enableGeoLocation -> geoclue2 != null;
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "webkitgtk-${version}";
+  version = "2.14.0";
+
+  meta = {
+    description = "Web content rendering engine, GTK+ port";
+    homepage = "http://webkitgtk.org/";
+    license = licenses.bsd2;
+    platforms = platforms.linux;
+    hydraPlatforms = [];
+    maintainers = with maintainers; [ ];
+  };
+
+  preConfigure = "patchShebangs Tools";
+
+  src = fetchurl {
+    url = "http://webkitgtk.org/releases/${name}.tar.xz";
+    sha256 = "02paj0anbnqn1z3hn5c4csmq9nga995rzagiplj3sjk2dj1ss4q5";
+  };
+
+  # see if we can clean this up....
+
+  patches = [ ./finding-harfbuzz-icu.patch ];
+
+  cmakeFlags = [ 
+  "-DPORT=GTK"
+  "-DUSE_LIBHYPHEN=0"
+  "-DENABLE_GLES2=ON"
+  ];
+
+  # XXX: WebKit2 missing include path for gst-plugins-base.
+  # Filled: https://bugs.webkit.org/show_bug.cgi?id=148894
+  #NIX_CFLAGS_COMPILE = "-I${gst-plugins-base.dev}/include/gstreamer-1.0";
+
+  nativeBuildInputs = [
+    cmake perl python ruby bison gperf sqlite
+    pkgconfig gettext gobjectIntrospection
+  ];
+
+  buildInputs = [
+    gtk2 wayland libwebp enchant libnotify gnutls
+    libxml2 libsecret libxslt harfbuzz libpthreadstubs
+    gst-plugins-base libxkbcommon epoxy at_spi2_core
+  ] ++ optional enableGeoLocation geoclue2
+    ++ (with xlibs; [ libXdmcp libXt libXtst ]);
+
+  propagatedBuildInputs = [
+    libsoup gtk3
+  ];
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/development/node-packages/README.md b/pkgs/development/node-packages/README.md
index d1820e765b9b..138d1475c2fe 100644
--- a/pkgs/development/node-packages/README.md
+++ b/pkgs/development/node-packages/README.md
@@ -1,5 +1,7 @@
-NPM packages
-===========
+Node.js packages
+===============
+To add a package from [NPM](https://www.npmjs.com/) to nixpkgs:
+
  1. Install node2nix: `nix-env -f '<nixpkgs>' -iA node2nix`.
  2. Modify `pkgs/development/node-packages/node-packages.json`, to add, update,
     or remove package entries.
diff --git a/pkgs/development/ocaml-modules/async/default.nix b/pkgs/development/ocaml-modules/async/default.nix
index 2b84519036c7..498315f9cbfd 100644
--- a/pkgs/development/ocaml-modules/async/default.nix
+++ b/pkgs/development/ocaml-modules/async/default.nix
@@ -1,5 +1,5 @@
-{stdenv, buildOcaml, fetchurl, async_kernel,
- async_unix, async_extra, pa_ounit}:
+{stdenv, buildOcaml, fetchurl, async_kernel_p4,
+ async_unix_p4, async_extra_p4, pa_ounit}:
 
 buildOcaml rec {
   name = "async";
@@ -12,7 +12,7 @@ buildOcaml rec {
     sha256 = "ecc4ca939ab098e689332921b110dbaacd06d9f8d8bf697023dfff3ca37dc1e9";
   };
 
-  propagatedBuildInputs = [ async_kernel async_unix async_extra pa_ounit ];
+  propagatedBuildInputs = [ async_kernel_p4 async_unix_p4 async_extra_p4 pa_ounit ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async;
diff --git a/pkgs/development/ocaml-modules/async_extra/default.nix b/pkgs/development/ocaml-modules/async_extra/default.nix
index 2d1e1dea69cc..80addcfc3bb4 100644
--- a/pkgs/development/ocaml-modules/async_extra/default.nix
+++ b/pkgs/development/ocaml-modules/async_extra/default.nix
@@ -1,6 +1,6 @@
-{stdenv, buildOcaml, fetchurl, async_kernel, async_unix,
- bin_prot, core, custom_printf, fieldslib, herelib, pa_ounit,
- pipebang, pa_test, sexplib}:
+{stdenv, buildOcaml, fetchurl, async_kernel_p4, async_unix_p4,
+ bin_prot_p4, core_p4, custom_printf, fieldslib_p4, herelib, pa_ounit,
+ pipebang, pa_test, sexplib_p4}:
 
 buildOcaml rec {
   name = "async_extra";
@@ -14,8 +14,8 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ async_kernel async_unix core bin_prot custom_printf
-                            fieldslib herelib pipebang sexplib ];
+  propagatedBuildInputs = [ async_kernel_p4 async_unix_p4 core_p4 bin_prot_p4 custom_printf
+                            fieldslib_p4 herelib pipebang sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_extra;
diff --git a/pkgs/development/ocaml-modules/async_find/default.nix b/pkgs/development/ocaml-modules/async_find/default.nix
index ae10e931ce25..d0e89940433c 100644
--- a/pkgs/development/ocaml-modules/async_find/default.nix
+++ b/pkgs/development/ocaml-modules/async_find/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, async, core, sexplib}:
+{stdenv, buildOcaml, fetchurl, async_p4, core_p4, sexplib_p4}:
 
 buildOcaml rec {
   name = "async_find";
@@ -11,7 +11,7 @@ buildOcaml rec {
     sha256 = "4e3fda72f50174f05d96a5a09323f236c041b1a685890c155822956f3deb8803";
   };
 
-  propagatedBuildInputs = [ async core sexplib ];
+  propagatedBuildInputs = [ async_p4 core_p4 sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_find;
diff --git a/pkgs/development/ocaml-modules/async_kernel/default.nix b/pkgs/development/ocaml-modules/async_kernel/default.nix
index 8c0d8d7c851e..43fde1631ac7 100644
--- a/pkgs/development/ocaml-modules/async_kernel/default.nix
+++ b/pkgs/development/ocaml-modules/async_kernel/default.nix
@@ -1,6 +1,6 @@
-{stdenv, buildOcaml, fetchurl, core_kernel,
- bin_prot, fieldslib, pa_ounit, pa_test,
- sexplib, herelib}:
+{stdenv, buildOcaml, fetchurl, core_kernel_p4,
+ bin_prot_p4, fieldslib_p4, pa_ounit, pa_test,
+ sexplib_p4, herelib}:
 
 buildOcaml rec {
   name = "async_kernel";
@@ -14,7 +14,7 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ core_kernel bin_prot fieldslib herelib sexplib ];
+  propagatedBuildInputs = [ core_kernel_p4 bin_prot_p4 fieldslib_p4 herelib sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_kernel;
diff --git a/pkgs/development/ocaml-modules/async_shell/default.nix b/pkgs/development/ocaml-modules/async_shell/default.nix
index 75755833a5f5..6b1e772bc7d1 100644
--- a/pkgs/development/ocaml-modules/async_shell/default.nix
+++ b/pkgs/development/ocaml-modules/async_shell/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, async, core, core_extended}:
+{stdenv, buildOcaml, fetchurl, async_p4, core_p4, core_extended_p4}:
 
 buildOcaml rec {
   name = "async_shell";
@@ -11,7 +11,7 @@ buildOcaml rec {
     sha256 = "0b4497bea9124c5a665ee58fb0a73c5cbf2f757479df902e6870627196e6c105";
   };
 
-  propagatedBuildInputs = [ async core core_extended ];
+  propagatedBuildInputs = [ async_p4 core_p4 core_extended_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_shell;
diff --git a/pkgs/development/ocaml-modules/async_ssl/default.nix b/pkgs/development/ocaml-modules/async_ssl/default.nix
index 527d56ceaa01..2bace35aa8b6 100644
--- a/pkgs/development/ocaml-modules/async_ssl/default.nix
+++ b/pkgs/development/ocaml-modules/async_ssl/default.nix
@@ -1,5 +1,5 @@
-{stdenv, buildOcaml, fetchurl, async, comparelib, core, ctypes, openssl,
- fieldslib, herelib, pa_bench, pa_ounit, pipebang, pa_test, sexplib}:
+{stdenv, buildOcaml, fetchurl, async_p4, comparelib, core_p4, ctypes, openssl,
+ fieldslib_p4, herelib, pa_bench, pa_ounit, pipebang, pa_test, sexplib_p4}:
 
 buildOcaml rec {
   name = "async_ssl";
@@ -13,8 +13,8 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_bench pa_test ];
-  propagatedBuildInputs = [ ctypes async comparelib core fieldslib pa_ounit
-                            herelib pipebang sexplib openssl ];
+  propagatedBuildInputs = [ ctypes async_p4 comparelib core_p4 fieldslib_p4 pa_ounit
+                            herelib pipebang sexplib_p4 openssl ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_ssl;
diff --git a/pkgs/development/ocaml-modules/async_unix/default.nix b/pkgs/development/ocaml-modules/async_unix/default.nix
index 81fbd6a99182..6119bcac876a 100644
--- a/pkgs/development/ocaml-modules/async_unix/default.nix
+++ b/pkgs/development/ocaml-modules/async_unix/default.nix
@@ -1,6 +1,6 @@
-{stdenv, buildOcaml, fetchurl, async_kernel,
- bin_prot, comparelib, core, fieldslib, herelib, pa_ounit,
- pipebang, pa_test, sexplib}:
+{stdenv, buildOcaml, fetchurl, async_kernel_p4,
+ bin_prot_p4, comparelib, core_p4, fieldslib_p4, herelib, pa_ounit,
+ pipebang, pa_test, sexplib_p4}:
 
 buildOcaml rec {
   name = "async_unix";
@@ -15,8 +15,8 @@ buildOcaml rec {
 
   hasSharedObjects = true;
   buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ async_kernel core bin_prot comparelib
-                            fieldslib herelib pipebang pa_test sexplib ];
+  propagatedBuildInputs = [ async_kernel_p4 core_p4 bin_prot_p4 comparelib
+                            fieldslib_p4 herelib pipebang pa_test sexplib_p4 ];
 
    meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/async_unix;
diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix
index 9a30a5e4615e..dcf3c8c13d79 100644
--- a/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, cmdliner, re, uri, fieldslib, sexplib, conduit,
+{stdenv, buildOcaml, fetchurl, cmdliner, re, uri, fieldslib_p4, sexplib_p4, conduit,
  stringext, base64, magic-mime, ounit, alcotest, lwt ? null,
  async ? null, async_ssl ? null}:
 
@@ -14,7 +14,7 @@ buildOcaml rec {
   };
 
   buildInputs = [ alcotest ];
-  propagatedBuildInputs = [ cmdliner re uri fieldslib sexplib sexplib
+  propagatedBuildInputs = [ cmdliner re uri fieldslib_p4 sexplib_p4 sexplib_p4
                             conduit stringext base64 magic-mime ounit async
                             async_ssl lwt ];
 
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index dbb83f4c8cf0..26accd99db67 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, sexplib, stringext, uri, cstruct, ipaddr,
+{stdenv, buildOcaml, fetchurl, sexplib_p4, stringext, uri, cstruct, ipaddr,
  async ? null, async_ssl ? null, lwt ? null}:
 
 buildOcaml rec {
@@ -10,7 +10,7 @@ buildOcaml rec {
     sha256 = "5cf1a46aa0254345e5143feebe6b54bdef96314e9987f44e69f24618d620faa1";
   };
 
-  propagatedBuildInputs = ([ sexplib stringext uri cstruct ipaddr ]
+  propagatedBuildInputs = ([ sexplib_p4 stringext uri cstruct ipaddr ]
                             ++ stdenv.lib.optional (lwt != null) lwt
                             ++ stdenv.lib.optional (async != null) async
                             ++ stdenv.lib.optional (async_ssl != null) async_ssl);
diff --git a/pkgs/development/ocaml-modules/core/default.nix b/pkgs/development/ocaml-modules/core/default.nix
index 96fd80087d66..4da4d16df7dd 100644
--- a/pkgs/development/ocaml-modules/core/default.nix
+++ b/pkgs/development/ocaml-modules/core/default.nix
@@ -1,7 +1,7 @@
 {stdenv, buildOcaml, fetchurl, type_conv,
- core_kernel, bin_prot, comparelib, custom_printf, enumerate,
- fieldslib, herelib, pa_bench, pa_test, pa_ounit,
- pipebang, sexplib, typerep, variantslib}:
+ core_kernel_p4, bin_prot_p4, comparelib, custom_printf, enumerate,
+ fieldslib_p4, herelib, pa_bench, pa_test, pa_ounit,
+ pipebang, sexplib_p4, typerep_p4, variantslib_p4}:
 
 buildOcaml rec {
   name = "core";
@@ -17,9 +17,9 @@ buildOcaml rec {
   hasSharedObjects = true;
 
   buildInputs = [ pa_bench pa_test pa_ounit ];
-  propagatedBuildInputs = [ type_conv core_kernel bin_prot comparelib
-                            custom_printf enumerate fieldslib herelib
-                            pipebang sexplib typerep variantslib ];
+  propagatedBuildInputs = [ type_conv core_kernel_p4 bin_prot_p4 comparelib
+                            custom_printf enumerate fieldslib_p4 herelib
+                            pipebang sexplib_p4 typerep_p4 variantslib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/core;
diff --git a/pkgs/development/ocaml-modules/core_extended/default.nix b/pkgs/development/ocaml-modules/core_extended/default.nix
index f311aae3d304..fef4fd81158f 100644
--- a/pkgs/development/ocaml-modules/core_extended/default.nix
+++ b/pkgs/development/ocaml-modules/core_extended/default.nix
@@ -1,5 +1,5 @@
-{stdenv, buildOcaml, fetchurl, bin_prot, comparelib, core, custom_printf,
- fieldslib, pa_bench, pa_ounit, pipebang, pa_test, textutils, re2, sexplib}:
+{stdenv, buildOcaml, fetchurl, bin_prot_p4, comparelib, core_p4, custom_printf,
+ fieldslib_p4, pa_bench, pa_ounit, pipebang, pa_test, textutils_p4, re2_p4, sexplib_p4}:
 
 buildOcaml rec {
   name = "core_extended";
@@ -14,8 +14,8 @@ buildOcaml rec {
 
   hasSharedObjects = true;
   buildInputs = [ pa_bench pa_test pa_ounit ];
-  propagatedBuildInputs = [bin_prot comparelib core custom_printf fieldslib
-                           pipebang textutils re2 sexplib ];
+  propagatedBuildInputs = [bin_prot_p4 comparelib core_p4 custom_printf fieldslib_p4
+                           pipebang textutils_p4 re2_p4 sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/core_extended;
diff --git a/pkgs/development/ocaml-modules/core_kernel/default.nix b/pkgs/development/ocaml-modules/core_kernel/default.nix
index 0fed12b195d6..75b248a6a5e6 100644
--- a/pkgs/development/ocaml-modules/core_kernel/default.nix
+++ b/pkgs/development/ocaml-modules/core_kernel/default.nix
@@ -1,7 +1,7 @@
 {stdenv, buildOcaml, fetchurl, type_conv,
- bin_prot, comparelib, custom_printf, enumerate,
- fieldslib, herelib, pa_bench, pa_test, pa_ounit,
- pipebang, sexplib, typerep, variantslib}:
+ bin_prot_p4, comparelib, custom_printf, enumerate,
+ fieldslib_p4, herelib, pa_bench, pa_test, pa_ounit,
+ pipebang, sexplib_p4, typerep_p4, variantslib_p4}:
 
 buildOcaml rec {
   name = "core_kernel";
@@ -17,9 +17,9 @@ buildOcaml rec {
   hasSharedObjects = true;
 
   buildInputs = [ pa_test pa_ounit ];
-  propagatedBuildInputs = [ type_conv pa_bench bin_prot comparelib custom_printf
-                            enumerate fieldslib herelib pipebang sexplib
-                            typerep variantslib ];
+  propagatedBuildInputs = [ type_conv pa_bench bin_prot_p4 comparelib custom_printf
+                            enumerate fieldslib_p4 herelib pipebang sexplib_p4
+                            typerep_p4 variantslib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/core_kernel;
diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix
index 57a057e0eaa9..c9f04918d172 100644
--- a/pkgs/development/ocaml-modules/cstruct/default.nix
+++ b/pkgs/development/ocaml-modules/cstruct/default.nix
@@ -1,5 +1,5 @@
-{stdenv, writeText, fetchurl, ocaml, ocplib-endian, sexplib, findlib,
- async ? null, lwt ? null, camlp4}:
+{stdenv, writeText, fetchurl, ocaml, ocplib-endian, sexplib_p4, findlib,
+ async_p4 ? null, lwt ? null, camlp4}:
 
 assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.01";
 
@@ -12,9 +12,9 @@ stdenv.mkDerivation {
   };
 
   configureFlags = stdenv.lib.strings.concatStringsSep " " ((if lwt != null then ["--enable-lwt"] else []) ++
-                                          (if async != null then ["--enable-async"] else []));
+                                          (if async_p4 != null then ["--enable-async"] else []));
   buildInputs = [ocaml findlib camlp4];
-  propagatedBuildInputs = [ocplib-endian sexplib lwt async];
+  propagatedBuildInputs = [ocplib-endian sexplib_p4 lwt async_p4];
 
   createFindlibDestdir = true;
   dontStrip = true;
diff --git a/pkgs/development/ocaml-modules/custom_printf/default.nix b/pkgs/development/ocaml-modules/custom_printf/default.nix
index 05a8ecfe616b..16c31fc3861a 100644
--- a/pkgs/development/ocaml-modules/custom_printf/default.nix
+++ b/pkgs/development/ocaml-modules/custom_printf/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, type_conv, sexplib, pa_ounit}:
+{stdenv, buildOcaml, fetchurl, type_conv, sexplib_p4, pa_ounit}:
 
 buildOcaml rec {
   name = "custom_printf";
@@ -12,7 +12,7 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ type_conv sexplib ];
+  propagatedBuildInputs = [ type_conv sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/custom_printf;
diff --git a/pkgs/development/ocaml-modules/ezjsonm/default.nix b/pkgs/development/ocaml-modules/ezjsonm/default.nix
index fd8ce1c33898..4d63b0c3f95f 100644
--- a/pkgs/development/ocaml-modules/ezjsonm/default.nix
+++ b/pkgs/development/ocaml-modules/ezjsonm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, ocaml, findlib, jsonm, hex, sexplib, lwt }:
+{ stdenv, fetchzip, ocaml, findlib, jsonm, hex, sexplib_p4, lwt }:
 
 let version = "0.4.1"; in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ ocaml findlib ];
-  propagatedBuildInputs = [ jsonm hex sexplib lwt ];
+  propagatedBuildInputs = [ jsonm hex sexplib_p4 lwt ];
   createFindlibDestdir = true;
 
   configureFlags = "--enable-lwt";
diff --git a/pkgs/development/ocaml-modules/frontc/default.nix b/pkgs/development/ocaml-modules/frontc/default.nix
new file mode 100644
index 000000000000..ecf1ddc8fbae
--- /dev/null
+++ b/pkgs/development/ocaml-modules/frontc/default.nix
@@ -0,0 +1,35 @@
+{lib, buildOcaml, fetchurl}:
+
+buildOcaml rec {
+  name = "FrontC";
+  version = "3.4";
+
+  src = fetchurl {
+    url = "http://www.irit.fr/recherches/ARCHI/MARCH/frontc/Frontc-${version}.tgz";
+    sha256 = "16dz153s92dgbw1rrfwbhscy73did87kfmjwyh3qpvs748h1sc4g";
+  };
+
+  meta = with lib; {
+    homepage = https://www.irit.fr/recherches/ARCHI/MARCH/rubrique.php3?id_rubrique=61;
+    description = "C Parsing Library";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.maurer ];
+  };
+
+  meta_file = fetchurl {
+    url = https://raw.githubusercontent.com/ocaml/opam-repository/0f0e610f6499bdf0151e4170411b4f05e4d076d4/packages/FrontC/FrontC.3.4/files/META;
+    sha256 = "1flhvwr01crn7d094kby0418s1m4198np85ymjp3b4maz0n7m2mx";
+  };
+
+  opam_patch = fetchurl {
+    url = https://raw.githubusercontent.com/ocaml/opam-repository/0f0e610f6499bdf0151e4170411b4f05e4d076d4/packages/FrontC/FrontC.3.4/files/opam.patch;
+    sha256 = "0xf83ixx0mf3mznwpwp2mjflii0njdzikhhfxpnms7vhnnmlfzy5";
+  };
+
+  patches = [ opam_patch ];
+  patchFlags = "-p4";
+
+  makeFlags = "PREFIX=$(out) OCAML_SITE=$(OCAMLFIND_DESTDIR)";
+
+  postInstall = "cp ${meta_file} $OCAMLFIND_DESTDIR/FrontC/META";
+}
diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix
index 749b6a1d94e3..cdc273d6ecfd 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, sexplib}:
+{stdenv, buildOcaml, fetchurl, sexplib_p4}:
 
 buildOcaml rec {
   name = "ipaddr";
@@ -9,7 +9,7 @@ buildOcaml rec {
     sha256 = "7051013d8f58abff433187d70cd7ddd7a6b49a6fbe6cad1893f571f65b8ed3d0";
   };
 
-  propagatedBuildInputs = [ sexplib ];
+  propagatedBuildInputs = [ sexplib_p4 ];
 
   configurePhase = ''
    ocaml setup.ml -configure --prefix $out
diff --git a/pkgs/development/ocaml-modules/janestreet/async-extra.nix b/pkgs/development/ocaml-modules/janestreet/async-extra.nix
new file mode 100644
index 000000000000..4a283cc9910b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/async-extra.nix
@@ -0,0 +1,17 @@
+{stdenv, buildOcamlJane, fetchurl, async_kernel, async_unix,
+ bin_prot, core, ppx_custom_printf, fieldslib, herelib,
+ pipebang, sexplib, async_rpc_kernel}:
+
+buildOcamlJane rec {
+  name = "async_extra";
+  hash = "1xdwab19fycr4cdm3dh9vmx42f8lvf9s4f9pjgdydxfrm7yzyrfh";
+  propagatedBuildInputs = [ async_kernel async_unix core bin_prot ppx_custom_printf
+                            fieldslib herelib pipebang sexplib async_rpc_kernel ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/async_extra;
+    description = "Jane Street Capital's asynchronous execution library (extra)";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/async-kernel.nix b/pkgs/development/ocaml-modules/janestreet/async-kernel.nix
new file mode 100644
index 000000000000..4d7213a8603e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/async-kernel.nix
@@ -0,0 +1,16 @@
+{stdenv, buildOcamlJane, fetchurl, core_kernel,
+ bin_prot, fieldslib,
+ sexplib, herelib, opam, js_build_tools, ocaml_oasis}:
+
+buildOcamlJane rec {
+  name = "async_kernel";
+  hash = "1n6ifbrq6q6hq8bxh6b9vhg11mv9r6jgp1b7vfw7mh5s2nrd4b60";
+  propagatedBuildInputs = [ core_kernel bin_prot fieldslib herelib sexplib ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/async_kernel;
+    description = "Jane Street Capital's asynchronous execution library (core) ";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix b/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
new file mode 100644
index 000000000000..1f5ff6b9646f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane, async_kernel, bin_prot, core_kernel,
+ fieldslib, ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test,
+ ppx_jane, sexplib, typerep, variantslib}:
+
+buildOcamlJane rec {
+  name = "async_rpc_kernel";
+  hash = "0pvys7giqix1nfidw1f4i3r94cf03ba1mvhadpm2zpdir3av91sw";
+  propagatedBuildInputs = [ async_kernel bin_prot core_kernel fieldslib
+    ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane
+    sexplib typerep variantslib ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/async_rpc_kernel;
+    description = "Platform-independent core of Async RPC library";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/async-unix.nix b/pkgs/development/ocaml-modules/janestreet/async-unix.nix
new file mode 100644
index 000000000000..5621d2ec704b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/async-unix.nix
@@ -0,0 +1,17 @@
+{stdenv, buildOcamlJane, fetchurl, async_kernel,
+ bin_prot, comparelib, core, fieldslib, herelib,
+ pipebang, sexplib}:
+
+buildOcamlJane rec {
+  name = "async_unix";
+  hash = "03ng7f0s22wwzspakiqj442vs1a7yf834109jcj9r3g1awwfhcy7";
+  propagatedBuildInputs = [ async_kernel core bin_prot comparelib
+                            fieldslib herelib pipebang sexplib ];
+
+  meta = with stdenv.lib; {
+   homepage = https://github.com/janestreet/async_unix;
+   description = "Jane Street Capital's asynchronous execution library (unix)";
+   license = licenses.asl20;
+   maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/async.nix b/pkgs/development/ocaml-modules/janestreet/async.nix
new file mode 100644
index 000000000000..2e776e273be1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/async.nix
@@ -0,0 +1,16 @@
+{stdenv, buildOcamlJane, fetchurl, async_kernel,
+ async_unix, async_extra}:
+
+buildOcamlJane rec {
+  name = "async";
+  version = "113.33.03";
+  hash = "0wyspkp8k833fh03r3h016nbfn6kjfhvb2bg42cly6agcak59fmr";
+  propagatedBuildInputs = [ async_kernel async_unix async_extra ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/async;
+    description = "Jane Street Capital's asynchronous execution library";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/bin_prot.nix b/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
new file mode 100644
index 000000000000..11e6189e6c1e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
@@ -0,0 +1,17 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane rec {
+  name = "bin_prot";
+  version = "113.33.03";
+  minimumSupportedOcamlVersion = "4.02";
+  hash = "0jlarpfby755j0kikz6vnl1l6q0ga09b9zrlw6i84r22zchnqdsh";
+
+  propagatedBuildInputs = [ type_conv ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/bin_prot;
+    description = "Binary protocol generator ";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix b/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
new file mode 100644
index 000000000000..61b2038bfd29
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
@@ -0,0 +1,35 @@
+{ buildOcaml, opam, js_build_tools, ocaml_oasis, fetchurl } :
+
+{ name, version ? "113.33.03", buildInputs ? [],
+  hash ? "",
+  minimumSupportedOcamlVersion ? "4.02", ...
+}@args:
+
+buildOcaml (args // {
+  inherit name version minimumSupportedOcamlVersion;
+  src = fetchurl {
+    url = "https://github.com/janestreet/${name}/archive/${version}.tar.gz";
+    sha256 = hash;
+  };
+
+  hasSharedObjects = true;
+
+  buildInputs = [ ocaml_oasis js_build_tools opam ] ++ buildInputs;
+
+  dontAddPrefix = true;
+
+  configurePhase = "./configure --prefix $out";
+
+  buildPhase = "OCAML_TOPLEVEL_PATH=`ocamlfind query findlib`/.. make";
+
+  installPhase = ''
+    opam-installer -i --prefix $prefix --libdir `ocamlfind printconf destdir` --stubsdir `ocamlfind printconf destdir`/${name} ${name}.install
+    if [ -d $out/lib/${name} ]
+      then if [ "$(ls -A $out/lib/${name})" ]
+        then mv $out/lib/${name}/* `ocamlfind printconf destdir`/${name}
+      fi
+      rmdir $out/lib/${name}
+    fi
+  '';
+
+})
diff --git a/pkgs/development/ocaml-modules/janestreet/core-extended.nix b/pkgs/development/ocaml-modules/janestreet/core-extended.nix
new file mode 100644
index 000000000000..df7f6903cd24
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/core-extended.nix
@@ -0,0 +1,22 @@
+{stdenv, buildOcamlJane, fetchurl,
+ core,
+ bin_prot, fieldslib, sexplib, typerep, variantslib,
+ ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane,
+ re2, textutils,
+ ocaml_oasis, opam, js_build_tools}:
+
+buildOcamlJane rec {
+  name = "core_extended";
+  hash = "1j4ipcn741j8w3h4gpv5sygjzg6b5g6gc2jcrr4n0jyn5dq8b0p5";
+  propagatedBuildInputs =
+    [ core bin_prot fieldslib sexplib typerep variantslib
+      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane
+      re2 textutils ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/core_extended;
+    description = "Jane Street Capital's standard library overlay";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/core.nix b/pkgs/development/ocaml-modules/janestreet/core.nix
new file mode 100644
index 000000000000..05ea4d5d566b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/core.nix
@@ -0,0 +1,20 @@
+{stdenv, buildOcamlJane, fetchurl,
+ core_kernel,
+ bin_prot, fieldslib, sexplib, typerep, variantslib,
+ ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane,
+ ocaml_oasis, opam, js_build_tools}:
+
+buildOcamlJane rec {
+  name = "core";
+  hash = "0nz6d5glgymbpchvcpw77yis9jgi2bll32knzy9vx99wn83zdrmd";
+  propagatedBuildInputs =
+    [ core_kernel bin_prot fieldslib sexplib typerep variantslib
+      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/core;
+    description = "Jane Street Capital's standard library overlay";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/core_kernel.nix b/pkgs/development/ocaml-modules/janestreet/core_kernel.nix
new file mode 100644
index 000000000000..93fcdde5bb38
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/core_kernel.nix
@@ -0,0 +1,19 @@
+{stdenv, buildOcamlJane, fetchurl,
+ bin_prot, fieldslib, sexplib, typerep, variantslib,
+ ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane,
+ ocaml_oasis, opam, js_build_tools}:
+
+buildOcamlJane rec {
+  name = "core_kernel";
+  hash = "13gamj056nlib04l7yh80lqpdx0pnswzlb52fkqa01awwp5nf3z6";
+  propagatedBuildInputs =
+    [ bin_prot fieldslib sexplib typerep variantslib
+      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/core_kernel;
+    description = "Jane Street Capital's standard library overlay (kernel)";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/fieldslib.nix b/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
new file mode 100644
index 000000000000..8823a0c8054d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
@@ -0,0 +1,19 @@
+{ stdenv, type_conv, buildOcamlJane }:
+
+buildOcamlJane rec {
+  name = "fieldslib";
+  version = "113.33.03";
+
+  minimumSupportedOcamlVersion = "4.02";
+
+  hash = "0mkbix32f8sq32q81hb10z2q31bw5f431jxv0jafbdrif0vr6xqd";
+
+  propagatedBuildInputs = [ type_conv ];
+
+  meta = with stdenv.lib; {
+    homepage = https://ocaml.janestreet.com/;
+    description = "OCaml syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.vbgl ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch b/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
new file mode 100644
index 000000000000..8878b4be68b8
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
@@ -0,0 +1,11 @@
+--- a/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
++++ b/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
+@@ -65,7 +65,7 @@ let track_external_deps = function
+
+     let stat, md5sum =
+       match run_and_read "uname" |> String.trim with
+-      | "Darwin" ->
++      | "FreeBSD" | "NetBSD" ->
+         (S [A "stat"; A "-f"; A "%d:%i:%m"],
+          A "md5")
+       | _ ->
diff --git a/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix b/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
new file mode 100644
index 000000000000..bf697eda8007
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
@@ -0,0 +1,29 @@
+{stdenv, buildOcaml, fetchurl, ocaml_oasis, opam}:
+
+buildOcaml rec {
+  name = "js-build-tools";
+  version = "113.33.06";
+
+  minimumSupportedOcamlVersion = "4.02";
+
+  src = fetchurl {
+    url = "https://github.com/janestreet/${name}/archive/${version}.tar.gz";
+    sha256 = "1nvgyp4gsnlnpix3li6kr90b12iin5ihichv298p03i6h2809dia";
+  };
+
+  hasSharedObjects = true;
+
+  buildInputs = [ ocaml_oasis opam ];
+
+  dontAddPrefix = true;
+  configurePhase = "./configure --prefix $prefix";
+  installPhase = "opam-installer -i --prefix $prefix --libdir `ocamlfind printconf destdir` ${name}.install";
+
+  patches = [ ./js-build-tools-darwin.patch ];
+
+  meta = with stdenv.lib; {
+    description = "Jane Street Build Tools";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix b/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
new file mode 100644
index 000000000000..b61874d3a7ea
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
@@ -0,0 +1,16 @@
+{stdenv, buildOcamlJane,
+ ppx_compare, ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools, ppx_type_conv, sexplib}:
+
+buildOcamlJane rec {
+  name = "ppx_assert";
+  hash = "0n7fa1j79ykbkhp8xz0ksg5096asri5d0msshsaqhw5fz18chvz4";
+  propagatedBuildInputs =
+    [ ppx_compare ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools
+      ppx_type_conv sexplib ];
+
+  meta = with stdenv.lib; {
+    description = "Assert-like extension nodes that raise useful errors on failure";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix b/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
new file mode 100644
index 000000000000..56a124c5b691
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_inline_test, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_bench";
+  minimumSupportedOcamlVersion = "4.02";
+  hash = "1l5jlwy1d1fqz70wa2fkf7izngp6nx3g4s9bmnd6ca4dx1x5bksk";
+
+  hasSharedObjects = true;
+
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_inline_test ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "Syntax extension for writing in-line benchmarks in ocaml code";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix b/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
new file mode 100644
index 000000000000..9dffbed69600
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, bin_prot}:
+
+buildOcamlJane rec {
+  name = "ppx_bin_prot";
+  hash = "0kwmrrrybdkmphqczsr3lg3imsxcjb8iy41syvn44s3kcjfyyzbz";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv bin_prot ];
+
+  meta = with stdenv.lib; {
+    description = "Generation of bin_prot readers and writers from types";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix b/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
new file mode 100644
index 000000000000..d70fe6ddd550
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane rec {
+  name = "ppx_compare";
+  hash = "05cnwxfxm8201lpfmcqkcqfy6plh5c2151jbj4qsnxhlvvjli459";
+  propagatedBuildInputs =
+    [ppx_core ppx_driver ppx_tools ppx_type_conv ];
+
+  meta = with stdenv.lib; {
+    description = "Generation of fast comparison functions from type expressions and definitions";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-core.nix b/pkgs/development/ocaml-modules/janestreet/ppx-core.nix
new file mode 100644
index 000000000000..4f5bb87b7675
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-core.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_core";
+  hash = "0df7vyai488lfkyh8szw2hvn22jsyrkfvq1b91j1s0g0y27nnfax";
+  propagatedBuildInputs =
+    [ ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "PPX standard library";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix b/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
new file mode 100644
index 000000000000..3fe78e3e7e2e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_custom_printf";
+  hash = "06y85m6ky376byja4w7gdwd339di5ag0xrf0czkylzjsnylhdr85";
+
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_sexp_conv ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "Extensions to printf-style format-strings for user-defined string conversion";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix b/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix
new file mode 100644
index 000000000000..7844756c7bfb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-driver.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_optcomp}:
+
+buildOcamlJane rec {
+  name = "ppx_driver";
+  hash = "19cpfdn1n36vl5l9d6h7c61ffn0wmiipprn5by0354i5aywj8gpn";
+  propagatedBuildInputs =
+    [ ppx_core ppx_optcomp ];
+
+  meta = with stdenv.lib; {
+    description = "A driver is an executable created from a set of OCaml AST transformers linked together with a command line frontend";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix b/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
new file mode 100644
index 000000000000..8dbf34ed2329
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane rec {
+  name = "ppx_enumerate";
+  hash = "0m11921q2pjzkwckf21fynd2qfy83n9jjsgks23yagdai8a7ym16";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
+
+  meta = with stdenv.lib; {
+    description = "Generate a list containing all values of a finite type";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix b/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
new file mode 100644
index 000000000000..7e688a1dc1c8
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
@@ -0,0 +1,19 @@
+{stdenv, buildOcamlJane,
+ ppx_assert, ppx_compare, ppx_core, ppx_custom_printf, ppx_driver,
+ ppx_fields_conv, ppx_here, ppx_inline_test, ppx_sexp_conv, ppx_tools,
+ ppx_variants_conv, re, sexplib, variantslib, fieldslib}:
+
+buildOcamlJane rec {
+  name = "ppx_expect";
+  hash = "0cwagb4cj3x1vsr19kyfa9pxlvaz9a5v863cahi5glinsh4mzgdx";
+  propagatedBuildInputs =
+    [ ppx_assert ppx_compare ppx_core ppx_custom_printf ppx_driver
+      ppx_fields_conv ppx_here ppx_inline_test ppx_sexp_conv ppx_tools
+      ppx_variants_conv re sexplib variantslib fieldslib ];
+
+  meta = with stdenv.lib; {
+    description = "Cram-like framework for OCaml";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix b/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix
new file mode 100644
index 000000000000..187d5db19995
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-fail.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_fail";
+  hash = "1ms5axpc0zg469zj4799nz3wwxi6rmmyvqj52dy03crmpj71s18l";
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "Syntax extension that makes failwith include a position";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
new file mode 100644
index 000000000000..a05cf149b268
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv}:
+
+buildOcamlJane rec {
+  name = "ppx_fields_conv";
+  hash = "11w9wfjgkv7yxv3rwlwi6m193zan6rhmi45q7n3ddi2s8ls3gra7";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
+
+  meta = with stdenv.lib; {
+    description = "Generation of accessor and iteration functions for ocaml records";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-here.nix b/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
new file mode 100644
index 000000000000..3aa157a68c5b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver}:
+
+buildOcamlJane rec {
+  name = "ppx_here";
+  hash = "1mzdgn8k171zkwmbizf1a48l525ny0w3363c7gknpnifcinxniiw";
+  propagatedBuildInputs = [ ppx_core ppx_driver ];
+
+  meta = with stdenv.lib; {
+    description = "A ppx rewriter that defines an extension node whose value is its source position";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix b/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
new file mode 100644
index 000000000000..cd16d7c32864
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_inline_test";
+  hash = "0ygapa54i0wwcj3jcqwiimrc6z0b7aafgjhbk37h6vvclnm5n7f6";
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "Syntax extension for writing in-line tests in ocaml code";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix b/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
new file mode 100644
index 000000000000..86394f228e9d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
@@ -0,0 +1,22 @@
+{stdenv, buildOcamlJane,
+ ppx_assert,
+ ppx_bench, ppx_bin_prot, ppx_compare, ppx_custom_printf, ppx_driver,
+ ppx_enumerate, ppx_expect, ppx_fail, ppx_fields_conv, ppx_here,
+ ppx_inline_test, ppx_let, ppx_pipebang, ppx_sexp_conv, ppx_sexp_message,
+ ppx_sexp_value, ppx_typerep_conv, ppx_variants_conv}:
+
+buildOcamlJane rec {
+  name = "ppx_jane";
+  hash  = "1la0rp8fhzfglwb15gqh1pl1ld8ls4cnidaw9mjc5q1hb0yj1qd9";
+  propagatedBuildInputs =
+    [ ppx_assert ppx_bench ppx_bin_prot ppx_compare ppx_custom_printf
+      ppx_driver ppx_enumerate ppx_expect ppx_fail ppx_fields_conv
+      ppx_here ppx_inline_test ppx_let ppx_pipebang ppx_sexp_conv
+      ppx_sexp_message ppx_sexp_value ppx_typerep_conv ppx_variants_conv ];
+
+  meta = with stdenv.lib; {
+    description = "A ppx_driver including all standard ppx rewriters";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-let.nix b/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
new file mode 100644
index 000000000000..3498affeb090
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver}:
+
+buildOcamlJane rec {
+  name = "ppx_let";
+  hash = "0whnfq4rgkq4apfqnvc100wlk25pmqdyvy6s21dsn3fcm9hff467";
+  propagatedBuildInputs = [ ppx_core ppx_driver ];
+
+  meta = with stdenv.lib; {
+    description = "A ppx rewriter for monadic and applicative let bindings and match statements";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix b/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
new file mode 100644
index 000000000000..5dcfc97bfa37
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_optcomp";
+  hash = "09m2x2a5ics4bz1j29n5slhh1rlyhcwdfmf44v1jfxcby3f0riwd";
+  propagatedBuildInputs =
+    [ ppx_core ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "ppx_optcomp stands for Optional Compilation. It is a tool used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, etc.";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix b/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
new file mode 100644
index 000000000000..f3f4bcdead59
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_pipebang";
+  hash = "0k25bhj9ziiw89xvs4svz7cgazbbmprba9wbic2llffg55fp7acc";
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "A ppx rewriter that inlines reverse application operators |> and |!";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
new file mode 100644
index 000000000000..bf4a7b214dec
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, sexplib}:
+
+buildOcamlJane rec {
+  name = "ppx_sexp_conv";
+  hash = "1kgbmlc11w5jhbhmy5n0f734l44zwyry48342dm5qydi9sfzcgq2";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib];
+
+  meta = with stdenv.lib; {
+    description = "PPX syntax extension that generates code for converting OCaml types to and from s-expressions, as defined in the sexplib library";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
new file mode 100644
index 000000000000..e83aaa2c2723
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_sexp_message";
+  hash = "0inbff25qii868p141jb1y8n3vjfyz66jpnsl9nma6nkkyjkp05j";
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "Easy construction of S-Expressions";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
new file mode 100644
index 000000000000..a1a1080d73d7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_sexp_value";
+  hash = "04602ppqfwx33ghjywam00hlqqzsz4d99r60k9q0v1mynk9pjhj0";
+  propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "A ppx rewriter that simplifies building S-Expression from OCaml Values";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix
new file mode 100644
index 000000000000..fc6d9ca03459
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-type-conv.nix
@@ -0,0 +1,15 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_deriving, ppx_driver, ppx_tools}:
+
+buildOcamlJane rec {
+  name = "ppx_type_conv";
+  hash = "0gv0mqwn97dwrfm6rj442565y8dz7kiq8s8vadnhywrl7j4znqyq";
+  propagatedBuildInputs =
+    [ ppx_core ppx_deriving ppx_driver ppx_tools ];
+
+  meta = with stdenv.lib; {
+    description = "The type_conv library factors out functionality needed by different preprocessors that generate code from type specifications";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
new file mode 100644
index 000000000000..e6d23e0dbdd0
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, typerep}:
+
+buildOcamlJane rec {
+  name = "ppx_typerep_conv";
+  hash = "0dldlx73r07j6w0i7h4hxly0v678naa79na5rafsk2974gs5ih9g";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv typerep ];
+
+  meta = with stdenv.lib; {
+    description = "Automatic generation of runtime types from type definitions";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
new file mode 100644
index 000000000000..e5efb786a943
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
@@ -0,0 +1,14 @@
+{stdenv, buildOcamlJane,
+ ppx_core, ppx_tools, ppx_type_conv, sexplib}:
+
+buildOcamlJane rec {
+  name = "ppx_variants_conv";
+  hash = "0kgal8b9yh7wrd75hllb9fyl6zbksfnr9k7pykpzdm3js98dirhn";
+  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib];
+
+  meta = with stdenv.lib; {
+    description = "Generation of accessor and iteration functions for ocaml variant types";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/re2.nix b/pkgs/development/ocaml-modules/janestreet/re2.nix
new file mode 100644
index 000000000000..6604a8d012c6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/re2.nix
@@ -0,0 +1,20 @@
+{stdenv, buildOcamlJane,
+ bin_prot, core_kernel, fieldslib, sexplib, typerep, variantslib,
+ ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane,
+ rsync}:
+
+buildOcamlJane rec {
+  name = "re2";
+  hash = "0fw5jscb1i17aw8v4l965zw20kyimhfnmf4w83wqaaxkqy3l6fqw";
+  buildInputs = [ rsync ];
+  propagatedBuildInputs =
+    [ bin_prot core_kernel fieldslib sexplib typerep variantslib
+      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/re2;
+    description = "OCaml bindings for RE2";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/sexplib.nix b/pkgs/development/ocaml-modules/janestreet/sexplib.nix
new file mode 100644
index 000000000000..4a785d199c8c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/sexplib.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane rec {
+  minimumSupportedOcamlVersion = "4.02";
+  name = "sexplib";
+  version = "113.33.03";
+
+  hash = "1klar4qw4s7bj47ig7kxz2m4j1q3c60pfppis4vxrxv15r0kfh22";
+
+  propagatedBuildInputs = [ type_conv ];
+
+  meta = with stdenv.lib; {
+    homepage = https://ocaml.janestreet.com/;
+    description = "Library for serializing OCaml values to and from S-expressions";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/textutils.nix b/pkgs/development/ocaml-modules/janestreet/textutils.nix
new file mode 100644
index 000000000000..459743f055ab
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/textutils.nix
@@ -0,0 +1,18 @@
+{stdenv, buildOcamlJane,
+ bin_prot, core, fieldslib, sexplib, typerep, variantslib,
+ ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test, ppx_jane}:
+
+buildOcamlJane rec {
+  name = "textutils";
+  hash = "0mkjm9b3k7db7zzrq4403v8qbkgqgkjlz120vcbqh6z7d7ql65vb";
+  propagatedBuildInputs =
+    [ bin_prot core fieldslib sexplib typerep variantslib
+      ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/textutils;
+    description = "Text output utilities";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/typerep.nix b/pkgs/development/ocaml-modules/janestreet/typerep.nix
new file mode 100644
index 000000000000..81e6c4be9cbc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/typerep.nix
@@ -0,0 +1,20 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane rec {
+  name = "typerep";
+  version = "113.33.03";
+
+  minimumSupportedOcamlVersion = "4.00";
+
+  hash = "1ss34nq20vfgx8hwi5sswpmn3my9lvrpdy5dkng746xchwi33ar7";
+
+  propagatedBuildInputs = [ type_conv ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/typerep;
+    description = "Runtime types for OCaml (beta version)";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/variantslib.nix b/pkgs/development/ocaml-modules/janestreet/variantslib.nix
new file mode 100644
index 000000000000..d9acadbb6158
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/variantslib.nix
@@ -0,0 +1,19 @@
+{stdenv, buildOcamlJane, type_conv}:
+
+buildOcamlJane rec {
+  name = "variantslib";
+  version = "113.33.03";
+
+  minimumSupportedOcamlVersion = "4.00";
+
+  hash = "1hv0f75msrryxsl6wfnbmhc0n8kf7qxs5f82ry3b8ldb44s3wigp";
+
+  propagatedBuildInputs = [ type_conv ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/janestreet/variantslib;
+    description = "OCaml variants as first class values";
+    license = licenses.asl20;
+    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/pa_test/default.nix b/pkgs/development/ocaml-modules/pa_test/default.nix
index faf17e20dc1e..5acf931b2eac 100644
--- a/pkgs/development/ocaml-modules/pa_test/default.nix
+++ b/pkgs/development/ocaml-modules/pa_test/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, type_conv, pa_ounit, sexplib, herelib}:
+{stdenv, buildOcaml, fetchurl, type_conv, pa_ounit, sexplib_p4, herelib}:
 
 buildOcaml rec {
   name = "pa_test";
@@ -12,7 +12,7 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ type_conv sexplib herelib ];
+  propagatedBuildInputs = [ type_conv sexplib_p4 herelib ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/pa_test;
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
new file mode 100644
index 000000000000..4b4056a69d72
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -0,0 +1,28 @@
+{stdenv, buildOcaml, fetchurl,
+ cppo, ppx_tools, result, ounit}:
+
+buildOcaml rec {
+  name = "ppx_deriving";
+  version = "v3.3";
+
+  minimumSupportedOcamlVersion = "4.02";
+
+  src = fetchurl {
+    url = "https://github.com/whitequark/${name}/archive/${version}.tar.gz";
+    sha256 = "1j20c6r2v7h05a4v9m8z5m1yqgwif41yrp63mik14pf3dkrj8x3f";
+  };
+
+  hasSharedObjects = true;
+
+  buildInputs = [ cppo ounit ];
+  propagatedBuildInputs =
+    [ ppx_tools result ];
+
+  installPhase = "OCAMLPATH=$OCAMLPATH:`ocamlfind printconf destdir` make install";
+
+  meta = with stdenv.lib; {
+    description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02.";
+    maintainers = [ maintainers.maurer ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix
index 377dc32751a7..33bf180cd7f3 100644
--- a/pkgs/development/ocaml-modules/ppx_tools/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix
@@ -1,21 +1,30 @@
-{ stdenv, fetchzip, ocaml, findlib }:
+{ stdenv, fetchFromGitHub, ocaml, findlib }:
 
-stdenv.mkDerivation {
-  name = "ocaml-ppx_tools-5.0+4.02";
-  src = fetchzip {
-    url = https://github.com/alainfrisch/ppx_tools/archive/5.0+4.02.0.tar.gz;
-    sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8";
-  };
+let
+  version =
+  if stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.03" then "5.0+4.03.0" else "5.0+4.02.0";
+in
+  stdenv.mkDerivation {
+    name = "ocaml-ppx_tools-${version}";
+    src = fetchFromGitHub {
+      owner = "alainfrisch";
+      repo = "ppx_tools";
+      rev = version;
+      sha256 = if version == "5.0+4.03.0"
+      then "061v1fl5z7z3ywi4ppryrlcywnvnqbsw83ppq72qmkc7ma4603jg"
+      else "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"
+      ;
+    };
 
-  buildInputs = [ ocaml findlib ];
+    buildInputs = [ ocaml findlib ];
 
-  createFindlibDestdir = true;
+    createFindlibDestdir = true;
 
-  meta = with stdenv.lib; {
-    description = "Tools for authors of ppx rewriters";
-    homepage = http://www.lexifi.com/ppx_tools;
-    license = licenses.mit;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with maintainers; [ vbgl ];
-  };
-}
+    meta = with stdenv.lib; {
+      description = "Tools for authors of ppx rewriters";
+      homepage = http://www.lexifi.com/ppx_tools;
+      license = licenses.mit;
+      platforms = ocaml.meta.platforms or [];
+      maintainers = with maintainers; [ vbgl ];
+    };
+  }
diff --git a/pkgs/development/ocaml-modules/re2/default.nix b/pkgs/development/ocaml-modules/re2/default.nix
index e89e28fe1e55..9b26c4040959 100644
--- a/pkgs/development/ocaml-modules/re2/default.nix
+++ b/pkgs/development/ocaml-modules/re2/default.nix
@@ -1,5 +1,5 @@
-{stdenv, buildOcaml, fetchurl, ocaml, core, pa_ounit, pa_test,
- bin_prot, comparelib, sexplib, rsync}:
+{stdenv, buildOcaml, fetchurl, ocaml, core_p4, pa_ounit, pa_test,
+ bin_prot_p4, comparelib, sexplib_p4, rsync}:
 
 buildOcaml rec {
   name = "re2";
@@ -16,7 +16,7 @@ buildOcaml rec {
             else null;
 
   buildInputs = [ pa_ounit pa_test rsync ];
-  propagatedBuildInputs = [ core bin_prot comparelib sexplib ];
+  propagatedBuildInputs = [ core_p4 bin_prot_p4 comparelib sexplib_p4 ];
 
   hasSharedObjects = true;
 
diff --git a/pkgs/development/ocaml-modules/textutils/default.nix b/pkgs/development/ocaml-modules/textutils/default.nix
index 377b94eff8b8..6f35b9702280 100644
--- a/pkgs/development/ocaml-modules/textutils/default.nix
+++ b/pkgs/development/ocaml-modules/textutils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, buildOcaml, fetchurl, core, pa_ounit, pa_test, sexplib}:
+{stdenv, buildOcaml, fetchurl, core_p4, pa_ounit, pa_test, sexplib_p4}:
 
 buildOcaml rec {
   name = "textutils";
@@ -12,7 +12,7 @@ buildOcaml rec {
   };
 
   buildInputs = [ pa_test ];
-  propagatedBuildInputs = [ core pa_ounit sexplib ];
+  propagatedBuildInputs = [ core_p4 pa_ounit sexplib_p4 ];
 
   meta = with stdenv.lib; {
     homepage = https://github.com/janestreet/textutils;
diff --git a/pkgs/development/ocaml-modules/uri/default.nix b/pkgs/development/ocaml-modules/uri/default.nix
index dca989c88efd..a6335274f737 100644
--- a/pkgs/development/ocaml-modules/uri/default.nix
+++ b/pkgs/development/ocaml-modules/uri/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, ocaml, findlib, re, sexplib, stringext, ounit }:
+{ stdenv, fetchzip, ocaml, findlib, re, sexplib_p4, stringext, ounit }:
 
 assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4";
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ ocaml findlib ounit ];
-  propagatedBuildInputs = [ re sexplib stringext ];
+  propagatedBuildInputs = [ re sexplib_p4 stringext ];
 
   configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests";
   buildPhase = ''
diff --git a/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch b/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
new file mode 100644
index 000000000000..34221c0d20c7
--- /dev/null
+++ b/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
@@ -0,0 +1,34 @@
+From 0be0223422e6e5f4091c6e4e058d213623eed105 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 12 Sep 2016 14:40:44 +0200
+Subject: [PATCH] Skip preprocessor symbol only CURL_STRICTER
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+CURL_STRICTER leaked into curl-constants.c when building against
+curl-7.50.2. This is a preprocessor only macro without a value.
+
+CPAN RT#117793
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Makefile.PL | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index f9170bb..ad2bd3d 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -127,7 +127,7 @@ if (!defined($curl_h)) {
+     close H;
+ 
+     for my $e (sort @syms) {
+-       if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
++       if($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_STRICTER\z|_LAST\z|_LASTENTRY\z)/) {
+           next;
+        }
+        my ($group) = $e =~ m/^([^_]+_)/;
+-- 
+2.7.4
+
diff --git a/pkgs/development/ruby-modules/bundler/default.nix b/pkgs/development/ruby-modules/bundler/default.nix
index c3c544d52689..bc2d51f7f26b 100644
--- a/pkgs/development/ruby-modules/bundler/default.nix
+++ b/pkgs/development/ruby-modules/bundler/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "bundler";
-  version = "1.12.5";
-  sha256 = "1q84xiwm9j771lpmiply0ls9l2bpvl5axn3jblxjvrldh8di2pkc";
+  version = "1.13.1";
+  sha256 = "02gbjbv7wq33a17pzp83s36v4yg5r2l3rynkhrq1qlq6vc1n47yg";
   dontPatchShebangs = true;
 
   postFixup = ''
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 683677d05fc3..a9b16f0db2c5 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -21,8 +21,8 @@
 , libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick
 , pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi
 , cmake, libssh2, openssl, mysql, darwin, git, perl, gecode_3, curl
-, libmsgpack, qt48, libsodium
-}:
+, libmsgpack, qt48, libsodium, snappy
+}@args:
 
 let
   v8 = v8_3_16_14;
@@ -145,6 +145,10 @@ in
     buildInputs = [ cmake pkgconfig openssl libssh2 zlib ];
   };
 
+  snappy = attrs: {
+    buildInputs = [ args.snappy ];
+  };
+
   sqlite3 = attrs: {
     buildFlags = [
       "--with-sqlite3-include=${sqlite.dev}/include"
diff --git a/pkgs/development/ruby-modules/gem/nix-bundle-install.rb b/pkgs/development/ruby-modules/gem/nix-bundle-install.rb
index 48ab5270c22f..8eac766554e1 100644
--- a/pkgs/development/ruby-modules/gem/nix-bundle-install.rb
+++ b/pkgs/development/ruby-modules/gem/nix-bundle-install.rb
@@ -6,6 +6,11 @@ require 'fileutils'
 require 'pathname'
 require 'tmpdir'
 
+if defined?(Encoding.default_internal)
+  Encoding.default_internal = Encoding::UTF_8
+  Encoding.default_external = Encoding::UTF_8
+end
+
 # Options:
 #
 #   name        - the gem name
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index e49697084e45..002d3bde201e 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -1,19 +1,24 @@
-{ stdenv, fetchFromGitHub, jdk, zip, zlib, protobuf2_5, pkgconfig, libarchive, unzip, which, makeWrapper }:
-
+{ stdenv, fetchFromGitHub, jdk, zip, zlib, protobuf3_0, pkgconfig, libarchive, unzip, which, makeWrapper }:
 stdenv.mkDerivation rec {
-  name = "bazel-20150326.981b7bc1";
+  version = "0.3.1";
+  name = "bazel-${version}";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bazel";
-    rev = "981b7bc1";
-    sha256 = "0i9gxgqhfmix7hmkb15s7h9f8ssln08pixqm26pd1d20g0kfyxj7";
+    rev = version;
+    sha256 = "1cm8zjxf8y3ai6h9wndxvflfsijjqhg87fll9ar7ff0hbbbdf6l5";
   };
 
-  buildInputs = [ pkgconfig protobuf2_5 zlib zip jdk libarchive unzip which makeWrapper ];
+  buildInputs = [ pkgconfig protobuf3_0 zlib zip libarchive unzip which makeWrapper jdk ];
+
+  buildPhase = ''
+    export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
+
+    bash compile.sh
+  '';
 
   installPhase = ''
-    PROTOC=protoc bash compile.sh
     mkdir -p $out/bin $out/share
     cp -R output $out/share/bazel
     ln -s $out/share/bazel/bazel $out/bin/bazel
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 86058e03e413..b995e76f63ab 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -21,10 +21,10 @@ rec {
       let arch = if stdenv.is64bit then "amd64" else "i386"; in ''
         mkdir patching
         pushd patching
-        jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-0.10.jar
+        jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-0.11.jar
         patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64" net/rubygrapefruit/platform/linux-${arch}/libnative-platform.so
-        jar cf native-platform-linux-${arch}-0.10.jar .
-        mv native-platform-linux-${arch}-0.10.jar $out/lib/gradle/lib/
+        jar cf native-platform-linux-${arch}-0.11.jar .
+        mv native-platform-linux-${arch}-0.11.jar $out/lib/gradle/lib/
         popd
 
         # The scanner doesn't pick up the runtime dependency in the jar.
@@ -52,11 +52,11 @@ rec {
   };
 
   gradle_latest = gradleGen rec {
-    name = "gradle-3.0";
+    name = "gradle-3.1";
 
     src = fetchurl {
       url = "http://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "103z2nzlpc6x3mav0mqardd84rj1si718f6wpnpl8i273aa0dj9r";
+      sha256 = "1z0h60w0wvdg2rlxg5izcbhnrzdmr3mdgs7p09cm4lr28d139pn7";
     };
   };
 
diff --git a/pkgs/development/tools/glide/default.nix b/pkgs/development/tools/glide/default.nix
index c3d9104018df..66335412b497 100644
--- a/pkgs/development/tools/glide/default.nix
+++ b/pkgs/development/tools/glide/default.nix
@@ -1,16 +1,22 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   name = "glide-${version}";
-  version = "0.10.2";
-  rev = "${version}";
+  version = "0.12.2";
   
   goPackagePath = "github.com/Masterminds/glide";
 
   src = fetchFromGitHub {
-    inherit rev;
+    rev = "v${version}";
     owner = "Masterminds";
     repo = "glide";
-    sha256 = "1qb2n5i04gabb2snnwfr8wv4ypcp1pdzvgga62m9xkhk4p2w6pwl";
+    sha256 = "15cdrcslkiggd6sg5j40amflydpqz1s63f13mvlg309adfhsk4qz";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://glide.sh;
+    description = "Package management for Go";
+    license = licenses.mit;
+    maintainers = [ maintainers.rushmorem ];
   };
 }
diff --git a/pkgs/development/tools/misc/ccache/default.nix b/pkgs/development/tools/misc/ccache/default.nix
index c90e356e044f..99348e907a94 100644
--- a/pkgs/development/tools/misc/ccache/default.nix
+++ b/pkgs/development/tools/misc/ccache/default.nix
@@ -18,44 +18,46 @@ let ccache = stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   passthru = let
-      cc = stdenv.cc.cc;
-      ccname = if stdenv.cc.isClang then "clang" else "gcc";
-      cxxname = if stdenv.cc.isClang then "clang++" else "g++";
+      unwrappedCC = stdenv.cc.cc;
     in {
     # A derivation that provides gcc and g++ commands, but that
     # will end up calling ccache for the given cacheDir
     links = extraConfig: stdenv.mkDerivation rec {
       name = "ccache-links";
       passthru = {
-        inherit (stdenv.cc) isClang;
-        inherit (cc) isGNU;
+        isClang = unwrappedCC.isClang or false;
+        isGNU = unwrappedCC.isGNU or false;
       };
-      inherit (cc) lib;
+      inherit (unwrappedCC) lib;
       buildCommand = ''
         mkdir -p $out/bin
-        if [ -x "${cc}/bin/${ccname}" ]; then
-          cat > $out/bin/${ccname} << EOF
-          #!/bin/sh
-          ${extraConfig}
-          exec ${ccache}/bin/ccache ${cc}/bin/${ccname} "\$@"
-        EOF
-          chmod +x $out/bin/${ccname}
-        fi
-        if [ -x "${cc}/bin/${cxxname}" ]; then
-          cat > $out/bin/${cxxname} << EOF
-          #!/bin/sh
-          ${extraConfig}
-          exec ${ccache}/bin/ccache ${cc}/bin/${cxxname} "\$@"
+
+        wrap() {
+          local cname="$1"
+          if [ -x "${unwrappedCC}/bin/$cname" ]; then
+            cat > $out/bin/$cname << EOF
+        #!/bin/sh
+        ${extraConfig}
+        exec ${ccache}/bin/ccache ${unwrappedCC}/bin/$cname "\$@"
         EOF
-          chmod +x $out/bin/${cxxname}
-        fi
-        for executable in $(ls ${cc}/bin); do
+            chmod +x $out/bin/$cname
+          fi
+        }
+
+        wrap cc
+        wrap c++
+        wrap gcc
+        wrap g++
+        wrap clang
+        wrap clang++
+
+        for executable in $(ls ${unwrappedCC}/bin); do
           if [ ! -x "$out/bin/$executable" ]; then
-            ln -s ${cc}/bin/$executable $out/bin/$executable
+            ln -s ${unwrappedCC}/bin/$executable $out/bin/$executable
           fi
         done
-        for file in $(ls ${cc} | grep -vw bin); do
-          ln -s ${cc}/$file $out/$file
+        for file in $(ls ${unwrappedCC} | grep -vw bin); do
+          ln -s ${unwrappedCC}/$file $out/$file
         done
       '';
     };
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index 4685787af5f7..2dff98a212d6 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -1,29 +1,28 @@
-{ fetchurl, stdenv, ncurses, pkgconfig, emacs}:
+{ fetchurl, stdenv, ncurses
+, emacsSupport ? true, emacs
+}:
 
 stdenv.mkDerivation rec {
-  name = "cscope-15.8a";
+  name = "cscope-15.8b";
 
   src = fetchurl {
     url = "mirror://sourceforge/cscope/${name}.tar.gz";
-    sha256 = "07jdhxvp3dv7acvp0pwsdab1g2ncxjlcf838lj7vxgjs1p26lwzb";
+    sha256 = "1byk29rcpyygrnr03h5j3y8j0aqxldd9dr5ihi9q982sy28x12a8";
   };
 
-  preConfigure = ''
-    sed -i "contrib/xcscope/cscope-indexer" \
-        -"es|^PATH=.*$|PATH=\"$out/bin:\$PATH\"|g"
-    sed -i "contrib/xcscope/xcscope.el" \
-        -"es|\"cscope-indexer\"|\"$out/libexec/cscope/cscope-indexer\"|g";
-  '';
-
   configureFlags = "--with-ncurses=${ncurses.dev}";
 
   buildInputs = [ ncurses ];
-  nativeBuildInputs = [ pkgconfig emacs ];
+  nativeBuildInputs = stdenv.lib.optional emacsSupport emacs;
 
-  postInstall = ''
-    # Install Emacs mode.
+  postInstall = stdenv.lib.optionalString emacsSupport ''
     cd "contrib/xcscope"
 
+    sed -i "cscope-indexer" \
+        -"es|^PATH=.*$|PATH=\"$out/bin:\$PATH\"|g"
+    sed -i "xcscope.el" \
+        -"es|\"cscope-indexer\"|\"$out/libexec/cscope/cscope-indexer\"|g";
+
     mkdir -p "$out/libexec/cscope"
     cp "cscope-indexer" "$out/libexec/cscope"
 
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
new file mode 100644
index 000000000000..5f434c13abc6
--- /dev/null
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "patchelf-0.10-pre-20160920";
+
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "patchelf";
+    rev = "327d80443672c397970738f9e216a7e86cbf3ad7";
+    sha256 = "0nghzywda4jrj70gvn4dnrzasafgdp0basj04wfir1smvsi047zr";
+  };
+
+  setupHook = [ ./setup-hook.sh ];
+
+  buildInputs = [ autoreconfHook ];
+
+  doCheck = true;
+
+  meta = {
+    homepage = http://nixos.org/patchelf.html;
+    license = "GPL";
+    description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+    maintainers = [ stdenv.lib.maintainers.eelco ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/ocaml/camlp4/4_03.nix b/pkgs/development/tools/ocaml/camlp4/4_03.nix
new file mode 100644
index 000000000000..f05a556c3886
--- /dev/null
+++ b/pkgs/development/tools/ocaml/camlp4/4_03.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchzip, which, ocaml, ocamlbuild}:
+let
+  ocaml_version = (stdenv.lib.getVersion ocaml);
+  version = "4.03+1";
+
+in
+
+assert stdenv.lib.versionAtLeast ocaml_version "4.02";
+
+stdenv.mkDerivation {
+  name = "camlp4-${version}";
+  src = fetchzip {
+    url = "https://github.com/ocaml/camlp4/archive/${version}.tar.gz";
+    sha256 = "1f2ndch6f1m4fgnxsjb94qbpwjnjgdlya6pard44y6n0dqxi1wsq";
+  };
+
+  buildInputs = [ which ocaml ocamlbuild ];
+
+  dontAddPrefix = true;
+
+  preConfigure = ''
+    configureFlagsArray=(
+      --bindir=$out/bin
+      --libdir=$out/lib/ocaml/${ocaml_version}/site-lib
+      --pkgdir=$out/lib/ocaml/${ocaml_version}/site-lib
+    )
+  '';
+
+  postConfigure = ''
+    substituteInPlace camlp4/META.in \
+    --replace +camlp4 $out/lib/ocaml/${ocaml_version}/site-lib/camlp4
+  '';
+
+
+  makeFlags = "all";
+
+  installTargets = "install install-META";
+
+  meta = with stdenv.lib; {
+    description = "A software system for writing extensible parsers for programming languages";
+    homepage = https://github.com/ocaml/camlp4;
+    platforms = ocaml.meta.platforms or [];
+  };
+}
+
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 9538d8e1cc21..ed441ea8c10b 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -1,9 +1,19 @@
-{ stdenv, fetchzip, ocaml, findlib, yojson, menhir
+{ stdenv, fetchzip, ocaml, findlib, yojson, menhir, lib
 , withEmacsMode ? false, emacs }:
 
 assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.00";
 
-let version = "2.3.1"; in
+let
+  version = if lib.versionOlder (lib.getVersion ocaml) "4.02.0"
+  then
+    "2.3.1"
+  else
+    "2.5.0";
+  hashes = {
+    "2.3.1" = "192jamcc7rmvadlqqsjkzsl6hlgwhg9my1qc89fxh1lmd4qdsrpn";
+    "2.5.0" = "1q09mnq4qmh6vfn45qxh2v81l364iazcpjs5dyczmlhln8b25bff";
+  };
+in
 
 stdenv.mkDerivation {
 
@@ -11,7 +21,7 @@ stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://github.com/the-lambda-church/merlin/archive/v${version}.tar.gz";
-    sha256 = "192jamcc7rmvadlqqsjkzsl6hlgwhg9my1qc89fxh1lmd4qdsrpn";
+    sha256 = hashes."${version}";
   };
 
   buildInputs = [ ocaml findlib yojson menhir ]
diff --git a/pkgs/development/tools/ocaml/ocamlbuild/default.nix b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
new file mode 100644
index 000000000000..6feab7645f17
--- /dev/null
+++ b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
@@ -0,0 +1,42 @@
+{stdenv, fetchFromGitHub, ocaml, findlib, buildOcaml, type_conv, camlp4,
+ ocamlmod, ocamlify, ounit, expect}:
+let
+  version = "0.9.2";
+in
+stdenv.mkDerivation {
+  name = "ocamlbuild";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ocaml";
+    repo = "ocamlbuild";
+    rev = version;
+    sha256 = "0q4bvik08v444g1pill9zgwal48xs50jf424lbryfvqghhw5xjjc";
+  };
+
+  createFindlibDestdir = true;
+
+  buildInputs = [ ocaml findlib ];
+
+  configurePhase = ''
+  make -f configure.make Makefile.config \
+    "OCAMLBUILD_PREFIX=$out" \
+    "OCAMLBUILD_BINDIR=$out/bin" \
+    "OCAMLBUILD_LIBDIR=$OCAMLFIND_DESTDIR"
+  '';
+
+  # configurePhase = "ocaml setup.ml -configure --prefix $out";
+  # buildPhase     = "ocaml setup.ml -build";
+  # installPhase   = "ocaml setup.ml -install";
+
+  # meta = with stdenv.lib; {
+  #   homepage = http://oasis.forge.ocamlcore.org/;
+  #   description = "Configure, build and install system for OCaml projects";
+  #   license = licenses.lgpl21;
+  #   platforms = ocaml.meta.platforms or [];
+  #   maintainers = with maintainers; [
+  #     vbgl z77z
+  #   ];
+  # };
+}
+
diff --git a/pkgs/development/tools/ocaml/ocp-build/default.nix b/pkgs/development/tools/ocaml/ocp-build/default.nix
index 5ae27b476b41..503616511e5b 100644
--- a/pkgs/development/tools/ocaml/ocp-build/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -1,20 +1,25 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ncurses }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, ncurses, buildOcaml }:
+let
+  version = "1.99.17-beta";
+in
+buildOcaml {
 
-let version = "1.99.16-beta"; in
-
-stdenv.mkDerivation {
-
-  name = "ocp-build-${version}";
+  name = "ocp-build";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "OCamlPro";
     repo = "ocp-build";
     rev = version;
-    sha256 = "1nkd7wlf1vrc4p20bs94vbkd970q2ag23csh9a897ka65rk08gvw";
+    sha256 = "0k1gi5v9as5l8h5illgl5prsd5z1i14y5j2k920ay1a3rv697b02";
   };
 
-  buildInputs = [ ocaml findlib ncurses ];
+  buildInputs = [ ocaml ];
+  propagatedBuildInputs = [ ncurses ];
   preInstall = "mkdir -p $out/bin";
+  preConfigure = ''
+  export configureFlags="$configureFlags --with-metadir=$OCAMLFIND_DESTDIR"
+  '';
 
   meta = with stdenv.lib; {
     homepage = http://www.typerex.org/ocp-build.html;
diff --git a/pkgs/development/tools/ocaml/ocp-index/default.nix b/pkgs/development/tools/ocaml/ocp-index/default.nix
index 37f90c41100a..5ca1aed810cf 100644
--- a/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchzip, ocaml, findlib, ocpBuild, ocpIndent, opam, cmdliner, ncurses, re, lambdaTerm, libev }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocpBuild, ocpIndent, opam, cmdliner, ncurses, re, lambdaTerm, libev }:
 
 let inherit (stdenv.lib) getVersion versionAtLeast optional; in
 
@@ -7,23 +7,34 @@ assert versionAtLeast (getVersion ocpBuild) "1.99.6-beta";
 assert versionAtLeast (getVersion ocpIndent) "1.4.2";
 
 let
-  version = "1.1.2";
-  patch402 = fetchurl {
-    url = https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/ocp-index/ocp-index.1.1.2/files/ocaml.4.02.patch;
-    sha256 = "1wcpn2pv7h8ia3ybmzdlm8v5hfvq1rgmlj02wwj0yh3vqjvxqvsm";
+  version = "1.1.4";
+  ocaml_version = getVersion ocaml;
+  srcs = {
+    "4.03.0" = {
+      rev = "${version}-4.03";
+      sha256 = "0c6s5radwyvxf9hrq2y9lirk72z686k9yzd0vgzy98yrrp1w56mv";
+    };
+    "4.02.3" = {
+      rev = "${version}-4.02";
+      sha256 = "057ss3lz754b2pznkb3zda5h65kjgqnvabvfqwqcz4qqxxki2yc8";
+    };
+    "4.01.0" = {
+      rev = "${version}";
+      sha256 = "106bnc8jhmjnychcl8k3gl9n6b50bc66qc5hqf1wkbkk9kz4vc9d";
+    };
   };
+
+  src = fetchFromGitHub ({
+    owner = "OCamlPro";
+    repo = "ocp-index";
+  } // srcs."${ocaml_version}");
 in
 
 stdenv.mkDerivation {
 
   name = "ocp-index-${version}";
 
-  src = fetchzip {
-    url = "http://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
-    sha256 = "0cz0bz5nisc5r23b1w07q2bl489gd09mg8rp9kyq9m6rj669b18l";
-  };
-
-  patches = optional (versionAtLeast (getVersion ocaml) "4.02") patch402;
+  inherit src;
 
   buildInputs = [ ocaml findlib ocpBuild opam cmdliner ncurses re libev ]
   ++ optional (versionAtLeast (getVersion lambdaTerm) "1.7") lambdaTerm;
diff --git a/pkgs/games/brogue/default.nix b/pkgs/games/brogue/default.nix
index 73a70f2f37e1..814f4f6c82e6 100644
--- a/pkgs/games/brogue/default.nix
+++ b/pkgs/games/brogue/default.nix
@@ -25,6 +25,9 @@ stdenv.mkDerivation rec {
     cp -r bin/fonts $out/share/brogue/
   '';
 
+  # fix crash; shouldn’t be a security risk because it’s an offline game
+  hardeningDisable = [ "stackprotector" "fortify" ];
+
   meta = with stdenv.lib; {
     description = "A roguelike game";
     homepage = https://sites.google.com/site/broguegame/;
diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index b3b56c03fa3e..9aee664a50eb 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="gnuchess";
-    version="6.2.2";
+    version="6.2.3";
     name="${baseName}-${version}";
     url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="1a41ag03q66pwy3pjrmbxxjpzi9fcaiiaiywd7m9v25mxqac2xkp";
+    sha256="10hvnfhj9bkpz80x20jgxyqvgvrcgfdp8sfcbcrf1dgjn9v936bq";
   };
   buildInputs = [
     flex
diff --git a/pkgs/games/quake3/wrapper/builder.sh b/pkgs/games/quake3/wrapper/builder.sh
deleted file mode 100644
index d5115baa7e6d..000000000000
--- a/pkgs/games/quake3/wrapper/builder.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-source $stdenv/setup
-
-mkdir -p $out/baseq3
-for i in $paks; do
-    if test -d "$i/baseq3"; then
-        ln -s "$i/baseq3"/* $out/baseq3/
-    fi
-done
-
-# We add Mesa to the end of $LD_LIBRARY_PATH to provide fallback
-# software rendering.  GCC is needed so that libgcc_s.so can be found
-# when Mesa is used.
-makeWrapper $game/ioquake3.* $out/bin/quake3 \
-    --suffix-each LD_LIBRARY_PATH ':' "$mesa/lib $gcc/lib" \
-    --add-flags "+set fs_basepath $out +set r_allowSoftwareGL 1"
-
-makeWrapper $game/ioq3ded.* $out/bin/quake3-server \
-    --add-flags "+set fs_basepath $out"
diff --git a/pkgs/games/quake3/wrapper/default.nix b/pkgs/games/quake3/wrapper/default.nix
index ae0387ad2900..5f65d26140c8 100644
--- a/pkgs/games/quake3/wrapper/default.nix
+++ b/pkgs/games/quake3/wrapper/default.nix
@@ -1,22 +1,33 @@
-{ stdenv, fetchurl, mesa, ioquake3, makeWrapper }:
+{ stdenv, buildEnv, lib, fetchurl, mesa_noglu, ioquake3, makeWrapper }:
 
 { paks, name ? (stdenv.lib.head paks).name, description ? "" }:
 
-stdenv.mkDerivation {
-  name = "${name}-${ioquake3.name}";
+let
+  libPath = lib.makeLibraryPath [ mesa_noglu stdenv.cc.cc ];
+  env = buildEnv {
+    name = "quake3-env";
+    paths = [ ioquake3 ] ++ paks;
+  };
 
-  builder = ./builder.sh;
+in stdenv.mkDerivation {
+  name = "${name}-${ioquake3.name}";
 
   nativeBuildInputs = [ makeWrapper ];
-  
-  inherit paks mesa;
 
-  game = ioquake3;
+  buildCommand = ''
+    mkdir -p $out/bin
+
+    # We add Mesa to the end of $LD_LIBRARY_PATH to provide fallback
+    # software rendering. GCC is needed so that libgcc_s.so can be found
+    # when Mesa is used.
+    makeWrapper ${env}/ioquake3.* $out/bin/quake3 \
+      --suffix-each LD_LIBRARY_PATH ':' "${libPath}" \
+      --add-flags "+set fs_basepath ${env} +set r_allowSoftwareGL 1"
 
-  gcc = stdenv.cc.cc;
+    makeWrapper ${env}/ioq3ded.* $out/bin/quake3-server \
+      --add-flags "+set fs_basepath ${env}"
+  '';
 
-  preferLocalBuild = true;
-  
   meta = {
     inherit description;
   };
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 6c671b56b7ad..bf0af6b806fd 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -40,7 +40,7 @@ let
   hplipArch = hplipPlatforms."${stdenv.system}"
     or (throw "HPLIP not supported on ${stdenv.system}");
 
-  pluginArches = [ "x86_32" "x86_64" ];
+  pluginArches = [ "x86_32" "x86_64" "arm32" ];
 
 in
 
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 084925ef5910..7d276232905d 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -302,6 +302,23 @@ rec {
 
   };
 
+  ctrlp-cmatcher = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "ctrlp-cmatcher-2016-09-22";
+    src = fetchgit {
+      url = "git://github.com/JazzCore/ctrlp-cmatcher";
+      rev = "6c36334f106b6fd981d23e724e9a618734cab43a";
+      sha256 = "1573kd6xf3n8sxlz2j4zadai4rnc7k3s9c54648yfzickwn57d8q";
+    };
+    dependencies = [];
+
+    buildInputs = [ python ];
+
+    buildPhase = ''
+      patchShebangs .
+      ./install.sh
+    '';
+  };
+
   ctrlp-z = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "ctrlp-z-2015-10-17";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 71c65f74a9c5..91b10a6b26f7 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -15,6 +15,7 @@
 "YankRing"
 "commentary"
 "ctrlp-py-matcher"
+"ctrlp-cmatcher"
 "ctrlp-z"
 "extradite"
 "fugitive"
diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
index 8d2f368bc99a..d3db8ca7d431 100644
--- a/pkgs/os-specific/linux/ena/default.nix
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.linux;
+    broken = kernel.features.chromiumos or false;
   };
 }
diff --git a/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix
new file mode 100644
index 000000000000..673ef686e488
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/rtlwifi_new-firmware/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, linuxPackages }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "rtlwifi_new-firmware-${linuxPackages.rtlwifi_new.version}";
+  inherit (linuxPackages.rtlwifi_new) src;
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p "$out/lib/firmware"
+    cp -rf firmware/rtlwifi/ "$out/lib/firmware"
+  '';
+
+  meta = {
+    description = "Firmware for the newest Realtek rtlwifi codes";
+    inherit (src.meta) homepage;
+    license = licenses.unfreeRedistributableFirmware;
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ tvorog ];
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index ab703469c2b5..a8197fd49189 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -97,8 +97,8 @@ rec {
 
   grsecurity_testing = grsecPatch
     { kver   = "4.7.4";
-      grrev  = "201609152234";
-      sha256 = "0314lb1dp5bnq3wibxc63a8z75q0b7w6zsgd6ccmhl9vwv7sm253";
+      grrev  = "201609211951";
+      sha256 = "0h5lxl04rvww02ww0y21id6dc8mhglls8dqhjdcxdcpahxq1fb6y";
     };
 
   # This patch relaxes grsec constraints on the location of usermode helpers,
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
new file mode 100644
index 000000000000..94fc9ca05e78
--- /dev/null
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "nvme-cli-${version}";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "linux-nvme";
+    repo = "nvme-cli";
+    rev = "v${version}";
+    sha256 = "16n0gg1zx4fgadcq94kx6bgysqw60jvybjwynk7mj3fzdbvzrqyh";
+  };
+
+  makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "NVM-Express user space tooling for Linux";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tavyc ];
+  };
+}
diff --git a/pkgs/os-specific/linux/rtlwifi_new/default.nix b/pkgs/os-specific/linux/rtlwifi_new/default.nix
new file mode 100644
index 000000000000..0c7cb24e4655
--- /dev/null
+++ b/pkgs/os-specific/linux/rtlwifi_new/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, kernel }:
+
+with lib;
+
+let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/rtlwifi";
+
+in stdenv.mkDerivation rec {
+  name = "rtlwifi_new-${version}";
+  version = "2016-09-12";
+
+  src = fetchFromGitHub {
+    owner = "lwfinger";
+    repo = "rtlwifi_new";
+    rev = "7a1b37d2121e8ab1457f002b2729fc23e6ff3e10";
+    sha256 = "0z8grf0fak2ryxwzapp9di77c4bghzkv8lffv76idkcnxgq6sclv";
+  };
+
+  hardeningDisable = [ "pic" "format" ];
+
+  makeFlags = "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p ${modDestDir}
+    find . -name '*.ko' -exec cp --parents {} ${modDestDir} \;
+    find ${modDestDir} -name '*.ko' -exec xz -f {} \;
+  '';
+
+  meta = {
+    description = "The newest Realtek rtlwifi codes";
+    inherit (src.meta) homepage;
+    license = stdenv.lib.licenses.gpl2;
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ tvorog ];
+    priority = -1;
+  };
+}
diff --git a/pkgs/servers/asterisk/default.nix b/pkgs/servers/asterisk/default.nix
index d9bb0fd70eb3..bb45f0a00e6e 100644
--- a/pkgs/servers/asterisk/default.nix
+++ b/pkgs/servers/asterisk/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "13.6.0";
 
   src = fetchurl {
-    url = "http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${version}.tar.gz";
+    url = "http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-${version}.tar.gz";
     sha256 = "0nh0fnqx84as92kk9d73s0386cndd17l06y1c72jl2bdjhyba0ca";
   };
 
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index 2c2ad28e2921..bf0b40e1d7ba 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "caddy-${version}";
-  version = "v0.9.1";
+  version = "0.9.2";
 
   goPackagePath = "github.com/mholt/caddy";
 
@@ -11,8 +11,8 @@ buildGoPackage rec {
   src = fetchFromGitHub {
     owner = "mholt";
     repo = "caddy";
-    rev = version;
-    sha256 = "0slh4nf5pd42mgj1j9hzywqpc3p6d211dm6pdlhb6lyn8f6nprgp";
+    rev = "v${version}";
+    sha256 = "1nmimyykbjfnwbrka50z15d11z0fc6abpkr0cjbj678d5r9wpz33";
   };
 
   buildFlagsArray = ''
@@ -21,4 +21,11 @@ buildGoPackage rec {
   '';
 
   goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    homepage = https://caddyserver.com;
+    description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rushmorem ];
+  };
 }
diff --git a/pkgs/servers/caddy/deps.nix b/pkgs/servers/caddy/deps.nix
index 7d3d4ad7ba4c..d7c974ecb162 100644
--- a/pkgs/servers/caddy/deps.nix
+++ b/pkgs/servers/caddy/deps.nix
@@ -1,14 +1,6 @@
+# This file was generated by go2nix.
 [
   {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "99064174e013895bbd9b025c31100bd1d9b590ca";
-      sha256 = "058qrar8rvw3wb0ci1mf1axnqq2729cvv9zmdr4ms2nn9s97yiz9";
-    };
-  }
-  {
     goPackagePath = "github.com/dustin/go-humanize";
     fetch = {
       type = "git";
@@ -31,8 +23,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gorilla/websocket";
-      rev = "a69d25be2fe2923a97c2af6849b2f52426f68fc0";
-      sha256 = "1z09mff5yfdrw8vbylrgrick5m5hczjy8m2x6swdq8v062s45g3v";
+      rev = "2d1e4548da234d9cb742cc3628556fef86aafbac";
+      sha256 = "0n7af8pjjmg5rhb3104lyvn966l1p4dfblmy3g9b0plsmnzrz6g5";
     };
   }
   {
@@ -45,6 +37,15 @@
     };
   }
   {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "0a025b7e63adc15a622f29b0b2c4c3848243bbf6";
+      sha256 = "1iq7lbpsz7ks052mpznmkf8s4k43p51z4dik2n9ivrxk666q2wxi";
+    };
+  }
+  {
     goPackagePath = "github.com/jimstudt/http-authentication";
     fetch = {
       type = "git";
@@ -58,8 +59,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/lucas-clemente/aes12";
-      rev = "5a3c52721c1e81aa8162601ac2342486525156d5";
-      sha256 = "16z4h752na2d4sskjvbgi9bpwx874lpnzn6i13n33xjz599nps4y";
+      rev = "8ee5b5610baca43b60ecfad586b3c40d92a96e0c";
+      sha256 = "1lnzrr7f6cyb10gqji6433fvwi8zid0k019m694xyppv4pzgrc93";
     };
   }
   {
@@ -76,8 +77,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/lucas-clemente/quic-go";
-      rev = "c2af049b8af811a546bfa6b11f362c9c1e706343";
-      sha256 = "178w1qzpkyrkcnix093lj6dhgg5nylxg0aqmiff6f9ww2xknlw47";
+      rev = "8f7a96dfafd8b03eae5679702a837ed5bdf91327";
+      sha256 = "12qc7y8v3g16q3klh852f3v4yvbcp6h8am1q98ds2c1zay9jl50n";
     };
   }
   {
@@ -85,8 +86,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/lucas-clemente/quic-go-certificates";
-      rev = "4904164a1a6479e3b509f616ccd31a7b0e705d52";
-      sha256 = "1kpl8j4lqwq1xqkyikbczq8dwrybbgz4m9ny21a88v0da6r2bcfk";
+      rev = "d2f86524cced5186554df90d92529757d22c1cb6";
+      sha256 = "033099nv0y9pbv0v292x6g0mvwr2w02jf4vvpwx6sjpwbla4xjxd";
     };
   }
   {
@@ -94,8 +95,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/mholt/caddy";
-      rev = "c5aa5843d92a27eaf521e28684111030135d9cdc";
-      sha256 = "0slh4nf5pd42mgj1j9hzywqpc3p6d211dm6pdlhb6lyn8f6nprgp";
+      rev = "73916ccc3069de4720a77b6b817b0bb77bda6b44";
+      sha256 = "1nmimyykbjfnwbrka50z15d11z0fc6abpkr0cjbj678d5r9wpz33";
     };
   }
   {
@@ -108,12 +109,30 @@
     };
   }
   {
+    goPackagePath = "github.com/naoina/go-stringutil";
+    fetch = {
+      type = "git";
+      url = "https://github.com/naoina/go-stringutil";
+      rev = "6b638e95a32d0c1131db0e7fe83775cbea4a0d0b";
+      sha256 = "00831p1wn3rimybk1z8l30787kn1akv5jax5wx743nn76qcmkmc6";
+    };
+  }
+  {
+    goPackagePath = "github.com/naoina/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/naoina/toml";
+      rev = "751171607256bb66e64c9f0220c00662420c38e9";
+      sha256 = "07ivrcdd62y7jj5isrz7jhkqqc29s0wsn005mn0yxain51f8h7ly";
+    };
+  }
+  {
     goPackagePath = "github.com/russross/blackfriday";
     fetch = {
       type = "git";
       url = "https://github.com/russross/blackfriday";
-      rev = "93622da34e54fb6529bfb7c57e710f37a8d9cbd8";
-      sha256 = "19y4cx4afm3fjj7w83g0wklbzqdjm7m1j5nq64l4yq8bi50y2iv2";
+      rev = "35eb537633d9950afc8ae7bdf0edb6134584e9fc";
+      sha256 = "1hwi1nq5kkpcci7lf4fwhs8jj0mf6xcbdz1vgijpfyyd0zr6mphc";
     };
   }
   {
@@ -121,8 +140,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev = "10ef21a441db47d8b13ebcc5fd2310f636973c77";
-      sha256 = "1cnbzcf47cn796rcjpph1s64qrabhkv5dn9sbynsy7m9zdwr5f01";
+      rev = "1dba4b3954bc059efc3991ec364f9f9a35f597d2";
+      sha256 = "0pwap8lp79pldd95a1qi3xhlsa17m8zddpgc5jzvk6d1cjpsm6qg";
     };
   }
   {
@@ -130,8 +149,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/xenolf/lego";
-      rev = "823436d61175269716a88cd6627bfa603812f10c";
-      sha256 = "1j6nkw00d09ys0p4i7k4xad1fxczg3klvnw4x48wr1zaygnpaw7q";
+      rev = "82ac43327b01319544c050d5d78a4edeff9565d2";
+      sha256 = "0zs1l4dm0srkx78a7rqq1g8g4yn84c07177zbaa286jqpzgijahi";
     };
   }
   {
@@ -139,8 +158,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev = "b3cc7317554b3e708b116d997899e612bab100d6";
-      sha256 = "1mcrgsvqmghhvf9z99prm15flx9l3irpm20z2zmdmhsprhc0nr5v";
+      rev = "6ab629be5e31660579425a738ba8870beb5b7404";
+      sha256 = "1pk98j3wcxkns9whgazhid3if0dnaf57hmq0h6byq75aj9xbncxj";
     };
   }
   {
@@ -148,8 +167,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "7394c112eae4dba7e96bfcfe738e6373d61772b4";
-      sha256 = "1p8wsxnbsp2lq6hbza2n0zgv4sgpxzzjjlrmcngkhxj47kp3hin7";
+      rev = "f4fe4abe3c785295ddf81c7f1823bcd3bad391b6";
+      sha256 = "0l50x533pj0sj3gnr30zxgm51y4x5a5fwc515zj93iy1z0pyf9cn";
     };
   }
   {
@@ -166,8 +185,8 @@
     fetch = {
       type = "git";
       url = "https://gopkg.in/square/go-jose.v1";
-      rev = "a3927f83df1b1516f9e9dec71839c93e6bcf1db0";
-      sha256 = "0zbsy6hbv3p0ahcf4hviyv1vnpdywyf1hdspz8l6vj897myd019f";
+      rev = "139276ceb5afbf13e636c44e9382f0ca75c12ba3";
+      sha256 = "1f46qka0xzzkbsg01r9c9fi9zlzai7h83mp9hlwg9m5s73h8gzwj";
     };
   }
   {
@@ -175,8 +194,8 @@
     fetch = {
       type = "git";
       url = "https://gopkg.in/yaml.v2";
-      rev = "e4d366fc3c7938e2958e662b4258c7a89e1f0e3e";
-      sha256 = "1himz6569rcgn27q6sdrwvdldx45q2spgjb5cfihgb80zww8di8x";
+      rev = "31c299268d302dd0aa9a0dcf765a3d58971ac83f";
+      sha256 = "14jkpa8g0s448n2x5qdi05m59ncsdscby1wy2p089zxl9nqavm8h";
     };
   }
 ]
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 58f1ee6a3167..8b7957c31e1e 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, openssl, libtool, perl, libxml2 }:
 
-let version = "9.10.4"; in
+let version = "9.10.4-P2"; in
 
 stdenv.mkDerivation rec {
   name = "bind-${version}";
 
   src = fetchurl {
     url = "http://ftp.isc.org/isc/bind9/${version}/${name}.tar.gz";
-    sha256 = "0mmhzi4483mkak47wj255a36g3v0yilxwfwlbckr1hssinri5m7q";
+    sha256 = "08s48h5p916ixjiwgar4w6skc20crmg7yj1y7g89c083zvw8lnxk";
   };
 
   outputs = [ "bin" "dev" "out" "man" ];
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
new file mode 100644
index 000000000000..1955cce2a9f8
--- /dev/null
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "coredns-${version}";
+  version = "001";
+
+  goPackagePath = "github.com/miekg/coredns";
+  subPackages = [ "." ];
+
+  src = fetchFromGitHub {
+    owner = "miekg";
+    repo = "coredns";
+    rev = "v${version}";
+    sha256 = "1ybi0v40bsndiffm41hak3b3w22l1in392zcy75bpf2mklxywnak";
+  };
+
+  patches = [ ./pull-278.patch ];
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    homepage = https://coredns.io;
+    description = "A DNS server that runs middleware";
+    license = licenses.asl20;
+    maintainers = [ maintainers.rushmorem ];
+  };
+}
diff --git a/pkgs/servers/dns/coredns/deps.nix b/pkgs/servers/dns/coredns/deps.nix
new file mode 100644
index 000000000000..2aa442a8fef4
--- /dev/null
+++ b/pkgs/servers/dns/coredns/deps.nix
@@ -0,0 +1,453 @@
+# This file was generated by go2nix.
+[
+  {
+    goPackagePath = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/gocloud";
+      rev = "0a9baebe991e5ff35dd9f35578eb002cf07d229c";
+      sha256 = "18palgdg1ldfmjqm4almlcymx9f0kf6vy9lfspl0iwkv3wsnvfb6";
+    };
+  }
+  {
+    goPackagePath = "github.com/PuerkitoBio/purell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/purell";
+      rev = "8a290539e2e8629dbc4e6bad948158f790ec31f4";
+      sha256 = "1qhsy1nm96b9kb63svkvkqmmw15xg6irwcysisxdgzk64adfwqv1";
+    };
+  }
+  {
+    goPackagePath = "github.com/PuerkitoBio/urlesc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/PuerkitoBio/urlesc";
+      rev = "5bd2802263f21d8788851d5305584c82a5c75d7e";
+      sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp";
+    };
+  }
+  {
+    goPackagePath = "github.com/beorn7/perks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/beorn7/perks";
+      rev = "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9";
+      sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
+    };
+  }
+  {
+    goPackagePath = "github.com/blang/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/blang/semver";
+      rev = "60ec3488bfea7cca02b021d106d9911120d25fe9";
+      sha256 = "19pli07y5592g4dyjyj0jq5rn548vc3fz0qg3624vm1j5828p1c2";
+    };
+  }
+  {
+    goPackagePath = "github.com/cloudfoundry-incubator/candiedyaml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cloudfoundry-incubator/candiedyaml";
+      rev = "99c3df83b51532e3615f851d8c2dbb638f5313bf";
+      sha256 = "106nibg7423642gbkg88c5x2jxfz6nmxbribhwb8cr1rn9vpjaxs";
+    };
+  }
+  {
+    goPackagePath = "github.com/coreos/etcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/etcd";
+      rev = "c016325647ff1837d8e9695bc79837ff7549d31f";
+      sha256 = "0jm0kas8c2zhkaqibvzbx7bqfg67b9yb9cs0q8g9r0b9rxjr5prk";
+    };
+  }
+  {
+    goPackagePath = "github.com/coreos/go-oidc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/go-oidc";
+      rev = "fe7346e2e6855bda769d5b3db7d917f159c5613c";
+      sha256 = "141h47s2z56pff8fi926m7wzswkr34kj7hzwib8w5s8zxgdp0wld";
+    };
+  }
+  {
+    goPackagePath = "github.com/coreos/pkg";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/pkg";
+      rev = "3ac0863d7acf3bc44daf49afef8919af12f704ef";
+      sha256 = "0l5ans1ls2gknkrnhymgc0zbgg5nqjbjbqc51r611adcr0m6gg8l";
+    };
+  }
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "6d212800a42e8ab5c146b8ace3490ee17e5225f9";
+      sha256 = "01i0n1s4j7khb7n6mz2wymniz37q0vbzkgfv7rbi6p9hpg227q93";
+    };
+  }
+  {
+    goPackagePath = "github.com/docker/distribution";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docker/distribution";
+      rev = "431cfa3179d9b3766e39f6a74283db8bb5a13209";
+      sha256 = "0hwqlqns0igaa3hg1dvz2grgy46q0v8wixyzfsmxsr5xb4ggpf32";
+    };
+  }
+  {
+    goPackagePath = "github.com/emicklei/go-restful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/emicklei/go-restful";
+      rev = "c795848f1d7f574bbf767a8f17c7357e4003fed6";
+      sha256 = "0abnk4055kcz57v3f5d15pd5dvvlkg7bwfy1f22rmsqwzs44ixmz";
+    };
+  }
+  {
+    goPackagePath = "github.com/flynn/go-shlex";
+    fetch = {
+      type = "git";
+      url = "https://github.com/flynn/go-shlex";
+      rev = "3f9db97f856818214da2e1057f8ad84803971cff";
+      sha256 = "1j743lysygkpa2s2gii2xr32j7bxgc15zv4113b0q9jhn676ysia";
+    };
+  }
+  {
+    goPackagePath = "github.com/fsnotify/fsnotify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fsnotify/fsnotify";
+      rev = "f12c6236fe7b5cf6bcf30e5935d08cb079d78334";
+      sha256 = "1h5s03y6b17qj12p8fpm5pdijnsbfvaq38z7b2hfjn5qp45h02xb";
+    };
+  }
+  {
+    goPackagePath = "github.com/ghodss/yaml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ghodss/yaml";
+      rev = "aa0c862057666179de291b67d9f093d12b5a8473";
+      sha256 = "0cbc78n8l7h1gdzhrvahplcvr4v7n8v23vkgskfp843rcx5h6isr";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-openapi/jsonpointer";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/jsonpointer";
+      rev = "46af16f9f7b149af66e5d1bd010e3574dc06de98";
+      sha256 = "0w0fphmdycjzbsm1vppdcjc9aqinkcdzcq3pxikdvdqh5p791gsc";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-openapi/jsonreference";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/jsonreference";
+      rev = "13c6e3589ad90f49bd3e3bbe2c2cb3d7a4142272";
+      sha256 = "1fh4xcl9ijww4bdq656sx981d57w2c9zx5148jsxlsg4bsvxmwis";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-openapi/spec";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/spec";
+      rev = "2433d2f0fc794728337e0c5d65716e79e163f04d";
+      sha256 = "14kdzfzjs06c2050fsg9vc0mn12b6i72gj45964mzxa5a6i09ph6";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-openapi/swag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-openapi/swag";
+      rev = "0e04f5e499b19bf51031c01a00f098f25067d8dc";
+      sha256 = "0kbqrfargkx3yb6gj0k5rpi728pcgjyvy1as9x79sh3sgvnrq15f";
+    };
+  }
+  {
+    goPackagePath = "github.com/gogo/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gogo/protobuf";
+      rev = "a31fa025390fe54d2af14a04199ed08dea5dc2fd";
+      sha256 = "141059khzlkfjx5qsgzryqhl1mgilb13ha7syjm1297m54ch749c";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/glog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/glog";
+      rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
+      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "1f49d83d9aa00e6ce4fc8258c71cc7786aec968a";
+      sha256 = "0ny3nvjrsczihzmng2s0awvhq8k389l4lzl3vwgifi6ng34fszbj";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/cadvisor";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/cadvisor";
+      rev = "418c181ebad0d592828bd53c5704ed9af9a7c5a6";
+      sha256 = "1k3r7a333a6x53fs0anvraf8n93dyanjfwp396sng1zxchb07dk3";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/gofuzz";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/gofuzz";
+      rev = "fd52762d25a41827db7ef64c43756fd4b9f7e382";
+      sha256 = "1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/go-syslog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/go-syslog";
+      rev = "315de0c1920b18b942603ffdc2229e2af4803c17";
+      sha256 = "1z0kinqp8hbl7hw856jhx41ys97rc6hflcgwrkfyxj5fdx60xis6";
+    };
+  }
+  {
+    goPackagePath = "github.com/howeyc/gopass";
+    fetch = {
+      type = "git";
+      url = "https://github.com/howeyc/gopass";
+      rev = "26c6e1184fd5255fa5f5289d0b789a4819c203a4";
+      sha256 = "00fd4pa2dq8fala5sc6ics2721hnkh69p7d35w5lb2zf1i41l6dq";
+    };
+  }
+  {
+    goPackagePath = "github.com/imdario/mergo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/imdario/mergo";
+      rev = "50d4dbd4eb0e84778abe37cefef140271d96fade";
+      sha256 = "06z52vri1ymb0s8nk2qr4xmw068s4abh6b66qj4w92whjxmxsvnh";
+    };
+  }
+  {
+    goPackagePath = "github.com/jonboulle/clockwork";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jonboulle/clockwork";
+      rev = "bcac9884e7502bb2b474c0339d889cb981a2f27f";
+      sha256 = "1a732411y26arr0pq9j5rfkyql7rqxbkanjs4m59hil8cx8mb068";
+    };
+  }
+  {
+    goPackagePath = "github.com/juju/ratelimit";
+    fetch = {
+      type = "git";
+      url = "https://github.com/juju/ratelimit";
+      rev = "77ed1c8a01217656d2080ad51981f6e99adaa177";
+      sha256 = "1r7xdl3bpdzny4d05fpm229864ipghqwv5lplv5im5b4vhv9ryp7";
+    };
+  }
+  {
+    goPackagePath = "github.com/mailru/easyjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mailru/easyjson";
+      rev = "e978125a7e335d8f4db746a9ac5b44643f27416b";
+      sha256 = "1if7bzxs9ibq1a1d8z96djixqrxnwc2wplcbc67ddk071anrbs8w";
+    };
+  }
+  {
+    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/matttproud/golang_protobuf_extensions";
+      rev = "c12348ce28de40eed0136aa2b644d0ee0650e56c";
+      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
+    };
+  }
+  {
+    goPackagePath = "github.com/mholt/caddy";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mholt/caddy";
+      rev = "bbf954cbf2801bc32f4378fe5059eb16de3ae4d3";
+      sha256 = "1i5p9xz3lhir5k070a580mi77n4vbjlbglzi92qbn0mxrdvd13lr";
+    };
+  }
+  {
+    goPackagePath = "github.com/miekg/coredns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/coredns.git";
+      rev = "a8fb01bfd28e8b57f6d7b7d33f8282d807b2457d";
+      sha256 = "1ybi0v40bsndiffm41hak3b3w22l1in392zcy75bpf2mklxywnak";
+    };
+  }
+  {
+    goPackagePath = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev = "db96a2b759cdef4f11a34506a42eb8d1290c598e";
+      sha256 = "0h5n4psd0p7q55jadgsgz2a1aj791yanrfj76avalh6aawvdpcm6";
+    };
+  }
+  {
+    goPackagePath = "github.com/patrickmn/go-cache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/patrickmn/go-cache";
+      rev = "1881a9bccb818787f68c52bfba648c6cf34c34fa";
+      sha256 = "1nd0kqijx6mrxb8wlh20bx73mwj0fqzla2sr68y6j6lz3fsy1fw2";
+    };
+  }
+  {
+    goPackagePath = "github.com/pborman/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pborman/uuid";
+      rev = "b984ec7fa9ff9e428bd0cf0abf429384dfbe3e37";
+      sha256 = "0y4nxc0kzlmqfqi3w3m7r9h508bx80vxbzj4qn0mksp40mfhjxyv";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_golang";
+      rev = "5636dc67ae776adf5590da7349e70fbb9559972d";
+      sha256 = "0fb4w52zp0jk8218gwk4wgbhpj7d4hp6n00dvm8s0ajbysbx524d";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/client_model";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/client_model";
+      rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
+      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/common";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/common";
+      rev = "9a94032291f2192936512bab367bc45e77990d6a";
+      sha256 = "10ligvvdh6v5l7i1khirnhhfdhnlasxrqq39b3hxpnz9fq0fibg5";
+    };
+  }
+  {
+    goPackagePath = "github.com/prometheus/procfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/prometheus/procfs";
+      rev = "abf152e5f3e97f2fafac028d2cc06c1feb87ffa5";
+      sha256 = "0cp8lznv1b4zhi3wnbjkfxwzhkqd3wbmiy6mwgjanip8l9l3ykws";
+    };
+  }
+  {
+    goPackagePath = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev = "c7e63cf4530bcd3ba943729cee0efeff2ebea63f";
+      sha256 = "197mlkgb01zk86fxfl8r8maymcxsspqblg7hmngjxf7ivdid1i1l";
+    };
+  }
+  {
+    goPackagePath = "github.com/ugorji/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ugorji/go";
+      rev = "b7eff9abce531d6aeda923e759ae668e56601d21";
+      sha256 = "0w84jwpiq0knspc9pp8dfvr5z6h7yl3qdq59ihvlfixl3kczw5k4";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "6ab629be5e31660579425a738ba8870beb5b7404";
+      sha256 = "1pk98j3wcxkns9whgazhid3if0dnaf57hmq0h6byq75aj9xbncxj";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "f4fe4abe3c785295ddf81c7f1823bcd3bad391b6";
+      sha256 = "0l50x533pj0sj3gnr30zxgm51y4x5a5fwc515zj93iy1z0pyf9cn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev = "3c3a985cb79f52a3190fbc056984415ca6763d01";
+      sha256 = "0c7x8wkya56z03j2qfm61932npsddgqyggi75hkla9755d1inqlv";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "8f0908ab3b2457e2e15403d3697c9ef5cb4b57a9";
+      sha256 = "04va4pqygfzr89fx873k44bmivk7nybqalybi6q96lnn45h2scbr";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "2df9074612f50810d82416d2229398a1e7188c5c";
+      sha256 = "0ibg4pr9hxlvc5m4zn5hl4nsb6v5i0yfr9japsnjm010318df885";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/inf.v0";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/inf.v0";
+      rev = "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4";
+      sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
+    };
+  }
+  {
+    goPackagePath = "k8s.io/client-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/client-go";
+      rev = "93fcd402979cfad8a7151f96e016416947c6a3cb";
+      sha256 = "1v0kyav7i40wrahg9ng1vfq87xcp8r8hi4y7bspyfg35np6j8wdj";
+    };
+  }
+  {
+    goPackagePath = "k8s.io/kubernetes";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kubernetes/kubernetes";
+      rev = "313ef63993017597bd28f5efd23677820274cb58";
+      sha256 = "1rl2mwhg20h5ay3crg5jqiwabfwgn8amp4dps6qmzyy3pcrjvsa8";
+    };
+  }
+]
diff --git a/pkgs/servers/dns/coredns/pull-278.patch b/pkgs/servers/dns/coredns/pull-278.patch
new file mode 100644
index 000000000000..1323f898c785
--- /dev/null
+++ b/pkgs/servers/dns/coredns/pull-278.patch
@@ -0,0 +1,153 @@
+From 1158d4cb3a3cd43f1d0a72bd35c6dea9b1de345e Mon Sep 17 00:00:00 2001
+From: Manuel de Brito Fontes <aledbf@gmail.com>
+Date: Wed, 21 Sep 2016 14:16:52 -0300
+Subject: [PATCH] Fix k8s build
+
+---
+ contrib/kubernetes/testscripts/00_run_k8s.sh       |  2 +-
+ contrib/kubernetes/testscripts/10_setup_kubectl.sh |  2 +-
+ middleware/kubernetes/controller.go                | 38 ++++++++--------------
+ middleware/kubernetes/kubernetes.go                |  9 +++--
+ 4 files changed, 20 insertions(+), 31 deletions(-)
+
+diff --git a/contrib/kubernetes/testscripts/00_run_k8s.sh b/contrib/kubernetes/testscripts/00_run_k8s.sh
+index ef98a8e..7ff6811 100755
+--- a/contrib/kubernetes/testscripts/00_run_k8s.sh
++++ b/contrib/kubernetes/testscripts/00_run_k8s.sh
+@@ -5,7 +5,7 @@ set -e
+ # Based on instructions at: http://kubernetes.io/docs/getting-started-guides/docker/
+ 
+ #K8S_VERSION=$(curl -sS https://storage.googleapis.com/kubernetes-release/release/latest.txt)
+-K8S_VERSION="v1.2.4"
++K8S_VERSION="v1.3.7"
+ 
+ ARCH="amd64"
+ 
+diff --git a/contrib/kubernetes/testscripts/10_setup_kubectl.sh b/contrib/kubernetes/testscripts/10_setup_kubectl.sh
+index 1778671..a7cfc1e 100755
+--- a/contrib/kubernetes/testscripts/10_setup_kubectl.sh
++++ b/contrib/kubernetes/testscripts/10_setup_kubectl.sh
+@@ -10,7 +10,7 @@ cd ${BASEDIR}
+ echo "Setting up kubectl..."
+ 
+ if [ ! -e kubectl ]; then
+-	curl -O http://storage.googleapis.com/kubernetes-release/release/v1.2.4/bin/linux/amd64/kubectl
++	curl -O http://storage.googleapis.com/kubernetes-release/release/v1.3.7/bin/linux/amd64/kubectl
+ 	chmod u+x kubectl
+ fi
+ 
+diff --git a/middleware/kubernetes/controller.go b/middleware/kubernetes/controller.go
+index 126d415..c7f9e9e 100644
+--- a/middleware/kubernetes/controller.go
++++ b/middleware/kubernetes/controller.go
+@@ -55,12 +55,15 @@ func newdnsController(kubeClient *client.Client, resyncPeriod time.Duration, lse
+ 		},
+ 		&api.Endpoints{}, resyncPeriod, cache.ResourceEventHandlerFuncs{})
+ 
+-	dns.svcLister.Store, dns.svcController = cache.NewInformer(
++	dns.svcLister.Indexer, dns.svcController = cache.NewIndexerInformer(
+ 		&cache.ListWatch{
+ 			ListFunc:  serviceListFunc(dns.client, namespace, dns.selector),
+ 			WatchFunc: serviceWatchFunc(dns.client, namespace, dns.selector),
+ 		},
+-		&api.Service{}, resyncPeriod, cache.ResourceEventHandlerFuncs{})
++		&api.Service{},
++		resyncPeriod,
++		cache.ResourceEventHandlerFuncs{},
++		cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
+ 
+ 	dns.nsLister.Store, dns.nsController = cache.NewInformer(
+ 		&cache.ListWatch{
+@@ -163,47 +166,34 @@ func (dns *dnsController) GetNamespaceList() *api.NamespaceList {
+ 	return &nsList
+ }
+ 
+-func (dns *dnsController) GetServiceList() *api.ServiceList {
+-	svcList, err := dns.svcLister.List()
++func (dns *dnsController) GetServiceList() []*api.Service {
++	svcs, err := dns.svcLister.List(labels.Everything())
+ 	if err != nil {
+-		return &api.ServiceList{}
++		return []*api.Service{}
+ 	}
+-
+-	return &svcList
++	return svcs
+ }
+ 
+ // GetServicesByNamespace returns a map of
+ // namespacename :: [ kubernetesService ]
+ func (dns *dnsController) GetServicesByNamespace() map[string][]api.Service {
+ 	k8sServiceList := dns.GetServiceList()
+-	if k8sServiceList == nil {
+-		return nil
+-	}
+-
+-	items := make(map[string][]api.Service, len(k8sServiceList.Items))
+-	for _, i := range k8sServiceList.Items {
++	items := make(map[string][]api.Service, len(k8sServiceList))
++	for _, i := range k8sServiceList {
+ 		namespace := i.Namespace
+-		items[namespace] = append(items[namespace], i)
++		items[namespace] = append(items[namespace], *i)
+ 	}
+-
+ 	return items
+ }
+ 
+ // GetServiceInNamespace returns the Service that matches
+ // servicename in the namespace
+ func (dns *dnsController) GetServiceInNamespace(namespace string, servicename string) *api.Service {
+-	svcKey := fmt.Sprintf("%v/%v", namespace, servicename)
+-	svcObj, svcExists, err := dns.svcLister.Store.GetByKey(svcKey)
+-
++	svcObj, err := dns.svcLister.Services(namespace).Get(servicename)
+ 	if err != nil {
+ 		// TODO(...): should return err here
+ 		return nil
+ 	}
+ 
+-	if !svcExists {
+-		// TODO(...): should return err here
+-		return nil
+-	}
+-
+-	return svcObj.(*api.Service)
++	return svcObj
+ }
+diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go
+index 0bd1dc7..eddc58b 100644
+--- a/middleware/kubernetes/kubernetes.go
++++ b/middleware/kubernetes/kubernetes.go
+@@ -183,14 +183,14 @@ func (k *Kubernetes) Get(namespace string, nsWildcard bool, servicename string,
+ 
+ 	var resultItems []api.Service
+ 
+-	for _, item := range serviceList.Items {
++	for _, item := range serviceList {
+ 		if symbolMatches(namespace, item.Namespace, nsWildcard) && symbolMatches(servicename, item.Name, serviceWildcard) {
+ 			// If namespace has a wildcard, filter results against Corefile namespace list.
+ 			// (Namespaces without a wildcard were filtered before the call to this function.)
+ 			if nsWildcard && (len(k.Namespaces) > 0) && (!util.StringInSlice(item.Namespace, k.Namespaces)) {
+ 				continue
+ 			}
+-			resultItems = append(resultItems, item)
++			resultItems = append(resultItems, *item)
+ 		}
+ 	}
+ 
+@@ -216,12 +216,11 @@ func isKubernetesNameError(err error) bool {
+ }
+ 
+ func (k *Kubernetes) getServiceRecordForIP(ip, name string) []msg.Service {
+-	svcList, err := k.APIConn.svcLister.List()
++	svcList, err := k.APIConn.svcLister.List(labels.Everything())
+ 	if err != nil {
+ 		return nil
+ 	}
+-
+-	for _, service := range svcList.Items {
++	for _, service := range svcList {
+ 		if service.Spec.ClusterIP == ip {
+ 			return []msg.Service{msg.Service{Host: ip}}
+ 		}
diff --git a/pkgs/servers/http/lighttpd/default.nix b/pkgs/servers/http/lighttpd/default.nix
index 8f75461070f2..549c401fec73 100644
--- a/pkgs/servers/http/lighttpd/default.nix
+++ b/pkgs/servers/http/lighttpd/default.nix
@@ -7,11 +7,11 @@ assert enableMagnet -> lua5_1 != null;
 assert enableMysql -> mysql != null;
 
 stdenv.mkDerivation rec {
-  name = "lighttpd-1.4.40";
+  name = "lighttpd-1.4.41";
 
   src = fetchurl {
     url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/${name}.tar.xz";
-    sha256 = "13agkmxii11kyary7pmv8kw4w1rp15swx800d98nqkb0yzy0sic0";
+    sha256 = "0v3b6hp8hfwg7kmmxs64hdn9iqkql5qjv2389wl7pp6nyqz3ik2b";
   };
 
   buildInputs = [ pkgconfig pcre libxml2 zlib attr bzip2 which file openssl ]
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 3991e2b99d5e..c0aed4655b3a 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix (args // {
-  version = "1.11.3";
-  sha256 = "042689m88bjhf7gsly4kl4gjyqdabcnizshxvdlp14gkz507yrja";
+  version = "1.11.4";
+  sha256 = "0fvb09ycxz3xnyynav6ybj6miwh9kv8jcb2vzrmvqhzn8cgiq8h6";
 })
diff --git a/pkgs/servers/http/tomcat/default.nix b/pkgs/servers/http/tomcat/default.nix
index 35ac3623e312..00aaff899dc4 100644
--- a/pkgs/servers/http/tomcat/default.nix
+++ b/pkgs/servers/http/tomcat/default.nix
@@ -5,12 +5,12 @@ let
   common = { versionMajor, versionMinor, sha256 } @ args: stdenv.mkDerivation (rec {
     name = "apache-tomcat-${version}";
     version = "${versionMajor}.${versionMinor}";
-    
+
     src = fetchurl {
       url = "mirror://apache/tomcat/tomcat-${versionMajor}/v${version}/bin/${name}.tar.gz";
       inherit sha256;
     };
-    
+
     outputs = [ "out" "webapps" ];
     installPhase =
       ''
@@ -19,7 +19,7 @@ let
         mkdir -p $webapps/webapps
         mv $out/webapps $webapps/
       '';
-    
+
     meta = {
       homepage = https://tomcat.apache.org/;
       description = "An implementation of the Java Servlet and JavaServer Pages technologies";
@@ -39,8 +39,8 @@ in {
 
   tomcat7 = common {
     versionMajor = "7";
-    versionMinor = "0.70";
-    sha256 = "0x4chqb7kkmadmhf2hlank856hw2vpgjl14fak74ybimlcb3dwqk";
+    versionMinor = "0.72";
+    sha256 = "1nx5pmz3bq3n20fdspqh8ljqy1nj67rwi1vsqjpkrvd996x7p73p";
   };
 
   tomcat8 = common {
@@ -54,11 +54,11 @@ in {
     versionMinor = "5.5";
     sha256 = "0idfxjrw5q45f531gyjnv6xjkbj9nhy2v1w4z7558z96230a0fqj";
   };
-  
+
   tomcatUnstable = common {
     versionMajor = "9";
     versionMinor = "0.0.M10";
     sha256 = "0p3pqwz9zjvr9w73divsyaa53mbazf0icxfs06wvgxsvkbgj5gq9";
   };
-  
+
 }
diff --git a/pkgs/servers/mail/postfix/pflogsumm.nix b/pkgs/servers/mail/postfix/pflogsumm.nix
index f73a22e130ab..978ccec503d2 100644
--- a/pkgs/servers/mail/postfix/pflogsumm.nix
+++ b/pkgs/servers/mail/postfix/pflogsumm.nix
@@ -28,6 +28,7 @@ buildPerlPackage rec {
 
   meta = {
     homepage = "http://jimsun.linxnet.com/postfix_contrib.html";
+    maintainers = with stdenv.lib.maintainers; [ schneefux ];
     description = "Postfix activity overview";
     license = stdenv.lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
new file mode 100644
index 000000000000..bb2735461e00
--- /dev/null
+++ b/pkgs/servers/nextcloud/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  name= "nextcloud-${version}";
+  version = "10.0.0";
+
+  src = fetchurl {
+    url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2";
+    sha256 = "07vnhw3xrady7p7y2hc3sm9bcdj21gxyx9rwgawmy28019y1gahs";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "env-variable.patch";
+      url = "https://github.com/nextcloud/server/commit/4277051442c2b6025da936493cb674dcf754d34c.patch";
+      sha256 = "1r1xcka9j9n0mkvj2nnhlwvhzicv9jjnxcszxs5g5ji88i1y0md2";
+    }) # exposes $NEXTCLOUD_CONFIG_DIR for Nextcloud 10 and below
+  ];
+
+  installPhase = ''
+    mkdir -p $out/
+    cp -R ./* $out/
+  '';
+
+  meta = {
+    description = "Sharing solution for files, calendars, contacts and more";
+    homepage = https://nextcloud.com;
+    maintainers = with stdenv.lib.maintainers; [ schneefux ];
+    license = stdenv.lib.licenses.agpl3Plus;
+    platforms = with stdenv.lib.platforms; unix;
+  };
+}
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index ab4524e69593..ee1987bd7e33 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -80,6 +80,11 @@ in stdenv.mkDerivation rec {
     substituteInPlace src/third_party/s2/s2cap.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s2latlng.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s2latlngrect.cc --replace drem remainder
+  '' + stdenv.lib.optionalString stdenv.isi686 ''
+
+    # don't fail by default on i686
+    substituteInPlace src/mongo/db/storage/storage_options.h \
+      --replace 'engine("wiredTiger")' 'engine("mmapv1")'
   '';
 
   buildPhase = ''
diff --git a/pkgs/servers/sql/cockroachdb/default.nix b/pkgs/servers/sql/cockroachdb/default.nix
index 0ecbdab9ad6c..0a5e0d170403 100644
--- a/pkgs/servers/sql/cockroachdb/default.nix
+++ b/pkgs/servers/sql/cockroachdb/default.nix
@@ -14,6 +14,11 @@ buildGoPackage rec {
     sha256 = "11camp588vsccxlc138l7x4qws2fj5wpx1177irzayqdng8dilx3";
   };
 
+  buildFlagsArray = ''
+    -ldflags=
+      -X github.com/cockroachdb/cockroach/build.tag=${version}
+  '';
+
   buildInputs = [ gcc ];
 
   goDeps = ./deps.nix;
@@ -22,6 +27,7 @@ buildGoPackage rec {
     homepage = https://www.cockroachlabs.com;
     description = "A scalable, survivable, strongly-consistent SQL database";
     license = licenses.asl20;
+    platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.rushmorem ];
   };
 }
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index a56df1a9c28c..ebaecd2bb875 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -15,11 +15,11 @@ mariadb = everything // {
 };
 
 common = rec { # attributes common to both builds
-  version = "10.1.16";
+  version = "10.1.17";
 
   src = fetchurl {
     url    = "https://downloads.mariadb.org/interstitial/mariadb-${version}/source/mariadb-${version}.tar.gz";
-    sha256 = "14s3wq1c25n62n75hkixl8n7cni4m73w055nsx4czm655k33bjv7";
+    sha256 = "1ddalhxxcn95qp5b50z213niylcd0s6bqphid0c7c624wg2mm92c";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/sql/mysql/5.5.x.nix b/pkgs/servers/sql/mysql/5.5.x.nix
index 0849e25057b4..d9e324efd44f 100644
--- a/pkgs/servers/sql/mysql/5.5.x.nix
+++ b/pkgs/servers/sql/mysql/5.5.x.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.5.50";
+  version = "5.5.52";
 
   src = fetchurl {
     url = "mirror://mysql/MySQL-5.5/${name}.tar.gz";
-    sha256 = "0lgr6badwnwbrzm6sbll4a25m02xfy85v4q6q0rq5cdjn745bb2y";
+    sha256 = "1zb2h6nmmm42qcc808bwa3sdlhyyyglv44jy4pfxmx5kwqyy283q";
   };
 
   patches = if stdenv.isCygwin then [
diff --git a/pkgs/servers/sql/mysql/jdbc/default.nix b/pkgs/servers/sql/mysql/jdbc/default.nix
index 3fb0c1e86eb4..046eb6cfca98 100644
--- a/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, ant, unzip}:
 
-stdenv.mkDerivation {
-  name = "mysql-connector-java-5.1.38";
+stdenv.mkDerivation rec {
+  name = "mysql-connector-java-5.1.39";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.zip;
-    sha256 = "0b1j2dylnpk6b17gn3168qdrrwq8kdil57nxrd08n1lnkirdsx33";
+    url = "http://dev.mysql.com/get/Downloads/Connector-J/${name}.zip";
+    sha256 = "0d0g51hfx7a2r6nbni8yramg4vpqk0sql0aaib6q576a0nnrq78r";
   };
 
   buildInputs = [ unzip ant ];
diff --git a/pkgs/servers/sql/postgresql/pg_repack/default.nix b/pkgs/servers/sql/postgresql/pg_repack/default.nix
new file mode 100644
index 000000000000..9a6410490c54
--- /dev/null
+++ b/pkgs/servers/sql/postgresql/pg_repack/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline }:
+
+stdenv.mkDerivation rec {
+    name = "pg_repack-${version}";
+    version = "1.3.4";
+
+    buildInputs = [ postgresql openssl zlib readline ];
+
+    src = fetchFromGitHub {
+      owner = "reorg";
+      repo = "pg_repack";
+      rev = "ver_${version}";
+      sha256 = "1hig4x8iycchlp42q8565jzi6hkj8gpbhl9kpn73jvk7afl7z0c8";
+    };
+
+    installPhase = ''
+      install -D bin/pg_repack -t $out/bin/
+      install -D lib/pg_repack.so -t $out/lib/
+      install -D lib/{pg_repack--${version}.sql,pg_repack.control} -t $out/share/extension
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Reorganize tables in PostgreSQL databases with minimal locks";
+      longDescription = ''
+        pg_repack is a PostgreSQL extension which lets you remove bloat from tables and indexes, and optionally restore
+        the physical order of clustered indexes. Unlike CLUSTER and VACUUM FULL it works online, without holding an
+        exclusive lock on the processed tables during processing. pg_repack is efficient to boot,
+        with performance comparable to using CLUSTER directly.
+      '';
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ danbst ];
+      inherit (postgresql.meta) platforms;
+      inherit (src.meta) homepage;
+    };
+}
diff --git a/pkgs/servers/web-apps/selfoss/default.nix b/pkgs/servers/web-apps/selfoss/default.nix
new file mode 100644
index 000000000000..9b11e1261372
--- /dev/null
+++ b/pkgs/servers/web-apps/selfoss/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "selfoss-${version}";
+  version = "2.15";
+
+  src = fetchFromGitHub {
+    owner = "SSilence";
+    repo = "selfoss";
+    rev = version;
+    sha256 = "0ljpyd354yalpnqwj6xk9b9mq4h6p8jbqznapj7nvfybas8faq15";
+  };
+
+  buildPhases = ["unpackPhase" "installPhase"];
+
+  installPhase = ''
+    mkdir $out
+    cp -ra * $out/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Web-based news feed (RSS/Atom) aggregator";
+    license = licenses.gpl3;
+    homepage = http://http://selfoss.aditu.de/;
+    platforms = platforms.all;
+    maintainers = [ maintainers.regnat ];
+  };
+}
+
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 8ea3e648c311..0e927dfe1c7a 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -8,13 +8,13 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "salt-${version}";
-  version = "2015.8.8";
+  version = "2016.3.3";
 
   disabled = pythonPackages.isPy3k;
 
   src = fetchurl {
     url = "mirror://pypi/s/salt/${name}.tar.gz";
-    sha256 = "1xcfcs50pyammb60myph4f8bi2r6iwkxwsnnhrjwvkv2ymxwxv5j";
+    sha256 = "1djjglnh6203y8dirziz5w6zh2lgszxp8ivi86nb7fgijj2h61jr";
   };
 
   propagatedBuildInputs = with pythonPackages; [
@@ -26,7 +26,6 @@ pythonPackages.buildPythonApplication rec {
     pyyaml
     pyzmq
     requests
-    salttesting
     tornado
   ] ++ extraInputs;
 
diff --git a/pkgs/tools/admin/salt/testing.nix b/pkgs/tools/admin/salt/testing.nix
index 14105dc2f98c..ab5897fab6ca 100644
--- a/pkgs/tools/admin/salt/testing.nix
+++ b/pkgs/tools/admin/salt/testing.nix
@@ -2,17 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "SaltTesting-${version}";
-  version = "2015.7.10";
+  version = "2016.9.7";
 
   disabled = pythonPackages.isPy3k;
 
-  propagatedBuildInputs = with pythonPackages; [
-    six
-  ];
-
   src = fetchurl {
     url = "mirror://pypi/S/SaltTesting/${name}.tar.gz";
-    sha256 = "0p0y8kb77pis18rcig1kf9dnns4bnfa3mr91q40lq4mw63l1b34h";
+    sha256 = "0vcw1b1176qm9nkic3sbxh6vnv9kpd9kgyqz5fpsp5jnb2hsf1qx";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/audio/pnmixer/default.nix b/pkgs/tools/audio/pnmixer/default.nix
index b9c602dd7670..34946355d108 100644
--- a/pkgs/tools/audio/pnmixer/default.nix
+++ b/pkgs/tools/audio/pnmixer/default.nix
@@ -1,36 +1,29 @@
-{ stdenv, fetchFromGitHub, alsaLib, pkgconfig, gtk3, glibc, autoconf, automake, libnotify, libX11, intltool }:
+{ stdenv, fetchFromGitHub, pkgconfig, intltool, autoconf, automake, alsaLib, gtk3, glibc, libnotify, libX11 }:
 
 stdenv.mkDerivation rec {
   name = "pnmixer-${version}";
-  version = "2016-04-23";
+  version = "0.7";
 
   src = fetchFromGitHub {
     owner = "nicklan";
     repo = "pnmixer";
-    rev = "cb20096716dbb5440b6560d81108d9c8f7188c48";
-    sha256 = "17gl5fb3hpdgxyys8h5k3nraw7qdyqv9k9kz8ykr5h7gg29nxy66";
+    rev = "v${version}";
+    sha256 = "077l28qhr82ifqfwc2nqi5q1hmi6dyqqbhmjcsn27p4y433f3rpb";
   };
 
-  nativeBuildInputs = [
-    pkgconfig autoconf automake intltool
-  ];
+  nativeBuildInputs = [ pkgconfig autoconf automake intltool ];
 
-  buildInputs = [
-    alsaLib gtk3 glibc libnotify libX11
-  ];
+  buildInputs = [ alsaLib gtk3 glibc libnotify libX11 ];
 
   preConfigure = ''
     ./autogen.sh
   '';
 
-  # work around a problem related to gtk3 updates
-  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
-
   meta = with stdenv.lib; {
     homepage = https://github.com/nicklan/pnmixer;
     description = "ALSA mixer for the system tray";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ campadrenalin ];
     platforms = platforms.linux;
+    maintainers = with maintainers; [ campadrenalin romildo ];
   };
 }
diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix
index 408539561c7e..606e049703df 100644
--- a/pkgs/tools/graphics/gmic/default.nix
+++ b/pkgs/tools/graphics/gmic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "gmic-${version}";
-  version = "1.7.4";
+  version = "1.7.7";
 
   src = fetchurl {
     url = "http://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "1k4swqi1adq479b6zdpvy5kdpkvjkfihkj9iwgw9mgi0xdqikjry";
+    sha256 = "0shcxgq8nc391c0y0zh3l87g3p7fvsmgshi1x1jvvwwq1b9nf6vp";
   };
 
   buildInputs = [ fftw zlib libjpeg libtiff libpng ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   preBuild = ''
     buildFlagsArray=( \
       CURL_CFLAGS= CURL_LIBS= \
-      EXR_CFLAGS= EXR_LIBS= \
+      OPENEXR_CFLAGS= OPENEXR_LIBS= \
       OPENCV_CFLAGS= OPENCV_LIBS= \
       X11_CFLAGS="-Dcimg_display=0" X11_LIBS= \
       cli \
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = http://gmic.eu/;
     license = licenses.cecill20;
     maintainers = [ maintainers.rycee ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix
new file mode 100644
index 000000000000..3ca6f3ffcfe6
--- /dev/null
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-uniemoji/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub
+, python3Packages
+}:
+
+stdenv.mkDerivation rec {
+  name = "ibus-uniemoji-${version}";
+  version = "2016-09-20";
+
+  src = fetchFromGitHub {
+    owner = "salty-horse";
+    repo = "ibus-uniemoji";
+    rev = "c8931a4807a721168e45463ecba00805adb3fe8d";
+    sha256 = "0fydxkdjsbfbrbb8238rfnshmhp11c38hsa7y2gp1ii6mkjngb1j";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ pyxdg python-Levenshtein ];
+
+  makeFlags = [ "PREFIX=$(out)" "SYSCONFDIR=$(out)/etc"
+                "PYTHON=${python3Packages.python.interpreter}" ];
+
+  postPatch = ''
+    sed -i "s,/etc/xdg/,$out/etc/xdg/," uniemoji.py
+    sed -i "s,/usr/share/,$out/share/,g" uniemoji.xml.in
+  '';
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description  = "Input method (ibus) for entering unicode symbols and emoji by name";
+    homepage     = "https://github.com/salty-horse/ibus-uniemoji";
+    license      = with licenses; [ gpl3 mit ];
+    platforms    = platforms.linux;
+    maintainers  = with maintainers; [ aske ];
+  };
+}
diff --git a/pkgs/tools/misc/docbook2mdoc/default.nix b/pkgs/tools/misc/docbook2mdoc/default.nix
new file mode 100644
index 000000000000..fbe1cc22376e
--- /dev/null
+++ b/pkgs/tools/misc/docbook2mdoc/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, expat }:
+
+stdenv.mkDerivation rec {
+  name = "docbook2mdoc-${version}";
+  version = "0.0.9";
+
+  src = fetchurl {
+    url = "http://mdocml.bsd.lv/docbook2mdoc/snapshots/${name}.tgz";
+    sha256 = "07il80sg89xf6ym4bry6hxdacfzqgbwkxzyf7bjaihmw5jj0lclk";
+  };
+
+  buildInputs = [ expat.dev ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://mdocml.bsd.lv/";
+    description = "converter from DocBook V4.x and v5.x XML into mdoc";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ramkromberg ];
+  };
+}
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index 60a7007db195..3cb5c5680386 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "fzf-${version}";
-  version = "0.13.5";
+  version = "0.15.1";
   rev = "${version}";
 
   goPackagePath = "github.com/junegunn/fzf";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "junegunn";
     repo = "fzf";
-    sha256 = "1zfl53nv0b2wsmgbsf850yafqkx9pplpx339iiw4037msdjqhi19";
+    sha256 = "0wj5nhrrgx4nkiqwjp5wpfzdyikrjv4qr5x39s5094yc4p2k30b1";
   };
 
   buildInputs = [ ncurses ];
@@ -23,12 +23,19 @@ buildGoPackage rec {
     sed -i -e "s|expand('<sfile>:h:h').'/bin/fzf-tmux'|'$bin/bin/fzf-tmux'|" plugin/fzf.vim
   '';
 
-  postInstall= ''
+  postInstall = ''
     cp $src/bin/fzf-tmux $bin/bin
     mkdir -p $out/share/vim-plugins
     ln -s $out/share/go/src/github.com/junegunn/fzf $out/share/vim-plugins/${name}
   '';
 
+  preFixup = stdenv.lib.optionalString stdenv.isDarwin ''
+    # fixes cycle between $out and $bin
+    # otool -l shows that the binary includes an LC_RPATH to $out/lib
+    # it seems safe to remove that since but the directory does not exist.
+    install_name_tool -delete_rpath $out/lib $bin/bin/fzf
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://github.com/junegunn/fzf;
     description = "A command-line fuzzy finder written in Go";
diff --git a/pkgs/tools/misc/pod2mdoc/default.nix b/pkgs/tools/misc/pod2mdoc/default.nix
new file mode 100644
index 000000000000..0c96908401b5
--- /dev/null
+++ b/pkgs/tools/misc/pod2mdoc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "pod2mdoc-${version}";
+  version = "0.0.10";
+
+  src = fetchurl {
+    url = "http://mdocml.bsd.lv/pod2mdoc/snapshots/${name}.tgz";
+    sha256 = "0nwa9zv9gmfi5ysz1wfm60kahc7nv0133n3dfc2vh2y3gj8mxr4f";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+    install -m 0755 pod2mdoc $out/bin
+    install -m 0444 pod2mdoc.1 $out/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://mdocml.bsd.lv/";
+    description = "converter from POD into mdoc";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ramkromberg ];
+  };
+}
diff --git a/pkgs/tools/misc/texi2mdoc/default.nix b/pkgs/tools/misc/texi2mdoc/default.nix
new file mode 100644
index 000000000000..2404ab9da899
--- /dev/null
+++ b/pkgs/tools/misc/texi2mdoc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "texi2mdoc-${version}";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "http://mdocml.bsd.lv/texi2mdoc/snapshots/${name}.tgz";
+    sha256 = "1zjb61ymwfkw6z5g0aqmsn6qpw895zdxv7fv3059gj3wqa3zsibs";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://mdocml.bsd.lv/";
+    description = "converter from Texinfo into mdoc";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ramkromberg ];
+  };
+}
diff --git a/pkgs/tools/misc/xflux/gui.nix b/pkgs/tools/misc/xflux/gui.nix
index 8300c8ef30af..2b18d4e910d5 100644
--- a/pkgs/tools/misc/xflux/gui.nix
+++ b/pkgs/tools/misc/xflux/gui.nix
@@ -1,22 +1,17 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage,
-  pexpect,
-  pyGtkGlade,
-  pygobject,
-  pyxdg,
-  gnome_python,
-  libappindicator-gtk2,
-  xflux,
-  python
+{ stdenv, fetchFromGitHub, buildPythonPackage
+, pexpect, pyGtkGlade, pygobject, pyxdg
+, gnome_python, python
+, libappindicator-gtk2, xflux, librsvg, wrapGAppsHook
 }:
 buildPythonPackage rec {
   name = "xflux-gui-${version}";
-  version = "2016-08-08";
+  version = "2016-09-21";
 
   src = fetchFromGitHub {
     repo = "xflux-gui";
     owner = "xflux-gui";
-    rev = "4125e70b6ad0aeda7de46b3a7083a26c392555dc";
-    sha256 = "1l56f59hnjyi7nn8wn3dfdx6lw2qjbrhdlcfz0qvwj6b0953f2s7";
+    rev = "0b56204477494b473a390e8b0db043437ec14f32";
+    sha256 = "15pr8f31jnhqjlpvasnj6cmm6hw5gljphh2pxzav3zd9bp4yl56r";
   };
 
   # not sure if these need to be propagated or not?
@@ -29,15 +24,17 @@ buildPythonPackage rec {
     gnome_python
   ];
 
-  buildInputs = [
-    xflux
-  ];
+  buildInputs = [ xflux librsvg ];
+
+  nativeBuildInputs = [ wrapGAppsHook ];
 
   postPatch = ''
      substituteInPlace src/fluxgui/xfluxcontroller.py --replace "pexpect.spawn(\"xflux\"" "pexpect.spawn(\"${xflux}/bin/xflux\""
   '';
 
   postFixup = ''
+    wrapGAppsHook
+    makeWrapperArgs="''${gappsWrapperArgs[@]}"
     wrapPythonPrograms
     patchPythonScript $out/${python.sitePackages}/fluxgui/fluxapp.py
   '';
diff --git a/pkgs/tools/misc/yle-dl/default.nix b/pkgs/tools/misc/yle-dl/default.nix
index c6efac3ffe60..a7f2d445bca5 100644
--- a/pkgs/tools/misc/yle-dl/default.nix
+++ b/pkgs/tools/misc/yle-dl/default.nix
@@ -2,20 +2,17 @@
 
 stdenv.mkDerivation rec {
   name = "yle-dl-${version}";
-  version = "2.9.1";
+  version = "2.11";
 
   src = fetchFromGitHub {
     owner = "aajanki";
     repo = "yle-dl";
     rev = version;
-    sha256 = "1irpcp9iw2cw85sj1kzndmrw8350p9q7cfghjx2xkh2czk9k7whq";
+    sha256 = "1fa2a25j3wwk3m6q1alilklwhqf337ch8rj6bwricc5zqb58qivc";
   };
 
   patchPhase = ''
     substituteInPlace yle-dl --replace '/usr/local/share/' "$out/share/"
-
-    # HACK: work around https://github.com/NixOS/nixpkgs/issues/9593
-    substituteInPlace yle-dl --replace '/usr/bin/env python2' '/usr/bin/env python'
   '';
 
   buildInputs = [ pythonPackages.wrapPython ];
diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix
index 105ddd1552f2..19e87d3a88b7 100644
--- a/pkgs/tools/networking/aria2/default.nix
+++ b/pkgs/tools/networking/aria2/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "aria2-${version}";
-  version = "1.26.1";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner = "aria2";
     repo = "aria2";
     rev = "release-${version}";
-    sha256 = "1nf7z55cc6ljpz7zzb8ppg8ybg531gfbhyggya7lnr5ka74h87b5";
+    sha256 = "003m80gdcqfxi5jjzwiszql5y8lrj7a59gjygy0ya72fa9j4l9mi";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/tools/networking/chrony/default.nix b/pkgs/tools/networking/chrony/default.nix
index f5b5893d5437..d405d08e0abd 100644
--- a/pkgs/tools/networking/chrony/default.nix
+++ b/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 stdenv.mkDerivation rec {
   name = "chrony-${version}";
 
-  version = "2.3";
+  version = "2.4";
 
   src = fetchurl {
     url = "http://download.tuxfamily.org/chrony/${name}.tar.gz";
-    sha256 = "1cncjapm98hv1nyrqlanjpz8k5ny6rp4vnf0gjl0zyqj619gpgsq";
+    sha256 = "07rrys5axrz4grfy7fj3ds0r9ny1qcwiswsb2318jciklb6yf14d";
   };
 
   buildInputs = [ readline texinfo nss nspr ] ++ stdenv.lib.optional stdenv.isLinux libcap;
diff --git a/pkgs/tools/networking/davix/default.nix b/pkgs/tools/networking/davix/default.nix
index 748e28407b26..37226d3dd7b2 100644
--- a/pkgs/tools/networking/davix/default.nix
+++ b/pkgs/tools/networking/davix/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, openssl, libxml2, boost }:
 
 stdenv.mkDerivation rec {
-  name = "davix-0.4.0";
+  name = "davix-0.6.4";
   buildInputs = [ stdenv pkgconfig cmake openssl libxml2 boost ];
 
   src = fetchFromGitHub {
     owner = "cern-it-sdc-id";
     repo = "davix";
-    rev = "R_0_4_0-1";
-    sha256 = "0i6ica7rmpc3hbybjql5mr500cd43w4qzc69cj1djkc6bqqb752v";
+    rev = "R_0_6_4";
+    sha256 = "10hg7rs6aams96d4ghldgkrrnikskdpmn8vy6hj5j0s17a2yms6q";
   };
 
 
diff --git a/pkgs/tools/networking/htpdate/default.nix b/pkgs/tools/networking/htpdate/default.nix
new file mode 100644
index 000000000000..10ed8f34e3a6
--- /dev/null
+++ b/pkgs/tools/networking/htpdate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, coreutils, binutils }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.3";
+  name = "htpdate-${version}";
+
+  src = fetchurl {
+    url = "http://twekkel.home.xs4all.nl/htp/htpdate-${version}.tar.gz";
+    sha256 = "0hfg4qrsmpqw03m9qwf3zgi4brbf65w6wd3w30nkamc7x8b4vn5i";
+  };
+
+  installFlags = [
+    "INSTALL=${coreutils}/bin/install"
+    "STRIP=${binutils}/bin/strip"
+    "prefix=$(out)"
+  ];
+
+  meta = {
+    description = "Utility to fetch time and set the system clock over HTTP";
+    homepage = http://www.vervest.org/htp/;
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 3f4f1244e1b7..73d10014bbfc 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -7,11 +7,11 @@ assert pkcs11Support -> (pkcs11helper != null);
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "openvpn-2.3.11";
+  name = "openvpn-2.3.12";
 
   src = fetchurl {
     url = "http://swupdate.openvpn.net/community/releases/${name}.tar.gz";
-    sha256 = "0qv1flcz4q4mb7zpkxsnlmpvrv3s9gw7xvprjk7n2pnk9x1s85wi";
+    sha256 = "1zqwq19xg6yf90nv35yr8r0ljas5f42v4n9hjjmhlnzpan69plzm";
   };
 
   patches = optional stdenv.isLinux ./systemd-notify.patch;
diff --git a/pkgs/tools/security/pass/rofi-pass.nix b/pkgs/tools/security/pass/rofi-pass.nix
index b834cc6adc53..64c12dc6e5e3 100644
--- a/pkgs/tools/security/pass/rofi-pass.nix
+++ b/pkgs/tools/security/pass/rofi-pass.nix
@@ -1,15 +1,16 @@
-{ stdenv, fetchgit
-, pass, rofi, coreutils, utillinux, xdotool, gnugrep, pwgen, findutils, gawk
-, makeWrapper }:
+{ stdenv, fetchFromGitHub, pass, rofi, coreutils, utillinux, xdotool, gnugrep
+, libnotify, pwgen, findutils, gawk, gnused, xclip, makeWrapper
+}:
 
 stdenv.mkDerivation rec {
   name = "rofi-pass-${version}";
-  version = "1.3.2";
+  version = "1.4.3";
 
-  src = fetchgit {
-    url = "https://github.com/carnager/rofi-pass";
-    rev = "refs/tags/${version}";
-    sha256 = "1xqp8s0yyjs2ca9mf8lbz8viwl9xzxf5kk1v68v9hqdgxj26wgls";
+  src = fetchFromGitHub {
+    owner = "carnager";
+    repo = "rofi-pass";
+    rev = version;
+    sha256 = "09wpkxg5b7xicdisgbhlfr8vs1iv7z9sc58pjl0p198yap57khq5";
   };
 
   buildInputs = [ makeWrapper ];
@@ -18,22 +19,25 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/bin
-    cp -a $src/rofi-pass $out/bin/rofi-pass
+    cp -a rofi-pass $out/bin/rofi-pass
 
     mkdir -p $out/share/doc/rofi-pass/
-    cp -a $src/config.example $out/share/doc/rofi-pass/config.example
+    cp -a config.example $out/share/doc/rofi-pass/config.example
   '';
 
   wrapperPath = with stdenv.lib; makeBinPath [
     coreutils
     findutils
+    gawk
     gnugrep
+    gnused
+    libnotify
     pass
     pwgen
     rofi
     utillinux
+    xclip
     xdotool
-    gawk
   ];
 
   fixupPhase = ''
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index e2c69377df5a..b31d60247d8d 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "sudo-1.8.17p1";
+  name = "sudo-1.8.18";
 
   src = fetchurl {
     urls =
       [ "ftp://ftp.sudo.ws/pub/sudo/${name}.tar.gz"
         "ftp://ftp.sudo.ws/pub/sudo/OLD/${name}.tar.gz"
       ];
-    sha256 = "c690d707fb561b3ecdf6a6de5563bc0b769388eff201c851edbace408bb155cc";
+    sha256 = "04xywg2f9x2kfw81abdf8gsraldaz5v0w0x2zi8aqlgsjygfj6c5";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 533cb0dcd8eb..0e69729a2262 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "tor-0.2.8.7";
+  name = "tor-0.2.8.8";
 
   src = fetchurl {
     url = "https://archive.torproject.org/tor-package-archive/${name}.tar.gz";
-    sha256 = "1iigfi8ljl88s8b5y1g4ak8im57simazscl467zvfbg8k6vf4i5f";
+    sha256 = "1pp3h0a1cl25fv04b3j6wp8aw1sfpbd2lmag397dpp2k2b305bxi";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 4ede689bf972..9118bd3c18fb 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -2,15 +2,26 @@
 
 buildGoPackage rec {
   name = "vault-${version}";
-  version = "0.6.0";
-  rev = "v${version}";
+  version = "0.6.1";
 
   goPackagePath = "github.com/hashicorp/vault";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "hashicorp";
     repo = "vault";
-    sha256 = "0byb91nqrhl7w0rq0ilml1ybamh8w1qga47a790kggsmjhcj9ybx";
+    rev = "v${version}";
+    sha256 = "06xf2dpn0q398qb6wbh9j1wjl5smqq9nrrn2039g48haqm8853jx";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -X github.com/hashicorp/vault/version.GitCommit=${version}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.vaultproject.io;
+    description = "A tool for managing secrets";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.rushmorem ];
   };
 }
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index b0c6b0730296..2aa5f9fb4c4e 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -30,21 +30,23 @@
 , varnish ? null
 , yajl ? null
 , net_snmp ? null
+, hiredis ? null
+, libmnl ? null
 }:
 stdenv.mkDerivation rec {
-  version = "5.5.2";
+  version = "5.6.0";
   name = "collectd-${version}";
 
   src = fetchurl {
     url = "http://collectd.org/files/${name}.tar.bz2";
-    sha256 = "03w2pawbshl2wrl4cmyw8alsi0pvamb6ibxni96mjzhqc903lzq1";
+    sha256 = "08w6fjzczi2psk7va0xkjh9pigpar6sbjx2a6ayq4dmc3zcvpzzh";
   };
 
   buildInputs = [
     pkgconfig curl iptables libatasmart libcredis libdbi libgcrypt libmemcached
     cyrus_sasl libmodbus libnotify gdk_pixbuf liboping libpcap libsigrok libvirt
     lm_sensors libxml2 lvm2 libmysql postgresql protobufc rabbitmq-c rrdtool
-    varnish yajl jdk libtool python udev net_snmp
+    varnish yajl jdk libtool python udev net_snmp hiredis libmnl
   ];
 
   # for some reason libsigrok isn't auto-detected
@@ -52,14 +54,11 @@ stdenv.mkDerivation rec {
     stdenv.lib.optional (libsigrok != null) "--with-libsigrok" ++
     stdenv.lib.optional (python != null) "--with-python=${python}/bin/python";
 
-  # Fix build on Glibc 2.24.
-  NIX_CFLAGS_COMPILE = "-Wno-error=cpp -Wno-error=deprecated-declarations";
-
   meta = with stdenv.lib; {
     description = "Daemon which collects system performance statistics periodically";
     homepage = http://collectd.org;
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor fpletz ];
   };
 }
diff --git a/pkgs/tools/text/a2ps/default.nix b/pkgs/tools/text/a2ps/default.nix
index c7476d9f3391..e38de5e6bd89 100644
--- a/pkgs/tools/text/a2ps/default.nix
+++ b/pkgs/tools/text/a2ps/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libpaper, gperf, file }:
+{ stdenv, fetchurl, fetchpatch, libpaper, gperf, file, perl }:
 
 stdenv.mkDerivation rec {
   name = "a2ps-4.14";
@@ -7,14 +7,28 @@ stdenv.mkDerivation rec {
     sha256 = "195k78m1h03m961qn7jr120z815iyb93gwi159p1p9348lyqvbpk";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/a/a2ps/1:4.14-1.3/debian/patches/09_CVE-2001-1593.diff";
+      sha256 = "1hrfmvb21zlklmg2fqikgywhqgc4qnvbhx517w87faafrhzhlnh0";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/a/a2ps/1:4.14-1.3/debian/patches/CVE-2014-0466.diff";
+      sha256 = "0grqqsc3m45niac56m19m5gx7gc0m8zvia5iman1l4rlq31shf8s";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/a/a2ps/1:4.14-1.3/debian/patches/fix-format-security.diff";
+      sha256 = "0pq7zl41gf2kc6ahwyjnzn93vbxb4jc2c5g8j20isp4vw6dqrnwv";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace afm/make_fonts_map.sh --replace "/bin/rm" "rm"
     substituteInPlace tests/defs.in --replace "/bin/rm" "rm"
   '';
 
-  buildInputs = [ libpaper gperf file ];
-
-  hardeningDisable = [ "format" ];
+  nativeBuildInputs = [ file perl ];
+  buildInputs = [ libpaper gperf ];
 
   meta = with stdenv.lib; {
     description = "An Anything to PostScript converter and pretty-printer";
diff --git a/pkgs/tools/virtualization/nixos-container/default.nix b/pkgs/tools/virtualization/nixos-container/default.nix
index 0763536533f0..19394ea45d30 100644
--- a/pkgs/tools/virtualization/nixos-container/default.nix
+++ b/pkgs/tools/virtualization/nixos-container/default.nix
@@ -6,8 +6,6 @@ substituteAll {
     isExecutable = true;
     src = ./nixos-container.pl;
     perl = "${perl}/bin/perl -I${perlPackages.FileSlurp}/lib/perl5/site_perl";
-    su = "${shadow.su}/bin/su";
-    inherit utillinux;
 
     postInstall = ''
       t=$out/etc/bash_completion.d
diff --git a/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index 1dfe4567d8df..5cb7e3b560b8 100755
--- a/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -8,9 +8,6 @@ use Fcntl ':flock';
 use Getopt::Long qw(:config gnu_getopt);
 use Cwd 'abs_path';
 
-my $nsenter = "@utillinux@/bin/nsenter";
-my $su = "@su@";
-
 # Ensure a consistent umask.
 umask 0022;
 
@@ -220,22 +217,6 @@ sub stopContainer {
         or die "$0: failed to stop container\n";
 }
 
-# Return the PID of the init process of the container.
-sub getLeader {
-    my $s = `machinectl show "$containerName" -p Leader`;
-    chomp $s;
-    $s =~ /^Leader=(\d+)$/ or die "unable to get container's main PID\n";
-    return int($1);
-}
-
-# Run a command in the container.
-sub runInContainer {
-    my @args = @_;
-    my $leader = getLeader;
-    exec($nsenter, "-t", $leader, "-m", "-u", "-i", "-n", "-p", "--", @args);
-    die "cannot run ‘nsenter’: $!\n";
-}
-
 # Remove a directory while recursively unmounting all mounted filesystems within
 # that directory and unmounting/removing that directory afterwards as well.
 #
@@ -309,14 +290,14 @@ elsif ($action eq "login") {
 }
 
 elsif ($action eq "root-login") {
-    runInContainer("@su@", "root", "-l");
+    exec("machinectl", "shell", $containerName, "/bin/sh", "-l");
 }
 
 elsif ($action eq "run") {
     shift @ARGV; shift @ARGV;
     # Escape command.
     my $s = join(' ', map { s/'/'\\''/g; "'$_'" } @ARGV);
-    runInContainer("@su@", "root", "-l", "-c", "exec " . $s);
+    exec("machinectl", "--quiet", "shell", $containerName, "/bin/sh", "-l", "-c", $s);
 }
 
 elsif ($action eq "show-ip") {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index da6877a7652e..43e5255fd413 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1111,7 +1111,6 @@ in
   convertlit = callPackage ../tools/text/convertlit { };
 
   collectd = callPackage ../tools/system/collectd {
-    rabbitmq-c = rabbitmq-c_0_4;
     libmysql = mysql.lib;
     libsigrok = libsigrok-0-3-0; # not compatible with >= 0.4.0 yet
   };
@@ -1182,6 +1181,7 @@ in
       ibus-table = ibus-engines.table;
     };
 
+    uniemoji = callPackage ../tools/inputmethods/ibus-engines/ibus-uniemoji { };
   };
 
   ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix {
@@ -1393,6 +1393,8 @@ in
     inherit (perlPackages) XMLSAX XMLParser XMLNamespaceSupport;
   };
 
+  docbook2mdoc = callPackage ../tools/misc/docbook2mdoc { };
+
   dog = callPackage ../tools/system/dog { };
 
   dosfstools = callPackage ../tools/filesystems/dosfstools { };
@@ -2064,6 +2066,8 @@ in
 
   hping = callPackage ../tools/networking/hping { };
 
+  htpdate = callPackage ../tools/networking/htpdate { };
+
   http-prompt = callPackage ../tools/networking/http-prompt { };
 
   httpie = callPackage ../tools/networking/httpie { };
@@ -2801,6 +2805,8 @@ in
 
   newsbeuter-dev = callPackage ../applications/networking/feedreaders/newsbeuter/dev.nix { };
 
+  nextcloud = callPackage ../servers/nextcloud { };
+
   ngrep = callPackage ../tools/networking/ngrep { };
 
   ngrok = callPackage ../tools/networking/ngrok { };
@@ -3198,6 +3204,8 @@ in
 
   podiff = callPackage ../tools/text/podiff { };
 
+  pod2mdoc = callPackage ../tools/misc/pod2mdoc { };
+
   poedit = callPackage ../tools/text/poedit { };
 
   polipo = callPackage ../servers/polipo { };
@@ -4712,7 +4720,13 @@ in
     profiledCompiler = false;
   });
 
-  ghdl_mcode = callPackage_i686 ../development/compilers/ghdl { };
+  ghdl_mcode = callPackage_i686 ../development/compilers/ghdl {
+    flavour = "mcode";
+  };
+
+  ghdl_llvm = callPackage ../development/compilers/ghdl {
+    flavour = "llvm";
+  };
 
   gcl = callPackage ../development/compilers/gcl {
     gmp = gmp4;
@@ -5049,6 +5063,8 @@ in
 
   ocaml_4_02 = callPackage ../development/compilers/ocaml/4.02.nix { };
 
+  ocaml_4_03 = callPackage ../development/compilers/ocaml/4.03.nix { };
+
   orc = callPackage ../development/compilers/orc { };
 
   metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { };
@@ -5071,19 +5087,19 @@ in
 
     asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
 
-    async_extra = callPackage ../development/ocaml-modules/async_extra { };
+    async_extra_p4 = callPackage ../development/ocaml-modules/async_extra { };
 
     async_find = callPackage ../development/ocaml-modules/async_find { };
 
-    async_kernel = callPackage ../development/ocaml-modules/async_kernel { };
+    async_kernel_p4 = callPackage ../development/ocaml-modules/async_kernel { };
 
     async_shell = callPackage ../development/ocaml-modules/async_shell { };
 
     async_ssl = callPackage ../development/ocaml-modules/async_ssl { };
 
-    async_unix = callPackage ../development/ocaml-modules/async_unix { };
+    async_unix_p4 = callPackage ../development/ocaml-modules/async_unix { };
 
-    async =
+    async_p4 =
       if lib.versionOlder "4.02" ocaml_version
       then callPackage ../development/ocaml-modules/async { }
       else null;
@@ -5107,7 +5123,9 @@ in
     camlidl = callPackage ../development/tools/ocaml/camlidl { };
 
     camlp4 =
-      if lib.versionOlder "4.02" ocaml_version
+      if lib.versionOlder "4.03" ocaml_version
+      then callPackage ../development/tools/ocaml/camlp4/4_03.nix { }
+      else if lib.versionOlder "4.02" ocaml_version
       then callPackage ../development/tools/ocaml/camlp4 { }
       else null;
 
@@ -5157,7 +5175,7 @@ in
 
     biniou = callPackage ../development/ocaml-modules/biniou { };
 
-    bin_prot = callPackage ../development/ocaml-modules/bin_prot { };
+    bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { };
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
@@ -5213,7 +5231,7 @@ in
 
     faillib = callPackage ../development/ocaml-modules/faillib { };
 
-    fieldslib = callPackage ../development/ocaml-modules/fieldslib { };
+    fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { };
 
     fileutils = callPackage ../development/ocaml-modules/fileutils { };
 
@@ -5312,11 +5330,17 @@ in
 
     comparelib = callPackage ../development/ocaml-modules/comparelib { };
 
-    core_extended = callPackage ../development/ocaml-modules/core_extended { };
+    core_extended_p4 = callPackage ../development/ocaml-modules/core_extended { };
 
-    core_kernel = callPackage ../development/ocaml-modules/core_kernel { };
+    core_kernel_p4 = callPackage ../development/ocaml-modules/core_kernel { };
 
-    core = callPackage ../development/ocaml-modules/core { };
+    core_p4 = callPackage ../development/ocaml-modules/core { };
+
+    ocamlbuild =
+    if lib.versionOlder "4.03" ocaml_version then
+    callPackage ../development/tools/ocaml/ocamlbuild { }
+    else
+    null;
 
     ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { };
 
@@ -5324,6 +5348,8 @@ in
 
     ocaml_expat = callPackage ../development/ocaml-modules/expat { };
 
+    frontc = callPackage ../development/ocaml-modules/frontc { };
+
     ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { };
 
     ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { };
@@ -5380,7 +5406,7 @@ in
     piqi = callPackage ../development/ocaml-modules/piqi { };
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
-    re2 = callPackage ../development/ocaml-modules/re2 { };
+    re2_p4 = callPackage ../development/ocaml-modules/re2 { };
 
     result = callPackage ../development/ocaml-modules/ocaml-result { };
 
@@ -5398,7 +5424,7 @@ in
       camlp5 = camlp5_transitional;
     };
 
-    textutils = callPackage ../development/ocaml-modules/textutils { };
+    textutils_p4 = callPackage ../development/ocaml-modules/textutils { };
 
     type_conv_108_08_00 = callPackage ../development/ocaml-modules/type_conv/108.08.00.nix { };
     type_conv_109_60_01 = callPackage ../development/ocaml-modules/type_conv/109.60.01.nix { };
@@ -5416,7 +5442,7 @@ in
     sexplib_111_25_00 = callPackage ../development/ocaml-modules/sexplib/111.25.00.nix { };
     sexplib_112_24_01 = callPackage ../development/ocaml-modules/sexplib/112.24.01.nix { };
 
-    sexplib =
+    sexplib_p4 =
       if lib.versionOlder "4.02" ocaml_version
       then sexplib_112_24_01
       else if lib.versionOlder "4.00" ocaml_version
@@ -5447,6 +5473,11 @@ in
       then callPackage ../development/ocaml-modules/ppx_blob {}
       else null;
 
+    ppx_deriving =
+      if lib.versionAtLeast ocaml_version "4.02"
+      then callPackage ../development/ocaml-modules/ppx_deriving {}
+      else null;
+
     ppx_tools =
       if lib.versionAtLeast ocaml_version "4.02"
       then callPackage ../development/ocaml-modules/ppx_tools {}
@@ -5474,7 +5505,7 @@ in
 
     twt = callPackage ../development/ocaml-modules/twt { };
 
-    typerep = callPackage ../development/ocaml-modules/typerep { };
+    typerep_p4 = callPackage ../development/ocaml-modules/typerep { };
 
     utop = callPackage ../development/tools/ocaml/utop { };
 
@@ -5491,7 +5522,7 @@ in
     uuseg = callPackage ../development/ocaml-modules/uuseg { };
     uutf = callPackage ../development/ocaml-modules/uutf { };
 
-    variantslib = callPackage ../development/ocaml-modules/variantslib { };
+    variantslib_p4 = callPackage ../development/ocaml-modules/variantslib { };
 
     vg = callPackage ../development/ocaml-modules/vg { };
 
@@ -5511,6 +5542,130 @@ in
       oasis = ocaml_oasis;
     };
 
+    # Jane Street
+    js_build_tools = callPackage ../development/ocaml-modules/janestreet/js-build-tools.nix {};
+
+    buildOcamlJane = callPackage ../development/ocaml-modules/janestreet/buildOcamlJane.nix {};
+
+    ppx_core = callPackage ../development/ocaml-modules/janestreet/ppx-core.nix {};
+
+    ppx_optcomp = callPackage ../development/ocaml-modules/janestreet/ppx-optcomp.nix {};
+
+    ppx_driver = callPackage ../development/ocaml-modules/janestreet/ppx-driver.nix {};
+
+    ppx_type_conv = callPackage ../development/ocaml-modules/janestreet/ppx-type-conv.nix {};
+
+    ppx_compare = callPackage ../development/ocaml-modules/janestreet/ppx-compare.nix {};
+
+    ppx_here = callPackage ../development/ocaml-modules/janestreet/ppx-here.nix {};
+
+    ppx_sexp_conv = callPackage ../development/ocaml-modules/janestreet/ppx-sexp-conv.nix {};
+
+    ppx_assert = callPackage ../development/ocaml-modules/janestreet/ppx-assert.nix {};
+
+    ppx_inline_test = callPackage ../development/ocaml-modules/janestreet/ppx-inline-test.nix {};
+
+    ppx_bench = callPackage ../development/ocaml-modules/janestreet/ppx-bench.nix {};
+
+    ppx_bin_prot = callPackage ../development/ocaml-modules/janestreet/ppx-bin-prot.nix {};
+
+    ppx_custom_printf = callPackage ../development/ocaml-modules/janestreet/ppx-custom-printf.nix {};
+
+    ppx_enumerate = callPackage ../development/ocaml-modules/janestreet/ppx-enumerate.nix {};
+
+    ppx_fail = callPackage ../development/ocaml-modules/janestreet/ppx-fail.nix {};
+
+    ppx_fields_conv = callPackage ../development/ocaml-modules/janestreet/ppx-fields-conv.nix {};
+
+    ppx_let = callPackage ../development/ocaml-modules/janestreet/ppx-let.nix {};
+
+    ppx_pipebang = callPackage ../development/ocaml-modules/janestreet/ppx-pipebang.nix {};
+
+    ppx_sexp_message = callPackage ../development/ocaml-modules/janestreet/ppx-sexp-message.nix {};
+
+    ppx_sexp_value = callPackage ../development/ocaml-modules/janestreet/ppx-sexp-value.nix {};
+
+    ppx_typerep_conv = callPackage ../development/ocaml-modules/janestreet/ppx-typerep-conv.nix {};
+
+    ppx_variants_conv = callPackage ../development/ocaml-modules/janestreet/ppx-variants-conv.nix {};
+
+    ppx_expect = callPackage ../development/ocaml-modules/janestreet/ppx-expect.nix {};
+
+    ppx_jane = callPackage ../development/ocaml-modules/janestreet/ppx-jane.nix {};
+
+
+    # Core sublibs
+    typerep =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/typerep.nix {}
+      else typerep_p4;
+
+    fieldslib =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/fieldslib.nix {}
+      else fieldslib_p4;
+
+    sexplib =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/sexplib.nix {}
+      else sexplib_p4;
+
+    variantslib =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/variantslib.nix {}
+      else variantslib_p4;
+
+    bin_prot =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/bin_prot.nix {}
+      else bin_prot_p4;
+
+    core_kernel =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/core_kernel.nix {}
+      else core_kernel_p4;
+
+    core =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/core.nix {}
+      else core_p4;
+
+    re2 =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/re2.nix {}
+      else re2_p4;
+
+    textutils =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/textutils.nix {}
+      else textutils_p4;
+
+    core_extended =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/core-extended.nix {}
+      else core_extended_p4;
+
+    async_kernel =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/async-kernel.nix {}
+      else async_kernel_p4;
+
+    async_rpc_kernel = callPackage ../development/ocaml-modules/janestreet/async-rpc-kernel.nix {};
+
+    async_unix =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/async-unix.nix {}
+      else async_unix_p4;
+
+    async_extra =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/async-extra.nix {}
+      else async_extra_p4;
+
+    async =
+      if lib.versionOlder "4.02" ocaml_version
+      then callPackage ../development/ocaml-modules/janestreet/async.nix {}
+      else async_p4;
   };
 
   ocamlPackages = recurseIntoAttrs ocamlPackages_4_01_0;
@@ -5523,7 +5678,8 @@ in
   ocamlPackages_4_00_1 = mkOcamlPackages ocaml_4_00_1 pkgs.ocamlPackages_4_00_1;
   ocamlPackages_4_01_0 = mkOcamlPackages ocaml_4_01_0 pkgs.ocamlPackages_4_01_0;
   ocamlPackages_4_02 = mkOcamlPackages ocaml_4_02 pkgs.ocamlPackages_4_02;
-  ocamlPackages_latest = ocamlPackages_4_02;
+  ocamlPackages_4_03 = mkOcamlPackages ocaml_4_03 pkgs.ocamlPackages_4_03;
+  ocamlPackages_latest = ocamlPackages_4_03;
 
   ocaml_make = callPackage ../development/ocaml-modules/ocamlmake { };
 
@@ -5639,9 +5795,15 @@ in
   tinycc = callPackage ../development/compilers/tinycc { };
 
   trv = callPackage ../development/tools/misc/trv {
-   inherit (ocamlPackages_4_02) findlib camlp4 core async async_unix
-     async_extra sexplib async_shell core_extended async_find cohttp uri;
+   inherit (ocamlPackages_4_02) findlib camlp4
+     async_shell async_find cohttp uri;
     ocaml = ocaml_4_02;
+    async = ocamlPackages_4_02.async_p4;
+    async_extra = ocamlPackages_4_02.async_extra_p4;
+    async_unix = ocamlPackages_4_02.async_unix_p4;
+    core_extended = ocamlPackages_4_02.core_extended_p4;
+    sexplib = ocamlPackages_4_02.sexplib_p4;
+    core = ocamlPackages_4_02.core_p4;
   };
 
   bupc = callPackage ../development/compilers/bupc { };
@@ -6208,7 +6370,7 @@ in
 
   bam = callPackage ../development/tools/build-managers/bam {};
 
-  bazel = callPackage ../development/tools/build-managers/bazel { jdk = openjdk8; };
+  bazel = callPackage ../development/tools/build-managers/bazel { };
 
   bear = callPackage ../development/tools/build-managers/bear { };
 
@@ -6662,6 +6824,8 @@ in
 
   patchelf = callPackage ../development/tools/misc/patchelf { };
 
+  patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
+
   peg = callPackage ../development/tools/parsing/peg { };
 
   phantomjs = callPackage ../development/tools/phantomjs { };
@@ -6821,6 +6985,8 @@ in
 
   texi2html = callPackage ../development/tools/misc/texi2html { };
 
+  texi2mdoc = callPackage ../tools/misc/texi2mdoc { };
+
   travis = callPackage ../development/tools/misc/travis { };
 
   tweak = callPackage ../applications/editors/tweak { };
@@ -7292,8 +7458,8 @@ in
     x265 = if stdenv.isDarwin then null else x265;
     xavs = if stdenv.isDarwin then null else xavs;
     inherit (darwin) CF;
-    inherit (darwin.apple_sdk.frameworks) 
-      Cocoa CoreServices CoreAudio AVFoundation MediaToolbox 
+    inherit (darwin.apple_sdk.frameworks)
+      Cocoa CoreServices CoreAudio AVFoundation MediaToolbox
       VideoDecodeAcceleration;
   };
 
@@ -7955,7 +8121,7 @@ in
   };
 
   libcanberra_gtk3 = callPackage ../development/libraries/libcanberra {
-    gtk = pkgs.gtk3; 
+    gtk = pkgs.gtk3;
   };
   libcanberra_gtk2 = pkgs.libcanberra_gtk3.override { gtk = pkgs.gtk2; };
 
@@ -9127,6 +9293,8 @@ in
 
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
+  pg_repack = callPackage ../servers/sql/postgresql/pg_repack {};
+
   phonon = callPackage ../development/libraries/phonon {};
 
   phonon-backend-gstreamer = callPackage ../development/libraries/phonon/backends/gstreamer.nix {};
@@ -9355,8 +9523,6 @@ in
 
   rabbitmq-c = callPackage ../development/libraries/rabbitmq-c {};
 
-  rabbitmq-c_0_4 = callPackage ../development/libraries/rabbitmq-c/0.4.nix {};
-
   rabbitmq-java-client = callPackage ../development/libraries/rabbitmq-java-client {};
 
   raul = callPackage ../development/libraries/audio/raul { };
@@ -9586,6 +9752,8 @@ in
 
   stlport = callPackage ../development/libraries/stlport { };
 
+  streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
+
   strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
 
   subtitleeditor = callPackage ../applications/video/subtitleeditor { };
@@ -9812,12 +9980,12 @@ in
     inherit (darwin) libobjc;
   };
 
-  webkitgtk212x = callPackage ../development/libraries/webkitgtk/2.12.nix {
+  webkitgtk214x = callPackage ../development/libraries/webkitgtk/2.14.nix {
     harfbuzz = harfbuzz-icu;
     gst-plugins-base = gst_all_1.gst-plugins-base;
   };
 
-  webkitgtk210x = callPackage ../development/libraries/webkitgtk/2.10.nix {
+  webkitgtk212x = callPackage ../development/libraries/webkitgtk/2.12.nix {
     harfbuzz = harfbuzz-icu;
     gst-plugins-base = gst_all_1.gst-plugins-base;
   };
@@ -10797,6 +10965,8 @@ in
 
   tt-rss = callPackage ../servers/tt-rss { };
 
+  selfoss = callPackage ../servers/web-apps/selfoss { };
+
   axis2 = callPackage ../servers/http/tomcat/axis2 { };
 
   unifi = callPackage ../servers/unifi { };
@@ -10911,7 +11081,7 @@ in
 
   bluez = bluez5;
 
-  inherit (pythonPackages) bedup;
+  inherit (python3Packages) bedup;
 
   bridge-utils = callPackage ../os-specific/linux/bridge-utils { };
 
@@ -10935,6 +11105,8 @@ in
 
   conntrack_tools = callPackage ../os-specific/linux/conntrack-tools { };
 
+  coredns = callPackage ../servers/dns/coredns { };
+
   cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
 
   cryopid = callPackage ../os-specific/linux/cryopid { };
@@ -11393,6 +11565,8 @@ in
 
     rtl8812au = callPackage ../os-specific/linux/rtl8812au { };
 
+    rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { };
+
     openafsClient = callPackage ../servers/openafs-client { };
 
     facetimehd = callPackage ../os-specific/linux/facetimehd { };
@@ -11608,6 +11782,8 @@ in
 
   numad = callPackage ../os-specific/linux/numad { };
 
+  nvme-cli = callPackage ../os-specific/linux/nvme-cli { };
+
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools {
     inherit (gnome2) gtk gtkmm;
   };
@@ -11719,6 +11895,8 @@ in
 
   rtl8723bs-firmware = callPackage ../os-specific/linux/firmware/rtl8723bs-firmware { };
 
+  rtlwifi_new-firmware = callPackage ../os-specific/linux/firmware/rtlwifi_new-firmware { };
+
   s3ql = callPackage ../tools/backup/s3ql { };
 
   sass = callPackage ../development/tools/sass { };
@@ -12114,6 +12292,8 @@ in
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  lato = callPackage ../data/fonts/lato {};
+
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
 
   liberation_ttf_from_source = callPackage ../data/fonts/redhat-liberation-fonts { };
@@ -12898,6 +13078,13 @@ in
   });
   emacs24Macport = self.emacs24Macport_24_5;
 
+  emacs25Macport_25_1 = lowPrio (callPackage ../applications/editors/emacs/macport-25.1.nix {
+    inherit (darwin.apple_sdk.frameworks)
+      AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
+      ImageCaptureCore GSS ImageIO;
+  });
+  emacs25Macport = self.emacs25Macport_25_1;
+
   emacsPackagesGen = emacs: self: let callPackage = newScope self; in rec {
     inherit emacs;
 
@@ -14644,6 +14831,12 @@ in
     cmake = cmake_2_8; # problems after 3.4 -> 3.6.0
   };
 
+  rawtherapee-git = lowPrio (callPackage ../applications/graphics/rawtherapee/dev.nix {
+    fftw = fftwSinglePrec;
+    cmake = cmake_2_8; # problems after 3.4 -> 3.6.0
+  });
+
+
   rcs = callPackage ../applications/version-management/rcs { };
 
   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
@@ -15542,6 +15735,8 @@ in
 
   xineUI = callPackage ../applications/video/xine-ui { };
 
+  xmind = callPackage ../applications/misc/xmind { };
+
   xneur_0_13 = callPackage ../applications/misc/xneur { };
 
   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix { };
@@ -17440,6 +17635,8 @@ in
 
   putty = callPackage ../applications/networking/remote/putty { };
 
+  redprl = callPackage ../applications/science/logic/redprl { };
+
   retroarchBare = callPackage ../misc/emulators/retroarch { };
 
   retroarch = wrapRetroArch { retroarch = retroarchBare; };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index e56cce4b81e1..0a77e02c32fb 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -481,13 +481,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  autobox = pkgs.perlPackages.Autobox;
-
-  Autobox = buildPerlPackage rec {
-    name = "autobox-2.83";
+  autobox = buildPerlPackage rec {
+    name = "autobox-2.84";
     src = fetchurl {
       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/${name}.tar.gz";
-      sha256 = "1i493ss5nr0hp3wncn0s31gyka4r09wx65b8g2f8av2nm4zs70rz";
+      sha256 = "98dd2754f226684a72ccba3a95956b7eaff2871568e4dd9746e6fb6daae0b96b";
     };
     propagatedBuildInputs = [ ScopeGuard ];
     meta = {
@@ -496,6 +494,8 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  Autobox = self.autobox;
+
   Autodia = buildPerlPackage rec {
     name = "Autodia-2.14";
     src = fetchurl {
@@ -9619,7 +9619,7 @@ let self = _self // overrides; _self = with self; {
     '';
     meta = {
       description = "Perl extension for using OpenSSL";
-      license = "SSLeay";
+      license = stdenv.lib.licenses.artistic2;
     };
   };
 
@@ -9643,7 +9643,7 @@ let self = _self // overrides; _self = with self; {
     };
     meta = {
       description = "Interact with TELNET port or other TCP ports";
-      license = "unknown";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -9672,10 +9672,14 @@ let self = _self // overrides; _self = with self; {
   };
 
   NumberFormat = buildPerlPackage rec {
-    name = "Number-Format-1.73";
+    name = "Number-Format-1.75";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Number/${name}.tar.gz";
-      sha256 = "0v74hscnc807kf65x0am0rddk74nz7nfk3gf16yr5ar1xwibg8l4";
+      url = "mirror://cpan/authors/id/W/WR/WRW/${name}.tar.gz";
+      sha256 = "82d659cb16461764fd44d11a9ce9e6a4f5e8767dc1069eb03467c6e55de257f3";
+    };
+    meta = {
+      description = "Perl extension for formatting numbers";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -9712,6 +9716,10 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/A/AD/ADAMK/Object-Signature-1.07.tar.gz;
       sha256 = "0c8l7195bjvx0v6zmkgdnxvwg7yj2zq8hi7xd25a3iikd12dc4f6";
     };
+    meta = {
+      description = "Generate cryptographic signatures for objects";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   # For backwards compatibility. Please use OLEStorage_Lite instead.
@@ -9782,15 +9790,15 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ CGI NetOpenIDCommon JSON LWP ];
   };
 
-  NetOpenSSH = buildPerlPackage {
-    name = "Net-OpenSSH-0.70";
+  NetOpenSSH = buildPerlPackage rec {
+    name = "Net-OpenSSH-0.73";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.70.tar.gz;
-      sha256 = "3fcb36a5a2fc296c1d0def54f3201cecffe7d81157ef5fa2bac9868875f63b95";
+      url = "mirror://cpan/authors/id/S/SA/SALVA/${name}.tar.gz";
+      sha256 = "f45a54b3c6015d4dc44cbff9f9be57bc9d54dfb104fb38bcf3c4eb04789582d9";
     };
     meta = {
       description = "Perl SSH client package implemented on top of OpenSSH";
-      license = "perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -10506,16 +10514,16 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  PodElemental = buildPerlPackage {
-    name = "Pod-Elemental-0.103000";
+  PodElemental = buildPerlPackage rec {
+    name = "Pod-Elemental-0.103004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103000.tar.gz;
-      sha256 = "0ykf49n6ysm7ab5zwm8a009zzrzsnhxw94a9jvbq80yywzhnm847";
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "43625cde7241fb174ad9c7eb45387fba410dc141d7de2323855eeab3590072c9";
     };
     buildInputs = [ TestDeep TestDifferences ];
-    propagatedBuildInputs = [ MixinLinewise Moose MooseAutobox MooseXTypes PodEventual StringRewritePrefix StringTruncate SubExporter SubExporterForMethods TestDeep TestDifferences namespaceautoclean ];
+    propagatedBuildInputs = [ ClassLoad MixinLinewise Moose MooseXTypes PodEventual StringRewritePrefix StringTruncate SubExporter SubExporterForMethods namespaceautoclean ];
     meta = {
-      homepage = https://github.com/rjbs/pod-elemental;
+      homepage = https://github.com/rjbs/Pod-Elemental;
       description = "Work with nestable Pod elements";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -11461,15 +11469,15 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  StringFlogger = buildPerlPackage {
-    name = "String-Flogger-1.101244";
+  StringFlogger = buildPerlPackage rec {
+    name = "String-Flogger-1.101245";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101244.tar.gz;
-      sha256 = "0cx3d85sz1dqjvbczpf9wx0i1b05jwbxcg7lpq5qygdkblq85nzd";
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
+      sha256 = "aa03c08e01f802a358c175c6093c02adf9688659a087a8ddefdc3e9cef72640b";
     };
-    propagatedBuildInputs = [ JSON ParamsUtil SubExporter ];
+    propagatedBuildInputs = [ JSONMaybeXS ParamsUtil SubExporter ];
     meta = {
-      homepage = https://github.com/rjbs/string-flogger;
+      homepage = https://github.com/rjbs/String-Flogger;
       description = "String munging for loggers";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -11687,10 +11695,14 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubIdentify = buildPerlPackage rec {
-    name = "Sub-Identify-0.04";
+    name = "Sub-Identify-0.12";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RG/RGARCIA/${name}.tar.gz";
-      sha256 = "16g4dkmb4h5hh15jsq0kvsf3irrlrlqdv7qk6605wh5gjjwbcjxy";
+      sha256 = "83bb785a66113b4a966db0a4186fd1dd07987acdacb4502b1e1558f817dde825";
+    };
+    meta = {
+      description = "Retrieve names of code references";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
 
@@ -13508,15 +13520,15 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestVersion = buildPerlPackage rec {
-    name = "Test-Version-2.03";
+    name = "Test-Version-2.05";
     src = fetchurl {
       url = "mirror://cpan/authors/id/P/PL/PLICEASE/${name}.tar.gz";
-      sha256 = "02nbi7iqab1b0ngkiim9kbvnnr9bhi17bq54vm8hn9ridzgbj1vj";
+      sha256 = "39c0ec02663da0e56962bdafaef6790cf83d12b4d90e8a4cdc971d57d869d63f";
     };
-    buildInputs = [ TestException TestRequires TestTester ];
+    buildInputs = [ TestException ];
     propagatedBuildInputs = [ FileFindRulePerl ];
     meta = {
-      homepage = http://search.cpan.org/dist/Test-Version/;
+      homepage = https://metacpan.org/dist/Test-Version;
       description = "Check to see that version's in modules are sane";
       license = stdenv.lib.licenses.artistic2;
     };
@@ -14162,6 +14174,7 @@ let self = _self // overrides; _self = with self; {
       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/${name}.tar.gz";
       sha256 = "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj";
     };
+    patches = [ ../development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch ];
     buildInputs = [ pkgs.curl ];
     preConfigure =
       ''
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index caa38a04e832..56540965a078 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -588,6 +588,63 @@ in modules // {
     };
   };
 
+  asgiref = buildPythonPackage rec {
+    name = "asgiref-${version}";
+    version = "0.14.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/a/asgiref/${name}.tar.gz";
+      sha256 = "1ww4z14pd7g2mwz5nyvxm4rif0rsm9h8i0lwk78v58b2j45r43lc";
+    };
+
+    propagatedBuildInputs = with self ; [ six ];
+
+    meta = {
+      description = "Reference ASGI adapters and channel layers";
+      license = licenses.bsd3;
+      homepage = https://github.com/django/asgiref;
+    };
+  };
+
+  asgi_ipc = buildPythonPackage rec {
+    name = "asgi_ipc-${version}";
+    version = "1.1.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/a/asgi_ipc/${name}.tar.gz";
+      sha256 = "16q5x2cvx3rpnikmqv8l4clkfib8baqy7diy18rsmzj6hqqli3xy";
+    };
+
+    propagatedBuildInputs = with self ; [ asgiref msgpack posix_ipc ];
+
+    meta = {
+      description = "Posix IPC-backed ASGI channel layer implementation";
+      license = licenses.bsd3;
+      homepage = http://github.com/django/asgi_ipc/;
+    };
+  };
+
+  asgi_redis = buildPythonPackage rec {
+    name = "asgi_redis-${version}";
+    version = "0.14.1";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/a/asgi_redis/${name}.tar.gz";
+      sha256 = "13ixh1nwgla7wm2xa42inwrd3g5lri89gd31xl62zhs8m6jmg122";
+    };
+
+    # Requires a redis server available
+    doCheck = false;
+
+    propagatedBuildInputs = with self ; [ asgiref asgi_ipc msgpack six redis cryptography ];
+
+    meta = {
+      description = "Redis-backed ASGI channel layer implementation";
+      license = licenses.bsd3;
+      homepage = http://github.com/django/asgi_redis/;
+    };
+  };
+
   python-editor = buildPythonPackage rec {
     name = "python-editor-${version}";
     version = "0.4";
@@ -1980,13 +2037,14 @@ in modules // {
   };
 
   bedup = buildPythonPackage rec {
-    version = "0.10";
+    version = "0.10.1";
     name = "bedup-${version}";
 
-    src = pkgs.fetchgit {
-      url = "https://github.com/g2p/bedup.git";
-      rev = "598fd4b";
-      sha256 = "0cwnifv5mk5rgil0rcibqchz7y8nzpdpi3k2s9wbqcynjl7l49ln";
+    src = pkgs.fetchFromGitHub {
+      owner = "g2p";
+      repo = "bedup";
+      rev = "v${version}";
+      sha256 = "0sp8pmjkxcqq0alianfp41mwq7qj10rk1qy31pjjp9kiph1rn0x6";
     };
 
     buildInputs = with self; [ pkgs.btrfs-progs ];
@@ -1995,9 +2053,6 @@ in modules // {
 
     disabled = pythonOlder "3.3";
 
-    # No proper test suite. Included tests cannot be run because of relative import
-    doCheck = false;
-
     meta = {
       description = "Deduplication for Btrfs";
       longDescription = ''
@@ -2083,6 +2138,27 @@ in modules // {
     };
   };
 
+  channels = buildPythonPackage rec {
+    name = "channels-${version}";
+    version = "0.17.2";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/c/channels/${name}.tar.gz";
+      sha256 = "1a7fzm25sm3qqgxf7j3hml2lkipvf0yapdg4rkk7x3m11zm0xgv9";
+    };
+
+    # Files are missing in the distribution
+    doCheck = false;
+
+    propagatedBuildInputs = with self ; [ asgiref django daphne ];
+
+    meta = {
+      description = "Brings event-driven capabilities to Django with a channel system";
+      license = licenses.bsd3;
+      homepage = https://github.com/django/channels;
+    };
+  };
+
   circus = buildPythonPackage rec {
     name = "circus-0.11.1";
 
@@ -4047,11 +4123,11 @@ in modules // {
   cryptography = buildPythonPackage rec {
     # also bump cryptography_vectors
     name = "cryptography-${version}";
-    version = "1.5";
+    version = "1.5.1";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/c/cryptography/${name}.tar.gz";
-      sha256 = "52f47ec9a57676043f88e3ca133638790b6b71e56e8890d9d7f3ae4fcd75fa24";
+      sha256 = "1d8da8xbx51m4dqpy51crvcmjakmfcxpx14hh2izppifrh1fs35d";
     };
 
     buildInputs = [ pkgs.openssl self.pretend self.cryptography_vectors
@@ -4068,11 +4144,11 @@ in modules // {
   cryptography_vectors = buildPythonPackage rec {
       # also bump cryptography
     name = "cryptography_vectors-${version}";
-    version = "1.5";
+    version = "1.5.1";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/c/cryptography-vectors/${name}.tar.gz";
-      sha256 = "ad19a2b98a475785c3b2ec8a8c9c974e0c48d00db0c23e79d776a2c489ad812d";
+      sha256 = "1z74mqwlvxlxz6b1xlflphqhgby1k77shl94zw5ncw3x3cqwbccl";
     };
   };
 
@@ -5373,6 +5449,24 @@ in modules // {
     };
   });
 
+  daphne = buildPythonPackage rec {
+    name = "daphne-${version}";
+    version = "0.15.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/d/daphne/${name}.tar.gz";
+      sha256 = "095xdh10v8sqwyas02q72ij3ivd5qjg5ki5cvha0fpzd361izdnp";
+    };
+
+    propagatedBuildInputs = with self; [ asgiref autobahn ];
+
+    meta = {
+      description = "Django ASGI (HTTP/WebSocket) server";
+      license = licenses.bsd3;
+      homepage = https://github.com/django/daphne;
+    };
+  };
+
   dateparser = buildPythonPackage rec {
     name = "dateparser-${version}";
     version = "0.3.2-pre-2016-01-21"; # Fix assert year 2016 == 2015
@@ -12746,6 +12840,26 @@ in modules // {
     ];
   };
 
+  python-Levenshtein = buildPythonPackage rec {
+    name = "python-Levenshtein-${version}";
+    version = "0.12.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/p/python-Levenshtein/${name}.tar.gz";
+      sha256 = "1c9ybqcja31nghfcc8xxbbz9h60s9qi12b9hr4jyl69xbvg12fh3";
+    };
+
+    # No tests included in archive
+    doCheck = false;
+
+    meta = {
+      description = "Functions for fast computation of Levenshtein distance and string similarity";
+      homepage    = "https://github.com/ztane/python-Levenshtein";
+      license     = licenses.gpl2;
+      maintainers = with maintainers; [ aske ];
+    };
+  };
+
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.18.0";
 
@@ -17973,6 +18087,21 @@ in modules // {
     };
   };
 
+  posix_ipc = buildPythonPackage rec {
+    name = "posix_ipc-${version}";
+    version = "1.0.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/p/posix_ipc/${name}.tar.gz";
+      sha256 = "1jzg66708pi5n9w07fbz6rlxx30cjds9hp2yawjjfryafh1hg4ww";
+    };
+
+    meta = {
+      description = "POSIX IPC primitives (semaphores, shared memory and message queues)";
+      license = licenses.bsd3;
+      homepage = http://semanchuk.com/philip/posix_ipc/;
+    };
+  };
 
   powerline = buildPythonPackage rec {
     rev  = "2.1.4";
@@ -30000,8 +30129,8 @@ in modules // {
       url = "mirror://pypi/a/${pname}/${name}.tar.gz";
       sha256 = "1158ml8h3g0vlsgw2jmy579glbg7dn0mjij8xibdl509b8qv9p51";
     };
-    buildInputs = with self; [ unittest2 mock pytest txaio trollius ];
-    propagatedBuildInputs = with self; [ six twisted ];
+    buildInputs = with self; [ unittest2 mock pytest trollius ];
+    propagatedBuildInputs = with self; [ six twisted txaio ];
     checkPhase = ''
       py.test $out
     '';