diff options
Diffstat (limited to 'humblebundle/unepic.nix')
-rw-r--r-- | humblebundle/unepic.nix | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/humblebundle/unepic.nix b/humblebundle/unepic.nix new file mode 100644 index 00000000..cc4099f5 --- /dev/null +++ b/humblebundle/unepic.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchHumbleBundle, unzip, makeWrapper, SDL2, SDL2_mixer, zlib }: + +let + version = "1.50.5"; + versionName = "15005"; + arch = { + "i686-linux" = "32"; + "x86_64-linux" = "64"; + }.${stdenv.system}; +in stdenv.mkDerivation rec { + name = "unepic-${version}"; + + src = fetchHumbleBundle { + name = "unepic-15005.run"; + machineName = "unepic_linux"; + downloadName = ".run"; + md5 = "940824c4de6e48522845f63423e87783"; + }; + + phases = [ "installPhase" ]; + + buildInputs = [ unzip makeWrapper ]; + + installPhase = let + rpath = stdenv.lib.makeLibraryPath [ SDL2 SDL2_mixer zlib stdenv.cc.cc ]; + in '' + dest="$out/opt/games/unepic" + exe="$dest/unepic${arch}" + + mkdir -p "$out/opt/games" + unzip "$src" "data/*" -d "$out/opt/games" || [ "$?" -eq 1 ] + mv "$out/opt/games/data" "$dest" + rm -r "$dest"/lib* + + # Patch $exe acccording to arch. + patchelf \ + --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath "${rpath}" "$exe" + + mkdir -p "$out/bin" + + makeWrapper "$exe" "$out/bin/unepic" --run "cd '$dest'" + ''; +} |