diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index fa8d1ad6486..ab30cecaa46 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -14752,6 +14752,12 @@ githubId = 187109; name = "Bjarki Ágúst Guðmundsson"; }; + surfaceflinger = { + email = "nat@nekopon.pl"; + github = "surfaceflinger"; + githubId = 44725111; + name = "nat"; + }; suryasr007 = { email = "94suryateja@gmail.com"; github = "suryasr007"; diff --git a/pkgs/games/jazz2/content.nix b/pkgs/games/jazz2/content.nix new file mode 100644 index 00000000000..0a0e7207563 --- /dev/null +++ b/pkgs/games/jazz2/content.nix @@ -0,0 +1,20 @@ +{ jazz2 +, lib +, runCommand +}: + +runCommand "jazz2-content" +{ + inherit (jazz2) version src; + + preferLocalBuild = true; + + meta = with lib; { + description = "Assets needed for jazz2"; + homepage = "https://github.com/deathkiller/jazz2-native"; + license = licenses.gpl3; + maintainers = with maintainers; [ surfaceflinger ]; + }; +} '' + cp -r $src/Content $out +'' diff --git a/pkgs/games/jazz2/game.nix b/pkgs/games/jazz2/game.nix new file mode 100644 index 00000000000..fab888b6178 --- /dev/null +++ b/pkgs/games/jazz2/game.nix @@ -0,0 +1,47 @@ +{ cmake +, fetchFromGitHub +, glew +, glfw +, jazz2-content +, lib +, libGL +, libopenmpt +, libvorbis +, openal +, SDL2 +, stdenv +, xorg +, zlib +}: + +stdenv.mkDerivation rec { + pname = "jazz2"; + version = "1.8.0"; + + src = fetchFromGitHub { + owner = "deathkiller"; + repo = "jazz2-native"; + rev = version; + sha256 = "fi1waoLAcnZB0lX+8+wQFoBYOSvVXYK3JKiu81GGF4U="; + }; + + patches = [ ./nocontent.patch ]; + + buildInputs = [ libGL SDL2 zlib glew glfw openal libvorbis libopenmpt xorg.libSM xorg.libICE xorg.libXext ]; + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ + "-DNCINE_DOWNLOAD_DEPENDENCIES=OFF" + "-DGLFW_INCLUDE_DIR=${glfw}/include/GLFW" + "-DLIBOPENMPT_INCLUDE_DIR=${libopenmpt.dev}/include/libopenmpt" + "-DNCINE_OVERRIDE_CONTENT_PATH=${jazz2-content}" + ]; + + meta = with lib; { + description = "Open-source Jazz Jackrabbit 2 reimplementation"; + homepage = "https://github.com/deathkiller/jazz2-native"; + license = licenses.gpl3; + maintainers = with maintainers; [ surfaceflinger ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/games/jazz2/nocontent.patch b/pkgs/games/jazz2/nocontent.patch new file mode 100644 index 00000000000..28ced9426b4 --- /dev/null +++ b/pkgs/games/jazz2/nocontent.patch @@ -0,0 +1,12 @@ +diff --git a/cmake/ncine_installation.cmake b/cmake/ncine_installation.cmake +index 9ccb707..89c350f 100644 +--- a/cmake/ncine_installation.cmake ++++ b/cmake/ncine_installation.cmake +@@ -195,7 +195,6 @@ endif() + #endif() + + if(NOT EMSCRIPTEN) +- install(DIRECTORY "${NCINE_ROOT}/Content/" DESTINATION ${DATA_INSTALL_DESTINATION}) + else() + install(FILES "${CMAKE_BINARY_DIR}/${CPACK_EXECUTABLE_NAME}.html" DESTINATION ".") + install(FILES "${CMAKE_BINARY_DIR}/${CPACK_EXECUTABLE_NAME}.data" DESTINATION ".") diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 05e237d283b..261872100c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35894,6 +35894,10 @@ with pkgs; fish-fillets-ng = callPackage ../games/fish-fillets-ng { }; + jazz2 = callPackage ../games/jazz2/game.nix { }; + + jazz2-content = callPackage ../games/jazz2/content.nix { }; + jumpy = callPackage ../games/jumpy { }; flightgear = libsForQt5.callPackage ../games/flightgear { };