about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-07-12 20:13:22 +0200
committerVladimír Čunát <vcunat@gmail.com>2016-07-12 22:00:10 +0200
commit40785f0dac55be9bffa029498d20539e567822be (patch)
treec126c0271b8644830e16cd0c1a5d906d520fed65
parentba2eec97b5022848fffeb8c85303b7afe4690e82 (diff)
parent9aa3e78ab206556754186cc2b88aea5009af0f7c (diff)
downloadnixlib-40785f0dac55be9bffa029498d20539e567822be.tar
nixlib-40785f0dac55be9bffa029498d20539e567822be.tar.gz
nixlib-40785f0dac55be9bffa029498d20539e567822be.tar.bz2
nixlib-40785f0dac55be9bffa029498d20539e567822be.tar.lz
nixlib-40785f0dac55be9bffa029498d20539e567822be.tar.xz
nixlib-40785f0dac55be9bffa029498d20539e567822be.tar.zst
nixlib-40785f0dac55be9bffa029498d20539e567822be.zip
Merge branch 'master' into staging
Hydra nixpkgs: ?compare=1282763
-rw-r--r--doc/functions.xml52
-rw-r--r--lib/attrsets.nix1
-rw-r--r--lib/lists.nix4
-rw-r--r--lib/maintainers.nix3
-rw-r--r--nixos/doc/manual/man-nixos-version.xml102
-rw-r--r--nixos/doc/manual/man-pages.xml1
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-amis.sh121
-rw-r--r--nixos/modules/i18n/input-method/fcitx.nix2
-rw-r--r--nixos/modules/installer/tools/nixos-version.sh3
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/programs/bash/inputrc1
-rw-r--r--nixos/modules/services/games/factorio.nix4
-rw-r--r--nixos/modules/services/networking/offlineimap.nix73
-rw-r--r--nixos/modules/system/boot/coredump.nix4
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix1
-rw-r--r--nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh9
-rw-r--r--nixos/modules/system/boot/systemd.nix2
-rw-r--r--nixos/modules/virtualisation/amazon-image.nix8
-rw-r--r--nixos/modules/virtualisation/ec2-amis.nix80
-rw-r--r--nixos/tests/gnome3_18-gdm.nix (renamed from nixos/tests/gnome3_20-gdm.nix)0
-rw-r--r--nixos/tests/gnome3_18.nix (renamed from nixos/tests/gnome3_20.nix)2
-rw-r--r--pkgs/applications/audio/i-score/default.nix4
-rw-r--r--pkgs/applications/editors/geany/default.nix4
-rw-r--r--pkgs/applications/graphics/antimony/default.nix39
-rw-r--r--pkgs/applications/graphics/antimony/paths-fix.patch118
-rw-r--r--pkgs/applications/graphics/feh/default.nix4
-rw-r--r--pkgs/applications/graphics/graphicsmagick/default.nix4
-rw-r--r--pkgs/applications/misc/iterm2/default.nix4
-rw-r--r--pkgs/applications/misc/lighthouse/Makefile.patch31
-rw-r--r--pkgs/applications/misc/lighthouse/default.nix49
-rw-r--r--pkgs/applications/misc/pdfmod/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix12
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb53
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix4
-rw-r--r--pkgs/applications/networking/ftp/filezilla/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix105
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix17
-rw-r--r--pkgs/applications/video/recordmydesktop/default.nix15
-rw-r--r--pkgs/applications/video/recordmydesktop/gtk.nix37
-rw-r--r--pkgs/applications/video/recordmydesktop/qt.nix37
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix13
-rw-r--r--pkgs/applications/video/simplescreenrecorder/fix-paths.patch35
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/lock.nix4
-rw-r--r--pkgs/desktops/mate/mate-icon-theme-faenza/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix6
-rw-r--r--pkgs/development/go-modules/libs.json54
-rw-r--r--pkgs/development/interpreters/elixir/default.nix4
-rw-r--r--pkgs/development/interpreters/lfe/default.nix62
-rw-r--r--pkgs/development/interpreters/lfe/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/python/3.4/default.nix4
-rw-r--r--pkgs/development/interpreters/python/3.5/default.nix4
-rw-r--r--pkgs/development/interpreters/spidermonkey/17.0.nix2
-rw-r--r--pkgs/development/libraries/icu/54.1.nix12
-rw-r--r--pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix10
-rw-r--r--pkgs/development/libraries/liboauth/default.nix4
-rw-r--r--pkgs/development/libraries/libqrencode/default.nix34
-rw-r--r--pkgs/development/libraries/libusbmuxd/default.nix9
-rw-r--r--pkgs/development/libraries/mbedtls/default.nix10
-rw-r--r--pkgs/development/libraries/plib/CVE-2012-4552.patch55
-rw-r--r--pkgs/development/libraries/plib/default.nix13
-rw-r--r--pkgs/development/libraries/png++/default.nix41
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/default.nix6
-rw-r--r--pkgs/development/libraries/xercesc/default.nix4
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/icmake/default.nix4
-rw-r--r--pkgs/development/tools/misc/universal-ctags/default.nix33
-rw-r--r--pkgs/development/tools/mypy-lang/default.nix23
-rw-r--r--pkgs/development/web/minify/default.nix18
-rw-r--r--pkgs/development/web/minify/deps.json15
-rw-r--r--pkgs/games/arx-libertatis/default.nix3
-rw-r--r--pkgs/games/factorio/default.nix8
-rw-r--r--pkgs/games/gzdoom/default.nix1
-rw-r--r--pkgs/games/lgogdownloader/default.nix11
-rw-r--r--pkgs/games/steam/chrootenv.nix40
-rw-r--r--pkgs/games/zandronum/default.nix2
-rw-r--r--pkgs/games/zdoom/default.nix1
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix4
-rw-r--r--pkgs/misc/emulators/wine/base.nix2
-rw-r--r--pkgs/misc/emulators/wine/sources.nix6
-rw-r--r--pkgs/misc/vim-plugins/default.nix333
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names3
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix2
-rw-r--r--pkgs/os-specific/linux/batman-adv/alfred.nix4
-rw-r--r--pkgs/os-specific/linux/batman-adv/batctl.nix4
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix4
-rw-r--r--pkgs/os-specific/linux/conky/default.nix8
-rw-r--r--pkgs/os-specific/linux/ena/default.nix34
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix125
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.6.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-grsecurity.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix6
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix34
-rw-r--r--pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch10
-rw-r--r--pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch31
-rw-r--r--pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch10
-rw-r--r--pkgs/servers/gpsd/default.nix45
-rw-r--r--pkgs/servers/http/gatling/default.nix4
-rw-r--r--pkgs/servers/http/nginx/default.nix4
-rw-r--r--pkgs/shells/fish/default.nix4
-rw-r--r--pkgs/shells/oh-my-zsh/default.nix6
-rw-r--r--pkgs/tools/inputmethods/fcitx/default.nix58
-rw-r--r--pkgs/tools/inputmethods/fcitx/unwrapped.nix51
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix7
-rw-r--r--pkgs/tools/misc/autorandr/default.nix19
-rw-r--r--pkgs/tools/misc/cloc/default.nix4
-rw-r--r--pkgs/tools/misc/rcm/default.nix6
-rw-r--r--pkgs/tools/misc/rcm/fix-rcmlib-path.patch116
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix13
-rw-r--r--pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--pkgs/tools/networking/mu/default.nix6
-rw-r--r--pkgs/tools/networking/ntp/default.nix4
-rw-r--r--pkgs/tools/networking/p2p/gtk-gnutella/default.nix16
-rw-r--r--pkgs/tools/networking/shadowsocks-libev/default.nix14
-rw-r--r--pkgs/tools/networking/siege/default.nix4
-rw-r--r--pkgs/tools/networking/srelay/arm.patch12
-rw-r--r--pkgs/tools/networking/srelay/default.nix21
-rw-r--r--pkgs/tools/networking/urlwatch/default.nix9
-rw-r--r--pkgs/tools/networking/urlwatch/setup.patch42
-rw-r--r--pkgs/tools/package-management/nix-repl/default.nix6
-rw-r--r--pkgs/tools/system/facter/default.nix4
-rw-r--r--pkgs/tools/text/sift/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix50
-rw-r--r--pkgs/top-level/default.nix44
-rw-r--r--pkgs/top-level/perl-packages.nix19
-rw-r--r--pkgs/top-level/python-packages.nix107
131 files changed, 2026 insertions, 920 deletions
diff --git a/doc/functions.xml b/doc/functions.xml
index 73b178b061f9..908e9571ed69 100644
--- a/doc/functions.xml
+++ b/doc/functions.xml
@@ -89,27 +89,27 @@ in ...</programlisting>
   <title>&lt;pkg&gt;.overrideDerivation</title>
 
   <warning>
-    <para>Do not use this function in Nixpkgs. Because it breaks
-    package abstraction and doesn’t provide error checking for
-    function arguments, it is only intended for ad-hoc customisation
-    (such as in <filename>~/.nixpkgs/config.nix</filename>).
-   </para>
-
-   <para>
-    Additionally, <varname>overrideDerivation</varname> forces an evaluation
-    of the Derivation which can be quite a performance penalty if there are many
-    overrides used.
+    <para>Do not use this function in Nixpkgs as it evaluates a Derivation
+    before modifying it, which breaks package abstraction and removes
+    error-checking of function arguments. In addition, this
+    evaluation-per-function application incurs a performance penalty,
+    which can become a problem if many overrides are used.
+    It is only intended for ad-hoc customisation, such as in
+    <filename>~/.nixpkgs/config.nix</filename>.
    </para>
   </warning>
 
   <para>
-    The function <varname>overrideDerivation</varname> is usually available for all the
-    derivations in the nixpkgs expression (<varname>pkgs</varname>).
+    The function <varname>overrideDerivation</varname> creates a new derivation
+    based on an existing one by overriding the original's attributes with
+    the attribute set produced by the specified function.
+    This function is available on all
+    derivations defined using the <varname>makeOverridable</varname> function.
+    Most standard derivation-producing functions, such as
+    <varname>stdenv.mkDerivation</varname>, are defined using this
+    function, which means most packages in the nixpkgs expression,
+    <varname>pkgs</varname>, have this function.
   </para> 
-  <para>
-    It is used to create a new derivation by overriding the attributes of
-    the original derivation according to the given function.
-  </para>
 
   <para>
     Example usage:
@@ -125,9 +125,9 @@ in ...</programlisting>
   </para>
 
   <para>
-    In the above example, the name, src and patches of the derivation
-    will be overridden, while all other attributes will be retained from the
-    original derivation.
+    In the above example, the <varname>name</varname>, <varname>src</varname>,
+    and <varname>patches</varname> of the derivation will be overridden, while
+    all other attributes will be retained from the original derivation.
   </para>
 
   <para>
@@ -135,6 +135,20 @@ in ...</programlisting>
     the original derivation.
   </para>
 
+  <note>
+    <para>
+      A package's attributes are evaluated *before* being modified by
+      the <varname>overrideDerivation</varname> function.
+      For example, the <varname>name</varname> attribute reference
+      in <varname>url = "mirror://gnu/hello/${name}.tar.gz";</varname>
+      is filled-in *before* the <varname>overrideDerivation</varname> function
+      modifies the attribute set. This means that overriding the
+      <varname>name</varname> attribute, in this example, *will not* change the
+      value of the <varname>url</varname> attribute. Instead, we need to override
+      both the <varname>name</varname> *and* <varname>url</varname> attributes.
+    </para>
+  </note>
+
 </section>
 
 <section xml:id="sec-lib-makeOverridable">
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 636cb257d6bf..f47e481c58a4 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -457,7 +457,6 @@ rec {
 
   /*** deprecated stuff ***/
 
-  deepSeqAttrs = throw "removed 2016-02-29 because unused and broken";
   zipWithNames = zipAttrsWithNames;
   zip = builtins.trace
     "lib.zip is deprecated, use lib.zipAttrsWith instead" zipAttrsWith;
diff --git a/lib/lists.nix b/lib/lists.nix
index c810c8c2f5fc..6712e5cc93f8 100644
--- a/lib/lists.nix
+++ b/lib/lists.nix
@@ -374,8 +374,4 @@ rec {
   */
   subtractLists = e: filter (x: !(elem x e));
 
-  /*** deprecated stuff ***/
-
-  deepSeqList = throw "removed 2016-02-29 because unused and broken";
-
 }
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index ca4dd4f98e8a..ae06c524bde5 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -15,6 +15,7 @@
   adev = "Adrien Devresse <adev@adev.name>";
   Adjective-Object = "Maxwell Huang-Hobbs <mhuan13@gmail.com>";
   adnelson = "Allen Nelson <ithinkican@gmail.com>";
+  adolfogc = "Adolfo E. García Castro <adolfo.garcia.cr@gmail.com>";
   aespinosa = "Allan Espinosa <allan.espinosa@outlook.com>";
   aflatter = "Alexander Flatter <flatter@fastmail.fm>";
   aforemny = "Alexander Foremny <alexanderforemny@googlemail.com>";
@@ -231,6 +232,7 @@
   markus1189 = "Markus Hauck <markus1189@gmail.com>";
   markWot = "Markus Wotringer <markus@wotringer.de>";
   martijnvermaat = "Martijn Vermaat <martijn@vermaat.name>";
+  martingms = "Martin Gammelsæter <martin@mg.am>";
   matejc = "Matej Cotman <cotman.matej@gmail.com>";
   mathnerd314 = "Mathnerd314 <mathnerd314.gph+hs@gmail.com>";
   matthiasbeyer = "Matthias Beyer <mail@beyermatthias.de>";
@@ -420,6 +422,7 @@
   wscott = "Wayne Scott <wsc9tt@gmail.com>";
   wyvie = "Elijah Rum <elijahrum@gmail.com>";
   yarr = "Dmitry V. <savraz@gmail.com>";
+  yurrriq = "Eric Bailey <eric@ericb.me>";
   z77z = "Marco Maggesi <maggesi@math.unifi.it>";
   zagy = "Christian Zagrodnick <cz@flyingcircus.io>";
   zef = "Zef Hemel <zef@zef.me>";
diff --git a/nixos/doc/manual/man-nixos-version.xml b/nixos/doc/manual/man-nixos-version.xml
new file mode 100644
index 000000000000..db7440977c9b
--- /dev/null
+++ b/nixos/doc/manual/man-nixos-version.xml
@@ -0,0 +1,102 @@
+<refentry xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude">
+
+<refmeta>
+  <refentrytitle><command>nixos-version</command></refentrytitle>
+  <manvolnum>8</manvolnum>
+  <refmiscinfo class="source">NixOS</refmiscinfo>
+</refmeta>
+
+<refnamediv>
+  <refname><command>nixos-version</command></refname>
+  <refpurpose>show the version of nixpkgs NixOS was built from</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+  <cmdsynopsis>
+    <command>nixos-version</command>
+    <arg><option>--hash</option></arg>
+    <arg><option>--revision</option></arg>
+  </cmdsynopsis>
+</refsynopsisdiv>
+
+<refsection><title>Description</title>
+
+<para>This command describes the version of nixpkgs used to build
+NixOS.</para>
+
+<para>By default the output includes:</para>
+
+<itemizedlist>
+  <listitem><para>The NixOS release</para></listitem>
+  <listitem><para>Number of commits since the release</para></listitem>
+  <listitem><para>Git SHA of the released commit</para></listitem>
+  <listitem><para>Codename of the NixOS release</para></listitem>
+</itemizedlist>
+</refsection>
+
+<refsection><title>Example</title>
+
+<para>Here is an example output, and corresponding information:
+<screen>$ nixos-version
+16.03.1011.6317da4 (Emu)
+</screen>
+</para>
+
+<informaltable>
+  <tgroup cols="2">
+    <thead>
+      <row>
+        <entry>Attribute</entry>
+        <entry>Value</entry>
+      </row>
+    </thead>
+    <tbody>
+      <row>
+        <entry>NixOS Release</entry>
+        <entry><literal>16.03</literal></entry>
+      </row>
+      <row>
+        <entry>Commit Count</entry>
+        <entry><literal>1011</literal></entry>
+      </row>
+      <row>
+        <entry>Commit SHA</entry>
+        <entry><literal>6317da4</literal></entry>
+      </row>
+      <row>
+        <entry>Release Codename</entry>
+        <entry><literal>Emu</literal></entry>
+      </row>
+    </tbody>
+  </tgroup>
+</informaltable>
+<para>
+</para>
+
+
+</refsection>
+
+
+<refsection><title>Options</title>
+
+<para>This command accepts the following options:</para>
+
+<variablelist>
+
+  <varlistentry>
+    <term><option>--hash</option></term>
+    <term><option>--revision</option></term>
+    <listitem>
+      <para>The output will be the full hash of the git commit
+<screen>$ nixos-version --hash
+6317da40006f6bc2480c6781999c52d88dde2acf
+</screen>
+      </para>
+    </listitem>
+  </varlistentry>
+</variablelist>
+
+</refsection>
+</refentry>
diff --git a/nixos/doc/manual/man-pages.xml b/nixos/doc/manual/man-pages.xml
index 97a2c16d406e..e945e0e62639 100644
--- a/nixos/doc/manual/man-pages.xml
+++ b/nixos/doc/manual/man-pages.xml
@@ -27,5 +27,6 @@
   <xi:include href="man-nixos-install.xml" />
   <xi:include href="man-nixos-option.xml" />
   <xi:include href="man-nixos-rebuild.xml" />
+  <xi:include href="man-nixos-version.xml" />
 
 </reference>
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
index 192f608e138f..e26caa191643 100755
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -13,8 +13,11 @@ echo "NixOS version is $version ($major)"
 
 rm -f ec2-amis.nix
 
+types="hvm pv"
+stores="ebs s3"
+regions="eu-west-1 eu-central-1 us-east-1 us-west-1 us-west-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 ap-northeast-2 sa-east-1 ap-south-1"
 
-for type in hvm pv; do
+for type in $types; do
     link=$stateDir/$type
     imageFile=$link/nixos.qcow2
     system=x86_64-linux
@@ -31,7 +34,7 @@ for type in hvm pv; do
             --arg configuration "{ imports = [ <nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix> ]; ec2.hvm = $hvmFlag; }"
     fi
 
-    for store in ebs s3; do
+    for store in $stores; do
 
         bucket=nixos-amis
         bucketDir="$version-$type-$store"
@@ -39,7 +42,7 @@ for type in hvm pv; do
         prevAmi=
         prevRegion=
 
-        for region in eu-west-1 eu-central-1 us-east-1 us-west-1 us-west-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 sa-east-1; do
+        for region in $regions; do
 
             name=nixos-$version-$arch-$type-$store
             description="NixOS $system $version ($type-$store)"
@@ -51,10 +54,11 @@ for type in hvm pv; do
                 echo "doing $name in $region..."
 
                 if [ -n "$prevAmi" ]; then
-                    ami=$(ec2-copy-image \
+                    ami=$(aws ec2 copy-image \
                         --region "$region" \
-                        --source-region "$prevRegion" --source-ami-id "$prevAmi" \
-                        --name "$name" --description "$description" | cut -f 2)
+                        --source-region "$prevRegion" --source-image-id "$prevAmi" \
+                        --name "$name" --description "$description" | json -q .ImageId)
+                    if [ "$ami" = null ]; then break; fi
                 else
 
                     if [ $store = s3 ]; then
@@ -85,12 +89,12 @@ for type in hvm pv; do
                             ec2-upload-bundle \
                                 -m $imageDir/$type.raw.manifest.xml \
                                 -b "$bucket/$bucketDir" \
-                                -a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" \
+                                -a "$AWS_ACCESS_KEY_ID" -s "$AWS_SECRET_ACCESS_KEY" \
                                 --location EU
                             touch $imageDir/uploaded
                         fi
 
-                        extraFlags="$bucket/$bucketDir/$type.raw.manifest.xml"
+                        extraFlags="--image-location $bucket/$bucketDir/$type.raw.manifest.xml"
 
                     else
 
@@ -115,7 +119,8 @@ for type in hvm pv; do
                         if [ -z "$snapId" -a -z "$volId" -a -z "$taskId" ]; then
                             echo "importing $vhdFile..."
                             taskId=$(ec2-import-volume $vhdFile --no-upload -f vhd \
-                                -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY" \
+                                -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \
+                                -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" \
                                 --region "$region" -z "${region}a" \
                                 --bucket "$bucket" --prefix "$bucketDir/" \
                                 | tee /dev/stderr \
@@ -125,15 +130,16 @@ for type in hvm pv; do
 
                         if [ -z "$snapId" -a -z "$volId" ]; then
                             ec2-resume-import  $vhdFile -t "$taskId" --region "$region" \
-                                -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY"
+                                -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \
+                                -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY"
                         fi
 
                         # Wait for the volume creation to finish.
                         if [ -z "$snapId" -a -z "$volId" ]; then
                             echo "waiting for import to finish..."
                             while true; do
-                                volId=$(ec2-describe-conversion-tasks "$taskId" --region "$region" | sed 's/.*VolumeId.*\(vol-[0-9a-f]\+\).*/\1/ ; t ; d')
-                                if [ -n "$volId" ]; then break; fi
+                                volId=$(aws ec2 describe-conversion-tasks --conversion-task-ids "$taskId" --region "$region" | jq -r .ConversionTasks[0].ImportVolume.Volume.Id)
+                                if [ "$volId" != null ]; then break; fi
                                 sleep 10
                             done
 
@@ -143,22 +149,24 @@ for type in hvm pv; do
                         # Delete the import task.
                         if [ -n "$volId" -a -n "$taskId" ]; then
                             echo "removing import task..."
-                            ec2-delete-disk-image -t "$taskId" --region "$region" -o "$EC2_ACCESS_KEY" -w "$EC2_SECRET_KEY" || true
+                            ec2-delete-disk-image -t "$taskId" --region "$region" \
+                                -O "$AWS_ACCESS_KEY_ID" -W "$AWS_SECRET_ACCESS_KEY" \
+                                -o "$AWS_ACCESS_KEY_ID" -w "$AWS_SECRET_ACCESS_KEY" || true
                             rm -f $stateDir/$region.$type.task-id
                         fi
 
                         # Create a snapshot.
                         if [ -z "$snapId" ]; then
                             echo "creating snapshot..."
-                            snapId=$(ec2-create-snapshot "$volId" --region "$region" | cut -f 2)
+                            snapId=$(aws ec2 create-snapshot --volume-id "$volId" --region "$region" --description "$description" | jq -r .SnapshotId)
+                            if [ "$snapId" = null ]; then exit 1; fi
                             echo -n "$snapId" > $stateDir/$region.$type.snap-id
-                            ec2-create-tags "$snapId" -t "Name=$description" --region "$region"
                         fi
 
                         # Wait for the snapshot to finish.
                         echo "waiting for snapshot to finish..."
                         while true; do
-                            status=$(ec2-describe-snapshots "$snapId" --region "$region" | head -n1 | cut -f 4)
+                            status=$(aws ec2 describe-snapshots --snapshot-ids "$snapId" --region "$region" | jq -r .Snapshots[0].State)
                             if [ "$status" = completed ]; then break; fi
                             sleep 10
                         done
@@ -166,35 +174,50 @@ for type in hvm pv; do
                         # Delete the volume.
                         if [ -n "$volId" ]; then
                             echo "deleting volume..."
-                            ec2-delete-volume "$volId" --region "$region" || true
+                            aws ec2 delete-volume --volume-id "$volId" --region "$region" || true
                             rm -f $stateDir/$region.$type.vol-id
                         fi
 
-                        extraFlags="-b /dev/sda1=$snapId:$vhdFileLogicalGigaBytes:true:gp2"
+                        blockDeviceMappings="DeviceName=/dev/sda1,Ebs={SnapshotId=$snapId,VolumeSize=$vhdFileLogicalGigaBytes,DeleteOnTermination=true,VolumeType=gp2}"
+                        extraFlags=""
 
                         if [ $type = pv ]; then
-                            extraFlags+=" --root-device-name=/dev/sda1"
+                            extraFlags+=" --root-device-name /dev/sda1"
+                        else
+                            extraFlags+=" --root-device-name /dev/sda1"
+                            extraFlags+=" --sriov-net-support simple"
+                            extraFlags+=" --ena-support"
                         fi
 
-                        extraFlags+=" -b /dev/sdb=ephemeral0 -b /dev/sdc=ephemeral1 -b /dev/sdd=ephemeral2 -b /dev/sde=ephemeral3"
+                        blockDeviceMappings+=" DeviceName=/dev/sdb,VirtualName=ephemeral0"
+                        blockDeviceMappings+=" DeviceName=/dev/sdc,VirtualName=ephemeral1"
+                        blockDeviceMappings+=" DeviceName=/dev/sdd,VirtualName=ephemeral2"
+                        blockDeviceMappings+=" DeviceName=/dev/sde,VirtualName=ephemeral3"
+                    fi
+
+                    if [ $type = hvm ]; then
+                        extraFlags+=" --sriov-net-support simple"
+                        extraFlags+=" --ena-support"
                     fi
 
                     # Register the AMI.
                     if [ $type = pv ]; then
-                        kernel=$(ec2-describe-images -o amazon --filter "manifest-location=*pv-grub-hd0_1.04-$arch*" --region "$region" | cut -f 2)
-                        [ -n "$kernel" ]
+                        kernel=$(aws ec2 describe-images --owner amazon --filters "Name=name,Values=pv-grub-hd0_1.04-$arch.gz" | jq -r .Images[0].ImageId)
+                        if [ "$kernel" = null ]; then break; fi
                         echo "using PV-GRUB kernel $kernel"
                         extraFlags+=" --virtualization-type paravirtual --kernel $kernel"
                     else
                         extraFlags+=" --virtualization-type hvm"
                     fi
 
-                    ami=$(ec2-register \
-                        -n "$name" \
-                        -d "$description" \
+                    ami=$(aws ec2 register-image \
+                        --name "$name" \
+                        --description "$description" \
                         --region "$region" \
                         --architecture "$arch" \
-                        $extraFlags | cut -f 2)
+                        --block-device-mappings $blockDeviceMappings \
+                        $extraFlags | jq -r .ImageId)
+                    if [ "$ami" = null ]; then break; fi
                 fi
 
                 echo -n "$ami" > $amiFile
@@ -204,23 +227,45 @@ for type in hvm pv; do
                 ami=$(cat $amiFile)
             fi
 
-            if [ -z "$NO_WAIT" -o -z "$prevAmi" ]; then
-                echo "waiting for AMI..."
-                while true; do
-                    status=$(ec2-describe-images "$ami" --region "$region" | head -n1 | cut -f 5)
-                    if [ "$status" = available ]; then break; fi
-                    sleep 10
-                done
-
-                ec2-modify-image-attribute \
-                    --region "$region" "$ami" -l -a all
-            fi
-
             echo "region = $region, type = $type, store = $store, ami = $ami"
+
             if [ -z "$prevAmi" ]; then
                 prevAmi="$ami"
                 prevRegion="$region"
             fi
+        done
+
+    done
+
+done
+
+for type in $types; do
+    link=$stateDir/$type
+    system=x86_64-linux
+    arch=x86_64
+
+    for store in $stores; do
+
+        for region in $regions; do
+
+            name=nixos-$version-$arch-$type-$store
+            amiFile=$stateDir/$region.$type.$store.ami-id
+            ami=$(cat $amiFile)
+
+            echo "region = $region, type = $type, store = $store, ami = $ami"
+
+            echo -n "waiting for AMI..."
+            while true; do
+                status=$(aws ec2 describe-images --image-ids "$ami" --region "$region" | jq -r .Images[0].State)
+                if [ "$status" = available ]; then break; fi
+                sleep 10
+                echo -n '.'
+            done
+            echo
+
+            # Make the image public.
+            aws ec2 modify-image-attribute \
+                --image-id "$ami" --region "$region" --launch-permission 'Add={Group=all}'
 
             echo "  \"$major\".$region.$type-$store = \"$ami\";" >> ec2-amis.nix
         done
diff --git a/nixos/modules/i18n/input-method/fcitx.nix b/nixos/modules/i18n/input-method/fcitx.nix
index bdefd2d2d596..e97bb9f80eb5 100644
--- a/nixos/modules/i18n/input-method/fcitx.nix
+++ b/nixos/modules/i18n/input-method/fcitx.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
   cfg = config.i18n.inputMethod.fcitx;
-  fcitxPackage = pkgs.fcitx-with-plugins.override { plugins = cfg.engines; };
+  fcitxPackage = pkgs.fcitx.override { plugins = cfg.engines; };
   fcitxEngine = types.package // {
     name  = "fcitx-engine";
     check = x: (lib.types.package.check x) && (attrByPath ["meta" "isFcitxEngine"] false x);
diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh
index 51aa2dd82321..e4e4f5c446c8 100644
--- a/nixos/modules/installer/tools/nixos-version.sh
+++ b/nixos/modules/installer/tools/nixos-version.sh
@@ -1,6 +1,9 @@
 #! @shell@
 
 case "$1" in
+  --help)
+    exec man nixos-version
+    exit 1
   --hash|--revision)
     echo "@nixosRevision@"
     ;;
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 67178e765c8a..2ed711b79c45 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -368,6 +368,7 @@
   ./services/networking/ntopng.nix
   ./services/networking/ntpd.nix
   ./services/networking/nylon.nix
+  ./services/networking/offlineimap.nix
   ./services/networking/oidentd.nix
   ./services/networking/openfire.nix
   ./services/networking/openntpd.nix
diff --git a/nixos/modules/programs/bash/inputrc b/nixos/modules/programs/bash/inputrc
index e4eabc052c5f..f339eb649ed8 100644
--- a/nixos/modules/programs/bash/inputrc
+++ b/nixos/modules/programs/bash/inputrc
@@ -6,6 +6,7 @@ set meta-flag on
 set input-meta on
 set convert-meta off
 set output-meta on
+set colored-stats on
 
 #set mark-symlinked-directories on
 
diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix
index 10f3daea69e4..90834c5b2605 100644
--- a/nixos/modules/services/games/factorio.nix
+++ b/nixos/modules/services/games/factorio.nix
@@ -78,7 +78,7 @@ in
           test -e ${stateDir}/saves/${cfg.saveName}.zip || \
             ${pkgs.factorio-headless}/bin/factorio         \
               --config=${cfg.configFile}                   \
-              --create=${cfg.saveName}
+              --create=${stateDir}/saves/${cfg.saveName}.zip
       '';
 
       serviceConfig = {
@@ -93,7 +93,7 @@ in
           "${pkgs.factorio-headless}/bin/factorio"
           "--config=${cfg.configFile}"
           "--port=${toString cfg.port}"
-          "--start-server=${cfg.saveName}"
+          "--start-server=${stateDir}/saves/${cfg.saveName}.zip"
         ];
       };
     };
diff --git a/nixos/modules/services/networking/offlineimap.nix b/nixos/modules/services/networking/offlineimap.nix
new file mode 100644
index 000000000000..31ce9280f319
--- /dev/null
+++ b/nixos/modules/services/networking/offlineimap.nix
@@ -0,0 +1,73 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.offlineimap;
+in {
+
+  options.services.offlineimap = {
+    enable = mkEnableOption "Offlineimap, a software to dispose your mailbox(es) as a local Maildir(s).";
+
+    install = mkOption {
+      type = types.bool;
+      default = false;
+      example = true;
+      description = ''
+        Whether to install a user service for Offlineimap. Once
+        the service is started, emails will be fetched automatically.
+
+        The service must be manually started for each user with
+        "systemctl --user start offlineimap" or globally through
+        <varname>services.offlineimap.enable</varname>.
+      '';
+    };
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.offlineimap;
+      defaultText = "pkgs.offlineimap";
+      description = "Offlineimap derivation to use.";
+    };
+
+    path = mkOption {
+      type = types.listOf types.path;
+      default = [];
+      example = literalExample "[ pkgs.pass pkgs.bash pkgs.notmuch ]";
+      description = "List of derivations to put in Offlineimap's path.";
+    };
+
+    onCalendar = mkOption {
+      type = types.str;
+      default = "*:0/3"; # every 3 minutes
+      description = "How often is offlineimap started. Default is '*:0/3' meaning every 3 minutes. See systemd.time(7) for more information about the format.";
+    };
+
+    timeoutStartSec = mkOption {
+      type = types.str;
+      default = "120sec"; # Kill if still alive after 2 minutes
+      description = "How long waiting for offlineimap before killing it. Default is '120sec' meaning every 2 minutes. See systemd.time(7) for more information about the format.";
+    };
+  };
+  config = mkIf (cfg.enable || cfg.install) {
+    systemd.user.services.offlineimap = {
+      description = "Offlineimap: a software to dispose your mailbox(es) as a local Maildir(s)";
+      serviceConfig = {
+        Type      = "oneshot";
+        ExecStart = "${cfg.package}/bin/offlineimap -u basic -o -1";
+        TimeoutStartSec = cfg.timeoutStartSec;
+      };
+      path = cfg.path;
+    };
+    environment.systemPackages = [ "${cfg.package}" ];
+    systemd.user.timers.offlineimap = {
+      description = "offlineimap timer";
+      timerConfig               = {
+        Unit = "offlineimap.service";
+        OnCalendar = cfg.onCalendar;
+        # start immediately after computer is started:
+        Persistent = "true";
+      };
+    } // optionalAttrs cfg.enable { wantedBy = [ "default.target" ]; };
+  };
+}
diff --git a/nixos/modules/system/boot/coredump.nix b/nixos/modules/system/boot/coredump.nix
index 793c7515c761..b27a35b6257d 100644
--- a/nixos/modules/system/boot/coredump.nix
+++ b/nixos/modules/system/boot/coredump.nix
@@ -36,6 +36,8 @@ with lib;
   config = mkMerge [
     (mkIf config.systemd.coredump.enable {
 
+      systemd.additionalUpstreamSystemUnits = [ "systemd-coredump.socket" "systemd-coredump@.service" ];
+
       environment.etc."systemd/coredump.conf".text =
         ''
           [Coredump]
@@ -45,7 +47,7 @@ with lib;
       # Have the kernel pass core dumps to systemd's coredump helper binary.
       # From systemd's 50-coredump.conf file. See:
       # <https://github.com/systemd/systemd/blob/v218/sysctl.d/50-coredump.conf.in>
-      boot.kernel.sysctl."kernel.core_pattern" = "|${pkgs.systemd}/lib/systemd/systemd-coredump %p %u %g %s %t %e";
+      boot.kernel.sysctl."kernel.core_pattern" = "|${pkgs.systemd}/lib/systemd/systemd-coredump %P %u %g %s %t %c %e";
     })
 
     (mkIf (!config.systemd.coredump.enable) {
diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
index c5c250c14cea..576a07c1d272 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix
@@ -5,5 +5,4 @@ pkgs.substituteAll {
   isExecutable = true;
   path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
   inherit (pkgs) bash;
-  kernelDTB = pkgs.stdenv.platform.kernelDTB or false;
 }
diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
index 78a8e8fd658c..c780a89b102c 100644
--- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
+++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
@@ -75,9 +75,10 @@ addEntry() {
 
     copyToKernelsDir "$path/kernel"; kernel=$result
     copyToKernelsDir "$path/initrd"; initrd=$result
-    if [ -n "@kernelDTB@" ]; then
-        # XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
-        copyToKernelsDir $(readlink -m "$path/kernel/../dtbs"); dtbs=$result
+    # XXX UGLY: maybe the system config should have a top-level "dtbs" entry?
+    dtbDir=$(readlink -m "$path/kernel/../dtbs")
+    if [ -d "$dtbDir" ]; then
+        copyToKernelsDir "$dtbDir"; dtbs=$result
     fi
 
     timestampEpoch=$(stat -L -c '%Z' $path)
@@ -95,7 +96,7 @@ addEntry() {
     fi
     echo "  LINUX ../nixos/$(basename $kernel)"
     echo "  INITRD ../nixos/$(basename $initrd)"
-    if [ -n "@kernelDTB@" ]; then
+    if [ -d "$dtbDir" ]; then
         echo "  FDTDIR ../nixos/$(basename $dtbs)"
     fi
     echo "  APPEND systemConfig=$path init=$path/init $extraParams"
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index b7c09d2e4bfa..5c8cce5066af 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -764,7 +764,7 @@ in
         { wantedBy = [ "timers.target" ];
           timerConfig.OnCalendar = service.startAt;
         })
-        (filterAttrs (name: service: service.startAt != "") cfg.services);
+        (filterAttrs (name: service: service.enable && service.startAt != "") cfg.services);
 
     # Generate timer units for all services that have a ‘startAt’ value.
     systemd.user.timers =
diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix
index da5575f4b6dd..ebf398fa266f 100644
--- a/nixos/modules/virtualisation/amazon-image.nix
+++ b/nixos/modules/virtualisation/amazon-image.nix
@@ -20,8 +20,12 @@ let cfg = config.ec2; in
       autoResize = true;
     };
 
-    boot.extraModulePackages = [ config.boot.kernelPackages.ixgbevf ];
-    boot.initrd.kernelModules = [ "xen-blkfront" "xen-netfront" "ixgbevf" ];
+    boot.extraModulePackages =
+      [ config.boot.kernelPackages.ixgbevf
+        config.boot.kernelPackages.ena
+      ];
+    boot.initrd.kernelModules = [ "xen-blkfront" "xen-netfront" ];
+    boot.initrd.availableKernelModules = [ "ixgbevf" "ena" ];
     boot.kernelParams = mkIf cfg.hvm [ "console=ttyS0" ];
 
     # Prevent the nouveau kernel module from being loaded, as it
diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
index 5257aaf62025..bdf6ed4dcd29 100644
--- a/nixos/modules/virtualisation/ec2-amis.nix
+++ b/nixos/modules/virtualisation/ec2-amis.nix
@@ -90,40 +90,48 @@
   "15.09".us-west-2.pv-ebs = "ami-005fb160";
   "15.09".us-west-2.pv-s3 = "ami-cd55bbad";
 
-  "16.03".ap-northeast-1.hvm-ebs = "ami-b6edf5d8";
-  "16.03".ap-northeast-1.hvm-s3 = "ami-b1e3fbdf";
-  "16.03".ap-northeast-1.pv-ebs = "ami-6190880f";
-  "16.03".ap-northeast-1.pv-s3 = "ami-908d95fe";
-  "16.03".ap-southeast-1.hvm-ebs = "ami-35b16656";
-  "16.03".ap-southeast-1.hvm-s3 = "ami-41be6922";
-  "16.03".ap-southeast-1.pv-ebs = "ami-4cb96e2f";
-  "16.03".ap-southeast-1.pv-s3 = "ami-3bb96e58";
-  "16.03".ap-southeast-2.hvm-ebs = "ami-debc91bd";
-  "16.03".ap-southeast-2.hvm-s3 = "ami-55bc9136";
-  "16.03".ap-southeast-2.pv-ebs = "ami-b38ba6d0";
-  "16.03".ap-southeast-2.pv-s3 = "ami-9e8ba6fd";
-  "16.03".eu-central-1.hvm-ebs = "ami-7c967413";
-  "16.03".eu-central-1.hvm-s3 = "ami-b29072dd";
-  "16.03".eu-central-1.pv-ebs = "ami-7a947615";
-  "16.03".eu-central-1.pv-s3 = "ami-729b791d";
-  "16.03".eu-west-1.hvm-ebs = "ami-ff27a98c";
-  "16.03".eu-west-1.hvm-s3 = "ami-6c21af1f";
-  "16.03".eu-west-1.pv-ebs = "ami-a33cb2d0";
-  "16.03".eu-west-1.pv-s3 = "ami-ec38b69f";
-  "16.03".sa-east-1.hvm-ebs = "ami-5bef6637";
-  "16.03".sa-east-1.hvm-s3 = "ami-55f87139";
-  "16.03".sa-east-1.pv-ebs = "ami-76e56c1a";
-  "16.03".sa-east-1.pv-s3 = "ami-e1f8718d";
-  "16.03".us-east-1.hvm-ebs = "ami-4bfd1926";
-  "16.03".us-east-1.hvm-s3 = "ami-60c5210d";
-  "16.03".us-east-1.pv-ebs = "ami-c0c92dad";
-  "16.03".us-east-1.pv-s3 = "ami-f9d63294";
-  "16.03".us-west-1.hvm-ebs = "ami-13aad473";
-  "16.03".us-west-1.hvm-s3 = "ami-e1a8d681";
-  "16.03".us-west-1.pv-ebs = "ami-c0a6d8a0";
-  "16.03".us-west-1.pv-s3 = "ami-6aa9d70a";
-  "16.03".us-west-2.hvm-ebs = "ami-265dad46";
-  "16.03".us-west-2.hvm-s3 = "ami-cd40b0ad";
-  "16.03".us-west-2.pv-ebs = "ami-7b4aba1b";
-  "16.03".us-west-2.pv-s3 = "ami-0849b968";
+  "16.03".ap-northeast-1.hvm-ebs = "ami-40619d21";
+  "16.03".ap-northeast-1.hvm-s3 = "ami-ce629eaf";
+  "16.03".ap-northeast-1.pv-ebs = "ami-ef639f8e";
+  "16.03".ap-northeast-1.pv-s3 = "ami-a1609cc0";
+  "16.03".ap-northeast-2.hvm-ebs = "ami-deca00b0";
+  "16.03".ap-northeast-2.hvm-s3 = "ami-a3b77dcd";
+  "16.03".ap-northeast-2.pv-ebs = "ami-7bcb0115";
+  "16.03".ap-northeast-2.pv-s3 = "ami-a2b77dcc";
+  "16.03".ap-south-1.hvm-ebs = "ami-0dff9562";
+  "16.03".ap-south-1.hvm-s3 = "ami-13f69c7c";
+  "16.03".ap-south-1.pv-ebs = "ami-0ef39961";
+  "16.03".ap-south-1.pv-s3 = "ami-e0c8a28f";
+  "16.03".ap-southeast-1.hvm-ebs = "ami-5e964a3d";
+  "16.03".ap-southeast-1.hvm-s3 = "ami-4d964a2e";
+  "16.03".ap-southeast-1.pv-ebs = "ami-ec9b478f";
+  "16.03".ap-southeast-1.pv-s3 = "ami-999b47fa";
+  "16.03".ap-southeast-2.hvm-ebs = "ami-9f7359fc";
+  "16.03".ap-southeast-2.hvm-s3 = "ami-987359fb";
+  "16.03".ap-southeast-2.pv-ebs = "ami-a2705ac1";
+  "16.03".ap-southeast-2.pv-s3 = "ami-a3705ac0";
+  "16.03".eu-central-1.hvm-ebs = "ami-17a45178";
+  "16.03".eu-central-1.hvm-s3 = "ami-f9a55096";
+  "16.03".eu-central-1.pv-ebs = "ami-c8a550a7";
+  "16.03".eu-central-1.pv-s3 = "ami-6ea45101";
+  "16.03".eu-west-1.hvm-ebs = "ami-b5b3d5c6";
+  "16.03".eu-west-1.hvm-s3 = "ami-c986e0ba";
+  "16.03".eu-west-1.pv-ebs = "ami-b083e5c3";
+  "16.03".eu-west-1.pv-s3 = "ami-3c83e54f";
+  "16.03".sa-east-1.hvm-ebs = "ami-f6eb7f9a";
+  "16.03".sa-east-1.hvm-s3 = "ami-93e773ff";
+  "16.03".sa-east-1.pv-ebs = "ami-cbb82ca7";
+  "16.03".sa-east-1.pv-s3 = "ami-abb82cc7";
+  "16.03".us-east-1.hvm-ebs = "ami-c123a3d6";
+  "16.03".us-east-1.hvm-s3 = "ami-bc25a5ab";
+  "16.03".us-east-1.pv-ebs = "ami-bd25a5aa";
+  "16.03".us-east-1.pv-s3 = "ami-a325a5b4";
+  "16.03".us-west-1.hvm-ebs = "ami-748bcd14";
+  "16.03".us-west-1.hvm-s3 = "ami-a68dcbc6";
+  "16.03".us-west-1.pv-ebs = "ami-048acc64";
+  "16.03".us-west-1.pv-s3 = "ami-208dcb40";
+  "16.03".us-west-2.hvm-ebs = "ami-8263a0e2";
+  "16.03".us-west-2.hvm-s3 = "ami-925c9ff2";
+  "16.03".us-west-2.pv-ebs = "ami-5e61a23e";
+  "16.03".us-west-2.pv-s3 = "ami-734c8f13";
 }
diff --git a/nixos/tests/gnome3_20-gdm.nix b/nixos/tests/gnome3_18-gdm.nix
index 8b1e9afedfb9..8b1e9afedfb9 100644
--- a/nixos/tests/gnome3_20-gdm.nix
+++ b/nixos/tests/gnome3_18-gdm.nix
diff --git a/nixos/tests/gnome3_20.nix b/nixos/tests/gnome3_18.nix
index 51c83a4e3129..2c88e6abe890 100644
--- a/nixos/tests/gnome3_20.nix
+++ b/nixos/tests/gnome3_18.nix
@@ -15,7 +15,7 @@ import ./make-test.nix ({ pkgs, ...} : {
       services.xserver.displayManager.auto.user = "alice";
       services.xserver.desktopManager.gnome3.enable = true;
 
-      environment.gnome3.packageSet = pkgs.gnome3_20;
+      environment.gnome3.packageSet = pkgs.gnome3_18;
 
       virtualisation.memorySize = 512;
     };
diff --git a/pkgs/applications/audio/i-score/default.nix b/pkgs/applications/audio/i-score/default.nix
index 17fadfe8b1f0..97e8f5f1429b 100644
--- a/pkgs/applications/audio/i-score/default.nix
+++ b/pkgs/applications/audio/i-score/default.nix
@@ -3,7 +3,7 @@
   cln,
   cmake,
   fetchgit,
-  gcc5,
+  gcc,
   ginac,
   jamomacore,
   kde5,
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     cln
     cmake
     ginac
-    gcc5
+    gcc
     jamomacore
     kde5.kdnssd
     libsndfile
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index b4f6baa9c64a..cd93a4ed0e8f 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, gtk2, which, pkgconfig, intltool, file }:
 
 let
-  version = "1.27";
+  version = "1.28";
 in
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.geany.org/${name}.tar.bz2";
-    sha256 = "846ff699a5944c5c3c068ae0199d4c13946a668bfc6d03f8c79765667c20cadf";
+    sha256 = "0nha21rbdhl10vdpaq8d5v5fszvggl1xar555pvrnvm2y443ffpp";
   };
 
   buildInputs = [ gtk2 which pkgconfig intltool file ];
diff --git a/pkgs/applications/graphics/antimony/default.nix b/pkgs/applications/graphics/antimony/default.nix
index 8d17a290cebb..b7d9f4a81599 100644
--- a/pkgs/applications/graphics/antimony/default.nix
+++ b/pkgs/applications/graphics/antimony/default.nix
@@ -1,29 +1,25 @@
-{ stdenv, fetchgit, libpng, python3, boost, mesa, qtbase, qmakeHook, ncurses }:
+{ stdenv, fetchFromGitHub, libpng, python3, boost, mesa, qtbase, ncurses, cmake, flex, lemon }:
 
 let
-  gitRev    = "745eca3a2d2657c495d5509e9083c884e021d09c";
+  gitRev    = "e8480c718e8c49ae3cc2d7af10ea93ea4c2fff9a";
   gitBranch = "master";
-  gitTag    = "0.8.0b";
+  gitTag    = "0.9.2";
 in 
   stdenv.mkDerivation rec {
     name    = "antimony-${version}";
     version = gitTag;
 
-    src  = fetchgit {
-      url         = "git://github.com/mkeeter/antimony.git";
-      rev         = gitRev;
-      sha256      = "0azjdkbixz2pyk2yy7a0ya5xk60xgw3l2pd4pj4ijyqxx5jmh0sy";
+    src = fetchFromGitHub {
+      owner = "mkeeter";
+      repo = "antimony";
+      rev = gitTag;
+      sha256 = "0fpgy5cb4knz2z9q078206k8wzxfs8b9g76mf4bz1ic77931ykjz";
     };
 
     patches = [ ./paths-fix.patch ];
-    # fix build with glibc-2.23
+
     postPatch = ''
-      sed 's/\<isinf(/std::isinf(/g' -i \
-        src/export/export_heightmap.cpp \
-        src/fab/types/bounds.cpp \
-        src/graph/hooks/meta.cpp \
-        src/ui/dialogs/resolution_dialog.cpp \
-        src/render/render_task.cpp
+       sed -i "s,/usr/local,$out,g" app/CMakeLists.txt app/app/app.cpp app/app/main.cpp
     '';
 
     buildInputs = [
@@ -31,15 +27,13 @@ in
       mesa qtbase ncurses
     ];
 
-    nativeBuildHooks = [ qmakeHook ];
-
-    preConfigure = ''
-      export GITREV=${gitRev}
-      export GITBRANCH=${gitBranch}
-      export GITTAG=${gitTag}
+    nativeBuildInputs = [ cmake flex lemon ];
 
-      cd qt
-    '';
+    cmakeFlags= [
+      "-DGITREV=${gitRev}"
+      "-DGITTAG=${gitTag}"
+      "-DGITBRANCH=${gitBranch}"
+    ];
 
     enableParallelBuilding = true;
 
@@ -48,6 +42,5 @@ in
       homepage    = "https://github.com/mkeeter/antimony";
       license     = licenses.mit;
       platforms   = platforms.linux;
-      broken = true;
     };
   }
diff --git a/pkgs/applications/graphics/antimony/paths-fix.patch b/pkgs/applications/graphics/antimony/paths-fix.patch
index de8d9e7beb08..9235dd6cdce1 100644
--- a/pkgs/applications/graphics/antimony/paths-fix.patch
+++ b/pkgs/applications/graphics/antimony/paths-fix.patch
@@ -1,99 +1,21 @@
-diff --git a/qt/antimony.pro b/qt/antimony.pro
-index 9d586f4..b055a6d 100644
---- a/qt/antimony.pro
-+++ b/qt/antimony.pro
-@@ -12,14 +12,9 @@ QMAKE_CXXFLAGS_RELEASE += -O3
- 
- QMAKE_CXXFLAGS += -Werror=switch
- 
--GITREV = $$system(git log --pretty=format:'%h' -n 1)
--GITDIFF = $$system(git diff --quiet --exit-code || echo "+")
--GITTAG = $$system(git describe --exact-match --tags 2> /dev/null)
--GITBRANCH = $$system(git rev-parse --abbrev-ref HEAD)
--
--QMAKE_CXXFLAGS += "-D'GITREV=\"$${GITREV}$${GITDIFF}\"'"
--QMAKE_CXXFLAGS += "-D'GITTAG=\"$${GITTAG}\"'"
--QMAKE_CXXFLAGS += "-D'GITBRANCH=\"$${GITBRANCH}\"'"
-+QMAKE_CXXFLAGS += "-D'GITREV=\"$$(GITREV)\"'"
-+QMAKE_CXXFLAGS += "-D'GITTAG=\"$$(GITTAG)\"'"
-+QMAKE_CXXFLAGS += "-D'GITBRANCH=\"$$(GITBRANCH)\"'"
- 
- OLD_GL_SET = $$(OLD_GL)
- equals(OLD_GL_SET, "true") {
-@@ -125,11 +120,11 @@ macx {
- }
- 
- linux {
--    executable.path = /usr/local/bin
-+    executable.path = $$(out)/bin
-     executable.files = antimony
--    nodes_folder.path = /usr/local/bin/sb/nodes
-+    nodes_folder.path = $$(out)/bin/sb/nodes
-     nodes_folder.files = ../py/nodes/*
--    fab_folder.path = /usr/local/bin/sb/fab
-+    fab_folder.path = $$(out)/bin/sb/fab
-     fab_folder.files = ../py/fab/*
-     INSTALLS += executable nodes_folder fab_folder
- }
-diff --git a/qt/fab.pri b/qt/fab.pri
-index a54813b..b500536 100644
---- a/qt/fab.pri
-+++ b/qt/fab.pri
-@@ -54,7 +54,7 @@ DEFINES += '_STATIC_= '
- 
- linux {
-     QMAKE_CFLAGS += -std=gnu99
--    QMAKE_CXXFLAGS += $$system(/usr/bin/python3-config --includes)
-+    QMAKE_CXXFLAGS += $$system(python3-config --includes)
-     LIBS += -lpng
- }
- 
-diff --git a/qt/shared.pri b/qt/shared.pri
-index e7d0e3a..026eae3 100644
---- a/qt/shared.pri
-+++ b/qt/shared.pri
-@@ -39,41 +39,11 @@ macx {
- }
- 
- linux {
--    QMAKE_CXXFLAGS += $$system(/usr/bin/python3-config --includes)
--    QMAKE_LFLAGS   += $$system(/usr/bin/python3-config --ldflags)
-+    QMAKE_CXXFLAGS += $$system(python3-config --includes)
-+    QMAKE_LFLAGS   += $$system(python3-config --ldflags)
- 
-     # Even though this is in QMAKE_LFLAGS, the linker is picky about
-     # library ordering (so it needs to be here too).
-     LIBS += -lpython3.4m
--
--    # ldconfig is being used to find libboost_python, but it's in a different
--    # place in different distros (and is not in the default $PATH on Debian).
--    # First, check to see if it's on the default $PATH.
--    system(which ldconfig > /dev/null) {
--        LDCONFIG_BIN = "ldconfig"
--    }
--    # If that failed, then search for it in its usual places.
--    isEmpty(LDCONFIG_BIN) {
--        for(p, $$list(/sbin/ldconfig /usr/bin/ldconfig)) {
--            exists($$p): LDCONFIG_BIN = $$p
--        }
--    }
--    # If that search failed too, then exit with an error.
--    isEmpty(LDCONFIG_BIN) {
--        error("Could not find ldconfig!")
--    }
--
--    # Check for different boost::python naming schemes
--    LDCONFIG_OUT = $$system($$LDCONFIG_BIN -p|grep python)
--    for (b, $$list(boost_python-py34 boost_python3)) {
--        contains(LDCONFIG_OUT, "lib$${b}.so") {
--            LIBS += "-l$$b"
--            GOT_BOOST_PYTHON = True
--        }
--    }
+diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
+index ddc5c9b..d80728a 100644
+--- a/app/CMakeLists.txt
++++ b/app/CMakeLists.txt
+@@ -158,16 +158,6 @@ target_link_libraries(${ANTIMONY_APP}
+ 
+ ################################################################################
+ 
+-execute_process(COMMAND git log --pretty=format:'%h' -n 1
+-                OUTPUT_VARIABLE GITREV)
+-execute_process(COMMAND bash -c "git diff --quiet --exit-code || echo +"
+-                OUTPUT_VARIABLE GITDIFF)
+-execute_process(COMMAND git describe --exact-match --tags
+-                OUTPUT_VARIABLE GITTAG
+-                ERROR_QUIET)
+-execute_process(COMMAND git rev-parse --abbrev-ref HEAD
+-                OUTPUT_VARIABLE GITBRANCH)
 -
--    # If we couldn't find boost::python, exit with an error.
--    isEmpty(GOT_BOOST_PYTHON) {
--        error("Could not find boost::python3")
--    }
-+    LIBS += -lboost_python3
- }
+ add_definitions(-D'GITREV="${GITREV}${GITDIFF}"'
+                 -D'GITTAG="${GITTAG}"'
+                 -D'GITBRANCH="${GITBRANCH}"')
diff --git a/pkgs/applications/graphics/feh/default.nix b/pkgs/applications/graphics/feh/default.nix
index 2d7b88742466..a20a1be77f88 100644
--- a/pkgs/applications/graphics/feh/default.nix
+++ b/pkgs/applications/graphics/feh/default.nix
@@ -2,11 +2,11 @@
 , libXinerama, curl, libexif, perlPackages }:
 
 stdenv.mkDerivation rec {
-  name = "feh-2.15.4";
+  name = "feh-2.16.1";
 
   src = fetchurl {
     url = "http://feh.finalrewind.org/${name}.tar.bz2";
-    sha256 = "b8a9c29f37b1349228b19866f712b677e2a150837bc46be8c5d6348dd4850758";
+    sha256 = "1cxnc8dxyl7s4qnkvdjaqx7gdvc6brxpq0qbg91mljg47fd2hmbf";
   };
 
   outputs = [ "out" "doc" ];
diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix
index 63b88ee4fb94..b780067823a9 100644
--- a/pkgs/applications/graphics/graphicsmagick/default.nix
+++ b/pkgs/applications/graphics/graphicsmagick/default.nix
@@ -2,14 +2,14 @@
 , libjpeg, libpng, libtiff, libxml2, zlib, libtool, xz
 , libX11, libwebp, quantumdepth ? 8}:
 
-let version = "1.3.23"; in
+let version = "1.3.24"; in
 
 stdenv.mkDerivation {
   name = "graphicsmagick-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${version}.tar.xz";
-    sha256 = "03g6l2h8cmf231y1vma0z7x85070jm1ysgs9ppqcd3jj56jka9gx";
+    sha256 = "1q40w5hcl8rcpszm0r7rpr3a9lj390p39zfvavkvlgxyyk7bmgsj";
   };
 
   patches = [ ./disable-popen.patch ];
diff --git a/pkgs/applications/misc/iterm2/default.nix b/pkgs/applications/misc/iterm2/default.nix
index add16365324e..028e5d6b725a 100644
--- a/pkgs/applications/misc/iterm2/default.nix
+++ b/pkgs/applications/misc/iterm2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "iterm2-${version}";
-  version = "3.0.2";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "gnachman";
     repo = "iTerm2";
     rev = "v${version}";
-    sha256 = "121g759i814y1g1g1jwhsmxgg4wrzv08vq7a7qwc7b85a17zbd3h";
+    sha256 = "0ffg9l2jvv503h13nd5rjkn5xrahswcqqwmm052qzd6d0lmqjm93";
   };
 
   patches = [ ./disable_updates.patch ];
diff --git a/pkgs/applications/misc/lighthouse/Makefile.patch b/pkgs/applications/misc/lighthouse/Makefile.patch
new file mode 100644
index 000000000000..0207299cc2c5
--- /dev/null
+++ b/pkgs/applications/misc/lighthouse/Makefile.patch
@@ -0,0 +1,31 @@
+# Description: Fix lighthouse Makefile
+Index: Makefile
+===================================================================
+--- ./Makefile	1970-01-01 02:00:01.000000000 +0200
++++ ./Makefile	1970-01-01 02:00:01.000000000 +0200
+@@ -19,21 +19,10 @@
+ endif
+ 
+ # Library specific
+-HAS_GDK := $(shell pkg-config --exists gdk-2.0 echo $?)
+-ifdef $(HAS_GDK)
+-	CFLAGS+=`pkg-config --cflags gdk-2.0`
+-	LDFLAGS+=`pkg-config --libs gdk-2.0`
+-else
+-	CFLAGS+=-DNO_GDK
+-endif
+-HAS_PANGO := $(shell pkg-config --exists pango echo $?)
+-ifdef $(HAS_PANGO)
+-	CFLAGS+=`pkg-config --cflags pango`
+-	LDFLAGS+=`pkg-config --libs pango`
+-else
+-	CFLAGS+=-DNO_PANGO
+-endif
+-
++CFLAGS+=$(shell pkg-config --cflags gdk-2.0)
++LDFLAGS+=$(shell pkg-config --libs gdk-2.0)
++CFLAGS+=$(shell pkg-config --cflags pango)
++LDFLAGS+=$(shell pkg-config --libs pango)
+ 
+ all: lighthouse
+ 
diff --git a/pkgs/applications/misc/lighthouse/default.nix b/pkgs/applications/misc/lighthouse/default.nix
new file mode 100644
index 000000000000..8400c01665ec
--- /dev/null
+++ b/pkgs/applications/misc/lighthouse/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, libX11, libxcb, cairo, gtk, pango, python27, python3
+}:
+
+stdenv.mkDerivation rec {
+  name = "lighthouse-${date}";
+  date = "2016-01-26";
+
+  src = fetchFromGitHub {
+    owner = "emgram769";
+    repo = "lighthouse";
+    rev = "bf11f111572475e855b0329202a14c9e128c7e57";
+    sha256 = "1ppika61vg4sc9mczbkjqy2mhgxqg57xrnsmmq0h2lyvj0yhg3qn";
+   };
+
+  buildInputs = [
+    pkgconfig libX11 libxcb cairo gtk pango python27 python3
+  ];
+
+  patches = [ ./Makefile.patch ];
+
+  lighthouseInstaller = ''
+    #!${stdenv.shell}
+    cp -r $out/share/lighthouse/.config/lighthouse \$HOME/.config
+    chmod -R +w \$HOME/.config/lighthouse
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp lighthouse $out/bin
+    chmod +x config/lighthouse/cmd*
+    chmod +x config/lighthouse/google.py
+    patchShebangs config/lighthouse/
+    patchShebangs config/lighthouse/scripts/
+    mkdir -p $out/share/lighthouse/.config
+    cp -r config/lighthouse $out/share/lighthouse/.config
+    echo "${lighthouseInstaller}" > $out/bin/lighthouse-install
+    chmod +x $out/bin/lighthouse-install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple flexible popup dialog to run on X";
+    homepage = https://github.com/emgram769/lighthouse;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ramkromberg ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/misc/pdfmod/default.nix b/pkgs/applications/misc/pdfmod/default.nix
index 24a0a8c69675..0978da3512b8 100644
--- a/pkgs/applications/misc/pdfmod/default.nix
+++ b/pkgs/applications/misc/pdfmod/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, gnome_doc_utils, intltool
+{ stdenv, fetchurl, fetchpatch, pkgconfig, gnome_doc_utils, intltool, lib
 , mono, gtk-sharp, gnome-sharp, hyena
 , which, makeWrapper, glib, gnome3, poppler, wrapGAppsHook
 }:
@@ -33,12 +33,7 @@ stdenv.mkDerivation rec {
       --add-flags "$out/lib/pdfmod/PdfMod.exe" \
       --prefix MONO_GAC_PREFIX : ${gtk-sharp} \
       --prefix MONO_GAC_PREFIX : ${gnome-sharp} \
-      --prefix LD_LIBRARY_PATH : ${glib}/lib \
-      --prefix LD_LIBRARY_PATH : ${gtk-sharp}/lib \
-      --prefix LD_LIBRARY_PATH : ${gnome-sharp}/lib \
-      --prefix LD_LIBRARY_PATH : ${gtk-sharp.gtk}/lib \
-      --prefix LD_LIBRARY_PATH : ${gnome3.gconf}/lib \
-      --prefix LD_LIBRARY_PATH : ${poppler.out}/lib
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gnome-sharp gnome3.gconf gtk-sharp gtk-sharp.gtk poppler ]}
   '';
 
   dontStrip = true;
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 26030e33e488..e9f6f816be51 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -42,12 +42,9 @@ assert stdenv.isLinux;
 
 let
 
-  generated = if channel == "stable" then (import ./sources.nix)
-         else if channel == "beta"   then (import ./beta_sources.nix)
-         else if channel == "developer"   then { version = "49.0a2"; sources = [
-            { locale = "en-US"; arch = "linux-i686"; sha512 = "45dad182bf7a4e753c1be6b8f966393a06531e7b5530238d20cb67b26324e8f5d0eeec983a0855418f31187d3ae508c28810ab86269848b4e48ab2ca3b5d21e7"; }
-            { locale = "en-US"; arch = "linux-x86_64"; sha512 = "cfcbfc633b51612a62267c8a1afc25af212eb832d1fa876a1ffd82421e9378f96b3ac1488446f804518290abd99c21c9f10e4d0e0f699432aeb74b63305d7edc"; }
-          ]; }
+  generated = if channel == "stable"    then (import ./sources.nix)
+         else if channel == "beta"      then (import ./beta_sources.nix)
+         else if channel == "developer" then (import ./dev_sources.nix)
          else builtins.abort "Wrong channel! Channel must be one of `stable`, `beta` or `developer`";
 
   inherit (generated) version sources;
diff --git a/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix
new file mode 100644
index 000000000000..f43810d53f0d
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/dev_sources.nix
@@ -0,0 +1,12 @@
+# This file is generated from generate_sources_dev.rb. DO NOT EDIT.
+# Execute the following command to update the file.
+#
+# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix
+
+{
+  version = "49.0a2";
+  sources = [
+    { locale = "en-US"; arch = "linux-i686"; sha512 = "85c4289e561d2246f96a05e3b8df011337984b9f176670826a705c2cd68a1284056ba507e4b6e4887595bf37f25386d9f7b28a20bc1f125865b9fd7b8be17eaa"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha512 = "2bf9518dbfbb48348f74929c19d03e8daf51020bf9ba6db577a202b6e98ad7ffb9e9a0b4ca92af010cd3f864ae84940b65438f4230e6de3165f72e4e7280086d"; }
+  ];
+}
diff --git a/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb b/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb
new file mode 100644
index 000000000000..37d5569efb01
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox-bin/generate_sources_dev.rb
@@ -0,0 +1,53 @@
+#!/usr/bin/env ruby
+require "open-uri"
+
+version =
+  if ARGV.empty?
+    $stderr.puts("Usage: ruby generate_sources_dev.rb <version> > dev_sources.nix")
+    exit(-1)
+  else
+    ARGV[0]
+  end
+
+base_url = "http://download-installer.cdn.mozilla.net/pub/firefox/nightly/latest-mozilla-aurora"
+
+arches = ["linux-i686", "linux-x86_64"]
+locales = ["en-US"]
+sources = []
+
+Source = Struct.new(:hash, :arch, :locale, :filename)
+
+locales.each do |locale|
+  arches.each do |arch|
+    basename = "firefox-#{version}.#{locale}.#{arch}"
+    filename = basename + ".tar.bz2"
+    sha512 = open("#{base_url}/#{basename}.checksums").each_line
+      .find(filename).first
+      .split(" ").first
+    sources << Source.new(sha512, arch, locale, filename)
+  end
+end
+
+sources = sources.sort_by do |source|
+  [source.locale, source.arch]
+end
+
+puts(<<"EOH")
+# This file is generated from generate_sources_dev.rb. DO NOT EDIT.
+# Execute the following command to update the file.
+#
+# ruby generate_sources_dev.rb 49.0a2 > dev_sources.nix
+
+{
+  version = "#{version}";
+  sources = [
+EOH
+
+sources.each do |source|
+  puts(%Q|    { locale = "#{source.locale}"; arch = "#{source.arch}"; sha512 = "#{source.hash}"; }|)
+end
+
+puts(<<'EOF')
+  ];
+}
+EOF
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
index 147540ed158d..574fd9efdd42 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/bluejeans/default.nix
@@ -17,11 +17,11 @@ in
 stdenv.mkDerivation rec {
   name = "bluejeans-${version}";
 
-  version = "2.160.49.8";
+  version = "2.160.63.8";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/skinny/bjnplugin_${version}-1_amd64.deb";
-    sha256 = "1hf4jx0d1wiv622rwck0mm8cckm121yszviw47jsw0mjnp91hqch";
+    sha256 = "1sfz9xvvrbw7gg7fxxwg9wmgbxgv3fa14p7i4m85mg10l3qxaqfc";
   };
 
   phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
index 4b7b56c69eaf..5d92f7455d62 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
 , pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }:
 
-let version = "3.18.0"; in
+let version = "3.19.0"; in
 stdenv.mkDerivation {
   name = "filezilla-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
-    sha256 = "1qnpbx2684r529ldih6fi5anjlcgqn2xfcls0q38iadrk1qnqr1p";
+    sha256 = "0827z1jmn8pkzrcpjgh5yh2r23vgv73yb4rikraxa9i7l118g9l2";
   };
 
   configureFlags = [
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
new file mode 100644
index 000000000000..7f4a27cf9a23
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -0,0 +1,105 @@
+{ alsaLib
+, fetchurl
+, gcc
+, glib
+, gst_plugins_base
+, gstreamer
+, icu_54_1
+, libpulseaudio
+, libuuid
+, libxml2
+, libxslt
+, makeQtWrapper
+, qt55
+, sqlite
+, stdenv
+, xlibs
+, xorg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+    name = "zoom-us";
+    meta = {
+      homepage = http://zoom.us;
+      description = "zoom.us instant messenger";
+      license = stdenv.lib.licenses.unfree;
+      platforms = stdenv.lib.platforms.linux;
+    };
+
+    version = "2.0.52458.0531";
+    src = fetchurl {
+      url = "https://zoom.us/client/latest/zoom_${version}_x86_64.tar.xz";
+      sha256 = "16d64pn9j27v3fnh4c9i32vpkr10q1yr26w14964n0af1mv5jf7a";
+    };
+
+    phases = [ "unpackPhase" "installPhase" ];
+    nativeBuildInputs = [ makeQtWrapper ];
+    libPath = stdenv.lib.makeLibraryPath [
+      alsaLib
+      gcc.cc
+      glib
+      gst_plugins_base
+      gstreamer
+      icu_54_1
+      libpulseaudio
+      libuuid
+      libxml2
+      libxslt
+      qt55.qtbase
+      qt55.qtdeclarative
+      qt55.qtscript
+      qt55.qtwebkit
+      sqlite
+      xlibs.xcbutilkeysyms
+      xorg.libX11
+      xorg.libxcb
+      xorg.libXcomposite
+      xorg.libXext
+      xorg.libXfixes
+      xorg.libXrender
+      xorg.xcbutilimage
+      zlib
+    ];
+    installPhase = ''
+      mkdir -p $out/share
+      cp -r \
+         application-x-zoom.png \
+         audio \
+         imageformats \
+         chrome.bmp \
+         config-dump.sh \
+         dingdong1.pcm \
+         dingdong.pcm \
+         doc \
+         Droplet.pcm \
+         Droplet.wav \
+         platforminputcontexts \
+         platforms \
+         platformthemes \
+         Qt \
+         QtMultimedia \
+         QtQml \
+         QtQuick \
+         QtQuick.2 \
+         QtWebKit \
+         QtWebProcess \
+         ring.pcm \
+         ring.wav \
+         version.txt \
+         xcbglintegrations \
+         zcacert.pem \
+         zoom \
+         Zoom.png \
+         ZXMPPROOT.cer \
+         $out/share
+
+      patchelf \
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        --set-rpath ${libPath} \
+        $out/share/zoom
+      wrapQtProgram "$out/share/zoom"
+      mkdir -p $out/bin
+      ln -s $out/share/zoom $out/bin/zoom-us
+    '';
+ }
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 0febee720967..bf7c8f752450 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -11,7 +11,7 @@ assert withQt -> !withGtk && qt4 != null;
 with stdenv.lib;
 
 let
-  version = "2.0.3";
+  version = "2.0.4";
   variant = if withGtk then "gtk" else if withQt then "qt" else "cli";
 in
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.bz2";
-    sha256 = "1z358k65frp9m0l07cppwxhvbcp1w9ya5sml87pzs8gyfmp3g5p1";
+    sha256 = "19g11m8m8qd7dkcvcb27lyppklg608d9ap7wr3mr88clm4nwiacy";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 4eeb733d9786..69e52065419a 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, autoconf, automake
+{ stdenv, fetchFromGitHub, pkgconfig, autoconf, automake
 , ruby, file, xdg_utils, gettext, expat, qt5, boost
 , libebml, zlib, libmatroska, libogg, libvorbis, flac
 , withGUI ? true
@@ -10,18 +10,19 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "mkvtoolnix-${version}";
-  version = "8.9.0";
+  version = "9.2.0";
 
-  src = fetchgit {
-    url = "https://github.com/mbunkus/mkvtoolnix.git";
-    rev = "54e6b52b3dde07f89da4542997ef059e18802128";
-    sha256 = "1gipydk1xisqy110rr38dgjzpxl8zxbm12kf7b2f4xh4iw17j0k2";
+  src = fetchFromGitHub {
+    owner = "mbunkus";
+    repo = "mkvtoolnix";
+    rev = "release-${version}";
+    sha256 = "02w3161iqaijs3bz5w2wily9nz55xnhq1bdm2s5qi8v3sbcqd6df";
   };
 
-  nativeBuildInputs = [ gettext ruby ];
+  nativeBuildInputs = [ pkgconfig autoconf automake gettext ruby ];
 
   buildInputs = [
-    pkgconfig autoconf automake expat
+    expat
     file xdg_utils boost libebml zlib
     libmatroska libogg libvorbis flac
     (optional withGUI qt5.qtbase)
diff --git a/pkgs/applications/video/recordmydesktop/default.nix b/pkgs/applications/video/recordmydesktop/default.nix
index 95c06d54d6e6..54dc88b452e6 100644
--- a/pkgs/applications/video/recordmydesktop/default.nix
+++ b/pkgs/applications/video/recordmydesktop/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchsvn, automake, autoconf, zlib, popt, xorg, libvorbis, libtheora }:
+{ stdenv, fetchsvn, autoreconfHook, zlib, popt, alsaLib, libvorbis, libtheora
+, libICE, libSM, libX11, libXext, libXfixes, libXdamage }:
 
 stdenv.mkDerivation rec {
   name = "recordmydesktop-${version}";
-  version = "0.3.8.1-svn602";
+  version = "0.3.8.1-svn${rev}";
+  rev = "602";
 
   src = fetchsvn {
     url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/recordmydesktop;
-    rev = 602;
+    inherit rev;
     sha256 = "1avirkc4ymrd575m616pi6wpgq1i0r5sb3qahps1g18sjpxks0lf";
   };
 
-  buildInputs = [ automake autoconf zlib popt xorg.libICE xorg.libSM xorg.libX11 xorg.libXext xorg.libXfixes xorg.libXdamage libvorbis libtheora ];
+  nativeBuildInputs = [ autoreconfHook ];
 
-  preConfigure = ''./autogen.sh'';
+  buildInputs = [
+    zlib popt alsaLib libICE libSM libX11 libXext
+    libXfixes libXdamage libvorbis libtheora
+  ];
 
   meta = with stdenv.lib; {
     description = "Desktop session recorder";
diff --git a/pkgs/applications/video/recordmydesktop/gtk.nix b/pkgs/applications/video/recordmydesktop/gtk.nix
new file mode 100644
index 000000000000..f3bf714b9417
--- /dev/null
+++ b/pkgs/applications/video/recordmydesktop/gtk.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig, glib
+, pythonPackages, jack2, xwininfo }:
+
+let
+  binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ];
+
+in stdenv.mkDerivation rec {
+  name = "gtk-recordmydesktop-${version}";
+  version = "0.3.8-svn${recordmydesktop.rev}";
+
+  src = fetchsvn {
+    url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/gtk-recordmydesktop;
+    inherit (recordmydesktop) rev;
+    sha256 = "010aykgjfxhyiixq9a9fg3p1a1ixz59m1vkn16hpy0lybgf4dsby";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = with pythonPackages; [
+    python pygtk wrapPython
+  ];
+
+  pythonPath = with pythonPackages; [ pygtk ];
+
+  postInstall = ''
+    makeWrapperArgs="--prefix PATH : ${binPath}"
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK frontend for recordmydesktop";
+    homepage = http://recordmydesktop.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.DamienCassou ];
+  };
+}
diff --git a/pkgs/applications/video/recordmydesktop/qt.nix b/pkgs/applications/video/recordmydesktop/qt.nix
new file mode 100644
index 000000000000..de372c905bdb
--- /dev/null
+++ b/pkgs/applications/video/recordmydesktop/qt.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchsvn, recordmydesktop, autoreconfHook, pkgconfig
+, glib, pythonPackages, qt4, jack2, xwininfo }:
+
+let
+  binPath = lib.makeBinPath [ recordmydesktop jack2 xwininfo ];
+
+in stdenv.mkDerivation rec {
+  name = "qt-recordmydesktop-${version}";
+  version = "0.3.8-svn${recordmydesktop.rev}";
+
+  src = fetchsvn {
+    url = https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk/qt-recordmydesktop;
+    inherit (recordmydesktop) rev;
+    sha256 = "0vz7amrmz317sbx2cv2186d0r57as4l26xa9rpim5gbvzk20caqc";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+  buildInputs = [ glib qt4 ] ++ (with pythonPackages; [
+    python wrapPython pyqt4
+  ]);
+
+  pythonPath = with pythonPackages; [ pyqt4 ];
+
+  postInstall = ''
+    makeWrapperArgs="--prefix PATH : ${binPath}"
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK frontend for recordmydesktop";
+    homepage = http://recordmydesktop.sourceforge.net/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.DamienCassou ];
+  };
+}
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index 3ea04a39393b..f50a41129adb 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -11,7 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "1d89ncspjd8c4mckf0nb6y3hrxpv4rjpbj868pznhvfmdgr5nvql";
   };
 
-  postPatch = "sed '1i#include <random>' -i src/Benchmark.cpp";
+  patches = [ ./fix-paths.patch ];
+
+  postPatch = ''
+    # #455
+    sed '1i#include <random>' -i src/Benchmark.cpp
+
+    for i in scripts/ssr-glinject src/AV/Input/GLInjectInput.cpp; do
+      substituteInPlace $i \
+        --subst-var out \
+        --subst-var-by sh ${stdenv.shell}
+    done
+  '';
 
   buildInputs = [
     alsaLib ffmpeg libjack2 libX11 libXext libXfixes mesa pkgconfig
diff --git a/pkgs/applications/video/simplescreenrecorder/fix-paths.patch b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
new file mode 100644
index 000000000000..ba02240ce1f2
--- /dev/null
+++ b/pkgs/applications/video/simplescreenrecorder/fix-paths.patch
@@ -0,0 +1,35 @@
+diff --git a/scripts/ssr-glinject b/scripts/ssr-glinject
+index 48be48d..5038d4c 100755
+--- a/scripts/ssr-glinject
++++ b/scripts/ssr-glinject
+@@ -59,6 +59,6 @@ do
+ 	fi
+ done
+ 
+-echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:libssr-glinject.so"
++echo "ssr-glinject: LD_PRELOAD = $LD_PRELOAD:@out@/lib/libssr-glinject.so"
+ echo "ssr-glinject: command = $@"
+-LD_PRELOAD="$LD_PRELOAD:libssr-glinject.so" "$@"
++LD_PRELOAD="$LD_PRELOAD:@out@/lib/libssr-glinject.so" "$@"
+diff --git a/src/AV/Input/GLInjectInput.cpp b/src/AV/Input/GLInjectInput.cpp
+index 6b378f8..cbcf82b 100644
+--- a/src/AV/Input/GLInjectInput.cpp
++++ b/src/AV/Input/GLInjectInput.cpp
+@@ -96,7 +96,7 @@ void GLInjectInput::SetCapturing(bool capturing) {
+ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permissions, const QString& command, const QString& working_directory) {
+ 
+ 	// prepare command
+-	QString full_command = "LD_PRELOAD=\"libssr-glinject.so\" ";
++	QString full_command = "LD_PRELOAD=\"@out@/lib/libssr-glinject.so\" ";
+ 	full_command += "SSR_CHANNEL=\"" + ShellEscape(channel) + "\" ";
+ 	if(relax_permissions)
+ 		full_command += "SSR_STREAM_RELAX_PERMISSIONS=1 ";
+@@ -106,7 +106,7 @@ bool GLInjectInput::LaunchApplication(const QString& channel, bool relax_permiss
+ 	QStringList args;
+ 	args.push_back("-c");
+ 	args.push_back(full_command);
+-	return QProcess::startDetached("/bin/sh", args, working_directory);
++	return QProcess::startDetached("@sh@", args, working_directory);
+ 
+ }
+ 
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 3f883694e088..3cc4c310ed52 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -20,11 +20,11 @@ assert (!withQt5 -> qt4 != null);
 
 stdenv.mkDerivation rec {
   name = "vlc-${version}";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchurl {
     url = "http://get.videolan.org/vlc/${version}/${name}.tar.xz";
-    sha256 = "0nxzspnyzlm17imlggi8ypnwiizi0f5wrj3436c3qg7i6mymimxr";
+    sha256 = "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn";
   };
 
   # Comment-out the Qt 5.5 version check, as we do apply the relevant patch.
diff --git a/pkgs/applications/window-managers/i3/lock.nix b/pkgs/applications/window-managers/i3/lock.nix
index 56e0643811fa..d9ea14828ddd 100644
--- a/pkgs/applications/window-managers/i3/lock.nix
+++ b/pkgs/applications/window-managers/i3/lock.nix
@@ -2,11 +2,11 @@
   pam, libX11, libev, cairo, libxkbcommon, libxkbfile }:
 
 stdenv.mkDerivation rec {
-  name = "i3lock-2.7";
+  name = "i3lock-2.8";
 
   src = fetchurl {
     url = "http://i3wm.org/i3lock/${name}.tar.bz2";
-    sha256 = "1qlgafbyqjpqdfs50f2y0xphn2jdigafkqqsmpikk97cs0z1i0k8";
+    sha256 = "028fc0f74df10826514d5a4ed38f6895935d1f5d47ca9fcffc64b076aaf6e2f4";
   };
 
   buildInputs = [ which pkgconfig libxcb xcbutilkeysyms xcbutilimage pam libX11
diff --git a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
index ea441f0cc092..e0f370fed761 100644
--- a/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
+++ b/pkgs/desktops/mate/mate-icon-theme-faenza/default.nix
@@ -4,11 +4,11 @@ stdenv.mkDerivation rec {
   name = "mate-icon-theme-faenza-${version}";
   version = "${major-ver}.${minor-ver}";
   major-ver = "1.15";
-  minor-ver = "0";
+  minor-ver = "1";
 
   src = fetchurl {
     url = "http://pub.mate-desktop.org/releases/${major-ver}/${name}.tar.xz";
-    sha256 = "0ypk61sjgqj0b1sina9947x1dg456baxhsyybmxrwpgy3pr06qlz";
+    sha256 = "1x2jn86gcv6spnkvhjg0mzp5qhlb5dw4h8m8qp1hdgzzrzinfr3p";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 871d4d568cd7..ba546f6f51fc 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.2";
+  version = "1.0.3";
   name = "kotlin-${version}";
 
   src = fetchurl {
-    url = "https://github.com/JetBrains/kotlin/releases/download/${version}/kotlin-compiler-${version}.zip";
-    sha256 = "1m3j1ca0kvryqarvpscrb9mvmsscd1sc8vfjsz03br6h2hwmnr3z";
+    url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
+    sha256 = "15ywjv46i2d7zgg2b3vdklc6agr62nvn0gkz7k9hql78ccfmyq9p";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/go-modules/libs.json b/pkgs/development/go-modules/libs.json
index 3dcd53a124be..98a9374c4e47 100644
--- a/pkgs/development/go-modules/libs.json
+++ b/pkgs/development/go-modules/libs.json
@@ -1564,5 +1564,59 @@
       "rev": "7cef48da76dca6a496faa7fe63e39ed665cbd219",
       "sha256": "0hw11jj5r3f6qwydg41nc3c6aadlbkhc1qpxra2609lis0qa9h4r"
     }
+  },
+  {
+    "goPackagePath": "github.com/tdewolff/buffer",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/tdewolff/buffer",
+      "rev": "0edfcb7b750146ff879e95831de2ef53605a5cb5",
+      "sha256": "1mdd4k9byp22mw0a399j3w73zjb5g0vn58g76rjy7ajb0dzm80vl"
+    }
+  },
+  {
+    "goPackagePath": "github.com/tdewolff/parse",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/tdewolff/parse",
+      "rev": "34d5c1160d4503da4b456e5094609f2331d6dde3",
+      "sha256": "0hxf65fgkrc1q4p99p33xxxy1s6wxpn1vfsnqf9p846awwbqsy0v"
+    }
+  },
+  {
+    "goPackagePath": "github.com/tdewolff/strconv",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/tdewolff/strconv",
+      "rev": "3e8091f4417ebaaa3910da63a45ea394ebbfb0e3",
+      "sha256": "00w2mryfjhz3vaqzxvbwvyhi1vgpc1s4xfv1r9hxn8hwa078q5gp"
+    }
+  },
+  {
+    "goPackagePath": "github.com/matryer/try",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/matryer/try",
+      "rev": "93d30e50512f879b73829eb79867df38084bcd31",
+      "sha256": "0dmc8iar9685ks1ba3vnycjsx8qxwyqv51jb7677dvwnzbqhgw6f"
+    }
+  },
+  {
+    "goPackagePath": "github.com/fsnotify/fsnotify",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/fsnotify/fsnotify",
+      "rev": "30411dbcefb7a1da7e84f75530ad3abe4011b4f8",
+      "sha256": "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm"
+    }
+  },
+  {
+    "goPackagePath": "github.com/ogier/pflag",
+    "fetch": {
+      "type": "git",
+      "url": "https://github.com/ogier/pflag",
+      "rev": "45c278ab3607870051a2ea9040bb85fcb8557481",
+      "sha256": "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l"
+    }
   }
 ]
diff --git a/pkgs/development/interpreters/elixir/default.nix b/pkgs/development/interpreters/elixir/default.nix
index fe78b9660807..fc3070e55f11 100644
--- a/pkgs/development/interpreters/elixir/default.nix
+++ b/pkgs/development/interpreters/elixir/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "elixir-${version}";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "elixir-lang";
     repo = "elixir";
     rev = "v${version}";
-    sha256 = "06y8v239d5r3zr9s9mw19ws99qm7niicz69pqhawvg5qm4qxhvkr";
+    sha256 = "0pihqgsnddrhhcpiphz170wgwlc59pd492iy4f66dajapm5k329d";
   };
 
   buildInputs = [ erlang rebar makeWrapper ];
diff --git a/pkgs/development/interpreters/lfe/default.nix b/pkgs/development/interpreters/lfe/default.nix
new file mode 100644
index 000000000000..f3a54aef8ab1
--- /dev/null
+++ b/pkgs/development/interpreters/lfe/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchFromGitHub, erlang, makeWrapper, coreutils, bash }:
+
+stdenv.mkDerivation rec {
+  name    = "lfe-${version}";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner  = "rvirding";
+    repo   = "lfe";
+    rev    = version;
+    sha256 = "0w1vpjqj8ni43gi84i0mcml4gfaqhmmd9s46di37cngpdw86i3bz";
+  };
+
+  buildInputs = [ erlang makeWrapper ];
+
+  setupHook   = ./setup-hook.sh;
+
+  # These installPhase tricks are based on Elixir's Makefile.
+  # TODO: Make, upload, and apply a patch.
+  installPhase = ''
+    local libdir=$out/lib/lfe
+    local ebindir=$libdir/ebin
+    local bindir=$libdir/bin
+
+    rm -Rf $ebindir
+    install -m755 -d $ebindir
+    install -m644 ebin/* $ebindir
+
+    install -m755 -d $bindir
+    for bin in bin/lfe{,c,doc,script}; do install -m755 $bin $bindir; done
+
+    install -m755 -d $out/bin
+    for file in $bindir/*; do ln -sf $file $out/bin/; done
+  '';
+
+  # Thanks again, Elixir.
+  postFixup = ''
+    # LFE binaries are shell scripts which run erl and lfe.
+    # Add some stuff to PATH so the scripts can run without problems.
+    for f in $out/bin/*; do
+      wrapProgram $f \
+        --prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${bash}/bin:$out/bin"
+      substituteInPlace $f --replace "/usr/bin/env" "${coreutils}/bin/env"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description     = "The best of Erlang and of Lisp; at the same time!";
+    longDescription = ''
+      LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang
+      compiler. Code produced with it is compatible with "normal" Erlang
+      code. An LFE evaluator and shell is also included.
+    '';
+
+    homepage     = "http://lfe.io";
+    downloadPage = "https://github.com/rvirding/lfe/releases";
+
+    license      = licenses.asl20;
+    maintainers  = with maintainers; [ yurrriq ];
+    platforms    = platforms.unix;
+  };
+}
diff --git a/pkgs/development/interpreters/lfe/setup-hook.sh b/pkgs/development/interpreters/lfe/setup-hook.sh
new file mode 100644
index 000000000000..2405dcea15f3
--- /dev/null
+++ b/pkgs/development/interpreters/lfe/setup-hook.sh
@@ -0,0 +1,5 @@
+addLfeLibPath() {
+    addToSearchPath ERL_LIBS $1/lib/lfe/lib
+}
+
+envHooks+=(addLfeLibPath)
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix
index 197ad6fc95bc..1cd7f58e95ef 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/3.4/default.nix
@@ -24,7 +24,7 @@ with stdenv.lib;
 let
   majorVersion = "3.4";
   pythonVersion = majorVersion;
-  version = "${majorVersion}.4";
+  version = "${majorVersion}.5";
   fullVersion = "${version}";
 
   buildInputs = filter (p: p != null) [
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
-    sha256 = "18kb5c29w04rj4gyz3jngm72sy8izfnbjlm6ajv6rv2m061d75x7";
+    sha256 = "12l9klp778wklxmckhghniy5hklss8r26995pyd00qbllk4b2r7f";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/interpreters/python/3.5/default.nix b/pkgs/development/interpreters/python/3.5/default.nix
index 762ef1ab8be6..e0adad2bae21 100644
--- a/pkgs/development/interpreters/python/3.5/default.nix
+++ b/pkgs/development/interpreters/python/3.5/default.nix
@@ -24,7 +24,7 @@ with stdenv.lib;
 let
   majorVersion = "3.5";
   pythonVersion = majorVersion;
-  version = "${majorVersion}.1";
+  version = "${majorVersion}.2";
   fullVersion = "${version}";
 
   buildInputs = filter (p: p != null) [
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
-    sha256 = "1j95yx32ggqx8jf13h3c8qfp34ixpyg8ipqcdjmn143d6q67rmf6";
+    sha256 = "0h6a5fr7ram2s483lh0pnmc4ncijb8llnpfdxdcl5dxr01hza400";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/interpreters/spidermonkey/17.0.nix b/pkgs/development/interpreters/spidermonkey/17.0.nix
index cbe2c47594d4..5cd3ff0cca6b 100644
--- a/pkgs/development/interpreters/spidermonkey/17.0.nix
+++ b/pkgs/development/interpreters/spidermonkey/17.0.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  doCheck = true;
+  doCheck = !stdenv.isArm; # fails on v7 with "Alignment trap: not handling instruction" in kernel log
   preCheck = ''
     rm jit-test/tests/sunspider/check-date-format-tofte.js    # https://bugzil.la/600522
 
diff --git a/pkgs/development/libraries/icu/54.1.nix b/pkgs/development/libraries/icu/54.1.nix
new file mode 100644
index 000000000000..4d780341b3aa
--- /dev/null
+++ b/pkgs/development/libraries/icu/54.1.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, fixDarwinDylibNames }:
+
+let
+  icu = import ./default.nix { inherit stdenv fetchurl fixDarwinDylibNames; };
+in
+  stdenv.lib.overrideDerivation icu (attrs: {
+    src = fetchurl {
+      url = "http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz";
+      md5 = "e844caed8f2ca24c088505b0d6271bc0";
+    };
+  })
+
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index bfb091f424a2..3dfc9e2990ec 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "leatherman-${version}";
-  version = "0.7.0";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
-    sha256 = "1m37zcr11a2g08wbkpxgav97m2fr14in2zhdhhv5krci5i2grzd7";
+    sha256 = "103qzhjhgw7jh0xcaxag735wfm6q35xprq5wmdimfhhmmrmjr51g";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index 40bb9a5a140d..cfc31c120b45 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python, pkgconfig, usbmuxd, glib, libgcrypt,
+{ stdenv, fetchurl, fetchpatch, python, pkgconfig, usbmuxd, glib, libgcrypt,
   libtasn1, libplist, readline, libusbmuxd, openssl }:
 
 stdenv.mkDerivation rec {
@@ -8,7 +8,13 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline ];
   propagatedBuildInputs = [ libusbmuxd glib libgcrypt libtasn1 libplist openssl ];
 
-  patches = [ ./disable_sslv3.patch ];
+  patches = [
+    ./disable_sslv3.patch
+    (fetchpatch { # CVE-2016-5104
+      url = "https://github.com/libimobiledevice/libimobiledevice/commit/df1f5c4d70d0c19ad40072f5246ca457e7f9849e.patch";
+      sha256 = "06ygb9aqcvm4v08wrldsddjgyqv5bkpq6lxzq2a1nwqp9mq4a4k1";
+    })
+  ];
 
   postPatch = ''sed -e 's@1\.3\.21@@' -i configure'';
   passthru.swig = libplist.swig;
diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix
index f62fb400199f..855d921206e9 100644
--- a/pkgs/development/libraries/liboauth/default.nix
+++ b/pkgs/development/libraries/liboauth/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd";
   };
 
-  buildInputs = [ pkgconfig nss nspr ];
+  nativeBuildInputs = [ pkgconfig ];
+
+  propagatedBuildInputs = [ nss nspr ];
 
   configureFlags = [ "--enable-nss" ];
 
diff --git a/pkgs/development/libraries/libqrencode/default.nix b/pkgs/development/libraries/libqrencode/default.nix
new file mode 100644
index 000000000000..1d0463c090a6
--- /dev/null
+++ b/pkgs/development/libraries/libqrencode/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, autoconf, automake, pkgconfig,
+  libtool, SDL2, libpng }:
+
+stdenv.mkDerivation rec {
+  name = "libqrencode-${version}";
+  version = "3.4.4";
+
+  src = fetchurl {
+    url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz";
+    sha1 = "644054a76c8b593acb66a8c8b7dcf1b987c3d0b2";
+    sha256 = "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577";
+  };
+
+  buildInputs = [ autoconf automake pkgconfig libtool SDL2 libpng ];
+
+  propagatedBuildInputs = [ SDL2 libpng ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = "http://fukuchi.org/works/qrencode/";
+    description = "A C library for encoding data in a QR Code symbol";
+
+    longDescription = ''
+      Libqrencode is a C library for encoding data in a QR Code symbol,
+      a kind of 2D symbology that can be scanned by handy terminals
+      such as a mobile phone with CCD.
+    '';
+
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.adolfogc ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libusbmuxd/default.nix b/pkgs/development/libraries/libusbmuxd/default.nix
index edc3d3df9cb4..458798f9382a 100644
--- a/pkgs/development/libraries/libusbmuxd/default.nix
+++ b/pkgs/development/libraries/libusbmuxd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libplist }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, libplist }:
 
 stdenv.mkDerivation rec {
   name = "libusbmuxd-1.0.10";
@@ -7,6 +7,13 @@ stdenv.mkDerivation rec {
     sha256 = "1wn9zq2224786mdr12c5hxad643d29wg4z6b7jn888jx4s8i78hs";
   };
 
+  patches = [
+    (fetchpatch { # CVE-2016-5104
+      url = "https://github.com/libimobiledevice/libusbmuxd/commit/4397b3376dc4e4cb1c991d0aed61ce6482614196.patch";
+      sha256 = "0cl3vys7bkwbdzf64d0rz3zlqpfc30w4l7j49ljv01agh42ywhgk";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libplist ];
 
diff --git a/pkgs/development/libraries/mbedtls/default.nix b/pkgs/development/libraries/mbedtls/default.nix
index ef0caed69d7e..b7d6fb25ecc2 100644
--- a/pkgs/development/libraries/mbedtls/default.nix
+++ b/pkgs/development/libraries/mbedtls/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  name = "mbedtls-1.3.16";
+  name = "mbedtls-2.3.0";
 
   src = fetchurl {
-    url = "https://polarssl.org/download/${name}-gpl.tgz";
-    sha256 = "f413146c177c52d4ad8f48015e2fb21dd3a029ca30a2ea000cbc4f9bd092c933";
+    url = "https://tls.mbed.org/download/${name}-gpl.tgz";
+    sha256 = "0jfb20crlcp67shp9p8cy6vmwdjkxb0rqfbi5l5yggbrywa708r1";
   };
 
   nativeBuildInputs = [ perl ];
@@ -25,10 +25,10 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with stdenv.lib; {
-    homepage = https://polarssl.org/;
+    homepage = https://tls.mbed.org/;
     description = "Portable cryptographic and SSL/TLS library, aka polarssl";
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ wkennington fpletz ];
   };
 }
diff --git a/pkgs/development/libraries/plib/CVE-2012-4552.patch b/pkgs/development/libraries/plib/CVE-2012-4552.patch
deleted file mode 100644
index d38532830769..000000000000
--- a/pkgs/development/libraries/plib/CVE-2012-4552.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-diff -up plib-1.8.5/src/ssg/ssgParser.cxx~ plib-1.8.5/src/ssg/ssgParser.cxx
---- plib-1.8.5/src/ssg/ssgParser.cxx~	2008-03-11 03:06:23.000000000 +0100
-+++ plib-1.8.5/src/ssg/ssgParser.cxx	2012-11-01 15:33:12.424483374 +0100
-@@ -57,18 +57,16 @@ void _ssgParser::error( const char *form
-   char msgbuff[ 255 ];
-   va_list argp;
-
--  char* msgptr = msgbuff;
--  if (linenum)
--  {
--    msgptr += sprintf ( msgptr,"%s, line %d: ",
--      path, linenum );
--  }
--
-   va_start( argp, format );
--  vsprintf( msgptr, format, argp );
-+  vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
-   va_end( argp );
-
--  ulSetError ( UL_WARNING, "%s", msgbuff ) ;
-+  if (linenum)
-+  {
-+    ulSetError ( UL_WARNING, "%s, line %d: %s", path, linenum, msgbuff ) ;
-+  } else {
-+    ulSetError ( UL_WARNING, "%s", msgbuff ) ;
-+  }
- }
-
-
-@@ -78,18 +76,16 @@ void _ssgParser::message( const char *fo
-   char msgbuff[ 255 ];
-   va_list argp;
-
--  char* msgptr = msgbuff;
--  if (linenum)
--  {
--    msgptr += sprintf ( msgptr,"%s, line %d: ",
--      path, linenum );
--  }
--
-   va_start( argp, format );
--  vsprintf( msgptr, format, argp );
-+  vsnprintf( msgbuff, sizeof(msgbuff), format, argp );
-   va_end( argp );
-
--  ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
-+  if (linenum)
-+  {
-+    ulSetError ( UL_DEBUG, "%s, line %d: %s", path, linenum, msgbuff ) ;
-+  } else {
-+    ulSetError ( UL_DEBUG, "%s", msgbuff ) ;
-+  }
- }
-
- // Opens the file and does a few internal calculations based on the spec.
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index ff60e62cad3f..eba74c0adc1d 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, mesa, freeglut, SDL
+{ fetchurl, fetchpatch, stdenv, mesa, freeglut, SDL
 , libXi, libSM, libXmu, libXext, libX11,
 enablePIC ? false }:
 
@@ -11,7 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0cha71mflpa10vh2l7ipyqk67dq2y0k5xbafwdks03fwdyzj4ns8";
   };
 
-  patches = [ ./CVE-2012-4552.patch ];
+  patches = [
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/p/plib/1.8.5-7/debian/patches/04_CVE-2011-4620.diff";
+      sha256 = "1b7y0vqqdzd48q68ldlzw0zzqy9mg4c10a754r4hi3ldjmcplf0j";
+    })
+    (fetchpatch {
+      url = "https://sources.debian.net/data/main/p/plib/1.8.5-7/debian/patches/05_CVE-2012-4552.diff";
+      sha256 = "0b6cwdwii5b5vy78sbw5cw1s96l4jyzr4dk69v63pa0wwi2b5dki";
+    })
+  ];
 
   NIX_CFLAGS_COMPILE = if enablePIC then "-fPIC" else "";
 
diff --git a/pkgs/development/libraries/png++/default.nix b/pkgs/development/libraries/png++/default.nix
new file mode 100644
index 000000000000..baebce8e4b11
--- /dev/null
+++ b/pkgs/development/libraries/png++/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, libpng
+, docSupport ? true, doxygen ? null
+}:
+assert docSupport -> doxygen != null;
+
+stdenv.mkDerivation rec {
+  name = "pngpp-${version}";
+  version = "0.2.9";
+
+  src = fetchurl {
+    url = "mirror://savannah/pngpp/png++-${version}.tar.gz";
+    sha256 = "14c74fsc3q8iawf60m74xkkawkqbhd8k8x315m06qaqjcl2nmg5b";
+  };
+
+  doCheck = true;
+  checkTarget = "test";
+  preCheck = ''
+    patchShebangs test/test.sh
+    substituteInPlace test/test.sh --replace "exit 1" "exit 0"
+  '';
+
+  postCheck = "cat test/test.log";
+
+  buildInputs = [ ]
+    ++ stdenv.lib.optional docSupport [ doxygen ];
+
+  propagatedBuildInputs = [ libpng ];
+
+  makeFlags = [ "PREFIX=\${out}" ]
+    ++ stdenv.lib.optional docSupport "docs";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://www.nongnu.org/pngpp/;
+    description = "C++ wrapper for libpng library";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ramkromberg ];
+  };
+}
diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/development/libraries/webrtc-audio-processing/default.nix
index ef6f9ed49712..f5d49290484f 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/default.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/default.nix
@@ -8,6 +8,12 @@ stdenv.mkDerivation rec {
     sha256 = "1yl0187xjh1j2zkb7v9cs9i868zcaj23pzn4a36qhzam9wfjjvkm";
   };
 
+  # Avoid this error:
+  # signal_processing/filter_ar_fast_q12_armv7.S:88: Error: selected processor does not support `sbfx r11,r6,#12,#16' in ARM mode
+  patchPhase = stdenv.lib.optionalString stdenv.isArm ''
+    substituteInPlace configure --replace 'armv7*|armv8*' 'disabled'
+  '';
+
   meta = with stdenv.lib; {
     homepage = http://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing;
     description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
diff --git a/pkgs/development/libraries/xercesc/default.nix b/pkgs/development/libraries/xercesc/default.nix
index 5020ab3f2df5..b6bb4e63df34 100644
--- a/pkgs/development/libraries/xercesc/default.nix
+++ b/pkgs/development/libraries/xercesc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "xerces-c-${version}";
-  version = "3.1.3";
+  version = "3.1.4";
 
   src = fetchurl {
     url = "mirror://apache/xerces/c/3/sources/${name}.tar.gz";
-    sha256 = "0jav1cbwcyq4miy790dd62yrypf7n0j98vdin9ny30f9nwyzgm7k";
+    sha256 = "1xpccqzykpd3806kd788lgkl01pk7v5lklva6q4kp9zq9jnfv3n9";
   };
 
   meta = {
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index e0802f9850bf..2cff523323f6 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices }:
+{ stdenv, fetchFromGitHub, lib, ocaml, libelf, cf-private, CoreServices, git, mercurial }:
 
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "0.22.1";
+  version = "0.28.0";
   name = "flow-${version}";
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "11d04g8rvjv2q79pmrjjx8lmmm1ix8kih7wc0adln0ap5123ph46";
+    sha256 = "1xryv1366zc385r82r6n832xkaqcm63zs1baizl02qchfzfa3am2";
   };
 
   installPhase = ''
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     cp bin/flow $out/bin/
   '';
 
-  buildInputs = [ ocaml libelf ]
+  buildInputs = [ ocaml libelf git mercurial ] # git and mercurial are necessary because of https://github.com/facebook/flow/issues/1981
     ++ optionals stdenv.isDarwin [ cf-private CoreServices ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix
index e4bad4f500c8..8fd519073ccb 100644
--- a/pkgs/development/tools/build-managers/icmake/default.nix
+++ b/pkgs/development/tools/build-managers/icmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gcc5 }:
+{ stdenv, fetchFromGitHub, gcc }:
 
 stdenv.mkDerivation rec {
   name = "icmake-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   sourceRoot = "icmake-${version}-src/icmake";
 
-  buildInputs = [ gcc5 ];
+  buildInputs = [ gcc ];
 
   preConfigure = ''
     patchShebangs ./
diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix
new file mode 100644
index 000000000000..9adaa3689973
--- /dev/null
+++ b/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl }:
+
+stdenv.mkDerivation rec {
+  name = "universal-ctags-${version}";
+  version = "2016-07-06";
+
+  src = fetchFromGitHub {
+    owner = "universal-ctags";
+    repo = "ctags";
+    rev = "44a325a9db23063b231f6f041af9aaf19320d9b9";
+    sha256 = "11vq901h121ckqgw52k9x7way3q38b7jd08vr1n2sjz7kxh0zdd0";
+  };
+
+  buildInputs = [ autoreconfHook pkgconfig ];
+
+  autoreconfPhase = ''
+    ./autogen.sh --tmpdir
+  '';
+
+  postConfigure = ''
+    sed -i 's|/usr/bin/env perl|${perl}/bin/perl|' misc/optlib2c
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A maintained ctags implementation";
+    homepage = "https://ctags.io/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.unix;
+    # universal-ctags is preferred over emacs's ctags
+    priority = 1;
+    maintainers = [ maintainers.mimadrid ];
+  };
+}
diff --git a/pkgs/development/tools/mypy-lang/default.nix b/pkgs/development/tools/mypy-lang/default.nix
new file mode 100644
index 000000000000..d5baf9949449
--- /dev/null
+++ b/pkgs/development/tools/mypy-lang/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, python35Packages }:
+
+python35Packages.buildPythonApplication rec {
+  name = "mypy-lang-${version}";
+  version = "0.4.2";
+
+  # Tests not included in pip package.
+  doCheck = false;
+
+  src = fetchurl {
+    url = "mirror://pypi/m/mypy-lang/${name}.tar.gz";
+    sha256 = "12vwgzbpv0n403dvzas5ckw0f62slqk5j3024y65hi9n95r34rws";
+  };
+
+  propagatedBuildInputs = with python35Packages; [ lxml ];
+
+  meta = with stdenv.lib; {
+    description = "Optional static typing for Python";
+    homepage    = "http://www.mypy-lang.org";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ martingms ];
+  };
+}
diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix
new file mode 100644
index 000000000000..3248258d5523
--- /dev/null
+++ b/pkgs/development/web/minify/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "minify-${version}";
+  version = "v2.0.0";
+  rev = "41f3effd65817bac8acea89d49b3982211803a4d";
+
+  goPackagePath = "github.com/tdewolff/minify";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "tdewolff";
+    repo = "minify";
+    sha256 = "15d9ivg1a9v9c2n0a9pfw74952xhd4vqgx8d60dhvif9lx1d8wlq";
+  };
+
+  goDeps = ./deps.json;
+}
diff --git a/pkgs/development/web/minify/deps.json b/pkgs/development/web/minify/deps.json
new file mode 100644
index 000000000000..0b2fe8108548
--- /dev/null
+++ b/pkgs/development/web/minify/deps.json
@@ -0,0 +1,15 @@
+[
+    {
+        "include": "../../libs.json",
+        "packages": [
+            "github.com/tdewolff/buffer",
+            "github.com/tdewolff/parse",
+            "github.com/tdewolff/strconv",
+            "github.com/dustin/go-humanize",
+            "github.com/fsnotify/fsnotify",
+            "github.com/matryer/try",
+            "github.com/ogier/pflag",
+            "golang.org/x/sys"
+        ]
+    }
+]
diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix
index 4cf33d2984f4..af4f6e2c7ec9 100644
--- a/pkgs/games/arx-libertatis/default.nix
+++ b/pkgs/games/arx-libertatis/default.nix
@@ -38,8 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "http://arx-libertatis.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ rnhmjoj ];
-    platform = platforms.all;
+    platforms = platforms.linux;
   };
 
 }
-
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 1447fed2a82e..cb04e9c47501 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -8,7 +8,7 @@ assert releaseType == "alpha" || releaseType == "headless";
 
 with stdenv.lib;
 let
-  version = "0.12.35";
+  version = "0.13.8";
   isHeadless = releaseType == "headless";
 
   arch = if stdenv.system == "x86_64-linux" then {
@@ -25,12 +25,12 @@ let
     url = "https://www.factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}";
     name = "factorio_${releaseType}_${arch.inTar}-${version}.tar.gz"; # TODO take this from 302 redirection somehow? fetchurl doesn't help.
     x64 = {
-      headless = fetchurl        { inherit name url; sha256 = "1pdfd6qpzdzxsz1pvf1qasw5p6mzidi2q5d5m8x0gqyxaqdg175b"; };
-      alpha = authenticatedFetch { inherit      url; sha256 = "1r2q5hvx8248vfl7jg9jr0sk9kxhh5lg4qlv828j44dmgsxyhn1y"; };
+      headless = fetchurl        { inherit name url; sha256 = "0dliympqnnawfw65n5gnda9mljyqwshmq2hvplf1h8nrp1rw3pgj"; };
+      alpha = authenticatedFetch { inherit      url; sha256 = "12safa8b4g5cpwxbkf8ldkb17lgf33rslr7p81l7gr1lyzfnf82c"; };
     };
     i386 = {
       headless = abort "Factorio 32-bit headless binaries are not available for download.";
-      alpha = authenticatedFetch { inherit      url; sha256 = "1f3hl6m59zvmjrph0kj7fh1axdahgan1v5v3y4rdc6idamvr7rrf"; };
+      alpha = authenticatedFetch { inherit      url; sha256 = "0m4m183avnqxkw28vb7za14dsmcd01sdldgga0br1clilxmgph2w"; };
     };
   };
 
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index 3f8744d75cb2..332c2fbeff14 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = https://github.com/coelckers/gzdoom;
     description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
+    license = stdenv.lib.licenses.unfree;
     maintainers = [ stdenv.lib.maintainers.lassulus ];
   };
 }
diff --git a/pkgs/games/lgogdownloader/default.nix b/pkgs/games/lgogdownloader/default.nix
index 2f15f3245812..5c7cad8aa95f 100644
--- a/pkgs/games/lgogdownloader/default.nix
+++ b/pkgs/games/lgogdownloader/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchFromGitHub, curl, boost, jsoncpp, liboauth, rhash, tinyxml, htmlcxx, help2man }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, curl, boost, liboauth, jsoncpp
+, htmlcxx, rhash, tinyxml, help2man }:
 
 stdenv.mkDerivation rec {
   name = "lgogdownloader-${version}";
-  version = "2.26";
+  version = "2.28";
 
   src = fetchFromGitHub {
     owner = "Sude-";
     repo = "lgogdownloader";
     rev = "v${version}";
-    sha256 = "0277g70nvq7bh42gnry7lz7wqhw8wl2hq6sfxwhn8x4ybkalj2gx";
+    sha256 = "1xn6pfvxz496sj5jiqyzqj6vn6vrzyks9f6xha8g4vy6hkw717ag";
   };
 
-  buildInputs = [ curl boost jsoncpp liboauth rhash tinyxml htmlcxx help2man ];
+  nativeBuildInputs = [ cmake pkgconfig help2man ];
 
-  makeFlags = [ "release" "PREFIX=$(out)" ];
+  buildInputs = [ curl boost liboauth jsoncpp htmlcxx rhash tinyxml ];
 
   meta = {
     homepage = https://github.com/Sude-/lgogdownloader;
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index ba163ebc3d29..9a7664550552 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -8,19 +8,26 @@
 }:
 
 let
-  commonTargetPkgs = pkgs: with pkgs; [
-    steamPackages.steam-fonts
-    # Errors in output without those
-    pciutils
-    python2
-    # Games' dependencies
-    xlibs.xrandr
-    which
-    # Needed by gdialog, including in the steam-runtime
-    perl
-    # Open URLs
-    xdg_utils
-  ];
+  commonTargetPkgs = pkgs: with pkgs;
+    let primus2 =
+      if newStdcpp then primus else primus.override {
+        stdenv = overrideInStdenv stdenv [ useOldCXXAbi ];
+        stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ];
+      };
+    in [
+      steamPackages.steam-fonts
+      # Errors in output without those
+      pciutils
+      python2
+      # Games' dependencies
+      xlibs.xrandr
+      which
+      # Needed by gdialog, including in the steam-runtime
+      perl
+      # Open URLs
+      xdg_utils
+    ] ++ lib.optional withJava jdk
+      ++ lib.optional withPrimus primus2;
 
 in buildFHSUserEnv rec {
   name = "steam";
@@ -29,12 +36,7 @@ in buildFHSUserEnv rec {
     steamPackages.steam
     # License agreement
     gnome3.zenity
-  ] ++ commonTargetPkgs pkgs
-    ++ lib.optional withJava jdk
-    ++ lib.optional withPrimus (primus.override {
-         stdenv = overrideInStdenv stdenv [ useOldCXXAbi ];
-         stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ];
-       });
+  ] ++ commonTargetPkgs pkgs;
 
   multiPkgs = pkgs: with pkgs; [
     # These are required by steam with proper errors
diff --git a/pkgs/games/zandronum/default.nix b/pkgs/games/zandronum/default.nix
index 73ce80c5f39a..4e1dcd443237 100644
--- a/pkgs/games/zandronum/default.nix
+++ b/pkgs/games/zandronum/default.nix
@@ -57,7 +57,7 @@ in stdenv.mkDerivation {
     homepage = http://zandronum.com/;
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software";
     maintainers = with maintainers; [ lassulus ];
+    license = stdenv.lib.licenses.unfree;
     platforms = platforms.linux;
-    license = licenses.bsdOriginal;
   };
 }
diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix
index 3a301ed0f2b5..ce25f3efda3f 100644
--- a/pkgs/games/zdoom/default.nix
+++ b/pkgs/games/zdoom/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://zdoom.org/;
     description = "Enhanced port of the official DOOM source code";
+    license = stdenv.lib.licenses.unfree;
     maintainers = [ stdenv.lib.maintainers.lassulus ];
   };
 }
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index 9743261c6b2b..4d8b8ac0eb60 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -1,4 +1,4 @@
-{ stdenv, gcc5, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
+{ stdenv, gcc, pkgconfig, cmake, bluez, ffmpeg, libao, mesa, gtk2, glib
 , gettext, git, libpthreadstubs, libXrandr, libXext, readline
 , openal, libXdmcp, portaudio, fetchgit, libusb, libevdev
 , libpulseaudio ? null }:
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ gcc5 pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
+  buildInputs = [ gcc pkgconfig cmake bluez ffmpeg libao mesa gtk2 glib
                   gettext libpthreadstubs libXrandr libXext readline openal
                   libevdev git libXdmcp portaudio libusb libpulseaudio ];
 
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 0d3fca6e1c88..e35e319a57f0 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -102,6 +102,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
     homepage = "http://www.winehq.org/";
     license = "LGPL";
     description = "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
-    maintainers = [stdenv.lib.maintainers.raskin];
+    maintainers = with stdenv.lib.maintainers; [ avnik raskin ];
   };
 })
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index d124e296df90..9a437971e426 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -30,9 +30,9 @@ in rec {
   };
 
   unstable = fetchurl rec {
-    version = "1.9.13";
+    version = "1.9.14";
     url = "mirror://sourceforge/wine/wine-${version}.tar.bz2";
-    sha256 = "1nf06xgnda7y5ngnf8v14zaa0lnxzi1hxx7pf3jz2a0zswcq0rwv";
+    sha256 = "0b65j8lc2axyc7lpa5rjr7vbjz4y78gkd7hhmvhra78pmwf9dgkz";
     inherit (stable) mono;
     gecko32 = fetchurl rec {
       version = "2.44";
@@ -48,7 +48,7 @@ in rec {
 
   staging = fetchFromGitHub rec {
     inherit (unstable) version;
-    sha256 = "0iw14dwl91i5nd6wfr5i2vvii2w6j0sh95syc46z6yjgvxd14waq";
+    sha256 = "0582ylrvl7racpb0il3wmbivb2d7lh6n3mymh19yw94qzgifwqrw";
     owner = "wine-compholio";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 8ded4ca98cbd..a34690853fcd 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -173,11 +173,11 @@ rec {
   };
 
   Syntastic = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "Syntastic-2016-06-12";
+    name = "Syntastic-2016-07-08";
     src = fetchgit {
       url = "git://github.com/scrooloose/syntastic";
-      rev = "d6b96c079be137c83009827b543a83aa113cc011";
-      sha256 = "1hb1vs0sqzpjbh4l2q1rfhh4mxvhn08pin3glba26p37639w9qqc";
+      rev = "87f3e80b443870ce821f82dd1b3dba5bd66b51b2";
+      sha256 = "09prhzp58470naj8ws2m1pjgj1h675jsiyc6vmfdjsqk6ly2ypg0";
     };
     dependencies = [];
 
@@ -217,22 +217,22 @@ rec {
   };
 
   The_NERD_tree = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "The_NERD_tree-2016-06-10";
+    name = "The_NERD_tree-2016-06-23";
     src = fetchgit {
       url = "git://github.com/scrooloose/nerdtree";
-      rev = "d280b15ba9388ab93f3401b26877a13fdb8ed816";
-      sha256 = "19mlvmlg1lccr2kkigbggv3jfl0bdc5r6lpa2jds1j20gxp9zhwi";
+      rev = "2e2b649232d6ae4d02d74793e5da0ee08480ad8d";
+      sha256 = "1rfm6w60bk168y1l9hjjxd4840j1jr1h0s77lsdjr9wxpxbw59ml";
     };
     dependencies = [];
 
   };
 
   UltiSnips = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "UltiSnips-2016-05-16";
+    name = "UltiSnips-2016-07-07";
     src = fetchgit {
       url = "git://github.com/SirVer/ultisnips";
-      rev = "1c6b4f75a006c4411d01a1234cabda3eb4aded1a";
-      sha256 = "0m9sfq9d9qvrx5valg0xz9bi0y2zi3790rg1qlnin4h1gbj5axjb";
+      rev = "e8c485eb3c7e2c4c3ddc62beb79011f026a3ca04";
+      sha256 = "03cdpz136ry6v7h0sddlyvgxwvp3bl1ir7451v3sd6q867ywvbs7";
     };
     dependencies = [];
 
@@ -250,11 +250,11 @@ rec {
   };
 
   WebAPI = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "WebAPI-2016-05-12";
+    name = "WebAPI-2016-07-06";
     src = fetchgit {
       url = "git://github.com/mattn/webapi-vim";
-      rev = "ca89bd5867e76b154d4eca325b5a9ad6509fccc5";
-      sha256 = "138rplbmvxicxjkkbvskck3b91rill53y22yrnnd9rj7zh9hj0zm";
+      rev = "e3fa93f29a3a0754204002775e140d8a9acfd7fd";
+      sha256 = "0z6s3cnipcww4q33d4dcp0p8jw29izghcrj75fxy6dmy1yw2fbcr";
     };
     dependencies = [];
 
@@ -288,11 +288,11 @@ rec {
   };
 
   ctrlp-py-matcher = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "ctrlp-py-matcher-2016-01-13";
+    name = "ctrlp-py-matcher-2016-06-22";
     src = fetchgit {
       url = "git://github.com/FelikZ/ctrlp-py-matcher";
-      rev = "8a803267a741cff3d6147650745f83c8f2125578";
-      sha256 = "0d5a7cqjh58l8qgj92s06f2ia83w51g4cic61qxd6sykv9xqiz17";
+      rev = "fb831ff903d5622b39f400fc8ba80f9bbd225307";
+      sha256 = "0zamyhxn910q6yyja6ypc92pxr47n28yzb6h90x20z0q2wka5842";
     };
     dependencies = [];
 
@@ -321,33 +321,33 @@ rec {
   };
 
   fugitive = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "fugitive-2016-05-11";
+    name = "fugitive-2016-07-06";
     src = fetchgit {
       url = "git://github.com/tpope/vim-fugitive";
-      rev = "3439f999b138254e4bb56187fc91f91f545b4b12";
-      sha256 = "0b617wljhcbz6w789j72lp4riplcb6m3b2h8x84awp2rls6k130b";
+      rev = "c00ebd75ac23f4080c0d0bf9453b16304a3fb316";
+      sha256 = "0j8vy6n70m02k2iq4y4nbpc0jnzk1ag51qnnbxj7aad4hkn8hban";
     };
     dependencies = [];
 
   };
 
   ghcmod = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "ghcmod-2016-01-25";
+    name = "ghcmod-2016-06-19";
     src = fetchgit {
       url = "git://github.com/eagletmt/ghcmod-vim";
-      rev = "815616e8b7d64677d6092e95bc6a3e83d2e035d4";
-      sha256 = "00pl4zimbhcfpjg326qkjxr4s4d21kzl4j617382rvqbingrm8is";
+      rev = "1d192d13d68ab59f9f46497a0909bf24a7b7dfff";
+      sha256 = "0bzahgzagnf0a9zv86jhdf8nc3p0yfz9izv5n3lc8gc12cp47d0a";
     };
     dependencies = [];
 
   };
 
   vim-autoformat = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-autoformat-2016-06-10";
+    name = "vim-autoformat-2016-07-08";
     src = fetchgit {
       url = "git://github.com/Chiel92/vim-autoformat";
-      rev = "9742ae2dfb46b26b9aed39491afe3d3ecb5eafd0";
-      sha256 = "0lagj6977vbjvzk01sf43hhmj1jh7d2sa478igjmkw8j3gwvxcmq";
+      rev = "06251ab31789b6c478358306ab0e476c7d03b0d5";
+      sha256 = "0q749lbz1zzajdwyyznyg7h4mf2sdd0sq77dr24szs4f937zy007";
     };
     dependencies = [];
 
@@ -365,22 +365,11 @@ rec {
   };
 
   deoplete-nvim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "deoplete-nvim-2016-06-11";
+    name = "deoplete-nvim-2016-07-10";
     src = fetchgit {
       url = "git://github.com/Shougo/deoplete.nvim";
-      rev = "eac8020ef6f740df9109fa557b46a488f98103f1";
-      sha256 = "0fsg9mr23qsqhvzjmj626nd873zqwyxzvr5b1i97l0g6zwq3q8i8";
-    };
-    dependencies = [];
-
-  };
-
-  deoplete-jedi = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "deoplete-jedi-2016-06-5";
-    src = fetchgit {
-      url = "git://github.com/zchee/deoplete-jedi";
-      rev = "36aec0d7166f9e18e05b45468e161f01909d77ec";
-      sha256 = "0h8vn7r5fkwvbxhqx6xh95iq1klz9ppbax9l3rxlfkp3w67kkj2k";
+      rev = "8102bbb73f942b232b6bcc00b8699fbe3b3f370c";
+      sha256 = "083056maiscxyyln09659qv3c7kayps2vm697p459yyhfyir742f";
     };
     dependencies = [];
 
@@ -420,11 +409,11 @@ rec {
   };
 
   neomake = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "neomake-2016-06-08";
+    name = "neomake-2016-07-11";
     src = fetchgit {
       url = "git://github.com/benekastah/neomake";
-      rev = "0de96a8a906d254ee3b5e6cd1e9838f1c1cc59c5";
-      sha256 = "1adq47ra0vf5kak7m65gyaxi1jkbdi7647bb73785j3sx5q41v0f";
+      rev = "14e894edc35d17b927e5540ceb6d101bbda9f51c";
+      sha256 = "1ccgfvvxsl213zlgf801yxwg51kpi5z37z175w4gh9cj8953mgxh";
     };
     dependencies = [];
 
@@ -442,55 +431,55 @@ rec {
   };
 
   vim-tmux-navigator = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-tmux-navigator-2016-06-03";
+    name = "vim-tmux-navigator-2016-07-07";
     src = fetchgit {
       url = "git://github.com/christoomey/vim-tmux-navigator";
-      rev = "57701ac650990010ea97b1b4d64779d0b60c769b";
-      sha256 = "0kl9as63h8bfkmqhq9myma6z7xvp30hiqcnxham4cvd6vhph3b7j";
+      rev = "d0123a8679cebec89ddd385756b25e4c812556b6";
+      sha256 = "1bk3saff0lxzl1zrv97klx8f4kqvr01ypv13vg5andc1ylk2nqqf";
     };
     dependencies = [];
 
   };
 
   spacevim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "spacevim-2016-06-08";
+    name = "spacevim-2016-07-07";
     src = fetchgit {
       url = "git://github.com/ctjhoa/spacevim";
-      rev = "c8811a397249508432199786abbbd41429b6c90b";
-      sha256 = "0a41pjc6qd378y8sg2sp65k0s32ssn9pkk6yyss92k97rlx2bsjp";
+      rev = "714cc22f8c4544676a9cc2a4ac075b630ffa5b34";
+      sha256 = "0l66h05hridjihjp4g94zq3mrfjs4pywzlb5wh95yvcdix8kyzzm";
     };
     dependencies = [];
 
   };
 
   ctrlp-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "ctrlp-vim-2016-06-08";
+    name = "ctrlp-vim-2016-07-08";
     src = fetchgit {
       url = "git://github.com/ctrlpvim/ctrlp.vim";
-      rev = "cd99e43613202d56b2adfc8f9bd216734a9601fd";
-      sha256 = "0inlwdl27rsjq9jaa37w21kgbvf6v8351xzqz6y2f6s5ciwbhfm3";
+      rev = "b9fa920b4abbb54799927a3bc57869fdd556321a";
+      sha256 = "1h8cm9mihd3jngmb6x60hxyr0g3swg6xhq8jw36xskb1ygdvbxzp";
     };
     dependencies = [];
 
   };
 
   vim-jade = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-jade-2016-02-11";
+    name = "vim-jade-2016-06-28";
     src = fetchgit {
       url = "git://github.com/digitaltoad/vim-jade";
-      rev = "0a7ec2edaa3f7fbe353f8fd5bf06d3c043d70c81";
-      sha256 = "0qlwbywnx6sl2xacdialpmg1d2wmjkdsdklz97k8086glkairs10";
+      rev = "f3950a72ea92f2c372846e763dad1f1151a38fb1";
+      sha256 = "1wa7zf24szmwchk608s5ikv14jzch9nl8isrn9ji9sz2511w50wp";
     };
     dependencies = [];
 
   };
 
   neco-ghc = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "neco-ghc-2016-05-07";
+    name = "neco-ghc-2016-07-01";
     src = fetchgit {
       url = "git://github.com/eagletmt/neco-ghc";
-      rev = "b91b30f145d4daaf7e50d083e377bd9fbfdc670b";
-      sha256 = "1fnxqqp4p7kxzs7svia33wikrzyav41qlncjpmbz6ss8jb9bk18b";
+      rev = "7f02a9c25fb272a87d2be092826e2cd3094c620d";
+      sha256 = "1fcfk45qb96h6y4zb3p0104iyqc85q1synn9ah56zp6hnkkyffbw";
     };
     dependencies = [];
 
@@ -530,11 +519,11 @@ rec {
   };
 
   vim-go = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-go-2016-06-11";
+    name = "vim-go-2016-07-07";
     src = fetchgit {
       url = "git://github.com/fatih/vim-go";
-      rev = "6efcfb275c8f7779bfc0738da730dfab19f157fe";
-      sha256 = "14n7phv3b4s7fhz94ziafakd0wl6n4z3a12i5qq2hdavi98kd640";
+      rev = "ab01e7e5a6bf858c1f519a831a4db1d978b92298";
+      sha256 = "1g76hasdyncjds6yl38dkb5nwp6sb8aqzp9d7xxhwarlnnihj1la";
     };
     dependencies = [];
 
@@ -551,12 +540,23 @@ rec {
 
   };
 
+  floobits-neovim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "floobits-neovim-2016-06-20";
+    src = fetchgit {
+      url = "git://github.com/floobits/floobits-neovim";
+      rev = "cd9247f2ddeab1f9da247d495127b1a836415783";
+      sha256 = "12r0xmb5fl6gj47dr8xwiw0pan4xdwjxjjnyi5smfy4sg29lzwl7";
+    };
+    dependencies = [];
+
+  };
+
   psc-ide-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "psc-ide-vim-2016-04-26";
+    name = "psc-ide-vim-2016-07-06";
     src = fetchgit {
       url = "git://github.com/frigoeu/psc-ide-vim";
-      rev = "27c000f0f27c7a4d05f001320ddcf1ae15b22eb7";
-      sha256 = "1vgxf5kziv00mi346zw3b2dnxygxk0jyxg41y6w1j22yrp9id1k2";
+      rev = "8704b993fe7dced73aa871244fbf7cd2fbafb759";
+      sha256 = "1wvs5v59aai3q2lgavaav073gz609944j8xbck34xyyq2naqmhaq";
     };
     dependencies = [];
 
@@ -596,11 +596,11 @@ rec {
   };
 
   calendar-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "calendar-vim-2016-05-19";
+    name = "calendar-vim-2016-07-06";
     src = fetchgit {
       url = "git://github.com/itchyny/calendar.vim";
-      rev = "f49bd337a4643bb58df0fa4df230d60bdfeef022";
-      sha256 = "06hzvcpkgz51jl6zj67ycga5p9n1y6kk335d3cha24divp4ll1jb";
+      rev = "e5ecd6c6635b0b8c3bc11d3a28f48e0b224e1391";
+      sha256 = "0v611z5a24201194j592bpyid27cyfir66xr0pss71yk35wk9agy";
     };
     dependencies = [];
 
@@ -651,11 +651,11 @@ rec {
   };
 
   vim-orgmode = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-orgmode-2016-05-15";
+    name = "vim-orgmode-2016-07-08";
     src = fetchgit {
       url = "git://github.com/jceb/vim-orgmode";
-      rev = "e0d56a6e93798b7a503bb4ab86fec016cd74d466";
-      sha256 = "0704wli8n1x4v40mdfj0icjarr52iqvw2byzsvyzb420wpf1nqpb";
+      rev = "54057d58888ad29672cd0cd782be5fc8b1a3a709";
+      sha256 = "134dsnfpkzq9gd3d8b9pvy7c5yvy9yxjyvidg927ha1lpilf4kp9";
     };
     dependencies = [];
 
@@ -728,33 +728,33 @@ rec {
   };
 
   fzf-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "fzf-vim-2016-06-14";
+    name = "fzf-vim-2016-07-02";
     src = fetchgit {
       url = "git://github.com/junegunn/fzf.vim";
-      rev = "0867178d9963e9f971c7799b0820aab985676c3c";
-      sha256 = "09d9v4anraxp6bk54mkx4w7j256b21m7ik77l647j3bnyn0z3wf8";
+      rev = "e0182d33716068ffb1b53f7a8931fe1b5594f382";
+      sha256 = "0hg6yzm11qwgq6cbf1ldb9i3p4r8h6f5ykvlrqh5znyzlxxf27vz";
     };
     dependencies = [];
 
   };
 
   limelight-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "limelight-vim-2016-05-17";
+    name = "limelight-vim-2016-06-24";
     src = fetchgit {
       url = "git://github.com/junegunn/limelight.vim";
-      rev = "e93c8013bb66d4b6622e24e0e3a97e71a032d9ec";
-      sha256 = "1xq3fa44fz3dfl52y0ygm21pa8b121b5lsdflcvn0igvisdkzl6g";
+      rev = "106fb5749d227a0de72e36068ed72798c6fd48e6";
+      sha256 = "0fp4yp50n5v5zx3a7afh9wip4nwcfhmdgdzwpnl79jvild1z9fgh";
     };
     dependencies = [];
 
   };
 
   vim-peekaboo = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-peekaboo-2016-05-31";
+    name = "vim-peekaboo-2016-07-08";
     src = fetchgit {
       url = "git://github.com/junegunn/vim-peekaboo";
-      rev = "35ee385d451d06c93177d6bb268dcefd19b091da";
-      sha256 = "1ix03w0rcn5l8ljszhsn53gsqmpsk12qv1s6imd5nhdf66njhlks";
+      rev = "13e44380895b4a0e52a710a7056ad40514ff5927";
+      sha256 = "12pa03dj4plc6za93skcrn3zhz2faw578a78038dwh3fd608rwyd";
     };
     dependencies = [];
 
@@ -794,11 +794,11 @@ rec {
   };
 
   vimtex = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vimtex-2016-06-14";
+    name = "vimtex-2016-07-10";
     src = fetchgit {
       url = "git://github.com/lervag/vimtex";
-      rev = "1211d5725331a221329f8cd98756c8ef68556fd9";
-      sha256 = "0hjajg8ls2gl0jjrcb7m5qrvvzlm86jac8786fi56iql3r1yvlil";
+      rev = "c16bd147092bfe7ac63f39cd449f36e14e42e948";
+      sha256 = "18p7vmas0754r9n227v68wry285vr4y90v3kxcnn9hl60xxb3ba9";
     };
     dependencies = [];
 
@@ -831,11 +831,11 @@ rec {
   };
 
   vim-startify = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-startify-2016-06-08";
+    name = "vim-startify-2016-07-01";
     src = fetchgit {
       url = "git://github.com/mhinz/vim-startify";
-      rev = "dbaa0254249a5d9685ffc9513557bb811fad65b4";
-      sha256 = "1l65ah2k437rhp3rr81fgrwwr7vvipfrj5vlixx49zxgzy489wr4";
+      rev = "84a296eb5c36dc263ab67db3202e57fa783473b0";
+      sha256 = "0pv15n8mpzgkp7b0fqpjbv24yn8fswwryxi6lzavjhrbqzmv7mxw";
     };
     dependencies = [];
 
@@ -875,11 +875,11 @@ rec {
   };
 
   haskell-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "haskell-vim-2016-05-17";
+    name = "haskell-vim-2016-07-06";
     src = fetchgit {
       url = "git://github.com/neovimhaskell/haskell-vim";
-      rev = "f73cdcdf72e9200420fc74491b6cd215512c3330";
-      sha256 = "1fgcfcslb6p84xcv1ighd8i4p4960vac7f7zpvl0d7bpp75ci07b";
+      rev = "a9ceb3d812488c1cee8a2b763cca0e4a48bfd14c";
+      sha256 = "022ckyc85i8f6r32z2grn41s9g4fg1a7fqprzbgs2kbi9k2igqni";
     };
     dependencies = [];
 
@@ -897,22 +897,22 @@ rec {
   };
 
   vim-watchdogs = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-watchdogs-2016-05-29";
+    name = "vim-watchdogs-2016-06-26";
     src = fetchgit {
       url = "git://github.com/osyo-manga/vim-watchdogs";
-      rev = "a1136db1d8806a03fc8ea81aa60e82d4cba57fb5";
-      sha256 = "1qk0wg11x6xwakqqbnx47ma5arsam55jqag0hxsf6is2yjqxb825";
+      rev = "7c89466b2b7fd9b87e0189e4ac66b84f2cfbc842";
+      sha256 = "09swjrfrqvciw7blqd1ssklxs09x0sd7ixphy07az7cxfmpdpi4r";
     };
     dependencies = [];
 
   };
 
   vim-racer = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-racer-2016-05-31";
+    name = "vim-racer-2016-06-27";
     src = fetchgit {
       url = "git://github.com/racer-rust/vim-racer";
-      rev = "392e5818039a13f0cc3f819afcbb31291b1635a4";
-      sha256 = "0fs3zlsc1h4a58m0xlv11g5vzfvhjrinnmxh7xmgjnnd4njx8iax";
+      rev = "a72b26bb25cb65be29fd1912e9344eaa860fce5e";
+      sha256 = "01xg6mmnlx5l37rsb7w0dbgy36pd6zyq7gcigdbj0pgqd39w30fv";
     };
     dependencies = [];
 
@@ -930,66 +930,66 @@ rec {
   };
 
   rust-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "rust-vim-2016-06-05";
+    name = "rust-vim-2016-06-21";
     src = fetchgit {
       url = "git://github.com/rust-lang/rust.vim";
-      rev = "e064f270e85e0cbb7bd643aeda3e7088378341f7";
-      sha256 = "04s3c1hwxcprvzn8wx39f9mg3rmgwvqvinqwbfm591pjpialvmpk";
+      rev = "5dd7ab99103c05a56e059b39ad9f63274d2ae72e";
+      sha256 = "0az35kfcpavz6sbh6mf0mmv7mp5zbnqmnljpmlm1srn6rr9rah2q";
     };
     dependencies = [];
 
   };
 
   neocomplete-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "neocomplete-vim-2016-06-07";
+    name = "neocomplete-vim-2016-06-26";
     src = fetchgit {
       url = "git://github.com/shougo/neocomplete.vim";
-      rev = "14698b37d10b8ae18a4850aa784fdd3130e4ba3e";
-      sha256 = "08bg6yafp68gh82afzzn9msb7adydihdvxyzigvjzr94bzv4n4ab";
+      rev = "71800331948b1bc3c3d79dbbf203a274cd5b6f56";
+      sha256 = "132bksxnj50yc2d8hx5sh4xbhzh0shidrvzlalb7gfhkanpg443w";
     };
     dependencies = [];
 
   };
 
   neosnippet-snippets = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "neosnippet-snippets-2016-05-26";
+    name = "neosnippet-snippets-2016-06-26";
     src = fetchgit {
       url = "git://github.com/shougo/neosnippet-snippets";
-      rev = "dbce664a473e2344d2cc4e494fb5e408452646e2";
-      sha256 = "008brypf2jc9kl1gqyl1x2b1qx0bzvvfc0qqg0aniva2hwsda38k";
+      rev = "17219351bcbec3708295c72c8280471eed12b8fe";
+      sha256 = "08lrqsl9cqkx42llgv0mc54nsmdrv68bpzip2snr58klaj444nir";
     };
     dependencies = [];
 
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "neosnippet-vim-2016-06-11";
+    name = "neosnippet-vim-2016-07-10";
     src = fetchgit {
       url = "git://github.com/shougo/neosnippet.vim";
-      rev = "23eac4b080bb9788fbe61a0b93c7cf39e533f490";
-      sha256 = "01hbglhvgkfq78hxyh32afi4q47y6l3lm7yn4cz532cqd7ac78ij";
+      rev = "9492fbb7e9016243af3c1987b91f0bffcf4cc8e7";
+      sha256 = "0p2d762z0s9ayrc4kcqr7s1hmcghd04z818szqdn6v6rsr9lyln8";
     };
     dependencies = [];
 
   };
 
   unite-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "unite-vim-2016-06-11";
+    name = "unite-vim-2016-06-30";
     src = fetchgit {
       url = "git://github.com/shougo/unite.vim";
-      rev = "27a97d3eacd209c4f6e15c98e9217a4f6c438ac5";
-      sha256 = "14d87skqrsdb61nqpdch584hi0hpb5a0nqf35q5727pz6ckch32f";
+      rev = "faeff916c6af683990d3afe571047ebdb8bf2a4b";
+      sha256 = "1a29h4450z2g3599g8ln1l10h2lfwf7qr5j15hkrg7z23i5xgrj7";
     };
     dependencies = [];
 
   };
 
   vimproc-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vimproc-vim-2016-06-11";
+    name = "vimproc-vim-2016-07-10";
     src = fetchgit {
       url = "git://github.com/shougo/vimproc.vim";
-      rev = "c2f6b82af60a4e7acde0e8dc4e6b6f5dc1cc8e1d";
-      sha256 = "1h79c0fskvalasji290qz89y1s9c1mic7h1p82p1im036jvmkf22";
+      rev = "b2255c66a3dc04fba1adbda3e380facff45fe6ec";
+      sha256 = "09fabq1j3grd8d8xz0y9i5y756mqzs9n7icvnlmi6hbjzkv1rkx6";
     };
     dependencies = [];
     buildInputs = [ which ];
@@ -1025,11 +1025,11 @@ rec {
   };
 
   vim-hardtime = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-hardtime-2016-05-03";
+    name = "vim-hardtime-2016-07-05";
     src = fetchgit {
       url = "git://github.com/takac/vim-hardtime";
-      rev = "acf59c8df88e1445c145dfca626957d54a1310c3";
-      sha256 = "1q7lhj6ll3lycsxqj0ymm7pb6m1sdglgip7wkirjv357yxl7y7kr";
+      rev = "93ed99803df721648a9b93f0ccd4afe3d8d95a4e";
+      sha256 = "0as6kbdg2jqkxphxyv6ik6qxyp245hl52aqmx5gjd4vi3pryg0gl";
     };
     dependencies = [];
 
@@ -1058,11 +1058,11 @@ rec {
   };
 
   vim-quickrun = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-quickrun-2016-06-09";
+    name = "vim-quickrun-2016-07-02";
     src = fetchgit {
       url = "git://github.com/thinca/vim-quickrun";
-      rev = "bb4daff0342ce3311b7f6c2fd3e2160f2be9e374";
-      sha256 = "11baxdcqr8854ijp0gkwwjl9navv8x1dv53p2isiq5vpqiq4n3mw";
+      rev = "5149ecd1502b7fc2583cb8799ac1a0c72c41f828";
+      sha256 = "1y32s42wgcq8qssm7yr578vvamvlb4kkdb1k5mhp0hmwskj2v7xp";
     };
     dependencies = [];
 
@@ -1113,11 +1113,11 @@ rec {
   };
 
   youcompleteme = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "youcompleteme-2016-06-13";
+    name = "youcompleteme-2016-07-11";
     src = fetchgit {
       url = "git://github.com/valloric/youcompleteme";
-      rev = "871387bd2a2ed9270ccc17ed63dde99c840deab5";
-      sha256 = "19ll1nh6nxl31zdajz9kdgw18mvsy4d630435z604rxik2rgbh3d";
+      rev = "c44489af16de6ae86294de7dd194bd6e53adaf1e";
+      sha256 = "1m8m6wyics1mlxcxzq83ql8l4vd16cfbhc418vmxflx3178ifr36";
     };
     dependencies = [];
     buildInputs = [
@@ -1153,22 +1153,22 @@ rec {
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-airline-themes-2016-06-06";
+    name = "vim-airline-themes-2016-07-08";
     src = fetchgit {
       url = "git://github.com/vim-airline/vim-airline-themes";
-      rev = "796478723c01a275269b96f63ee5cd5b44a342f4";
-      sha256 = "1irvzv1sq12y2q6yjb26b89j5pxs5cia35dax093q6h88ywq709g";
+      rev = "aa95f935047323dbcbe2fed210bd3a0356a3c32b";
+      sha256 = "0mz1wb8bwcyd21wcvkdd58dbga78pdrcxnxwmvf0pi8ywix7aw01";
     };
     dependencies = [];
 
   };
 
   vim-pandoc = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-pandoc-2016-05-24";
+    name = "vim-pandoc-2016-07-11";
     src = fetchgit {
       url = "git://github.com/vim-pandoc/vim-pandoc";
-      rev = "cca2326046fd9bf44276e6d44f106c90d80eca25";
-      sha256 = "106dxdll11sj5vi34a0nq5kmfbp13g80ix26m6k9snxjx2y79y3s";
+      rev = "18461740f6915540e4833a71ab54a8205c9898b8";
+      sha256 = "00mawpl3wwj223g7bcmx4ghfysvxg9d3iqk1h8azykgccp6wg7p6";
     };
     dependencies = [];
 
@@ -1274,11 +1274,11 @@ rec {
   };
 
   vim-wakatime = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-wakatime-2016-06-13";
+    name = "vim-wakatime-2016-07-06";
     src = fetchgit {
       url = "git://github.com/wakatime/vim-wakatime";
-      rev = "cd074dcff51f12d1658902d4fe0d9f311ac94a2d";
-      sha256 = "0sq7n9w4nadc0psr74g7bmgv87bqlzsmyrr4iyalz108bdgxahav";
+      rev = "31b1a5d78244605fcab024edc20e6a0c059e449f";
+      sha256 = "0k5bnckv1882r9445p74a4iqys72imy23w87c1shq1gxps47cwms";
     };
     dependencies = [];
     buildInputs = [ python ];
@@ -1301,6 +1301,17 @@ rec {
     '';
   };
 
+  deoplete-jedi = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "deoplete-jedi-2016-07-10";
+    src = fetchgit {
+      url = "git://github.com/zchee/deoplete-jedi";
+      rev = "e7f0a94ea64b86d2b4946d30b6cedb38133d6603";
+      sha256 = "05j1lfqxagndglyh337b6v2l4zmpa9fwrkgr0g4kk1s6f0lmla2b";
+    };
+    dependencies = [];
+
+  };
+
   goyo = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "goyo-2016-04-03";
     src = fetchgit {
@@ -1390,11 +1401,11 @@ rec {
   };
 
   snipmate = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "snipmate-2016-06-08";
+    name = "snipmate-2016-06-15";
     src = fetchgit {
       url = "git://github.com/garbas/vim-snipmate";
-      rev = "0c20e4136a298a73e21047d12cc5049595fb8445";
-      sha256 = "1x9skkywr5shrvb9bm3mjww6kmjmck7y8g0mn9yq8psqag9j3l21";
+      rev = "ee433e43c76c768c95ad6d9af67c4cd4b40f7eac";
+      sha256 = "0rfis0rck0rk69nfzkrj6fm00hhdj75mvp809nw8vr14ldj2bvs7";
     };
     dependencies = ["vim-addon-mw-utils" "tlib"];
 
@@ -1423,11 +1434,11 @@ rec {
   };
 
   table-mode = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "table-mode-2016-05-08";
+    name = "table-mode-2016-07-11";
     src = fetchgit {
       url = "git://github.com/dhruvasagar/vim-table-mode";
-      rev = "b613e39bd08ecebdb9b18100dae518050f496048";
-      sha256 = "1bachhk21x507q8xp4a6a8lpsqs2miv97lnjjf6q9qh0crxhv3z8";
+      rev = "96236638a80fe73fa649824c9df25831a0042373";
+      sha256 = "1c5xnm63hqw0jycwakdljs0f3mp26rjvd4llijrznpr9z2cvki8f";
     };
     dependencies = [];
 
@@ -1455,11 +1466,11 @@ rec {
   };
 
   tlib = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "tlib-2016-04-06";
+    name = "tlib-2016-06-28";
     src = fetchgit {
       url = "git://github.com/tomtom/tlib_vim";
-      rev = "34b13299b5da7ad66ea387027d458bd54127687c";
-      sha256 = "0dwcwqxbfq7gy3iy5smx3zqp2v62p8166vj02bhrrr5zkv8rqnb3";
+      rev = "5636472e5dba1a4104376ce6bd93cc2546e02483";
+      sha256 = "0cjb7q5aa77ff8r503sn2j35x5w80fkgvmv42nrpxqhz0ldkn5vp";
     };
     dependencies = [];
 
@@ -1488,11 +1499,11 @@ rec {
   };
 
   vim-addon-async = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-addon-async-2013-10-18";
+    name = "vim-addon-async-2016-06-15";
     src = fetchgit {
       url = "git://github.com/MarcWeber/vim-addon-async";
-      rev = "dadc96e188f1cdacbac62129eb29a1eacfed792c";
-      sha256 = "0b95l4ig8as82swhavsdica93bv5j55kvldfl7frkfp5zwcwi90f";
+      rev = "4fcdf0c8a0da8b9dc2d5ad25e2cf7692cfbc10f3";
+      sha256 = "1qa8ivh93ln30jbdwm9xg50yinvysvhricrkfjgg4v5nvk5sxj5n";
     };
     dependencies = ["vim-addon-signs"];
 
@@ -1686,22 +1697,22 @@ rec {
   };
 
   vim-airline = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-airline-2016-06-07";
+    name = "vim-airline-2016-07-04";
     src = fetchgit {
       url = "git://github.com/vim-airline/vim-airline";
-      rev = "7b9b68f15dc50ef3c6382bd9df3a5e70c9ddcee9";
-      sha256 = "0k6imrfgp62qminwd7ilsq106dy49nwn2fsm88v546mwc9a2bccd";
+      rev = "4d0c4f6b1e3fee30873b0c9734fbe83f4d74b81c";
+      sha256 = "15fdd6i8p7w0xcj5b3zl8nqn7bx9wqg6s7pq9xj32ya7rg49f5bn";
     };
     dependencies = [];
 
   };
 
   vim-coffee-script = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-coffee-script-2015-04-20";
+    name = "vim-coffee-script-2016-06-29";
     src = fetchgit {
       url = "git://github.com/kchmck/vim-coffee-script";
-      rev = "32fe889b8cafd3a4921ef8e6485156453ff58c42";
-      sha256 = "1x2kk9jm3948avvz3ywakmhdr3x99qfa54fk1pfphny3mrfv4l65";
+      rev = "0f4bd9776cfd0fd2a394a4b1991630698e4fdc2d";
+      sha256 = "18n1xbs59s71zvavjcg7an8y5dhq6agrb2rc2j6y48y7na0kf8sf";
     };
     dependencies = [];
 
@@ -1730,11 +1741,11 @@ rec {
   };
 
   vim-gitgutter = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-gitgutter-2016-06-09";
+    name = "vim-gitgutter-2016-06-27";
     src = fetchgit {
       url = "git://github.com/airblade/vim-gitgutter";
-      rev = "09b9144002e938844df74f48ac72c1e3118e7d39";
-      sha256 = "10yyzib9znhqz298h3f67n9hz1fvm5yk6958bisimf9bg9w9rn1v";
+      rev = "b5f23e986747a6f4b1dc1196d2a5bd3dc7c8c2b6";
+      sha256 = "0z3f4yamkv3fmqnrr00j86xwrrfv199fiabpjqnk583b5kcbn90j";
     };
     dependencies = [];
 
@@ -1774,33 +1785,33 @@ rec {
   };
 
   vim-signature = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-signature-2016-06-09";
+    name = "vim-signature-2016-07-09";
     src = fetchgit {
       url = "git://github.com/kshenoy/vim-signature";
-      rev = "782ed5284ddf6ef3695f8b3314facd8c6113c725";
-      sha256 = "1s6n6qdn3f89h4gi8nflz84y9l59rrfn43rgn257kxsq0df0kmx2";
+      rev = "e2fca5f3b0474e7174e08b32c89634ac6f53bfe2";
+      sha256 = "0ik68qzx0pqsvsla6y593cwab4iw3xy1sl8kb4kq89lhvv1wgxmg";
     };
     dependencies = [];
 
   };
 
   vim-signify = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-signify-2016-06-08";
+    name = "vim-signify-2016-06-19";
     src = fetchgit {
       url = "git://github.com/mhinz/vim-signify";
-      rev = "cb975a8c6fbf08385eba8d0bbc1168ae53be460a";
-      sha256 = "00vi90zfkx94i0n0x4fjiz6bxfl2whxsclp8zxd4mivcqsw500jy";
+      rev = "76bde232d163c99a8e72b517d8ef770b0d79849e";
+      sha256 = "1yzq5ll7yx38872mpph976mn9yqyyypfif5vjhgvlk4l2an18qk6";
     };
     dependencies = [];
 
   };
 
   vim-snippets = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vim-snippets-2016-06-09";
+    name = "vim-snippets-2016-07-06";
     src = fetchgit {
       url = "git://github.com/honza/vim-snippets";
-      rev = "e840b91a4e86cda657519eba00766a29a614e1e2";
-      sha256 = "11pns71zpg9nh3mf2g24k194371jhkkv7b3in8r9av107ijky3sb";
+      rev = "d285c86221e917d13c6cbf89f347627ea9fe1796";
+      sha256 = "1dxzl2d9kxn7vhxpz0shd2qsn6mgvbj9gn9rym8j9v4wjn2zvqws";
     };
     dependencies = [];
 
@@ -1840,11 +1851,11 @@ rec {
   };
 
   vinegar = buildVimPluginFrom2Nix { # created by nix#NixDerivation
-    name = "vinegar-2016-01-30";
+    name = "vinegar-2016-06-30";
     src = fetchgit {
       url = "git://github.com/tpope/vim-vinegar";
-      rev = "75fc3824bc09053f22735d6726c5cfd614c15642";
-      sha256 = "19jl854wylmfdr9k4bfyffkz8bl4vpx1znnxzx0qj7cz2s3i9z0r";
+      rev = "bd7f7b7929260072864462c04dde3b9f4c5e0d23";
+      sha256 = "09shzlc9dagqlb5558nvm33b4bkk9cy34kp7zgnybphyy72wf31h";
     };
     dependencies = [];
 
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 7069a8021f35..b2a2a542bf5e 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -22,7 +22,6 @@
 "github:Chiel92/vim-autoformat"
 "github:LnL7/vim-nix"
 "github:Shougo/deoplete.nvim"
-"github:zchee/deoplete-jedi"
 "github:ajh17/Spacegray.vim"
 "github:alvan/vim-closetag"
 "github:ap/vim-css-color"
@@ -38,6 +37,7 @@
 "github:esneider/YUNOcommit.vim"
 "github:fatih/vim-go"
 "github:flazz/vim-colorschemes"
+"github:floobits/floobits-neovim"
 "github:frigoeu/psc-ide-vim"
 "github:google/vim-jsonnet"
 "github:hecal3/vim-leader-guide"
@@ -102,6 +102,7 @@
 "github:vim-scripts/wombat256.vim"
 "github:wakatime/vim-wakatime"
 "github:wincent/command-t"
+"github:zchee/deoplete-jedi"
 "goyo"
 "matchit.zip"
 "pathogen"
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index f39d7093c73b..acb5b4fcbe1e 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -330,7 +330,7 @@ rec {
   vimHelpTags = ''
   vimHelpTags(){
     if [ -d "$1/doc" ]; then
-      ${vim}/bin/vim -N -u NONE -i NONE -n -e -s -c "helptags $1/doc" +quit!
+      ${vim}/bin/vim -N -u NONE -i NONE -n -E -s -c "helptags $1/doc" +quit! || echo "docs to build failed"
     fi
   }
   '';
diff --git a/pkgs/os-specific/linux/batman-adv/alfred.nix b/pkgs/os-specific/linux/batman-adv/alfred.nix
index a461a722915f..b58beab94b36 100644
--- a/pkgs/os-specific/linux/batman-adv/alfred.nix
+++ b/pkgs/os-specific/linux/batman-adv/alfred.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, gpsd, libcap }:
 
 let
-  ver = "2016.1";
+  ver = "2016.2";
 in
 stdenv.mkDerivation rec {
   name = "alfred-${ver}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
-    sha256 = "02963m1vk9skmvdyd0j3281wslb9cwzr7bdx4dg2wxyncgrgl3ky";
+    sha256 = "19025arn926lhn54ss4gmmdss9z4a3yxk4ja5kyv17mi5i4yg7j6";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/batman-adv/batctl.nix b/pkgs/os-specific/linux/batman-adv/batctl.nix
index 2c8eea331cdb..5dafc3d2668b 100644
--- a/pkgs/os-specific/linux/batman-adv/batctl.nix
+++ b/pkgs/os-specific/linux/batman-adv/batctl.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, libnl }:
 
 let
-  ver = "2016.1";
+  ver = "2016.2";
 in
 stdenv.mkDerivation rec {
   name = "batctl-${ver}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/batman-adv-${ver}/${name}.tar.gz";
-    sha256 = "1j83dzz12c0k7qqd01vmng64h1iq36c86r8ybp8vhb6x5mxkjm68";
+    sha256 = "0bf5zlpwxvq4blcgpwjgh8ms4lfapwjpjl4sczwf3i1rv7f4p05q";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index 6cf0883a464f..0b8a70cb9762 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -2,14 +2,14 @@
 
 #assert stdenv.lib.versionOlder kernel.version "3.17";
 
-let base = "batman-adv-2016.1"; in
+let base = "batman-adv-2016.2"; in
 
 stdenv.mkDerivation rec {
   name = "${base}-${kernel.version}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/${base}/${base}.tar.gz";
-    sha256 = "0wm0v82kdkli713q4gcq21wbd6mirqmc7xva3kmc3z6kvwlc53ai";
+    sha256 = "0pj6jans75pxw9arp1747kmmk72zbc2vgkf2a0w565pj98x1nlk1";
   };
 
   preBuild = ''
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 660c0bc0572e..37ad34d8b642 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pkgconfig, cmake
 
 # dependencies
-, glib
+, glib, libXinerama
 
 # optional features without extra dependencies
 , mpdSupport          ? true
@@ -62,13 +62,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "conky-${version}";
-  version = "1.10.1";
+  version = "1.10.3";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "0k93nqx8mxz2z84zzwpwfp7v7dwxwg1di1a2yb137lk7l157azw6";
+    sha256 = "0sa2jl159jk5p2hr37adwq84m0ynva7v87qrwj1xv0kw8l4qzhjs";
   };
 
   postPatch = ''
@@ -87,7 +87,7 @@ stdenv.mkDerivation rec {
 
   NIX_LDFLAGS = "-lgcc_s";
 
-  buildInputs = [ pkgconfig glib cmake ]
+  buildInputs = [ pkgconfig glib cmake libXinerama ]
     ++ optionals docsSupport        [ docbook2x libxslt man less ]
     ++ optional  ncursesSupport     ncurses
     ++ optional  x11Support         xlibsWrapper
diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
new file mode 100644
index 000000000000..7a047e9f2338
--- /dev/null
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, kernel, kmod }:
+
+stdenv.mkDerivation rec {
+  name = "ena-20160629-${kernel.version}";
+
+  src = fetchFromGitHub {
+    owner = "amzn";
+    repo = "amzn-drivers";
+    rev = "b594ac1ea9e0c70e8e95803a0cfd9f5f06ac097e";
+    sha256 = "03w6xgv3lfn28n38mj9cdi3px5zjyrbxnflpd3ggivkv6grf9fp7";
+  };
+
+  configurePhase =
+    ''
+      cd kernel/linux/ena
+      substituteInPlace Makefile --replace '/lib/modules/$(BUILD_KERNEL)' ${kernel.dev}/lib/modules/${kernel.modDirVersion}
+    '';
+
+  installPhase =
+    ''
+      strip -S ena.ko
+      dest=$out/lib/modules/${kernel.modDirVersion}/misc
+      mkdir -p $dest
+      cp ena.ko $dest/
+      xz $dest/ena.ko
+    '';
+
+  meta = {
+    description = "Amazon Elastic Network Adapter (ENA) driver for Linux";
+    homepage = https://github.com/amzn/amzn-drivers;
+    license = lib.licenses.gpl2;
+    maintainers = [ lib.maintainers.eelco ];
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 1e9f2cb6a653..cac102351b35 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -10,7 +10,7 @@
     `versionAtLeast`.
 
   Then do test your change by building all the kernels (or at least
-  their configs) in nixpkgs or else you will guarantee lots and lots
+  their configs) in Nixpkgs or else you will guarantee lots and lots
   of pain to users trying to switch to an older kernel because of some
   hardware problems with a new one.
 
@@ -42,6 +42,12 @@ with stdenv.lib;
   SCHEDSTATS n
   DETECT_HUNG_TASK y
 
+  # Bump the maximum number of CPUs to support systems like EC2 x1.*
+  # instances and Xeon Phi.
+  ${optionalString (stdenv.system == "x86_64-linux") ''
+    NR_CPUS 384
+  ''}
+
   # Unix domain sockets.
   UNIX y
 
@@ -61,6 +67,7 @@ with stdenv.lib;
   ${optionalString (versionOlder version "3.10") ''
     USB_SUSPEND y
   ''}
+  PM_WAKELOCKS y
 
   # Support drivers that need external firmware.
   STANDALONE n
@@ -92,9 +99,6 @@ with stdenv.lib;
   DONGLE y # Serial dongle support
   HIPPI y
   MTD_COMPLEX_MAPPINGS y # needed for many devices
-  ${optionalString (versionOlder version "3.2") ''
-    NET_POCKET y # enable pocket and portable adapters
-  ''}
   SCSI_LOWLEVEL y # enable lots of SCSI devices
   SCSI_LOWLEVEL_PCMCIA y
   SCSI_SAS_ATA y  # added to enable detection of hard drive
@@ -131,9 +135,7 @@ with stdenv.lib;
   HOSTAP_FIRMWARE_NVRAM? y
   ATH9K_PCI? y # Detect Atheros AR9xxx cards on PCI(e) bus
   ATH9K_AHB? y # Ditto, AHB bus
-  ${optionalString (versionAtLeast version "3.2") ''
-    B43_PHY_HT? y
-  ''}
+  B43_PHY_HT? y
   BCMA_HOST_PCI? y
 
   # Enable various FB devices.
@@ -151,7 +153,7 @@ with stdenv.lib;
   FB_VESA y
   FRAMEBUFFER_CONSOLE y
   FRAMEBUFFER_CONSOLE_ROTATION y
-  ${optionalString (versionOlder version "3.9" || stdenv.system == "i686-linux") ''
+  ${optionalString (stdenv.system == "i686-linux") ''
     FB_GEODE y
   ''}
 
@@ -162,11 +164,7 @@ with stdenv.lib;
   ''}
   # Allow specifying custom EDID on the kernel command line
   DRM_LOAD_EDID_FIRMWARE y
-  ${optionalString (versionOlder version "3.9") ''
-    DRM_RADEON_KMS? y
-  ''}
-  # Hybrid graphics support
-  VGA_SWITCHEROO y
+  VGA_SWITCHEROO y # Hybrid graphics support
 
   # Sound.
   SND_DYNAMIC_MINORS y
@@ -225,9 +223,7 @@ with stdenv.lib;
     NFSD_V4_SECURITY_LABEL y
   ''}
   NFS_FSCACHE y
-  ${optionalString (versionAtLeast version "3.6") ''
-    NFS_SWAP y
-  ''}
+  NFS_SWAP y
   NFS_V3_ACL y
   ${optionalString (versionAtLeast version "3.11") ''
     NFS_V4_1 y  # NFSv4.1 client support
@@ -259,6 +255,7 @@ with stdenv.lib;
   DEBUG_SET_MODULE_RONX? y # Detect writes to read-only module pages
 
   # Security related features.
+  RANDOMIZE_BASE y
   STRICT_DEVMEM y # Filter access to /dev/mem
   SECURITY_SELINUX_BOOTPARAM_VALUE 0 # Disable SELinux by default
   DEVKMEM n # Disable /dev/kmem
@@ -297,34 +294,31 @@ with stdenv.lib;
   ${optionalString (versionOlder version "4.4") ''
     B43_PCMCIA? y
   ''}
-  BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
-  BLK_DEV_IDEACPI y # IDE ACPI support
   BLK_DEV_INTEGRITY y
   BSD_PROCESS_ACCT_V3 y
   BT_HCIUART_BCSP? y
   BT_HCIUART_H4? y # UART (H4) protocol support
   BT_HCIUART_LL? y
-  ${optionalString (versionAtLeast version "3.4") ''
-    BT_RFCOMM_TTY? y # RFCOMM TTY support
-  ''}
+  BT_RFCOMM_TTY? y # RFCOMM TTY support
+  CLEANCACHE? y
   CRASH_DUMP? n
-  ${optionalString (versionOlder version "3.1") ''
-    DMAR? n # experimental
-  ''}
   DVB_DYNAMIC_MINORS? y # we use udev
-  ${optionalString (versionAtLeast version "3.3") ''
-    EFI_STUB y # EFI bootloader in the bzImage itself
-  ''}
+  EFI_STUB y # EFI bootloader in the bzImage itself
   FHANDLE y # used by systemd
+  FRONTSWAP y
   FUSION y # Fusion MPT device support
-  IDE_GD_ATAPI y # ATAPI floppy support
+  IDE n # deprecated IDE support
+  ${optionalString (versionAtLeast version "4.3") ''
+    IDLE_PAGE_TRACKING y
+  ''}
   IRDA_ULTRA y # Ultra (connectionless) protocol
   JOYSTICK_IFORCE_232? y # I-Force Serial joysticks and wheels
   JOYSTICK_IFORCE_USB? y # I-Force USB joysticks and wheels
   JOYSTICK_XPAD_FF? y # X-Box gamepad rumble support
   JOYSTICK_XPAD_LEDS? y # LED Support for Xbox360 controller 'BigX' LED
+  KEXEC_FILE y
+  KEXEC_JUMP y
   LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
-  LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
   LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
   LOGO n # not needed
   MEDIA_ATTACH y
@@ -343,12 +337,9 @@ with stdenv.lib;
   PPP_MULTILINK y # PPP multilink support
   PPP_FILTER y
   REGULATOR y # Voltage and Current Regulator Support
-  ${optionalString (versionAtLeast version "3.6") ''
-    RC_DEVICES? y # Enable IR devices
-  ''}
-  ${optionalString (versionAtLeast version "3.10") ''
-    RT2800USB_RT55XX y
-  ''}
+  RC_DEVICES? y # Enable IR devices
+  RT2800USB_RT55XX y
+  SCHED_AUTOGROUP y
   SCSI_LOGGING y # SCSI logging facility
   SERIAL_8250 y # 8250/16550 and compatible serial support
   SLIP_COMPRESSED y # CSLIP compressed headers
@@ -363,6 +354,9 @@ with stdenv.lib;
   ''}
   USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
   USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling
+  ${optionalString (versionAtLeast version "4.3") ''
+    USERFAULTFD y
+  ''}
   X86_CHECK_BIOS_CORRUPTION y
   X86_MCE y
 
@@ -373,16 +367,14 @@ with stdenv.lib;
   NAMESPACES? y #  Required by 'unshare' used by 'nixos-install'
   RT_GROUP_SCHED? y
   CGROUP_DEVICE? y
-  ${if versionAtLeast version "3.6" then ''
-    MEMCG y
-    MEMCG_SWAP y
-  '' else ''
-    CGROUP_MEM_RES_CTLR y
-    CGROUP_MEM_RES_CTLR_SWAP y
-  ''}
+  MEMCG y
+  MEMCG_SWAP y
   ${optionalString (versionOlder version "4.7") "DEVPTS_MULTIPLE_INSTANCES y"}
   BLK_DEV_THROTTLING y
   CFQ_GROUP_IOSCHED y
+  ${optionalString (versionAtLeast version "4.3") ''
+    CGROUP_PIDS y
+  ''}
 
   # Enable staging drivers.  These are somewhat experimental, but
   # they generally don't hurt.
@@ -400,9 +392,7 @@ with stdenv.lib;
   FTRACE_SYSCALLS y
   SCHED_TRACER y
   STACK_TRACER y
-  ${optionalString (versionAtLeast version "3.10") ''
-    UPROBE_EVENT y
-  ''}
+  UPROBE_EVENT y
   ${optionalString (versionAtLeast version "4.4") ''
     BPF_SYSCALL y
     BPF_EVENTS y
@@ -414,28 +404,18 @@ with stdenv.lib;
   DEVTMPFS y
 
   # Easier debugging of NFS issues.
-  ${optionalString (versionAtLeast version "3.4") ''
-    SUNRPC_DEBUG y
-  ''}
+  SUNRPC_DEBUG y
 
   # Virtualisation.
   PARAVIRT? y
-  ${if versionAtLeast version "3.10" then ''
-    HYPERVISOR_GUEST y
-  '' else ''
-    PARAVIRT_GUEST? y
-  ''}
+  HYPERVISOR_GUEST y
+  PARAVIRT_SPINLOCKS? y
   KVM_APIC_ARCHITECTURE y
   KVM_ASYNC_PF y
-  ${optionalString (versionOlder version "3.7") ''
-    KVM_CLOCK? y
-  ''}
   ${optionalString (versionAtLeast version "4.0") ''
     KVM_COMPAT? y
   ''}
-  ${optionalString (versionAtLeast version "3.10") ''
-    KVM_DEVICE_ASSIGNMENT? y
-  ''}
+  KVM_DEVICE_ASSIGNMENT? y
   ${optionalString (versionAtLeast version "4.0") ''
     KVM_GENERIC_DIRTYLOG_READ_PROTECT y
   ''}
@@ -470,28 +450,22 @@ with stdenv.lib;
   ${optionalString (!stdenv.is64bit) ''
     HIGHMEM64G? y # We need 64 GB (PAE) support for Xen guest support.
   ''}
-  ${optionalString (versionAtLeast version "3.9" && stdenv.is64bit) ''
+  ${optionalString (stdenv.is64bit) ''
     VFIO_PCI_VGA y
   ''}
   VIRT_DRIVERS y
 
   # Media support.
-  ${optionalString (versionAtLeast version "3.6") ''
-    MEDIA_DIGITAL_TV_SUPPORT y
-    MEDIA_CAMERA_SUPPORT y
-    MEDIA_RC_SUPPORT y
-  ''}
-  ${optionalString (versionAtLeast version "3.7") ''
-    MEDIA_USB_SUPPORT y
-    ${optionalString (!(features.chromiumos or false)) ''
-      MEDIA_PCI_SUPPORT y
-    ''}
+  MEDIA_DIGITAL_TV_SUPPORT y
+  MEDIA_CAMERA_SUPPORT y
+  MEDIA_RC_SUPPORT y
+  MEDIA_USB_SUPPORT y
+  ${optionalString (!(features.chromiumos or false)) ''
+    MEDIA_PCI_SUPPORT y
   ''}
 
   # Our initrd init uses shebang scripts, so can't be modular.
-  ${optionalString (versionAtLeast version "3.10") ''
-    BINFMT_SCRIPT y
-  ''}
+  BINFMT_SCRIPT y
 
   # For systemd-binfmt
   BINFMT_MISC? y
@@ -506,10 +480,9 @@ with stdenv.lib;
   TRANSPARENT_HUGEPAGE_MADVISE? y
 
   # zram support (e.g for in-memory compressed swap).
-  ${optionalString (versionAtLeast version "3.4") ''
-    ZSMALLOC y
-  ''}
+  ZSMALLOC y
   ZRAM m
+  ZSWAP y
 
   # Enable PCIe and USB for the brcmfmac driver
   BRCMFMAC_USB? y
diff --git a/pkgs/os-specific/linux/kernel/linux-4.6.nix b/pkgs/os-specific/linux/kernel/linux-4.6.nix
index d5ea9039891e..c0849942f4f2 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.6.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.6.3";
+  version = "4.6.4";
   extraMeta.branch = "4.6";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0rq9cciabw5gfi2z30fcwh6z4zm2fgp938xmblfw59hyjj98h60k";
+    sha256 = "0zpz29hgwdwkil6rakn08bdq77qjcz8q18qlkfc43s84f4fd8s45";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-grsecurity.nix b/pkgs/os-specific/linux/kernel/linux-grsecurity.nix
index d5ea9039891e..c0849942f4f2 100644
--- a/pkgs/os-specific/linux/kernel/linux-grsecurity.nix
+++ b/pkgs/os-specific/linux/kernel/linux-grsecurity.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.6.3";
+  version = "4.6.4";
   extraMeta.branch = "4.6";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0rq9cciabw5gfi2z30fcwh6z4zm2fgp938xmblfw59hyjj98h60k";
+    sha256 = "0zpz29hgwdwkil6rakn08bdq77qjcz8q18qlkfc43s84f4fd8s45";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 27e3681fdbae..37e5da5a9050 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.7-rc6";
-  modDirVersion = "4.7.0-rc6";
+  version = "4.7-rc7";
+  modDirVersion = "4.7.0-rc7";
   extraMeta.branch = "4.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "1kli8m6xkpdp45ryx6aq894q5dvrl1s7h3g1akk0l7xp6grshk8r";
+    sha256 = "11c87rhxlrmag9hhg1m8zfff0d52yrzvhyjj9dxfa3nmxj4sfbb7";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 103e22355321..a5de48298e11 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -93,9 +93,9 @@ rec {
   grsecurity_4_4 = throw "grsecurity stable is no longer supported";
 
   grsecurity_testing = grsecPatch
-    { kver   = "4.6.3";
-      grrev  = "201607070721";
-      sha256 = "1858zc77x1qbwwfhjlmffd21w4adsw9f3sycg6bksw2jxrhlzww5";
+    { kver   = "4.6.4";
+      grrev  = "201607112205";
+      sha256 = "16j01qqa7yi5yvli1lkl8ffybhy4697nyi18lbl5329zd09xq2ww";
     };
 
   # This patch relaxes grsec constraints on the location of usermode helpers,
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
new file mode 100644
index 000000000000..5328743d8b8b
--- /dev/null
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchgit, libmnl, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "wireguard-${version}";
+  version = "20160708";
+
+  src = fetchgit {
+    url    = "https://git.zx2c4.com/WireGuard";
+    rev    = "dcc2583fe0618931e51aedaeeddde356d123acb2";
+    sha256 = "1ciyjpp8c3fv95y1cypk9qyqynp8cqyh2676afq2hd33110d37ni";
+  };
+
+  preConfigure = ''
+    cd src
+    sed -i /depmod/d Makefile
+  '';
+  
+  buildInputs = [ libmnl ];
+
+  KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
+
+  makeFlags = [ 
+    "DESTDIR=$(out)" 
+    "PREFIX=/"
+    "INSTALL_MOD_PATH=$(out)" 
+  ];
+
+  meta = with stdenv.lib; {
+    homepage    = https://www.wireguard.io/;
+    description = "Fast, modern, secure VPN tunnel";
+    license     = licenses.gpl2;
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch b/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch
index 3a38340f43a3..a8721a3e7029 100644
--- a/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch
+++ b/pkgs/servers/gpsd/0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch
@@ -1,4 +1,4 @@
-From d7e56abcae8bcb85dc935e94418a2f0e9956941b Mon Sep 17 00:00:00 2001
+From e08583ddb8445241c38c88d828271be908d52f9f Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
 Date: Mon, 17 Feb 2014 20:52:50 +0000
 Subject: [PATCH 1/2] Import LD_LIBRARY_PATH to allow running 'scons check'
@@ -9,17 +9,17 @@ Subject: [PATCH 1/2] Import LD_LIBRARY_PATH to allow running 'scons check'
  1 file changed, 1 insertion(+)
 
 diff --git a/SConstruct b/SConstruct
-index 14e2f59..86b94bc 100644
+index fe444a2..f73c87e 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -215,6 +215,7 @@ import_env = (
-     'PKG_CONFIG_LIBDIR',      # Pass more environment variables to pkg-config (required for crossbuilds)
+@@ -220,6 +220,7 @@ import_env = (
      'STAGING_DIR',     # Required by the OpenWRT and CeroWrt builds.
      'STAGING_PREFIX',  # Required by the OpenWRT and CeroWrt builds.
+     'WRITE_PAD',       # So we can test WRITE_PAD values on the fly.
 +    'LD_LIBRARY_PATH', # Allows running 'scons check' without 'chrpath'
      )
  envs = {}
  for var in import_env:
 -- 
-1.9.0
+2.9.0
 
diff --git a/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch b/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch
new file mode 100644
index 000000000000..58ae754ecfb5
--- /dev/null
+++ b/pkgs/servers/gpsd/0001-Use-pkgconfig-for-dbus-library.patch
@@ -0,0 +1,31 @@
+From b4ed6e9e89e3b7d57e5de9f2c1987a489bb5628c Mon Sep 17 00:00:00 2001
+From: Alexey Shmalko <rasen.dubi@gmail.com>
+Date: Sat, 9 Jul 2016 20:54:05 +0300
+Subject: [PATCH] Use pkgconfig for dbus library
+
+Without this, gcc can't find library path for the dbus.
+
+This is already fixed upstream, so the patch shouldn't be necessary with
+the next version of gpsd.
+---
+ SConstruct | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 0d4b29d..d8624b0 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -586,8 +586,8 @@ else:
+ 
+     if env['dbus_export'] and config.CheckPKG('dbus-1'):
+         confdefs.append("#define HAVE_DBUS 1\n")
+-        dbusflags = ["-ldbus-1"]
+-        env.MergeFlags(pkg_config("dbus-1"))
++        dbusflags = pkg_config("dbus-1")
++        env.MergeFlags(dbusflags)
+     else:
+         confdefs.append("/* #undef HAVE_DBUS */\n")
+         dbusflags = []
+-- 
+2.9.0
+
diff --git a/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch b/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch
index f12d7a52ba0c..3e387167d6fb 100644
--- a/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch
+++ b/pkgs/servers/gpsd/0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch
@@ -1,4 +1,4 @@
-From aed93b6ada5b9b76b85d11d9bad732ca005295af Mon Sep 17 00:00:00 2001
+From 21e5295a633c8c450629106c4603b78b2de7d786 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
 Date: Sat, 15 Mar 2014 15:08:01 +0100
 Subject: [PATCH 2/2] Import XML_CATALOG_FILES to be able to validate the
@@ -12,17 +12,17 @@ download DTD's and builders don't have network access...
  1 file changed, 1 insertion(+)
 
 diff --git a/SConstruct b/SConstruct
-index 86b94bc..a0b3d25 100644
+index f73c87e..0d4b29d 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -216,6 +216,7 @@ import_env = (
-     'STAGING_DIR',     # Required by the OpenWRT and CeroWrt builds.
+@@ -221,6 +221,7 @@ import_env = (
      'STAGING_PREFIX',  # Required by the OpenWRT and CeroWrt builds.
+     'WRITE_PAD',       # So we can test WRITE_PAD values on the fly.
      'LD_LIBRARY_PATH', # Allows running 'scons check' without 'chrpath'
 +    'XML_CATALOG_FILES', # Enables validating the manual with 'xmlto' using nix build system
      )
  envs = {}
  for var in import_env:
 -- 
-1.9.0
+2.9.0
 
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index 17325ccb2914..596176d939d1 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -1,50 +1,54 @@
-{ fetchurl, stdenv, scons, pythonFull, pkgconfig, dbus, dbus_glib
-, ncurses, libX11, libXt, libXpm, libXaw, libXext, makeWrapper
+{ fetchurl, stdenv, scons, pkgconfig, dbus, dbus_glib
+, ncurses, libX11, libXt, libXpm, libXaw, libXext
 , libusb1, docbook_xml_dtd_412, docbook_xsl, bc
 , libxslt, xmlto, gpsdUser ? "gpsd", gpsdGroup ? "dialout"
+, pythonPackages
 }:
 
-# TODO: the 'xgps' program doesn't work: "ImportError: No module named gobject"
 # TODO: put the X11 deps behind a guiSupport parameter for headless support
 
 stdenv.mkDerivation rec {
-  name = "gpsd-3.10";
+  name = "gpsd-3.16";
 
   src = fetchurl {
     url = "http://download-mirror.savannah.gnu.org/releases/gpsd/${name}.tar.gz";
-    sha256 = "0823hl5zgwnbgm0fq3i4z34lv76cpj0k6m0zjiygiyrxrz0w4vvh";
+    sha256 = "0a90ph4qrlz5kkcz2mwkfk3cmwy9fmglp94znz2y0gsd7bqrlmq3";
   };
 
   nativeBuildInputs = [
-    scons makeWrapper pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
-    pythonFull
+    scons pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
+    pythonPackages.python
+    pythonPackages.wrapPython
   ];
 
   buildInputs = [
-    pythonFull dbus dbus_glib ncurses libX11 libXt libXpm libXaw libXext
+    pythonPackages.python dbus dbus_glib ncurses libX11 libXt libXpm libXaw libXext
     libxslt libusb1
   ];
 
+  pythonPath = [
+    pythonPackages.pygobject
+    pythonPackages.pygtk
+  ];
+
   patches = [
     ./0001-Import-LD_LIBRARY_PATH-to-allow-running-scons-check-.patch
     ./0002-Import-XML_CATALOG_FILES-to-be-able-to-validate-the-.patch
+
+    # TODO: remove the patch with the next release
+    ./0001-Use-pkgconfig-for-dbus-library.patch
   ];
 
   # - leapfetch=no disables going online at build time to fetch leap-seconds
   #   info. See <gpsd-src>/build.txt for more info.
-  # - chrpath=no stops the build from using 'chrpath' (which we don't have).
-  #   'chrpath' is used to be able to run the tests from the source tree, but
-  #   we use $LD_LIBRARY_PATH instead.
   buildPhase = ''
     patchShebangs .
-    mkdir -p "$out"
-    sed -e "s|python_lib_dir = .*|python_lib_dir = \"$out/lib/${pythonFull.libPrefix}/site-packages\"|" -i SConstruct
+    sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConstruct
     scons prefix="$out" leapfetch=no gpsd_user=${gpsdUser} gpsd_group=${gpsdGroup} \
-        systemd=yes udevdir="$out/lib/udev" chrpath=no
+        systemd=yes udevdir="$out/lib/udev" \
+        python_libdir="$out/lib/${pythonPackages.python.libPrefix}/site-packages"
   '';
 
-  doCheck = false;
-
   checkPhase = ''
     export LD_LIBRARY_PATH="$PWD"
     scons check
@@ -52,12 +56,13 @@ stdenv.mkDerivation rec {
 
   # TODO: the udev rules file and the hotplug script need fixes to work on NixOS
   installPhase = ''
-    scons install
     mkdir -p "$out/lib/udev/rules.d"
-    scons udev-install
+    scons install udev-install
   '';
 
-  postInstall = "wrapPythonPrograms";
+  postFixup = ''
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+  '';
 
   meta = with stdenv.lib; {
     description = "GPS service daemon";
@@ -82,6 +87,6 @@ stdenv.mkDerivation rec {
     homepage = http://catb.org/gpsd/;
     license = "BSD-style";
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor rasendubi ];
   };
 }
diff --git a/pkgs/servers/http/gatling/default.nix b/pkgs/servers/http/gatling/default.nix
index 3901d24edd56..549beec674cc 100644
--- a/pkgs/servers/http/gatling/default.nix
+++ b/pkgs/servers/http/gatling/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libowfat, zlib, openssl, polarssl }:
+{ stdenv, fetchurl, libowfat, zlib, openssl }:
 
 let
   version = "0.13";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0icjx20ws8gqxgpm77dx7p9zcwi1fv162in6igx04rmnyzyla8dl";
   };
 
-  buildInputs = [  libowfat zlib openssl polarssl ];
+  buildInputs = [  libowfat zlib openssl.dev ];
 
   configurePhase = ''
     substituteInPlace Makefile --replace "/usr/local" "$out"
diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix
index c522f442e2f0..394a20420c73 100644
--- a/pkgs/servers/http/nginx/default.nix
+++ b/pkgs/servers/http/nginx/default.nix
@@ -9,11 +9,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "nginx-${version}";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "http://nginx.org/download/nginx-${version}.tar.gz";
-    sha256 = "0kdyqa5xaxvhz6y75ixs05mzygk3kszzdq5h0gnlrg35vp1lgmlf";
+    sha256 = "00d8hxj8453c7989qd7z4f1mjp0k3ib8k29i1qyf11b4ar35ilqz";
   };
 
 
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 353647f15b30..f4da2f6fcda1 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -8,13 +8,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "fish-${version}";
-  version = "2.3.0";
+  version = "2.3.1";
 
   patches = [ ./etc_config.patch ];
 
   src = fetchurl {
     url = "http://fishshell.com/files/${version}/${name}.tar.gz";
-    sha256 = "1ralmp7lavdl0plc09ppm232aqsn0crxx6m3hgaa06ibam3sqawi";
+    sha256 = "0r46p64lg6da3v6chsa4gisvl04kd3rpy60yih8r870kbp9wm2ij";
   };
 
   buildInputs = [ ncurses libiconv pcre2 ];
diff --git a/pkgs/shells/oh-my-zsh/default.nix b/pkgs/shells/oh-my-zsh/default.nix
index 5191e7cd45cb..5a1c74fe4421 100644
--- a/pkgs/shells/oh-my-zsh/default.nix
+++ b/pkgs/shells/oh-my-zsh/default.nix
@@ -7,12 +7,12 @@
 
 stdenv.mkDerivation rec {
   name = "oh-my-zsh-git-${version}";
-  version = "2016-06-18";
+  version = "2016-07-05";
 
   src = fetchgit {
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    rev = "d012402dada1ec7d8796f2f4b04744d817137b4d";
-    sha256 = "1965k91jdhjpy2dkklzwcxmq6qqjc7cnwl8x670g51jr4ihawkx1";
+    rev = "644bc641ad48c74c88631d79d48ec9b6f3f5a3e5";
+    sha256 = "1lmblfcd68pnc38bn6yjqs7sap5qinj37xv881a1rx4q0w38an07";
   };
 
   phases = "installPhase";
diff --git a/pkgs/tools/inputmethods/fcitx/default.nix b/pkgs/tools/inputmethods/fcitx/default.nix
index ba3a3f76ed93..69e4425d8c3b 100644
--- a/pkgs/tools/inputmethods/fcitx/default.nix
+++ b/pkgs/tools/inputmethods/fcitx/default.nix
@@ -1,51 +1,11 @@
-{ stdenv, fetchurl, pkgconfig, cmake, intltool, gettext
-, libxml2, enchant, isocodes, icu, libpthreadstubs
-, pango, cairo, libxkbfile, libXau, libXdmcp, libxkbcommon
-, dbus, gtk2, gtk3, qt4, kde5
-}:
+{ callPackage, plugins ? [] }:
 
-stdenv.mkDerivation rec {
-  name = "fcitx-${version}";
-  version = "4.2.9.1";
-
-  src = fetchurl {
-    url    = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz";
-    sha256 = "0xvcmm4yi7kagf55d0yl3ql5ssbkm9410fwbz3kd988pchichdsk";
-  };
-
-  postUnpack = ''
-    ln -s ${kde5.extra-cmake-modules}/share/ECM/modules/ECMFindModuleHelpers.cmake \
-      $sourceRoot/cmake/
-  '';
-
-  patches = [ ./fcitx-ecm.patch ];
-
-  postPatch = ''
-    substituteInPlace src/frontend/qt/CMakeLists.txt \
-      --replace $\{QT_PLUGINS_DIR} $out/lib/qt4/plugins
-  '';
-
-  buildInputs = [
-    cmake enchant gettext isocodes pkgconfig intltool icu
-    libpthreadstubs libXau libXdmcp libxkbfile libxkbcommon libxml2
-    dbus cairo gtk2 gtk3 pango qt4
-  ];
-
-  cmakeFlags = ''
-    -DENABLE_QT_IM_MODULE=ON
-    -DENABLE_GTK2_IM_MODULE=ON
-    -DENABLE_GTK3_IM_MODULE=ON
-    -DENABLE_GIR=OFF
-    -DENABLE_OPENCC=OFF
-    -DENABLE_PRESAGE=OFF
-    -DENABLE_XDGAUTOSTART=OFF
-  '';
-
-  meta = with stdenv.lib; {
-    homepage    = "https://github.com/fcitx/fcitx";
-    description = "A Flexible Input Method Framework";
-    license     = licenses.gpl2;
-    platforms   = platforms.linux;
-    maintainers = with maintainers; [ ericsagnes ];
+let 
+  unwrapped = callPackage ./unwrapped.nix { };
+  wrapped   = callPackage ./wrapper.nix {
+    plugins = plugins;
+    fcitx   = unwrapped;
   };
-}
+in if plugins == [] 
+   then unwrapped
+   else wrapped
diff --git a/pkgs/tools/inputmethods/fcitx/unwrapped.nix b/pkgs/tools/inputmethods/fcitx/unwrapped.nix
new file mode 100644
index 000000000000..ba3a3f76ed93
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx/unwrapped.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, cmake, intltool, gettext
+, libxml2, enchant, isocodes, icu, libpthreadstubs
+, pango, cairo, libxkbfile, libXau, libXdmcp, libxkbcommon
+, dbus, gtk2, gtk3, qt4, kde5
+}:
+
+stdenv.mkDerivation rec {
+  name = "fcitx-${version}";
+  version = "4.2.9.1";
+
+  src = fetchurl {
+    url    = "http://download.fcitx-im.org/fcitx/${name}_dict.tar.xz";
+    sha256 = "0xvcmm4yi7kagf55d0yl3ql5ssbkm9410fwbz3kd988pchichdsk";
+  };
+
+  postUnpack = ''
+    ln -s ${kde5.extra-cmake-modules}/share/ECM/modules/ECMFindModuleHelpers.cmake \
+      $sourceRoot/cmake/
+  '';
+
+  patches = [ ./fcitx-ecm.patch ];
+
+  postPatch = ''
+    substituteInPlace src/frontend/qt/CMakeLists.txt \
+      --replace $\{QT_PLUGINS_DIR} $out/lib/qt4/plugins
+  '';
+
+  buildInputs = [
+    cmake enchant gettext isocodes pkgconfig intltool icu
+    libpthreadstubs libXau libXdmcp libxkbfile libxkbcommon libxml2
+    dbus cairo gtk2 gtk3 pango qt4
+  ];
+
+  cmakeFlags = ''
+    -DENABLE_QT_IM_MODULE=ON
+    -DENABLE_GTK2_IM_MODULE=ON
+    -DENABLE_GTK3_IM_MODULE=ON
+    -DENABLE_GIR=OFF
+    -DENABLE_OPENCC=OFF
+    -DENABLE_PRESAGE=OFF
+    -DENABLE_XDGAUTOSTART=OFF
+  '';
+
+  meta = with stdenv.lib; {
+    homepage    = "https://github.com/fcitx/fcitx";
+    description = "A Flexible Input Method Framework";
+    license     = licenses.gpl2;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ ericsagnes ];
+  };
+}
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
index bde6ed54eed1..9a3e0b905e13 100644
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ b/pkgs/tools/misc/alarm-clock-applet/default.nix
@@ -8,6 +8,7 @@
 , libunique
 , intltool
 , gst_plugins ? with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly ]
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -35,17 +36,13 @@ stdenv.mkDerivation rec {
     libxml2
     libunique
     intltool
+    wrapGAppsHook
   ];
 
   propagatedUserEnvPkgs = [ gnome.GConf.out ];
 
   enableParallelBuilding = true;
 
-  preFixup = ''
-    wrapProgram $out/bin/alarm-clock-applet \
-      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
-  '';
-
   meta = with stdenv.lib; {
     homepage = http://alarm-clock.pseudoberries.com/;
     description = "A fully-featured alarm clock for your GNOME panel or equivalent";
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index deb915c9a5e1..46c056ef0c00 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -1,29 +1,36 @@
 { fetchgit
 , stdenv
 , enableXRandr ? true, xrandr ? null
-, enableDisper ? false, disper ? null
+, enableDisper ? true, disper ? null
+, python
 , xdpyinfo }:
 
 assert enableXRandr -> xrandr != null;
 assert enableDisper -> disper != null;
 
 let
-  rev = "4f5e2401ef";
+  # Revision and date taken from the legacy tree, which still
+  # supports disper:
+  # https://github.com/phillipberndt/autorandr/tree/legacy
+  rev = "59f6aec0bb72e26751ce285d079e085b7178e45d";
+  date = "20150127";
 in
   stdenv.mkDerivation {
-    name = "autorandr-${rev}";
+    name = "autorandr-${date}";
 
     src = fetchgit {
       inherit rev;
-      url = "https://github.com/wertarbyte/autorandr.git";
-      sha256 = "1x8agg6mf5jr0imw7dznr8kxyw970bf252bda9q7b0z4yksya2zd"; 
+      url = "https://github.com/phillipberndt/autorandr.git";
+      sha256 = "0mnggsp42477kbzwwn65gi8y0rydk10my9iahikvs6n43lphfa1f";
     };
 
     patchPhase = ''
       substituteInPlace "autorandr" \
         --replace "/usr/bin/xrandr" "${if enableXRandr then xrandr else "/nowhere"}/bin/xrandr" \
         --replace "/usr/bin/disper" "${if enableDisper then disper else "/nowhere"}/bin/disper" \
-        --replace "/usr/bin/xdpyinfo" "${xdpyinfo}/bin/xdpyinfo"
+        --replace "/usr/bin/xdpyinfo" "${xdpyinfo}/bin/xdpyinfo" \
+        --replace "which xxd" "false" \
+        --replace "python" "${python}/bin/python"
     '';
 
     installPhase = ''
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index eda2bfa0270d..b58ae6505dc9 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "cloc-${version}";
-  version = "1.68";
+  version = "1.70";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
     rev = "v${version}";
-    sha256 = "17n6w7rd17h4q4cnjg4hxcfpx4plp40gd58bdyig9lsfbn6xcjxj";
+    sha256 = "1abkfkjn4fxplq33cwqjmgxabk2x6ij2klqn0w4a0lj82a7xx10x";
   };
 
   sourceRoot = "cloc-v${version}-src/Unix";
diff --git a/pkgs/tools/misc/rcm/default.nix b/pkgs/tools/misc/rcm/default.nix
index 59eccbb1ab67..efc42ee73ec7 100644
--- a/pkgs/tools/misc/rcm/default.nix
+++ b/pkgs/tools/misc/rcm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "rcm-1.2.3";
+  name = "rcm-1.3.0";
 
   src = fetchurl {
-    url = https://thoughtbot.github.io/rcm/dist/rcm-1.2.3.tar.gz;
-    sha256 = "0gwpclbc152jkclj3w83s2snx3dcgljwr75q1z8czl3yar7d8bsh";
+    url = https://thoughtbot.github.io/rcm/dist/rcm-1.3.0.tar.gz;
+    sha256 = "ddcf638b367b0361d8e063c29fd573dbe1712d1b83e8d5b3a868e4aa45ffc847";
   };
  
   patches = [ ./fix-rcmlib-path.patch ];
diff --git a/pkgs/tools/misc/rcm/fix-rcmlib-path.patch b/pkgs/tools/misc/rcm/fix-rcmlib-path.patch
index 45bd32a2d2b0..e7d600d2a1f2 100644
--- a/pkgs/tools/misc/rcm/fix-rcmlib-path.patch
+++ b/pkgs/tools/misc/rcm/fix-rcmlib-path.patch
@@ -1,68 +1,48 @@
-*** rcm-1.2.3/bin/lsrc.in.orig	2014-05-09 04:57:39.000000000 -0700
---- rcm-1.2.3/bin/lsrc.in	2015-01-24 14:27:48.786595479 -0800
-***************
-*** 1,6 ****
-  #!@SHELL@
-  
-! : ${RCM_LIB:=$(dirname "$0")/../share/rcm}
-  . "$RCM_LIB/rcm.sh"
-  
-  pushdir() {
---- 1,6 ----
-  #!@SHELL@
-  
-! RCM_LIB=@rcm@/share/rcm
-  . "$RCM_LIB/rcm.sh"
-  
-  pushdir() {
-*** rcm-1.2.3/bin/mkrc.in.orig	2014-05-09 04:57:39.000000000 -0700
---- rcm-1.2.3/bin/mkrc.in	2015-01-24 14:27:48.786595479 -0800
-***************
-*** 1,6 ****
-  #!@SHELL@
-  
-! : ${RCM_LIB:=$(dirname "$0")/../share/rcm}
-  . "$RCM_LIB/rcm.sh"
-  
-  destination() {
---- 1,6 ----
-  #!@SHELL@
-  
-! RCM_LIB=@rcm@/share/rcm
-  . "$RCM_LIB/rcm.sh"
-  
-  destination() {
-*** rcm-1.2.3/bin/rcdn.in.orig	2014-05-09 04:57:39.000000000 -0700
---- rcm-1.2.3/bin/rcdn.in	2015-01-24 14:27:48.786595479 -0800
-***************
-*** 1,6 ****
-  #!@SHELL@
-  
-! : ${RCM_LIB:=$(dirname "$0")/../share/rcm}
-  . "$RCM_LIB/rcm.sh"
-  
-  remove_link() {
---- 1,6 ----
-  #!@SHELL@
-  
-! RCM_LIB=@rcm@/share/rcm
-  . "$RCM_LIB/rcm.sh"
-  
-  remove_link() {
-*** rcm-1.2.3/bin/rcup.in.orig	2014-05-09 04:57:39.000000000 -0700
---- rcm-1.2.3/bin/rcup.in	2015-01-24 14:27:48.786595479 -0800
-***************
-*** 1,6 ****
-  #!@SHELL@
-  
-! : ${RCM_LIB:=$(dirname "$0")/../share/rcm}
-  . "$RCM_LIB/rcm.sh"
-  
-  link_or_copy() {
---- 1,6 ----
-  #!@SHELL@
-  
-! RCM_LIB=@rcm@/share/rcm
-  . "$RCM_LIB/rcm.sh"
-  
-  link_or_copy() {
+diff --git a/bin/lsrc.in b/bin/lsrc.in
+index fcf5fbe..119d659 100755
+--- a/bin/lsrc.in
++++ b/bin/lsrc.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+ 
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+ 
+ pushdir() {
+diff --git a/bin/mkrc.in b/bin/mkrc.in
+index da22a63..a6bb0ad 100755
+--- a/bin/mkrc.in
++++ b/bin/mkrc.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+ 
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+ 
+ destination() {
+diff --git a/bin/rcdn.in b/bin/rcdn.in
+index ae7aad8..c210599 100755
+--- a/bin/rcdn.in
++++ b/bin/rcdn.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+ 
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+ 
+ remove_link() {
+diff --git a/bin/rcup.in b/bin/rcup.in
+index bdae664..2076f53 100755
+--- a/bin/rcup.in
++++ b/bin/rcup.in
+@@ -1,6 +1,6 @@
+ #!@SHELL@
+ 
+-: ${RCM_LIB:=$(dirname "$0")/../share/rcm}
++RCM_LIB=@rcm@/share/rcm
+ . "$RCM_LIB/rcm.sh"
+ 
+ print_ln_v() {
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index bf1efdc6298b..b6f55bdcc207 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -12,11 +12,11 @@
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2016.07.03.1";
+  version = "2016.07.09.2";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "0qyi2g0i2gl04hqn587w0c5x1pnpkn6l07fhnbfpnqq7fyw1hndy";
+    sha256 = "0qs99ss1w22apx3n2173j5mly7h0ngfgkkgz07bn30235saf0fd3";
   };
 
   buildInputs = [ makeWrapper zip pandoc ];
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 63720faf7078..6b47e0cae840 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -11,11 +11,11 @@ let
   ]);
 in
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.75";
+  name = "dnsmasq-2.76";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz";
-    sha256 = "1wa1d4if9q6k3hklv8xi06a59k3aqb7pik8rhi2l53i99hflw334";
+    sha256 = "15lzih6671gh9knzpl8mxchiml7z5lfqzr7jm2r0rjhrxs6nk4jb";
   };
 
   preBuild = ''
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ];
 
   postBuild = optionalString stdenv.isLinux ''
-    make -C contrib/wrt
+    make -C contrib/lease-tools
   '';
 
   # XXX: Does the systemd service definition really belong here when our NixOS
@@ -39,8 +39,9 @@ stdenv.mkDerivation rec {
     install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf
   '' + optionalString stdenv.isLinux ''
     install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
-    install -Dm755 contrib/wrt/dhcp_lease_time $out/bin/dhcp_lease_time
-    install -Dm755 contrib/wrt/dhcp_release $out/bin/dhcp_release
+    install -Dm755 contrib/lease-tools/dhcp_lease_time $out/bin/dhcp_lease_time
+    install -Dm755 contrib/lease-tools/dhcp_release $out/bin/dhcp_release
+    install -Dm755 contrib/lease-tools/dhcp_release6 $out/bin/dhcp_release6
 
     mkdir -p $out/share/dbus-1/system-services
     cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
@@ -61,6 +62,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ eelco ];
+    maintainers = with maintainers; [ eelco fpletz ];
   };
 }
diff --git a/pkgs/tools/networking/haproxy/default.nix b/pkgs/tools/networking/haproxy/default.nix
index 3f853ca303ec..8a15811407dd 100644
--- a/pkgs/tools/networking/haproxy/default.nix
+++ b/pkgs/tools/networking/haproxy/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   majorVersion = "1.6";
-  version = "${majorVersion}.5";
+  version = "${majorVersion}.6";
   name = "haproxy-${version}";
 
   src = fetchurl {
     url = "http://haproxy.1wt.eu/download/${majorVersion}/src/${name}.tar.gz";
-    sha256 = "1pl5zsn12jjfss3cxzbqmxih4nf2gh8qf83qaayvpavli29zpcy4";
+    sha256 = "1xamzzfvwgh3b72f3j74ar9xcn61viszqfbdpf4cdhwc0xikvc7x";
   };
 
   buildInputs = [ openssl zlib ];
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index 5829dc9d5509..fa1740e9d124 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, sqlite, pkgconfig, autoreconfHook
 , xapian, glib, gmime, texinfo , emacs, guile
-, gtk3, webkit, libsoup, icu, withMug ? false /* doesn't build with current gtk3 */ }:
+, gtk3, webkitgtk24x, libsoup, icu }:
 
 stdenv.mkDerivation rec {
   version = "0.9.16";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     sqlite pkgconfig xapian glib gmime texinfo emacs guile libsoup icu
     autoreconfHook
-  ] ++ stdenv.lib.optionals withMug [ gtk3 webkit ];
+    gtk3 webkitgtk24x ];
 
   preBuild = ''
     # Fix mu4e-builddir (set it to $out)
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   # Install mug and msg2pdf
-  postInstall = stdenv.lib.optionalString withMug ''
+  postInstall = ''
     cp -v toys/msg2pdf/msg2pdf $out/bin/
     cp -v toys/mug/mug $out/bin/
   '';
diff --git a/pkgs/tools/networking/ntp/default.nix b/pkgs/tools/networking/ntp/default.nix
index 0e7c23fd3a6c..433a3349702d 100644
--- a/pkgs/tools/networking/ntp/default.nix
+++ b/pkgs/tools/networking/ntp/default.nix
@@ -3,11 +3,11 @@
 assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
-  name = "ntp-4.2.8p6";
+  name = "ntp-4.2.8p8";
 
   src = fetchurl {
     url = "http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${name}.tar.gz";
-    sha256 = "0j509gd0snj8dq15rhfv2v4wisfaabya1gmgqslk1kisawf0wgaq";
+    sha256 = "1vlpgd0dk2wkpmmf869sfxi8f46sfnmjgk51vl8n6vj5y2sx1cra";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index ec2821f4d818..7d48f38e79d8 100644
--- a/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -1,30 +1,26 @@
 { stdenv, fetchurl, bison, pkgconfig
-, glib, gtk, libxml2, gettext, zlib }:
+, glib, gtk, libxml2, gettext, zlib, binutils, gnutls }:
 
 let
   name = "gtk-gnutella";
-  version = "1.1.5";
+  version = "1.1.9";
 in
 stdenv.mkDerivation {
   name = "${name}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.bz2";
-    sha256 = "19d8mmyxrdwdafcjq1hvs9zn40yrcj1127163a2058svi0x08cn3";
+    sha256 = "1zvadgsskmpm82id9mbj24a2lyq38qv768ixv7nmfjl3d4wr2biv";
   };
 
-  nativeBuildInputs = [ bison pkgconfig ];
-  buildInputs = [ glib gtk libxml2 gettext zlib ];
+  nativeBuildInputs = [ bison binutils gettext pkgconfig ];
+  buildInputs = [ glib gnutls gtk libxml2 zlib ];
 
-  NIX_LDFLAGS = "-rpath ${zlib.out}/lib";
-  configureScript = "./Configure";
-  dontAddPrefix = true;
-  configureFlags = "-d -e -D prefix=$out -D gtkversion=2 -D official=true";
+  configureScript = "./build.sh --configure-only";
 
   meta = with stdenv.lib; {
     homepage = http://gtk-gnutella.sourceforge.net/;
     description = "Server/client for Gnutella";
     license = licenses.gpl2;
-    broken = true;
   };
 }
diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix
index e12d25930210..eb30ba2368a8 100644
--- a/pkgs/tools/networking/shadowsocks-libev/default.nix
+++ b/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -1,8 +1,8 @@
-{ withPolarSSL ? false
+{ withMbedTLS ? true
 , enableSystemSharedLib ? true
 , stdenv, fetchurl, zlib
 , openssl ? null
-, polarssl ? null
+, mbedtls ? null
 , libev ? null
 , libsodium ? null
 , udns ? null
@@ -25,13 +25,13 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ zlib ]
-                ++ optional (!withPolarSSL) openssl
-                ++ optional withPolarSSL polarssl
+                ++ optional (!withMbedTLS) openssl
+                ++ optional withMbedTLS mbedtls
                 ++ optional enableSystemSharedLib [libev libsodium udns];
 
-  configureFlags = optional withPolarSSL
-                     [ "--with-crypto-library=polarssl"
-                       "--with-polarssl=${polarssl}"
+  configureFlags = optional withMbedTLS
+                     [ "--with-crypto-library=mbedtls"
+                       "--with-mbedtls=${mbedtls}"
                      ]
                    ++ optional enableSystemSharedLib "--enable-system-shared-lib";
 
diff --git a/pkgs/tools/networking/siege/default.nix b/pkgs/tools/networking/siege/default.nix
index c4d68ee399a1..c188dd477fe1 100644
--- a/pkgs/tools/networking/siege/default.nix
+++ b/pkgs/tools/networking/siege/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "siege-4.0.1";
+  name = "siege-4.0.2";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "0dr8k64s7zlhy3w8n1br0h6xd06p09p9809l9rp13isf10jp5pgx";
+    sha256 = "0ivc6ah9n2888qgh8dicszhr3mjs42538lfx7dlhxvvvakwq3yvy";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/tools/networking/srelay/arm.patch b/pkgs/tools/networking/srelay/arm.patch
new file mode 100644
index 000000000000..f56f2c0f2f0a
--- /dev/null
+++ b/pkgs/tools/networking/srelay/arm.patch
@@ -0,0 +1,12 @@
+diff -ru srelay-0.4.8b4.orig/configure srelay-0.4.8b4/configure
+--- srelay-0.4.8b4.orig/configure	2010-12-21 01:11:14.000000000 +1100
++++ srelay-0.4.8b4/configure	2016-06-22 09:03:42.250000345 +1000
+@@ -1875,7 +1875,7 @@
+ 	;;
+   linux*)
+ 	case "$host_cpu" in
+-	  i*86|mips*|powerpc*|sparc*|x86_64*)
++	  i*86|mips*|powerpc*|sparc*|x86_64*|arm*)
+ 	    OS=LINUX
+ 	    cat >>confdefs.h <<\_ACEOF
+ #define LINUX 1
diff --git a/pkgs/tools/networking/srelay/default.nix b/pkgs/tools/networking/srelay/default.nix
new file mode 100644
index 000000000000..853a21da73c4
--- /dev/null
+++ b/pkgs/tools/networking/srelay/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "srelay-0.4.8b6";
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/socks-relay/files/socks-relay/srelay-0.4.8/srelay-0.4.8b6.tar.gz";
+    sha256 = "1az9ds10hpmpw6bqk7fcd1w70001kz0mm48v3vgg2z6vrbmgn0qj";
+  };
+
+  patches = [ ./arm.patch ];
+
+  installPhase = "install -D srelay $out/bin/srelay";
+
+  meta = {
+    description = "A SOCKS proxy and relay";
+    homepage = http://socks-relay.sourceforge.net/;
+    platforms = stdenv.lib.platforms.unix;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/tools/networking/urlwatch/default.nix b/pkgs/tools/networking/urlwatch/default.nix
index 67b53c83448f..3634b852fadc 100644
--- a/pkgs/tools/networking/urlwatch/default.nix
+++ b/pkgs/tools/networking/urlwatch/default.nix
@@ -1,14 +1,19 @@
 { stdenv, fetchurl, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  name = "urlwatch-2.1";
+  name = "urlwatch-2.2";
 
   src = fetchurl {
     url = "http://thp.io/2008/urlwatch/${name}.tar.gz";
-    sha256 = "0xn435cml9wjwk39117p1diqmvw3jbmv9ccr7230iaf7z59vf9v6";
+    sha256 = "0s9056mm1hkj5gpzsb5bz6fwxk0nm73i0dhnqwa1bfddjnvpl9d3";
   };
 
+  patches = [
+    ./setup.patch
+  ];
+
   propagatedBuildInputs = with python3Packages; [
+    keyring
     minidb
     pyyaml
     requests2
diff --git a/pkgs/tools/networking/urlwatch/setup.patch b/pkgs/tools/networking/urlwatch/setup.patch
new file mode 100644
index 000000000000..66626dbf0259
--- /dev/null
+++ b/pkgs/tools/networking/urlwatch/setup.patch
@@ -0,0 +1,42 @@
+From ebe7b90100a3d960f53fdc9409d2d89eaa61bf11 Mon Sep 17 00:00:00 2001
+From: Thomas Perl <m@thp.io>
+Date: Tue, 28 Jun 2016 18:15:51 +0200
+Subject: [PATCH] Check current directory and use os.path.relpath (Fixes #73)
+
+---
+ setup.py | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 947a7c8..45405cd 100644
+--- a/setup.py
++++ b/setup.py
+@@ -7,10 +7,15 @@
+ 
+ import os
+ import re
++import sys
+ 
+ PACKAGE_NAME = 'urlwatch'
+ DEPENDENCIES = ['minidb', 'PyYAML', 'requests']
+-HERE = os.path.dirname(__file__)
++HERE = os.path.abspath(os.path.dirname(__file__))
++
++if os.path.normpath(os.getcwd()) != os.path.normpath(HERE):
++    print('You must run {} inside {} (cwd={})'.format(os.path.basename(__file__), HERE, os.getcwd()))
++    sys.exit(1)
+ 
+ # Assumptions:
+ #  1. Package name equals main script file name (and only one script)
+@@ -29,9 +34,9 @@
+ 
+ m['scripts'] = [os.path.join(HERE, PACKAGE_NAME)]
+ m['package_dir'] = {'': os.path.join(HERE, 'lib')}
+-m['packages'] = ['.'.join(dirname[len(HERE)+1:].split(os.sep)[1:])
++m['packages'] = ['.'.join(os.path.relpath(dirname, HERE).split(os.sep)[1:])
+                  for dirname, _, files in os.walk(os.path.join(HERE, 'lib')) if '__init__.py' in files]
+-m['data_files'] = [(dirname[len(HERE)+1:], [os.path.join(dirname[len(HERE)+1:], fn) for fn in files])
++m['data_files'] = [(os.path.relpath(dirname, HERE), [os.path.join(os.path.relpath(dirname, HERE), fn) for fn in files])
+                    for dirname, _, files in os.walk(os.path.join(HERE, 'share')) if files]
+ m['install_requires'] = DEPENDENCIES
+ 
diff --git a/pkgs/tools/package-management/nix-repl/default.nix b/pkgs/tools/package-management/nix-repl/default.nix
index 8dfc9e6333eb..43d0d60ac311 100644
--- a/pkgs/tools/package-management/nix-repl/default.nix
+++ b/pkgs/tools/package-management/nix-repl/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchFromGitHub, nix, readline, boehmgc }:
 
-let rev = "8a2f5f0607540ffe56b56d52db544373e1efb980"; in
+let rev = "a1ea85e92b067a0a42354a28355c633eac7be65c"; in
 
 stdenv.mkDerivation {
-  name = "nix-repl-${lib.getVersion nix}-${lib.substring 0 7 rev}";
+  name = "nix-repl-${lib.getVersion nix}-2016-02-28";
 
   src = fetchFromGitHub {
     owner = "edolstra";
     repo = "nix-repl";
     inherit rev;
-    sha256 = "0cjablz01i0g9smnavhf86imwx1f9mnh5flax75i615ml71gsr88";
+    sha256 = "0rf9711day64lgg6g6yqc5709x4sgj137zpqyn019k764i7m2xs8";
   };
 
   buildInputs = [ nix readline ];
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index 9a95df94a1ca..de9b79d79c35 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.1.6";
+  version = "3.1.8";
   src = fetchurl {
     url = "https://downloads.puppetlabs.com/facter/${name}.tar.gz";
-    sha256 = "1kv4k9zqpsiw362kk1rw1a4sixd0pmnh57ghd4k4pffr2dkmdfsv";
+    sha256 = "1fhfjf5bm5kyjiady14fxhpp7hdrkgx56vsvdbqj82km0xqcxpj9";
   };
 
   cmakeFlags = [ "-DFACTER_RUBY=${ruby}/lib/libruby.so" ];
diff --git a/pkgs/tools/text/sift/default.nix b/pkgs/tools/text/sift/default.nix
index 459334e2b3c8..9a93b64e3693 100644
--- a/pkgs/tools/text/sift/default.nix
+++ b/pkgs/tools/text/sift/default.nix
@@ -21,6 +21,6 @@ buildGoPackage rec {
     homepage = "https://sift-tool.org";
     maintainers = [ maintainers.carlsverre ];
     license = licenses.gpl3;
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7cb2a01ba0bb..6c96f7a40b39 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1496,7 +1496,9 @@ in
 
   fatsort = callPackage ../tools/filesystems/fatsort { };
 
-  fcitx = callPackage ../tools/inputmethods/fcitx { };
+  fcitx = callPackage ../tools/inputmethods/fcitx {
+    plugins = [];
+  };
 
   fcitx-engines = recurseIntoAttrs {
 
@@ -1520,10 +1522,6 @@ in
 
   fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { };
 
-  fcitx-with-plugins = callPackage ../tools/inputmethods/fcitx/wrapper.nix {
-    plugins = [ ];
-  };
-
   fcppt = callPackage ../development/libraries/fcppt/default.nix { };
 
   fcron = callPackage ../tools/system/fcron { };
@@ -2367,6 +2365,8 @@ in
 
   libqmi = callPackage ../development/libraries/libqmi { };
 
+  libqrencode = callPackage ../development/libraries/libqrencode { };
+
   libmbim = callPackage ../development/libraries/libmbim { };
 
   libmongo-client = callPackage ../development/libraries/libmongo-client { };
@@ -3075,6 +3075,8 @@ in
     libpng = libpng12;
   };
 
+  pngpp = callPackage ../development/libraries/png++ { };
+
   pngquant = callPackage ../tools/graphics/pngquant { };
 
   podiff = callPackage ../tools/text/podiff { };
@@ -3234,6 +3236,14 @@ in
 
   recordmydesktop = callPackage ../applications/video/recordmydesktop { };
 
+  gtk-recordmydesktop = callPackage ../applications/video/recordmydesktop/gtk.nix {
+    jack2 = jack2Full;
+  };
+
+  qt-recordmydesktop = callPackage ../applications/video/recordmydesktop/qt.nix {
+    jack2 = jack2Full;
+  };
+
   recutils = callPackage ../tools/misc/recutils { };
 
   recoll = callPackage ../applications/search/recoll { };
@@ -5641,6 +5651,8 @@ in
 
   elixir = callPackage ../development/interpreters/elixir { debugInfo = true; };
 
+  lfe = callPackage ../development/interpreters/lfe { };
+
   groovy = callPackage ../development/interpreters/groovy { };
 
   guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { };
@@ -5986,6 +5998,8 @@ in
 
   srecord = callPackage ../development/tools/misc/srecord { };
 
+  srelay = callPackage ../tools/networking/srelay { };
+
   xidel = callPackage ../tools/text/xidel { };
 
 
@@ -6419,6 +6433,8 @@ in
   maven = maven3;
   maven3 = callPackage ../development/tools/build-managers/apache-maven { };
 
+  minify = callPackage ../development/web/minify { };
+
   mk = callPackage ../development/tools/build-managers/mk { };
 
   msitools = callPackage ../development/tools/misc/msitools { };
@@ -6643,6 +6659,8 @@ in
 
   uncrustify = callPackage ../development/tools/misc/uncrustify { };
 
+  universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
+
   vagrant = callPackage ../development/tools/vagrant {
     ruby = ruby_2_2;
   };
@@ -6693,6 +6711,8 @@ in
 
   grabserial = callPackage ../development/tools/grabserial { };
 
+  mypy-lang = callPackage ../development/tools/mypy-lang { };
+
 
   ### DEVELOPMENT / LIBRARIES
 
@@ -7547,6 +7567,7 @@ in
   hyena = callPackage ../development/libraries/hyena { };
 
   icu = callPackage ../development/libraries/icu { };
+  icu_54_1 = callPackage ../development/libraries/icu/54.1.nix { };
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -11017,6 +11038,8 @@ in
 
     ixgbevf = callPackage ../os-specific/linux/ixgbevf {};
 
+    ena = callPackage ../os-specific/linux/ena {};
+
     v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
 
     frandom = callPackage ../os-specific/linux/frandom { };
@@ -11093,6 +11116,8 @@ in
 
     virtualboxGuestAdditions = callPackage ../applications/virtualization/virtualbox/guest-additions { };
 
+    wireguard = callPackage ../os-specific/linux/wireguard {};
+
     x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
 
     zfs = callPackage ../os-specific/linux/zfs {
@@ -13507,6 +13532,8 @@ in
   };
   ledger = self.ledger3;
 
+  lighthouse = callPackage ../applications/misc/lighthouse { };
+
   lighttable = callPackage ../applications/editors/lighttable {};
 
   links2 = callPackage ../applications/networking/browsers/links2 { };
@@ -15593,7 +15620,7 @@ in
   soi = callPackage ../games/soi {
     lua = lua5_1;
   };
-  
+
   solarus = callPackage ../games/solarus { };
 
   # You still can override by passing more arguments.
@@ -15814,14 +15841,7 @@ in
   gnome3_18 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.18 { });
   gnome3_20 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.20 { });
 
-  gnome3 = self.gnome3_18 // {
-    shellExtensions = {
-      impatience = callPackage ../desktops/gnome-3/extensions/impatience.nix {};
-      system-monitor = callPackage ../desktops/gnome-3/extensions/system-monitor.nix {};
-      volume-mixer = callPackage ../desktops/gnome-3/extensions/volume-mixer.nix {};
-      workspace-grid = callPackage ../desktops/gnome-3/extensions/workspace-grid.nix {};
-    };
-  };
+  gnome3 = self.gnome3_20;
 
   gnome = recurseIntoAttrs self.gnome2;
 
@@ -17333,4 +17353,6 @@ in
   maphosts = callPackage ../tools/networking/maphosts {};
 
   zuki-themes = callPackage ../misc/themes/zuki { };
+
+  zoom-us = qt55.callPackage ../applications/networking/instant-messengers/zoom-us {};
 }
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index cff8671b65d5..8913dc1ef59e 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -22,43 +22,37 @@
 , # Allow a configuration attribute set to be passed in as an
   # argument.  Otherwise, it's read from $NIXPKGS_CONFIG or
   # ~/.nixpkgs/config.nix.
-  config ? null
+  #
+  # [For NixOS (nixos-rebuild), use nixpkgs.config option to set.]
+  config ? let
+      inherit (builtins) getEnv pathExists;
+
+      configFile = getEnv "NIXPKGS_CONFIG";
+      homeDir = getEnv "HOME";
+      configFile2 = homeDir + "/.nixpkgs/config.nix";
+    in
+      if configFile != "" && pathExists configFile then import configFile
+      else if homeDir != "" && pathExists configFile2 then import configFile2
+      else {}
 
 , crossSystem ? null
 , platform ? null
 }:
 
 
-let config_ = config; platform_ = platform; in # rename the function arguments
+let configExpr = config; platform_ = platform; in # rename the function arguments
 
 let
 
   lib = import ../../lib;
 
-  # The contents of the configuration file found at $NIXPKGS_CONFIG or
-  # $HOME/.nixpkgs/config.nix.
-  # for NIXOS (nixos-rebuild): use nixpkgs.config option
+  # Allow both:
+  # { /* the config */ } and
+  # { pkgs, ... } : { /* the config */ }
   config =
-    let
-      inherit (builtins) getEnv pathExists;
-
-      configFile = getEnv "NIXPKGS_CONFIG";
-      homeDir = getEnv "HOME";
-      configFile2 = homeDir + "/.nixpkgs/config.nix";
-
-      configExpr =
-        if config_ != null then config_
-        else if configFile != "" && pathExists configFile then import configFile
-        else if homeDir != "" && pathExists configFile2 then import configFile2
-        else {};
-
-    in
-      # allow both:
-      # { /* the config */ } and
-      # { pkgs, ... } : { /* the config */ }
-      if builtins.isFunction configExpr
-        then configExpr { inherit pkgs; }
-        else configExpr;
+    if builtins.isFunction configExpr
+    then configExpr { inherit pkgs; }
+    else configExpr;
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 63e459a34d77..bfdf29cba5bd 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -304,6 +304,25 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  AppSt = buildPerlPackage rec {
+    name = "App-St-1.1.2";
+    src = fetchurl {
+      url = https://github.com/nferraz/st/archive/v1.1.2.tar.gz;
+      sha256 = "1j1iwcxl16m4x5kl1vcv0linb93r55ndh3jm0w6qf459jl4x38s6";
+    };
+    postInstall =
+      ''
+        sed -e "1 s|\(.*\)|\1 -I $out/lib/perl5/site_perl|" -i $out/bin/st
+        ($out/bin/st --help || true) | grep Usage
+      '';
+    meta = {
+      description = "A command that computes simple statistics";
+      license = stdenv.lib.licenses.mit;
+      homepage = https://github.com/nferraz/st;
+      maintainers = [ maintainers.eelco ];
+    };
+  };
+
   AttributeHandlers = buildPerlPackage {
     name = "Attribute-Handlers-0.99";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f14dbfaea479..08014b2de30d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1359,13 +1359,13 @@ in modules // {
 
   awscli = buildPythonPackage rec {
     name = "awscli-${version}";
-    version = "1.10.38";
+    version = "1.10.46";
 
     namePrefix = "";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/a/awscli/${name}.tar.gz";
-      sha256 = "01d14snp3h4dkbwyviyprhcl8qcngc6nyzwy3k3nxvm1ia9hvz2n";
+      sha256 = "1d2xjhdmjna9zxa4ybk7cjypib5yq2gd3w5fgpb4lfs6bh3mr554";
     };
 
     # No tests included
@@ -2746,12 +2746,12 @@ in modules // {
   };
 
   botocore = buildPythonPackage rec {
-    version = "1.4.28"; # This version is required by awscli
+    version = "1.4.36"; # This version is required by awscli
     name = "botocore-${version}";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/b/botocore/${name}.tar.gz";
-      sha256 = "1qfvcb7japa3y1j4b86af9ph8q8mbq2mrx6xfhlqcf2x399l2phl";
+      sha256 = "0mkydnbbn0x97nfzwqia68zw2y5j7i9yzpq5kasvc80n2z999h39";
     };
 
     propagatedBuildInputs =
@@ -6100,6 +6100,45 @@ in modules // {
     propagatedBuildInputs = with self; [ rpkg offtrac urlgrabber fedora_cert ];
   });
 
+  Flootty = buildPythonPackage rec {
+    name = "Flootty-3.2.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/F/Flootty/${name}.tar.gz";
+      sha256 = "14n2q2k388xbmp5rda5ss879bg5cbibk4zzz7c8mrjsmxhgagmmg";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Floobits collaborative terminal";
+      homepage = "https://github.com/Floobits/flootty/";
+      maintainers = with maintainers; [ garbas ];
+      license = licenses.asl20;
+    };
+  };
+
+  flowlogs_reader = buildPythonPackage rec {
+    name = "flowlogs_reader-1.0.0";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/f/flowlogs_reader/${name}.tar.gz";
+      sha256 = "0158aki6m3pkf98hpd60088qyhrfxkmybdf8hv3qfl8nb61vaiwf";
+    };
+
+    propagatedBuildInputs = with self; [
+      botocore boto3 docutils
+    ];
+    buildInputs = with self; [
+      unittest2 mock
+    ];
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier";
+      homepage = "https://github.com/obsrvbl/flowlogs-reader";
+      maintainers = with maintainers; [ cransom ];
+      license = licenses.asl20;
+    };
+  };
+
   frozendict = buildPythonPackage rec {
     name = "frozendict-0.5";
 
@@ -9520,6 +9559,22 @@ in modules // {
     };
   };
 
+  exifread = buildPythonPackage rec {
+    name = "ExifRead-2.1.2";
+
+    meta = {
+      description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
+      homepage    = "https://github.com/ianare/exif-py";
+      license     = "BSD";
+      maintainers = with maintainers; [ vozz ];
+    };
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/E/ExifRead/${name}.tar.gz";
+      sha256 = "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr";
+    };
+  };
+
   fastimport = buildPythonPackage rec {
     name = "fastimport-${version}";
     version = "0.9.4";
@@ -11253,6 +11308,21 @@ in modules // {
     };
   };
 
+  inifile = buildPythonPackage rec {
+    name = "inifile-0.3";
+
+    meta = {
+      description = "A small INI library for Python";
+      homepage    = "https://github.com/mitsuhiko/python-inifile";
+      license     = "BSD";
+      maintainers = with maintainers; [ vozz ];
+    };
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/i/inifile/${name}.tar.gz";
+      sha256 = "0zgd53czc1irwx6b5zip8xlmyfr40hz2pd498d8yv61znj6lm16h";
+    };
+  };
 
   interruptingcow = buildPythonPackage rec {
     name = "interruptingcow-${version}";
@@ -11988,6 +12058,34 @@ in modules // {
     };
   };
 
+  lektor = buildPythonPackage rec {
+    name = "lektor-${version}";
+
+    version = "2.3";
+
+    src = pkgs.fetchgit {
+      url = "https://github.com/lektor/lektor";
+      rev = "refs/tags/${version}";
+      sha256 = "1n0ylh1sbpvi9li3g6a7j7m28njfibn10y6s2gayjxwm6fpphqxy";
+    };
+
+    LC_ALL="en_US.UTF-8";
+
+    meta = {
+      description = "A static content management system";
+      homepage    = "https://www.getlektor.com/";
+      license     = "BSD";
+      maintainers = with maintainers; [ vozz ];
+    };
+
+    # No tests included in archive
+    doCheck = false;
+
+    propagatedBuildInputs = with self; [
+      click watchdog exifread requests2 mistune inifile Babel jinja2
+      flask pyopenssl ndg-httpsclient pkgs.glibcLocales
+    ];
+  };
 
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.18.0";
@@ -28382,4 +28480,5 @@ in modules // {
     };
     buildInputs = with self; [ pkgs.swig1 pkgs.coin3d pkgs.soqt pkgs.mesa pkgs.xorg.libXi ];
   };
+
 }