summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix2
-rw-r--r--nixos/modules/installer/tools/nixos-rebuild.sh7
-rw-r--r--nixos/modules/programs/ssh.nix3
-rw-r--r--nixos/modules/services/hardware/acpid.nix174
-rw-r--r--nixos/modules/services/networking/connman.nix6
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix13
-rw-r--r--nixos/modules/system/boot/stage-1.nix4
-rw-r--r--nixos/modules/tasks/network-interfaces.nix2
-rw-r--r--nixos/modules/virtualisation/amazon-image.nix6
-rw-r--r--pkgs/applications/audio/spotify/default.nix9
-rw-r--r--pkgs/applications/misc/solaar/default.nix17
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/chromium/plugins.nix71
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sources.nix16
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix58
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix6
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/liferea-fix-notification-header-location.patch12
-rw-r--r--pkgs/applications/science/math/content/default.nix98
-rw-r--r--pkgs/applications/version-management/cvs/default.nix3
-rw-r--r--pkgs/applications/version-management/monotone-viz/mtn-head.nix33
-rw-r--r--pkgs/applications/version-management/mr/default.nix4
-rw-r--r--pkgs/applications/version-management/tailor/default.nix16
-rw-r--r--pkgs/applications/version-management/viewmtn/0.10.nix44
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix4
-rw-r--r--pkgs/build-support/fetchgitlocal/default.nix2
-rw-r--r--pkgs/build-support/kernel/modules-closure.nix4
-rw-r--r--pkgs/build-support/kernel/modules-closure.sh2
-rw-r--r--pkgs/data/fonts/arkpandora/default.nix18
-rw-r--r--pkgs/data/fonts/libertine/default.nix39
-rw-r--r--pkgs/data/fonts/redhat-liberation-fonts/binary.nix29
-rw-r--r--pkgs/data/fonts/redhat-liberation-fonts/default.nix14
-rw-r--r--pkgs/data/misc/geolite-legacy/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix6
-rw-r--r--pkgs/development/compilers/gcl/default.nix70
-rw-r--r--pkgs/development/compilers/ghcjs/ghcjs-boot.nix4
-rw-r--r--pkgs/development/compilers/ghcjs/ghcjs.patch22
-rw-r--r--pkgs/development/compilers/rustc/default.nix4
-rw-r--r--pkgs/development/compilers/rustc/head.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix21
-rw-r--r--pkgs/development/haskell-modules/hoogle.nix35
-rw-r--r--pkgs/development/interpreters/acl2/default.nix50
-rw-r--r--pkgs/development/libraries/libcutl/default.nix21
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix4
-rw-r--r--pkgs/development/libraries/libimobiledevice/disable_sslv3.patch25
-rw-r--r--pkgs/development/libraries/libsrs2/default.nix17
-rw-r--r--pkgs/development/libraries/ncbi/default.nix54
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix31
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/default.nix13
-rw-r--r--pkgs/development/python-modules/libsexy/default.nix33
-rw-r--r--pkgs/development/tools/build-managers/cargo/default.nix6
-rw-r--r--pkgs/games/jamp/default.nix30
-rw-r--r--pkgs/games/jamp/src-for-default.nix9
-rw-r--r--pkgs/games/jamp/src-info-for-default.nix4
-rw-r--r--pkgs/games/lincity/default.nix29
-rw-r--r--pkgs/games/vassal/default.nix35
-rw-r--r--pkgs/games/zangband/default.nix43
-rw-r--r--pkgs/misc/emulators/wine/versions.nix6
-rw-r--r--pkgs/os-specific/linux/drbd/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix9
-rw-r--r--pkgs/os-specific/linux/kernel/cve-2016-0728.patch78
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.14.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.18.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.1.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux.upstream.template13
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix3
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix6
-rw-r--r--pkgs/servers/quagga/default.nix72
-rw-r--r--pkgs/servers/x11/xorg/default.nix6
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list2
-rw-r--r--pkgs/servers/xmpp/pyIRCt/default.nix42
-rw-r--r--pkgs/servers/xmpp/pyMAILt/default.nix36
-rw-r--r--pkgs/shells/fish/default.nix1
-rw-r--r--pkgs/tools/admin/webdruid/default.nix30
-rw-r--r--pkgs/tools/admin/webdruid/src-for-default.nix8
-rw-r--r--pkgs/tools/admin/webdruid/src-info-for-default.nix7
-rw-r--r--pkgs/tools/backup/obnam/default.nix4
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix37
-rw-r--r--pkgs/tools/graphics/welkin/default.nix68
-rw-r--r--pkgs/tools/misc/gnokii/default.nix34
-rw-r--r--pkgs/tools/misc/gnokii/src-for-default.nix9
-rw-r--r--pkgs/tools/misc/gnokii/src-info-for-default.nix4
-rw-r--r--pkgs/tools/networking/altermime/default.nix54
-rw-r--r--pkgs/tools/networking/email/default.nix40
-rw-r--r--pkgs/tools/networking/openssh/default.nix15
-rw-r--r--pkgs/tools/networking/openssh/disable-roaming.patch51
-rw-r--r--pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch65
-rw-r--r--pkgs/tools/security/rarcrack/default.nix39
-rw-r--r--pkgs/tools/text/popfile/default.nix71
-rw-r--r--pkgs/tools/typesetting/tex/disser/default.nix55
-rw-r--r--pkgs/top-level/all-packages.nix65
-rw-r--r--pkgs/top-level/emacs-packages.nix61
-rw-r--r--pkgs/top-level/haskell-packages.nix4
-rw-r--r--pkgs/top-level/perl-packages.nix8
-rw-r--r--pkgs/top-level/python-packages.nix32
-rw-r--r--pkgs/top-level/rust-packages.nix6
100 files changed, 990 insertions, 1404 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index def1c4a22d96..046624f10f4b 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -300,6 +300,7 @@
   taeer = "Taeer Bar-Yam <taeer@necsi.edu>";
   tailhook = "Paul Colomiets <paul@colomiets.name>";
   taktoa = "Remy Goldschmidt <taktoa@gmail.com>";
+  tavyc = "Octavian Cerna <octavian.cerna@gmail.com>";
   telotortium = "Robert Irelan <rirelan@gmail.com>";
   thall = "Niclas Thall <niclas.thall@gmail.com>";
   thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
@@ -315,6 +316,7 @@
   tstrobel = "Thomas Strobel <ts468@cam.ac.uk>";
   ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
   tv = "Tomislav Viljetić <tv@shackspace.de>";
+  tvestelind = "Tomas Vestelind <tomas.vestelind@fripost.org>";
   twey = "James ‘Twey’ Kay <twey@twey.co.uk>";
   urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
   vandenoever = "Jos van den Oever <jos@vandenoever.info>";
diff --git a/nixos/modules/installer/tools/nixos-rebuild.sh b/nixos/modules/installer/tools/nixos-rebuild.sh
index 105d1cd16252..e0e79f63fab7 100644
--- a/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -149,10 +149,11 @@ nixBuild() {
                 local j="$1"; shift 1
                 instArgs+=("$i" "$j")
                 ;;
-              -I)
-                # We don't want this in buildArgs
+              -I) # We don't want this in buildArgs
                 shift 1
                 ;;
+              --no-out-link) # We don't want this in buildArgs
+                ;;
               "<"*) # nix paths
                 instArgs+=("$i")
                 ;;
@@ -329,7 +330,7 @@ fi
 if [ -z "$rollback" ]; then
     echo "building the system configuration..." >&2
     if [ "$action" = switch -o "$action" = boot ]; then
-        pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system "${extraBuildFlags[@]}")"
+        pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         copyToTarget "$pathToConfig"
         targetHostCmd nix-env -p "$profile" --set "$pathToConfig"
     elif [ "$action" = test -o "$action" = build -o "$action" = dry-build -o "$action" = dry-activate ]; then
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 2da8ff738fbc..169c6a38e75b 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -186,6 +186,9 @@ in
 
         ForwardX11 ${if cfg.forwardX11 then "yes" else "no"}
 
+        # Allow DSA keys for now. (These were deprecated in OpenSSH 7.0.)
+        PubkeyAcceptedKeyTypes +ssh-dss
+
         ${cfg.extraConfig}
       '';
 
diff --git a/nixos/modules/services/hardware/acpid.nix b/nixos/modules/services/hardware/acpid.nix
index 48b2b6be09ed..bb17c8859d84 100644
--- a/nixos/modules/services/hardware/acpid.nix
+++ b/nixos/modules/services/hardware/acpid.nix
@@ -4,111 +4,38 @@ with lib;
 
 let
 
-  acpiConfDir = pkgs.runCommand "acpi-events" {}
-    ''
-      mkdir -p $out
-      ${
-        # Generate a configuration file for each event. (You can't have
-        # multiple events in one config file...)
-        let f = event:
-          ''
-            fn=$out/${event.name}
-            echo "event=${event.event}" > $fn
-            echo "action=${pkgs.writeScript "${event.name}.sh" event.action}" >> $fn
-          '';
-        in lib.concatMapStrings f events
-      }
-    '';
-
-  events = [powerEvent lidEvent acEvent muteEvent volumeDownEvent volumeUpEvent cdPlayEvent cdNextEvent cdPrevEvent];
-
-  # Called when the power button is pressed.
-  powerEvent =
-    { name = "power-button";
+  canonicalHandlers = {
+    powerEvent = {
       event = "button/power.*";
-      action =
-        ''
-          #! ${pkgs.bash}/bin/sh
-          ${config.services.acpid.powerEventCommands}
-        '';
+      action = config.services.acpid.powerEventCommands;
     };
 
-  # Called when the laptop lid is opened/closed.
-  lidEvent =
-    { name = "lid";
+    lidEvent = {
       event = "button/lid.*";
-      action =
-        ''
-          #! ${pkgs.bash}/bin/sh
-          ${config.services.acpid.lidEventCommands}
-        '';
+      action = config.services.acpid.lidEventCommands;
     };
 
-  # Called when the AC power is connected or disconnected.
-  acEvent =
-    { name = "ac-power";
+    acEvent = {
       event = "ac_adapter.*";
-      action =
-        ''
-          #! ${pkgs.bash}/bin/sh
-          ${config.services.acpid.acEventCommands}
-        '';
+      action = config.services.acpid.acEventCommands;
     };
-
-  muteEvent = {
-    name = "mute";
-    event = "button/mute.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.muteCommands}
-    '';
-  };
-
-  volumeDownEvent = {
-    name = "volume-down";
-    event = "button/volumedown.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.volumeDownEventCommands}
-    '';
   };
 
-  volumeUpEvent = {
-    name = "volume-up";
-    event = "button/volumeup.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.volumeUpEventCommands}
-    '';
-  };
-
-  cdPlayEvent = {
-    name = "cd-play";
-    event = "cd/play.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.cdPlayEventCommands}
-    '';
-  };
-
-  cdNextEvent = {
-    name = "cd-next";
-    event = "cd/next.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.cdNextEventCommands}
-    '';
-  };
-
-  cdPrevEvent = {
-    name = "cd-prev";
-    event = "cd/prev.*";
-    action = ''
-      #! ${pkgs.bash}/bin/sh
-      ${config.services.acpid.cdPrevEventCommands}
+  acpiConfDir = pkgs.runCommand "acpi-events" {}
+    ''
+      mkdir -p $out
+      ${
+        # Generate a configuration file for each event. (You can't have
+        # multiple events in one config file...)
+        let f = name: handler:
+          ''
+            fn=$out/${name}
+            echo "event=${handler.event}" > $fn
+            echo "action=${pkgs.writeScript "${name}.sh" (concatStringsSep "\n" [ "#! ${pkgs.bash}/bin/sh" handler.action ])}" >> $fn
+          '';
+        in concatStringsSep "\n" (mapAttrsToList f (canonicalHandlers // config.services.acpid.handlers))
+      }
     '';
-  };
-
 
 in
 
@@ -126,58 +53,45 @@ in
         description = "Whether to enable the ACPI daemon.";
       };
 
-      powerEventCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on a button/power.* event.";
-      };
+      handlers = mkOption {
+        type = types.attrsOf (types.submodule {
+          options = {
+            event = mkOption {
+              type = types.str;
+              example = [ "button/power.*" "button/lid.*" "ac_adapter.*" "button/mute.*" "button/volumedown.*" "cd/play.*" "cd/next.*" ];
+              description = "Event type.";
+            };
 
-      lidEventCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on a button/lid.* event.";
-      };
+            action = mkOption {
+              type = types.lines;
+              description = "Shell commands to execute when the event is triggered.";
+            };
+          };
+        });
 
-      acEventCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on an ac_adapter.* event.";
-      };
-
-      muteCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on an button/mute.* event.";
-      };
+        description = "Event handlers.";
+        default = {};
+        example = { mute = { event = "button/mute.*"; action = "amixer set Master toggle"; }; };
 
-      volumeDownEventCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on an button/volumedown.* event.";
-      };
 
-      volumeUpEventCommands = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Shell commands to execute on an button/volumeup.* event.";
       };
 
-      cdPlayEventCommands = mkOption {
+      powerEventCommands = mkOption {
         type = types.lines;
         default = "";
-        description = "Shell commands to execute on an cd/play.* event.";
+        description = "Shell commands to execute on a button/power.* event.";
       };
 
-      cdNextEventCommands = mkOption {
+      lidEventCommands = mkOption {
         type = types.lines;
         default = "";
-        description = "Shell commands to execute on an cd/next.* event.";
+        description = "Shell commands to execute on a button/lid.* event.";
       };
 
-      cdPrevEventCommands = mkOption {
+      acEventCommands = mkOption {
         type = types.lines;
         default = "";
-        description = "Shell commands to execute on an cd/prev.* event.";
+        description = "Shell commands to execute on an ac_adapter.* event.";
       };
 
     };
diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix
index deb1cbfc1858..3fecfbb13a04 100644
--- a/nixos/modules/services/networking/connman.nix
+++ b/nixos/modules/services/networking/connman.nix
@@ -53,13 +53,13 @@ in {
   config = mkIf cfg.enable {
 
     assertions = [{
-      assertion = config.networking.useDHCP == false;
+      assertion = !config.networking.useDHCP;
       message = "You can not use services.networking.connman with services.networking.useDHCP";
     }{
-      assertion = config.networking.wireless.enable == true;
+      assertion = config.networking.wireless.enable;
       message = "You must use services.networking.connman with services.networking.wireless";
     }{
-      assertion = config.networking.networkmanager.enable == false;
+      assertion = !config.networking.networkmanager.enable;
       message = "You can not use services.networking.connman with services.networking.networkmanager";
     }];
 
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 5baea4bc6aea..ba3efc8c0c2a 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -52,6 +52,8 @@ let
     ));
   in listToAttrs (map mkAuthKeyFile usersWithKeys);
 
+  supportOldHostKeys = !versionAtLeast config.system.stateVersion "15.07";
+
 in
 
 {
@@ -177,7 +179,7 @@ in
         default =
           [ { type = "rsa"; bits = 4096; path = "/etc/ssh/ssh_host_rsa_key"; }
             { type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; }
-          ] ++ optionals (!versionAtLeast config.system.stateVersion "15.07")
+          ] ++ optionals supportOldHostKeys
           [ { type = "dsa"; path = "/etc/ssh/ssh_host_dsa_key"; }
             { type = "ecdsa"; bits = 521; path = "/etc/ssh/ssh_host_ecdsa_key"; }
           ];
@@ -347,6 +349,15 @@ in
         ${flip concatMapStrings cfg.hostKeys (k: ''
           HostKey ${k.path}
         '')}
+
+        # Allow DSA client keys for now. (These were deprecated
+        # in OpenSSH 7.0.)
+        PubkeyAcceptedKeyTypes +ssh-dss
+
+        # Re-enable DSA host keys for now.
+        ${optionalString supportOldHostKeys ''
+          HostKeyAlgorithms +ssh-dss
+        ''}
       '';
 
     assertions = [{ assertion = if cfg.forwardX11 then cfgc.setXAuthLocation else true;
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 694a5cfb6f85..baa5bf6c69fd 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -66,10 +66,6 @@ let
         copy_bin_and_libs $BIN
       done
 
-      # Copy modprobe.
-      copy_bin_and_libs ${pkgs.kmod}/bin/kmod
-      ln -sf kmod $out/bin/modprobe
-
       # Copy resize2fs if needed.
       ${optionalString (any (fs: fs.autoResize) (attrValues config.fileSystems)) ''
         # We need mke2fs in the initrd.
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index e72c0f8956ed..503d3813611f 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -927,7 +927,7 @@ in
         pkgs.nettools
         pkgs.openresolv
       ]
-      ++ optionals (!config.boot.isContainer) [
+      ++ optionals config.networking.wireless.enable [
         pkgs.wirelesstools # FIXME: obsolete?
         pkgs.iw
         pkgs.rfkill
diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix
index 7ccc9df740e5..7cb37bbc4a76 100644
--- a/nixos/modules/virtualisation/amazon-image.nix
+++ b/nixos/modules/virtualisation/amazon-image.nix
@@ -68,7 +68,11 @@ let cfg = config.ec2; in
                 diskNr=$((diskNr + 1))
                 echo "mounting $device on $mp..."
                 if mountFS "$device" "$mp" "" ext3; then
-                    if [ -z "$diskForUnionfs" ]; then diskForUnionfs="$mp"; fi
+                    if [ -z "$diskForUnionfs" -a \
+                         $(lsblk -bno size $device) -gt $(lsblk -bno size /dev/xvda1)
+                       ]; then
+                       diskForUnionfs="$mp";
+                    fi
                 fi
             else
                 echo "skipping unknown device type $device"
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index cdfbf2f2b4c7..f345e9710d2f 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -87,7 +87,14 @@ stdenv.mkDerivation {
       # Desktop file
       mkdir -p "$out/share/applications/"
       cp "$out/share/spotify/spotify.desktop" "$out/share/applications/"
-      sed -i "s|Icon=.*|Icon=$out/share/spotify/Icons/spotify-linux-512.png|" "$out/share/applications/spotify.desktop"
+
+      # Icons
+      for i in 16 22 24 32 48 64 128 256 512; do
+        ixi="$i"x"$i"
+        mkdir -p "$out/share/icons/hicolor/$ixi/apps"
+        ln -s "$out/share/spotify/icons/spotify-linux-$i.png" \
+          "$out/share/icons/hicolor/$ixi/apps/spotify-client.png"
+      done
     '';
 
   dontStrip = true;
diff --git a/pkgs/applications/misc/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix
index db0798f64cff..9a199c7ee499 100644
--- a/pkgs/applications/misc/solaar/default.nix
+++ b/pkgs/applications/misc/solaar/default.nix
@@ -1,19 +1,14 @@
-{fetchurl, stdenv, makeWrapper, gtk3, python3Packages}:
-let
-  version = "0.9.2";
-in
-stdenv.mkDerivation {
+{fetchurl, stdenv, gtk3, python34Packages, gobjectIntrospection}:
+python34Packages.buildPythonPackage rec {
   name = "solaar-${version}";
+  version = "0.9.2";
+  namePrefix = "";
   src = fetchurl {
     sha256 = "0954grz2adggfzcj4df4mpr4d7qyl7w8rb4j2s0f9ymawl92i05j";
     url = "https://github.com/pwr/Solaar/archive/${version}.tar.gz";
   };
 
-  buildInputs = [gtk3 python3Packages.pygobject3 python3Packages.pyudev];
-  enableParallelBuilding = true;
-  installPhase = ''
-    mkdir -p "$out";
-  '';
+  propagatedBuildInputs = [python34Packages.pygobject3 python34Packages.pyudev gobjectIntrospection gtk3];
   postInstall = ''
     wrapProgram "$out/bin/solaar" \
       --prefix PYTHONPATH : "$PYTHONPATH" \
@@ -22,6 +17,8 @@ stdenv.mkDerivation {
       --prefix PYTHONPATH : "$PYTHONPATH" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
   '';
+
+  enableParallelBuilding = true;
   meta = with stdenv.lib; {
     description = "Linux devices manager for the Logitech Unifying Receiver";
     longDescription = ''
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index bf870e144e56..c0c5e485e59c 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -64,20 +64,17 @@ let
 in stdenv.mkDerivation {
   name = "chromium${suffix}-${chromium.browser.version}";
 
-  buildInputs = [ makeWrapper ] ++ chromium.plugins.enabledPlugins;
+  buildInputs = [ makeWrapper ];
 
   buildCommand = let
     browserBinary = "${chromium.browser}/libexec/chromium/chromium";
-    mkEnvVar = key: val: "--set '${key}' '${val}'";
-    envVars = chromium.plugins.settings.envVars or {};
-    flags = chromium.plugins.settings.flags or [];
+    getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
   in with stdenv.lib; ''
     mkdir -p "$out/bin" "$out/share/applications"
 
     ln -s "${chromium.browser}/share" "$out/share"
-    makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      ${concatStrings (mapAttrsToList mkEnvVar envVars)} \
-      --add-flags "${concatStringsSep " " flags}"
+    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
+      ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
 
     ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
     ln -s "${chromium.browser}/share/icons" "$out/share/icons"
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
index 0b0e5bd08382..78d9086dd961 100644
--- a/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -8,6 +8,34 @@
 with stdenv.lib;
 
 let
+  # Generate a shell fragment that emits flags appended to the
+  # final makeWrapper call for wrapping the browser's main binary.
+  #
+  # Note that this is shell-escaped so that only the variable specified
+  # by the "output" attribute is substituted.
+  mkPluginInfo = { output ? "out", allowedVars ? [ output ]
+                 , flags ? [], envVars ? {}
+                 }: let
+    shSearch = ["'"] ++ map (var: "@${var}@") allowedVars;
+    shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars;
+    # We need to triple-escape "val":
+    #  * First because makeWrapper doesn't do any quoting of its arguments by
+    #    itself.
+    #  * Second because it's passed to the makeWrapper call separated by IFS but
+    #    not by the _real_ arguments, for example the Widevine plugin flags
+    #    contain spaces, so they would end up as separate arguments.
+    #  * Third in order to be correctly quoted for the "echo" call below.
+    shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
+    mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'";
+    mkFlag = flag: ["--add-flags" (shEsc flag)];
+    mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)];
+    envList = mapAttrsToList mkEnvVar envVars;
+    quoted = map mkSh (flatten ((map mkFlag flags) ++ envList));
+  in ''
+    mkdir -p "''$${output}/nix-support"
+    echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
+  '';
+
   plugins = stdenv.mkDerivation {
     name = "chromium-binary-plugins";
 
@@ -61,40 +89,29 @@ let
 
       install -vD PepperFlash/libpepflashplayer.so \
         "$flash/lib/libpepflashplayer.so"
-      mkdir -p "$flash/nix-support"
-      cat > "$flash/nix-support/chromium-plugin.nix" <<NIXOUT
-        { flags = [
-            "--ppapi-flash-path='$flash/lib/libpepflashplayer.so'"
-            "--ppapi-flash-version=$flashVersion"
-          ];
-        }
-      NIXOUT
+
+      ${mkPluginInfo {
+        output = "flash";
+        allowedVars = [ "flash" "flashVersion" ];
+        flags = [
+          "--ppapi-flash-path=@flash@/lib/libpepflashplayer.so"
+          "--ppapi-flash-version=@flashVersion@"
+        ];
+      }}
 
       install -vD libwidevinecdm.so \
         "$widevine/lib/libwidevinecdm.so"
       install -vD libwidevinecdmadapter.so \
         "$widevine/lib/libwidevinecdmadapter.so"
-      mkdir -p "$widevine/nix-support"
-      cat > "$widevine/nix-support/chromium-plugin.nix" <<NIXOUT
-        { flags = [ "--register-pepper-plugins='${wvModule}${wvInfo}'" ];
-          envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "$widevine/lib";
-        }
-      NIXOUT
+
+      ${mkPluginInfo {
+        output = "widevine";
+        flags = [ "--register-pepper-plugins=${wvModule}${wvInfo}" ];
+        envVars.NIX_CHROMIUM_PLUGIN_PATH_WIDEVINE = "@widevine@/lib";
+      }}
     '';
 
-    passthru = let
-      enabledPlugins = optional enablePepperFlash plugins.flash
+    passthru.enabled = optional enablePepperFlash plugins.flash
                     ++ optional enableWideVine    plugins.widevine;
-      getNix = plugin: import "${plugin}/nix-support/chromium-plugin.nix";
-      mergeAttrsets = let
-        f = v: if all isAttrs v then mergeAttrsets v
-          else if all isList  v then concatLists   v
-          else if tail v == []  then head          v
-          else head (tail v);
-      in fold (l: r: zipAttrsWith (_: f) [ l r ]) {};
-    in {
-      inherit enabledPlugins;
-      settings = mergeAttrsets (map getNix enabledPlugins);
-    };
   };
 in plugins
diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix
index dc6f22434db9..1a19210fd3dc 100644
--- a/pkgs/applications/networking/browsers/chromium/source/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix
@@ -7,15 +7,15 @@
     sha256bin64 = "1l5s504mmr4v5y67fsla9hyrk7dm155yc790ld87s1ya03h455gr";
   };
   beta = {
-    version = "48.0.2564.48";
-    sha256 = "1qasdz9rwdqa2if8y4kkk19fspgjpk3q782c8l1p5n2cm25lkfa9";
-    sha256bin32 = "0pgc3iy4s7whmckc14r0cvgmk7pqgidd2w0xv53bfq2k504b5ykw";
-    sha256bin64 = "1lx6l8s2wdgzldbm8licpf22l6z13mvq05xlbn8ybizhn159nykj";
+    version = "49.0.2623.28";
+    sha256 = "1cpgfcw6kgw70k14wa1m5qzj4rnvkzrw1am30d34516mbwlmmqc8";
+    sha256bin32 = "0nwhjav1x325h1drqknrjl5glivn4fdpahs1nlaqfk8kbjh1q113";
+    sha256bin64 = "0wj6j0v3rngsclzbb8rc8l90wdi98j2sb60r2ypfihaxq2gd138y";
   };
   stable = {
-    version = "47.0.2526.106";
-    sha256 = "1rjqkawj7l127cd9s1wxwn4v7dfbrlahml98sam3fg8a6drm0lv4";
-    sha256bin32 = "14svd5x8lzfyyigfirxx1q9pg2bsnnb0fdwa7vvh1awq3zzfd38n";
-    sha256bin64 = "121289vwaz391b32hp2lihlpaql76y44gdpqkl9a3md0j1zk1nd9";
+    version = "48.0.2564.97";
+    sha256 = "1nsjn8zlqljizy5dmg2rxwkw4k5j4yi15ywxi9ca3acv68dbhd3p";
+    sha256bin32 = "0gdd9krsfsixw5b03msm7nf7zl7xh4chzkh9srb19c1kzygl2j2l";
+    sha256bin64 = "1wmw17gdq1j6vxfdc8s94jc8z30pza8nipk4dh590xnb7faihr52";
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index 566247fc0d43..7451297f8d20 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -133,8 +133,8 @@ in {
 
   firefox-unwrapped = common {
     pname = "firefox";
-    version = "43.0.4";
-    sha256 = "0xjs4j26h8fyy8izrcc482vfvgg4gqzap5kh17jfv7flhn9akkvn";
+    version = "44.0";
+    sha256 = "07ac1h6ib36nm4a0aykh1z36vgw6wqlblil0zsj0lchdhksb10pa";
   };
 
   firefox-esr-unwrapped = common {
diff --git a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix b/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix
deleted file mode 100644
index 7368a8842147..000000000000
--- a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-args @ { fetchurl, stdenv, pkgconfig, perl, perlXMLParser, libxml2, openssl, nss
-, gtkspell, aspell, gettext, ncurses, avahi, dbus, dbus_glib, python
-, libtool, automake, autoconf, gstreamer
-, gtk, glib
-, libXScrnSaver, scrnsaverproto, libX11, xproto, kbproto, ... }: with args;
-/*
-  arguments: all buildInputs
-  optional: purple2Source: purple-2 source - place to copy libpurple from
-    (to use a fresher pidgin build)
-*/
-let
-  externalPurple2 = (lib.attrByPath ["purple2Source"] null args) != null;
-in
-rec {
-  src = fetchurl {
-    url = mirror://sourceforge/funpidgin/carrier-2.5.0.tar.bz2;
-    sha256 = "0m80s7hnvz5vc2dy3xiy1zfb6incmb7p28zahzxdif2vz44riz28";
-  };
-
-  buildInputs = [gtkspell aspell
-    gstreamer startupnotification
-    libxml2 openssl nss
-    libXScrnSaver ncurses scrnsaverproto
-    libX11 xproto kbproto GConf avahi
-    dbus dbus_glib glib python
-    autoconf libtool automake];
-
-  propagatedBuildInputs = [
-    pkgconfig gtk perl perlXMLParser gettext
-  ];
-
-  configureFlags="--with-nspr-includes=${nss}/include/nspr"
-    + " --with-nspr-libs=${nss}/lib --with-nss-includes=${nss}/include/nss"
-    + " --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include"
-    + " --enable-screensaver --disable-meanwhile --disable-nm --disable-tcl";
-
-  preBuild = fullDepEntry (''
-    export echo=echo
-  '') [];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "preBuild" "doMakeInstall"]
-    ++ (lib.optional externalPurple2 "postInstall")
-  ;
-
-  name = "carrier-2.5.0";
-  meta = {
-    description = "PidginIM GUI fork with user-friendly development model";
-    homepage = http://funpidgin.sf.net;
-  };
-} // (if externalPurple2 then {
-  postInstall = fullDepEntry (''
-      mkdir -p $out/lib/purple-2
-      cp ${args.purple2Source}/lib/purple-2/* $out/lib/purple-2/
-    '') ["minInit" "defEnsureDir"]; }
-  else {})
-
-
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 952c763c5f4a..442240c2718f 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -6,14 +6,14 @@
 }:
 
 let pname = "liferea";
-    version = "1.10.17";
+    version = "1.10.18";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
-    sha256 = "0svgl50w3hai31n5sm42sl0cd86c32cka0xzfy4r8gi0lyjdjxyx";
+    sha256 = "0wpinar2cxyzq2j7ff7lznc08f0n6qjdm9aavsarbgdpaf2s1xvq";
   };
 
   buildInputs = with gst_all_1; [
@@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
     makeWrapper
   ];
 
+  patches = [ ./liferea-fix-notification-header-location.patch ];
+
   preFixup = ''
     for f in "$out"/bin/*; do
       wrapProgram "$f" \
diff --git a/pkgs/applications/networking/newsreaders/liferea/liferea-fix-notification-header-location.patch b/pkgs/applications/networking/newsreaders/liferea/liferea-fix-notification-header-location.patch
new file mode 100644
index 000000000000..3cd322460b08
--- /dev/null
+++ b/pkgs/applications/networking/newsreaders/liferea/liferea-fix-notification-header-location.patch
@@ -0,0 +1,12 @@
+diff -Naur a/src/notification/libnotify.c b/src/notification/libnotify.c
+--- a/src/notification/libnotify.c	2016-01-28 19:33:19.000000000 +0100
++++ b/src/notification/libnotify.c	2016-02-01 19:20:39.167580131 +0100
+@@ -40,7 +40,7 @@
+ #include "ui/feed_list_view.h"
+ #include "ui/ui_tray.h"
+ 
+-#include "notification/notification.h"
++#include "../notification.h"
+ 
+ static gboolean supports_actions = FALSE;
+ static gboolean supports_append  = FALSE;
diff --git a/pkgs/applications/science/math/content/default.nix b/pkgs/applications/science/math/content/default.nix
deleted file mode 100644
index 48e20d427d15..000000000000
--- a/pkgs/applications/science/math/content/default.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-a @ { mesa, lesstif, libX11, libXaw, xproto, libXt, libSM, libICE, libXmu, libXext, libXcursor, ... } :
-let
-  fetchurl = a.fetchurl;
-
-  version = "1.5";
-  buildInputs = with a; [
-    mesa lesstif libX11 libXaw xproto libXt libSM libICE
-      libXmu libXext libXcursor
-  ];
-in
-rec {
-  srcNcbiStdH = fetchurl {
-    url = "http://www.math.uu.nl/people/kuznet/CONTENT/src/unix/ncbistd.h";
-    sha256 = "1zi3l53b0a7d3620rhxvh1jn7pz3ihl1mxl9qqw86xkmhm4q7xf3";
-  };
-
-  srcVibrant = fetchurl {
-    url = "http://www.math.uu.nl/people/kuznet/CONTENT/src/unix/vibrant.tar.gz";
-    sha256 = "1s0vsa0np3sm7jh3ps3f1sf4j64v0kw4hqasllpxx5hdgxwd8y25";
-  };
-
-  srcContent = fetchurl {
-    url = "http://www.math.uu.nl/people/kuznet/CONTENT/src/unix/content_${version}.tar.gz";
-    sha256 = "0y0dzr1d3jgbd53729jk6s2wpb5hv54xwbdird4r0s15bznpm6fs";
-  };
-
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["unpackTarballs"
-    "setPlatform" "extraVars"
-    "buildVibrant" "buildContent"
-    "install"];
-
-  unpackTarballs = a.fullDepEntry (''
-    mkdir content
-    cd content
-    mkdir vibrant
-    tar -xvf ${srcVibrant} -C vibrant
-    tar -xvf ${srcContent} -C .
-    sed -e s/SGI=/SGI=no/ -i content/makefile_v
-  '') ["minInit"];
-
-  platformTLAContent = if a.stdenv.isLinux then "LIN" else
-    throw "Three-letter code for the platform is not known";
-
-  platformTLAVibrant = if a.stdenv.isLinux then "lnx" else
-    throw "Three-letter code for the platform is not known";
-
-  setPlatform = a.fullDepEntry (''
-    sed -e 's/${platformTLAContent}=no/${platformTLAContent}=/' -i content/makefile_v
-  '') ["minInit" "unpackTarballs"];
-
-  extraVars = a.noDepEntry ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lXcursor"
-  '';
-
-  buildVibrant = a.fullDepEntry (''
-    cd vibrant/build
-    
-    export LCL=${platformTLAVibrant}
-    make copy
-    for i in *.c; do gcc $i -c -DWIN_MOTIF -I. -I../include; done
-    sh ../make/viball.${platformTLAVibrant}
-
-    cd ../..
-  '') ["addInputs" "unpackTarballs"];
-
-  buildContent = a.fullDepEntry (''
-    cd content 
-
-    export PATH=$PATH:$PWD/victor:$PWD/yuri
-    make -f makefile_v unix
-    
-    cd ..
-  '') ["addInputs" "buildVibrant" "setPlatform"];
-
-  install = a.fullDepEntry (''
-    mkdir -p $out/share/${name}/build-snapshot $out/bin $out/lib $out/share/${name}/doc
-    find . -name '*.o' -exec cp '{}' $out/lib ';'
-    find . -name '*.so' -exec cp '{}' $out/lib ';'
-    find . -name '*.txt' -exec cp '{}' $out/share/${name}/doc ';'
-    find . -name '*.hlp' -exec cp '{}' $out/share/${name}/doc ';'
-    find . -perm -0100 -a ! -name '*.*' -exec cp '{}' $out/bin ';'
-    cp -r . $out/share/${name}/build-snapshot
-  '') ["buildContent" "defEnsureDir" "minInit"];
-      
-  name = "content-" + version;
-  meta = {
-    description = "A tool for analysis of dynamical systems";
-    maintainers = [
-      a.lib.maintainers.raskin
-    ];
-    platforms = a.lib.platforms.linux;
-    broken = true;
-  };
-}
diff --git a/pkgs/applications/version-management/cvs/default.nix b/pkgs/applications/version-management/cvs/default.nix
index 0e43972fab6a..e9de202a8092 100644
--- a/pkgs/applications/version-management/cvs/default.nix
+++ b/pkgs/applications/version-management/cvs/default.nix
@@ -11,9 +11,6 @@ stdenv.mkDerivation {
   patches = [ ./getcwd-chroot.patch ];
 
   preConfigure = ''
-    # Fix location of info and man directories.
-    configureFlags="--infodir=$out/share/info --mandir=$out/share/man"
-
     # Apply the Debian patches.
     for p in "debian/patches/"*; do
       echo "applying \`$p' ..."
diff --git a/pkgs/applications/version-management/monotone-viz/mtn-head.nix b/pkgs/applications/version-management/monotone-viz/mtn-head.nix
deleted file mode 100644
index eb75b45128e3..000000000000
--- a/pkgs/applications/version-management/monotone-viz/mtn-head.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-args @ { graphviz, pkgconfig, autoconf, automake, libtool, glib, gtk, ... }: with args;
-rec {
-  srcDrv = fetchmtn {
-    name = "monotone-viz-mtn-checkout";
-    dbs = ["monotone.mtn-host.prjek.net"];
-    selector = "c3fdb3af1c7c89989c7da8062bb62203f2aaccf0";
-    branch = "net.venge.monotone-viz.new-stdio";
-    sha256 = "661c6a49d442b7e5a7ba455bb9a892e7e12b3968c2ddd69375e7bd0cd0b3ecb9";
-  };
-  src = srcDrv + "/";
-
-  buildInputs = [ocaml lablgtk libgnomecanvas gtk graphviz glib
-    pkgconfig autoconf automake libtool];
-  configureFlags = ["--with-lablgtk-dir=$(echo ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2)"];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doAutoconf" "doPatch" "doConfigure" "doMakeInstall"];
-
-  doAutoconf = fullDepEntry(''
-    aclocal -I .
-    autoconf -I .
-  '') ["minInit" "addInputs" "doUnpack"];
-
-  name = "monotone-viz-mtn-head";
-  meta = {
-    description = "Monotone commit tree visualizer";
-    maintainers = [args.lib.maintainers.raskin];
-  };
-  passthru = {
-    inherit srcDrv;
-  };
-}
-
diff --git a/pkgs/applications/version-management/mr/default.nix b/pkgs/applications/version-management/mr/default.nix
index 68bef621bc28..551a5795d11b 100644
--- a/pkgs/applications/version-management/mr/default.nix
+++ b/pkgs/applications/version-management/mr/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  version = "1.20150503";
+  version = "1.20160123";
   name = "mr-${version}";
 
   src = fetchurl {
     url = "https://github.com/joeyh/myrepos/archive/${version}.tar.gz";
-    sha256 = "12cf8kmn13446rszmah5wws5p2k2gjp6y4505sy1r14qnahf4qbf";
+    sha256 = "1723cg5haplz2w9dwdzp6ds1ip33cx3awmj4wnb0h4yq171v5lqk";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/applications/version-management/tailor/default.nix b/pkgs/applications/version-management/tailor/default.nix
index 5164ed6a9b44..ebc0906fc6bb 100644
--- a/pkgs/applications/version-management/tailor/default.nix
+++ b/pkgs/applications/version-management/tailor/default.nix
@@ -1,6 +1,9 @@
-args @ { makeWrapper, python, ... }: with args;
-let version = if args ? version then args.version else "0.9.35"; in
-rec {
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "tailor-${version}";
+  version = "0.9.35";
+
   src = fetchurl {
     urls = [
       "http://darcs.arstecnica.it/tailor/tailor-${version}.tar.gz"
@@ -9,13 +12,6 @@ rec {
     sha256 = "061acapxxn5ab3ipb5nd3nm8pk2xj67bi83jrfd6lqq3273fmdjh";
   };
 
-  buildInputs = [python makeWrapper];
-  configureFlags = [];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["installPythonPackage" "wrapBinContentsPython"];
-
-  name = "tailor-" + version;
   meta = {
     description = "Version control tools integration tool";
   };
diff --git a/pkgs/applications/version-management/viewmtn/0.10.nix b/pkgs/applications/version-management/viewmtn/0.10.nix
deleted file mode 100644
index be8cc83c3008..000000000000
--- a/pkgs/applications/version-management/viewmtn/0.10.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-args @ { monotone, cheetahTemplate, highlight, ctags, makeWrapper, graphviz, which, python, ... }: with args;
-rec {
-  src = fetchurl {
-    url = http://viewmtn.1erlei.de/downloads/viewmtn-0.10.tgz;
-    sha256 = "1c6y708xaf6pds1r6l00q7vpgfagfbnf95kqj168vw3xr3l8a4yx";
-  };
-
-  buildInputs = [python flup highlight monotone 
-    cheetahTemplate makeWrapper graphviz which];
-  configureFlags = [];
-  makeFlags = ["PREFIX=$out"];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doInstall" 
-    (doPatchShebangs "$out/bin")
-    (makeManyWrappers "$out/bin/*" 
-      (pythonWrapperArguments + preservePathWrapperArguments)) 
-  ];
-      
-  doInstall = fullDepEntry (''
-    for i in dot mtn highlight; do 
-        sed -e "s@/usr/bin/$i@$(which $i)@" -i config.py.example
-    done
-    sed -e "s@'templates/'@'$out/share/viewmtn/templates/'@" -i config.py.example
-
-    fullOut=$(toPythonPath $out)
-    
-    mkdir -p $fullOut
-    mkdir -p $out/bin
-    mkdir -p $out/share/viewmtn
-    
-    cp -r * $fullOut
-    cp $fullOut/viewmtn.py $out/bin
-    
-    ln -s $fullOut/{AUTHORS,ChangeLog,INSTALL,LICENSE,README,TODO,config.py.example} $out/share/viewmtn
-    ln -s $fullOut/templates $out/share/viewmtn/
-    ln -s $fullOut/static $out/share/viewmtn/
-  '') ["minInit" "defEnsureDir" "addInputs" "doUnpack"];
-
-  name = "viewmtn-0.10";
-  meta = {
-    description = "Monotone web interface";
-  };
-}
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 2b0d44e61c8a..29b215d06428 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -7,7 +7,7 @@
 }:
 
 let
-  version = "3.5.7";
+  version = "3.5.8";
 in with luaPackages;
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url    = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
-    sha256 = "ba7f92b0ab8b729c569b19b098b0a08339d8654e3c040d07ad02cf99641ceecf";
+    sha256 = "1iifcyphgibmh3cvsy8agjrl9zjl80scrg0bcgnwywmxaxncjc3w";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/build-support/fetchgitlocal/default.nix b/pkgs/build-support/fetchgitlocal/default.nix
index 60803ddcb1f8..7a25966e9fb5 100644
--- a/pkgs/build-support/fetchgitlocal/default.nix
+++ b/pkgs/build-support/fetchgitlocal/default.nix
@@ -34,7 +34,7 @@ let
 
       # dump tar of *current directory* at given revision
       git -C ${srcStr} archive --format=tar ${gitHash} \
-        | tar xvf - -C $out
+        | tar xf - -C $out
     '';
 
 in nixPath
diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix
index cad0c7a21f94..6ae844a62463 100644
--- a/pkgs/build-support/kernel/modules-closure.nix
+++ b/pkgs/build-support/kernel/modules-closure.nix
@@ -9,7 +9,7 @@
 stdenv.mkDerivation {
   name = kernel.name + "-shrunk";
   builder = ./modules-closure.sh;
-  buildInputs = [nukeReferences];
-  inherit kernel rootModules kmod allowMissing;
+  buildInputs = [ nukeReferences kmod ];
+  inherit kernel rootModules allowMissing;
   allowedReferences = ["out"];
 }
diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh
index d0ac88f69247..71d507b1e2b1 100644
--- a/pkgs/build-support/kernel/modules-closure.sh
+++ b/pkgs/build-support/kernel/modules-closure.sh
@@ -2,8 +2,6 @@ source $stdenv/setup
 
 set -o pipefail
 
-PATH=$kmod/sbin:$PATH
-
 version=$(cd $kernel/lib/modules && ls -d *)
 
 echo "kernel version is $version"
diff --git a/pkgs/data/fonts/arkpandora/default.nix b/pkgs/data/fonts/arkpandora/default.nix
index 189c066b13eb..55420e2d344e 100644
--- a/pkgs/data/fonts/arkpandora/default.nix
+++ b/pkgs/data/fonts/arkpandora/default.nix
@@ -1,6 +1,8 @@
-args : with args; 
-let version = lib.attrByPath ["version"] "2.04" args; in
-rec {
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  name = "arkpandora-${version}";
+  version = "2.04";
+
   src = fetchurl {
     urls = [
       "ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ttf-arkpandora-${version}.tgz"
@@ -10,13 +12,11 @@ rec {
     sha256 = "16mfxwlgn6vs3xn00hha5dnmz6bhjiflq138y4zcq3yhk0y9bz51";
   };
 
-  buildInputs = [];
-  configureFlags = [];
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp *.ttf $out/share/fonts/truetype
+  '';
 
-  /* doConfigure should be specified separately */
-  phaseNames = ["doUnpack" "installFonts"];
-      
-  name = "arkpandora-" + version;
   meta = {
     description = "Font, metrically identical to Arial and Times New Roman";
   };
diff --git a/pkgs/data/fonts/libertine/default.nix b/pkgs/data/fonts/libertine/default.nix
index eb28521a2b8a..b95b0f0beddf 100644
--- a/pkgs/data/fonts/libertine/default.nix
+++ b/pkgs/data/fonts/libertine/default.nix
@@ -1,4 +1,6 @@
-args @ { fetchurl, fontforge, lib, ... }: with args; rec {
+{ stdenv, fetchurl, fontforge }:
+
+stdenv.mkDerivation rec {
   name = "linux-libertine-5.3.0";
 
   src = fetchurl {
@@ -6,18 +8,37 @@ args @ { fetchurl, fontforge, lib, ... }: with args; rec {
     sha256 = "0x7cz6hvhpil1rh03rax9zsfzm54bh7r4bbrq8rz673gl9h47v0v";
   };
 
-  buildInputs = [ fontforge ];
+  setSourceRoot = "sourceRoot=`pwd`";
 
-  /* doConfigure should be specified separately */
-  phaseNames = ["doUnpack" "generateFontsFromSFD" "installFonts"];
+  buildInputs = [ fontforge ];
 
-  extraFontForgeCommands = ''
-    ScaleToEm(1000);
+  buildPhase = ''
+    for i in *.sfd; do
+      fontforge -c \
+        'Open($1);
+        ScaleToEm(1000);
+        Reencode("unicode");
+        Generate($1:r + ".ttf");
+        Generate($1:r + ".otf");
+        Reencode("TeX-Base-Encoding");
+        Generate($1:r + ".afm");
+        Generate($1:r + ".pfm");
+        Generate($1:r + ".pfb");
+        Generate($1:r + ".map");
+        Generate($1:r + ".enc");
+        ' $i;
+    done
   '';
 
-  doUnpack = lib.fullDepEntry ''
-      tar xf ${src}
-    '' ["minInit"];
+  installPhase = ''
+    mkdir -p $out/share/fonts/{opentype,truetype,type1}/public
+    mkdir -p $out/share/texmf/fonts/{enc,map}
+    cp *.otf $out/share/fonts/opentype/public
+    cp *.ttf $out/share/fonts/truetype/public
+    cp *.pfb $out/share/fonts/type1/public
+    cp *.enc $out/share/texmf/fonts/enc
+    cp *.map $out/share/texmf/fonts/map
+  '';
 
   meta = {
     description = "Linux Libertine Fonts";
diff --git a/pkgs/data/fonts/redhat-liberation-fonts/binary.nix b/pkgs/data/fonts/redhat-liberation-fonts/binary.nix
index df206fe13b5a..9cbe951cf4ae 100644
--- a/pkgs/data/fonts/redhat-liberation-fonts/binary.nix
+++ b/pkgs/data/fonts/redhat-liberation-fonts/binary.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl, liberation_ttf_from_source }:
 
 stdenv.mkDerivation rec {
   version = "2.00.1";
@@ -16,30 +16,5 @@ stdenv.mkDerivation rec {
     cp -v AUTHORS ChangeLog COPYING License.txt README "$out/doc/${name}" || true
   '';
 
-  meta = {
-    description = "Liberation Fonts, replacements for Times New Roman, Arial, and Courier New";
-    longDescription = ''
-      The Liberation Fonts are intended to be replacements for the three most
-      commonly used fonts on Microsoft systems: Times New Roman, Arial, and
-      Courier New.
-
-      There are three sets: Sans (a substitute for Arial, Albany, Helvetica,
-      Nimbus Sans L, and Bitstream Vera Sans), Serif (a substitute for Times
-      New Roman, Thorndale, Nimbus Roman, and Bitstream Vera Serif) and Mono
-      (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L, and
-      Bitstream Vera Sans Mono).
-
-      You are free to use these fonts on any system you would like.  You are
-      free to redistribute them under the GPL+exception license found in the
-      download.  Using these fonts does not subject your documents to the
-      GPL---it liberates them from any proprietary claim.
-    '';
-
-    # See `License.txt' for details.
-    license = stdenv.lib.licenses.gpl2Oss;
-    homepage = https://fedorahosted.org/liberation-fonts/;
-    maintainers = [
-      stdenv.lib.maintainers.raskin
-    ];
-  };
+  inherit (liberation_ttf_from_source) meta;
 }
diff --git a/pkgs/data/fonts/redhat-liberation-fonts/default.nix b/pkgs/data/fonts/redhat-liberation-fonts/default.nix
index cd5c50309412..80af5ab52d90 100644
--- a/pkgs/data/fonts/redhat-liberation-fonts/default.nix
+++ b/pkgs/data/fonts/redhat-liberation-fonts/default.nix
@@ -18,30 +18,24 @@ stdenv.mkDerivation rec {
     cp -v AUTHORS ChangeLog COPYING License.txt README "$out/doc/${name}" || true
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Liberation Fonts, replacements for Times New Roman, Arial, and Courier New";
     longDescription = ''
       The Liberation Fonts are intended to be replacements for the three most
       commonly used fonts on Microsoft systems: Times New Roman, Arial, and
-      Courier New.
+      Courier New. Since 2012 they are based on croscore fonts.
 
       There are three sets: Sans (a substitute for Arial, Albany, Helvetica,
       Nimbus Sans L, and Bitstream Vera Sans), Serif (a substitute for Times
       New Roman, Thorndale, Nimbus Roman, and Bitstream Vera Serif) and Mono
       (a substitute for Courier New, Cumberland, Courier, Nimbus Mono L, and
       Bitstream Vera Sans Mono).
-
-      You are free to use these fonts on any system you would like.  You are
-      free to redistribute them under the GPL+exception license found in the
-      download.  Using these fonts does not subject your documents to the
-      GPL---it liberates them from any proprietary claim.
     '';
 
-    # See `License.txt' for details.
-    license = stdenv.lib.licenses.gpl2Oss;
+    license = licenses.ofl;
     homepage = https://fedorahosted.org/liberation-fonts/;
     maintainers = [
-      stdenv.lib.maintainers.raskin
+      maintainers.raskin
     ];
   };
 }
diff --git a/pkgs/data/misc/geolite-legacy/default.nix b/pkgs/data/misc/geolite-legacy/default.nix
index eab577888d11..f0bf2834bed8 100644
--- a/pkgs/data/misc/geolite-legacy/default.nix
+++ b/pkgs/data/misc/geolite-legacy/default.nix
@@ -8,7 +8,7 @@ let
 in
 stdenv.mkDerivation rec {
   name = "geolite-legacy-${version}";
-  version = "2016-01-25";
+  version = "2016-02-01";
 
   srcGeoIP = fetchDB
     "GeoLiteCountry/GeoIP.dat.gz" "GeoIP.dat.gz"
@@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
     "1fksbnmda2a05cpax41h9r7jhi8102q41kl5nij4ai42d6yqy73x";
   srcGeoIPASNum = fetchDB
     "asnum/GeoIPASNum.dat.gz" "GeoIPASNum.dat.gz"
-    "1n7zlmnaxvjljyih9yi9hns530by21h42j2kcszbcyvn7rd9rnyw";
+    "1h47n8fn9dfjw672jbw67mn03bidaahwnkra464ggy1q4pwkvncs";
   srcGeoIPASNumv6 = fetchDB
     "asnum/GeoIPASNumv6.dat.gz" "GeoIPASNumv6.dat.gz"
-    "1id60almra7mq4v86p37sfph8jrbdnc5pzxvy55wiyrvf6ydvk56";
+    "0nnfp8xzrlcdvy8lvsw2mvfmxavj2gmm7bvr0l2pv07n863b873y";
 
   meta = with stdenv.lib; {
     description = "GeoLite Legacy IP geolocation databases";
diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix
index faaadf5bb91f..b541834a1c2a 100644
--- a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix
+++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "geocode-glib-3.18.0";
+  name = "geocode-glib-3.18.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/geocode-glib/3.18/geocode-glib-3.18.0.tar.xz;
-    sha256 = "8fb7f0d569e3e6696aaa1fdf275cb3094527ec5e9fa36fd88dd633dfec63495d";
+    url = mirror://gnome/sources/geocode-glib/3.18/geocode-glib-3.18.1.tar.xz;
+    sha256 = "75d12bf82575449b8290b7463e8b6cf1b99f2c9942db6391a3d5b0bbb600c365";
   };
 }
diff --git a/pkgs/development/compilers/gcl/default.nix b/pkgs/development/compilers/gcl/default.nix
index 1ea2894d88d7..25b1599fbea0 100644
--- a/pkgs/development/compilers/gcl/default.nix
+++ b/pkgs/development/compilers/gcl/default.nix
@@ -1,56 +1,52 @@
-a @ { mpfr, m4, binutils, fetchcvs, emacs, zlib, which
-, texinfo, libX11, xproto, inputproto, libXi
-, libXext, xextproto, libXt, libXaw, libXmu, stdenv, ... } :
-let
-  buildInputs = with a; [
+{ stdenv, fetchurl, mpfr, m4, binutils, fetchcvs, emacs, zlib, which
+, texinfo, libX11, xproto, inputproto, libXi, gmp
+, libXext, xextproto, libXt, libXaw, libXmu } :
+
+assert stdenv ? cc ;
+assert stdenv.cc.isGNU ;
+assert stdenv.cc ? libc ;
+assert stdenv.cc.libc != null ;
+
+stdenv.mkDerivation rec {
+  name = "gcl-${version}";
+  version = "2.6.12";
+
+  src = fetchurl {
+    sha256 = "1s4hs2qbjqmn9h88l4xvsifq5c3dlc5s74lyb61rdi5grhdlkf4f";
+    url = "http://gnu.spinellicreations.com/gcl/${name}.tar.gz";
+  };
+
+  buildInputs = [
     mpfr m4 binutils emacs gmp
     libX11 xproto inputproto libXi
     libXext xextproto libXt libXaw libXmu
     zlib which texinfo
   ];
-in
-
-(
-assert a.stdenv ? cc ;
-assert a.stdenv.cc.isGNU ;
-assert a.stdenv.cc ? libc ;
-assert a.stdenv.cc.libc != null ;
 
-rec {
-  src = a.fetchurl {
-    sha256 = "1s4hs2qbjqmn9h88l4xvsifq5c3dlc5s74lyb61rdi5grhdlkf4f";
-    url="http://gnu.spinellicreations.com/gcl/${name}.tar.gz";
-  };
-
-  name = "gcl-2.6.12";
-  inherit buildInputs;
   configureFlags = [
     "--enable-ansi"
   ];
 
   # Upstream bug submitted - http://savannah.gnu.org/bugs/index.php?30371
   # $TMPDIR must have no extension
-  setVars = a.noDepEntry ''
-    export TMPDIR="''${TMPDIR:-''${TMP:-''${TEMP}}}/tmp-for-gcl"
-    mkdir -p "$TMPDIR"
-  '';
+  # setVars = a.noDepEntry ''
+  #   export TMPDIR="''${TMPDIR:-''${TMP:-''${TEMP}}}/tmp-for-gcl"
+  #   mkdir -p "$TMPDIR"
+  # '';
 
-  preBuild = a.fullDepEntry (''
-    sed -re "s@/bin/cat@$(which cat)@g" -i configure */configure
-    sed -re "s@if test -d /proc/self @if false @" -i configure
-    sed -re 's^([ \t])cpp ^\1cpp -I${a.stdenv.cc.cc}/include -I${a.stdenv.cc.libc}/include ^g' -i makefile
-  '') ["minInit" "doUnpack" "addInputs"];
+  preBuild = ''
+    # sed -re "s@/bin/cat@$(which cat)@g" -i configure */configure
+    # sed -re "s@if test -d /proc/self @if false @" -i configure
+    # sed -re 's^([ \t])cpp ^\1cpp -I${stdenv.cc.cc}/include -I${stdenv.cc.libc}/include ^g' -i makefile
+  '';
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doUnpack" "preBuild"
-    "doConfigure" "doMakeInstall"];
-}) // {
+  # phaseNames = ["setVars" "doUnpack" "preBuild"
+  #   "doConfigure" "doMakeInstall"];
+
   meta = {
     description = "GNU Common Lisp compiler working via GCC";
-    maintainers = [
-      a.lib.maintainers.raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix b/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
index 516ef9ab92db..cbf21cb8f5bc 100644
--- a/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
+++ b/pkgs/development/compilers/ghcjs/ghcjs-boot.nix
@@ -1,7 +1,7 @@
 { fetchgit }:
 fetchgit {
   url = git://github.com/ghcjs/ghcjs-boot.git;
-  rev = "3529c6ab61d5f786bdde449fd069520664330b30";
-  sha256 = "0d33nmbwrdn7ai4lsrn3qzcfy71hbini0jl437387cxdh3z6sjqa";
+  rev = "97dea5c4145bf80a1e7cffeb1ecd4d0ecacd5a2f";
+  sha256 = "1cgjzm595l2dx6fibzbkyv23bp1857qia0hb9d8aghf006al558j";
   fetchSubmodules = true;
 }
diff --git a/pkgs/development/compilers/ghcjs/ghcjs.patch b/pkgs/development/compilers/ghcjs/ghcjs.patch
index 751f114ba43a..61bbb95b0a58 100644
--- a/pkgs/development/compilers/ghcjs/ghcjs.patch
+++ b/pkgs/development/compilers/ghcjs/ghcjs.patch
@@ -1,8 +1,8 @@
 diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs
-index 3c68dcf..64f3cf7 100644
+index db8b12e..7b815c5 100644
 --- a/src-bin/Boot.hs
 +++ b/src-bin/Boot.hs
-@@ -512,9 +512,7 @@ initPackageDB :: B ()
+@@ -526,9 +526,7 @@ initPackageDB :: B ()
  initPackageDB = do
    msg info "creating package databases"
    initDB "--global" <^> beLocations . blGlobalDB
@@ -12,7 +12,7 @@ index 3c68dcf..64f3cf7 100644
      initDB dbName db = do
        rm_rf db >> mkdir_p db
        ghcjs_pkg_ ["init", toTextI db] `catchAny_` return ()
-@@ -538,29 +536,22 @@ installDevelopmentTree = subTop $ do
+@@ -552,29 +550,22 @@ installDevelopmentTree = subTop $ do
    msgD info $ "preparing development boot tree"
    checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do
      testGit "ghcjs-boot" >>= \case
@@ -46,7 +46,7 @@ index 3c68dcf..64f3cf7 100644
        mapM_ patchPackage =<< allPackages
        preparePrimops
        buildGenPrim
-@@ -1085,8 +1076,11 @@ cabalInstallFlags parmakeGhcjs = do
+@@ -1110,14 +1101,14 @@ cabalInstallFlags parmakeGhcjs = do
             , "--avoid-reinstalls"
             , "--builddir",      "dist"
             , "--with-compiler", ghcjs ^. pgmLocText
@@ -58,13 +58,19 @@ index 3c68dcf..64f3cf7 100644
 +           , "--libsubdir",     "$pkgid"
             , bool haddock "--enable-documentation" "--disable-documentation"
             , "--haddock-html"
- -- workaround for hoogle support being broken in haddock for GHC 7.10RC1
+--- workaround for hoogle support being broken in haddock for GHC 7.10RC1
+-#if !(__GLASGOW_HASKELL__ >= 709)
+            , "--haddock-hoogle"
+-#endif
+            , "--haddock-hyperlink-source"
+ -- don't slow down Windows builds too much, on other platforms we get this more
+ -- or less for free, thanks to dynamic-too
 diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs
-index 33a401f..79833c5 100644
+index 33a401f..e2405a7 100644
 --- a/src/Compiler/Info.hs
 +++ b/src/Compiler/Info.hs
 @@ -48,13 +48,7 @@ compilerInfo nativeToo dflags = do
-
+ 
  -- | the directory to use if started without -B flag
  getDefaultTopDir :: IO FilePath
 -getDefaultTopDir = do
@@ -75,6 +81,6 @@ index 33a401f..79833c5 100644
 -        targetOS   = os
 -        subdir     = targetARCH ++ '-':targetOS ++ '-':getFullCompilerVersion
 +getDefaultTopDir = return "@PREFIX@/lib/ghcjs-@VERSION@"
-
+ 
  getDefaultLibDir :: IO FilePath
  getDefaultLibDir = getDefaultTopDir
diff --git a/pkgs/development/compilers/rustc/default.nix b/pkgs/development/compilers/rustc/default.nix
index ce1e4cf1f5ce..e7d440396821 100644
--- a/pkgs/development/compilers/rustc/default.nix
+++ b/pkgs/development/compilers/rustc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, callPackage }:
 
 callPackage ./generic.nix {
-  shortVersion = "1.5.0";
+  shortVersion = "1.6.0";
   isRelease = true;
   forceBundledLLVM = false;
   configureFlags = [ "--release-channel=stable" ];
-  srcSha = "1vfpwx6a2f2rn528774cz9r7r82ppycn8z8ybll6bphdw7cyar1g";
+  srcSha = "1dvpiswl0apknizsz9bcrjnc4c43ys191a1b9gm3569xdlmxr36w";
 
   /* Rust is bootstrapped from an earlier built version. We need
   to fetch these earlier versions, which vary per platform.
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index 2cefc4cfc137..4ef521218e68 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -2,11 +2,11 @@
 { stdenv, callPackage }:
 
 callPackage ./generic.nix {
-  shortVersion = "2016-01-10";
+  shortVersion = "2016-02-01";
   isRelease = false;
   forceBundledLLVM = false;
-  srcRev = "d70ab2bdf16c22b9f3ff0230089b44855e3f1593";
-  srcSha = "13ssis1bdgg8sdkgrvxcbd1qcfmf7q6bv4akfxrjgdm44l1n1l97";
+  srcRev = "094c5b0d6";
+  srcSha = "0908xzxb4q8vqwmzi5c2vzrhfsrw7d18r4n7mq3ir5671y9cqpvz";
 
   /* Rust is bootstrapped from an earlier built version. We need
   to fetch these earlier versions, which vary per platform.
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 6e8c0be7d0d9..dd51b99bf930 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -12,7 +12,7 @@ self: super: {
   # LLVM is not supported on this GHC; use the latest one.
   inherit (pkgs) llvmPackages;
 
-  inherit (pkgs.haskell.packages.ghc7102) jailbreak-cabal alex happy gtk2hs-buildtools;
+  inherit (pkgs.haskell.packages.ghc7103) jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
   # This is the list of packages that are built into a booted ghcjs installation
   # It can be generated with the command:
@@ -85,6 +85,25 @@ self: super: {
     '';
   });
 
+  ghcjs-ffiqq = self.callPackage
+    ({ mkDerivation, base, template-haskell, ghcjs-base, split, containers, text, ghc-prim
+     }:
+     mkDerivation {
+       pname = "ghcjs-ffiqq";
+       version = "0.1.0.0";
+       src = pkgs.fetchFromGitHub {
+         owner = "ghcjs";
+         repo = "ghcjs-ffiqq";
+         rev = "da31b18582542fcfceade5ef6b2aca66662b9e20";
+         sha256 = "1mkp8p9hispyzvkb5v607ihjp912jfip61id8d42i19k554ssp8y";
+       };
+       libraryHaskellDepends = [
+         base template-haskell ghcjs-base split containers text ghc-prim
+       ];
+       description = "FFI QuasiQuoter for GHCJS";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   ghcjs-dom = overrideCabal super.ghcjs-dom (drv: {
     libraryHaskellDepends =
       removeLibraryHaskellDepends [
diff --git a/pkgs/development/haskell-modules/hoogle.nix b/pkgs/development/haskell-modules/hoogle.nix
index 14464ceca80d..58db9737d32c 100644
--- a/pkgs/development/haskell-modules/hoogle.nix
+++ b/pkgs/development/haskell-modules/hoogle.nix
@@ -23,13 +23,34 @@
 # This will build mmorph and monadControl, and have the hoogle installation
 # refer to their documentation via symlink so they are not garbage collected.
 
-{ lib, stdenv, hoogle, rehoo
+{ lib, stdenv, hoogle, rehoo, writeText
 , ghc, packages ? [ ghc.ghc ]
 }:
 
 let
   inherit (stdenv.lib) optional;
   wrapper = ./hoogle-local-wrapper.sh;
+  isGhcjs = ghc.isGhcjs or false;
+  opts = lib.optionalString;
+  haddockExe =
+    if !isGhcjs
+    then "haddock"
+    else "haddock-ghcjs";
+  ghcName =
+    if !isGhcjs
+    then "ghc"
+    else "ghcjs";
+  docLibGlob =
+    if !isGhcjs
+    then ''share/doc/ghc*/html/libraries''
+    else ''doc/lib'';
+  # On GHCJS, use a stripped down version of GHC's prologue.txt
+  prologue =
+    if !isGhcjs
+    then "${ghc}/${docLibGlob}/prologue.txt"
+    else writeText "ghcjs-prologue.txt" ''
+      This index includes documentation for many Haskell modules.
+    '';
 in
 stdenv.mkDerivation {
   name = "hoogle-local-0.1";
@@ -58,17 +79,19 @@ stdenv.mkDerivation {
     }
 
     echo importing builtin packages
-    for docdir in ${ghc}/share/doc/ghc*/html/libraries/*; do
+    for docdir in ${ghc}/${docLibGlob}/*; do
+      name="$(basename $docdir)"
+      ${opts isGhcjs ''docdir="$docdir/html"''}
       if [[ -d $docdir ]]; then
         import_dbs $docdir
-        ln -sfn $docdir $out/share/doc/hoogle
+        ln -sfn $docdir $out/share/doc/hoogle/$name
       fi
     done
 
     echo importing other packages
     for i in $docPackages; do
       if [[ ! $i == $out ]]; then
-        for docdir in $i/share/doc/*-ghc-*/* $i/share/doc/*; do
+        for docdir in $i/share/doc/*-${ghcName}-*/* $i/share/doc/*; do
           name=`basename $docdir`
           docdir=$docdir/html
           if [[ -d $docdir ]]; then
@@ -99,9 +122,9 @@ stdenv.mkDerivation {
         args="$args --read-interface=$name_version,$hdfile"
     done
 
-    ${ghc}/bin/haddock --gen-index --gen-contents -o . \
+    ${ghc}/bin/${haddockExe} --gen-index --gen-contents -o . \
          -t "Haskell Hierarchical Libraries" \
-         -p ${ghc}/share/doc/ghc*/html/libraries/prologue.txt \
+         -p ${prologue} \
          $args
 
     echo finishing up
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index e723133e256d..f1e2315d7941 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -1,45 +1,35 @@
-a :  
-let 
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, sbcl }:
+
+stdenv.mkDerivation rec {
+  name = "acl2-${version}";
+  version = "v6-5";
 
-  version = a.lib.attrByPath ["version"] "v6-5" a; 
-  buildInputs = with a; [
-    sbcl
-  ];
-in
-rec {
   src = fetchurl {
     url = "http://www.cs.utexas.edu/users/moore/acl2/${version}/distrib/acl2.tar.gz";
     sha256 = "19kfclgpdyms016s06pjf3icj3mx9jlcj8vfgpbx2ac4ls0ir36g";
     name = "acl2-${version}.tar.gz";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
+  buildInputs = [ sbcl ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doDeploy" "doBuild"];
-  
-  makeFlags = ["LISP='${a.sbcl}/bin/sbcl'"];
+  phases = "unpackPhase installPhase";
 
   installSuffix = "acl2";
-  doDeploy = (a.simplyShare installSuffix);
-  doBuild = a.fullDepEntry (''
+
+  installPhase = ''
+    mkdir -p $out/share/${installSuffix}
+    cp -R . $out/share/${installSuffix}
     cd $out/share/${installSuffix}
-    make LISP='${a.sbcl}/bin/sbcl --dynamic-space-size 2000'
-    make LISP='${a.sbcl}/bin/sbcl --dynamic-space-size 2000' regression
-    mkdir -p "$out/bin"
-    cp saved_acl2 "$out/bin/acl2"
-  '') ["doDeploy" "addInputs" "defEnsureDir"];
-      
-  name = "acl2-" + version;
+    make 'LISP=${sbcl}/bin/sbcl --dynamic-space-size 2000'
+    make 'LISP=${sbcl}/bin/sbcl --dynamic-space-size 2000' regression
+    make LISP=${sbcl}/bin/sbcl TAGS
+    mkdir -p $out/bin
+    cp saved_acl2 $out/bin/acl2
+  '';
+
   meta = {
     description = "An interpreter and a prover for a Lisp dialect";
-    maintainers = with a.lib.maintainers; 
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    maintainers = with stdenv.lib.maintainers; [ raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libcutl/default.nix b/pkgs/development/libraries/libcutl/default.nix
new file mode 100644
index 000000000000..526890ed5637
--- /dev/null
+++ b/pkgs/development/libraries/libcutl/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, xercesc }:
+with stdenv; with lib;
+mkDerivation rec {
+  name = "libcutl-${meta.major}.${meta.minor}";
+
+  meta = {
+    major = "1.9";
+    minor = "0";
+    description = "A collection of generic and independent components such as meta-programming tests, smart pointers, containers, compiler building blocks" ;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ];
+    license = licenses.mit;
+  };
+
+  src = fetchurl {
+    url = "http://codesynthesis.com/download/libcutl/1.9/${name}.tar.bz2";
+    sha1 = "0e8d255145afbc339a3284ef85a43f4baf3fec43";
+  };
+
+  buildInputs = [ xercesc ];
+}
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index c1519ca5b830..40bb9a5a140d 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -8,7 +8,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline ];
   propagatedBuildInputs = [ libusbmuxd glib libgcrypt libtasn1 libplist openssl ];
 
-  patchPhase = ''sed -e 's@1\.3\.21@@' -i configure'';
+  patches = [ ./disable_sslv3.patch ];
+
+  postPatch = ''sed -e 's@1\.3\.21@@' -i configure'';
   passthru.swig = libplist.swig;
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/libimobiledevice/disable_sslv3.patch b/pkgs/development/libraries/libimobiledevice/disable_sslv3.patch
new file mode 100644
index 000000000000..646b829496fa
--- /dev/null
+++ b/pkgs/development/libraries/libimobiledevice/disable_sslv3.patch
@@ -0,0 +1,25 @@
+From e19de4f0d4cb70e30017edfc6b4ca1b89ffbd381 Mon Sep 17 00:00:00 2001
+From: Franz Pletz <fpletz@fnordicwalking.de>
+Date: Thu, 14 Jan 2016 14:58:23 +0100
+Subject: [PATCH] Disable SSLv3
+
+---
+ src/idevice.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/idevice.c b/src/idevice.c
+index ce27495..8f03094 100644
+--- a/src/idevice.c
++++ b/src/idevice.c
+@@ -678,7 +678,7 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_connection_enable_ssl(idevice_conne
+ 	}
+ 	BIO_set_fd(ssl_bio, (int)(long)connection->data, BIO_NOCLOSE);
+ 
+-	SSL_CTX *ssl_ctx = SSL_CTX_new(SSLv3_method());
++	SSL_CTX *ssl_ctx = SSL_CTX_new(SSLv23_method());
+ 	if (ssl_ctx == NULL) {
+ 		debug_info("ERROR: Could not create SSL context.");
+ 		BIO_free(ssl_bio);
+-- 
+2.7.0
+
diff --git a/pkgs/development/libraries/libsrs2/default.nix b/pkgs/development/libraries/libsrs2/default.nix
new file mode 100644
index 000000000000..19b490a0f186
--- /dev/null
+++ b/pkgs/development/libraries/libsrs2/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, lib, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libsrs2-${version}";
+  version = "1.0.18";
+
+  src = fetchurl {
+    url = "http://www.libsrs2.org/srs/libsrs2-${version}.tar.gz";
+    sha256 = "9d1191b705d7587a5886736899001d04168392bbb6ed6345a057ade50943a492";
+  };
+
+  meta = {
+    description = "The next generation SRS library from the original designer of SRS";
+    license = with lib.licenses; [ gpl2 bsd3 ];
+    homepage = http://www.libsrs2.org/;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/libraries/ncbi/default.nix b/pkgs/development/libraries/ncbi/default.nix
deleted file mode 100644
index 88f6740f7334..000000000000
--- a/pkgs/development/libraries/ncbi/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-a @ { tcsh, mesa, lesstif, libX11, libXaw, xproto, libXt, libSM, libICE, libXmu, libXext, ... }:
-let
-  fetchurl = a.fetchurl;
-
-  version = "20090809";
-  buildInputs = with a; [
-    tcsh libX11 libXaw lesstif xproto mesa libXt
-    libSM libICE libXmu libXext
-  ];
-in
-rec {
-  src = fetchurl {
-    url = "ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/old/${version}/ncbi.tar.gz";
-    sha256 = "05bbnqk6ffvhi556fsabcippzq2zrkynbk09qblzvfzip9hlk1qc";
-  };
-
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["preBuild" "build" "deploy"];
-
-  preBuild = a.fullDepEntry (''
-    sed -e 's@#!/bin/csh@#! ${a.tcsh}/bin/csh@' -i $(fgrep '#!/bin/csh' -rl build make)
-    sed -e '/set path/d' -i make/ln-if-absent
-    sed -e 's@/usr/include @${a.lesstif}/include ${a.mesa}/include @' -i make/makedis.csh
-    sed -e 's@/usr/[a-zA-Z0-9]*/include @@g; s@/usr/include/[a-zA-Z0-9/] @@g' -i make/makedis.csh 
-    cd ..
-  '') ["doUnpack" "minInit"];
-
-  build = a.fullDepEntry (''
-    ./ncbi/make/makedis.csh
-  '') ["preBuild" "addInputs"];
-
-  deploy = a.fullDepEntry (''
-    mkdir -p $out/bin $out/lib $out/include $out/source $out/share/${name}/build-snapshot
-    cd ncbi/build
-    cp *.o *.so $out/lib
-    cp -r . $out/share/${name}/build-snapshot
-    cp ../make/makedis.csh $out/share/${name}/build-snapshot
-    cp *.h $out/include 
-    cp *.c *.h $out/source
-    find . -perm -0100 -a '(' '(' ! -name '*.*' ')' -o '(' -name '*.REAL' ')' ')' -exec cp '{}' $out/bin ';'
-  '') ["defEnsureDir" "build" "minInit"];
-      
-  name = "NCBI-Toolbox-" + version;
-  meta = {
-    description = "NCBI general-purpose portable toolkit";
-    maintainers = [
-      a.lib.maintainers.raskin
-    ];
-    #platforms = a.lib.platforms.linux ;
-  };
-}
diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix
index 53fce61a999e..fb25037e167d 100644
--- a/pkgs/development/mobile/titaniumenv/build-app.nix
+++ b/pkgs/development/mobile/titaniumenv/build-app.nix
@@ -20,6 +20,28 @@ let
     security default-keychain -s login.keychain
     security delete-keychain $keychainName
   '';
+  
+  # On Mac OS X, the java executable shows an -unoffical postfix in the version
+  # number. This confuses the build script's version detector.
+  # We fix this by creating a wrapper that strips it out of the output.
+  
+  javaVersionFixWrapper = stdenv.mkDerivation {
+    name = "javaVersionFixWrapper";
+    buildCommand = ''
+      mkdir -p $out/bin
+      cat > $out/bin/javac <<EOF
+      #! ${stdenv.shell} -e
+      
+      if [ "\$1" = "-version" ]
+      then
+          ${jdk}/bin/javac "\$@" 2>&1 | sed "s|-unofficial||" | sed "s|-u60|_60|" >&2
+      else
+          exec ${jdk}/bin/javac "\$@"
+      fi
+      EOF
+      chmod +x $out/bin/javac
+    '';
+  };
 in
 stdenv.mkDerivation {
   name = stdenv.lib.replaceChars [" "] [""] name;
@@ -49,6 +71,13 @@ stdenv.mkDerivation {
     
     ${if target == "android" then
         ''
+          ${stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") ''
+            # Hack to make version detection work with OpenJDK on Mac OS X
+            export PATH=${javaVersionFixWrapper}/bin:$PATH
+            export JAVA_HOME=${javaVersionFixWrapper}
+            javac -version
+          ''}
+          
           titanium config --config-file $TMPDIR/config.json --no-colors android.sdk ${androidsdkComposition}/libexec/android-sdk-*
           titanium config --config-file $TMPDIR/config.json --no-colors android.buildTools.selectedVersion 23.0.1
           
@@ -162,7 +191,7 @@ stdenv.mkDerivation {
                bundleId=$(grep '<id>[a-zA-Z0-9.]*</id>' tiapp.xml | sed -e 's|<id>||' -e 's|</id>||' -e 's/ //g')
                version=$(grep '<version>[a-zA-Z0-9.]*</version>' tiapp.xml | sed -e 's|<version>||' -e 's|</version>||' -e 's/ //g')
                
-               sed -e "s|@INSTALL_URL@|${installURL}?bundleId=$bundleId\&amp;version=$version\&amp;title=$appname|" ${../xcodeenv/install.html.template} > $out/$appname.html
+               sed -e "s|@INSTALL_URL@|${installURL}?bundleId=$bundleId\&amp;version=$version\&amp;title=$appname|" ${../xcodeenv/install.html.template} > "$out/$appname.html"
                echo "doc install \"$out/$appname.html\"" >> $out/nix-support/hydra-build-products
              ''}
            ''
diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix
index 6dd80a216ded..ffeefdbbbcfa 100644
--- a/pkgs/development/mobile/titaniumenv/examples/default.nix
+++ b/pkgs/development/mobile/titaniumenv/examples/default.nix
@@ -5,17 +5,16 @@
 , tiVersion ? "5.1.2.GA"
 , rename ? false
 , newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? "", iosVersion ? "9.2"
-, allowUnfree ? false
 , enableWirelessDistribution ? false, installURL ? null
 }:
 
 let
-  pkgs = import nixpkgs { config.allowUnfree = allowUnfree; };
+  pkgs = import nixpkgs {};
 in
 rec {
   kitchensink_android_debug = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
+    pkgs = import nixpkgs { inherit system; };
   in
   import ./kitchensink {
     inherit (pkgs) fetchgit;
@@ -26,7 +25,7 @@ rec {
   
   kitchensink_android_release = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
+    pkgs = import nixpkgs { inherit system; };
   in
   import ./kitchensink {
     inherit (pkgs) fetchgit;
@@ -38,7 +37,7 @@ rec {
   
   emulate_kitchensink_debug = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
+    pkgs = import nixpkgs { inherit system; };
   in
   import ./emulate-kitchensink {
     inherit (pkgs) androidenv;
@@ -47,7 +46,7 @@ rec {
   
   emulate_kitchensink_release = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
+    pkgs = import nixpkgs { inherit system; };
   in
   import ./emulate-kitchensink {
     inherit (pkgs) androidenv;
@@ -74,7 +73,7 @@ rec {
   };
 } else {}) // (if rename then
   let
-    pkgs = import nixpkgs { system = "x86_64-darwin"; config.allowUnfree = allowUnfree; };
+    pkgs = import nixpkgs { system = "x86_64-darwin"; };
   in
   {
     kitchensink_ipa = import ./kitchensink {
diff --git a/pkgs/development/python-modules/libsexy/default.nix b/pkgs/development/python-modules/libsexy/default.nix
index 5e0d391a3380..b0fa789d157b 100644
--- a/pkgs/development/python-modules/libsexy/default.nix
+++ b/pkgs/development/python-modules/libsexy/default.nix
@@ -1,31 +1,26 @@
-a @ { python, libsexy, pkgconfig, libxml2, pygtk, pango, gtk, glib, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, buildPythonPackage, libsexy, pkgconfig, libxml2, pygtk, pango, gtk, glib, }:
+
+stdenv.mkDerivation rec {
+  name = "python-libsexy-${version}";
+  version = "0.1.9";
 
-  version = a.lib.attrByPath ["version"] "0.1.9" a;
-  buildInputs = with a; [
-    pkgconfig pygtk
-  ];
-  propagatedBuildInputs = with a; [
-    libsexy python gtk glib pango libxml2
-  ];
-in
-rec {
   src = fetchurl {
     url = "http://releases.chipx86.com/libsexy/sexy-python/sexy-python-${version}.tar.gz";
     sha256 = "05bgcsxwkp63rlr8wg6znd46cfbhrzc5wh70jabsi654pxxjb39d";
   };
 
-  inherit buildInputs propagatedBuildInputs;
-  configureFlags = [];
+  buildInputs = [
+    pkgconfig pygtk
+  ];
+
+  propagatedBuildInputs = [
+    libsexy gtk glib pango libxml2
+  ];
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall" "postInstall"];
-  postInstall = a.fullDepEntry (''
+  postInstall = ''
     ln -s $out/lib/python*/site-packages/gtk-2.0/* $out/lib/python*/site-packages/
-  '') ["minInit"];
+  '';
 
-  name = "python-libsexy-" + version;
   meta = {
     description = "Python libsexy bindings";
   };
diff --git a/pkgs/development/tools/build-managers/cargo/default.nix b/pkgs/development/tools/build-managers/cargo/default.nix
index aa3df6fb1ce5..e0094b4350a7 100644
--- a/pkgs/development/tools/build-managers/cargo/default.nix
+++ b/pkgs/development/tools/build-managers/cargo/default.nix
@@ -5,7 +5,7 @@ with rustPlatform;
 
 with ((import ./common.nix) {
   inherit stdenv rustc;
-  version = "0.7.0";
+  version = "0.8.0";
 });
 
 buildRustPackage rec {
@@ -15,10 +15,10 @@ buildRustPackage rec {
   src = fetchgit {
     url = "git://github.com/rust-lang/cargo";
     rev = "refs/tags/${version}";
-    sha256 = "139rv7d6mk31klbnccmn573i05ygjrnflag6c3qwc075i62yfmx6";
+    sha256 = "02z0b6hpygjjfbskg22ggrhdv2nasrgf8x1fd8y0qzg4krx2czlh";
   };
 
-  depsSha256 = "07p244bcw3aa1hfbsz6q89pyl8ypkw9zp1r8cvd131w890w9ab4b";
+  depsSha256 = "1gwc5ygs3h8jxs506xmbj1xzaqpb3kmg3pkxg9j9yqy616jw6rcn";
 
   buildInputs = [ file curl pkgconfig python openssl cmake zlib makeWrapper ];
 
diff --git a/pkgs/games/jamp/default.nix b/pkgs/games/jamp/default.nix
deleted file mode 100644
index be7abc75915d..000000000000
--- a/pkgs/games/jamp/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-a @ { mesa, SDL, SDL_image, SDL_mixer, ... } :
-let
-  s = import ./src-for-default.nix;
-  buildInputs = with a; [
-    mesa SDL SDL_mixer SDL_image
-
-  ];
-in
-rec {
-  src = a.fetchUrlFromSrcInfo s;
-
-  inherit (s) name;
-  inherit buildInputs;
-  configureFlags = [];
-
-  preBuild = a.fullDepEntry (''
-    sed -e "s@/usr/games@$out/bin@g" -i Makefile
-    sed -e "s@/usr/@$out/@g" -i Makefile
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.SDL}/include/SDL"
-  '') ["minInit" "addInputs" "doUnpack"];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["preBuild" "doMakeInstall"];
-
-  meta = {
-    description = "A physics-based game";
-    maintainers = [ a.lib.maintainers.raskin ];
-    platforms = a.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/games/jamp/src-for-default.nix b/pkgs/games/jamp/src-for-default.nix
deleted file mode 100644
index c5980b251c0a..000000000000
--- a/pkgs/games/jamp/src-for-default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-rec {
-   version="1.0.2";
-   name="jamp-1.0.2";
-   hash="13cjggyx63wmlcvpyllmd7aknfd4vzhxnwm030mas7z3h6wcsmk7";
-   url="http://perre.noud.ch/jamp/download.php?file=jamp-${version}.tar.gz";
-   advertisedUrl="http://perre.noud.ch/jamp/download.php?file=jamp-1.0.2.tar.gz";
-  
-  
-}
diff --git a/pkgs/games/jamp/src-info-for-default.nix b/pkgs/games/jamp/src-info-for-default.nix
deleted file mode 100644
index 9fb4ab9dbcc2..000000000000
--- a/pkgs/games/jamp/src-info-for-default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  downloadPage = "http://perre.noud.ch/jamp/";
-  baseName = "jamp";
-}
diff --git a/pkgs/games/lincity/default.nix b/pkgs/games/lincity/default.nix
index 6cd5155e3af1..dba488016b99 100644
--- a/pkgs/games/lincity/default.nix
+++ b/pkgs/games/lincity/default.nix
@@ -1,24 +1,19 @@
-args @ { libX11, libXext, xextproto, libICE, libSM, xproto, libpng, zlib, ... }: with args;
-let
-  version = lib.attrByPath ["version"] "1.12.1" args;
-  sha256 = lib.attrByPath ["sha256"]
-    "0xmrp7vkkp1hfblb6nl3rh2651qsbcm21bnncpnma1sf40jaf8wj" args;
-  pkgName = "lincity";
-in
-rec {
+{ stdenv, fetchurl, libX11, libXext, xextproto, libICE, libSM, xproto, libpng, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "lincity-${version}";
+  version = "1.12.1";
+
   src = fetchurl {
-    url = "mirror://sourceforge/lincity/${pkgName}-${version}.tar.gz";
-    inherit sha256;
+    url = "mirror://sourceforge/lincity/${name}.tar.gz";
+    sha256 = "0xmrp7vkkp1hfblb6nl3rh2651qsbcm21bnncpnma1sf40jaf8wj";
   };
 
-  buildInputs = [libICE libpng libSM libX11 libXext
-    xextproto zlib xproto];
-  configureFlags = [];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "doMakeInstall"];
+  buildInputs = [
+    libICE libpng libSM libX11 libXext
+    xextproto zlib xproto
+  ];
 
-  name = "${pkgName}-" + version;
   meta = {
     description = "City simulation game";
   };
diff --git a/pkgs/games/vassal/default.nix b/pkgs/games/vassal/default.nix
new file mode 100644
index 000000000000..319453c80194
--- /dev/null
+++ b/pkgs/games/vassal/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "VASSAL-3.2.15";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/vassalengine/${name}-linux.tar.bz2";
+    sha256 = "10ng571nxr5zc2nlviyrk5bci8my67kq3qvhfn9bifzkxmjlqmk9";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/vassal $out/doc
+
+    cp CHANGES LICENSE README $out
+    cp -R lib/* $out/share/vassal
+    cp -R doc/* $out/doc
+
+    makeWrapper ${jre}/bin/java $out/bin/vassal \
+      --add-flags "-Duser.dir=$out -cp $out/share/vassal/Vengine.jar \
+      VASSAL.launch.ModuleManager"
+  '';
+
+  # Don't move doc to share/, VASSAL expects it to be in the root
+  forceShare = [ "man" "info" ];
+
+  meta = with stdenv.lib; {
+      description = "A free, open-source boardgame engine";
+      homepage = http://www.vassalengine.org/;
+      license = licenses.lgpl21;
+      maintainers = with maintainers; [ tvestelind ];
+      platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/zangband/default.nix b/pkgs/games/zangband/default.nix
index 110eff9397ce..ab7a6d7cb432 100644
--- a/pkgs/games/zangband/default.nix
+++ b/pkgs/games/zangband/default.nix
@@ -1,35 +1,40 @@
-a @ { ncurses, flex, bison, autoconf, automake, m4, coreutils, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, ncurses, flex, bison, autoconf, automake, m4, coreutils }:
+
+stdenv.mkDerivation rec {
+  name = "zangband-${version}";
+  version = "2.7.3";
 
-  version = a.lib.attrByPath ["version"] "2.7.3" a;
-  buildInputs = with a; [
-    ncurses flex bison autoconf automake m4
-  ];
-in
-rec {
   src = fetchurl {
     url = "ftp://ftp.sunet.se/pub/games/Angband/Variant/ZAngband/zangband-${version}.tar.gz";
     sha256 = "0654m8fzklsc8565sqdad76mxjsm1z9c280srq8863sd10af0bdq";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
+  buildInputs = [
+    ncurses flex bison autoconf automake m4
+  ];
 
-  preConfigure = a.fullDepEntry (''
+  # fails during chmod due to broken permissions
+  dontMakeSourcesWritable = true;
+  postUnpack = ''
     chmod a+rwX -R .
+  '';
+
+  preConfigure = ''
     sed -re 's/ch(own|grp|mod)/true/' -i lib/*/makefile.zb makefile.in
     sed -e '/FIXED_PATHS/d' -i src/z-config.h
     ./bootstrap
+  '';
+
+  preInstall = ''
     mkdir -p $out/share/games/zangband
     mkdir -p $out/share/man
     mkdir -p $out/bin
-  '') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
+  '';
 
-  postInstall = a.fullDepEntry (''
+  postInstall = ''
     mv $out/bin/zangband $out/bin/.zangband.real
     echo '#! /bin/sh
-      PATH="$PATH:${a.coreutils}/bin"
+      PATH="$PATH:${coreutils}/bin"
 
       ZANGBAND_PATH="$HOME/.zangband"
       ORIG_PATH="'$out'"/share/games/zangband
@@ -49,14 +54,10 @@ rec {
       "'$out'/bin/.zangband.real" "$@"
     ' > $out/bin/zangband
     chmod +x $out/bin/zangband
-  '') ["minInit" "doUnpack"];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["preConfigure" "doConfigure" "doMakeInstall" "postInstall"];
+  '';
 
-  name = "zangband-" + version;
   meta = {
     description = "rogue-like game";
-    license = a.lib.licenses.unfree;
+    license = stdenv.lib.licenses.unfree;
   };
 }
diff --git a/pkgs/misc/emulators/wine/versions.nix b/pkgs/misc/emulators/wine/versions.nix
index 56a20a971ef9..d2c4cc6e43e6 100644
--- a/pkgs/misc/emulators/wine/versions.nix
+++ b/pkgs/misc/emulators/wine/versions.nix
@@ -12,8 +12,8 @@ rec {
     monoSha256 = "09dwfccvfdp3walxzp6qvnyxdj2bbyw9wlh6cxw2sx43gxriys5c";
   };
   unstable = {
-    wineVersion = "1.9.1";
-    wineSha256 = "1dhbp2jy9s3rqsbgc43jz967n2rls8dwdfi96qdxybg8kbxnachb";
+    wineVersion = "1.9.2";
+    wineSha256 = "0yjf0i2yc0yj366kg6b2ci9bwz3jq5k5vl01bqw4lbpgf5m4sk9k";
     inherit (stable)
       geckoVersion geckoSha256
       gecko64Version gecko64Sha256
@@ -21,7 +21,7 @@ rec {
   };
   staging = {
     version = unstable.wineVersion;
-    sha256 = "05072wgxy8n6i71bb6649sm0ggh5c4g97clryrr8vkmgsklfkadi";
+    sha256 = "05lxhl9rv936xh8v640l36xswszwc41iwpbjq7n5cwk361mdh1lp";
   };
   winetricks = {
     version = "20160109";
diff --git a/pkgs/os-specific/linux/drbd/default.nix b/pkgs/os-specific/linux/drbd/default.nix
index 4c945a7fbac7..d90d6faac396 100644
--- a/pkgs/os-specific/linux/drbd/default.nix
+++ b/pkgs/os-specific/linux/drbd/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = "SHELL=${stdenv.shell}";
 
-  installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc INITDIR=$(out)/etc/init.d";
+  installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc INITDIR=$(out)/etc/init.d DESTDIR=$(out)";
 
   meta = {
     homepage = http://www.drbd.org/;
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 90b4a6a48244..fc54715ea7b8 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -21,6 +21,12 @@
 with stdenv.lib;
 
 ''
+  # Compress kernel modules for a sizable disk space savings.
+  ${optionalString (versionAtLeast version "3.18") ''
+    MODULE_COMPRESS y
+    MODULE_COMPRESS_XZ y
+  ''}
+
   # Debugging.
   DEBUG_KERNEL y
   TIMER_STATS y
@@ -355,6 +361,9 @@ with stdenv.lib;
   X86_CHECK_BIOS_CORRUPTION y
   X86_MCE y
 
+  # PCI-Expresscard hotplug support
+  HOTPLUG_PCI_PCIE y
+
   # Linux containers.
   NAMESPACES? y #  Required by 'unshare' used by 'nixos-install'
   RT_GROUP_SCHED? y
diff --git a/pkgs/os-specific/linux/kernel/cve-2016-0728.patch b/pkgs/os-specific/linux/kernel/cve-2016-0728.patch
deleted file mode 100644
index 5eec95c62930..000000000000
--- a/pkgs/os-specific/linux/kernel/cve-2016-0728.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 05fd13592b60c3e9873f56705f80ff934e98b046 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Jan 2016 10:53:31 +0000
-Subject: [PATCH] KEYS: Fix keyring ref leak in join_session_keyring()
-
-This fixes CVE-2016-0728.
-
-If a thread is asked to join as a session keyring the keyring that's already
-set as its session, we leak a keyring reference.
-
-This can be tested with the following program:
-
-	#include <stddef.h>
-	#include <stdio.h>
-	#include <sys/types.h>
-	#include <keyutils.h>
-
-	int main(int argc, const char *argv[])
-	{
-		int i = 0;
-		key_serial_t serial;
-
-		serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
-				"leaked-keyring");
-		if (serial < 0) {
-			perror("keyctl");
-			return -1;
-		}
-
-		if (keyctl(KEYCTL_SETPERM, serial,
-			   KEY_POS_ALL | KEY_USR_ALL) < 0) {
-			perror("keyctl");
-			return -1;
-		}
-
-		for (i = 0; i < 100; i++) {
-			serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,
-					"leaked-keyring");
-			if (serial < 0) {
-				perror("keyctl");
-				return -1;
-			}
-		}
-
-		return 0;
-	}
-
-If, after the program has run, there something like the following line in
-/proc/keys:
-
-3f3d898f I--Q---   100 perm 3f3f0000     0     0 keyring   leaked-keyring: empty
-
-with a usage count of 100 * the number of times the program has been run,
-then the kernel is malfunctioning.  If leaked-keyring has zero usages or
-has been garbage collected, then the problem is fixed.
-
-Reported-by: Yevgeny Pats <yevgeny@perception-point.io>
-Signed-off-by: David Howells <dhowells@redhat.com>
-RH-bugzilla: 1298036
----
- security/keys/process_keys.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c
-index 43b4cddbf2b3..7877e5cd4e23 100644
---- a/security/keys/process_keys.c
-+++ b/security/keys/process_keys.c
-@@ -794,6 +794,7 @@ long join_session_keyring(const char *name)
- 		ret = PTR_ERR(keyring);
- 		goto error2;
- 	} else if (keyring == new->session_keyring) {
-+		key_put(keyring);
- 		ret = 0;
- 		goto error2;
- 	}
--- 
-2.5.0
-
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 59d3642e6227..af14434b08f2 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -57,10 +57,6 @@ let
     autoModules = stdenv.platform.kernelAutoModules;
     arch = stdenv.platform.kernelArch;
 
-    preConfigure = ''
-        buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=Thu Jan 1 00:00:01 UTC 1970")
-    '';
-
     crossAttrs = let
         cp = stdenv.cross.platform;
       in {
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index 6a4531d9deb4..afca9b9c35e4 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.92";
+  version = "3.10.96";
   extraMeta.branch = "3.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0z0jdix1mfpnnc8cxw7rzpnhxdayckpnrasvxi1qf0dwhcqgk92d";
+    sha256 = "0wnlvbyg92q48kz5cn3bznjkkzpsik8z51dqhcxdpddy1k6iqb3k";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index 1e58d4e50291..378a2b854f9e 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.12.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.12.50";
+  version = "3.12.53";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1bn07wsrcbg4qgqd4v2810c3qc0ifbcza0fyj8s54yd78g9qj4lj";
+    sha256 = "1f2h4z8lk1s0h5lw7n3yb47dhpbr7gzma7ifsslwhyjg7s44cb27";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix
index 62f1be8b92b1..9ad5a336de3b 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix
@@ -1,16 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.14.58";
-  # Remember to update grsecurity!
+  version = "3.14.60";
   extraMeta.branch = "3.14";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "0jw1023cpn4bjmi0db86lrxri9xj75cj8p2iqs44jabvh35idl7l";
+    sha256 = "1zwq0j4slqg33z4yyk5s35hdzrq0g7jk1bd2kvgvkyqn1dkkvh0j";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.18.nix b/pkgs/os-specific/linux/kernel/linux-3.18.nix
index 86258308c1e0..9b90ea3556b1 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.18.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.18.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.18.25";
+  version = "3.18.26";
   extraMeta.branch = "3.18";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "14pz8mvk48i2y1ffkhczjcm2icpb2g9xlpzyrvvis42n5178fjf6";
+    sha256 = "0bhf8x1h5crc9kimprjs7q74p86gsqsdr8nz54nv33c6zmryqsic";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.1.nix b/pkgs/os-specific/linux/kernel/linux-4.1.nix
index 29d4870597a3..fbcfa17a8bc7 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.1.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.1.15";
+  version = "4.1.17";
   extraMeta.branch = "4.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18sr0dl5ax6pcx6nqp9drb4l6a38g07vxihiqpbwb231jv68h8j7";
+    sha256 = "084ij19vgm27ljrjabqqmlqn27p168nsm9grhr6rajid4n79h6ab";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index cf17e915f8bf..18bc11926214 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,16 +1,15 @@
 { stdenv, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.4";
-  modDirVersion = "4.4.0";
+  version = "4.4.1";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2";
+    sha256 = "0mwaqvl7dkasidciah1al57a1djnsk46ha5mjy4psq2inj71klky";
   };
 
-  kernelPatches = args.kernelPatches ++ [ { name = "cve-2016-0728"; patch = ./cve-2016-0728.patch; } ];
+  kernelPatches = args.kernelPatches;
 
   features.iwlwifi = true;
   features.efiBootStub = true;
diff --git a/pkgs/os-specific/linux/kernel/linux.upstream.template b/pkgs/os-specific/linux/kernel/linux.upstream.template
deleted file mode 100644
index 624b83d45b33..000000000000
--- a/pkgs/os-specific/linux/kernel/linux.upstream.template
+++ /dev/null
@@ -1,13 +0,0 @@
-url "http://www.kernel.org/pub/linux/kernel/v3.x/${LINUX_VERSION_RC:+testing/}"
-version_link "linux-${LINUX_VERSION}.*tar[.]xz\$"
-version '.*linux-([0-9.]+(-rc[0-9]+)?)[.]tar.*' '\1'
-target "linux-${LINUX_VERSION}.nix"
-name "linux_${LINUX_VERSION/./_}"
-
-do_overwrite() {
-  ensure_hash
-  set_var_value version "$CURRENT_VERSION"
-  set_var_value sha256 "$CURRENT_HASH"
-  [ -n "$LINUX_VERSION_RC" ] && set_var_value testing true '' '' 1
-  [ -z "$LINUX_VERSION_RC" ] && set_var_value testing false '' '' 1
-}
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 4a826ff7ae3d..2b1e55a880a0 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -102,7 +102,8 @@ let
         make $makeFlags "''${makeFlagsArray[@]}" oldconfig
         runHook postConfigure
 
-        buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=Thu Jan 1 00:00:01 UTC 1970")
+        # Note: we can get rid of this once http://permalink.gmane.org/gmane.linux.kbuild.devel/13800 is merged.
+        buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=$(date -u -d @$SOURCE_DATE_EPOCH)")
       '';
 
       buildFlags = [
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index 1b12a0076b45..12449a0a7dda 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -8,11 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "10lzfkmnpq6a43a3gkx7x633njh216w0bjwz31rv8a1jlgg1sfxs";
   };
 
-  # Disable xz/zlib support to prevent needing them in the initrd.
-  
-  buildInputs = [ pkgconfig libxslt /* xz zlib */ ];
+  buildInputs = [ pkgconfig libxslt xz /* zlib */ ];
 
-  configureFlags = [ "--sysconfdir=/etc" /* "--with-xz" "--with-zlib" */ ];
+  configureFlags = [ "--sysconfdir=/etc" "--with-xz" /* "--with-zlib" */ ];
 
   patches = [ ./module-dir.patch ];
 
diff --git a/pkgs/servers/quagga/default.nix b/pkgs/servers/quagga/default.nix
new file mode 100644
index 000000000000..cdc2905d62db
--- /dev/null
+++ b/pkgs/servers/quagga/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, libcap, libnl, readline, net_snmp, less, perl, texinfo }:
+
+stdenv.mkDerivation rec {
+  name = "quagga-${version}";
+  version = "0.99.24.1";
+
+  src = fetchurl {
+    url = "mirror://savannah/quagga/${name}.tar.gz";
+    sha256 = "0kvmc810m7ssrvgb3213271rpywyxb646v5bzjl1jl88vx3imbl4";
+  };
+
+  buildInputs =
+    [ readline net_snmp ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ libcap libnl ];
+
+  nativeBuildInputs = [ perl texinfo ];
+
+  configureFlags = [
+    "--sysconfdir=/etc/quagga"
+    "--localstatedir=/run/quagga"
+    "--sbindir=$(out)/libexec/quagga"
+    "--disable-exampledir"
+    "--enable-user=quagga"
+    "--enable-group=quagga"
+    "--enable-configfile-mask=0640"
+    "--enable-logfile-mask=0640"
+    "--enable-vtysh"
+    "--enable-vty-group=quaggavty"
+    "--enable-snmp"
+    "--enable-multipath=64"
+    "--enable-rtadv"
+    "--enable-irdp"
+    "--enable-opaque-lsa"
+    "--enable-ospf-te"
+    "--enable-pimd"
+    "--enable-isis-topology"
+  ];
+
+  preConfigure = ''
+    substituteInPlace vtysh/vtysh.c --replace \"more\" \"${less}/bin/less\"
+  '';
+
+  postInstall = ''
+    rm -f $out/bin/test_igmpv3_join
+    mv -f $out/libexec/quagga/ospfclient $out/bin/
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Quagga BGP/OSPF/ISIS/RIP/RIPNG routing daemon suite";
+    longDescription = ''
+      GNU Quagga is free software which manages TCP/IP based routing protocols.
+      It supports BGP4, BGP4+, OSPFv2, OSPFv3, IS-IS, RIPv1, RIPv2, and RIPng as
+      well as the IPv6 versions of these.
+
+      As the predecessor Zebra has been considered orphaned, the Quagga project
+      has been formed by members of the zebra mailing list and the former
+      zebra-pj project to continue developing.
+
+      Quagga uses threading if the kernel supports it, but can also run on
+      kernels that do not support threading. Each protocol has its own daemon.
+
+      It is more than a routed replacement, it can be used as a Route Server and
+      a Route Reflector.
+    '';
+    homepage = http://www.quagga.net/;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ tavyc ];
+  };
+}
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index b9ea5d7c5828..bb9e73d31cd3 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1568,11 +1568,11 @@ let
   }) // {inherit ;};
 
   xf86inputevdev = (mkDerivation "xf86inputevdev" {
-    name = "xf86-input-evdev-2.10.0";
+    name = "xf86-input-evdev-2.10.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-evdev-2.10.0.tar.bz2;
-      sha256 = "05yihr84rf209yyjvin8ab55h504b30c7dck8kgrwykvn272k5yh";
+      url = mirror://xorg/individual/driver/xf86-input-evdev-2.10.1.tar.bz2;
+      sha256 = "05z05n39v8s2b0hwhcjb1bca7j8gc62bv9jxnibawwmjym3jp75g";
     };
     buildInputs = [pkgconfig inputproto udev xorgserver xproto ];
     meta.platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index ddda39c76f7f..d0a812e45d6a 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -119,7 +119,7 @@ mirror://xorg/individual/proto/xextproto-7.3.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
-mirror://xorg/individual/driver/xf86-input-evdev-2.10.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-evdev-2.10.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.8.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-libinput-0.16.0.tar.bz2
diff --git a/pkgs/servers/xmpp/pyIRCt/default.nix b/pkgs/servers/xmpp/pyIRCt/default.nix
index 4481ad4a14a6..f732e29acc95 100644
--- a/pkgs/servers/xmpp/pyIRCt/default.nix
+++ b/pkgs/servers/xmpp/pyIRCt/default.nix
@@ -1,37 +1,39 @@
-a @ { xmpppy, pythonIRClib, python, makeWrapper, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, xmpppy, pythonIRClib, python, pythonPackages } :
+
+stdenv.mkDerivation rec {
+  name = "pyIRCt-${version}";
+  version = "0.4";
 
-  version = a.lib.attrByPath ["version"] "0.4" a;
-  buildInputs = with a; [
-    xmpppy pythonIRClib python makeWrapper
-  ];
-in
-rec {
   src = fetchurl {
     url = "mirror://sourceforge/xmpppy/irc-transport-${version}.tar.gz";
     sha256 = "0gbc0dvj1p3088b6x315yjrlwnc5vvzp0var36wlf9z60ghvk8yb";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
+  buildInputs = [ pythonPackages.wrapPython ];
+
+  pythonPath = [
+    xmpppy pythonIRClib
+  ];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/irc.py" a.pythonWrapperArguments)];
-  deploy = a.fullDepEntry (''
+  # phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/irc.py" a.pythonWrapperArguments)];
+
+  installPhase = ''
     mkdir -p $out/bin $out/share/${name}
-    sed -e 's@/usr/bin/@${a.python}/bin/@' -i irc.py
+    sed -e 's@/usr/bin/@${python}/bin/@' -i irc.py
     sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyIRCt.xml"]' -i config.py
     sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-irc-transport.xml"]' -i config.py
     sed -e '/configFiles/iimport os' -i config.py
-    cp * $out/share/$name
-    echo "#! /bin/sh" > $out/bin/pyIRCt
-    echo "cd $out/share/${name}" >> $out/bin/pyIRCt
-    echo "./irc.py \"$@\"" >> $out/bin/pyIRCt
+    cp * $out/share/${name}
+    cat > $out/bin/pyIRCt <<EOF
+      #! /bin/sh
+      cd $out/share/${name}
+      ./irc.py \"$@\"
+    EOF
     chmod a+rx  $out/bin/pyIRCt $out/share/${name}/irc.py
-  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+    wrapPythonPrograms
+  '';
 
-  name = "pyIRCt-" + version;
   meta = {
     description = "IRC transport module for XMPP";
   };
diff --git a/pkgs/servers/xmpp/pyMAILt/default.nix b/pkgs/servers/xmpp/pyMAILt/default.nix
index eb4f55f7aebd..f5a91b28633f 100644
--- a/pkgs/servers/xmpp/pyMAILt/default.nix
+++ b/pkgs/servers/xmpp/pyMAILt/default.nix
@@ -1,39 +1,37 @@
-a @ { xmpppy, python, makeWrapper, fetchcvs, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, python, xmpppy, pythonPackages, fetchcvs } :
 
-  buildInputs = with a; [
-    xmpppy python makeWrapper
-  ];
-in
-rec {
-  src = a.fetchcvs {
+stdenv.mkDerivation rec {
+  name = "pyMAILt-${version}";
+  version = "20090101";
+
+  src = fetchcvs {
 		cvsRoot = ":pserver:anonymous@xmpppy.cvs.sourceforge.net:/cvsroot/xmpppy";
 		module = "xmpppy/mail-transport";
 		date = "2009-01-01";
 		sha256 = "15301252e52b4ccb2156baefed8982a2a0cce3ae8eae3caf3cc28dfa615c8d6e";
 	};
 
-  inherit buildInputs;
-  configureFlags = [];
+  pythonPath = [ xmpppy ];
+  buildInputs = [ pythonPackages.wrapPython ];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["deploy" (a.makeManyWrappers "$out/share/${name}/mail.py" a.pythonWrapperArguments)];
-  deploy = a.fullDepEntry (''
+  installPhase = ''
     cd mail-transport
     mkdir -p $out/bin $out/share/${name}
-    sed -e 's@/usr/bin/@${a.python}/bin/@' -i mail.py
+    sed -e 's@/usr/bin/@${python}/bin/@' -i mail.py
     sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.pyMAILt.xml"]' -i config.py
     sed -e '/configFiles/aconfigFiles += [os.getenv("HOME")+"/.python-mail-transport.xml"]' -i config.py
     sed -e '/configFiles/iimport os' -i config.py
     cp * $out/share/$name
-    echo "#! /bin/sh" > $out/bin/pyMAILt
-    echo "cd $out/share/${name}" >> $out/bin/pyMAILt
-    echo "./mail.py \"$@\"" >> $out/bin/pyMAILt
+    cat > $out/bin/pyMAILt <<EOF
+      #! /bin/sh
+      cd $out/share/${name}
+      ./mail.py \"$@\"
+    EOF
     chmod a+rx  $out/bin/pyMAILt $out/share/${name}/mail.py
-  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+    wrapPythonPrograms
+  '';
 
-  name = "pyMAILt-20090101";
   meta = {
     description = "Email transport module for XMPP";
   };
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 1419b180d728..11eeb18661c0 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     sed -i "s|(hostname\||(${nettools}/bin/hostname\||" "$out/share/fish/functions/fish_prompt.fish"
     sed -i "s|Popen(\['manpath'|Popen(\['${man_db}/bin/manpath'|" "$out/share/fish/tools/create_manpage_completions.py"
+    sed -i "s|command manpath|command ${man_db}/bin/manpath|" "$out/share/fish/functions/man.fish"
   '' + ''
     sed -i "s|/sbin /usr/sbin||" \
            "$out/share/fish/functions/__fish_complete_subcommand_root.fish"
diff --git a/pkgs/tools/admin/webdruid/default.nix b/pkgs/tools/admin/webdruid/default.nix
deleted file mode 100644
index ee4dabf78e78..000000000000
--- a/pkgs/tools/admin/webdruid/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-a @ { zlib, libpng, freetype, gd, which, libxml2, geoip, ... } :
-let
-  s = import ./src-for-default.nix;
-  buildInputs = with a; [
-    zlib libpng freetype gd which libxml2
-    geoip
-  ];
-in
-rec {
-  src = a.fetchUrlFromSrcInfo s;
-
-  inherit (s) name;
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall" "doLinks"];
-
-  doLinks = a.fullDepEntry (''
-    ln -s shared_en.xsl $out/share/webdruid/classic/shared.xsl
-  '') ["minInit"];
-
-  meta = {
-    description = "A web log analyzer";
-    maintainers = [
-      a.lib.maintainers.raskin
-    ];
-    platforms = a.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/tools/admin/webdruid/src-for-default.nix b/pkgs/tools/admin/webdruid/src-for-default.nix
deleted file mode 100644
index 73102be6afe5..000000000000
--- a/pkgs/tools/admin/webdruid/src-for-default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-rec {
-  advertisedUrl="http://downloads.sourceforge.net/webdruid/files/webdruid/0.6.0-alpha5/webdruid-0.6.0-alpha5.tar.gz";
-  version = "0.6.0-alpha5";
-  url="mirror://sourceforge/webdruid/webdruid-${version}.tar.gz";
-  hash = "1aiqffccayvf02snl9la62zqb1674cp4rv19af6xyxgvw4334hw0";
-  name = "webdruid-0.6.0-alpha5";
-  
-}
diff --git a/pkgs/tools/admin/webdruid/src-info-for-default.nix b/pkgs/tools/admin/webdruid/src-info-for-default.nix
deleted file mode 100644
index 9a4eff296828..000000000000
--- a/pkgs/tools/admin/webdruid/src-info-for-default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-  downloadPage = "http://sourceforge.net/projects/webdruid/files/";
-  choiceCommand = ''head -1 | sed -re "$skipRedirectSF"'';
-  versionExtractorSedScript = ''$extractReleaseSF'';
-  versionReferenceCreator = ''s@$version@\''${version}@g'';
-  baseName = "webdruid";
-}
diff --git a/pkgs/tools/backup/obnam/default.nix b/pkgs/tools/backup/obnam/default.nix
index 1854071d6cc2..c287efe8e112 100644
--- a/pkgs/tools/backup/obnam/default.nix
+++ b/pkgs/tools/backup/obnam/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonPackage rec {
   name = "obnam-${version}";
-  version = "1.19";
+  version = "1.19.1";
 
   namePrefix = "";
 
   src = fetchurl rec {
     url = "http://code.liw.fi/debian/pool/main/o/obnam/obnam_${version}.orig.tar.xz";
-    sha256 = "1591f3mqhgda486wkpb8q4mq685sy6yn3ypbpzx77wii51licxar";
+    sha256 = "096abbvz2c9vm8r7zm82yqrd7zj04pb1xzlv6z0dspkngd0cfdqc";
   };
 
   buildInputs = [ pythonPackages.sphinx attr ];
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 138ae58da064..c357c96fac8d 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -1,42 +1,19 @@
-a @ { cmake, patchelf, imagemagick, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, cmake, patchelf, imagemagick }:
 
+stdenv.mkDerivation rec {
+  name = "cuneiform-${version}";
   version = "1.1.0";
-  buildInputs = with a; [
-    cmake imagemagick patchelf
-  ];
-in
-rec {
+
   src = fetchurl {
     url = "https://launchpad.net/cuneiform-linux/1.1/1.1/+download/cuneiform-linux-1.1.0.tar.bz2";
     sha256 = "1bdvppyfx2184zmzcylskd87cxv56d8f32jf7g1qc8779l2hszjp";
   };
 
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doCmake" "doMakeInstall" "postInstall"];
-
-  libc = if a.stdenv ? glibc then a.stdenv.glibc else "";
-
-  doCmake = a.fullDepEntry(''
-    mkdir -p $PWD/builddir
-    cd builddir
-    export NIX_LDFLAGS="$NIX_LDFLAGS -ldl -L$out/lib"
-    cmake .. -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=$out -DDL_LIB=${libc}/lib
-  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
-
-  needLib64 = a.stdenv.system == "x86_64-linux";
-
-  postInstall = a.fullDepEntry(''
-    patchelf --set-rpath $out/lib${if needLib64 then "64" else ""}${if a.stdenv.cc.cc != null then ":${a.stdenv.cc.cc}/lib" else ""}${if a.stdenv.cc.cc != null && needLib64 then ":${a.stdenv.cc.cc}/lib64" else ""}:${a.imagemagick}/lib $out/bin/cuneiform
-  '') ["minInit" "addInputs" "doMakeInstall"];
+  buildInputs = [
+    cmake imagemagick
+  ];
 
-  name = "cuneiform-" + version;
   meta = {
-    inherit version;
     description = "Multi-language OCR system";
   };
 }
diff --git a/pkgs/tools/graphics/welkin/default.nix b/pkgs/tools/graphics/welkin/default.nix
index 3d1a2aa5bdc0..6e268ef5941d 100644
--- a/pkgs/tools/graphics/welkin/default.nix
+++ b/pkgs/tools/graphics/welkin/default.nix
@@ -1,57 +1,35 @@
-x@{builderDefsPackage
-  , jre
-  , ...}:
-builderDefsPackage
-(a :
-let
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
-    ["jre"];
+{ stdenv, fetchsvn, jre, makeWrapper }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="welkin";
-    version="1.1";
-    name="${baseName}-${version}";
-    url="http://simile.mit.edu/dist/welkin/${name}.tar.gz";
-    hash="0hr2xvfz887fdf2ysiqydv6m13gbdl5x0fh4960i655d5imvd5x0";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
+stdenv.mkDerivation rec {
+  name = "welkin-${version}";
+  version = "1.1";
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  src = fetchsvn {
+    url = "http://simile.mit.edu/repository/welkin";
+    rev = "9638";
+    sha256 = "1bqh3vam7y805xrmdw7k0ckcfwjg88wypxgv3njkkwyn7kxnfnqp";
+  };
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doDeploy" "createBin"];
+  sourceRoot = "welkin-r9638/tags/${version}";
 
-  doDeploy = a.simplyShare "welkin";
+  buildInputs = [ jre makeWrapper ];
 
-  createBin = a.fullDepEntry ''
-    mkdir -p "$out/bin"
-    echo "#! ${a.stdenv.shell}" > "$out/bin/welkin"
-    echo "export JAVA_HOME=${jre}" >> "$out/bin/welkin"
-    echo "\"$out/share/welkin/welkin.sh\" \"\$@\"" >> "$out/bin/welkin"
-    sed -e 's@[.]/lib/welkin[.]jar@"'"$out"'/share/welkin/lib/welkin.jar"@' -i "$out/share/welkin/welkin.sh"
-    chmod a+x "$out/bin/welkin"
-  '' ["minInit" "defEnsureDir"];
+  installPhase = ''
+    mkdir -p $out/{bin,share}
+    cp -R . $out/share
+    cp $out/share/welkin.sh $out/bin/welkin
+    sed -e 's@\./lib/welkin\.jar@'"$out"'/share/lib/welkin.jar@' -i $out/bin/welkin
+    wrapProgram $out/bin/welkin \
+      --set JAVA_HOME ${jre}
+    chmod a+x $out/bin/welkin
+  '';
 
   meta = {
     description = "An RDF visualizer";
-    maintainers = with a.lib.maintainers;
-    [
+    maintainers = with stdenv.lib.maintainers; [
       raskin
     ];
     hydraPlatforms = [];
-    license = a.lib.licenses.free;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://simile.mit.edu/dist/welkin/";
-    };
+    license = stdenv.lib.licenses.free;
   };
-}) x
+}
diff --git a/pkgs/tools/misc/gnokii/default.nix b/pkgs/tools/misc/gnokii/default.nix
index c0593e5c0177..d1551eb4ccd6 100644
--- a/pkgs/tools/misc/gnokii/default.nix
+++ b/pkgs/tools/misc/gnokii/default.nix
@@ -1,31 +1,25 @@
-a @ { intltool, perl, gettext, libusb, pkgconfig, bluez, readline, pcsclite, libical, gtk, glib, libXpm, ... } :
-let
-  fetchurl = a.fetchurl;
+{ stdenv, fetchurl, intltool, perl, gettext, libusb, pkgconfig, bluez
+, readline, pcsclite, libical, gtk, glib, libXpm }:
 
-  s = import ./src-for-default.nix;
-  buildInputs = with a; [
+stdenv.mkDerivation rec {
+  name = "gnokii-${version}";
+  version = "0.6.31";
+
+  src = fetchurl {
+    sha256 = "0sjjhm40662bj6j0jh3sd25b8nww54nirpwamz618rg6pb5hjwm8";
+    url = "http://www.gnokii.org/download/gnokii/${name}.tar.gz";
+  };
+
+  buildInputs = [
     perl intltool gettext libusb
     glib gtk pkgconfig bluez readline
     libXpm pcsclite libical
   ];
-in
-
-assert a.stdenv ? glibc;
-
-rec {
-  src = a.fetchUrlFromSrcInfo s;
-
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = [ "doConfigure" "doMakeInstall"];
 
-  inherit(s) name;
   meta = {
     description = "Cellphone tool";
     homepage = http://www.gnokii.org;
-    maintainers = [a.lib.maintainers.raskin];
-    platforms = with a.lib.platforms; linux;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/gnokii/src-for-default.nix b/pkgs/tools/misc/gnokii/src-for-default.nix
deleted file mode 100644
index af2768ddfa3b..000000000000
--- a/pkgs/tools/misc/gnokii/src-for-default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-rec {
-   version="0.6.31";
-   name="gnokii-0.6.31";
-   hash="0sjjhm40662bj6j0jh3sd25b8nww54nirpwamz618rg6pb5hjwm8";
-   url="http://www.gnokii.org/download/gnokii/gnokii-${version}.tar.gz";
-   advertisedUrl="http://www.gnokii.org/download/gnokii/gnokii-0.6.31.tar.gz";
-  
-  
-}
diff --git a/pkgs/tools/misc/gnokii/src-info-for-default.nix b/pkgs/tools/misc/gnokii/src-info-for-default.nix
deleted file mode 100644
index 6d68b555b181..000000000000
--- a/pkgs/tools/misc/gnokii/src-info-for-default.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  downloadPage = "http://www.gnokii.org/download/gnokii/?C=M;O=D";
-  baseName = "gnokii";
-}
diff --git a/pkgs/tools/networking/altermime/default.nix b/pkgs/tools/networking/altermime/default.nix
index 1c9dbfe62354..e532739ecd4f 100644
--- a/pkgs/tools/networking/altermime/default.nix
+++ b/pkgs/tools/networking/altermime/default.nix
@@ -1,50 +1,28 @@
-x@{builderDefsPackage
-  
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="altermime";
-    version="0.3.10";
-    name="${baseName}-${version}";
-    url="http://www.pldaniels.com/${baseName}/${name}.tar.gz";
-    hash="0vn3vmbcimv0n14khxr1782m76983zz9sf4j2kz5v86lammxld43";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
+stdenv.mkDerivation rec {
+  baseName = "altermime";
+  name = "${baseName}-${version}";
+  version = "0.3.10";
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  src = fetchurl {
+    url = "http://www.pldaniels.com/${baseName}/${name}.tar.gz";
+    sha256 = "0vn3vmbcimv0n14khxr1782m76983zz9sf4j2kz5v86lammxld43";
+  };
 
-  patches = map a.fetchurl (import ./debian-patches.nix);
+  patches = map fetchurl (import ./debian-patches.nix);
 
-  phaseNames = ["doPatch" "fixTarget" "doMakeInstall"];
-  fixTarget = a.fullDepEntry (''
+  postPatch = ''
     sed -i Makefile -e "s@/usr/local@$out@"
     mkdir -p "$out/bin"
-  '') ["doUnpack" "minInit" "defEnsureDir"];
-      
+  '';
+
   meta = {
     description = "MIME alteration tool";
-    maintainers = with a.lib.maintainers;
-    [
+    maintainers = with stdenv.lib.maintainers; [
       raskin
     ];
-    platforms = with a.lib.platforms;
-      linux;
+    platforms = with stdenv.lib.platforms; linux;
     downloadPage = "http://www.pldaniels.com/altermime/";
-    inherit version;
-    updateWalker = true;
   };
-}) x
-
+}
diff --git a/pkgs/tools/networking/email/default.nix b/pkgs/tools/networking/email/default.nix
new file mode 100644
index 000000000000..2ff22c061811
--- /dev/null
+++ b/pkgs/tools/networking/email/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, openssl }:
+
+let
+  eMailSrc = fetchFromGitHub {
+    #awaiting acceptance of https://github.com/deanproxy/eMail/pull/29
+    owner = "jerith666";
+    repo = "eMail";
+    rev = "d9fd259f952b573d320916ee34e807dd3dd24b1f";
+    sha256 = "0q4ly4bhlv6lrlj5kmjs491aah1afmkjyw63i9yqnz4d2k6npvl9";
+  };
+
+  srcRoot = "eMail-${eMailSrc.rev}-src";
+
+  dlibSrc = fetchFromGitHub {
+    owner = "deanproxy";
+    repo = "dlib";
+    rev = "f62f29e918748b7cea476220f7492672be81c9de";
+    sha256 = "0h34cikch98sb7nsqjnb9wl384c8ndln3m6yb1172l4y89qjg9rr";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "email-git-2016-01-31";
+  src = eMailSrc;
+
+  buildInputs = [ openssl ];
+
+  unpackPhase = ''
+    unpackPhase;
+    cp -Rp ${dlibSrc}/* ${srcRoot}/dlib;
+    chmod -R +w ${srcRoot}/dlib;
+  '';
+
+  meta = {
+    description = "Command line SMTP client";
+    license = with lib.licenses; [ gpl2 ];
+    homepage = http://deanproxy.com/code;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index fecaabe95f94..73e92aa4b8e5 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -23,11 +23,11 @@ let
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "openssh-6.9p1";
+  name = "openssh-7.1p2";
 
   src = fetchurl {
     url = "mirror://openbsd/OpenSSH/portable/${name}.tar.gz";
-    sha256 = "1zkci5nbpb4frmzj2vr3kv9j47x2h72kvybcpr0d8mzk73sls1vf";
+    sha256 = "1gbbvszz74lkc7b2mqr3ccgpm65zj0k5h7a2ssh0c7pjvhjg0xfx";
   };
 
   prePatch = optionalString hpnSupport
@@ -36,7 +36,16 @@ stdenv.mkDerivation rec {
       export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
     '';
 
-  patches = [ ./locale_archive.patch ./openssh-6.9p1-security-7.0.patch ./disable-roaming.patch ]
+  patches =
+    [ ./locale_archive.patch
+
+      # Fix "HostKeyAlgoritms +...", which we need to enable DSA
+      # host key support.
+      (fetchurl {
+        url = "https://pkgs.fedoraproject.org/cgit/rpms/openssh.git/plain/openssh-7.1p1-hostkeyalgorithms.patch?id=c98f5597250d6f9a8e8d96960beb6306d150ef0f";
+        sha256 = "029lzp9qv1af8wdm0wwj7qwjj1nimgsjj214jqm3amwz0857qgvp";
+      })
+    ]
     ++ optional withGssapiPatches gssapiSrc;
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ]
diff --git a/pkgs/tools/networking/openssh/disable-roaming.patch b/pkgs/tools/networking/openssh/disable-roaming.patch
deleted file mode 100644
index cd81d52f6c18..000000000000
--- a/pkgs/tools/networking/openssh/disable-roaming.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b842c1891b9979e30a6b53292a236ceb9231be79 Mon Sep 17 00:00:00 2001
-From: Franz Pletz <fpletz@fnordicwalking.de>
-Date: Thu, 14 Jan 2016 16:25:50 +0100
-Subject: [PATCH] Disable roaming, fixes CVE-2016-0777 and CVE-0216-0778
-
-Based on http://ftp.openbsd.org/pub/OpenBSD/patches/5.8/common/010_ssh.patch.sig
----
- readconf.c | 5 ++---
- ssh.c      | 3 ---
- 2 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/readconf.c b/readconf.c
-index db7d0bb..5b03f97 100644
---- a/readconf.c
-+++ b/readconf.c
-@@ -1660,7 +1660,7 @@ initialize_options(Options * options)
- 	options->tun_remote = -1;
- 	options->local_command = NULL;
- 	options->permit_local_command = -1;
--	options->use_roaming = -1;
-+	options->use_roaming = 0;
- 	options->visual_host_key = -1;
- 	options->ip_qos_interactive = -1;
- 	options->ip_qos_bulk = -1;
-@@ -1835,8 +1835,7 @@ fill_default_options(Options * options)
- 		options->tun_remote = SSH_TUNID_ANY;
- 	if (options->permit_local_command == -1)
- 		options->permit_local_command = 0;
--	if (options->use_roaming == -1)
--		options->use_roaming = 1;
-+	options->use_roaming = 0;
- 	if (options->visual_host_key == -1)
- 		options->visual_host_key = 0;
- 	if (options->ip_qos_interactive == -1)
-diff --git a/ssh.c b/ssh.c
-index 3fd5a94..e8428b5 100644
---- a/ssh.c
-+++ b/ssh.c
-@@ -1931,9 +1931,6 @@ ssh_session2(void)
- 			fork_postauth();
- 	}
- 
--	if (options.use_roaming)
--		request_roaming();
--
- 	return client_loop(tty_flag, tty_flag ?
- 	    options.escape_char : SSH_ESCAPECHAR_NONE, id);
- }
--- 
-2.7.0
-
diff --git a/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch b/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch
deleted file mode 100644
index 02e9eb3a9739..000000000000
--- a/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-http://pkgs.fedoraproject.org/cgit/openssh.git/commit/openssh-6.9p1-security-7.0.patch?h=f22&id=4776fad91e7e1f626f33e8c240d0ccecd663554d
-
-diff --git a/sshpty.c b/sshpty.c
-index 7bb7641..15da8c6 100644
---- a/sshpty.c
-+++ b/sshpty.c
-@@ -1,4 +1,4 @@
--/* $OpenBSD: sshpty.c,v 1.29 2014/09/03 18:55:07 djm Exp $ */
-+/* $OpenBSD: sshpty.c,v 1.30 2015/07/30 23:09:15 djm Exp $ */
- /*
-  * Author: Tatu Ylonen <ylo@cs.hut.fi>
-  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
-@@ -197,7 +197,7 @@ pty_setowner(struct passwd *pw, const char *tty)
- 	/* Determine the group to make the owner of the tty. */
- 	grp = getgrnam("tty");
- 	gid = (grp != NULL) ? grp->gr_gid : pw->pw_gid;
--	mode = (grp != NULL) ? 0622 : 0600;
-+	mode = (grp != NULL) ? 0620 : 0600;
- 
- 	/*
- 	 * Change owner and mode of the tty as required.
-diff --git a/monitor.c b/monitor.c
-index b410965..f1b873d 100644
---- a/monitor.c
-+++ b/monitor.c
-@@ -1084,9 +1084,7 @@ extern KbdintDevice sshpam_device;
- int
- mm_answer_pam_init_ctx(int sock, Buffer *m)
- {
--
- 	debug3("%s", __func__);
--	authctxt->user = buffer_get_string(m, NULL);
- 	sshpam_ctxt = (sshpam_device.init_ctx)(authctxt);
- 	sshpam_authok = NULL;
- 	buffer_clear(m);
-@@ -1166,14 +1166,16 @@ mm_answer_pam_respond(int sock, Buffer *m)
- int
- mm_answer_pam_free_ctx(int sock, Buffer *m)
- {
-+	int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt;
- 
- 	debug3("%s", __func__);
- 	(sshpam_device.free_ctx)(sshpam_ctxt);
-+	sshpam_ctxt = sshpam_authok = NULL;
- 	buffer_clear(m);
- 	mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m);
- 	auth_method = "keyboard-interactive";
- 	auth_submethod = "pam";
--	return (sshpam_authok == sshpam_ctxt);
-+	return r;
- }
- #endif
- 
-diff --git a/monitor_wrap.c b/monitor_wrap.c
-index e6217b3..eac421b 100644
---- a/monitor_wrap.c
-+++ b/monitor_wrap.c
-@@ -614,7 +614,6 @@ mm_sshpam_init_ctx(Authctxt *authctxt)
- 
- 	debug3("%s", __func__);
- 	buffer_init(&m);
--	buffer_put_cstring(&m, authctxt->user);
- 	mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m);
- 	debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__);
- 	mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m);
diff --git a/pkgs/tools/security/rarcrack/default.nix b/pkgs/tools/security/rarcrack/default.nix
new file mode 100644
index 000000000000..3491feccc45c
--- /dev/null
+++ b/pkgs/tools/security/rarcrack/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchFromGitHub, libxml2, file, p7zip, unrar, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "rarcrack-${version}";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "jaredsburrows";
+    repo = "Rarcrack";
+    rev = "35ead64cd2b967eec3e3e3a4c328b89b11ff32a0";
+    sha256 = "134fq84896w5vp8vg4qg0ybpb466njibigyd7bqqm1xydr07qrgn";
+  };
+
+  buildInputs = [ libxml2 file p7zip unrar unzip ];
+  buildFlags = if stdenv.cc.isClang then [ "CC=clang" ] else null;
+  installFlags = "PREFIX=\${out}";
+
+  patchPhase = ''
+   substituteInPlace rarcrack.c --replace "file -i" "${file}/bin/file -i"
+  '';
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "This program can crack zip,7z and rar file passwords";
+    longDescription = ''
+    If you forget your password for compressed archive (rar, 7z, zip), this program is the solution.
+    This program uses bruteforce algorithm to find correct password. You can specify wich characters will be used in password generations.
+    Warning: Please don't use this program for any illegal things!
+    '';
+    homepage = https://github.com/jaredsburrows/Rarcrack;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ davidak ];
+    platforms = with platforms; unix;
+  };
+}
+
diff --git a/pkgs/tools/text/popfile/default.nix b/pkgs/tools/text/popfile/default.nix
new file mode 100644
index 000000000000..3310c1a2fe4a
--- /dev/null
+++ b/pkgs/tools/text/popfile/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, fetchzip, makeWrapper, perlPackages,
+... }:
+
+stdenv.mkDerivation rec {
+  appname = "popfile";
+  version = "1.1.3";
+  name = "${appname}-${version}";
+
+  src = fetchzip {
+    url = "http://getpopfile.org/downloads/${appname}-${version}.zip";
+    sha256 = "0gcib9j7zxk8r2vb5dbdz836djnyfza36vi8215nxcdfx1xc7l63";
+    stripRoot = false;
+  };
+
+  buildInputs = [ makeWrapper ] ++ (with perlPackages; [
+    ## These are all taken from the popfile documentation as applicable to Linux
+    ## http://getpopfile.org/docs/howtos:allplatformsrequireperl
+    perl
+    DBI
+    DBDSQLite
+    Digest
+    DigestMD5
+    HTMLTagset
+    MIMEBase64 # == MIMEQuotedPrint
+    TimeDate # == DateParse
+    HTMLTemplate
+    # IO::Socket::Socks is not in nixpkgs
+    # IOSocketSocks 
+    IOSocketSSL
+    NetSSLeay
+    SOAPLite
+  ]);
+
+
+  phases = [ "unpackPhase" "installPhase" "patchPhase" "postInstall" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    # I user `cd` rather than `cp $out/* ...` b/c the * breaks syntax
+    # highlighting in emacs for me.
+    cd $src
+    cp -r * $out/bin
+    cd $out/bin
+    chmod +x *.pl
+  '';
+
+  patchPhase = "patchShebangs $out";
+
+  postInstall = ''
+    find $out -name '*.pl' -executable | while read path; do
+      wrapProgram "$path" \
+        --prefix PERL5LIB : $PERL5LIB:$out/bin \
+        --set POPFILE_ROOT $out/bin \
+        --set POPFILE_USER \$\{POPFILE_USER:-\$HOME/.popfile\} \
+        --run "test -d \$POPFILE_USER || mkdir -m 0700 -p \$POPFILE_USER"
+    done
+  '';
+
+  meta = {
+    description = "An email classification system that automatically sorts messages and fights spam.";
+    homepage = http://getpopfile.org;
+    license = stdenv.lib.licenses.gpl2;
+
+    # Should work on OS X, but havent tested it.
+    # Windows support is more complicated.
+    # http://getpopfile.org/docs/faq:systemrequirements
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+}
+  
diff --git a/pkgs/tools/typesetting/tex/disser/default.nix b/pkgs/tools/typesetting/tex/disser/default.nix
deleted file mode 100644
index cbbc3844fefb..000000000000
--- a/pkgs/tools/typesetting/tex/disser/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-x@{builderDefsPackage
-  , unzip, texLive, texLiveCMSuper, texLiveAggregationFun
-  , ...}:
-builderDefsPackage
-(a :
-let
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
-    ["texLive" "texLiveCMSuper" "texLiveAggregationFun"];
-
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames))
-    ++ [(a.texLiveAggregationFun {paths=[a.texLive a.texLiveCMSuper];})];
-  sourceInfo = rec {
-    baseName="disser";
-    version="1.3.0";
-    name="${baseName}-${version}";
-    project="${baseName}";
-    url="mirror://sourceforge/project/${project}/${baseName}/${version}/${name}.zip";
-    hash="1iab3va6xw53l8xzmd83kbnzqah9f6imzzfd3c2054q53p0ndlim";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
-
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doMakeInstall"];
-
-  setVars = a.noDepEntry ''
-    export HOME="$TMPDIR"
-  '';
-
-  makeFlags = ["DESTDIR=$out/share/texmf-dist"];
-
-  meta = {
-    description = "Russian PhD thesis LaTeX package";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux; # platform-independent
-    license = a.lib.licenses.free; # LaTeX Project Public License
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://sourceforge.net/projects/disser/files/disser/";
-    };
-  };
-}) x
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d3dd0511d65..390032f980da 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1666,7 +1666,7 @@ let
 
   gnaural = callPackage ../applications/audio/gnaural { };
 
-  gnokii = builderDefsPackage (callPackage ../tools/misc/gnokii) { };
+  gnokii = callPackage ../tools/misc/gnokii { };
 
   gnuapl = callPackage ../development/interpreters/gnu-apl { };
 
@@ -2176,6 +2176,8 @@ let
 
   liboauth = callPackage ../development/libraries/liboauth { };
 
+  libsrs2 = callPackage ../development/libraries/libsrs2 { };
+
   libtermkey = callPackage ../development/libraries/libtermkey { };
 
   libtirpc = callPackage ../development/libraries/ti-rpc { };
@@ -2257,6 +2259,8 @@ let
     guile = guile_1_8;
   };
 
+  email = callPackage ../tools/networking/email { };
+
   maim = callPackage ../tools/graphics/maim {};
 
   mairix = callPackage ../tools/text/mairix { };
@@ -2820,6 +2824,8 @@ let
 
   ponysay = callPackage ../tools/misc/ponysay { };
 
+  popfile = callPackage ../tools/text/popfile { };
+
   povray = callPackage ../tools/graphics/povray {
     automake = automake113x; # fails with 14
   };
@@ -2874,7 +2880,7 @@ let
 
   pythonIRClib = pythonPackages.pythonIRClib;
 
-  pythonSexy = builderDefsPackage (callPackage ../development/python-modules/libsexy) { };
+  pythonSexy = callPackage ../development/python-modules/libsexy { };
 
   pytrainer = callPackage ../applications/misc/pytrainer { };
 
@@ -2918,6 +2924,8 @@ let
 
   ranger = callPackage ../applications/misc/ranger { };
 
+  rarcrack = callPackage ../tools/security/rarcrack { };
+
   rawdog = callPackage ../applications/networking/feedreaders/rawdog { };
 
   read-edid = callPackage ../os-specific/linux/read-edid { };
@@ -3619,8 +3627,6 @@ let
 
   webalizer = callPackage ../tools/networking/webalizer { };
 
-  webdruid = builderDefsPackage (callPackage ../tools/admin/webdruid) {};
-
   weighttp = callPackage ../tools/networking/weighttp { };
 
   wget = callPackage ../tools/networking/wget {
@@ -4162,7 +4168,7 @@ let
 
   ghdl_mcode = callPackage ../development/compilers/ghdl { };
 
-  gcl = builderDefsPackage (callPackage ../development/compilers/gcl) {
+  gcl = callPackage ../development/compilers/gcl {
     gmp = gmp4;
   };
 
@@ -5087,7 +5093,7 @@ let
 
   ### DEVELOPMENT / INTERPRETERS
 
-  acl2 = builderDefsPackage (callPackage ../development/interpreters/acl2) {
+  acl2 = callPackage ../development/interpreters/acl2 {
     sbcl = sbcl_1_2_0;
   };
 
@@ -7145,6 +7151,8 @@ let
 
   libcue = callPackage ../development/libraries/libcue { };
 
+  libcutl = callPackage ../development/libraries/libcutl { };
+
   libdaemon = callPackage ../development/libraries/libdaemon { };
 
   libdbi = callPackage ../development/libraries/libdbi { };
@@ -9577,14 +9585,16 @@ let
 
   pumpio = callPackage ../servers/web-apps/pump.io { };
 
-  pyIRCt = builderDefsPackage (callPackage ../servers/xmpp/pyIRCt) {};
+  pyIRCt = callPackage ../servers/xmpp/pyIRCt {};
 
-  pyMAILt = builderDefsPackage (callPackage ../servers/xmpp/pyMAILt) {};
+  pyMAILt = callPackage ../servers/xmpp/pyMAILt {};
 
   qpid-cpp = callPackage ../servers/amqp/qpid-cpp {
     boost = boost155;
   };
 
+  quagga = callPackage ../servers/quagga { };
+
   rabbitmq_server = callPackage ../servers/amqp/rabbitmq-server {
     inherit (darwin.apple_sdk.frameworks) AppKit Carbon Cocoa;
   };
@@ -10826,7 +10836,7 @@ let
 
   anonymousPro = callPackage ../data/fonts/anonymous-pro { };
 
-  arkpandora_ttf = builderDefsPackage (callPackage ../data/fonts/arkpandora) { };
+  arkpandora_ttf = callPackage ../data/fonts/arkpandora { };
 
   aurulent-sans = callPackage ../data/fonts/aurulent-sans { };
 
@@ -10956,7 +10966,7 @@ let
   liberation_ttf_binary = callPackage ../data/fonts/redhat-liberation-fonts/binary.nix { };
   liberation_ttf = liberation_ttf_binary;
 
-  libertine = builderDefsPackage (callPackage ../data/fonts/libertine) { };
+  libertine = callPackage ../data/fonts/libertine { };
 
   lmmath = callPackage ../data/fonts/lmodern/lmmath.nix {};
 
@@ -11347,11 +11357,6 @@ let
 
   carddav-util = callPackage ../tools/networking/carddav-util { };
 
-  carrier = builderDefsPackage (callPackage ../applications/networking/instant-messengers/carrier/2.5.0.nix) {
-    inherit (gnome) startupnotification GConf ;
-  };
-  funpidgin = carrier;
-
   cava = callPackage ../applications/audio/cava { };
 
   cbatticon = callPackage ../applications/misc/cbatticon { };
@@ -11461,7 +11466,7 @@ let
     liblapack = liblapackWithoutAtlas;
   };
 
-  cuneiform = builderDefsPackage (callPackage ../tools/graphics/cuneiform) {};
+  cuneiform = callPackage ../tools/graphics/cuneiform {};
 
   cutecom = callPackage ../tools/misc/cutecom { };
 
@@ -11809,7 +11814,7 @@ let
     };
 
     external = {
-      inherit (haskellPackages) ghc-mod structured-haskell-mode Agda;
+      inherit (haskellPackages) ghc-mod structured-haskell-mode Agda hindent;
       inherit (pythonPackages) elpy;
       inherit rtags libffi autoconf automake libpng zlib poppler pkgconfig;
     };
@@ -12645,11 +12650,6 @@ let
     lua = lua5;
   };
 
-  monotoneViz = builderDefsPackage (callPackage ../applications/version-management/monotone-viz/mtn-head.nix) {
-    inherit (ocamlPackages_4_01_0) lablgtk ocaml;
-    inherit (gnome) libgnomecanvas;
-  };
-
   mopidy = callPackage ../applications/audio/mopidy { };
 
   mopidy-gmusic = callPackage ../applications/audio/mopidy-gmusic { };
@@ -13418,7 +13418,7 @@ let
       numpy pyasn1 mock zope_interface;
   };
 
-  tailor = builderDefsPackage (callPackage ../applications/version-management/tailor) {};
+  tailor = callPackage ../applications/version-management/tailor {};
 
   tangogps = callPackage ../applications/misc/tangogps {
     gconf = gnome.GConf;
@@ -13581,11 +13581,6 @@ let
 
   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
 
-  viewMtn = builderDefsPackage (callPackage ../applications/version-management/viewmtn/0.10.nix)
-  {
-    flup = pythonPackages.flup;
-  };
-
   vim = callPackage ../applications/editors/vim {
     inherit (darwin.apple_sdk.frameworks) Carbon Cocoa;
   };
@@ -14257,15 +14252,13 @@ let
     lua = lua5;
   };
 
-  jamp = builderDefsPackage (callPackage ../games/jamp) {};
-
   klavaro = callPackage ../games/klavaro {};
 
   kobodeluxe = callPackage ../games/kobodeluxe { };
 
   lgogdownloader = callPackage ../games/lgogdownloader { };
 
-  lincity = builderDefsPackage (callPackage ../games/lincity) {};
+  lincity = callPackage ../games/lincity {};
 
   lincity_ng = callPackage ../games/lincity/ng.nix {};
 
@@ -14509,6 +14502,8 @@ let
 
   ut2004demo = callPackage ../games/ut2004demo { };
 
+  vassal = callPackage ../games/vassal { };
+
   vdrift = callPackage ../games/vdrift { };
 
   vectoroids = callPackage ../games/vectoroids { };
@@ -14578,7 +14573,7 @@ let
 
   zandronum-bin = callPackage ../games/zandronum/bin.nix { };
 
-  zangband = builderDefsPackage (callPackage ../games/zangband) {};
+  zangband = callPackage ../games/zangband { };
 
   zdoom = callPackage ../games/zdoom { };
 
@@ -14951,8 +14946,6 @@ let
 
   mrbayes = callPackage ../applications/science/biology/mrbayes { };
 
-  ncbiCTools = builderDefsPackage (callPackage ../development/libraries/ncbi) {};
-
   ncbi_tools = callPackage ../applications/science/biology/ncbi-tools { };
 
   paml = callPackage ../applications/science/biology/paml { };
@@ -14980,8 +14973,6 @@ let
 
   blas = callPackage ../development/libraries/science/math/blas { };
 
-  content = builderDefsPackage (callPackage ../applications/science/math/content) {};
-
   jags = callPackage ../applications/science/math/jags { };
 
 
@@ -15737,8 +15728,6 @@ let
   texLiveAggregationFun = params:
     builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/aggregate.nix) params;
 
-  texDisser = callPackage ../tools/typesetting/tex/disser {};
-
   texLiveContext = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/context.nix) {};
 
   texLiveExtra = builderDefsPackage (callPackage ../tools/typesetting/tex/texlive/extra.nix) {};
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index 896e324c51bf..ea4a2d4a4291 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -711,54 +711,6 @@ let
     };
   };
 
-  flycheck = melpaBuild rec {
-    pname   = "flycheck";
-    version = "0.25.1";
-    src = fetchFromGitHub {
-      owner  = pname;
-      repo   = pname;
-      rev    = version;
-      sha256 = "19mnx2zm71qrf7qf3mk5kriv5vgq0nl67lj029n63wqd8jcjb5fi";
-    };
-    packageRequires = [ dash let-alist pkg-info seq ];
-    meta = {
-      description = "On-the-fly syntax checking, intended as replacement for the older Flymake which is part of Emacs";
-      license = gpl3Plus;
-    };
-  };
-
-  flycheck-haskell = melpaBuild rec {
-    pname   = "flycheck-haskell";
-    version = "0.7.2";
-    src = fetchFromGitHub {
-      owner  = "flycheck";
-      repo   = pname;
-      rev    = version;
-      sha256 = "0143lcn6g46g7skm4r6lqq09s8mr3268rikbzlh65qg80rpg9frj";
-    };
-    packageRequires = [ dash flycheck haskell-mode let-alist pkg-info ];
-    meta = {
-      description = "Improved Haskell support for Flycheck";
-      license = gpl3Plus;
-    };
-  };
-
-  flycheck-pos-tip = melpaBuild rec {
-    pname   = "flycheck-pos-tip";
-    version = "20140813";
-    src = fetchFromGitHub {
-      owner  = "flycheck";
-      repo   = pname;
-      rev    = "5b3a203bbdb03e4f48d1654efecd71f44376e199";
-      sha256 = "0b4x24aq0jh4j4bjv0fqyaz6hzh3gqf57k9763jj9rl32cc3dpnp";
-    };
-    packageRequires = [ flycheck popup ];
-    meta = {
-      description = "Flycheck errors display in tooltip";
-      license = gpl3Plus;
-    };
-  };
-
   ghc-mod = melpaBuild rec {
     pname = "ghc";
     version = external.ghc-mod.version;
@@ -772,6 +724,19 @@ let
     };
   };
 
+  hindent = melpaBuild rec {
+    pname = "hindent";
+    version = external.hindent.version;
+    src = external.hindent.src;
+    packageRequires = [ haskell-mode ];
+    propagatedUserEnvPkgs = [ external.hindent ];
+    fileSpecs = [ "elisp/*.el" ];
+    meta = {
+      description = "Indent haskell code using the \"hindent\" program";
+      license = bsd3;
+    };
+  };
+
   rtags = melpaBuild rec {
     pname = "rtags";
     version = "2.0"; # really, it's some arbitrary git hash
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 14bb80ebf04d..00b8f9ba9285 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -50,8 +50,8 @@ rec {
       inherit (packages.ghc784) ghc alex happy;
     };
 
-    ghcjs = packages.ghc7102.callPackage ../development/compilers/ghcjs {
-      ghc = compiler.ghc7102;
+    ghcjs = packages.ghc7103.callPackage ../development/compilers/ghcjs {
+      ghc = compiler.ghc7103;
     };
 
     jhc = callPackage ../development/compilers/jhc {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 8b9f4d339eea..b58a6b834e05 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -10257,10 +10257,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SoftwareLicense = buildPerlPackage rec {
-    name = "Software-License-0.103010";
+    name = "Software-License-0.103011";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "929fbace96f69a0977a0380000820c93fc1af4e973a422c73e6cd254405fa47c";
+      sha256 = "03dyc5sx0asq1m3276l224q5776ng24fw5llf3gr9mbgklkgj05s";
     };
     propagatedBuildInputs = [ DataSection TextTemplate TryTiny ];
     meta = {
@@ -12179,10 +12179,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextCSVEncoded = buildPerlPackage rec {
-    name = "Text-CSV-Encoded-0.24";
+    name = "Text-CSV-Encoded-0.25";
     src = fetchurl {
       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/${name}.tar.gz";
-      sha256 = "ce8f307dabdcb623cfc385c175152b0f465096d449b9c828efbe6611efcab0d5";
+      sha256 = "1l5rwlmnpnhjszb200a94lwvkwslsvyxm24ycf37gm8dla1mk2i4";
     };
     propagatedBuildInputs = [ TextCSV ];
     meta = {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index cd372c9dfc4a..5dfd1cfacec0 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2282,10 +2282,15 @@ in modules // {
     };
 
     propagatedBuildInputs = [ self.botocore
-                              self.futures_2_2
                               self.jmespath
-                            ];
-    buildInputs = [ self.docutils ];
+                            ] ++ (if isPy3k then [] else [self.futures_2_2]);
+    buildInputs = [ self.docutils self.nose self.mock ];
+
+    # Tests are failing with `botocore.exceptions.NoCredentialsError:
+    # Unable to locate credentials`. There also seems to be some mock
+    # issues (`assert_called_once` doesn't exist in mock but boto
+    # seems to think it is?).
+    doCheck = false;
 
     meta = {
       homepage = https://github.com/boto3/boto;
@@ -5241,6 +5246,25 @@ in modules // {
     };
   };
 
+  ftputil = buildPythonPackage rec {
+    version = "3.3";
+    name = "ftputil-${version}";
+
+    src = pkgs.fetchurl {
+      url = "https://pypi.python.org/packages/source/f/ftputil/${name}.tar.gz";
+      sha256 = "1714w0v6icw2xjx5m54yv2qgkq49qwxwllq4gdb7wkz25iiapr8b";
+    };
+
+    disabled = isPy3k;
+
+    meta = {
+      description = "High-level FTP client library (virtual file system and more)";
+      homepage    = https://pypi.python.org/pypi/ftputil;
+      platforms   = platforms.linux;
+      license     = licenses.bsd2; # "Modified BSD licence, says pypi"
+    };
+  };
+
   fudge = buildPythonPackage rec {
     name = "fudge-1.1.0";
     src = pkgs.fetchurl {
@@ -12520,7 +12544,7 @@ in modules // {
     # Disable failing test_f2py test.
     # f2py couldn't be found by test,
     # even though it was used successfully to build numpy
-    
+
     # The large file support test is disabled because it takes forever
     # and can cause the machine to run out of disk space when run.
     prePatch = ''
diff --git a/pkgs/top-level/rust-packages.nix b/pkgs/top-level/rust-packages.nix
index 1cc2692b9d50..cc16f4502273 100644
--- a/pkgs/top-level/rust-packages.nix
+++ b/pkgs/top-level/rust-packages.nix
@@ -7,15 +7,15 @@
 { runCommand, fetchFromGitHub, git }:
 
 let
-  version = "2016-01-17";
-  rev = "4d434405cd956c3c5476171bdc7e6dbe5c8ff209";
+  version = "2016-02-02";
+  rev = "9312acc30def6bb16739ab6c4560fb9880b25c5a";
 
   src = fetchFromGitHub {
       inherit rev;
 
       owner = "rust-lang";
       repo = "crates.io-index";
-      sha256 = "12y6kbgx1kh04lhwxvxqs2jkhnfa9hkgdjxhzlqs3gjcybsdkdhj";
+      sha256 = "0mrfcipc7sv0kzryjs649x3j4djr8jgbl58jd21hrcihc61qa38n";
   };
 
 in