Merge pull request #233085 from donovanglover/srb2

srb2: 2.2.10 -> 2.2.11

authored by Ilan Joselevich and committed by GitHub 221613f4 d1f636bd

+76 -107
+19
pkgs/games/srb2/cmake.patch
··· 1 + diff --git a/CMakeLists.txt b/CMakeLists.txt 2 + index 915912af5..f5c2cf9cc 100644 3 + --- a/CMakeLists.txt 4 + +++ b/CMakeLists.txt 5 + @@ -91,11 +91,6 @@ if("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL Windows) 6 + endif() 7 + endif() 8 + else() 9 + - CPMAddPackage( 10 + - NAME Ccache.cmake 11 + - GITHUB_REPOSITORY TheLartians/Ccache.cmake 12 + - VERSION 1.2 13 + - ) 14 + endif() 15 + 16 + # Dependencies 17 + -- 18 + 2.40.1 19 +
+57 -35
pkgs/games/srb2/default.nix
··· 2 2 , stdenv 3 3 , fetchurl 4 4 , fetchFromGitHub 5 - , substituteAll 6 5 , cmake 7 6 , curl 8 7 , nasm ··· 13 12 , SDL2 14 13 , SDL2_mixer 15 14 , zlib 15 + , unzip 16 + , makeWrapper 17 + , makeDesktopItem 18 + , copyDesktopItems 16 19 }: 17 20 18 - let 19 - 20 - assets_version = "2.2.5"; 21 - 22 - assets = fetchurl { 23 - url = "https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/srb2-${assets_version}-assets.7z"; 24 - sha256 = "1m9xf3vraq9nipsi09cyvvfa4i37gzfxg970rnqfswd86z9v6v00"; 25 - }; 26 - 27 - assets_optional = fetchurl { 28 - url = "https://github.com/mazmazz/SRB2/releases/download/SRB2_assets_220/srb2-${assets_version}-optional-assets.7z"; 29 - sha256 = "1j29jrd0r1k2bb11wyyl6yv9b90s2i6jhrslnh77qkrhrwnwcdz4"; 30 - }; 31 - 32 - in stdenv.mkDerivation rec { 21 + stdenv.mkDerivation (finalAttrs: { 33 22 pname = "srb2"; 34 - version = "2.2.10"; 23 + version = "2.2.11"; 35 24 36 25 src = fetchFromGitHub { 37 26 owner = "STJr"; 38 27 repo = "SRB2"; 39 - rev = "SRB2_release_${version}"; 40 - sha256 = "03388n094d2yr5si6ngnggbqhm8b2l0s0qvfnkz49li9bd6a81gg"; 28 + rev = "SRB2_release_${finalAttrs.version}"; 29 + hash = "sha256-tyiXivJWjNnL+4YynUV6k6iaMs8o9HkHrp+qFj2+qvQ="; 41 30 }; 42 31 43 32 nativeBuildInputs = [ 44 33 cmake 45 34 nasm 46 35 p7zip 36 + makeWrapper 37 + copyDesktopItems 47 38 ]; 48 39 49 40 buildInputs = [ ··· 56 47 zlib 57 48 ]; 58 49 50 + assets = stdenv.mkDerivation { 51 + pname = "srb2-data"; 52 + version = finalAttrs.version; 53 + 54 + nativeBuildInputs = [ 55 + unzip 56 + ]; 57 + 58 + src = fetchurl { 59 + url = "https://github.com/STJr/SRB2/releases/download/SRB2_release_${finalAttrs.version}/SRB2-v${lib.replaceStrings ["."] [""] finalAttrs.version}-Full.zip"; 60 + hash = "sha256-KsJIkCczD/HyIwEy5dI3zsHbWFCMBaCoCHizfupFoWM="; 61 + }; 62 + 63 + sourceRoot = "."; 64 + 65 + installPhase = '' 66 + mkdir -p $out/share/srb2 67 + cp -r *pk3 *dta *dat models/ $out/share/srb2/ 68 + ''; 69 + }; 70 + 59 71 cmakeFlags = [ 60 - "-DSRB2_ASSET_DIRECTORY=/build/source/assets" 72 + "-DSRB2_ASSET_DIRECTORY=${finalAttrs.assets}/share/srb2" 61 73 "-DGME_INCLUDE_DIR=${game-music-emu}/include" 62 74 "-DOPENMPT_INCLUDE_DIR=${libopenmpt.dev}/include" 63 75 "-DSDL2_MIXER_INCLUDE_DIR=${lib.getDev SDL2_mixer}/include/SDL2" 64 - "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2}/include/SDL2" 76 + "-DSDL2_INCLUDE_DIR=${lib.getDev SDL2.dev}/include/SDL2" 65 77 ]; 66 78 67 79 patches = [ 68 - ./wadlocation.patch 80 + # Fix unknown command "CPMAddPackage" by not using Ccache.cmake 81 + ./cmake.patch 69 82 ]; 70 83 71 - postPatch = '' 72 - substituteInPlace src/sdl/i_system.c \ 73 - --replace '@wadlocation@' $out 74 - ''; 84 + desktopItems = [ 85 + (makeDesktopItem rec { 86 + name = "Sonic Robo Blast 2"; 87 + exec = finalAttrs.pname; 88 + icon = finalAttrs.pname; 89 + comment = finalAttrs.meta.description; 90 + desktopName = name; 91 + genericName = name; 92 + categories = [ "Game" ]; 93 + }) 94 + ]; 75 95 76 - preConfigure = '' 77 - 7z x ${assets} -o"/build/source/assets" -aos 78 - 7z x ${assets_optional} -o"/build/source/assets" -aos 79 - ''; 96 + installPhase = '' 97 + mkdir -p $out/bin $out/share/applications $out/share/pixmaps $out/share/icons 98 + 99 + copyDesktopItems 100 + 101 + cp ../srb2.png $out/share/pixmaps/. 102 + cp ../srb2.png $out/share/icons/. 80 103 81 - postInstall = '' 82 - mkdir $out/bin 83 - mv $out/lsdlsrb2-${version} $out/bin/srb2 104 + cp bin/lsdlsrb2 $out/bin/srb2 105 + wrapProgram $out/bin/srb2 --set SRB2WADDIR "${finalAttrs.assets}/share/srb2" 84 106 ''; 85 107 86 108 meta = with lib; { ··· 88 110 homepage = "https://www.srb2.org/"; 89 111 platforms = platforms.linux; 90 112 license = licenses.gpl2Plus; 91 - maintainers = with maintainers; [ zeratax ]; 113 + maintainers = with maintainers; [ zeratax donovanglover ]; 92 114 }; 93 - } 115 + })
-72
pkgs/games/srb2/wadlocation.patch
··· 1 - diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c 2 - index 10c0747bf..861f00728 100644 3 - --- a/src/sdl/i_system.c 4 - +++ b/src/sdl/i_system.c 5 - @@ -145,13 +145,7 @@ int TimeFunction(int requested_frequency); 6 - 7 - // Locations for searching the srb2.pk3 8 - #if defined (__unix__) || defined(__APPLE__) || defined (UNIXCOMMON) 9 - -#define DEFAULTWADLOCATION1 "/usr/local/share/games/SRB2" 10 - -#define DEFAULTWADLOCATION2 "/usr/local/games/SRB2" 11 - -#define DEFAULTWADLOCATION3 "/usr/share/games/SRB2" 12 - -#define DEFAULTWADLOCATION4 "/usr/games/SRB2" 13 - -#define DEFAULTSEARCHPATH1 "/usr/local/games" 14 - -#define DEFAULTSEARCHPATH2 "/usr/games" 15 - -#define DEFAULTSEARCHPATH3 "/usr/local" 16 - +#define DEFAULTWADLOCATION1 "@wadlocation@" 17 - #elif defined (_WIN32) 18 - #define DEFAULTWADLOCATION1 "c:\\games\\srb2" 19 - #define DEFAULTWADLOCATION2 "\\games\\srb2" 20 - @@ -2812,34 +2806,6 @@ static const char *locateWad(void) 21 - if (((envstr = I_GetEnv("SRB2WADDIR")) != NULL) && isWadPathOk(envstr)) 22 - return envstr; 23 - 24 - -#ifndef NOCWD 25 - - I_OutputMsg(",."); 26 - - // examine current dir 27 - - strcpy(returnWadPath, "."); 28 - - if (isWadPathOk(returnWadPath)) 29 - - return NULL; 30 - -#endif 31 - - 32 - - 33 - -#ifdef CMAKECONFIG 34 - -#ifndef NDEBUG 35 - - I_OutputMsg(","CMAKE_ASSETS_DIR); 36 - - strcpy(returnWadPath, CMAKE_ASSETS_DIR); 37 - - if (isWadPathOk(returnWadPath)) 38 - - { 39 - - return returnWadPath; 40 - - } 41 - -#endif 42 - -#endif 43 - - 44 - -#ifdef __APPLE__ 45 - - OSX_GetResourcesPath(returnWadPath); 46 - - I_OutputMsg(",%s", returnWadPath); 47 - - if (isWadPathOk(returnWadPath)) 48 - - { 49 - - return returnWadPath; 50 - - } 51 - -#endif 52 - 53 - // examine default dirs 54 - #ifdef DEFAULTWADLOCATION1 55 - @@ -2884,16 +2850,7 @@ static const char *locateWad(void) 56 - if (isWadPathOk(returnWadPath)) 57 - return returnWadPath; 58 - #endif 59 - -#ifndef NOHOME 60 - - // find in $HOME 61 - - I_OutputMsg(",HOME"); 62 - - if ((envstr = I_GetEnv("HOME")) != NULL) 63 - - { 64 - - WadPath = searchWad(envstr); 65 - - if (WadPath) 66 - - return WadPath; 67 - - } 68 - -#endif 69 - + 70 - #ifdef DEFAULTSEARCHPATH1 71 - // find in /usr/local 72 - I_OutputMsg(", in:"DEFAULTSEARCHPATH1);