From bbc2e4dd65929aec8f1466c31b0f2988e3f5e053 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Fri, 15 Mar 2024 01:20:57 -0400 Subject: [PATCH 1/6] srb2kart: migrate to by-name --- .../srb2kart/default.nix => by-name/sr/srb2kart/package.nix} | 0 pkgs/{games => by-name/sr}/srb2kart/wadlocation.patch | 0 pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 2 deletions(-) rename pkgs/{games/srb2kart/default.nix => by-name/sr/srb2kart/package.nix} (100%) rename pkgs/{games => by-name/sr}/srb2kart/wadlocation.patch (100%) diff --git a/pkgs/games/srb2kart/default.nix b/pkgs/by-name/sr/srb2kart/package.nix similarity index 100% rename from pkgs/games/srb2kart/default.nix rename to pkgs/by-name/sr/srb2kart/package.nix diff --git a/pkgs/games/srb2kart/wadlocation.patch b/pkgs/by-name/sr/srb2kart/wadlocation.patch similarity index 100% rename from pkgs/games/srb2kart/wadlocation.patch rename to pkgs/by-name/sr/srb2kart/wadlocation.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 02964f0d1fd3..083d4c64d5dc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37833,8 +37833,6 @@ with pkgs; srb2 = callPackage ../games/srb2 { }; - srb2kart = callPackage ../games/srb2kart { }; - ssl-cert-check = callPackage ../tools/admin/ssl-cert-check { }; stardust = callPackage ../games/stardust { }; From a3ecd67e934308b1133e6fb3a9c2558e6c7ed75a Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Fri, 15 Mar 2024 01:33:53 -0400 Subject: [PATCH 2/6] srb2kart: add myself as maintainer --- pkgs/by-name/sr/srb2kart/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix index 441ffd284a0d..ffedfa794248 100644 --- a/pkgs/by-name/sr/srb2kart/package.nix +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -82,6 +82,6 @@ in stdenv.mkDerivation { homepage = "https://mb.srb2.org/threads/srb2kart.25868/"; platforms = platforms.linux; license = licenses.gpl2Plus; - maintainers = with maintainers; [ viric ]; + maintainers = with maintainers; [ viric donovanglover ]; }; } From 2afcd450759485f2461304c3e87ece81da8c36f0 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Fri, 15 Mar 2024 01:45:41 -0400 Subject: [PATCH 3/6] srb2kart: use hash instead of sha256 --- pkgs/by-name/sr/srb2kart/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix index ffedfa794248..0d518db0ecb7 100644 --- a/pkgs/by-name/sr/srb2kart/package.nix +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -20,7 +20,7 @@ let assets = fetchurl { url = "https://github.com/STJr/Kart-Public/releases/download/${release_tag}/AssetsLinuxOnly.zip"; - sha256 = "sha256-ejhPuZ1C8M9B0S4+2HN1T5pbormT1eVL3nlivqOszdE="; + hash = "sha256-ejhPuZ1C8M9B0S4+2HN1T5pbormT1eVL3nlivqOszdE="; }; in stdenv.mkDerivation { @@ -31,7 +31,7 @@ in stdenv.mkDerivation { owner = "STJr"; repo = "Kart-Public"; rev = release_tag; - sha256 = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0="; + hash = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0="; }; nativeBuildInputs = [ From 8175377a57ff5965ebfc98e23d30191edc50ce52 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Fri, 15 Mar 2024 01:58:14 -0400 Subject: [PATCH 4/6] srb2kart: add meta.mainProgram --- pkgs/by-name/sr/srb2kart/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix index 0d518db0ecb7..a9602f712cc3 100644 --- a/pkgs/by-name/sr/srb2kart/package.nix +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -83,5 +83,6 @@ in stdenv.mkDerivation { platforms = platforms.linux; license = licenses.gpl2Plus; maintainers = with maintainers; [ viric donovanglover ]; + mainProgram = "srb2kart"; }; } From 731e9507090c139e2a77ea86d538708f6a25184d Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 16 Mar 2024 05:36:10 -0400 Subject: [PATCH 5/6] srb2kart: refactor - Removed unused binding - Dropped wadlocation.patch - fetchurl -> fetchzip - mkdir/cp -> install --- pkgs/by-name/sr/srb2kart/package.nix | 70 +++++++++++----------- pkgs/by-name/sr/srb2kart/wadlocation.patch | 61 ------------------- 2 files changed, 36 insertions(+), 95 deletions(-) delete mode 100644 pkgs/by-name/sr/srb2kart/wadlocation.patch diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix index a9602f712cc3..7021298b41ad 100644 --- a/pkgs/by-name/sr/srb2kart/package.nix +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -1,43 +1,53 @@ { lib , stdenv -, fetchurl +, fetchzip , fetchFromGitHub -, substituteAll , cmake , curl , nasm -, unzip , game-music-emu , libpng , SDL2 , SDL2_mixer , zlib +, makeWrapper }: -let - - release_tag = "v1.6"; - - assets = fetchurl { - url = "https://github.com/STJr/Kart-Public/releases/download/${release_tag}/AssetsLinuxOnly.zip"; - hash = "sha256-ejhPuZ1C8M9B0S4+2HN1T5pbormT1eVL3nlivqOszdE="; - }; - -in stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "srb2kart"; - version = "1.6.0"; + version = "1.6"; src = fetchFromGitHub { owner = "STJr"; repo = "Kart-Public"; - rev = release_tag; + rev = "v${finalAttrs.version}"; hash = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0="; }; + assets = stdenv.mkDerivation { + pname = "srb2kart-data"; + version = finalAttrs.version; + + src = fetchzip { + url = "https://github.com/STJr/Kart-Public/releases/download/v${finalAttrs.version}/AssetsLinuxOnly.zip"; + hash = "sha256-yaVdsQUnyobjSbmemeBEyu35GeZCX1ylTRcjcbDuIu4="; + stripRoot = false; + }; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/srb2kart + cp -r * $out/share/srb2kart + + runHook postInstall + ''; + }; + nativeBuildInputs = [ cmake nasm - unzip + makeWrapper ]; buildInputs = [ @@ -50,31 +60,23 @@ in stdenv.mkDerivation { ]; cmakeFlags = [ + "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}/share/srb2kart" "-DGME_INCLUDE_DIR=${game-music-emu}/include" "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2" "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2" ]; - patches = [ - ./wadlocation.patch - ]; + installPhase = '' + runHook preInstall - postPatch = '' - substituteInPlace src/sdl/i_system.c \ - --replace '@wadlocation@' $out - ''; + install -Dm644 ../srb2.png $out/share/pixmaps/srb2kart.png + install -Dm644 ../srb2.png $out/share/icons/srb2kart.png + install -Dm755 bin/srb2kart $out/bin/srb2kart - preConfigure = '' - mkdir assets/installer - pushd assets/installer - unzip ${assets} "*.kart" srb2.srb - popd - ''; + wrapProgram $out/bin/srb2kart \ + --set SRB2WADDIR "${finalAttrs.assets}/share/srb2kart" - postInstall = '' - mkdir -p $out/bin $out/share/games/SRB2Kart - mv $out/srb2kart* $out/bin/ - mv $out/*.kart $out/share/games/SRB2Kart + runHook postInstall ''; meta = with lib; { @@ -85,4 +87,4 @@ in stdenv.mkDerivation { maintainers = with maintainers; [ viric donovanglover ]; mainProgram = "srb2kart"; }; -} +}) diff --git a/pkgs/by-name/sr/srb2kart/wadlocation.patch b/pkgs/by-name/sr/srb2kart/wadlocation.patch deleted file mode 100644 index 1923cda041d2..000000000000 --- a/pkgs/by-name/sr/srb2kart/wadlocation.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c -index 51f708d0..c4d971f7 100644 ---- a/src/sdl/i_system.c -+++ b/src/sdl/i_system.c -@@ -139,7 +139,7 @@ typedef LPVOID (WINAPI *p_MapViewOfFile) (HANDLE, DWORD, DWORD, DWORD, SIZE_T); - - // Locations for searching the srb2.srb - #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) --#define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2Kart" -+#define DEFAULTWADLOCATION1 "@wadlocation@" - #define DEFAULTWADLOCATION2 "/usr/local/games/SRB2Kart" - #define DEFAULTWADLOCATION3 "/usr/share/games/SRB2Kart" - #define DEFAULTWADLOCATION4 "/usr/games/SRB2Kart" -@@ -3646,47 +3646,6 @@ static const char *locateWad(void) - if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) - return envstr; - --#ifndef NOCWD -- I_OutputMsg(",."); -- // examine current dir -- strcpy(returnWadPath, "."); -- if (isWadPathOk(returnWadPath)) -- return NULL; --#endif -- -- --#ifdef DEFAULTDIR -- I_OutputMsg(",HOME/" DEFAULTDIR); -- // examine user jart directory -- if ((envstr = I_GetEnv("HOME")) != NULL) -- { -- sprintf(returnWadPath, "%s" PATHSEP DEFAULTDIR, envstr); -- if (isWadPathOk(returnWadPath)) -- return returnWadPath; -- } --#endif -- -- --#ifdef CMAKECONFIG --#ifndef NDEBUG -- I_OutputMsg(","CMAKE_ASSETS_DIR); -- strcpy(returnWadPath, CMAKE_ASSETS_DIR); -- if (isWadPathOk(returnWadPath)) -- { -- return returnWadPath; -- } --#endif --#endif -- --#ifdef __APPLE__ -- OSX_GetResourcesPath(returnWadPath); -- I_OutputMsg(",%s", returnWadPath); -- if (isWadPathOk(returnWadPath)) -- { -- return returnWadPath; -- } --#endif -- - // examine default dirs - #ifdef DEFAULTWADLOCATION1 - I_OutputMsg(","DEFAULTWADLOCATION1); From 8f4f53815c4c1ce04b56779765790c7c2d298855 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 16 Mar 2024 06:09:48 -0400 Subject: [PATCH 6/6] srb2kart: add desktop item --- pkgs/by-name/sr/srb2kart/package.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix index 7021298b41ad..9601d99263ac 100644 --- a/pkgs/by-name/sr/srb2kart/package.nix +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -11,6 +11,8 @@ , SDL2_mixer , zlib , makeWrapper +, makeDesktopItem +, copyDesktopItems }: stdenv.mkDerivation (finalAttrs: { @@ -48,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: { cmake nasm makeWrapper + copyDesktopItems ]; buildInputs = [ @@ -66,6 +69,19 @@ stdenv.mkDerivation (finalAttrs: { "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2" ]; + desktopItems = [ + (makeDesktopItem rec { + name = "Sonic Robo Blast 2 Kart"; + exec = finalAttrs.pname; + icon = finalAttrs.pname; + comment = "Kart racing mod based on SRB2"; + desktopName = name; + genericName = name; + startupWMClass = ".srb2kart-wrapped"; + categories = [ "Game" ]; + }) + ]; + installPhase = '' runHook preInstall