From 646abe9b29ee7900c7942a25125861c4291db4eb Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Sun, 4 Feb 2018 21:32:09 +0800 Subject: [PATCH 1/3] perl.FileRename: init at 0.20 --- .../tools/filesystems/file-rename/default.nix | 24 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 pkgs/tools/filesystems/file-rename/default.nix diff --git a/pkgs/tools/filesystems/file-rename/default.nix b/pkgs/tools/filesystems/file-rename/default.nix new file mode 100644 index 000000000000..b5e9b8c5e44d --- /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; + maintainer = with maintainers; [ peterhoeg ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d89ab305966f..934c7388bccb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3212,6 +3212,8 @@ with pkgs; npm2nix = nodePackages.npm2nix; + file-rename = callPackage ../tools/filesystems/file-rename { }; + kea = callPackage ../tools/networking/kea { boost = boost165; }; @@ -15009,7 +15011,7 @@ with pkgs; inherit (gnome3) evince; evolution_data_server = gnome3.evolution_data_server; - keepass = callPackage ../applications/misc/keepass { + keepass = callPackage ../applications/misc/keepass { buildDotnetPackage = buildDotnetPackage.override { mono = mono54; }; }; From 126cc690ac291e2290f3e151866b2bc37c178c8d Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Sun, 4 Feb 2018 21:31:39 +0800 Subject: [PATCH 2/3] build-support gogUnpackHook: support for unpacking games from gog.com --- pkgs/build-support/setup-hooks/gog-unpack.sh | 11 +++++++++++ pkgs/top-level/all-packages.nix | 5 +++++ 2 files changed, 16 insertions(+) create mode 100644 pkgs/build-support/setup-hooks/gog-unpack.sh 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 934c7388bccb..74969c98b4df 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -92,6 +92,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 { }; From e88284be2a698d9272ce90d2f5ce5b8d4d24465c Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Sun, 4 Feb 2018 21:33:16 +0800 Subject: [PATCH 3/3] descent 1&2 assets: init at 2.0.0.7 --- pkgs/games/dxx-rebirth/assets.nix | 55 +++++++++++++++++++++++++++++++ pkgs/games/dxx-rebirth/full.nix | 30 +++++++++++++++++ pkgs/top-level/all-packages.nix | 10 +++++- 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 pkgs/games/dxx-rebirth/assets.nix create mode 100644 pkgs/games/dxx-rebirth/full.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 74969c98b4df..aba879d0b25a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18285,10 +18285,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 { };