diff --git a/pkgs/by-name/sr/srb2kart/package.nix b/pkgs/by-name/sr/srb2kart/package.nix new file mode 100644 index 000000000000..9601d99263ac --- /dev/null +++ b/pkgs/by-name/sr/srb2kart/package.nix @@ -0,0 +1,106 @@ +{ lib +, stdenv +, fetchzip +, fetchFromGitHub +, cmake +, curl +, nasm +, game-music-emu +, libpng +, SDL2 +, SDL2_mixer +, zlib +, makeWrapper +, makeDesktopItem +, copyDesktopItems +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "srb2kart"; + version = "1.6"; + + src = fetchFromGitHub { + owner = "STJr"; + repo = "Kart-Public"; + 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 + makeWrapper + copyDesktopItems + ]; + + buildInputs = [ + curl + game-music-emu + libpng + SDL2 + SDL2_mixer + zlib + ]; + + 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" + ]; + + 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 + + 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 + + wrapProgram $out/bin/srb2kart \ + --set SRB2WADDIR "${finalAttrs.assets}/share/srb2kart" + + runHook postInstall + ''; + + meta = with lib; { + description = "SRB2Kart is a classic styled kart racer"; + homepage = "https://mb.srb2.org/threads/srb2kart.25868/"; + platforms = platforms.linux; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ viric donovanglover ]; + mainProgram = "srb2kart"; + }; +}) diff --git a/pkgs/games/srb2kart/default.nix b/pkgs/games/srb2kart/default.nix deleted file mode 100644 index 441ffd284a0d..000000000000 --- a/pkgs/games/srb2kart/default.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ lib -, stdenv -, fetchurl -, fetchFromGitHub -, substituteAll -, cmake -, curl -, nasm -, unzip -, game-music-emu -, libpng -, SDL2 -, SDL2_mixer -, zlib -}: - -let - - release_tag = "v1.6"; - - assets = fetchurl { - url = "https://github.com/STJr/Kart-Public/releases/download/${release_tag}/AssetsLinuxOnly.zip"; - sha256 = "sha256-ejhPuZ1C8M9B0S4+2HN1T5pbormT1eVL3nlivqOszdE="; - }; - -in stdenv.mkDerivation { - pname = "srb2kart"; - version = "1.6.0"; - - src = fetchFromGitHub { - owner = "STJr"; - repo = "Kart-Public"; - rev = release_tag; - sha256 = "sha256-5sIHdeenWZjczyYM2q+F8Y1SyLqL+y77yxYDUM3dVA0="; - }; - - nativeBuildInputs = [ - cmake - nasm - unzip - ]; - - buildInputs = [ - curl - game-music-emu - libpng - SDL2 - SDL2_mixer - zlib - ]; - - cmakeFlags = [ - "-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 - ]; - - postPatch = '' - substituteInPlace src/sdl/i_system.c \ - --replace '@wadlocation@' $out - ''; - - preConfigure = '' - mkdir assets/installer - pushd assets/installer - unzip ${assets} "*.kart" srb2.srb - popd - ''; - - postInstall = '' - mkdir -p $out/bin $out/share/games/SRB2Kart - mv $out/srb2kart* $out/bin/ - mv $out/*.kart $out/share/games/SRB2Kart - ''; - - meta = with lib; { - description = "SRB2Kart is a classic styled kart racer"; - homepage = "https://mb.srb2.org/threads/srb2kart.25868/"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ viric ]; - }; -} diff --git a/pkgs/games/srb2kart/wadlocation.patch b/pkgs/games/srb2kart/wadlocation.patch deleted file mode 100644 index 1923cda041d2..000000000000 --- a/pkgs/games/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); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 583c03370fb0..f80e10968bb2 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 { };