diff --git a/pkgs/games/everspace/default.nix b/pkgs/games/everspace/default.nix new file mode 100644 index 000000000000..dce777a68cb1 --- /dev/null +++ b/pkgs/games/everspace/default.nix @@ -0,0 +1,102 @@ +{ + # Packaging Dependencies + lib, stdenv, requireFile, autoPatchelfHook, unzip, + + # Everspace Dependencies + cairo, gdk-pixbuf, gnome2, gtk2-x11, libGL, openal, + + # Unreal Engine 4 Dependencies + xorg +}: + +# Known issues: +# - Video playback (upon starting a new game) does not work (screen is black) +stdenv.mkDerivation { + pname = "everspace"; + version = "1.3.5.3655"; + + src = requireFile { + name = "everspace_1_3_5_3655_32896.sh"; + url = "https://www.gog.com/"; + sha256 = "0jlvxq14k1pxmbr08y8kar0ijlqxcnkfqlvw883j96v9zr34ynj3"; + }; + + nativeBuildInputs = [ + autoPatchelfHook + unzip + ]; + + buildInputs = [ + cairo + gdk-pixbuf + gnome2.pango + gtk2-x11 + openal + stdenv.cc.cc.lib + ]; + + runtimeDependencies = [ + libGL + + # ue4 + xorg.libX11 + xorg.libXScrnSaver + xorg.libXau + xorg.libXcursor + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXxf86vm + xorg.libxcb + ]; + + unpackPhase = '' + runHook preUnpack + + # The shell script contains a zip file. Unzipping it works but will result + # in some error output and an error exit code. + unzip "$src" || true + + runHook postUnpack + ''; + + postPatch = '' + ## Remove Bundled Libs ## + + # vlc libs + # + # TODO: This is probably what breaks video playback. It would be cleaner + # to remove the bundled libs and replace them with system libs but there + # are so many. Copy-pasting the list from the vlc package is a good start + # but still leaves us with many unresolved dependencies. + rm -rf ./data/noarch/game/RSG/Plugins/VlcMedia + + # openal + rm -rf ./data/noarch/game/Engine/Binaries/ThirdParty/OpenAL + ''; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/opt" + cp -r "./data/noarch" "$out/opt/everspace" + + mkdir -p "$out/bin" + ln -s "$out/opt/everspace/game/RSG/Binaries/Linux/RSG-Linux-Shipping" "$out/bin/everspace" + + runHook postInstall + ''; + + meta = with lib; { + description = "Action-focused single-player space shooter with roguelike elements"; + homepage = "https://classic.everspace-game.com/"; + license = licenses.unfree; + maintainers = with maintainers; [ jtrees ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9efc791873b6..d278ba817593 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32524,6 +32524,8 @@ with pkgs; enigma = callPackage ../games/enigma { }; + everspace = callPackage ../games/everspace { }; + ezquake = callPackage ../games/ezquake { }; fmodex = callPackage ../games/zandronum/fmod.nix { };