about summary refs log tree commit diff
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2016-08-22 01:18:11 +0100
committerobadz <obadz-git@obadz.com>2016-08-22 01:18:11 +0100
commitba50fd71700bf796ea2339115733ca5a850015ea (patch)
tree60a0e395ca8e727e01da8837220b45b14beb9efc
parent2a552a0888808b8b66a8c7e241462f9a0353e664 (diff)
parent3d16af70bf894ce15ec9bdcad3c9ac736dc43630 (diff)
downloadnixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar.gz
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar.bz2
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar.lz
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar.xz
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.tar.zst
nixlib-ba50fd71700bf796ea2339115733ca5a850015ea.zip
Merge branch 'master' into staging
-rw-r--r--nixos/modules/services/web-apps/mattermost.nix2
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh42
-rw-r--r--nixos/modules/system/boot/stage-1.nix13
-rw-r--r--nixos/release-combined.nix1
-rw-r--r--pkgs/applications/audio/gmpc/default.nix4
-rw-r--r--pkgs/applications/editors/vanubi/default.nix4
-rw-r--r--pkgs/applications/graphics/giv/default.nix4
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix4
-rw-r--r--pkgs/applications/graphics/simple-scan/default.nix4
-rw-r--r--pkgs/applications/misc/emem/default.nix4
-rw-r--r--pkgs/applications/misc/finalterm/default.nix4
-rw-r--r--pkgs/applications/misc/font-manager/default.nix4
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix4
-rw-r--r--pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix4
-rw-r--r--pkgs/applications/misc/synapse/default.nix4
-rw-r--r--pkgs/applications/misc/with-shell/default.nix20
-rw-r--r--pkgs/applications/networking/browsers/midori/default.nix4
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--pkgs/build-support/fetchfossil/builder.sh22
-rw-r--r--pkgs/build-support/fetchfossil/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/gnome-boxes/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/baobab/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/dconf-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/dconf/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/folks/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gcr/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-contacts/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libgee/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/libgee/libgee-1.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/tracker/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/core/vte/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/california/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gitg/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/libgit2-glib/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/3.20/misc/pomodoro/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix4
-rw-r--r--pkgs/development/compilers/vala/0.23.nix (renamed from pkgs/development/compilers/vala/default.nix)0
-rw-r--r--pkgs/development/libraries/fftw/default.nix4
-rw-r--r--pkgs/development/libraries/granite/default.nix4
-rw-r--r--pkgs/development/libraries/gusb/default.nix4
-rw-r--r--pkgs/development/libraries/libappindicator/default.nix4
-rw-r--r--pkgs/development/libraries/libdbusmenu/default.nix4
-rw-r--r--pkgs/development/libraries/libfm/default.nix4
-rw-r--r--pkgs/development/libraries/libindicate/default.nix4
-rw-r--r--pkgs/development/libraries/libosinfo/default.nix4
-rw-r--r--pkgs/development/libraries/libsoup/default.nix4
-rw-r--r--pkgs/development/libraries/libunity/default.nix4
-rw-r--r--pkgs/development/libraries/telepathy/glib/default.nix4
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix4
-rw-r--r--pkgs/development/web/valum/default.nix4
-rw-r--r--pkgs/games/performous/default.nix13
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.7.nix4
-rw-r--r--pkgs/servers/caddy/default.nix14
-rw-r--r--pkgs/servers/caddy/deps.json34
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix4
-rw-r--r--pkgs/tools/filesystems/lizardfs/default.nix2
-rw-r--r--pkgs/tools/networking/ccnet/default.nix4
-rw-r--r--pkgs/tools/networking/wget/default.nix9
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix4
-rw-r--r--pkgs/tools/security/crunch/default.nix29
-rw-r--r--pkgs/tools/security/gencfsm/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix24
69 files changed, 300 insertions, 158 deletions
diff --git a/nixos/modules/services/web-apps/mattermost.nix b/nixos/modules/services/web-apps/mattermost.nix
index 20d21c008c29..bf3a8eed6004 100644
--- a/nixos/modules/services/web-apps/mattermost.nix
+++ b/nixos/modules/services/web-apps/mattermost.nix
@@ -37,7 +37,7 @@ in
         type = types.str;
         example = "https://chat.example.com";
         description = ''
-          URL this Mattermost instance is reachable under, without trailing slash."
+          URL this Mattermost instance is reachable under, without trailing slash.
         '';
       };
 
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index fbb32901f64e..65d1dcb61681 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -312,8 +312,50 @@ mountFS() {
         echo "retrying..."
         n=$((n + 1))
     done
+
+    [ "$mountPoint" == "/" ] &&
+        [ -f "/mnt-root/etc/NIXOS_LUSTRATE" ] &&
+        lustrateRoot "/mnt-root"
 }
 
+lustrateRoot () {
+    local root="$1"
+
+    echo
+    echo -e "\e[1;33m<<< NixOS is now lustrating the root filesystem (cruft goes to /old-root) >>>\e[0m"
+    echo
+
+    mkdir -m 0755 -p "$root/old-root.tmp"
+
+    echo
+    echo "Moving impurities out of the way:"
+    for d in "$root"/*
+    do
+        [ "$d" == "$root/nix"          ] && continue
+        [ "$d" == "$root/boot"         ] && continue # Don't render the system unbootable
+        [ "$d" == "$root/old-root.tmp" ] && continue
+
+        mv -v "$d" "$root/old-root.tmp"
+    done
+
+    # Use .tmp to make sure subsequent invokations don't clash
+    mv -v "$root/old-root.tmp" "$root/old-root"
+
+    mkdir -m 0755 -p "$root/etc"
+    touch "$root/etc/NIXOS"
+
+    exec 4< "$root/old-root/etc/NIXOS_LUSTRATE"
+
+    echo
+    echo "Restoring selected impurities:"
+    while read -u 4 keeper; do
+        dirname="$(dirname "$keeper")"
+        mkdir -m 0755 -p "$root/$dirname"
+        cp -av "$root/old-root/$keeper" "$root/$keeper"
+    done
+
+    exec 4>&-
+}
 
 # Function for waiting a device to appear.
 waitDevice() {
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index baeba1d6b31d..9be7ad4ae077 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -131,9 +131,16 @@ let
   # The initrd only has to mount / or any FS marked as necessary for
   # booting (such as the FS containing /nix/store, or an FS needed for
   # mounting /, like / on a loopback).
-  fileSystems = filter
-    (fs: fs.neededForBoot || elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ])
-    (attrValues config.fileSystems);
+  #
+  # We need to guarantee that / is the first filesystem in the list so
+  # that if and when lustrateRoot is invoked, nothing else is mounted
+  fileSystems = let
+    filterNeeded = filter
+      (fs: fs.mountPoint != "/" && (fs.neededForBoot || elem fs.mountPoint [ "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ]));
+    filterRoot = filter
+      (fs: fs.mountPoint == "/");
+    allFileSystems = attrValues config.fileSystems;
+  in (filterRoot allFileSystems) ++ (filterNeeded allFileSystems);
 
 
   udevRules = pkgs.stdenv.mkDerivation {
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 4aa023854b67..f2ca6af7e3a4 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -68,6 +68,7 @@ in rec {
         (all nixos.tests.boot.uefiCdrom)
         (all nixos.tests.boot.uefiUsb)
         (all nixos.tests.boot-stage1)
+        (all nixos.tests.hibernate)
         (all nixos.tests.ecryptfs)
         (all nixos.tests.ipv6)
         (all nixos.tests.i3wm)
diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix
index 345e98e6989a..0c7b5c2c9cae 100644
--- a/pkgs/applications/audio/gmpc/default.nix
+++ b/pkgs/applications/audio/gmpc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libtool, intltool, pkgconfig, glib
-, gtk, curl, mpd_clientlib, libsoup, gob2, vala, libunique
+, gtk, curl, mpd_clientlib, libsoup, gob2, vala_0_23, libunique
 , libSM, libICE, sqlite, hicolor_icon_theme, wrapGAppsHook
 }:
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libtool intltool pkgconfig glib gtk curl mpd_clientlib libsoup
-    libunique libmpd gob2 vala libSM libICE sqlite hicolor_icon_theme
+    libunique libmpd gob2 vala_0_23 libSM libICE sqlite hicolor_icon_theme
     wrapGAppsHook
   ];
 
diff --git a/pkgs/applications/editors/vanubi/default.nix b/pkgs/applications/editors/vanubi/default.nix
index de0236a50e87..876bd145b725 100644
--- a/pkgs/applications/editors/vanubi/default.nix
+++ b/pkgs/applications/editors/vanubi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, vala, which, autoconf, automake
+{ stdenv, fetchurl, pkgconfig, vala_0_26, which, autoconf, automake
 , libtool, glib, gtk3, gnome3, libwnck3, asciidoc, python3Packages }:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "145zxgaky5bcq5bxm4z7h0pvviq7k1nrgnf40q6nax6ik616ybjq";
   };
 
-  buildInputs = [ pkgconfig vala which autoconf automake
+  buildInputs = [ pkgconfig vala_0_26 which autoconf automake
                   libtool glib gtk3 libwnck3 asciidoc
                   gnome3.gtksourceview gnome3.vte_290 python3Packages.pygments ];
 
diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix
index f9ea3173b430..1b5ee01d4c06 100644
--- a/pkgs/applications/graphics/giv/default.nix
+++ b/pkgs/applications/graphics/giv/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, gdk_pixbuf, scons, pkgconfig, gtk, glib,
-  pcre, cfitsio, perl, gob2, vala, libtiff, json_glib }:
+  pcre, cfitsio, perl, gob2, vala_0_23, libtiff, json_glib }:
 
 stdenv.mkDerivation rec {
   name = "giv-20150811-git";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   installPhase = "scons install";
 
-  buildInputs = [ gdk_pixbuf pkgconfig gtk glib scons pcre cfitsio perl gob2 vala libtiff
+  buildInputs = [ gdk_pixbuf pkgconfig gtk glib scons pcre cfitsio perl gob2 vala_0_23 libtiff
     json_glib ];
 
   meta = {
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
index 445cc6aadf55..3f9fd132c09e 100644
--- a/pkgs/applications/graphics/shotwell/default.nix
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite
+{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala_0_28, sqlite
 , webkitgtk, pkgconfig, gnome3, gst_all_1, which, udev, libgudev, libraw, glib, json_glib
 , gettext, desktop_file_utils, lcms2, gdk_pixbuf, librsvg, wrapGAppsHook
 , gnome_doc_utils, hicolor_icon_theme, itstool }:
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkitgtk
+  buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala_0_28 sqlite webkitgtk
                   pkgconfig gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee
                   which udev libgudev gnome3.gexiv2 hicolor_icon_theme
                   libraw json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
diff --git a/pkgs/applications/graphics/simple-scan/default.nix b/pkgs/applications/graphics/simple-scan/default.nix
index 0d6ed1f9e728..8af753ac29c4 100644
--- a/pkgs/applications/graphics/simple-scan/default.nix
+++ b/pkgs/applications/graphics/simple-scan/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool
-, libusb1, libxml2, pkgconfig, sane-backends, vala, wrapGAppsHook   
+, libusb1, libxml2, pkgconfig, sane-backends, vala_0_23, wrapGAppsHook
 , gnome3 }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ cairo colord glib gusb gtk3 libusb1 libxml2 sane-backends
-    vala ];
+    vala_0_23 ];
   nativeBuildInputs = [ intltool itstool pkgconfig wrapGAppsHook ];
 
   configureFlags = [ "--disable-packagekit" ];
diff --git a/pkgs/applications/misc/emem/default.nix b/pkgs/applications/misc/emem/default.nix
index 488a7744d5da..f02dbe0fc180 100644
--- a/pkgs/applications/misc/emem/default.nix
+++ b/pkgs/applications/misc/emem/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "emem";
-  version = "0.2.25";
+  version = "0.2.26";
   name = "${pname}-${version}";
 
   inherit jdk;
 
   src = fetchurl {
     url = "https://github.com/ebzzry/${pname}/releases/download/v${version}/${pname}.jar";
-    sha256 = "16j3q0yvh5s32z0y515lyyn0g9ci9yw0vw0ka4sha7fgnynngyr6";
+    sha256 = "1qa3q2zgy20yq060b8gz5h7f5h8kbbk7rgfxvjbxllgd847qs4dy";
   };
 
   buildInputs = [ ];
diff --git a/pkgs/applications/misc/finalterm/default.nix b/pkgs/applications/misc/finalterm/default.nix
index 9ab9facef5b7..9d2f8f4a768f 100644
--- a/pkgs/applications/misc/finalterm/default.nix
+++ b/pkgs/applications/misc/finalterm/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchgit, makeWrapper
-, pkgconfig, cmake, libxml2, vala, intltool, libmx, gnome3, gtk3, gtk_doc
+, pkgconfig, cmake, libxml2, vala_0_23, intltool, libmx, gnome3, gtk3, gtk_doc
 , keybinder3, clutter_gtk, libnotify
 , libxkbcommon, xorg, udev
 , bashInteractive
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [
-    pkgconfig cmake vala intltool gtk3 gnome3.gnome_common gnome3.libgee
+    pkgconfig cmake vala_0_23 intltool gtk3 gnome3.gnome_common gnome3.libgee
     gtk_doc clutter_gtk libmx keybinder3 libxml2 libnotify makeWrapper
     xorg.libpthreadstubs xorg.libXdmcp xorg.libxshmfence
     libxkbcommon
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/applications/misc/font-manager/default.nix
index 4269a116085d..9dbfa9605446 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/applications/misc/font-manager/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, makeWrapper, automake, autoconf, libtool,
   pkgconfig, file, intltool, libxml2, json_glib , sqlite, itstool,
-  vala, gnome3, wrapGAppsHook
+  vala_0_32, gnome3, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     automake autoconf libtool
     file
     intltool
-    vala
+    vala_0_32
     gnome3.yelp_tools
     wrapGAppsHook
   ];
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index 7dceaeb8a969..96ad943ad57c 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig, vala, gtk3, libgee
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig, vala_0_26, gtk3, libgee
 , poppler, libpthreadstubs, gstreamer, gst-plugins-base, librsvg }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [ gstreamer gst-plugins-base vala gtk3 libgee poppler
+  buildInputs = [ gstreamer gst-plugins-base vala_0_26 gtk3 libgee poppler
                   libpthreadstubs makeWrapper librsvg ];
 
   postInstall = ''
diff --git a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix
index 17c41f233ecc..8b9ffb2c8c8a 100644
--- a/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix
+++ b/pkgs/applications/misc/rxvt_unicode-plugins/urxvt-theme-switch/default.nix
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "";
-    homepage = "";
+    description = "urxvt plugin that allows to switch color themes during runtime";
+    homepage = "https://github.com/felixr/urxvt-theme-switch";
     license = "CCBYNC";
     maintainers = with maintainers; [ garbas ];
     platforms = with platforms; unix;
diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix
index 7dce7c7fbcd2..21c0c0f5ea31 100644
--- a/pkgs/applications/misc/synapse/default.nix
+++ b/pkgs/applications/misc/synapse/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, intltool, pkgconfig, glib, libnotify, gtk3, libgee
-, keybinder3, json_glib, zeitgeist, vala, hicolor_icon_theme
+, keybinder3, json_glib, zeitgeist, vala_0_23, hicolor_icon_theme
 }:
 
 with stdenv.lib;
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     intltool pkgconfig glib libnotify gtk3 libgee keybinder3 json_glib zeitgeist 
-    vala hicolor_icon_theme
+    vala_0_23 hicolor_icon_theme
   ];
 
   meta = { 
diff --git a/pkgs/applications/misc/with-shell/default.nix b/pkgs/applications/misc/with-shell/default.nix
new file mode 100644
index 000000000000..d3b5541ac4db
--- /dev/null
+++ b/pkgs/applications/misc/with-shell/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "with-2016-08-20";
+  src = fetchFromGitHub {
+    owner = "mchav";
+    repo = "With";
+    rev = "cc2828bddd92297147d4365765f4ef36385f050a";
+    sha256 = "10m2xv6icrdp6lfprw3a9hsrzb3bip19ipkbmscap0niddqgcl9b";
+  };
+  installPhase = ''
+    mkdir -p $out/bin
+    cp with $out/bin/with
+  '';
+  meta = {
+    homepage = "https://github.com/mchav/With";
+    description = "Command prefixing for continuous workflow using a single tool";
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index 70968b97c3cb..a22612993c5f 100644
--- a/pkgs/applications/networking/browsers/midori/default.nix
+++ b/pkgs/applications/networking/browsers/midori/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, pkgconfig, intltool, vala, wrapGAppsHook
+{ stdenv, fetchurl, cmake, pkgconfig, intltool, vala_0_23, wrapGAppsHook
 , gtk3, webkitgtk, librsvg, libnotify, sqlite
 , glib_networking, gsettings_desktop_schemas, libsoup, pcre, gnome3
 , libxcb, libpthreadstubs, libXdmcp, libxkbcommon, epoxy, at_spi2_core
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    vala
+    vala_0_23
     gtk3 webkitgtk librsvg libnotify sqlite gsettings_desktop_schemas pcre gnome3.gcr
     libxcb libpthreadstubs libXdmcp libxkbcommon epoxy at_spi2_core
     (libsoup.override {gnomeSupport = true; valaSupport = true;})
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 18d31c220772..a35cfdffece2 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   name = "owncloud-client" + "-" + version;
 
-  version = "2.2.1";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
-    sha256 = "1wis62jk4y4mbr25y39y6af57pi6vp2mbryazmvn6zgnygf69m3h";
+    sha256 = "00bx9wrgvbdhi9vx30qfgkdz0k8nxlj313pac34cchx5xpij3jgq";
   };
 
   buildInputs =
diff --git a/pkgs/build-support/fetchfossil/builder.sh b/pkgs/build-support/fetchfossil/builder.sh
new file mode 100644
index 000000000000..5f08aca424fe
--- /dev/null
+++ b/pkgs/build-support/fetchfossil/builder.sh
@@ -0,0 +1,22 @@
+source $stdenv/setup
+header "Cloning Fossil $url [$rev] into $out"
+
+# Fossil, bless its adorable little heart, wants to write global configuration
+# to $HOME/.fossil. AFAICT, there is no way to disable this functionality.
+# Instead, we'll let it write to the build directory.
+export HOME=$(pwd)
+
+# We must explicitly set the admin user for the clone to something reasonable.
+fossil clone -A nobody "$url" fossil-clone.fossil
+
+mkdir fossil-clone
+WORKDIR=$(pwd)
+mkdir $out
+pushd $out
+fossil open "$WORKDIR/fossil-clone.fossil" "$rev"
+popd
+
+# Just nuke the checkout file.
+rm $out/.fslckout
+
+stopNest
diff --git a/pkgs/build-support/fetchfossil/default.nix b/pkgs/build-support/fetchfossil/default.nix
new file mode 100644
index 000000000000..439c96019a41
--- /dev/null
+++ b/pkgs/build-support/fetchfossil/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fossil}:
+
+{name ? null, url, rev, sha256}:
+
+stdenv.mkDerivation {
+  name = "fossil-archive" + (if name != null then "-${name}" else "");
+  builder = ./builder.sh;
+  buildInputs = [fossil];
+
+  # Envvar docs are hard to find. A link for the future:
+  # https://www.fossil-scm.org/index.html/doc/trunk/www/env-opts.md
+  impureEnvVars = [ "http_proxy" ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = sha256;
+
+  inherit url rev;
+  preferLocalBuild = true;
+}
diff --git a/pkgs/desktops/gnome-3/3.20/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/3.20/apps/gnome-boxes/default.nix
index 1edea6b888ba..08cfa6c23636 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/gnome-boxes/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, pkgconfig, intltool, itstool, libvirt-glib
 , glib, gobjectIntrospection, libxml2, gtk3, gtkvnc, libvirt, spice_gtk
-, spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala
+, spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala_0_32
 , libcap_ng, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg
 , desktop_file_utils, mtools, cdrkit, libcdio, numactl, xen
 , libusb, libarchive, acl, libgudev, qemu
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     makeWrapper pkgconfig intltool itstool libvirt-glib glib
     gobjectIntrospection libxml2 gtk3 gtkvnc libvirt spice_gtk spice_protocol
-    libuuid libsoup libosinfo systemd tracker vala libcap_ng libcap yajl gmp
+    libuuid libsoup libosinfo systemd tracker vala_0_32 libcap_ng libcap yajl gmp
     gdbm cyrus_sasl gnome3.defaultIconTheme libusb libarchive
     librsvg desktop_file_utils acl libgudev numactl xen
   ];
diff --git a/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
index 49c48a6b962a..e59df06f8a05 100644
--- a/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/apps/seahorse/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, intltool, fetchurl, vala
+{ stdenv, intltool, fetchurl, vala_0_32
 , pkgconfig, gtk3, glib
 , makeWrapper, itstool, gnupg, libsoup
 , gnome3, librsvg, gdk_pixbuf, gpgme
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gcr
                   gnome3.gsettings_desktop_schemas makeWrapper gnupg
                   gdk_pixbuf gnome3.defaultIconTheme librsvg gpgme
-                  libsecret avahi libsoup p11_kit vala gnome3.gcr
+                  libsecret avahi libsoup p11_kit vala_0_32 gnome3.gcr
                   openssh ];
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
index 874c7280949a..f7a0ff473cc1 100644
--- a/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/baobab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, intltool, fetchurl, vala, libgtop
+{ stdenv, intltool, fetchurl, vala_0_32, libgtop
 , pkgconfig, gtk3, glib
 , bash, makeWrapper, itstool, libxml2
 , gnome3, librsvg, gdk_pixbuf, file }:
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
+  buildInputs = [ vala_0_32 pkgconfig gtk3 glib libgtop intltool itstool libxml2
                   gnome3.gsettings_desktop_schemas makeWrapper file
                   gdk_pixbuf gnome3.defaultIconTheme librsvg ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/3.20/core/dconf-editor/default.nix
index bf39965bf779..6e0184e134e2 100644
--- a/pkgs/desktops/gnome-3/3.20/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/dconf-editor/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+{ stdenv, fetchurl, vala_0_32, libxslt, pkgconfig, glib, dbus_glib, gnome3
 , libxml2, intltool, docbook_xsl_ns, docbook_xsl, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
-  buildInputs = [ vala libxslt glib dbus_glib gnome3.gtk libxml2 gnome3.defaultIconTheme
+  buildInputs = [ vala_0_32 libxslt glib dbus_glib gnome3.gtk libxml2 gnome3.defaultIconTheme
                   intltool docbook_xsl docbook_xsl_ns gnome3.dconf ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.20/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.20/core/dconf/default.nix
index 990e2007a23f..598d60dd8b70 100644
--- a/pkgs/desktops/gnome-3/3.20/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/dconf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+{ stdenv, fetchurl, vala_0_32, libxslt, pkgconfig, glib, dbus_glib, gnome3
 , libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
 
 let
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "4373e0ced1f4d7d68d518038796c073696280e22957babb29feb0267c630fec2";
   };
 
-  buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
+  buildInputs = [ vala_0_32 libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
                   intltool docbook_xsl docbook_xsl_ns makeWrapper ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/default.nix
index c12b3daa8c9c..6b13b726296e 100644
--- a/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/evolution-data-server/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, pkgconfig, gnome3, python
 , intltool, libsoup, libxml2, libsecret, icu, sqlite
-, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }:
+, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala_0_32 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   buildInputs = with gnome3;
     [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts
       gcr p11_kit libgweather libgdata gperf makeWrapper icu sqlite gsettings_desktop_schemas ]
-    ++ stdenv.lib.optional valaSupport vala;
+    ++ stdenv.lib.optional valaSupport vala_0_32;
 
   propagatedBuildInputs = [ libsecret nss nspr libical db ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/core/folks/default.nix b/pkgs/desktops/gnome-3/3.20/core/folks/default.nix
index 6e200bdb3188..5daa33629fff 100644
--- a/pkgs/desktops/gnome-3/3.20/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/folks/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, pkgconfig, glib, gnome3, nspr, intltool
-, vala, sqlite, libxml2, dbus_glib, libsoup, nss, dbus_libs
+, vala_0_32, sqlite, libxml2, dbus_glib, libsoup, nss, dbus_libs
 , telepathy_glib, evolution_data_server, libsecret, db }:
 
 # TODO: enable more folks backends
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ glib gnome3.libgee sqlite ];
   # dbus_daemon needed for tests
   buildInputs = [ dbus_glib telepathy_glib evolution_data_server dbus_libs
-                  vala libsecret libxml2 libsoup nspr nss intltool db ];
+                  vala_0_32 libsecret libxml2 libsoup nspr nss intltool db ];
   nativeBuildInputs = [ pkgconfig ];
 
   configureFlags = "--disable-fatal-warnings";
diff --git a/pkgs/desktops/gnome-3/3.20/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.20/core/gcr/default.nix
index e0e8d1e73382..55eebf77be59 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gcr/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
 , libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk
-, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }:
+, gobjectIntrospection, makeWrapper, libxslt, vala_0_32, gnome3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   buildInputs = [
     pkgconfig intltool gnupg glib gobjectIntrospection libxslt
-    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala_0_32
   ];
 
   propagatedBuildInputs = [ p11_kit ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-contacts/default.nix
index 6ec3c7871bb9..8097cf32ba6e 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-contacts/default.nix
@@ -3,7 +3,7 @@
 , libchamplain, clutter_gtk, geocode_glib
 , bash, makeWrapper, itstool, folks, libnotify, libxml2
 , gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss
-, libsoup, vala, dbus_glib, automake115x, autoconf }:
+, libsoup, vala_0_32, dbus_glib, automake115x, autoconf }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
                   libxml2 libsoup gnome3.gnome_online_accounts nspr nss
                   gdk_pixbuf gnome3.defaultIconTheme librsvg
                   libchamplain clutter_gtk geocode_glib
-                  vala automake115x autoconf db ];
+                  vala_0_32 automake115x autoconf db ];
 
   preFixup = ''
     for f in "$out/bin/gnome-contacts" "$out/libexec/gnome-contacts-search-provider"; do
diff --git a/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
index c523d732e03a..beb019947ce2 100644
--- a/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/gnome-terminal/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which, libuuid, vala
+, gnome_doc_utils, intltool, libX11, which, libuuid, vala_0_32
 , desktop_file_utils, itstool, wrapGAppsHook, appdata-tools }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte appdata-tools
-                  gnome3.dconf itstool gnome3.nautilus vala ];
+                  gnome3.dconf itstool gnome3.nautilus vala_0_32 ];
 
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2
                         desktop_file_utils wrapGAppsHook ];
diff --git a/pkgs/desktops/gnome-3/3.20/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.20/core/libgee/default.nix
index 4ff132950319..0eaa7132e684 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libgee/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libgee/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }:
+{ stdenv, fetchurl, autoconf, vala_0_32, pkgconfig, glib, gobjectIntrospection, gnome3 }:
 let
   ver_maj = "0.16";
   ver_min = "1";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix_introspection_paths.patch ];
 
-  buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ];
+  buildInputs = [ autoconf vala_0_32 pkgconfig glib gobjectIntrospection ];
 
   meta = with stdenv.lib; {
     description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
diff --git a/pkgs/desktops/gnome-3/3.20/core/libgee/libgee-1.nix b/pkgs/desktops/gnome-3/3.20/core/libgee/libgee-1.nix
index 1715e7eeb856..0bfc617fac66 100644
--- a/pkgs/desktops/gnome-3/3.20/core/libgee/libgee-1.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/libgee/libgee-1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }:
+{ stdenv, fetchurl, autoconf, vala_0_32, pkgconfig, glib, gobjectIntrospection, gnome3 }:
 let
   ver_maj = "0.6";
   ver_min = "8";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix_introspection_paths.patch ];
 
-  buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ];
+  buildInputs = [ autoconf vala_0_32 pkgconfig glib gobjectIntrospection ];
 
   meta = with stdenv.lib; {
     description = "Utility library providing GObject-based interfaces and classes for commonly used data structures";
diff --git a/pkgs/desktops/gnome-3/3.20/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.20/core/tracker/default.nix
index ead54be84c54..4d84e2980d55 100644
--- a/pkgs/desktops/gnome-3/3.20/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/tracker/default.nix
@@ -1,6 +1,6 @@
 { stdenv, intltool, fetchurl, libxml2, upower
 , pkgconfig, gtk3, glib
-, bash, makeWrapper, itstool, vala, sqlite, libxslt
+, bash, makeWrapper, itstool, vala_0_32, sqlite, libxslt
 , gnome3, librsvg, gdk_pixbuf, file, libnotify
 , evolution_data_server, gst_all_1, poppler
 , icu, taglib, libjpeg, libtiff, giflib, libcue
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2
+  buildInputs = [ vala_0_32 pkgconfig gtk3 glib intltool itstool libxml2
                   bzip2 gnome3.totem-pl-parser libxslt
                   gnome3.gsettings_desktop_schemas makeWrapper file
                   gdk_pixbuf gnome3.defaultIconTheme librsvg sqlite
diff --git a/pkgs/desktops/gnome-3/3.20/core/vte/default.nix b/pkgs/desktops/gnome-3/3.20/core/vte/default.nix
index 6b7eb8040082..80699e212890 100644
--- a/pkgs/desktops/gnome-3/3.20/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/core/vte/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, intltool, pkgconfig
-, gnome3, ncurses, gobjectIntrospection, vala, libxml2, gnutls
+, gnome3, ncurses, gobjectIntrospection, vala_0_32, libxml2, gnutls
 
 , selectTextPatch ? false
 , fetchFromGitHub, autoconf, automake, libtool, gtk_doc, gperf
@@ -9,7 +9,7 @@ let baseAttrs = rec {
   inherit (import ./src.nix fetchurl) name src;
 
   buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib
-                  gnome3.gtk3 ncurses vala libxml2 ];
+                  gnome3.gtk3 ncurses vala_0_32 libxml2 ];
 
   propagatedBuildInputs = [ gnutls ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/misc/california/default.nix b/pkgs/desktops/gnome-3/3.20/misc/california/default.nix
index 4bdeeb23a91e..ca0450dc7f94 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/california/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/california/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper
+{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala_0_32, makeWrapper
 , gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }:
 
 let
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee
+  buildInputs = [ makeWrapper intltool pkgconfig vala_0_32 glib gtk3 gnome3.libgee
     libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server
     sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.20/misc/geary/default.nix
index 40c8bbf5ef92..a2c644caf3cb 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/geary/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/geary/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala
+{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala_0_32
 , makeWrapper, gdk_pixbuf, cmake, desktop_file_utils
 , libnotify, libcanberra, libsecret, gmime
 , libpthreadstubs, sqlite
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
   buildInputs = [ intltool pkgconfig gtk3 makeWrapper cmake desktop_file_utils gnome_doc_utils
-                  vala webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime sqlite
+                  vala_0_32 webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime sqlite
                   libpthreadstubs gnome3.gsettings_desktop_schemas gnome3.gcr
                   gdk_pixbuf librsvg gnome3.defaultIconTheme ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gitg/default.nix
index d7ac9a24c4c9..ffd5a279e737 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gitg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchgit, vala, intltool, libgit2, pkgconfig, gtk3, glib
+{ stdenv, fetchurl, fetchgit, vala_0_32, intltool, libgit2, pkgconfig, gtk3, glib
 , json_glib, webkitgtk,  makeWrapper, libpeas, bash, gobjectIntrospection
 , gnome3, gtkspell3, shared_mime_info, libgee, libgit2-glib, librsvg, libsecret }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedUserEnvPkgs = [ shared_mime_info
                             gnome3.gnome_themes_standard ];
 
-  buildInputs = [ vala intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas
+  buildInputs = [ vala_0_32 intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas
                   libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview
                   librsvg libsecret
                   gobjectIntrospection makeWrapper gnome3.adwaita-icon-theme ];
diff --git a/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
index 5b9f16384008..2550c7e42e6c 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/gpaste/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, autoreconfHook, pkgconfig, vala, glib
+{ stdenv, fetchurl, intltool, autoreconfHook, pkgconfig, vala_0_32, glib
 , pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper, systemd, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "08h1igdgapz7px12r7mrfcxmz68g9ijg73w69j75spg0yc6f4xax";
   };
 
-  buildInputs = [ intltool autoreconfHook pkgconfig vala glib
+  buildInputs = [ intltool autoreconfHook pkgconfig vala_0_32 glib
                   gtk3 gnome3.gnome_control_center dbus
                   clutter pango appstream-glib makeWrapper systemd gobjectIntrospection ];
 
diff --git a/pkgs/desktops/gnome-3/3.20/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.20/misc/libgit2-glib/default.nix
index d7e89702795f..6915ede4ad51 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/libgit2-glib/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala, libssh2
+{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala_0_32, libssh2
 , gtk_doc, gobjectIntrospection, libgit2, glib }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  buildInputs = [ gnome3.gnome_common libtool pkgconfig vala libssh2
+  buildInputs = [ gnome3.gnome_common libtool pkgconfig vala_0_32 libssh2
                   gtk_doc gobjectIntrospection libgit2 glib ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.20/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/3.20/misc/pomodoro/default.nix
index 880e0c52c1ae..ff176754e389 100644
--- a/pkgs/desktops/gnome-3/3.20/misc/pomodoro/default.nix
+++ b/pkgs/desktops/gnome-3/3.20/misc/pomodoro/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, which, automake113x, intltool, pkgconfig, libtool, makeWrapper,
-  dbus_glib, libcanberra, gst_all_1, vala, gnome3, gtk3, gst_plugins_base,
+  dbus_glib, libcanberra, gst_all_1, vala_0_32, gnome3, gtk3, gst_plugins_base,
   glib, gobjectIntrospection, telepathy_glib
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     which automake113x intltool glib gobjectIntrospection pkgconfig libtool
-    makeWrapper dbus_glib libcanberra vala gst_all_1.gstreamer
+    makeWrapper dbus_glib libcanberra vala_0_32 gst_all_1.gstreamer
     gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
     gnome3.gsettings_desktop_schemas gnome3.gnome_desktop
     gnome3.gnome_common gnome3.gnome_shell gtk3 telepathy_glib
diff --git a/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix b/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
index bb04df6134d4..d91f06e0c3a1 100644
--- a/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/pantheon-terminal/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, cmake, vala, pkgconfig, glib, gtk3, granite, gnome3, libnotify, gettext, makeWrapper }:
+{ stdenv, fetchurl, perl, cmake, vala_0_23, pkgconfig, glib, gtk3, granite, gnome3, libnotify, gettext, makeWrapper }:
 
 stdenv.mkDerivation rec {
   majorVersion = "0.3";
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = with gnome3; [
-    perl cmake vala pkgconfig glib gtk3 granite libnotify gettext makeWrapper
+    perl cmake vala_0_23 pkgconfig glib gtk3 granite libnotify gettext makeWrapper
     vte_290 libgee gsettings_desktop_schemas defaultIconTheme
   ];
   meta = {
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/0.23.nix
index 13b9c5f39832..13b9c5f39832 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/0.23.nix
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index 6b92848fd0f7..68d1e62244cb 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -35,7 +35,9 @@ stdenv.mkDerivation rec {
     # all x86_64 have sse2
     # however, not all float sizes fit
     ++ optional (stdenv.isx86_64 && (precision == "single" || precision == "double") )  "--enable-sse2"
-    ++ optional stdenv.cc.isGNU "--enable-openmp";
+    ++ optional stdenv.cc.isGNU "--enable-openmp"
+    # doc generation causes Fortran wrapper generation which hard-codes gcc
+    ++ optional (!stdenv.cc.isGNU) "--disable-doc";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/granite/default.nix b/pkgs/development/libraries/granite/default.nix
index 5a2ff5daa11b..4d011ddd4638 100644
--- a/pkgs/development/libraries/granite/default.nix
+++ b/pkgs/development/libraries/granite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, cmake, vala, pkgconfig, gobjectIntrospection, glib, gtk3, gnome3, gettext }:
+{ stdenv, fetchurl, perl, cmake, vala_0_23, pkgconfig, gobjectIntrospection, glib, gtk3, gnome3, gettext }:
 
 stdenv.mkDerivation rec {
   majorVersion = "0.3";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1laa109dz7kbd8zxddqw2p1b67yzva7cc5h3smqkj8a9jzbhv5fz";
   };
   cmakeFlags = "-DINTROSPECTION_GIRDIR=share/gir-1.0/ -DINTROSPECTION_TYPELIBDIR=lib/girepository-1.0";
-  buildInputs = [perl cmake vala pkgconfig gobjectIntrospection glib gtk3 gnome3.libgee gettext];
+  buildInputs = [perl cmake vala_0_23 pkgconfig gobjectIntrospection glib gtk3 gnome3.libgee gettext];
   meta = {
     description = "An extension to GTK+ used by elementary OS";
     longDescription = "An extension to GTK+ that provides several useful widgets and classes to ease application development. Designed for elementary OS.";
diff --git a/pkgs/development/libraries/gusb/default.nix b/pkgs/development/libraries/gusb/default.nix
index c33920953ce2..ac0425b54ad8 100644
--- a/pkgs/development/libraries/gusb/default.nix
+++ b/pkgs/development/libraries/gusb/default.nix
@@ -1,6 +1,6 @@
 {stdenv, fetchurl
 , automake, autoconf, libtool, which, gtkdoc, gettext, pkgconfig, gobjectIntrospection, libxslt
-, glib, systemd, libusb1, vala
+, glib, systemd, libusb1, vala_0_23
 }:
 stdenv.mkDerivation rec {
   name = "gusb-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     pkgconfig autoconf automake libtool which gtkdoc gettext gobjectIntrospection libxslt
-    systemd libusb1 vala
+    systemd libusb1 vala_0_23
     glib
   ];
 
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix
index 0dac5e4766fc..4cf0c52d88b8 100644
--- a/pkgs/development/libraries/libappindicator/default.nix
+++ b/pkgs/development/libraries/libappindicator/default.nix
@@ -5,7 +5,7 @@
 , glib, dbus_glib, gtkVersion
 , gtk2 ? null, libindicator-gtk2 ? null, libdbusmenu-gtk2 ? null
 , gtk3 ? null, libindicator-gtk3 ? null, libdbusmenu-gtk3 ? null
-, python, pygobject, pygtk, gobjectIntrospection, vala
+, python, pygobject, pygtk, gobjectIntrospection, vala_0_23
 , monoSupport ? false, mono ? null, gtk-sharp ? null
  }:
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib dbus_glib
-    python pygobject pygtk gobjectIntrospection vala
+    python pygobject pygtk gobjectIntrospection vala_0_23
   ] ++ (if gtkVersion == "2"
     then [ gtk2 libindicator-gtk2 libdbusmenu-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp ]
     else [ gtk3 libindicator-gtk3 libdbusmenu-gtk3 ]);
diff --git a/pkgs/development/libraries/libdbusmenu/default.nix b/pkgs/development/libraries/libdbusmenu/default.nix
index 3e633f9a3659..90880fd4d52e 100644
--- a/pkgs/development/libraries/libdbusmenu/default.nix
+++ b/pkgs/development/libraries/libdbusmenu/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, lib, file
 , pkgconfig, intltool
 , glib, dbus_glib, json_glib
-, gobjectIntrospection, vala, gnome_doc_utils
+, gobjectIntrospection, vala_0_23, gnome_doc_utils
 , gtkVersion ? null, gtk2 ? null, gtk3 ? null }:
 
 with lib;
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib dbus_glib json_glib
-    gobjectIntrospection vala gnome_doc_utils
+    gobjectIntrospection vala_0_23 gnome_doc_utils
   ] ++ optional (gtkVersion != null) (if gtkVersion == "2" then gtk2 else gtk3);
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libfm/default.nix b/pkgs/development/libraries/libfm/default.nix
index db17b46b0d35..f4f3c7747899 100644
--- a/pkgs/development/libraries/libfm/default.nix
+++ b/pkgs/development/libraries/libfm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, glib, gtk, intltool, menu-cache, pango, pkgconfig, vala
+{ stdenv, fetchurl, glib, gtk, intltool, menu-cache, pango, pkgconfig, vala_0_23
 , extraOnly ? false }:
 let
     inherit (stdenv.lib) optional;
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0bsh4p7h2glhxf1cc1lvbxyb4qy0y1zsnl9izf7vrldkikrgc13q";
   };
 
-  buildInputs = [ glib gtk intltool pango pkgconfig vala ]
+  buildInputs = [ glib gtk intltool pango pkgconfig vala_0_23 ]
                 ++ optional (!extraOnly) menu-cache;
 
   configureFlags = optional extraOnly "--with-extra-only";
diff --git a/pkgs/development/libraries/libindicate/default.nix b/pkgs/development/libraries/libindicate/default.nix
index 0cff4aa19132..514aea12c7e4 100644
--- a/pkgs/development/libraries/libindicate/default.nix
+++ b/pkgs/development/libraries/libindicate/default.nix
@@ -4,7 +4,7 @@
 , pkgconfig, autoconf
 , glib, dbus_glib, libdbusmenu-glib
 , gtkVersion, gtk2 ? null, gtk3 ? null
-, python, pygobject, pygtk, gobjectIntrospection, vala, gnome_doc_utils
+, python, pygobject, pygtk, gobjectIntrospection, vala_0_23, gnome_doc_utils
 , monoSupport ? false, mono ? null, gtk-sharp ? null
  }:
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib dbus_glib libdbusmenu-glib
-    python pygobject pygtk gobjectIntrospection vala gnome_doc_utils
+    python pygobject pygtk gobjectIntrospection vala_0_23 gnome_doc_utils
   ] ++ (if gtkVersion == "2"
     then [ gtk2 ] ++ optionals monoSupport [ mono gtk-sharp ]
     else [ gtk3 ]);
diff --git a/pkgs/development/libraries/libosinfo/default.nix b/pkgs/development/libraries/libosinfo/default.nix
index 83873cc36601..b0b22aa18e78 100644
--- a/pkgs/development/libraries/libosinfo/default.nix
+++ b/pkgs/development/libraries/libosinfo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, intltool, gobjectIntrospection, libsoup
-, libxslt, check, vala ? null
+, libxslt, check, vala_0_23 ? null
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    pkgconfig intltool gobjectIntrospection libsoup libxslt check vala
+    pkgconfig intltool gobjectIntrospection libsoup libxslt check vala_0_23
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index 785e3320cc11..05026a06c613 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, glib, libxml2, pkgconfig
 , gnomeSupport ? true, libgnome_keyring, sqlite, glib_networking, gobjectIntrospection
-, valaSupport ? true, vala
+, valaSupport ? true, vala_0_23
 , libintlOrEmpty
 , intltool, python }:
 let
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   outputs = [ "dev" "out" ];
 
   buildInputs = libintlOrEmpty ++ [ intltool python sqlite ]
-    ++ stdenv.lib.optionals valaSupport [ vala ];
+    ++ stdenv.lib.optionals valaSupport [ vala_0_23 ];
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libxml2 gobjectIntrospection ]
     ++ stdenv.lib.optionals gnomeSupport [ libgnome_keyring ];
diff --git a/pkgs/development/libraries/libunity/default.nix b/pkgs/development/libraries/libunity/default.nix
index 94e19f97e80c..bcbe15afdf84 100644
--- a/pkgs/development/libraries/libunity/default.nix
+++ b/pkgs/development/libraries/libunity/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, vala, python, intltool, pkgconfig
+{ stdenv, fetchurl, vala_0_23, python, intltool, pkgconfig
 , glib, libgee_0_6, gtk3, dee, libdbusmenu-glib
 }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib libgee_0_6 gtk3 ];
   propagatedBuildInputs = [ dee libdbusmenu-glib ];
-  nativeBuildInputs = [ vala python intltool pkgconfig ];
+  nativeBuildInputs = [ vala_0_23 python intltool pkgconfig ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/telepathy/glib/default.nix b/pkgs/development/libraries/telepathy/glib/default.nix
index 69d833064edf..e9c9260d8d8a 100644
--- a/pkgs/development/libraries/telepathy/glib/default.nix
+++ b/pkgs/development/libraries/telepathy/glib/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, dbus_glib, glib, python, pkgconfig, libxslt
-, gobjectIntrospection, valaSupport ? true, vala }:
+, gobjectIntrospection, valaSupport ? true, vala_0_23 }:
 
 stdenv.mkDerivation rec {
   name = "telepathy-glib-0.24.1";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [dbus_glib glib python gobjectIntrospection];
 
-  buildInputs = [pkgconfig libxslt] ++ stdenv.lib.optional valaSupport vala;
+  buildInputs = [pkgconfig libxslt] ++ stdenv.lib.optional valaSupport vala_0_23;
 
   preConfigure = ''
     substituteInPlace telepathy-glib/telepathy-glib.pc.in --replace Requires.private Requires
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index ced0844f3e18..879e1ccaec3f 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, glib, sqlite, gnome3, vala
+{ stdenv, fetchurl, pkgconfig, glib, sqlite, gnome3, vala_0_23
 , intltool, libtool, python, dbus_libs, telepathy_glib
 , gtk3, json_glib, librdf_raptor2, pythonPackages, dbus_glib }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-session-bus-services-dir=$(out)/share/dbus-1/services" ];
 
   buildInputs = [ pkgconfig glib sqlite gnome3.gnome_common intltool
-                  libtool python dbus_libs telepathy_glib vala dbus_glib
+                  libtool python dbus_libs telepathy_glib vala_0_23 dbus_glib
                   gtk3 json_glib librdf_raptor2 pythonPackages.rdflib ];
 
   prePatch = "patchShebangs .";
diff --git a/pkgs/development/web/valum/default.nix b/pkgs/development/web/valum/default.nix
index 6348008ab92e..21881fe6a315 100644
--- a/pkgs/development/web/valum/default.nix
+++ b/pkgs/development/web/valum/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgconfig, fetchFromGitHub, python, glib, vala, ctpl
+{ stdenv, pkgconfig, fetchFromGitHub, python, glib, vala_0_28, ctpl
 , libgee, libsoup, fcgi }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1lciwqk4k9sf1hl4drl207g0ydlxl906kx9lx5fqhfb8gwcfqh2g";
   };
 
-  buildInputs = [ python pkgconfig glib vala ctpl libgee libsoup fcgi ];
+  buildInputs = [ python pkgconfig glib vala_0_28 ctpl libgee libsoup fcgi ];
 
   configurePhase = ''python waf configure --prefix=$out'';
 
diff --git a/pkgs/games/performous/default.nix b/pkgs/games/performous/default.nix
index faeb11c37812..c73c346512f9 100644
--- a/pkgs/games/performous/default.nix
+++ b/pkgs/games/performous/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, gettext
 , glibmm, libxmlxx, pango, librsvg
-, SDL2, glew, boost, libav, portaudio
+, SDL2, glew, boost, libav, portaudio, epoxy
 }:
 
-stdenv.mkDerivation {
-  name = "performous-1.0";
+stdenv.mkDerivation rec {
+  name = "performous-${version}";
+  version = "1.1";
 
   meta = with stdenv.lib; {
     description = "Karaoke, band and dancing game";
@@ -16,14 +17,14 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "performous";
     repo = "performous";
-    rev = "1.0";
-    sha256 = "1wgydwnhadrjkj3mjzrhppfmphrxnqfljs361206imirmvs7s15l";
+    rev = version;
+    sha256 = "08j0qhr65l7qnd5vxl4l07523qpvdwi31h4vzl3lfiinx1zcgr4x";
   };
 
   nativeBuildInputs = [ cmake pkgconfig gettext ];
 
   buildInputs = [
     glibmm libxmlxx pango librsvg
-    SDL2 glew boost libav portaudio
+    SDL2 glew boost libav portaudio epoxy
   ];
 }
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 16464ab27e3e..4404d5d6fec7 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, which, automake, autoconf, pkgconfig, curl, libtool, vala, python, intltool, fuse, ccnet}:
+{stdenv, fetchurl, which, automake, autoconf, pkgconfig, curl, libtool, vala_0_23, python, intltool, fuse, ccnet}:
 
 stdenv.mkDerivation rec
 {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec
     sha256 = "ec166c86a41e7ab3b1ae97a56326ab4a2b1ec38686486b956c3d153b8023c670";
   };
 
-  buildInputs = [ which automake autoconf pkgconfig libtool vala python intltool fuse ];
+  buildInputs = [ which automake autoconf pkgconfig libtool vala_0_23 python intltool fuse ];
   propagatedBuildInputs = [ ccnet curl ];
 
   preConfigure = ''
diff --git a/pkgs/os-specific/linux/kernel/linux-4.7.nix b/pkgs/os-specific/linux/kernel/linux-4.7.nix
index ad14eb20a634..bd54c5352a59 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.7.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.7.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.7.1";
+  version = "4.7.2";
   extraMeta.branch = "4.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0dl1zc4xb8lwrryrpwfqmbnwciypzpah8vkhsl5nx0l3qcck6n15";
+    sha256 = "1234z4wzvrbyzql6cc8i4bq7bbbjgaxhys4fcnqzm14lavk3wjaq";
   };
 
   kernelPatches = args.kernelPatches;
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index 4e5703bc531a..51b4694b6305 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
   name = "caddy-${version}";
-  version = "v0.9.0";
-  rev = "f28af637327a4f12ae745284c519cfdeca5502ef";
+  version = "v0.9.1";
 
   goPackagePath = "github.com/mholt/caddy";
 
   subPackages = [ "caddy" ];
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/mholt/caddy.git";
-    sha256 = "1s7z0xbcw516i37pyj1wgxd9diqrifdghf97vs31ilbqs6z0nyls";
+  src = fetchFromGitHub {
+    owner = "mholt";
+    repo = "caddy";
+    rev = version;
+    sha256 = "0slh4nf5pd42mgj1j9hzywqpc3p6d211dm6pdlhb6lyn8f6nprgp";
   };
 
   buildFlagsArray = ''
diff --git a/pkgs/servers/caddy/deps.json b/pkgs/servers/caddy/deps.json
index 3ed975cab762..6a6638b44b4e 100644
--- a/pkgs/servers/caddy/deps.json
+++ b/pkgs/servers/caddy/deps.json
@@ -40,8 +40,8 @@
     "fetch": {
       "type": "git",
       "url": "https://github.com/hashicorp/go-syslog",
-      "rev": "42a2b573b664dbf281bd48c3cc12c086b17a39ba",
-      "sha256": "1j53m2wjyczm9m55znfycdvm4c8vfniqgk93dvzwy8vpj5gm6sb3"
+      "rev": "315de0c1920b18b942603ffdc2229e2af4803c17",
+      "sha256": "1z0kinqp8hbl7hw856jhx41ys97rc6hflcgwrkfyxj5fdx60xis6"
     }
   },
   {
@@ -76,8 +76,8 @@
     "fetch": {
       "type": "git",
       "url": "https://github.com/lucas-clemente/quic-go",
-      "rev": "61454ac85f1209c41ffcc000213a42f3e76346e5",
-      "sha256": "0y7qmwlb93r0aq5m5qarc86550d75yx86pwv31wd2m0474yv7jk9"
+      "rev": "c2af049b8af811a546bfa6b11f362c9c1e706343",
+      "sha256": "178w1qzpkyrkcnix093lj6dhgg5nylxg0aqmiff6f9ww2xknlw47"
     }
   },
   {
@@ -85,17 +85,17 @@
     "fetch": {
       "type": "git",
       "url": "https://github.com/lucas-clemente/quic-go-certificates",
-      "rev": "9bb36d3159787cca26dcfa15e23049615e307ef8",
-      "sha256": "146674p0rg0m4j8p33r5idn5j5k4a277fz1yzf87v5m8wf4694q5"
+      "rev": "4904164a1a6479e3b509f616ccd31a7b0e705d52",
+      "sha256": "1kpl8j4lqwq1xqkyikbczq8dwrybbgz4m9ny21a88v0da6r2bcfk"
     }
   },
   {
     "goPackagePath": "github.com/mholt/caddy",
     "fetch": {
       "type": "git",
-      "url": "https://github.com/mholt/caddy.git",
-      "rev": "f28af637327a4f12ae745284c519cfdeca5502ef",
-      "sha256": "1s7z0xbcw516i37pyj1wgxd9diqrifdghf97vs31ilbqs6z0nyls"
+      "url": "https://github.com/mholt/caddy",
+      "rev": "c5aa5843d92a27eaf521e28684111030135d9cdc",
+      "sha256": "0slh4nf5pd42mgj1j9hzywqpc3p6d211dm6pdlhb6lyn8f6nprgp"
     }
   },
   {
@@ -130,8 +130,8 @@
     "fetch": {
       "type": "git",
       "url": "https://github.com/xenolf/lego",
-      "rev": "4c33bee13d438d72ea22be3ff806f8093fb8d072",
-      "sha256": "191wx4jmi2hs2m233da0c7j1l80alf2493wmnixfphwwdik7qdvw"
+      "rev": "823436d61175269716a88cd6627bfa603812f10c",
+      "sha256": "1j6nkw00d09ys0p4i7k4xad1fxczg3klvnw4x48wr1zaygnpaw7q"
     }
   },
   {
@@ -139,8 +139,8 @@
     "fetch": {
       "type": "git",
       "url": "https://go.googlesource.com/crypto",
-      "rev": "7a1054f3ac58191481dc500077c6b060f5d6c7e5",
-      "sha256": "1n34nalvan3mydjzi48hxa30mz0i3zcb2rynw07s39m457ab1412"
+      "rev": "b3cc7317554b3e708b116d997899e612bab100d6",
+      "sha256": "1mcrgsvqmghhvf9z99prm15flx9l3irpm20z2zmdmhsprhc0nr5v"
     }
   },
   {
@@ -148,8 +148,8 @@
     "fetch": {
       "type": "git",
       "url": "https://go.googlesource.com/net",
-      "rev": "57bfaa875b96fb91b4766077f34470528d4b03e9",
-      "sha256": "17gfka5dv1n7v0z49clyl3h0xm5w2qcaldyyzlar6rh6l14g2dq5"
+      "rev": "7394c112eae4dba7e96bfcfe738e6373d61772b4",
+      "sha256": "1p8wsxnbsp2lq6hbza2n0zgv4sgpxzzjjlrmcngkhxj47kp3hin7"
     }
   },
   {
@@ -166,8 +166,8 @@
     "fetch": {
       "type": "git",
       "url": "https://gopkg.in/square/go-jose.v1",
-      "rev": "e3f973b66b91445ec816dd7411ad1b6495a5a2fc",
-      "sha256": "18icclnws5bz4xmlyybkxl38nhvyr990h88rvp4lp9n4r1fk3lhb"
+      "rev": "a3927f83df1b1516f9e9dec71839c93e6bcf1db0",
+      "sha256": "0zbsy6hbv3p0ahcf4hviyv1vnpdywyf1hdspz8l6vj897myd019f"
     }
   },
   {
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index 657d08026e4a..9ef9755d6bcb 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, gobjectIntrospection
 , python, gtk, pygtk, gnutls, cairo, libtool, glib, pkgconfig, libtasn1
 , libffi, cyrus_sasl, intltool, perl, perlPackages, libpulseaudio
-, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt, gtk3, vala
+, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt, gtk3, vala_0_23
 , pygobject3, libogg, enableGTK3 ? false, libgpgerror }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     python gnutls cairo libtool pkgconfig glib libffi libgcrypt
     intltool cyrus_sasl libpulseaudio perl perlPackages.TextCSV
     gobjectIntrospection libogg libgpgerror
-  ] ++ (if enableGTK3 then [ gtk3 vala pygobject3 ] else [ gtk pygtk pygobject ]);
+  ] ++ (if enableGTK3 then [ gtk3 vala_0_23 pygobject3 ] else [ gtk pygtk pygobject ]);
 
   NIX_CFLAGS_COMPILE = "-fstack-protector-all";
   configureFlags = [
diff --git a/pkgs/tools/filesystems/lizardfs/default.nix b/pkgs/tools/filesystems/lizardfs/default.nix
index ac20b735abc1..b956083840bd 100644
--- a/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/pkgs/tools/filesystems/lizardfs/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     sha256 = "18p2pj9crjqgxxxzdfcs3j3fqhinmwi7qxcf71jsw17syqwyygh8";
   };
 
-  buildInputs = [ cmake fuse asciidoc libxml2 libxslt zlib boost pkgconfig judy pam makeWrapper ];
+  buildInputs = [ cmake fuse asciidoc libxml2.bin libxslt.bin zlib boost pkgconfig judy pam makeWrapper ];
 
   patches = [ ./412.patch ];
 
diff --git a/pkgs/tools/networking/ccnet/default.nix b/pkgs/tools/networking/ccnet/default.nix
index d7aaa0f77fc7..bab8cbc8639f 100644
--- a/pkgs/tools/networking/ccnet/default.nix
+++ b/pkgs/tools/networking/ccnet/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, which, automake, autoconf, pkgconfig, libtool, vala, python, libsearpc, libzdb, libuuid, libevent, sqlite, openssl}:
+{stdenv, fetchurl, which, automake, autoconf, pkgconfig, libtool, vala_0_23, python, libsearpc, libzdb, libuuid, libevent, sqlite, openssl}:
 
 stdenv.mkDerivation rec
 {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec
     sha256 = "1e1c670a85619b174328a15925a050c7a8b323fecd13434992332f5c15e05de1";
   };
 
-  buildInputs = [ which automake autoconf pkgconfig libtool vala  python ];
+  buildInputs = [ which automake autoconf pkgconfig libtool vala_0_23 python ];
   propagatedBuildInputs = [ libsearpc libzdb libuuid libevent sqlite openssl ];
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index 42309b49bb8a..1d4791ffdde8 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -13,9 +13,8 @@ stdenv.mkDerivation rec {
   patches = [ ./remove-runtime-dep-on-openssl-headers.patch ];
 
   preConfigure = ''
-    for i in "doc/texi2pod.pl" "util/rmold.pl"; do
-      sed -i "$i" -e 's|/usr/bin.*perl|${perl}/bin/perl|g'
-    done
+    patchShebangs doc
+
   '' + stdenv.lib.optionalString doCheck ''
     # Work around lack of DNS resolution in chroots.
     for i in "tests/"*.pm "tests/"*.px
@@ -26,9 +25,9 @@ stdenv.mkDerivation rec {
     export LIBS="-liconv -lintl"
   '';
 
-  nativeBuildInputs = [ gettext pkgconfig ];
+  nativeBuildInputs = [ gettext pkgconfig perl ];
   buildInputs = [ libidn libiconv libpsl ]
-    ++ stdenv.lib.optionals doCheck [ perl perlPackages.IOSocketSSL LWP python3 ]
+    ++ stdenv.lib.optionals doCheck [ perlPackages.IOSocketSSL LWP python3 ]
     ++ stdenv.lib.optional (openssl != null) openssl
     ++ stdenv.lib.optional stdenv.isDarwin perl;
 
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index 43f025fafa40..af8a162357b6 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, lib
 , intltool, glib, pkgconfig, polkit, python, sqlite, systemd
-, gobjectIntrospection, vala, gtk_doc, autoreconfHook, autoconf-archive
+, gobjectIntrospection, vala_0_23, gtk_doc, autoreconfHook, autoconf-archive
 , nix, boost
 , enableCommandNotFound ? false
 , enableBashCompletion ? false, bashCompletion ? null }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "150mpar7bhlvwfpwsr6zrjn3yggvklzr6nlhk0shaxnrfkfxvvb6";
   };
 
-  buildInputs = [ glib polkit systemd python gobjectIntrospection vala ]
+  buildInputs = [ glib polkit systemd python gobjectIntrospection vala_0_23 ]
                   ++ lib.optional enableBashCompletion bashCompletion;
   propagatedBuildInputs = [ sqlite nix boost ];
   nativeBuildInputs = [ intltool pkgconfig autoreconfHook autoconf-archive gtk_doc ];
diff --git a/pkgs/tools/security/crunch/default.nix b/pkgs/tools/security/crunch/default.nix
new file mode 100644
index 000000000000..914d79965c3e
--- /dev/null
+++ b/pkgs/tools/security/crunch/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation  rec {
+  name = "crunch-${version}";
+  version = "3.6";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/crunch-wordlist/${name}.tgz";
+    sha256 = "0mgy6ghjvzr26yrhj1bn73qzw6v9qsniskc5wqq1kk0hfhy6r3va";
+  };
+
+  buildInputs = [ which ];
+
+  configurePhase = "true";
+
+  preBuild = ''
+    sed 's/sudo //' -i Makefile
+    sed 's/-g root -o root//' -i Makefile
+  '';
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = with stdenv.lib; {
+    description = "Wordlist generator";
+    homepage = https://sourceforge.net/projects/crunch-wordlist/;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.lethalman ];
+  };
+}
diff --git a/pkgs/tools/security/gencfsm/default.nix b/pkgs/tools/security/gencfsm/default.nix
index fb9030036200..8441fbbb7613 100644
--- a/pkgs/tools/security/gencfsm/default.nix
+++ b/pkgs/tools/security/gencfsm/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, autoconf, automake, intltool, libtool, pkgconfig, encfs
-, glib , gnome3, gtk3, libgnome_keyring, vala, wrapGAppsHook, xorg }:
+, glib , gnome3, gtk3, libgnome_keyring, vala_0_23, wrapGAppsHook, xorg }:
 
 stdenv.mkDerivation rec {
   version = "1.8.16";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "06sz6zcmvxkqww5gx4brcqs4hlpy9d8sal9nmw0pdsvh8k5vmpgn";
   };
 
-  buildInputs = [ autoconf automake intltool libtool pkgconfig vala glib encfs
+  buildInputs = [ autoconf automake intltool libtool pkgconfig vala_0_23 glib encfs
     gtk3 libgnome_keyring gnome3.libgee_1 xorg.libSM xorg.libICE
     wrapGAppsHook ];
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b4dd7afeac0b..925e429f712f 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -75,6 +75,7 @@ doNotDisplayTwice rec {
   mupen64plus1_5 = mupen64plus; # added 2016-02-12
   ncat = nmap;  # added 2016-01-26
   nfsUtils = nfs-utils;  # added 2014-12-06
+  owncloudclient = owncloud-client;  # added 2016-08
   pidgin-with-plugins = pidgin; # added 2016-06
   pidginlatexSF = pidginlatex; # added 2014-11-02
   poppler_qt5 = qt5.poppler;  # added 2015-12-19
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 74c18c153760..83f168cc9617 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -162,6 +162,8 @@ in
 
   fetchdarcs = callPackage ../build-support/fetchdarcs { };
 
+  fetchfossil = callPackage ../build-support/fetchfossil { };
+
   fetchgit = callPackage ../build-support/fetchgit {
     git = gitMinimal;
   };
@@ -730,6 +732,8 @@ in
 
   coturn = callPackage ../servers/coturn { };
 
+  crunch = callPackage ../tools/security/crunch { };
+
   daemontools = callPackage ../tools/admin/daemontools { };
 
   datamash = callPackage ../tools/misc/datamash { };
@@ -2931,7 +2935,7 @@ in
     owncloud82
     owncloud90;
 
-  owncloudclient = callPackage ../applications/networking/owncloud-client { };
+  owncloud-client = callPackage ../applications/networking/owncloud-client { };
 
   p2pvc = callPackage ../applications/video/p2pvc {};
 
@@ -3453,9 +3457,7 @@ in
 
   sharutils = callPackage ../tools/archivers/sharutils { };
 
-  shotwell = callPackage ../applications/graphics/shotwell {
-    vala = vala_0_28;
-  };
+  shotwell = callPackage ../applications/graphics/shotwell { };
 
   shout = callPackage ../applications/networking/irc/shout { };
 
@@ -4041,7 +4043,6 @@ in
 
   valum = callPackage ../development/web/valum {
     inherit (gnome3) libgee;
-    vala = vala_0_28;
   };
 
   varnish = callPackage ../servers/varnish { };
@@ -5591,7 +5592,7 @@ in
 
   urweb = callPackage ../development/compilers/urweb { };
 
-  vala = callPackage ../development/compilers/vala/default.nix { };
+  vala_0_23 = callPackage ../development/compilers/vala/0.23.nix { };
 
   vala_0_26 = callPackage ../development/compilers/vala/0.26.nix { };
 
@@ -13039,9 +13040,7 @@ in
 
   focuswriter = callPackage ../applications/editors/focuswriter { };
 
-  font-manager = callPackage ../applications/misc/font-manager {
-    vala = vala_0_32;
-  };
+  font-manager = callPackage ../applications/misc/font-manager { };
 
   foo-yc20 = callPackage ../applications/audio/foo-yc20 { };
 
@@ -14284,7 +14283,6 @@ in
   pdfgrep  = callPackage ../tools/typesetting/pdfgrep { };
 
   pdfpc = callPackage ../applications/misc/pdfpc {
-    vala = vala_0_26;
     inherit (gnome3) libgee;
     inherit (gst_all_1) gstreamer gst-plugins-base;
   };
@@ -15030,9 +15028,7 @@ in
 
   vanitygen = callPackage ../applications/misc/vanitygen { };
 
-  vanubi = callPackage ../applications/editors/vanubi {
-    vala = vala_0_26;
-  };
+  vanubi = callPackage ../applications/editors/vanubi { };
 
   vbindiff = callPackage ../applications/editors/vbindiff { };
 
@@ -17521,6 +17517,8 @@ in
     inherit (gnome2) zenity;
   };
 
+  with-shell = callPackage ../applications/misc/with-shell { };
+
   wmutils-core = callPackage ../tools/X11/wmutils-core { };
 
   wraith = callPackage ../applications/networking/irc/wraith { };