summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/tweak/default.nix2
-rw-r--r--pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--pkgs/applications/graphics/xaos/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix10
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix33
-rw-r--r--pkgs/applications/networking/ids/bro/default.nix11
-rw-r--r--pkgs/applications/science/biology/bwa/default.nix2
-rw-r--r--pkgs/applications/science/math/msieve/default.nix2
-rw-r--r--pkgs/applications/window-managers/i3/lock-fancy.nix4
-rw-r--r--pkgs/data/fonts/dejavu-fonts/default.nix48
-rw-r--r--pkgs/development/compilers/colm/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix29
-rw-r--r--pkgs/development/haskell-modules/patches/GLUT.patch12
-rw-r--r--pkgs/development/libraries/SDL2_gfx/default.nix34
-rw-r--r--pkgs/development/libraries/SDL2_image/default.nix2
-rw-r--r--pkgs/development/libraries/SDL2_net/default.nix2
-rw-r--r--pkgs/development/libraries/assimp/default.nix2
-rw-r--r--pkgs/development/libraries/drumstick/default.nix2
-rw-r--r--pkgs/development/libraries/http-parser/default.nix2
-rw-r--r--pkgs/development/python-modules/django/1.10-gis-libs.template.patch (renamed from pkgs/development/python-modules/django/1.7.7-gis-libs.template.patch)16
-rw-r--r--pkgs/development/tools/build-managers/bazel/default.nix2
-rw-r--r--pkgs/development/tools/rtags/default.nix2
-rw-r--r--pkgs/games/factorio/default.nix36
-rw-r--r--pkgs/games/factorio/mods.nix213
-rw-r--r--pkgs/games/factorio/utils.nix49
-rw-r--r--pkgs/games/hedgewars/default.nix9
-rw-r--r--pkgs/games/terraria-server/default.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl2
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix2
-rw-r--r--pkgs/servers/nosql/hyperdex/libe.nix1
-rw-r--r--pkgs/tools/filesystems/lizardfs/412.patch43
-rw-r--r--pkgs/tools/filesystems/lizardfs/check-includes.patch30
-rw-r--r--pkgs/tools/filesystems/lizardfs/default.nix17
-rw-r--r--pkgs/tools/security/kbfs/default.nix27
-rw-r--r--pkgs/tools/text/zimreader/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix5
-rw-r--r--pkgs/top-level/python-packages.nix47
39 files changed, 576 insertions, 141 deletions
diff --git a/pkgs/applications/editors/tweak/default.nix b/pkgs/applications/editors/tweak/default.nix
index f90eb609d446..eb0be39e7c16 100644
--- a/pkgs/applications/editors/tweak/default.nix
+++ b/pkgs/applications/editors/tweak/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     description = "An efficient hex editor";
     homepage = "http://www.chiark.greenend.org.uk/~sgtatham/tweak";
     license = licenses.mit;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 609d88cea3a3..2a4d52088e8e 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -11,12 +11,12 @@
 assert stdenv ? glibc;
 
 stdenv.mkDerivation rec {
-  version = "2.0.4";
+  version = "2.0.5";
   name = "darktable-${version}";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "0qhyjsjjcd8yirqdnzbbzsldwd6y4wf1bxjbsshvqq7h5xi4ir40";
+    sha256 = "00hap68yvfdif6a4lpbhn4jx1n68mpd2kj473kml1xby9swp32w9";
   };
 
   buildInputs =
diff --git a/pkgs/applications/graphics/xaos/default.nix b/pkgs/applications/graphics/xaos/default.nix
index c53d755da079..1f3a9967b020 100644
--- a/pkgs/applications/graphics/xaos/default.nix
+++ b/pkgs/applications/graphics/xaos/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = http://xaos.sourceforge.net/;
     description = "Fractal viewer";
     license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index fe21642373ef..9eb25c316f95 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -7,13 +7,19 @@ mkChromiumDerivation (base: rec {
   packageName = "chromium";
   buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
 
+  outputs = ["out" "sandbox"];
+
+  sandboxExecutableName = "__chromium-suid-sandbox";
+
   installPhase = ''
     mkdir -p "$libExecPath"
     cp -v "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
     cp -v "$buildPath/icudtl.dat" "$libExecPath/"
     cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
     cp -v "$buildPath/chrome" "$libExecPath/$packageName"
-    cp -v "$buildPath/chrome_sandbox" "$libExecPath/chrome-sandbox"
+
+    mkdir -p "$sandbox/bin"
+    cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
 
     mkdir -vp "$out/share/man/man1"
     cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
@@ -29,6 +35,8 @@ mkChromiumDerivation (base: rec {
     done
   '';
 
+  passthru = { inherit sandboxExecutableName; };
+
   meta = {
     description = "An open source web browser from Google";
     homepage = http://www.chromium.org/;
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index a7447db7c220..049c1128b9fa 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,4 +1,4 @@
-{ newScope, stdenv, makeWrapper, makeDesktopItem
+{ newScope, stdenv, makeWrapper, makeDesktopItem, writeScript
 
 # package customization
 , channel ? "stable"
@@ -61,22 +61,46 @@ let
 
   suffix = if channel != "stable" then "-" + channel else "";
 
+  sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
+
 in stdenv.mkDerivation {
   name = "chromium${suffix}-${chromium.browser.version}";
 
   buildInputs = [ makeWrapper ];
 
+  outputs = ["out" "sandbox"];
+
   buildCommand = let
     browserBinary = "${chromium.browser}/libexec/chromium/chromium";
     getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
+    launchScript = writeScript "chromium" ''
+      #! ${stdenv.shell}
+
+      if [ -x "/var/setuid-wrappers/${sandboxExecutableName}" ]
+      then
+        export CHROME_DEVEL_SANDBOX="/var/setuid-wrappers/${sandboxExecutableName}"
+      else
+        export CHROME_DEVEL_SANDBOX="@sandbox@/bin/${sandboxExecutableName}"
+      fi
+
+      # libredirect causes chromium to deadlock on startup
+      export LD_PRELOAD="$(echo -n "$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\.so$ | tr '\n' ':')"
+
+      exec @out@/bin/.chromium-wrapped "''${extraFlagsArray[@]}" "$@"
+    '';
   in with stdenv.lib; ''
     mkdir -p "$out/bin" "$out/share/applications"
 
     ln -s "${chromium.browser}/share" "$out/share"
-    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      --set CHROME_DEVEL_SANDBOX "${chromium.browser}/libexec/chromium/chrome-sandbox" \
+    eval makeWrapper "${browserBinary}" "$out/bin/.chromium-wrapped" \
       ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
 
+    cp -v "${launchScript}" "$out/bin/chromium"
+    substituteInPlace $out/bin/chromium --replace @out@ $out --replace @sandbox@ $sandbox
+    chmod 755 "$out/bin/chromium"
+
+    ln -sv "${chromium.browser.sandbox}" "$sandbox"
+
     ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
     ln -s "${chromium.browser}/share/icons" "$out/share/icons"
     cp -v "${desktopItem}/share/applications/"* "$out/share/applications"
@@ -85,7 +109,8 @@ in stdenv.mkDerivation {
   inherit (chromium.browser) meta packageName;
 
   passthru = {
-    inherit (chromium) upstream-info;
+    inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
+    inherit sandboxExecutableName;
   };
 }
diff --git a/pkgs/applications/networking/ids/bro/default.nix b/pkgs/applications/networking/ids/bro/default.nix
index 10243e5f1d8e..10cf9874ff1e 100644
--- a/pkgs/applications/networking/ids/bro/default.nix
+++ b/pkgs/applications/networking/ids/bro/default.nix
@@ -3,22 +3,21 @@
 
 stdenv.mkDerivation rec {
   name = "bro-2.4.1";
-  
+
   src = fetchurl {
     url = "http://www.bro.org/downloads/release/${name}.tar.gz";
     sha256 = "1xn8qwgnxihlr4lmg7kz2vqjk46aqgwc8878pbv30ih2lmrrdffq";
   };
-  
-  buildInputs = [ cmake flex bison openssl libpcap perl zlib file curl geoip
-   gperftools ];
+
+  buildInputs = [ cmake flex bison openssl libpcap perl zlib file curl geoip gperftools ];
 
   enableParallelBuilding = true;
-  
+
   meta = with stdenv.lib; {
     description = "Powerful network analysis framework that is much different from the typical IDS you may know";
     homepage = http://www.bro.org/;
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
-    platforms = with platforms; unix;
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/applications/science/biology/bwa/default.nix b/pkgs/applications/science/biology/bwa/default.nix
index 4e163a5b3f8f..1ed1eda229c2 100644
--- a/pkgs/applications/science/biology/bwa/default.nix
+++ b/pkgs/applications/science/biology/bwa/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl3;
     homepage    = http://bio-bwa.sourceforge.net/;
     maintainers = with maintainers; [ luispedro ];
-    platforms = with platforms; linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/science/math/msieve/default.nix b/pkgs/applications/science/math/msieve/default.nix
index e01b9654711b..4c99b5081cc5 100644
--- a/pkgs/applications/science/math/msieve/default.nix
+++ b/pkgs/applications/science/math/msieve/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.publicDomain;
     homepage = http://msieve.sourceforge.net/;
     maintainers = [ stdenv.lib.maintainers.roconnor ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/window-managers/i3/lock-fancy.nix b/pkgs/applications/window-managers/i3/lock-fancy.nix
index dd7f89b2a8de..378001528b1f 100644
--- a/pkgs/applications/window-managers/i3/lock-fancy.nix
+++ b/pkgs/applications/window-managers/i3/lock-fancy.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, coreutils, scrot, imagemagick, gawk
-, i3lock-color
+, i3lock-color, getopt, fontconfig
 }:
 
 stdenv.mkDerivation rec {
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
     sed -i -e "s|i3lock -n |${i3lock-color}/bin/i3lock-color -n |" lock
     sed -i -e 's|ICON="$SCRIPTPATH/lockdark.png"|ICON="'$out'/share/i3lock-fancy/lockdark.png"|' lock
     sed -i -e 's|ICON="$SCRIPTPATH/lock.png"|ICON="'$out'/share/i3lock-fancy/lock.png"|' lock
+    sed -i -e "s|getopt |${getopt}/bin/getopt |" lock
+    sed -i -e "s|fc-match |${fontconfig.bin}/bin/fc-match |" lock
   '';
   installPhase = ''
     mkdir -p $out/bin $out/share/i3lock-fancy
diff --git a/pkgs/data/fonts/dejavu-fonts/default.nix b/pkgs/data/fonts/dejavu-fonts/default.nix
index 3c38be90ded4..f49f5c9bb007 100644
--- a/pkgs/data/fonts/dejavu-fonts/default.nix
+++ b/pkgs/data/fonts/dejavu-fonts/default.nix
@@ -1,37 +1,21 @@
-{fetchurl, stdenv, fontforge, perl, fontconfig, FontTTF}:
+{fetchFromGitHub, stdenv, fontforge, perl, FontTTF}:
 
-let version = "2.35" ; in
+let version = "2.37" ; in
 
 stdenv.mkDerivation rec {
   name = "dejavu-fonts-${version}";
-  #fontconfig is needed only for fc-lang (?)
   buildInputs = [fontforge perl FontTTF];
 
-  unicodeData = fetchurl {
-    url = http://www.unicode.org/Public/6.1.0/ucd/UnicodeData.txt ;
-    sha256 = "1bd6zkzvxfnifrn5nh171ywk7q56sgk8gdvdn43z9i53hljjcrih";
-  };
-  blocks = fetchurl {
-    url = http://www.unicode.org/Public/6.1.0/ucd/Blocks.txt;
-    sha256 = "0w0vkb09nrlc6mrhqyl9npszdi828afgvhvlb1vs5smjv3h8y3dz";
-  };
-
-  src = fetchurl {
-    url = "mirror://sourceforge/dejavu/dejavu-fonts-${version}.tar.bz2";
-    sha256 = "1xdbi4llrq1qbkd73352ibrfqcbz93dww8hab216qz5szd95yvv4";
+  src = fetchFromGitHub {
+    owner = "dejavu-fonts";
+    repo = "dejavu-fonts";
+    rev = "version_${stdenv.lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "1xknlg2h287dx34v2n5r33bpcl4biqf0cv7nak657rjki7s0k4bk";
   };
 
   buildFlags = "full-ttf";
 
-  preBuild = ''
-    sed -e s@/usr/bin/env@$(type -tP env)@ -i scripts/*
-    sed -e s@/usr/bin/perl@$(type -tP perl)@ -i scripts/*
-    mkdir resources
-    tar xf ${fontconfig.src} --wildcards '*/fc-lang'
-    ln -s $PWD/fontconfig-*/fc-lang -t resources/
-    ln -s ${unicodeData} resources/UnicodeData.txt
-    ln -s ${blocks} resources/Blocks.txt
-  '';
+  preBuild = "patchShebangs scripts";
 
   installPhase = ''
     mkdir -p $out/share/fonts/truetype
@@ -41,6 +25,22 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
+    description = "A typeface family based on the Bitstream Vera fonts";
+    longDescription = ''
+      The DejaVu fonts are TrueType fonts based on the BitStream Vera fonts,
+      providing more styles and with greater coverage of Unicode.
+
+      This package includes DejaVu Sans, DejaVu Serif, DejaVu Sans Mono, and
+      the TeX Gyre DejaVu Math font.
+    '';
+    homepage = http://dejavu-fonts.org/wiki/Main_Page;
+
+    # Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved.
+    # Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
+    # DejaVu changes are in public domain
+    # See http://dejavu-fonts.org/wiki/License for details
+    license = stdenv.lib.licenses.free;
+
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/colm/default.nix b/pkgs/development/compilers/colm/default.nix
index f9dc99ee2f8f..b7773a91d983 100644
--- a/pkgs/development/compilers/colm/default.nix
+++ b/pkgs/development/compilers/colm/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "A programming language for the analysis and transformation of computer languages";
     homepage = http://www.colm.net/open-source/colm;
     license = licenses.gpl2;
-    platforms = platforms.unix;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 475349ed4ba9..2030f931c51a 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -56,7 +56,7 @@ assert langGo -> langCC;
 with stdenv.lib;
 with builtins;
 
-let version = "4.9.3";
+let version = "4.9.4";
 
     # Whether building a cross-compiler for GNU/Hurd.
     crossGNU = cross != null && cross.config == "i586-pc-gnu";
@@ -213,7 +213,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
-    sha256 = "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3";
+    sha256 = "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc";
   };
 
   inherit patches;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 1cd4e15b4e91..690153a27792 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -160,7 +160,9 @@ self: super: {
   # FSEvents API is very buggy and tests are unreliable. See
   # http://openradar.appspot.com/10207999 and similar issues.
   # https://github.com/haskell-fswatch/hfsnotify/issues/62
-  fsnotify = dontCheck super.fsnotify; # if pkgs.stdenv.isDarwin then dontCheck super.fsnotify else super.fsnotify;
+  fsnotify = if pkgs.stdenv.isDarwin
+    then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa
+    else dontCheck super.fsnotify;
 
   # the system-fileio tests use canonicalizePath, which fails in the sandbox
   system-fileio = if pkgs.stdenv.isDarwin then dontCheck super.system-fileio else super.system-fileio;
@@ -946,4 +948,29 @@ self: super: {
     url = "https://github.com/commercialhaskell/stack/commit/7f7f1a5f67f4ecdd1f3009495f1ff101dd38047e.patch";
     sha256 = "1yh2g45mkfpwxq0vyzcbc4nbxh6wmb2xpp0k7r5byd8jicgvli29";
   });
+
+  # https://github.com/GaloisInc/HaNS/pull/12
+  hans = overrideCabal super.hans (drv: {
+    src = pkgs.fetchFromGitHub {
+      owner = "GaloisInc";
+      repo = "HaNS";
+      rev = "53e4af3ee46fc06b31754cec620209a81bbef456";
+      sha256 = "079205fqglzhh931h4n7qlrih18117m3w82ih19b8ygr55ps4ldj";
+    };
+    doHaddock = false;
+    patches = [(pkgs.fetchpatch {
+          url = "https://patch-diff.githubusercontent.com/raw/GaloisInc/HaNS/pull/12.patch";
+          sha256 = "0xa5b7i9wx32ji0zzlh1a1pws677iffby3bg39kv3c9srdb4by1g";
+      })];
+  });
+
+  # GLUT uses `dlopen` to link to freeglut, so we need to set the RUNPATH correctly for
+  # it to find `libglut.so` from the nix store. We do this by patching GLUT.cabal to pkg-config
+  # depend on freeglut, which provides GHC to necessary information to generate a correct RPATH.
+  #
+  # Note: Simply patching the dynamic library (.so) of the GLUT build will *not* work, since the
+  # RPATH also needs to be propagated when using static linking. GHC automatically handles this for
+  # us when we patch the cabal file (Link options will be recored in the ghc package registry).
+  GLUT = addPkgconfigDepend (appendPatch super.GLUT ./patches/GLUT.patch) pkgs.freeglut;
+
 }
diff --git a/pkgs/development/haskell-modules/patches/GLUT.patch b/pkgs/development/haskell-modules/patches/GLUT.patch
new file mode 100644
index 000000000000..3025812213bc
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/GLUT.patch
@@ -0,0 +1,12 @@
+diff --git a/GLUT.cabal b/GLUT.cabal
+index f370d6c..a404e1e 100644
+--- a/GLUT.cabal
++++ b/GLUT.cabal
+@@ -103,6 +103,7 @@ library
+   else
+     cpp-options: "-DCALLCONV=ccall"
+     cc-options: "-DUSE_DLSYM"
++  pkgconfig-depends: freeglut
+ 
+ executable BOGLGP01-OnYourOwn1
+   if !flag(BuildExamples)
diff --git a/pkgs/development/libraries/SDL2_gfx/default.nix b/pkgs/development/libraries/SDL2_gfx/default.nix
index 66913fc01597..23a0924ad3bf 100644
--- a/pkgs/development/libraries/SDL2_gfx/default.nix
+++ b/pkgs/development/libraries/SDL2_gfx/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchsvn, SDL2} :
+{stdenv, fetchsvn, SDL2}:
 
 let rev = 5; in
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     sed -i -e 's,"SDL.h",<SDL2/SDL.h>,' \
       $out/include/SDL2/*.h
-    
+
     ln -s $out/include/SDL2/SDL2_framerate.h $out/include/SDL2/SDL_framerate.h;
     ln -s $out/include/SDL2/SDL2_gfxPrimitives.h $out/include/SDL2/SDL_gfxPrimitives.h;
     ln -s $out/include/SDL2/SDL2_rotozoom.h $out/include/SDL2/SDL_rotozoom.h;
@@ -27,28 +27,28 @@ stdenv.mkDerivation rec {
   meta = {
     description = "SDL graphics drawing primitives and support functions";
 
-    longDescription =
-      '' The SDL_gfx library evolved out of the SDL_gfxPrimitives code
-	 which provided basic drawing routines such as lines, circles or
-	 polygons and SDL_rotozoom which implemented a interpolating
-	 rotozoomer for SDL surfaces.
+    longDescription = ''
+      The SDL_gfx library evolved out of the SDL_gfxPrimitives code
+      which provided basic drawing routines such as lines, circles or
+      polygons and SDL_rotozoom which implemented a interpolating
+      rotozoomer for SDL surfaces.
 
-	 The current components of the SDL_gfx library are:
+      The current components of the SDL_gfx library are:
 
-	    * Graphic Primitives (SDL_gfxPrimitves.h)
-	    * Rotozoomer (SDL_rotozoom.h)
-	    * Framerate control (SDL_framerate.h)
-	    * MMX image filters (SDL_imageFilter.h)
-	    * Custom Blit functions (SDL_gfxBlitFunc.h)
+          * Graphic Primitives (SDL_gfxPrimitves.h)
+          * Rotozoomer (SDL_rotozoom.h)
+          * Framerate control (SDL_framerate.h)
+          * MMX image filters (SDL_imageFilter.h)
+          * Custom Blit functions (SDL_gfxBlitFunc.h)
 
-	 The library is backwards compatible to the above mentioned
-         code. Its is written in plain C and can be used in C++ code.
-       '';
+      The library is backwards compatible to the above mentioned
+      code. Its is written in plain C and can be used in C++ code.
+    '';
 
     homepage = https://sourceforge.net/projects/sdlgfx/;
     license = stdenv.lib.licenses.lgpl2Plus;
 
     maintainers = [ stdenv.lib.maintainers.bjg ];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/SDL2_image/default.nix b/pkgs/development/libraries/SDL2_image/default.nix
index eab9b1fb55d0..7253fc7b4daf 100644
--- a/pkgs/development/libraries/SDL2_image/default.nix
+++ b/pkgs/development/libraries/SDL2_image/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "SDL image library";
     homepage = "http://www.libsdl.org/projects/SDL_image/";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/SDL2_net/default.nix b/pkgs/development/libraries/SDL2_net/default.nix
index e41546512e94..6f0965778197 100644
--- a/pkgs/development/libraries/SDL2_net/default.nix
+++ b/pkgs/development/libraries/SDL2_net/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     homepage = https://www.libsdl.org/projects/SDL_net;
     license = licenses.zlib;
     maintainers = [ maintainers.MP2E ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 3511c3331bc4..5fbc45a7c08b 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -20,6 +20,6 @@ stdenv.mkDerivation {
     homepage = http://assimp.sourceforge.net/;
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/drumstick/default.nix b/pkgs/development/libraries/drumstick/default.nix
index 8675b046b20e..809037bb5edf 100644
--- a/pkgs/development/libraries/drumstick/default.nix
+++ b/pkgs/development/libraries/drumstick/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
     description = "MIDI libraries for Qt5/C++";
     homepage = http://drumstick.sourceforge.net/;
     license = licenses.gpl2Plus;
-    platforms = with platforms; linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
index e8a8ecee95e4..df3f68b12493 100644
--- a/pkgs/development/libraries/http-parser/default.nix
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -42,6 +42,6 @@ in stdenv.mkDerivation {
     homepage = https://github.com/joyent/http-parser;
 
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux; # Broken on pure-darwin, wants xcode
   };
 }
diff --git a/pkgs/development/python-modules/django/1.7.7-gis-libs.template.patch b/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
index 7757691bfca1..be196d000bcf 100644
--- a/pkgs/development/python-modules/django/1.7.7-gis-libs.template.patch
+++ b/pkgs/development/python-modules/django/1.10-gis-libs.template.patch
@@ -13,12 +13,12 @@ diff --git a/django/contrib/gis/gdal/libgdal.py b/django/contrib/gis/gdal/libgda
 diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeos.py
 --- a/django/contrib/gis/geos/libgeos.py
 +++ b/django/contrib/gis/geos/libgeos.py
-@@ -23,7 +23,7 @@ try:
-     lib_path = settings.GEOS_LIBRARY_PATH
- except (AttributeError, EnvironmentError,
-         ImportError, ImproperlyConfigured):
--    lib_path = None
-+    lib_path = "@geos@/lib/libgeos_c.so"
+@@ -26,7 +26,7 @@ try:
+         lib_path = settings.GEOS_LIBRARY_PATH
+     except (AttributeError, EnvironmentError,
+             ImportError, ImproperlyConfigured):
+-        lib_path = None
++        lib_path = "@geos@/lib/libgeos_c.so"
  
- # Setting the appropriate names for the GEOS-C library.
- if lib_path:
+     # Setting the appropriate names for the GEOS-C library.
+     if lib_path:
diff --git a/pkgs/development/tools/build-managers/bazel/default.nix b/pkgs/development/tools/build-managers/bazel/default.nix
index c103d11ac6e3..e49697084e45 100644
--- a/pkgs/development/tools/build-managers/bazel/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     description = "Build tool that builds code quickly and reliably";
     license = stdenv.lib.licenses.asl20;
     maintainers = [ stdenv.lib.maintainers.philandstuff ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/tools/rtags/default.nix b/pkgs/development/tools/rtags/default.nix
index 9b24a8fe8ea5..06ab4ffed3ca 100644
--- a/pkgs/development/tools/rtags/default.nix
+++ b/pkgs/development/tools/rtags/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/andersbakken/rtags;
 
     license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.allBut [ "i686-linux" ];
   };
 }
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index cb04e9c47501..bb6cffdb1224 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -1,6 +1,8 @@
 { stdenv, callPackage, fetchurl, makeWrapper
 , alsaLib, libX11, libXcursor, libXinerama, libXrandr, libXi, mesa_noglu
+, factorio-utils
 , releaseType
+, mods ? []
 , username ? "" , password ? ""
 }:
 
@@ -8,7 +10,7 @@ assert releaseType == "alpha" || releaseType == "headless";
 
 with stdenv.lib;
 let
-  version = "0.13.8";
+  version = "0.13.13";
   isHeadless = releaseType == "headless";
 
   arch = if stdenv.system == "x86_64-linux" then {
@@ -23,14 +25,14 @@ let
 
   fetch = rec {
     url = "https://www.factorio.com/get-download/${version}/${releaseType}/${arch.inUrl}";
-    name = "factorio_${releaseType}_${arch.inTar}-${version}.tar.gz"; # TODO take this from 302 redirection somehow? fetchurl doesn't help.
+    name = "factorio_${releaseType}_${arch.inTar}-${version}.tar.gz";
     x64 = {
-      headless = fetchurl        { inherit name url; sha256 = "0dliympqnnawfw65n5gnda9mljyqwshmq2hvplf1h8nrp1rw3pgj"; };
-      alpha = authenticatedFetch { inherit      url; sha256 = "12safa8b4g5cpwxbkf8ldkb17lgf33rslr7p81l7gr1lyzfnf82c"; };
+      headless = fetchurl        { inherit name url; sha256 = "1ip0h2kh16s07nk6xqpm0i0yb0x32zn306414j15gqg3j0j0mzpn"; };
+      alpha = authenticatedFetch { inherit      url; sha256 = "1hvj51cggp6cbxyndbl4z07kadzxxk3diiqkkv0jm9s0nrwvq9zr"; };
     };
     i386 = {
       headless = abort "Factorio 32-bit headless binaries are not available for download.";
-      alpha = authenticatedFetch { inherit      url; sha256 = "0m4m183avnqxkw28vb7za14dsmcd01sdldgga0br1clilxmgph2w"; };
+      alpha = authenticatedFetch { inherit      url; sha256 = "14dwlakn7z8jziy0hgm3nskr7chp7753z1dakxlymz9h5653cx8b"; };
     };
   };
 
@@ -54,14 +56,16 @@ let
     fi
   '';
 
+  modDir = factorio-utils.mkModDirDrv mods;
+
   base = {
     name = "factorio-${releaseType}-${version}";
 
     src = fetch.${arch.inTar}.${releaseType};
 
+    preferLocalBuild = true;
     dontBuild = true;
 
-    # TODO detangle headless/normal mode wrapping, libs, etc.  test all urls 32/64/headless/gfx
     installPhase = ''
       mkdir -p $out/{bin,share/factorio}
       cp -a data $out/share/factorio
@@ -71,8 +75,6 @@ let
         $out/bin/factorio
     '';
 
-    preferLocalBuild = true;
-
     meta = {
       description = "A game in which you build and maintain factories";
       longDescription = ''
@@ -112,7 +114,23 @@ let
       wrapProgram $out/bin/factorio                                \
         --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:$libPath \
         --run "$out/share/factorio/update-config.sh"               \
-        --add-flags "-c \$HOME/.factorio/config.cfg"
+        --add-flags "-c \$HOME/.factorio/config.cfg ${optionalString (mods != []) "--mod-directory=${modDir}"}"
+
+        # TODO Currently, every time a mod is changed/added/removed using the
+        # modlist, a new derivation will take up the entire footprint of the
+        # client. The only way to avoid this is to remove the mods arg from the
+        # package function. The modsDir derivation will have to be built
+        # separately and have the user specify it in the .factorio config or
+        # right along side it using a symlink into the store I think i will
+        # just remove mods for the client derivation entirely. this is much
+        # cleaner and more useful for headless mode.
+
+        # TODO: trying to toggle off a mod will result in read-only-fs-error.
+        # not much we can do about that except warn the user somewhere. In
+        # fact, no exit will be clean, since this error will happen on close
+        # regardless. just prints an ugly stacktrace but seems to be otherwise
+        # harmless, unless maybe the user forgets and tries to use the mod
+        # manager.
 
       install -m0644 <(cat << EOF
       ${configBaseCfg}
diff --git a/pkgs/games/factorio/mods.nix b/pkgs/games/factorio/mods.nix
new file mode 100644
index 000000000000..501665494ebf
--- /dev/null
+++ b/pkgs/games/factorio/mods.nix
@@ -0,0 +1,213 @@
+# This file is here for demo purposes only, populated with a small sampling of
+# mods. It will eventually be replaced by a nixos-channel that will provide
+# derivations for most or all of the mods tracked through the official mod
+# manager site.
+{ stdenv, fetchurl
+, factorio-utils
+, allRecommendedMods ? true
+, allOptionalMods ? false
+}:
+with stdenv.lib;
+let
+  modDrv = factorio-utils.modDrv { inherit allRecommendedMods allOptionalMods; };
+in
+rec {
+
+  bobassembly = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobassembly_0.13.0.zip
+      ];
+      sha256 = "0c0m7sb45r37g882x0aq8mc82yhfh9j9h8g018d4s5pf93vzr6d1";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobconfig = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobconfig_0.13.1.zip
+      ];
+      sha256 = "0z4kmggm1slbr3qiy5xahc9nhdffllp21n9nv5gh1zbzv72sb1rp";
+    };
+  };
+
+  bobelectronics = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobelectronics_0.13.1.zip
+      ];
+      sha256 = "16sn5w33s0ckiwqxx7b2pcsqmhxbxjm2w4h4vd99hwpvdpjyav52";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobenemies = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobenemies_0.13.1.zip
+      ];
+      sha256 = "1wnb5wsvh9aa3i9mj17f36ybbd13qima3iwshw60i6xkzzqfk44d";
+    };
+    optionalDeps = [ bobconfig ];
+  };
+
+  bobgreenhouse = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobgreenhouse_0.13.2.zip
+      ];
+      sha256 = "1ql26875dvz2lqln289jg1w6yjzsd0x0pqmd570jffwi5m320rrw";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobinserters = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobinserters_0.13.3.zip
+      ];
+      sha256 = "0nys9zhaw0v3w2xzrhawr8g2hcxkzdmyqd4s8xm5bnbrgrq86g9z";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ ];
+  };
+
+  boblibrary = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/boblibrary_0.13.1.zip
+      ];
+      sha256 = "04fybs626lzxf0p21jl8kakh2mddah7l9m57srk7a87jw5bj1zx8";
+    };
+  };
+
+  boblogistics = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/boblogistics_0.13.7.zip
+      ];
+      sha256 = "0c91zmyxwsmyv6vm6gp498vb7flqlcyzkbp9s5q1651hpyd378hx";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobmining = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobmining_0.13.1.zip
+      ];
+      sha256 = "1l7k3v4aizihppgi802fr5b8zbnq2h05c2bbsk5hds239qgxy80m";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig bobores bobplates ];
+  };
+
+  bobmodules = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobmodules_0.13.0.zip
+      ];
+      sha256 = "0ggd2gc4s5sbld7gyncbzdgq8gc00mvxjcfv7i2dchcrdzrlr556";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates bobassembly bobelectronics ];
+  };
+
+  bobores = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobores_0.13.1.zip
+      ];
+      sha256 = "1rri70655kj77sdr3zgp56whmcl0gfjmw90jm7lj1jp8l1pdfzb9";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+  };
+
+  bobplates = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobplates_0.13.2.zip
+      ];
+      sha256 = "0iczpa26hflj17k84p4n6wz0pwhbbrfk86dgac4bfz28kqg58nj1";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig bobenemies ];
+    recommendedDeps = [ bobores bobtech ];
+  };
+
+  bobpower = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobpower_0.13.1.zip
+      ];
+      sha256 = "18sblnlvprrm2vzlczlki09yj9lr4y64808zrwmcasf7470skar3";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobconfig ];
+    recommendedDeps = [ bobplates ];
+  };
+
+  bobrevamp = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobrevamp_0.13.0.zip
+      ];
+      sha256 = "0rkyf61clh8fjg72z9i7r4skvdzgd49ky6s0486xxljhbil4nxb7";
+    };
+    deps = [ boblibrary ];
+  };
+
+  bobtech = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobtech_0.13.0.zip
+      ];
+      sha256 = "0arc9kilxzdpapn3gh5h8269ssgsjxib4ny0qissq2sg95gxlsn0";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ bobenemies ];
+  };
+
+  bobtechsave = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobtechsave_0.13.0.zip
+      ];
+      sha256 = "1vlv4sgdfd9ldjm8y79n95ms5k6x2i7khjc422lp9080m03v1hcl";
+    };
+  };
+
+  bobwarfare = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/bobwarfare_0.13.4.zip
+      ];
+      sha256 = "07wzn16i4r0qjm41wfyl17rrhry2vrph08a0kq8w5iy6qcbqqfd3";
+    };
+    deps = [ boblibrary ];
+    optionalDeps = [ boblibrary bobplates ];
+    recommendedDeps = [ bobtech ];
+  };
+
+  clock = modDrv {
+    src = fetchurl {
+      urls = [
+        https://f.xor.us/factorio-mods/clock_0.13.0.zip
+      ];
+      sha256 = "0nflywbj6p2kz2w9wff78vskzljrzaf32ib56k3z456d9y8mlxfd";
+    };
+  };
+
+}
diff --git a/pkgs/games/factorio/utils.nix b/pkgs/games/factorio/utils.nix
new file mode 100644
index 000000000000..563ece6cb9c2
--- /dev/null
+++ b/pkgs/games/factorio/utils.nix
@@ -0,0 +1,49 @@
+# This file provides a top-level function that will be used by both nixpkgs and nixos
+# to generate mod directories for use at runtime by factorio.
+{ stdenv }:
+with stdenv.lib;
+{
+  mkModDirDrv = mods: # a list of mod derivations
+    let
+      recursiveDeps = modDrv: [modDrv] ++ optionals (modDrv.deps == []) (map recursiveDeps modDrv.deps);
+      modDrvs = unique (flatten (map recursiveDeps mods));
+    in
+    stdenv.mkDerivation {
+      name = "factorio-mod-directory";
+
+      preferLocalBuild = true;
+      buildCommand = ''
+        mkdir -p $out
+        for modDrv in ${toString modDrvs}; do
+          # NB: there will only ever be a single zip file in each mod derivation's output dir
+          ln -s $modDrv/*.zip $out
+        done
+      '';
+    };
+
+    modDrv = { allRecommendedMods, allOptionalMods }:
+      { src
+      , name ? null
+      , deps ? []
+      , optionalDeps ? []
+      , recommendedDeps ? []
+      }: stdenv.mkDerivation {
+
+        inherit src;
+
+        # Use the name of the zip, but endstrip ".zip" and possibly the querystring that gets left in by fetchurl
+        name = replaceStrings ["_"] ["-"] (if name != null then name else removeSuffix ".zip" (head (splitString "?" src.name)));
+
+        deps = deps ++ optionals allOptionalMods optionalDeps
+                    ++ optionals allRecommendedMods recommendedDeps;
+
+        preferLocalBuild = true;
+        buildCommand = ''
+          mkdir -p $out
+          srcBase=$(basename $src)
+          srcBase=''${srcBase#*-}  # strip nix hash
+          srcBase=''${srcBase%\?*} # strip querystring leftover from fetchurl
+          cp $src $out/$srcBase
+        '';
+      };
+}
diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix
index 7d0f59a4e0d0..2486d1da4704 100644
--- a/pkgs/games/hedgewars/default.nix
+++ b/pkgs/games/hedgewars/default.nix
@@ -5,7 +5,8 @@
 
 let
   ghc = ghcWithPackages (pkgs: with pkgs; [
-          network vector utf8-string bytestring-show random hslogger dataenc SHA entropy zlib_0_5_4_2
+          network vector utf8-string bytestring-show random hslogger
+          dataenc SHA entropy zlib_0_5_4_2
         ]);
 in
 stdenv.mkDerivation rec {
@@ -21,6 +22,10 @@ stdenv.mkDerivation rec {
     qt4 ghc ffmpeg freeglut makeWrapper physfs
   ];
 
+  postPatch = ''
+    substituteInPlace gameServer/CMakeLists.txt --replace mask evaluate
+  '';
+
   preBuild = ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${SDL_image}/lib
                                      -rpath ${SDL_mixer}/lib
@@ -65,7 +70,7 @@ stdenv.mkDerivation rec {
        contact with explosions, to zero (the damage dealt to the attacked
        hedgehog or hedgehogs after a player's or CPU turn is shown only when
        all movement on the battlefield has ceased).'';
-    maintainers = with maintainers; [ kragniz ];
+    maintainers = with maintainers; [ kragniz fpletz ];
     platforms = ghc.meta.platforms;
   };
 }
diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix
index 59dabf2f9cde..5fcb5063bbc8 100644
--- a/pkgs/games/terraria-server/default.nix
+++ b/pkgs/games/terraria-server/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -r Linux $out/
+    chmod +x "$out/Linux/TerrariaServer.bin.x86_64"
     ln -s "$out/Linux/TerrariaServer.bin.x86_64" $out/bin/TerrariaServer
     # Fix "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
     find "$out" | while read filepath; do
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 8c8ddb03d6fa..f591bdf13d6c 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -271,7 +271,7 @@ with stdenv.lib;
   DEBUG_SET_MODULE_RONX? y # Detect writes to read-only module pages
 
   # Security related features.
-  RANDOMIZE_BASE y
+  RANDOMIZE_BASE? y
   STRICT_DEVMEM y # Filter access to /dev/mem
   SECURITY_SELINUX_BOOTPARAM_VALUE 0 # Disable SELinux by default
   DEVKMEM n # Disable /dev/kmem
@@ -498,7 +498,7 @@ with stdenv.lib;
   # zram support (e.g for in-memory compressed swap).
   ZSMALLOC y
   ZRAM m
-  ZSWAP y
+  ZSWAP? y
 
   # Enable PCIe and USB for the brcmfmac driver
   BRCMFMAC_USB? y
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index 20abe1015c3f..e5fa780c6e7b 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -134,7 +134,7 @@ close CONFIG;
 
 foreach my $name (sort (keys %answers)) {
     my $f = $requiredAnswers{$name} && $ENV{'ignoreConfigErrors'} ne "1"
-        ? sub { die @_; } : sub { warn @_; };
+        ? sub { die "error: " . $_[0]; } : sub { warn "warning: " . $_[0]; };
     &$f("unused option: $name\n") unless defined $config{$name};
     &$f("option not set correctly: $name\n")
         if $config{$name} && $config{$name} ne $answers{$name};
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index 236f27765f86..02ec36d64ba7 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    platforms = stdenv.lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/servers/nosql/hyperdex/libe.nix b/pkgs/servers/nosql/hyperdex/libe.nix
index dfce4c34a114..733f33288ce1 100644
--- a/pkgs/servers/nosql/hyperdex/libe.nix
+++ b/pkgs/servers/nosql/hyperdex/libe.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     description = "Library containing high-performance datastructures and utilities for C++";
     homepage = https://github.com/rescrv/e;
     license = licenses.bsd3;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/tools/filesystems/lizardfs/412.patch b/pkgs/tools/filesystems/lizardfs/412.patch
new file mode 100644
index 000000000000..a2890cad3994
--- /dev/null
+++ b/pkgs/tools/filesystems/lizardfs/412.patch
@@ -0,0 +1,43 @@
+From 26a27dedb7bee36f3ac5f48e22b977ea001d5903 Mon Sep 17 00:00:00 2001
+From: Maksymilian Paszkiewicz <mpaszkiewicz@skytechnology.pl>
+Date: Mon, 23 May 2016 12:25:19 +0200
+Subject: [PATCH] common: Fix minor compile and copyright issues
+
+This commit adds include <cmath> directive to
+slice_read_planner.cc and fixes copyright
+statement in filesystem_operations.cc
+
+Closes #411
+Closes #412
+
+Change-Id: I3ac995708a09f64e1389871be2e961d594e4bc68
+---
+ src/common/slice_read_planner.cc    | 2 ++
+ src/master/filesystem_operations.cc | 3 ++-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/common/slice_read_planner.cc b/src/common/slice_read_planner.cc
+index 94c106c..d0284f1 100644
+--- a/src/common/slice_read_planner.cc
++++ b/src/common/slice_read_planner.cc
+@@ -20,6 +20,8 @@
+ 
+ #include "common/slice_read_planner.h"
+ 
++#include <cmath>
++
+ /*!
+  * Prepares read planner for serving selected parts of a slice type.
+  * Firstly, function checks if:
+diff --git a/src/master/filesystem_operations.cc b/src/master/filesystem_operations.cc
+index 69ff270..dc30b1f 100644
+--- a/src/master/filesystem_operations.cc
++++ b/src/master/filesystem_operations.cc
+@@ -1,5 +1,6 @@
+ /*
+-   Copyright 2013-2015 Skytechnology sp. z o.o..
++   Copyright 2005-2010 Jakub Kruszona-Zawadzki, Gemius SA, 2013-2014 EditShare,
++   2013-2016 Skytechnology sp. z o.o..
+ 
+    This file is part of LizardFS.
+ 
diff --git a/pkgs/tools/filesystems/lizardfs/check-includes.patch b/pkgs/tools/filesystems/lizardfs/check-includes.patch
deleted file mode 100644
index 49aa0375762a..000000000000
--- a/pkgs/tools/filesystems/lizardfs/check-includes.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 60f64d7077ebd2b29b18faa3b25ee593e126e347 Mon Sep 17 00:00:00 2001
-From: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Sun, 20 Dec 2015 14:03:20 +1100
-Subject: [PATCH] build: Fix FTBFS with CMake-3.4
-
-Closes: #363
-
-~~~~
- CMake Error at CheckIncludes.cmake:4 (check_include_files):
-   Unknown CMake command "check_include_files".
- Call Stack (most recent call first):
-   CMakeLists.txt:113 (check_includes)
-~~~~
-
-Change-Id: I70f03d829c40ae560083a98c2bcf6344dbac3ad6
-Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
----
- CheckIncludes.cmake | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/CheckIncludes.cmake b/CheckIncludes.cmake
-index 19ed485..f51075a 100644
---- a/CheckIncludes.cmake
-+++ b/CheckIncludes.cmake
-@@ -1,3 +1,5 @@
-+include(CheckIncludeFiles)
-+
- function(check_includes INCLUDES)
-   set(INCLUDE_MISSING FALSE)
-   foreach(INCLUDE_FILE ${INCLUDES})
diff --git a/pkgs/tools/filesystems/lizardfs/default.nix b/pkgs/tools/filesystems/lizardfs/default.nix
index 7b6f2e17dcf5..ac20b735abc1 100644
--- a/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/pkgs/tools/filesystems/lizardfs/default.nix
@@ -4,8 +4,9 @@
 , makeWrapper
 , python
 , fuse
-# The following are required for manpages
-#, asciidoc, libxml2
+, asciidoc
+, libxml2
+, libxslt
 , boost
 , pkgconfig
 , judy
@@ -15,27 +16,25 @@
 
 stdenv.mkDerivation rec {
   name = "lizardfs-${version}";
-  version = "3.9.4";
+  version = "3.10.0";
 
   src = fetchFromGitHub {
     owner = "lizardfs";
     repo = "lizardfs";
     rev = "v.${version}";
-    sha256 = "1vg33jy280apm4lp5dn3x51pkf7035ijqjm8wbmyha2g35gfjrlx";
+    sha256 = "18p2pj9crjqgxxxzdfcs3j3fqhinmwi7qxcf71jsw17syqwyygh8";
   };
 
-  # Manpages don't build in the current release
-  buildInputs = [ cmake fuse /* asciidoc libxml2.bin */ zlib boost pkgconfig judy pam makeWrapper ];
+  buildInputs = [ cmake fuse asciidoc libxml2 libxslt zlib boost pkgconfig judy pam makeWrapper ];
 
-  # Fixed in upcoming 3.10.0
-  patches = [ ./check-includes.patch ];
+  patches = [ ./412.patch ];
 
   postInstall = ''
     wrapProgram $out/sbin/lizardfs-cgiserver \
         --prefix PATH ":" "${python}/bin"
 
     # mfssnapshot and mfscgiserv are deprecated
-    rm -f $out/bin/mfssnapshot $out/sbin/mfscgiserv
+    rm $out/bin/mfssnapshot $out/sbin/mfscgiserv
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/security/kbfs/default.nix b/pkgs/tools/security/kbfs/default.nix
new file mode 100644
index 000000000000..fb7b8cc9fe74
--- /dev/null
+++ b/pkgs/tools/security/kbfs/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "kbfs-2016-08-02-git";
+  version = "1.0.16";
+
+  goPackagePath = "github.com/keybase/kbfs";
+  subPackages = [ "kbfsfuse" ];
+
+  dontRenameImports = true;
+
+  src = fetchFromGitHub {
+    owner = "keybase";
+    repo = "kbfs";
+    rev = "a8f0714536d15668e0f561ec4d3324762c8cf030";
+    sha256 = "0m4k55akd8cv5k8mfpm3rb3fz13z31l49pml7mgviv0hi3mnisqd";
+  };
+
+  buildFlags = [ "-tags production" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://www.keybase.io;
+    description = "The Keybase FS FUSE driver";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bennofs ];
+  };
+}
diff --git a/pkgs/tools/text/zimreader/default.nix b/pkgs/tools/text/zimreader/default.nix
index d9dcc3c0fbbb..2e51e7d7f9ea 100644
--- a/pkgs/tools/text/zimreader/default.nix
+++ b/pkgs/tools/text/zimreader/default.nix
@@ -39,6 +39,6 @@ in stdenv.mkDerivation rec {
     description = "A tool to serve ZIM files using HTTP";
     homepage = http://git.wikimedia.org/log/openzim;
     maintainers = with stdenv.lib.maintainers; [ robbinch ];
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fe4c30fc15fb..b64a339dc088 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15612,6 +15612,10 @@ in
 
   factorio-headless = callPackage ../games/factorio { releaseType = "headless"; };
 
+  factorio-mods = callPackage ../games/factorio/mods.nix { };
+
+  factorio-utils = callPackage ../games/factorio/utils.nix { };
+
   fairymax = callPackage ../games/fairymax {};
 
   fish-fillets-ng = callPackage ../games/fish-fillets-ng {};
@@ -15669,6 +15673,7 @@ in
 
   hedgewars = callPackage ../games/hedgewars {
     inherit (haskellPackages) ghcWithPackages;
+    ffmpeg = ffmpeg_2;
   };
 
   hexen = callPackage ../games/hexen { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2e70212bc132..9fe5a47a9e61 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -8891,18 +8891,42 @@ in modules // {
     };
   };
 
-  django = self.django_1_9;
+  django = self.django_1_10;
 
   django_gis = self.django.override rec {
     patches = [
       (pkgs.substituteAll {
-        src = ../development/python-modules/django/1.7.7-gis-libs.template.patch;
+        src = ../development/python-modules/django/1.10-gis-libs.template.patch;
         geos = pkgs.geos;
         gdal = pkgs.gdal;
       })
     ];
   };
 
+  django_1_10 = buildPythonPackage rec {
+    name = "Django-${version}";
+    version = "1.10";
+    disabled = pythonOlder "2.7";
+
+    src = pkgs.fetchurl {
+      url = "http://www.djangoproject.com/m/releases/1.10/${name}.tar.gz";
+      sha256 = "01bh5yra6zyxcpqacahbwfbn0y4ivw07j2jsw3crvmjzivb6if26";
+    };
+
+    # patch only $out/bin to avoid problems with starter templates (see #3134)
+    postFixup = ''
+      wrapPythonProgramsIn $out/bin "$out $pythonPath"
+    '';
+
+    # too complicated to setup
+    doCheck = false;
+
+    meta = {
+      description = "A high-level Python Web framework";
+      homepage = https://www.djangoproject.com/;
+    };
+  };
+
   django_1_9 = buildPythonPackage rec {
     name = "Django-${version}";
     version = "1.9.5";
@@ -9090,21 +9114,21 @@ in modules // {
 
   django_compat = buildPythonPackage rec {
     name = "django-compat-${version}";
-    version = "1.0.8";
+    version = "1.0.13";
 
     # build process attempts to access a missing README.rst
     disabled = isPy35;
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/d/django-compat/${name}.tar.gz";
-      sha256 = "195dgr55vzpw1fbjvbw2h35k9bfhvm5zchh2p7nzbq57xmwb3sra";
+      sha256 = "0s0z7cx0vv1kjsyzk24sg256hfnd09ssilc9rakhxrzr3firgx80";
     };
 
     buildInputs = with self; [ django_nose ];
     propagatedBuildInputs = with self; [ django six ];
 
     meta = {
-      description = "Forward and backwards compatibility layer for Django 1.4, 1.7, 1.8, and 1.9";
+      description = "Forward and backwards compatibility layer for Django 1.4, 1.7, 1.8, 1.9 and 1.10";
       homepage = https://github.com/arteria/django-compat;
       license = licenses.mit;
     };
@@ -9178,7 +9202,14 @@ in modules // {
       sha256 = "0rpi1bkfx74xfbb2nk874kfdra1jcqp2vzky1r3z7zidlc9kah04";
     };
 
-    propagatedBuildInputs = with self; [ django django_compat ];
+    # TODO improve the that multi-override necessity (the fixpoint based python
+    # packages work can be the solution)
+    propagatedBuildInputs = with self; [ django_1_9 (django_compat.override {
+      buildInputs = with self; [ (django_nose.override {
+        propagatedBuildInputs = with self; [ django_1_9 nose ];
+      }) ];
+      propagatedBuildInputs = with self; [ django_1_9 six ];
+    }) ];
 
     meta = {
       description = "Allows superusers to hijack (=login as) and work on behalf of another user";
@@ -14321,12 +14352,12 @@ in modules // {
   };
 
   notebook = buildPythonPackage rec {
-    version = "4.2.1";
+    version = "4.2.2";
     name = "notebook-${version}";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/n/notebook/${name}.tar.gz";
-      sha256 = "15z1j821iywjcjf6d8r338jm09l9qwk8z9gjplag56dvv8jfb7d4";
+      sha256 = "418ba230c9b2e7e739940cae9fb4625e10a63f038e9c95cf1a9b7a244256ba38";
     };
 
     LC_ALL = "en_US.UTF-8";