From 731e9507090c139e2a77ea86d538708f6a25184d Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sat, 16 Mar 2024 05:36:10 -0400 Subject: [PATCH] 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);