summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/emacs/buffer.nix3
-rw-r--r--pkgs/build-support/setup-hooks/gog-unpack.sh11
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix3
-rw-r--r--pkgs/games/dxx-rebirth/assets.nix55
-rw-r--r--pkgs/games/dxx-rebirth/full.nix30
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix4
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix4
-rw-r--r--pkgs/tools/filesystems/file-rename/default.nix24
-rw-r--r--pkgs/top-level/all-packages.nix17
10 files changed, 145 insertions, 10 deletions
diff --git a/pkgs/build-support/emacs/buffer.nix b/pkgs/build-support/emacs/buffer.nix
index 75e660d02143..550163ddd696 100644
--- a/pkgs/build-support/emacs/buffer.nix
+++ b/pkgs/build-support/emacs/buffer.nix
@@ -4,7 +4,8 @@
 { lib, writeText, inherit-local }:
 
 rec {
-  withPackages = pkgs: let
+  withPackages = pkgs': let
+      pkgs = builtins.filter (x: x != null) pkgs';
       extras = map (x: x.emacsBufferSetup pkgs) (builtins.filter (builtins.hasAttr "emacsBufferSetup") pkgs);
     in writeText "dir-locals.el" ''
       (require 'inherit-local "${inherit-local}/share/emacs/site-lisp/elpa/inherit-local-${inherit-local.version}/inherit-local.elc")
diff --git a/pkgs/build-support/setup-hooks/gog-unpack.sh b/pkgs/build-support/setup-hooks/gog-unpack.sh
new file mode 100644
index 000000000000..559b543fadfc
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/gog-unpack.sh
@@ -0,0 +1,11 @@
+unpackPhase="unpackGog"
+
+unpackGog() {
+    runHook preUnpackGog
+
+    innoextract --silent --extract --exclude-temp "${src}"
+
+    find . -depth -print -execdir rename -f 'y/A-Z/a-z/' '{}' \;
+
+    runHook postUnpackGog
+}
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index f5efd9c63763..99cc4c3eab8a 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -6,7 +6,6 @@
 , glibcLocales
 , pytest
 , pytestcov
-, pytest-mock
 , mock
 , pygments
 , pillow
@@ -37,7 +36,7 @@ buildPythonPackage rec {
   # other hand doesn't support Python 3.3). So, just disable Python 2.
   disabled = !isPy3k;
 
-  checkInputs = [ pytest pytestcov pytest-mock mock glibcLocales ];
+  checkInputs = [ pytest pytestcov mock glibcLocales ];
 
   propagatedBuildInputs = [
     pygments pillow dateutil docutils Mako unidecode lxml Yapsy PyRSS2Gen
diff --git a/pkgs/games/dxx-rebirth/assets.nix b/pkgs/games/dxx-rebirth/assets.nix
new file mode 100644
index 000000000000..1fd64f5b00d0
--- /dev/null
+++ b/pkgs/games/dxx-rebirth/assets.nix
@@ -0,0 +1,55 @@
+{ stdenv, requireFile, gogUnpackHook }:
+
+let
+  generic = ver: source: let
+    pname = "descent${toString ver}";
+  in stdenv.mkDerivation rec {
+    name = "${pname}-assets-${version}";
+    version = "2.0.0.7";
+
+    src = requireFile rec {
+      name = "setup_descent12_${version}.exe";
+      sha256 = "1r1drbfda6czg21f9qqiiwgnkpszxgmcn5bafp5ljddh34swkn3f";
+      message = ''
+        While the Descent ${toString ver} game engine is free, the game assets are not.
+
+        Please purchase the game on gog.com and download the Windows installer.
+
+        Once you have downloaded the file, please use the following command and re-run the
+        installation:
+
+        nix-prefetch-url file://\$PWD/${name}
+      '';
+    };
+
+    nativeBuildInputs = [ gogUnpackHook ];
+
+    dontBuild = true;
+    dontFixup = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share/{games/${pname},doc/${pname}/examples}
+      pushd "app/${source}"
+      mv dosbox*.conf $out/share/doc/${pname}/examples
+      mv *.txt *.pdf  $out/share/doc/${pname}
+      cp -r * $out/share/games/descent${toString ver}
+      popd
+
+      runHook postInstall
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Descent ${toString ver} assets from GOG";
+      homepage    = http://www.dxx-rebirth.com/;
+      license     = licenses.unfree;
+      maintainers = with maintainers; [ peterhoeg ];
+      hydraPlatforms = [];
+    };
+  };
+
+in {
+  descent1-assets = generic 1 "descent";
+  descent2-assets = generic 2 "descent 2";
+}
diff --git a/pkgs/games/dxx-rebirth/full.nix b/pkgs/games/dxx-rebirth/full.nix
new file mode 100644
index 000000000000..baf8b80add10
--- /dev/null
+++ b/pkgs/games/dxx-rebirth/full.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper
+, dxx-rebirth, descent1-assets, descent2-assets }:
+
+let
+  generic = ver: assets: stdenv.mkDerivation rec {
+    name = "d${toString ver}x-rebirth-full-${assets.version}";
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildCommand = ''
+      mkdir -p $out/bin
+
+      makeWrapper ${dxx-rebirth}/bin/d${toString ver}x-rebirth $out/bin/descent${toString ver} \
+        --add-flags "-hogdir ${assets}/share/games/descent${toString ver}"
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Descent ${toString ver} using the DXX-Rebirth project engine and game assets from GOG";
+      homepage    = http://www.dxx-rebirth.com/;
+      license     = with licenses; [ free unfree ];
+      maintainers = with maintainers; [ peterhoeg ];
+      platforms   = with platforms; linux;
+      hydraPlatforms = [];
+    };
+  };
+
+in {
+  d1x-rebirth-full = generic 1 descent1-assets;
+  d2x-rebirth-full = generic 2 descent2-assets;
+}
diff --git a/pkgs/os-specific/linux/kernel/linux-4.15.nix b/pkgs/os-specific/linux/kernel/linux-4.15.nix
index 58f59ff08341..83fbfa81bf35 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.15.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.15.2";
+  version = "4.15.3";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "16h346abbdi6k3handw8nblscyf966gx1q9xig4gbij73b10nspb";
+    sha256 = "055p02in09rj95z9hc1kjh4r12ydwdcl3ds2cp4dckhlnyhnxf4g";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix b/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
index 27ba96933503..304c085f4aa7 100644
--- a/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
+++ b/pkgs/os-specific/linux/kernel/linux-copperhead-hardened.nix
@@ -3,9 +3,9 @@
 with stdenv.lib;
 
 let
-  version = "4.15.2";
+  version = "4.15.3";
   revision = "a";
-  sha256 = "1rmia5k07pfx47qkc8nx3xiap6mxbwlry3jxrx4kwf3hh5cnqnsv";
+  sha256 = "1fxdllg60hwlbmjijcj7w6c3xz0rf9268f12qy45diahmydyccgc";
 
   # modVersion needs to be x.y.z, will automatically add .0 if needed
   modVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 478fcb9aad7b..a47d3106443f 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -7,11 +7,11 @@ let inherit (stdenv.lib) optional optionals; in
 # Note: ATM only the libraries have been tested in nixpkgs.
 stdenv.mkDerivation rec {
   name = "knot-dns-${version}";
-  version = "2.6.4";
+  version = "2.6.5";
 
   src = fetchurl {
     url = "http://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "1d0d37b5047ecd554d927519d5565c29c1ba9b501c100eb5f3a5af184d75386a";
+    sha256 = "33cd676706e2baeb37cf3879ccbc91a1e1cd1ee5d7a082adff4d1e753ce49d46";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/pkgs/tools/filesystems/file-rename/default.nix b/pkgs/tools/filesystems/file-rename/default.nix
new file mode 100644
index 000000000000..1818a517fd25
--- /dev/null
+++ b/pkgs/tools/filesystems/file-rename/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, perlPackages, makeWrapper }:
+
+perlPackages.buildPerlPackage rec {
+  name = "File-Rename-0.20";
+
+  src = fetchurl {
+    url = "mirror://cpan/authors/id/R/RM/RMBARKER/${name}.tar.gz";
+    sha256 = "1cf6xx2hiy1xalp35fh8g73j67r0w0g66jpcbc6971x9jbm7bvjy";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/rename \
+      --prefix PERL5LIB : $out/lib/perl5/site_perl
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Perl extension for renaming multiple files";
+    homepage = http://search.cpan.org/~rmbarker;
+    license = licenses.artistic1;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 391c3017a7c9..e7995ece76a5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -96,6 +96,11 @@ with pkgs;
     { substitutions = { gnu_config = gnu-config;}; }
     ../build-support/setup-hooks/update-autotools-gnu-config-scripts.sh;
 
+  gogUnpackHook = makeSetupHook {
+    name = "gog-unpack-hook";
+    deps = [ innoextract file-rename ]; }
+    ../build-support/setup-hooks/gog-unpack.sh;
+
   buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
 
   buildFHSUserEnv = callPackage ../build-support/build-fhs-userenv { };
@@ -3236,6 +3241,8 @@ with pkgs;
 
   npm2nix = nodePackages.npm2nix;
 
+  file-rename = callPackage ../tools/filesystems/file-rename { };
+
   kea = callPackage ../tools/networking/kea {
     boost = boost165;
   };
@@ -18384,10 +18391,18 @@ with pkgs;
     physfs = physfs_2;
   };
 
+  # these are here for compatibility
   d1x_rebirth = dxx-rebirth;
-
   d2x_rebirth = dxx-rebirth;
 
+  inherit (callPackages ../games/dxx-rebirth/assets.nix { })
+    descent1-assets
+    descent2-assets;
+
+  inherit (callPackages ../games/dxx-rebirth/full.nix { })
+    d1x-rebirth-full
+    d2x-rebirth-full;
+
   easyrpg-player = callPackage ../games/easyrpg-player { };
 
   eboard = callPackage ../games/eboard { };