summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-07-06 17:15:11 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-07-06 17:15:11 -0700
commitae28ff8b91b5d89add314d10c22467d224e2b953 (patch)
treefa8bfa0af5c34266c142001543c1168c7a384af3
parentb35da0edee1d1e035d1b1b68827c5d632e1652b7 (diff)
parent9eae9dd811b5704c8d8f0d014f0583a43de0911e (diff)
downloadnixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar.gz
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar.bz2
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar.lz
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar.xz
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.tar.zst
nixlib-ae28ff8b91b5d89add314d10c22467d224e2b953.zip
Merge branch 'master.upstream' into staging.upstream
-rw-r--r--doc/haskell-users-guide.xml1
-rw-r--r--nixos/modules/misc/ids.nix2
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/hardware/udisks2.nix2
-rw-r--r--nixos/modules/services/misc/subsonic.nix157
-rw-r--r--pkgs/applications/gis/saga/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--pkgs/applications/window-managers/i3/default.nix9
-rw-r--r--pkgs/development/compilers/ghc/nokinds.nix74
-rw-r--r--pkgs/development/compilers/scala/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-nokinds.nix104
-rw-r--r--pkgs/development/interpreters/ruby/bundler.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-2.1.6.nix122
-rw-r--r--pkgs/development/interpreters/ruby/rvm-patchsets.nix4
-rw-r--r--pkgs/development/libraries/bobcat/default.nix8
-rw-r--r--pkgs/development/libraries/libeatmydata/default.nix9
-rw-r--r--pkgs/games/newtonwars/default.nix37
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix8
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix4
-rw-r--r--pkgs/servers/consul/Gemfile.lock10
-rw-r--r--pkgs/servers/consul/gemset.nix20
-rw-r--r--pkgs/servers/misc/subsonic/default.nix34
-rw-r--r--pkgs/tools/filesystems/gitfs/default.nix32
-rw-r--r--pkgs/tools/networking/iftop/default.nix4
-rw-r--r--pkgs/tools/security/gnupg/20.nix4
-rw-r--r--pkgs/tools/security/sbsigntool/autoconf.patch19
-rw-r--r--pkgs/tools/security/sbsigntool/default.nix47
-rw-r--r--pkgs/top-level/all-packages.nix15
-rw-r--r--pkgs/top-level/emacs-packages.nix11
-rw-r--r--pkgs/top-level/haskell-packages.nix7
-rw-r--r--pkgs/top-level/python-packages.nix25
32 files changed, 746 insertions, 52 deletions
diff --git a/doc/haskell-users-guide.xml b/doc/haskell-users-guide.xml
index ca6c387e8df6..e3903ddd4113 100644
--- a/doc/haskell-users-guide.xml
+++ b/doc/haskell-users-guide.xml
@@ -136,6 +136,7 @@ haskell.compiler.ghc763         ghc-7.6.3
 haskell.compiler.ghc784         ghc-7.8.4
 haskell.compiler.ghc7101        ghc-7.10.1
 haskell.compiler.ghcHEAD        ghc-7.11.20150402
+haskell.compiler.ghcNokinds     ghc-nokinds-7.11.20150704
 haskell.compiler.ghcjs          ghcjs-0.1.0
 haskell.compiler.jhc            jhc-0.8.2
 haskell.compiler.uhc            uhc-1.1.9.0
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 80d6ff20f9b4..88c860110179 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -225,6 +225,7 @@
       uwsgi = 201;
       gitit = 202;
       riemanntools = 203;
+      subsonic = 204;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -428,6 +429,7 @@
       uwsgi = 201;
       gitit = 202;
       riemanntools = 203;
+      subsonic = 204;
 
       # When adding a gid, make sure it doesn't match an existing
       # uid. Users and groups with the same name should have equal
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c1014bdff2e2..d580e269df96 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -218,6 +218,7 @@
   ./services/misc/ripple-data-api.nix
   ./services/misc/rogue.nix
   ./services/misc/siproxd.nix
+  ./services/misc/subsonic.nix
   ./services/misc/svnserve.nix
   ./services/misc/synergy.nix
   ./services/misc/uhub.nix
diff --git a/nixos/modules/services/hardware/udisks2.nix b/nixos/modules/services/hardware/udisks2.nix
index f5b641c7378b..fd6d8886348e 100644
--- a/nixos/modules/services/hardware/udisks2.nix
+++ b/nixos/modules/services/hardware/udisks2.nix
@@ -46,7 +46,7 @@ with lib;
       serviceConfig = {
         Type = "dbus";
         BusName = "org.freedesktop.UDisks2";
-        ExecStart = "${pkgs.udisks2}/lib/udisks2/udisksd --no-debug";
+        ExecStart = "${pkgs.udisks2}/libexec/udisks2/udisksd --no-debug";
       };
     };
   };
diff --git a/nixos/modules/services/misc/subsonic.nix b/nixos/modules/services/misc/subsonic.nix
new file mode 100644
index 000000000000..3e1a2e8fbb51
--- /dev/null
+++ b/nixos/modules/services/misc/subsonic.nix
@@ -0,0 +1,157 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.subsonic;
+  homeDir = "/var/subsonic";
+
+in
+{
+  options = {
+    services.subsonic = {
+      enable = mkEnableOption "Subsonic daemon";
+
+      home = mkOption {
+        type = types.path;
+        default = "${homeDir}";
+        description = ''
+          The directory where Subsonic will create files.
+          Make sure it is writable.
+        '';
+      };
+
+      host = mkOption {
+        type = types.string;
+        default = "0.0.0.0";
+        description = ''
+          The host name or IP address on which to bind Subsonic.
+          Only relevant if you have multiple network interfaces and want
+          to make Subsonic available on only one of them. The default value
+          will bind Subsonic to all available network interfaces.
+        '';
+      };
+
+      port = mkOption {
+        type = types.int;
+        default = 4040;
+        description = ''
+          The port on which Subsonic will listen for
+          incoming HTTP traffic. Set to 0 to disable.
+        '';
+      };
+
+      httpsPort = mkOption {
+        type = types.int;
+        default = 0;
+        description = ''
+          The port on which Subsonic will listen for
+          incoming HTTPS traffic. Set to 0 to disable.
+        '';
+      };
+
+      contextPath = mkOption {
+        type = types.path;
+        default = "/";
+        description = ''
+          The context path, i.e., the last part of the Subsonic
+          URL. Typically '/' or '/subsonic'. Default '/'
+        '';
+      };
+
+      maxMemory = mkOption {
+        type = types.int;
+        default = 100;
+        description = ''
+          The memory limit (max Java heap size) in megabytes.
+          Default: 100
+        '';
+      };
+
+      defaultMusicFolder = mkOption {
+        type = types.path;
+        default = "/var/music";
+        description = ''
+          Configure Subsonic to use this folder for music.  This option
+          only has effect the first time Subsonic is started.
+        '';
+      };
+
+      defaultPodcastFolder = mkOption {
+        type = types.path;
+        default = "/var/music/Podcast";
+        description = ''
+          Configure Subsonic to use this folder for Podcasts.  This option
+          only has effect the first time Subsonic is started.
+        '';
+      };
+
+      defaultPlaylistFolder = mkOption {
+        type = types.path;
+        default = "/var/playlists";
+        description = ''
+          Configure Subsonic to use this folder for playlists.  This option
+          only has effect the first time Subsonic is started.
+        '';
+      };
+
+      transcoders = mkOption {
+        type = types.listOf types.path;
+        default = [ "${pkgs.ffmpeg}/bin/ffmpeg" ];
+        description = ''
+          List of paths to transcoder executables that should be accessible
+          from Subsonic. Symlinks will be created to each executable inside
+          ${cfg.home}/transcoders.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.subsonic = {
+      description = "Personal media streamer";
+      after = [ "local-fs.target" "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = ''
+          ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \
+            -Dsubsonic.home=${cfg.home} \
+            -Dsubsonic.host=${cfg.host} \
+            -Dsubsonic.port=${toString cfg.port} \
+            -Dsubsonic.httpsPort=${toString cfg.httpsPort} \
+            -Dsubsonic.contextPath=${cfg.contextPath} \
+            -Dsubsonic.defaultMusicFolder=${cfg.defaultMusicFolder} \
+            -Dsubsonic.defaultPodcastFolder=${cfg.defaultPodcastFolder} \
+            -Dsubsonic.defaultPlaylistFolder=${cfg.defaultPlaylistFolder} \
+            -Djava.awt.headless=true \
+            -verbose:gc \
+            -jar ${pkgs.subsonic}/subsonic-booter-jar-with-dependencies.jar
+        '';
+        # Install transcoders.
+        ExecStartPre = ''
+          ${pkgs.coreutils}/bin/rm -rf ${cfg.home}/transcode ; \
+          ${pkgs.coreutils}/bin/mkdir -p ${cfg.home}/transcode ; \
+          ${pkgs.bash}/bin/bash -c ' \
+            for exe in "$@"; do \
+              ${pkgs.coreutils}/bin/ln -sf "$exe" ${cfg.home}/transcode; \
+            done' IGNORED_FIRST_ARG ${toString cfg.transcoders}
+        '';
+        # Needed for Subsonic to find subsonic.war.
+        WorkingDirectory = "${pkgs.subsonic}";
+        Restart = "always";
+        User = "subsonic";
+        UMask = "0022";
+      };
+    };
+
+    users.extraUsers.subsonic = {
+      description = "Subsonic daemon user";
+      home = homeDir;
+      createHome = true;
+      group = "subsonic";
+      uid = config.ids.uids.subsonic;
+    };
+
+    users.extraGroups.subsonic.gid = config.ids.gids.subsonic;
+  };
+}
diff --git a/pkgs/applications/gis/saga/default.nix b/pkgs/applications/gis/saga/default.nix
index bb31b24bf5ef..7ba523d3a602 100644
--- a/pkgs/applications/gis/saga/default.nix
+++ b/pkgs/applications/gis/saga/default.nix
@@ -2,15 +2,15 @@
   libharu, opencv, vigra, postgresql }:
 
 stdenv.mkDerivation rec {
-  name = "saga-2.1.4";
+  name = "saga-2.2.0";
 
   buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper ];
 
   enableParallelBuilding = true;
 
   src = fetchurl {
-    url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.1/SAGA%202.1.4/saga_2.1.4.tar.gz";
-    sha256 = "694e4102f592f512c635328c40fdeff33493f74698d9466bb654baf3247e7b76";
+    url = "http://sourceforge.net/projects/saga-gis/files/SAGA%20-%202.2/SAGA%202.2.0/saga_2.2.0.tar.gz";
+    sha256 = "50b2e642331c817606bc954302e53757c4ffa6f6d6f468e12caeaaa7a182edaf";
   };
 
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index 43d11f0a8ff6..ddaaa35da558 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -1,15 +1,15 @@
-{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr }:
+{ fetchurl, stdenv, gnutls, glib, pkgconfig, check, libotr, python }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "bitlbee-3.4";
+  name = "bitlbee-3.4.1";
 
   src = fetchurl {
     url = "mirror://bitlbee/src/${name}.tar.gz";
-    sha256 = "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf";
+    sha256 = "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh";
   };
 
-  buildInputs = [ gnutls glib pkgconfig libotr ]
+  buildInputs = [ gnutls glib pkgconfig libotr python ]
     ++ optional doCheck check;
 
   configureFlags = [
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.bitlbee.org/;
     license = licenses.gpl2Plus;
 
-    maintainers = with maintainers; [ wkennington ];
+    maintainers = with maintainers; [ wkennington pSub ];
     platforms = platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 4304520383e0..7cbec61b5e2b 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -5,7 +5,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "notmuch-0.19";
+  name = "notmuch-0.20.2";
 
   passthru = {
     pythonSourceRoot = "${name}/bindings/python";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://notmuchmail.org/releases/${name}.tar.gz";
-    sha256 = "1szf6c44g209pcjq5nvfhlp3nzcm3lrcwv4spsxmwy13hiaccvrr";
+    sha256 = "1v5dcnlg4km5hfaq0i0qywq5fn66fi0rq4aaibyqkwxz8mis4hgp";
   };
 
   buildInputs = [ bash emacs glib gmime gnupg pkgconfig talloc xapian sphinx python ]
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index 21836bd4fffb..b5029d3c1416 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -24,7 +24,13 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
-  doCheck = stdenv.system == "x86_64-linux";
+  # Tests have been failing (at least for some people in some cases)
+  # and have been disabled until someone wants to fix them. Some
+  # initial digging uncovers that the tests call out to `git`, which
+  # they shouldn't, and then even once that's fixed have some
+  # perl-related errors later on. For more, see
+  # https://github.com/NixOS/nixpkgs/issues/7957
+  doCheck = false; # stdenv.system == "x86_64-linux";
 
   checkPhase = stdenv.lib.optionalString (stdenv.system == "x86_64-linux")
   ''
@@ -60,4 +66,3 @@ stdenv.mkDerivation rec {
   };
 
 }
-
diff --git a/pkgs/development/compilers/ghc/nokinds.nix b/pkgs/development/compilers/ghc/nokinds.nix
new file mode 100644
index 000000000000..1adb4207f059
--- /dev/null
+++ b/pkgs/development/compilers/ghc/nokinds.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchgit, ghc, perl, gmp, ncurses, libiconv, autoconf, automake, happy, alex }:
+
+let
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-includes="${ncurses}/include"
+    libraries/terminfo_CONFIGURE_OPTS += --configure-option=--with-curses-libraries="${ncurses}/lib"
+    DYNAMIC_BY_DEFAULT = NO
+    SRC_HC_OPTS        = -H64m -O -fasm
+    GhcLibHcOpts       = -O -dcore-lint
+    GhcStage1HcOpts    = -Rghc-timing -O -fasm
+    GhcStage2HcOpts    = -Rghc-timing -O0 -DDEBUG
+    SplitObjs          = NO
+    HADDOCK_DOCS       = NO
+    BUILD_DOCBOOK_HTML = NO
+    BUILD_DOCBOOK_PS   = NO
+    BUILD_DOCBOOK_PDF  = NO
+    LAX_DEPENDENCIES   = YES
+    ${stdenv.lib.optionalString stdenv.isDarwin ''
+      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes="${libiconv}/include"
+      libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries="${libiconv}/lib"
+    ''}
+  '';
+
+in
+
+stdenv.mkDerivation rec {
+  version = "7.11.20150703";
+  name = "ghc-nokinds-${version}";
+  rev = "887170ac254aaacc2d5e29f2565ac61522fd8f61";
+
+  src = fetchgit {
+    url = "https://github.com/goldfirere/ghc.git";
+    inherit rev;
+    sha256 = "010x9ckig76sz97s2ss1j1sf70czqx1cn39nj4xbh49m8n2zvsqf";
+  };
+
+  postUnpack = ''
+    pushd ghc-${builtins.substring 0 7 rev}
+    patchShebangs .
+    ./boot
+    popd
+  '';
+
+  buildInputs = [ ghc perl autoconf automake happy alex ];
+
+  preConfigure = ''
+    echo >mk/build.mk "${buildMK}"
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
+  '';
+
+  configureFlags = [
+    "--with-gcc=${stdenv.cc}/bin/cc"
+    "--with-gmp-includes=${gmp}/include" "--with-gmp-libraries=${gmp}/lib"
+  ];
+
+  enableParallelBuilding = true;
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!stdenv.isDarwin) "--keep-file-symbols";
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The dependently-typed 'nokinds' branch of the Glasgow Haskell Compiler by Richard Eisenberg";
+    maintainers = with stdenv.lib.maintainers; [ ];
+    inherit (ghc.meta) license platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix
index 9e55d9f3ac2c..289c63f7bcf9 100644
--- a/pkgs/development/compilers/scala/default.nix
+++ b/pkgs/development/compilers/scala/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "scala-2.11.6";
+  name = "scala-2.11.7";
 
   src = fetchurl {
     url = "http://www.scala-lang.org/files/archive/${name}.tgz";
-    sha256 = "10v58jm0wbb4v71sfi03gskd6n84jqn6nvd62x166104c3j4bfj1";
+    sha256 = "1l16571fw5l339wd02w2pnr3556j804zpbsbymnad67f2dpikr7z";
   };
 
   buildInputs = [ jre makeWrapper ] ;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-nokinds.nix b/pkgs/development/haskell-modules/configuration-ghc-nokinds.nix
new file mode 100644
index 000000000000..be78321b38a7
--- /dev/null
+++ b/pkgs/development/haskell-modules/configuration-ghc-nokinds.nix
@@ -0,0 +1,104 @@
+{ pkgs }:
+
+with import ./lib.nix { inherit pkgs; };
+
+self: super: {
+
+  # Use the latest LLVM.
+  inherit (pkgs) llvmPackages;
+
+  # Disable GHC 7.11.x core libraries.
+  array = null;
+  base = null;
+  binary = null;
+  bin-package-db = null;
+  bytestring = null;
+  Cabal = null;
+  containers = null;
+  deepseq = null;
+  directory = null;
+  filepath = null;
+  ghc-prim = null;
+  haskeline = null;
+  hoopl = null;
+  hpc = null;
+  integer-gmp = null;
+  pretty = null;
+  process = null;
+  rts = null;
+  template-haskell = null;
+  terminfo = null;
+  time = null;
+  transformers = null;
+  unix = null;
+  xhtml = null;
+
+  # Don't use jailbreak built with Cabal 1.22.x because of https://github.com/peti/jailbreak-cabal/issues/9.
+  jailbreak-cabal = pkgs.haskell.packages.ghc784.jailbreak-cabal;
+
+  # GHC 7.10.x's Haddock binary cannot generate hoogle files.
+  # https://ghc.haskell.org/trac/ghc/ticket/9921
+  mkDerivation = drv: super.mkDerivation (drv // { doHoogle = false; doHaddock = false; });
+
+  # haddock: No input file(s).
+  nats = dontHaddock super.nats;
+  bytestring-builder = dontHaddock super.bytestring-builder;
+
+  alex = dontCheck super.alex;
+
+  # We have time 1.5
+  aeson = disableCabalFlag super.aeson "old-locale";
+
+  # Show works differently for record syntax now, breaking haskell-src-exts' parser tests
+  # https://github.com/haskell-suite/haskell-src-exts/issues/224
+  haskell-src-exts = dontCheck super.haskell-src-exts;
+
+  mono-traversable = appendPatch super.mono-traversable (pkgs.fetchpatch {
+    url = "https://github.com/snoyberg/mono-traversable/pull/77.patch";
+    sha256 = "1qrvrh3cqfkymi5yb9y9z88rq4n7ag0ac2k00mcnqh4dz1vh4fg1";
+  });
+  yesod-auth = appendPatch super.yesod-auth (pkgs.fetchpatch {
+    url = "https://github.com/yesodweb/yesod/pull/1006.patch";
+    sha256 = "0l6wjj8cfz6jy6j92kywsccafyffhlm5240q82bzirb278adqvar";
+    stripLen = 1;
+  });
+
+  # Setup: At least the following dependencies are missing: base <4.8
+  hspec-expectations = overrideCabal super.hspec-expectations (drv: {
+    patchPhase = "sed -i -e 's|base < 4.8|base|' hspec-expectations.cabal";
+  });
+  utf8-string = overrideCabal super.utf8-string (drv: {
+    patchPhase = "sed -i -e 's|base >= 3 && < 4.8|base|' utf8-string.cabal";
+  });
+
+  # bos/attoparsec#92
+  attoparsec = dontCheck super.attoparsec;
+
+  # test suite hangs silently for at least 10 minutes
+  split = dontCheck super.split;
+
+  # Test suite fails with some (seemingly harmless) error.
+  # https://code.google.com/p/scrapyourboilerplate/issues/detail?id=24
+  syb = dontCheck super.syb;
+
+  # Test suite has stricter version bounds
+  retry = dontCheck super.retry;
+
+  # Test suite fails with time >= 1.5
+  http-date = dontCheck super.http-date;
+
+  # Version 1.19.5 fails its test suite.
+  happy = dontCheck super.happy;
+
+  # Workaround for a workaround, see comment for "ghcjs" flag.
+  jsaddle = let jsaddle' = disableCabalFlag super.jsaddle "ghcjs";
+            in addBuildDepends jsaddle' [ self.glib self.gtk3 self.webkitgtk3
+                                          self.webkitgtk3-javascriptcore ];
+
+  # The compat library is empty in the presence of mtl 2.2.x.
+  mtl-compat = dontHaddock super.mtl-compat;
+
+  # Won't work with LLVM 3.5.
+  llvm-general = markBrokenVersion "3.4.5.3" super.llvm-general;
+
+}
diff --git a/pkgs/development/interpreters/ruby/bundler.nix b/pkgs/development/interpreters/ruby/bundler.nix
index 336d40544225..d5278bed885a 100644
--- a/pkgs/development/interpreters/ruby/bundler.nix
+++ b/pkgs/development/interpreters/ruby/bundler.nix
@@ -1,9 +1,9 @@
 { buildRubyGem, makeWrapper, ruby, coreutils }:
 
 buildRubyGem {
-  name = "bundler-1.9.2";
+  name = "bundler-1.10.5";
   namePrefix = "";
-  sha256 = "0ck9bnqg7miimggj1d6qlabrsa5h9yaw241fqn15cvqh915209zk";
+  sha256 = "1zkxw6699bbmsamrij2lirscbh0j58p1p3bql22jsxvx34j6w5nc";
   dontPatchShebangs = true;
   postInstall = ''
     find $out -type f -perm +0100 | while read f; do
diff --git a/pkgs/development/interpreters/ruby/ruby-2.1.6.nix b/pkgs/development/interpreters/ruby/ruby-2.1.6.nix
new file mode 100644
index 000000000000..c9016a338af2
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/ruby-2.1.6.nix
@@ -0,0 +1,122 @@
+{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub
+, zlib, zlibSupport ? true
+, openssl, opensslSupport ? true
+, gdbm, gdbmSupport ? true
+, ncurses, readline, cursesSupport ? true
+, groff, docSupport ? false
+, libyaml, yamlSupport ? true
+, libffi, fiddleSupport ? true
+, ruby_2_1_6, autoreconfHook, bison, useRailsExpress ? true
+}:
+
+let
+  op = stdenv.lib.optional;
+  ops = stdenv.lib.optionals;
+  patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
+  config = import ./config.nix fetchgit;
+  baseruby = ruby_2_1_6.override { useRailsExpress = false; };
+in
+
+stdenv.mkDerivation rec {
+  version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
+
+  name = "ruby-${version}";
+
+  src = if useRailsExpress then fetchFromGitHub {
+    owner  = "ruby";
+    repo   = "ruby";
+    rev    = "v2_1_6";
+    sha256 = "18kbjsbmgv6l3p1qxgmjnhh4jl7xdk3c20ycjpp62vrhq7pyzjsm";
+  } else fetchurl {
+    url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.6.tar.gz";
+    sha256 = "1r4bs8lfwsypbcf8j2lpv3by40729vp5mh697njizj97fjp644qy";
+  };
+
+  # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
+  NROFF = "${groff}/bin/nroff";
+
+  buildInputs = ops useRailsExpress [ autoreconfHook bison ]
+    ++ (op fiddleSupport libffi)
+    ++ (ops cursesSupport [ ncurses readline ])
+    ++ (op docSupport groff)
+    ++ (op zlibSupport zlib)
+    ++ (op opensslSupport openssl)
+    ++ (op gdbmSupport gdbm)
+    ++ (op yamlSupport libyaml)
+    # Looks like ruby fails to build on darwin without readline even if curses
+    # support is not enabled, so add readline to the build inputs if curses
+    # support is disabled (if it's enabled, we already have it) and we're
+    # running on darwin
+    ++ (op (!cursesSupport && stdenv.isDarwin) readline);
+
+  enableParallelBuilding = true;
+
+  # Fix a build failure on systems with nix store optimisation.
+  # (The build process attempted to copy file a overwriting file b, where a and
+  # b are hard-linked, which results in cp returning a non-zero exit code.)
+  # https://github.com/NixOS/nixpkgs/issues/4266
+  postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
+
+  patches = ops useRailsExpress [
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/01-zero-broken-tests.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/02-improve-gc-stats.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/03-display-more-detailed-stack-trace.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/05-funny-falcon-stc-density.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/07-aman-opt-aset-aref-str.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/08-funny-falcon-method-cache.patch"
+    "${patchSet}/patches/ruby/2.1.6/railsexpress/09-heap-dump-support.patch"
+  ];
+
+  # Ruby >= 2.1.0 tries to download config.{guess,sub}
+  postPatch = ''
+    rm tool/config_files.rb
+    cp ${config}/config.guess tool/
+    cp ${config}/config.sub tool/
+  '';
+
+  configureFlags = ["--enable-shared" ]
+    ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
+    # on darwin, we have /usr/include/tk.h -- so the configure script detects
+    # that tk is installed
+    ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
+
+  installFlags = stdenv.lib.optionalString docSupport "install-doc";
+  # Bundler tries to create this directory
+  postInstall = ''
+    # Bundler tries to create this directory
+    mkdir -pv $out/${passthru.gemPath}
+    mkdir -p $out/nix-support
+    cat > $out/nix-support/setup-hook <<EOF
+    addGemPath() {
+      addToSearchPath GEM_PATH \$1/${passthru.gemPath}
+    }
+
+    envHooks+=(addGemPath)
+    EOF
+  '' + lib.optionalString useRailsExpress ''
+    rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
+
+    # Prevent the baseruby from being included in the closure.
+    sed -i '/^  CONFIG\["BASERUBY"\]/d' $rbConfig
+    sed -i "s|'--with-baseruby=${baseruby}/bin/ruby'||" $rbConfig
+  '';
+
+  meta = {
+    license = stdenv.lib.licenses.ruby;
+    homepage = "http://www.ruby-lang.org/en/";
+    description = "The Ruby language";
+    platforms = stdenv.lib.platforms.all;
+  };
+
+  passthru = rec {
+    majorVersion = "2";
+    minorVersion = "1";
+    teenyVersion = "6";
+    patchLevel = "0";
+    rubyEngine = "ruby";
+    libPath = "lib/${rubyEngine}/${majorVersion}.${minorVersion}.${teenyVersion}";
+    gemPath = "lib/${rubyEngine}/gems/${majorVersion}.${minorVersion}.${teenyVersion}";
+  };
+}
diff --git a/pkgs/development/interpreters/ruby/rvm-patchsets.nix b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
index 7685bafddc94..908b4b36372f 100644
--- a/pkgs/development/interpreters/ruby/rvm-patchsets.nix
+++ b/pkgs/development/interpreters/ruby/rvm-patchsets.nix
@@ -3,6 +3,6 @@
 fetchFromGitHub {
   owner  = "skaes";
   repo   = "rvm-patchsets";
-  rev    = "da2e5b4d81e18154befef1448e037b844cb5a326";
-  sha256 = "0fslnkpirgsm7gjd6g194vd24i3y7kl0ihbq5gr94cgvdzzjgad0";
+  rev    = "68be466019aa592e0321e894487f090aa459d602";
+  sha256 = "12dw5shirnqbw037jg1sqk1aixyzl32w94y2nlan9by3cv7k3643";
 }
diff --git a/pkgs/development/libraries/bobcat/default.nix b/pkgs/development/libraries/bobcat/default.nix
index 791dab2d17aa..38dfce7583a7 100644
--- a/pkgs/development/libraries/bobcat/default.nix
+++ b/pkgs/development/libraries/bobcat/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, gcc49, icmake, libmilter, libX11, openssl, readline
 , utillinux, yodl }:
 
-let version = "3.25.01"; in
-stdenv.mkDerivation rec {
+let version = "3.25.02"; in
+stdenv.mkDerivation {
   name = "bobcat-${version}";
 
   src = fetchurl {
-    sha256 = "07qc10hnjpmc2wq14kw01vfww5i049y0jmdvkiiafw33ffy0wdca";
-    url = "mirror://sourceforge/bobcat/bobcat/${version}/bobcat_${version}.orig.tar.gz";
+    sha256 = "0b1370li4q82fqj982vng9cwkf23k2c1df5jsdcgkrk01r53dxry";
+    url = "mirror://debian/pool/main/b/bobcat/bobcat_${version}.orig.tar.gz";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libeatmydata/default.nix b/pkgs/development/libraries/libeatmydata/default.nix
index 8d2d820a2301..2fdd1658f19f 100644
--- a/pkgs/development/libraries/libeatmydata/default.nix
+++ b/pkgs/development/libraries/libeatmydata/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "libeatmydata-82";
@@ -8,6 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "0aavq71bf0yxdgyf8gvyzq086shszzwpbsz5rqkjg4cz0rc5yrqb";
   };
 
+  buildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/eatmydata \
+      --prefix PATH : $out/bin
+  '';
+
   meta = {
     homepage = http://www.flamingspork.com/projects/libeatmydata/;
     license = stdenv.lib.licenses.gpl3Plus;
diff --git a/pkgs/games/newtonwars/default.nix b/pkgs/games/newtonwars/default.nix
new file mode 100644
index 000000000000..7bbc797b4f16
--- /dev/null
+++ b/pkgs/games/newtonwars/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, makeWrapper, freeglut, mesa }:
+
+stdenv.mkDerivation rec {
+  name = "newtonwars-${version}";
+  version = "20150609";
+
+  src = fetchFromGitHub {
+    owner = "Draradech";
+    repo = "NewtonWars";
+    rev = "98bb99a1797fd0073e0fd25ef9218468d3a9f7cb";
+    sha256 = "0g63fwfcdxxlnqlagj1fb8ngm385gmv8f7p8b4r1z5cny2znxdvs";
+  };
+
+  buildInputs = [ makeWrapper freeglut mesa ];
+
+  patchPhase = ''
+    sed -i "s;font24.raw;$out/share/font24.raw;g" display.c
+  '';
+
+  buildPhase = "sh build-linux.sh";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share
+    cp nw $out/bin
+    cp font24.raw $out/share
+
+    wrapProgram $out/bin/nw \
+      --prefix LD_LIBRARY_PATH ":" ${freeglut}/lib \
+      --prefix LD_LIBRARY_PATH ":" ${mesa}/lib
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A space battle game with gravity as the main theme";
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index ec7e597e8713..acfe421ac105 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.1-rc8";
-  modDirVersion = "4.1.0-rc8";
-  extraMeta.branch = "4.1";
+  version = "4.2-rc1";
+  modDirVersion = "4.2.0-rc1";
+  extraMeta.branch = "4.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/testing/linux-${version}.tar.xz";
-    sha256 = "0ia4lajpr3w9iivmwm2d7gqrpv97da5g4j8pkqa7q4mlr86jki2w";
+    sha256 = "0a9zr1jf2c110lvd7wi4jxxk2iw6san31yh8hwlahkkb8kh4wliw";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 250baa3fbc21..1789018d414c 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils, enable_dmeventd ? false }:
 
 let
-  version = "2.02.120";
+  version = "2.02.124";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${version}.tgz";
-    sha256 = "06h8csqjy6b0khi73kklkp10j5yq3j1kxklfaf158c80glpx0swd";
+    sha256 = "0myqs0ajpjmlc56vp4f66x5izhbh7wzzf3408gqnrjmikb5sr9rh";
   };
 
   configureFlags =
diff --git a/pkgs/servers/consul/Gemfile.lock b/pkgs/servers/consul/Gemfile.lock
index 8ca7428084de..f79b05b481d4 100644
--- a/pkgs/servers/consul/Gemfile.lock
+++ b/pkgs/servers/consul/Gemfile.lock
@@ -1,15 +1,15 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    execjs (2.0.2)
-    json (1.8.1)
-    libv8 (3.16.14.3)
+    execjs (2.3.0)
+    json (1.8.2)
+    libv8 (3.16.14.7)
     ref (1.0.5)
-    sass (3.3.6)
+    sass (3.4.11)
     therubyracer (0.12.1)
       libv8 (~> 3.16.14.0)
       ref
-    uglifier (2.5.0)
+    uglifier (2.7.0)
       execjs (>= 0.3.0)
       json (>= 1.8.0)
 
diff --git a/pkgs/servers/consul/gemset.nix b/pkgs/servers/consul/gemset.nix
index bf417f8c411c..e813fc9b3878 100644
--- a/pkgs/servers/consul/gemset.nix
+++ b/pkgs/servers/consul/gemset.nix
@@ -1,23 +1,23 @@
 {
   execjs = {
-    version = "2.0.2";
+    version = "2.3.0";
     source = {
       type = "gem";
-      sha256 = "167kbkyql7nvvwjsgdw5z8j66ngq7kc59gxfwsxhqi5fl1z0jbjs";
+      sha256 = "097v02bhmzc70j7n0yyf8j0z5wms88zcmgpmggby4hnvqxf41y1h";
     };
   };
   json = {
-    version = "1.8.1";
+    version = "1.8.2";
     source = {
       type = "gem";
-      sha256 = "0002bsycvizvkmk1jyv8px1hskk6wrjfk4f7x5byi8gxm6zzn6wn";
+      sha256 = "0zzvv25vjikavd3b1bp6lvbgj23vv9jvmnl4vpim8pv30z8p6vr5";
     };
   };
   libv8 = {
-    version = "3.16.14.3";
+    version = "3.16.14.7";
     source = {
       type = "gem";
-      sha256 = "1arjjbmr9zxkyv6pdrihsz1p5cadzmx8308vgfvrhm380ccgridm";
+      sha256 = "0dv5q5n5nf6b8h3fybwmsr3vkj70w4g1jpf6661j3hsv9vp0g4qq";
     };
   };
   ref = {
@@ -28,10 +28,10 @@
     };
   };
   sass = {
-    version = "3.3.6";
+    version = "3.4.11";
     source = {
       type = "gem";
-      sha256 = "0ra0kxx52cgyrq6db7a1vysk984ilshbx40bcf527k8b3fha6k5r";
+      sha256 = "10dncnv7g5v8d1xpw2aaarxjjlm68f7nm02ns2kl8nf3yxi6wzdf";
     };
   };
   therubyracer = {
@@ -46,10 +46,10 @@
     ];
   };
   uglifier = {
-    version = "2.5.0";
+    version = "2.7.0";
     source = {
       type = "gem";
-      sha256 = "0b9kxgyg8cv3g1bp6casndfzfy71jd9xyjxwng0lj90vzqrgjp20";
+      sha256 = "1x1mnakx086l83a3alj690c6n8kfmb4bk243a6m6yz99s15gbxfq";
     };
     dependencies = [
       "execjs"
diff --git a/pkgs/servers/misc/subsonic/default.nix b/pkgs/servers/misc/subsonic/default.nix
new file mode 100644
index 000000000000..dad32139cbee
--- /dev/null
+++ b/pkgs/servers/misc/subsonic/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, jre }:
+
+let version = "5.2.1"; in
+
+stdenv.mkDerivation rec {
+  name = "subsonic-${version}";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://sourceforge/subsonic/subsonic-${version}-standalone.tar.gz";
+    sha256 = "523fa8357c961c1ae742a15f0ceaabdd41fcba9137c29d244957922af90ee791";
+  };
+
+  inherit jre;
+
+  # Create temporary directory to extract tarball into to satisfy Nix's need
+  # for a directory to be created in the unpack phase.
+  unpackPhase = ''
+    mkdir ${name}
+    tar -C ${name} -xzf $src
+  '';
+  installPhase = ''
+    mkdir $out
+    cp -r ${name}/* $out
+  '';
+
+  meta = {
+    homepage = http://subsonic.org;
+    description = "Personal media streamer";
+    license = stdenv.lib.licenses.gpl3;
+  };
+
+  phases = ["unpackPhase" "installPhase"];
+}
diff --git a/pkgs/tools/filesystems/gitfs/default.nix b/pkgs/tools/filesystems/gitfs/default.nix
new file mode 100644
index 000000000000..cd79f5db85b3
--- /dev/null
+++ b/pkgs/tools/filesystems/gitfs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, python, buildPythonPackage, pythonPackages }:
+
+buildPythonPackage rec {
+  name = "gitfs-0.2.5";
+
+  src = fetchFromGitHub {
+    owner = "PressLabs";
+    repo = "gitfs";
+    rev = "495c6c52ec3573294ba7b8426ed794eb466cbb82";
+    sha256 = "04yh6b5ivbviqy5k2768ag75cd5kr8k70ar0d801yvc8hnijvphk";
+  };
+
+  patchPhase = ''
+    # requirement checks are unnecessary at runtime
+    echo > requirements.txt
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ atomiclong fusepy pygit2 ];
+
+  meta = {
+    description = "A FUSE filesystem that fully integrates with git";
+    longDescription = ''
+      A git remote repository's branch can be mounted locally,
+      and any subsequent changes made to the files will be
+      automatically committed to the remote.
+    '';
+    homepage = https://github.com/PressLabs/gitfs;
+    license = stdenv.lib.licenses.asl20;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.robbinch ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/iftop/default.nix b/pkgs/tools/networking/iftop/default.nix
index cb1bf546bf60..a7fc4414f2c9 100644
--- a/pkgs/tools/networking/iftop/default.nix
+++ b/pkgs/tools/networking/iftop/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   # Explicitly link against libgcc_s, to work around the infamous
   # "libgcc_s.so.1 must be installed for pthread_cancel to work".
-  LDFLAGS = "-lgcc_s";
+  LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   preConfigure = ''
     cp ${automake}/share/automake*/config.{sub,guess} config
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2Plus;
     homepage = http://ex-parrot.com/pdw/iftop/;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.mornfall ];
   };
 }
diff --git a/pkgs/tools/security/gnupg/20.nix b/pkgs/tools/security/gnupg/20.nix
index a5fdc2e26924..542baa95efe2 100644
--- a/pkgs/tools/security/gnupg/20.nix
+++ b/pkgs/tools/security/gnupg/20.nix
@@ -12,11 +12,11 @@ with stdenv.lib;
 assert x11Support -> pinentry != null;
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.27";
+  name = "gnupg-2.0.28";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1wihx7dphacg9fy5wfj93h236lr1w5gwzh7ir3js37wi9cz6sr2p";
+    sha256 = "0k2k399fnhfhhr4dvm8d6vs4ihq6gg06191lzfwikzaqmgj2w2ff";
   };
 
   buildInputs
diff --git a/pkgs/tools/security/sbsigntool/autoconf.patch b/pkgs/tools/security/sbsigntool/autoconf.patch
new file mode 100644
index 000000000000..27f5b77c8848
--- /dev/null
+++ b/pkgs/tools/security/sbsigntool/autoconf.patch
@@ -0,0 +1,19 @@
+diff -uNr sbsigntool/configure.ac sbsigntool-new/configure.ac
+--- sbsigntool/configure.ac	2015-07-05 12:18:18.932717136 +0200
++++ sbsigntool-new/configure.ac	2015-07-05 14:51:39.659284938 +0200
+@@ -65,7 +65,7 @@
+ 
+ dnl gnu-efi headers require extra include dirs
+ EFI_ARCH=$(uname -m)
+-EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \
++EFI_CPPFLAGS="-I@@NIX_GNUEFI@@/include/efi -I@@NIX_GNUEFI@@/include/efi/$EFI_ARCH \
+  -DEFI_FUNCTION_WRAPPER"
+ CPPFLAGS_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS"
+@@ -74,5 +74,5 @@
+ AC_SUBST(EFI_CPPFLAGS, $EFI_CPPFLAGS)
+ 
+ AC_CONFIG_FILES([Makefile src/Makefile lib/ccan/Makefile]
+-		[docs/Makefile tests/Makefile])
++		[docs/Makefile])
+ AC_OUTPUT
diff --git a/pkgs/tools/security/sbsigntool/default.nix b/pkgs/tools/security/sbsigntool/default.nix
new file mode 100644
index 000000000000..1571720a0b9b
--- /dev/null
+++ b/pkgs/tools/security/sbsigntool/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchgit, autoconf, automake, utillinux, openssl, libuuid, gnu-efi
+, binutils, pkgconfig, help2man }:
+
+stdenv.mkDerivation rec {
+  name = "sbsigntool-${version}";
+  version = "0.5";
+
+  src = fetchgit {
+    url = "git://kernel.ubuntu.com/jk/sbsigntool";
+    rev = "951ee95a301674c046f55330cd7460e1314deff2";
+    sha256 = "09k8by0qq8j7ff812l1l9z9frsx5c4cmhj5in3g1sgyz3v55nfy7";
+  };
+
+  patches = [ ./autoconf.patch ];
+
+  buildInputs = [ autoconf automake utillinux openssl libuuid gnu-efi binutils pkgconfig help2man ];
+
+  configurePhase = ''
+    substituteInPlace configure.ac --replace "@@NIX_GNUEFI@@" "${gnu-efi}"
+
+    lib/ccan.git/tools/create-ccan-tree --build-type=automake lib/ccan "talloc read_write_all build_assert array_size"
+    touch AUTHORS
+    touch ChangeLog
+
+    echo "SUBDIRS = lib/ccan src docs" >> Makefile.am
+
+    aclocal
+    autoheader
+    autoconf
+    automake --add-missing -Wno-portability
+
+    ./configure --prefix=$out
+    '';
+
+  installPhase = ''
+    mkdir -p $out
+    make install
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for maintaining UEFI signature databases";
+    homepage    = http://jk.ozlabs.org/docs/sbkeysync-maintaing-uefi-key-databases;
+    maintainers = [ maintainers.tstrobel ];
+    platforms   = platforms.linux;
+  };
+}
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4f4cc1e442dc..1d2e8e4fe379 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1580,6 +1580,8 @@ let
 
   git-hub = callPackage ../applications/version-management/git-and-tools/git-hub { };
 
+  gitfs = callPackage ../tools/filesystems/gitfs { };
+
   gitlab = callPackage ../applications/version-management/gitlab {
     ruby = ruby_2_1_3;
   };
@@ -1724,6 +1726,8 @@ let
     zfsSupport = false;
   };
 
+  sbsigntool = callPackage ../tools/security/sbsigntool { };
+
   gsmartcontrol = callPackage ../tools/misc/gsmartcontrol {
     inherit (gnome) libglademm;
   };
@@ -3005,6 +3009,8 @@ let
 
   su = shadow.su;
 
+  subsonic = callPackage ../servers/misc/subsonic { };
+
   surfraw = callPackage ../tools/networking/surfraw { };
 
   swec = callPackage ../tools/networking/swec {
@@ -5026,14 +5032,15 @@ let
   ruby_2_1_1 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.1.1.nix { });
   ruby_2_1_2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.1.2.nix { });
   ruby_2_1_3 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.1.3.nix { });
+  ruby_2_1_6 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.1.6.nix { });
   ruby_2_2_0 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.2.0.nix { });
 
   # Ruby aliases
-  ruby = ruby_1_9;
+  ruby = ruby_2_1;
   ruby_1_8 = ruby_1_8_7;
   ruby_1_9 = ruby_1_9_3;
   ruby_2_0 = ruby_2_0_0;
-  ruby_2_1 = ruby_2_1_3;
+  ruby_2_1 = ruby_2_1_6;
   ruby_2_2 = ruby_2_2_0;
 
   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/rubygems.nix) {
@@ -10861,7 +10868,7 @@ let
   djview4 = pkgs.djview;
 
   dmenu = callPackage ../applications/misc/dmenu {
-    enableXft = config.dmenu.enableXft or false;
+    enableXft = true;
   };
 
   dmenu2 = callPackage ../applications/misc/dmenu2 { };
@@ -13495,6 +13502,8 @@ let
 
   njam = callPackage ../games/njam { };
 
+  newtonwars = callPackage ../games/newtonwars { };
+
   oilrush = callPackage ../games/oilrush { };
 
   openra = callPackage ../games/openra { lua = lua5_1; };
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index c2f06ee920c9..c8b1b0bd7c8a 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -851,6 +851,17 @@ let self = _self // overrides;
     meta = { license = gpl3Plus; };
   };
 
+  multiple-cursors = melpaBuild rec {
+    pname = "multiple-cursors";
+    version = "20150627";
+    src = fetchFromGitHub {
+      owner  = "magnars";
+      repo   = "multiple-cursors.el";
+      rev    = "9b53e892e6167f930763a3c5aedf8773110a8ae9";
+      sha256 = "0wcrdb137a9aq6dynlqbvypb6m2dj48m899xwy7ilnf2arrmipid";
+    };
+  };
+
   nyan-mode = callPackage ../applications/editors/emacs-modes/nyan-mode {};
 
   org-plus-contrib = melpaBuild rec {
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 8ffa3ce8ebf9..5e3c6d6f0e05 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -40,6 +40,9 @@ rec {
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix ({ inherit (packages.ghc784) ghc alex happy; } // stdenv.lib.optionalAttrs stdenv.isDarwin {
       libiconv = pkgs.darwin.libiconv;
     });
+    ghcNokinds = callPackage ../development/compilers/ghc/nokinds.nix ({ inherit (packages.ghc784) ghc alex happy; } // stdenv.lib.optionalAttrs stdenv.isDarwin {
+      libiconv = pkgs.darwin.libiconv;
+    });
 
     ghcjs = packages.ghc7101.callPackage ../development/compilers/ghcjs {
       ghc = compiler.ghc7101;
@@ -95,6 +98,10 @@ rec {
       ghc = compiler.ghcHEAD;
       packageSetConfig = callPackage ../development/haskell-modules/configuration-ghc-head.nix { };
     };
+    ghcNokinds = callPackage ../development/haskell-modules {
+      ghc = compiler.ghcNokinds;
+      packageSetConfig = callPackage ../development/haskell-modules/configuration-ghc-nokinds.nix { };
+    };
     ghcjs = callPackage ../development/haskell-modules {
       ghc = compiler.ghcjs;
       packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index a8738ed6b30a..ad135e34a4d1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -13574,6 +13574,31 @@ let
     };
   });
 
+  vultr = buildPythonPackage rec {
+    version = "0.1.2";
+    name = "vultr-${version}";
+
+    src = pkgs.fetchFromGitHub {
+        owner = "spry-group";
+        repo = "python-vultr";
+        rev = "${version}";
+        sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h";
+    };
+
+    propagatedBuildInputs = with self; [ requests2 ];
+
+    # Tests disabled. They fail because they try to access the network
+    doCheck = false;
+
+    meta = {
+      description = "Vultr.com API Client";
+      homepage = "https://github.com/spry-group/python-vultr";
+      license = licenses.mit;
+      maintainers = with maintainers; [ lihop ];
+      platforms = platforms.all;
+    };
+  };
+
   waitress = buildPythonPackage rec {
     name = "waitress-0.8.9";