diff options
author | aszlig <aszlig@nix.build> | 2018-07-31 01:54:47 +0200 |
---|---|---|
committer | aszlig <aszlig@nix.build> | 2018-07-31 01:54:47 +0200 |
commit | a8e406920bb11a2c53558d1398b3a66efd267e60 (patch) | |
tree | c792cbf21acf270efb39a6a914d922de022de914 /pkgs | |
parent | e5afeaad30a27e44a18c9acf78d35bc59ff98046 (diff) |
games/gog: Switch everything to gogUnpackHook
For Albion, Settlers 2 and World of Xeen we need to explicitly add gogUnpackHook, because for those the derivation containing the game data is not created via our buildGame wrapper. Everything else is just done by removing unpackCmd and unzip from the package arguments. One exception is Thimbleweed Park, which relied on custom path for unzip in order to get the desktop icon, but with our now hook, we get that icon now in xdg-icon.png with a flat directory structure. I've tested this by building all the games from GOG that we have packaged here. However, I didn't test whether every single one actually runs. Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/games/gog/albion/default.nix | 18 | ||||
-rw-r--r-- | pkgs/games/gog/dungeons3.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/overload.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/party-hard.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/satellite-reign.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/settlers2.nix | 12 | ||||
-rw-r--r-- | pkgs/games/gog/stardew-valley.nix | 5 | ||||
-rw-r--r-- | pkgs/games/gog/thimbleweed-park.nix | 13 | ||||
-rw-r--r-- | pkgs/games/gog/war-for-the-overworld.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/wizard-of-legend.nix | 4 | ||||
-rw-r--r-- | pkgs/games/gog/xeen.nix | 10 |
11 files changed, 26 insertions, 56 deletions
diff --git a/pkgs/games/gog/albion/default.nix b/pkgs/games/gog/albion/default.nix index 1c03f080..a7493712 100644 --- a/pkgs/games/gog/albion/default.nix +++ b/pkgs/games/gog/albion/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, buildSandbox, fetchGog, fetchzip, innoextract, SDL2, SDL2_mixer -, bchunk, p7zip, alsaLib, writeText, makeWrapper, libGL +{ stdenv, lib, buildSandbox, fetchGog, gogUnpackHook, fetchzip +, SDL2, SDL2_mixer, bchunk, p7zip, alsaLib, writeText, makeWrapper, libGL # For static recompilation , fetchFromGitHub, scons, judy, python, nasm, autoreconfHook @@ -97,16 +97,12 @@ let outputs = [ "out" "dev" ]; - nativeBuildInputs = [ innoextract ]; + nativeBuildInputs = [ gogUnpackHook ]; + innoExtractOnly = [ "game.gog" "game.ins" "MAIN.EXE" "SETUP.INI" ]; + innoExtractKeepCase = true; + phases = [ "unpackPhase" "patchPhase" "installPhase" ]; - unpackCmd = toString [ - "innoextract" - "--include" "game.gog" - "--include" "game.ins" - "--include" "MAIN.EXE" - "--include" "SETUP.INI" - "-m" "\"$curSrc\"" - ]; + patchPhase = '' sed -i -e ' s,^SOURCE_PATH=.*,SOURCE_PATH=C:\\, diff --git a/pkgs/games/gog/dungeons3.nix b/pkgs/games/gog/dungeons3.nix index 7d4c5a3d..53892f71 100644 --- a/pkgs/games/gog/dungeons3.nix +++ b/pkgs/games/gog/dungeons3.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip, mono }: +{ buildUnity, fetchGog, mono }: buildUnity { name = "dungeons3"; @@ -13,6 +13,4 @@ buildUnity { }; buildInputs = [ mono ]; - - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; } diff --git a/pkgs/games/gog/overload.nix b/pkgs/games/gog/overload.nix index 94c20bcb..00410356 100644 --- a/pkgs/games/gog/overload.nix +++ b/pkgs/games/gog/overload.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip }: +{ buildUnity, fetchGog }: buildUnity { name = "overload"; @@ -11,6 +11,4 @@ buildUnity { downloadName = "en3installer0"; sha256 = "1r42ll6k2xif405rp85gn3sbhacrhf1kkpqx2ahp8j5f9alscdxm"; }; - - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; } diff --git a/pkgs/games/gog/party-hard.nix b/pkgs/games/gog/party-hard.nix index 3e0393f2..6b15580f 100644 --- a/pkgs/games/gog/party-hard.nix +++ b/pkgs/games/gog/party-hard.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip }: +{ buildUnity, fetchGog }: buildUnity { name = "party-hard"; @@ -11,6 +11,4 @@ buildUnity { downloadName = "en3installer2"; sha256 = "00sb76w0v4b2izfwx1kr53frrgg8rg5d0qgpj8z3xq8frnv1fmi4"; }; - - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; } diff --git a/pkgs/games/gog/satellite-reign.nix b/pkgs/games/gog/satellite-reign.nix index ec8c6db3..63f0c8b5 100644 --- a/pkgs/games/gog/satellite-reign.nix +++ b/pkgs/games/gog/satellite-reign.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip }: +{ buildUnity, fetchGog }: buildUnity { name = "satellite-reign"; @@ -12,7 +12,5 @@ buildUnity { sha256 = "0wpkpqrcli2772g6l9yab38vbjh1by4cbpa397fqvhny247qdz5k"; }; - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; - sandbox.paths.required = [ "$XDG_DATA_HOME/SatelliteReign" ]; } diff --git a/pkgs/games/gog/settlers2.nix b/pkgs/games/gog/settlers2.nix index 1d4497b9..4f0ac193 100644 --- a/pkgs/games/gog/settlers2.nix +++ b/pkgs/games/gog/settlers2.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildSandbox, fetchGog, innoextract, bchunk, p7zip +{ stdenv, lib, buildSandbox, fetchGog, gogUnpackHook, bchunk, p7zip , fetchFromGitHub, cmake, gettext, boost, miniupnpc, bzip2 , SDL, SDL_mixer, libpulseaudio, alsaLib, libGL, lua5_2 @@ -15,14 +15,10 @@ let sha256 = "19c88h972ydfpdbay61lz6pi4gnlm2lq5dcya5im9mmlin2nvyr7"; }; - unpackCmd = toString [ - "innoextract" - "--include" "/app/DATA" - "--include" "/app/GFX" - "-m" "\"$curSrc\"" - ]; + nativeBuildInputs = [ gogUnpackHook ]; + innoExtractOnly = [ "/app/DATA" "/app/GFX" ]; + innoExtractKeepCase = true; - nativeBuildInputs = [ innoextract ]; phases = [ "unpackPhase" "patchPhase" "installPhase" ]; installPhase = '' diff --git a/pkgs/games/gog/stardew-valley.nix b/pkgs/games/gog/stardew-valley.nix index 6408c342..1756da3e 100644 --- a/pkgs/games/gog/stardew-valley.nix +++ b/pkgs/games/gog/stardew-valley.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, buildGame, fetchGog, unzip, makeWrapper +{ lib, stdenv, buildGame, fetchGog, makeWrapper , mono50, SDL2, libGL, openal , beta ? false @@ -20,9 +20,6 @@ buildGame rec { sha256 = "199xf008cxm6ywb4d8c3dz0h7iiv9d0ka5k93gq0jqj3ga3fjn3i"; }); - unpackCmd = lib.optionalString (!beta) - "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; - nativeBuildInputs = [ makeWrapper ]; buildPhase = let diff --git a/pkgs/games/gog/thimbleweed-park.nix b/pkgs/games/gog/thimbleweed-park.nix index b9e14c32..ec48233d 100644 --- a/pkgs/games/gog/thimbleweed-park.nix +++ b/pkgs/games/gog/thimbleweed-park.nix @@ -1,4 +1,4 @@ -{ lib, buildGame, fetchGog, unzip, libGL, libudev +{ lib, buildGame, fetchGog, libGL, libudev , ransomeUnbeeped ? true }: @@ -17,8 +17,6 @@ buildGame rec { sha256 = "1cfll73qazm9nz40n963qvankqkznfjai9g88kgw6xcl40y8jrqn"; }); - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/*' || :"; - buildInputs = [ libGL ]; runtimeDependencies = [ libudev ]; @@ -38,18 +36,17 @@ buildGame rec { } EOF patchelf --add-needed "$out/libexec/thimbleweed-park/preload.so" \ - game/ThimbleweedPark + ThimbleweedPark ''; installPhase = '' - install -vD game/ThimbleweedPark "$out/bin/thimbleweed-park" + install -vD ThimbleweedPark "$out/bin/thimbleweed-park" install -vD preload.so "$out/libexec/thimbleweed-park/preload.so" - for i in game/*.ggpack[0-9]*; do + for i in *.ggpack[0-9]*; do install -vD -m 0644 "$i" "$out/share/thimbleweed-park/$(basename "$i")" done - install -vD -m 0644 support/icon.png \ - "$out/share/icons/thimbleweed-park.png" + install -vD -m 0644 xdg-icon.png "$out/share/icons/thimbleweed-park.png" mkdir -p "$out/share/applications" cat > "$out/share/applications/thimbleweed-park.desktop" <<EOF diff --git a/pkgs/games/gog/war-for-the-overworld.nix b/pkgs/games/gog/war-for-the-overworld.nix index 8309fa12..8e46ec32 100644 --- a/pkgs/games/gog/war-for-the-overworld.nix +++ b/pkgs/games/gog/war-for-the-overworld.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip, mono, monogamePatcher }: +{ buildUnity, fetchGog, mono, monogamePatcher }: buildUnity { name = "war-for-the-overworld"; @@ -12,8 +12,6 @@ buildUnity { sha256 = "07yj9clf3hmy7z67ck9sqf3gnrazx5rzifg91jas77z774vwdg8k"; }; - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; - nativeBuildInputs = [ mono monogamePatcher ]; # The game tries to write stuff to its dataPath and it's even more diff --git a/pkgs/games/gog/wizard-of-legend.nix b/pkgs/games/gog/wizard-of-legend.nix index d8ee46cb..ab754f13 100644 --- a/pkgs/games/gog/wizard-of-legend.nix +++ b/pkgs/games/gog/wizard-of-legend.nix @@ -1,4 +1,4 @@ -{ buildUnity, fetchGog, unzip }: +{ buildUnity, fetchGog }: buildUnity { name = "wizard-of-legend"; @@ -11,6 +11,4 @@ buildUnity { downloadName = "en3installer0"; sha256 = "192fhway7ij5f4fh0vb1204f3yg3fxz08fvqlg03gskjs9krcbcz"; }; - - unpackCmd = "${unzip}/bin/unzip -qq \"$curSrc\" 'data/noarch/game/*' || :"; } diff --git a/pkgs/games/gog/xeen.nix b/pkgs/games/gog/xeen.nix index d4b07c73..e5e65fc8 100644 --- a/pkgs/games/gog/xeen.nix +++ b/pkgs/games/gog/xeen.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, buildSandbox, fetchGog, innoextract, bchunk, p7zip +{ lib, stdenv, buildSandbox, fetchGog, gogUnpackHook, bchunk, p7zip , scummvm, fetchFromGitHub , runCommand, xvfb_run @@ -20,12 +20,8 @@ let sha256 = "0jv9k5rcapqlk61pawa5l4m34iwllx8j6cfz69gl092h04fvfqki"; }; - unpackCmd = toString [ - "${innoextract}/bin/innoextract" - "--include" "app/game1.gog" - "--include" "app/music" - "-L" "-m" "\"$curSrc\"" - ]; + nativeBuildInputs = [ gogUnpackHook ]; + innoExtractOnly = [ "app/game1.gog" "app/music" ]; patchPhase = '' cat > game1.inst <<EOF |