From af653b6ac2948e8f10967c84da36115f50da45fe Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Thu, 14 Mar 2024 00:11:29 -0300 Subject: nxengine-evo: migrate to by-name --- pkgs/by-name/nx/nxengine-evo/package.nix | 68 ++++++++++++++++++++++++++++++++ pkgs/games/nxengine-evo/default.nix | 68 -------------------------------- pkgs/top-level/all-packages.nix | 2 - 3 files changed, 68 insertions(+), 70 deletions(-) create mode 100644 pkgs/by-name/nx/nxengine-evo/package.nix delete mode 100644 pkgs/games/nxengine-evo/default.nix (limited to 'pkgs') diff --git a/pkgs/by-name/nx/nxengine-evo/package.nix b/pkgs/by-name/nx/nxengine-evo/package.nix new file mode 100644 index 0000000000000..ca57d11910aa6 --- /dev/null +++ b/pkgs/by-name/nx/nxengine-evo/package.nix @@ -0,0 +1,68 @@ +{ lib, stdenv +, fetchpatch +, fetchurl +, fetchFromGitHub +, cmake +, libpng +, SDL2 +, SDL2_mixer +}: + +stdenv.mkDerivation rec { + pname = "nxengine-evo"; + version = "2.6.4"; + src = fetchFromGitHub { + owner = "nxengine"; + repo = "nxengine-evo"; + rev = "v${version}"; + sha256 = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; + }; + assets = fetchurl { + url = "https://github.com/nxengine/nxengine-evo/releases/download/v${version}/NXEngine-v${version}-Linux.tar.xz"; + sha256 = "1b5hkmsrrhnjjf825ri6n62kb3fldwl7v5f1cqvqyv47zv15g5gy"; + }; + + patches = [ + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/1890127ec4b4b5f8d6cb0fb30a41868e95659840.patch"; + sha256 = "18j22vzkikcwqd42vlhzd6rjp26dq0zslxw5yyl07flivms0hny2"; + }) + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/75b8b8e3b067fd354baa903332f2a3254d1cc017.patch"; + sha256 = "0sjr7z63gp7nfxifxisvp2w664mxxk3xi4a3d86mm0470dj5m5bx"; + }) + ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ + libpng + SDL2 + SDL2_mixer + ]; + + # Allow finding game assets. + postPatch = '' + sed -i -e "s,/usr/share/,$out/share/," src/ResourceManager.cpp + ''; + + installPhase = '' + cd .. + unpackFile ${assets} + mkdir -p $out/bin/ $out/share/nxengine/ + install bin/* $out/bin/ + cp -r NXEngine-evo-${version}-Linux/data/ $out/share/nxengine/data + chmod -R a=r,a+X $out/share/nxengine/data + ''; + + meta = { + description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; + license = with lib.licenses; [ + gpl3 # Game engine + unfreeRedistributable # Game assets, freeware + ]; + maintainers = [ ]; + homepage = "https://github.com/nxengine/nxengine-evo"; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/games/nxengine-evo/default.nix b/pkgs/games/nxengine-evo/default.nix deleted file mode 100644 index ca57d11910aa6..0000000000000 --- a/pkgs/games/nxengine-evo/default.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ lib, stdenv -, fetchpatch -, fetchurl -, fetchFromGitHub -, cmake -, libpng -, SDL2 -, SDL2_mixer -}: - -stdenv.mkDerivation rec { - pname = "nxengine-evo"; - version = "2.6.4"; - src = fetchFromGitHub { - owner = "nxengine"; - repo = "nxengine-evo"; - rev = "v${version}"; - sha256 = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; - }; - assets = fetchurl { - url = "https://github.com/nxengine/nxengine-evo/releases/download/v${version}/NXEngine-v${version}-Linux.tar.xz"; - sha256 = "1b5hkmsrrhnjjf825ri6n62kb3fldwl7v5f1cqvqyv47zv15g5gy"; - }; - - patches = [ - (fetchpatch { - url = "https://github.com/nxengine/nxengine-evo/commit/1890127ec4b4b5f8d6cb0fb30a41868e95659840.patch"; - sha256 = "18j22vzkikcwqd42vlhzd6rjp26dq0zslxw5yyl07flivms0hny2"; - }) - (fetchpatch { - url = "https://github.com/nxengine/nxengine-evo/commit/75b8b8e3b067fd354baa903332f2a3254d1cc017.patch"; - sha256 = "0sjr7z63gp7nfxifxisvp2w664mxxk3xi4a3d86mm0470dj5m5bx"; - }) - ]; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ - libpng - SDL2 - SDL2_mixer - ]; - - # Allow finding game assets. - postPatch = '' - sed -i -e "s,/usr/share/,$out/share/," src/ResourceManager.cpp - ''; - - installPhase = '' - cd .. - unpackFile ${assets} - mkdir -p $out/bin/ $out/share/nxengine/ - install bin/* $out/bin/ - cp -r NXEngine-evo-${version}-Linux/data/ $out/share/nxengine/data - chmod -R a=r,a+X $out/share/nxengine/data - ''; - - meta = { - description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; - license = with lib.licenses; [ - gpl3 # Game engine - unfreeRedistributable # Game assets, freeware - ]; - maintainers = [ ]; - homepage = "https://github.com/nxengine/nxengine-evo"; - platforms = lib.platforms.linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c0054b6f0a942..ec16f928dbeab 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37191,8 +37191,6 @@ with pkgs; nudoku = callPackage ../games/nudoku { }; - nxengine-evo = callPackage ../games/nxengine-evo { }; - oilrush = callPackage ../games/oilrush { }; onscripter-en = callPackage ../games/onscripter-en { }; -- cgit 1.4.1 From e540f2ccbecf396c47be3f205fef562a540bf396 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 25 Mar 2024 18:06:47 -0300 Subject: nxengine-evo: refactor and adopt by AndersonTorres - finalAttrs design pattern - extra patch to make it compile on modern CC - strictDeps - internalize assets - mainProgram --- pkgs/by-name/nx/nxengine-evo/package.nix | 76 +++++++++++++++++++++----------- 1 file changed, 51 insertions(+), 25 deletions(-) (limited to 'pkgs') diff --git a/pkgs/by-name/nx/nxengine-evo/package.nix b/pkgs/by-name/nx/nxengine-evo/package.nix index ca57d11910aa6..bd88fc3b19f41 100644 --- a/pkgs/by-name/nx/nxengine-evo/package.nix +++ b/pkgs/by-name/nx/nxengine-evo/package.nix @@ -1,68 +1,94 @@ -{ lib, stdenv -, fetchpatch -, fetchurl -, fetchFromGitHub -, cmake -, libpng -, SDL2 -, SDL2_mixer +{ + lib, + SDL2, + SDL2_mixer, + cmake, + pkg-config, + ninja, + fetchFromGitHub, + fetchpatch, + fetchurl, + libpng, + stdenv, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "nxengine-evo"; version = "2.6.4"; + src = fetchFromGitHub { owner = "nxengine"; repo = "nxengine-evo"; - rev = "v${version}"; - sha256 = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; - }; - assets = fetchurl { - url = "https://github.com/nxengine/nxengine-evo/releases/download/v${version}/NXEngine-v${version}-Linux.tar.xz"; - sha256 = "1b5hkmsrrhnjjf825ri6n62kb3fldwl7v5f1cqvqyv47zv15g5gy"; + rev = "v${finalAttrs.version}"; + hash = "sha256-krK2b1E5JUMxRoEWmb3HZMNSIHfUUGXSpyb4/Zdp+5A="; }; patches = [ + # Fix building by adding SDL_MIXER to include path (fetchpatch { url = "https://github.com/nxengine/nxengine-evo/commit/1890127ec4b4b5f8d6cb0fb30a41868e95659840.patch"; - sha256 = "18j22vzkikcwqd42vlhzd6rjp26dq0zslxw5yyl07flivms0hny2"; + hash = "sha256-wlsIdN2RugOo94V3qj/AzYgrs2kf0i1Iw5zNOP8WQqI="; }) + # Fix buffer overflow (fetchpatch { url = "https://github.com/nxengine/nxengine-evo/commit/75b8b8e3b067fd354baa903332f2a3254d1cc017.patch"; - sha256 = "0sjr7z63gp7nfxifxisvp2w664mxxk3xi4a3d86mm0470dj5m5bx"; + hash = "sha256-fZVaZAOHgFoNakOR2MfsvRJjuLhbx+5id/bcN8w/WWo="; + }) + # Add missing include + (fetchpatch { + url = "https://github.com/nxengine/nxengine-evo/commit/0076ebb11bcfec5dc5e2e923a50425f1a33a4133.patch"; + hash = "sha256-8j3fFFw8DMljV7aAFXE+eA+vkbz1HdFTMAJmk3BRU04="; }) ]; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + SDL2 + cmake + ninja + pkg-config + ]; buildInputs = [ - libpng SDL2 SDL2_mixer + libpng ]; + strictDeps = true; + # Allow finding game assets. postPatch = '' sed -i -e "s,/usr/share/,$out/share/," src/ResourceManager.cpp ''; - installPhase = '' + installPhase = let + assetsVersion = "2.6.4"; + assets = fetchurl { + url = "https://github.com/nxengine/nxengine-evo/releases/download/v${assetsVersion}/NXEngine-v${assetsVersion}-Linux.tar.xz"; + hash = "sha256-/pVXwv6HbI83ZsGVfShv1I01hbEm5iKQk9LCnHWdsKw="; + }; + in '' + runHook preInstall + cd .. unpackFile ${assets} mkdir -p $out/bin/ $out/share/nxengine/ install bin/* $out/bin/ - cp -r NXEngine-evo-${version}-Linux/data/ $out/share/nxengine/data + cp -r NXEngine-evo-${assetsVersion}-Linux/data/ $out/share/nxengine/data chmod -R a=r,a+X $out/share/nxengine/data + + runHook postInstall ''; meta = { + homepage = "https://github.com/nxengine/nxengine-evo"; description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; license = with lib.licenses; [ - gpl3 # Game engine + gpl3Plus # Game engine unfreeRedistributable # Game assets, freeware ]; - maintainers = [ ]; - homepage = "https://github.com/nxengine/nxengine-evo"; + mainProgram = "nx"; + maintainers = with lib.maintainers; [ AndersonTorres ]; platforms = lib.platforms.linux; }; -} +}) -- cgit 1.4.1 From 4f0f9d1d9bfaad32bfdb64da869206fc5e48a4ef Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Wed, 1 May 2024 23:54:21 -0300 Subject: nxengine-evo.assets: init at 2.6.4 Splitting the assets from the master expression. --- pkgs/by-name/nx/nxengine-evo/assets.nix | 37 ++++++++++++++++++++++++++++++++ pkgs/by-name/nx/nxengine-evo/package.nix | 22 +++++++++---------- 2 files changed, 47 insertions(+), 12 deletions(-) create mode 100644 pkgs/by-name/nx/nxengine-evo/assets.nix (limited to 'pkgs') diff --git a/pkgs/by-name/nx/nxengine-evo/assets.nix b/pkgs/by-name/nx/nxengine-evo/assets.nix new file mode 100644 index 0000000000000..70fb1b32759f3 --- /dev/null +++ b/pkgs/by-name/nx/nxengine-evo/assets.nix @@ -0,0 +1,37 @@ +{ lib +, stdenvNoCC +, fetchzip +}: + +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "nxengine-assets"; + version = "2.6.4"; + + src = fetchzip { + url = "https://github.com/nxengine/nxengine-evo/releases/download/v${finalAttrs.version}/NXEngine-v${finalAttrs.version}-Linux.tar.xz"; + hash = "sha256-vBbbX6yBZ5CwdkxzO9Z/DjY1IMnKGKYNx6jzAgYUjcM="; + }; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/nxengine/ + cp -r data/ $out/share/nxengine/data + + runHook postInstall + ''; + + meta = { + homepage = "https://github.com/nxengine/nxengine-evo"; + description = "Assets for nxengine-evo"; + license = with lib.licenses; [ + unfreeRedistributable + ]; + maintainers = with lib.maintainers; [ AndersonTorres ]; + platforms = lib.platforms.all; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + }; +}) diff --git a/pkgs/by-name/nx/nxengine-evo/package.nix b/pkgs/by-name/nx/nxengine-evo/package.nix index bd88fc3b19f41..4503c0ec9b2c7 100644 --- a/pkgs/by-name/nx/nxengine-evo/package.nix +++ b/pkgs/by-name/nx/nxengine-evo/package.nix @@ -2,6 +2,7 @@ lib, SDL2, SDL2_mixer, + callPackage, cmake, pkg-config, ninja, @@ -61,31 +62,28 @@ stdenv.mkDerivation (finalAttrs: { sed -i -e "s,/usr/share/,$out/share/," src/ResourceManager.cpp ''; - installPhase = let - assetsVersion = "2.6.4"; - assets = fetchurl { - url = "https://github.com/nxengine/nxengine-evo/releases/download/v${assetsVersion}/NXEngine-v${assetsVersion}-Linux.tar.xz"; - hash = "sha256-/pVXwv6HbI83ZsGVfShv1I01hbEm5iKQk9LCnHWdsKw="; - }; - in '' + installPhase = '' runHook preInstall cd .. - unpackFile ${assets} mkdir -p $out/bin/ $out/share/nxengine/ install bin/* $out/bin/ - cp -r NXEngine-evo-${assetsVersion}-Linux/data/ $out/share/nxengine/data + '' + '' + cp -r ${finalAttrs.finalPackage.assets}/share/nxengine/data $out/share/nxengine/data chmod -R a=r,a+X $out/share/nxengine/data - + '' + '' runHook postInstall ''; + passthru = { + assets = callPackage ./assets.nix { }; + }; + meta = { homepage = "https://github.com/nxengine/nxengine-evo"; description = "A complete open-source clone/rewrite of the masterpiece jump-and-run platformer Doukutsu Monogatari (also known as Cave Story)"; license = with lib.licenses; [ - gpl3Plus # Game engine - unfreeRedistributable # Game assets, freeware + gpl3Plus ]; mainProgram = "nx"; maintainers = with lib.maintainers; [ AndersonTorres ]; -- cgit 1.4.1 From 975963c68fea8ec0c0730583dd2bca93bb752765 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 25 Mar 2024 22:35:43 -0300 Subject: nxengine-evo.assets: 2.6.4 -> 2.6.5-1 --- pkgs/by-name/nx/nxengine-evo/assets.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'pkgs') diff --git a/pkgs/by-name/nx/nxengine-evo/assets.nix b/pkgs/by-name/nx/nxengine-evo/assets.nix index 70fb1b32759f3..96c2e5f1e70b4 100644 --- a/pkgs/by-name/nx/nxengine-evo/assets.nix +++ b/pkgs/by-name/nx/nxengine-evo/assets.nix @@ -5,11 +5,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "nxengine-assets"; - version = "2.6.4"; + version = "2.6.5-1"; src = fetchzip { - url = "https://github.com/nxengine/nxengine-evo/releases/download/v${finalAttrs.version}/NXEngine-v${finalAttrs.version}-Linux.tar.xz"; - hash = "sha256-vBbbX6yBZ5CwdkxzO9Z/DjY1IMnKGKYNx6jzAgYUjcM="; + url = "https://github.com/nxengine/nxengine-evo/releases/download/v${finalAttrs.version}/NXEngine-Evo-v${finalAttrs.version}-Win64.zip"; + hash = "sha256-+PjjhJYL1yk67QJ7ixfpCRg1coQnSPpXDUIwsqp9aIM="; }; dontConfigure = true; -- cgit 1.4.1