From bbc04afa9fcce4ec572708f06878ff4f7276a833 Mon Sep 17 00:00:00 2001 From: William Date: Tue, 5 Nov 2024 13:42:32 -0300 Subject: [PATCH 1/2] cemu: 2.0-92 -> 2.2 --- .../0000-spirv-tools-opt-cmakelists.patch | 4 +- .../ce/cemu/0001-glslang-cmake-target.patch | 13 +++++ pkgs/by-name/ce/cemu/package.nix | 53 ++++++++++++------- 3 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 pkgs/by-name/ce/cemu/0001-glslang-cmake-target.patch diff --git a/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch b/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch index a337484277ef..755d16cd8c7f 100644 --- a/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch +++ b/pkgs/by-name/ce/cemu/0000-spirv-tools-opt-cmakelists.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 4b2b789..48d9be0 100644 +index 54e2012..a9b6b0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -92,6 +92,7 @@ find_package(pugixml REQUIRED) +@@ -149,6 +149,7 @@ find_package(pugixml REQUIRED) find_package(RapidJSON REQUIRED) find_package(Boost COMPONENTS program_options filesystem nowide REQUIRED) find_package(libzip REQUIRED) diff --git a/pkgs/by-name/ce/cemu/0001-glslang-cmake-target.patch b/pkgs/by-name/ce/cemu/0001-glslang-cmake-target.patch new file mode 100644 index 000000000000..af0426bf7d60 --- /dev/null +++ b/pkgs/by-name/ce/cemu/0001-glslang-cmake-target.patch @@ -0,0 +1,13 @@ +diff --git a/src/Cafe/CMakeLists.txt.orig b/src/Cafe/CMakeLists.txt +index 91d257b..cff779a 100644 +--- a/src/Cafe/CMakeLists.txt ++++ b/src/Cafe/CMakeLists.txt +@@ -545,7 +545,7 @@ target_link_libraries(CemuCafe PRIVATE + Boost::nowide + CURL::libcurl + fmt::fmt +- glslang::SPIRV ++ glslang::glslang + ih264d + OpenSSL::Crypto + OpenSSL::SSL diff --git a/pkgs/by-name/ce/cemu/package.nix b/pkgs/by-name/ce/cemu/package.nix index bc99ee2eeb64..061ff28069c9 100644 --- a/pkgs/by-name/ce/cemu/package.nix +++ b/pkgs/by-name/ce/cemu/package.nix @@ -47,15 +47,16 @@ let hash = "sha256-gf47uLeNiXQic43buB5ZnMqiotlUfIyAsP+3H7yJuFg="; }; }; -in stdenv.mkDerivation (finalAttrs: { +in +stdenv.mkDerivation (finalAttrs: { pname = "cemu"; - version = "2.0-92"; + version = "2.2"; src = fetchFromGitHub { owner = "cemu-project"; repo = "Cemu"; rev = "v${finalAttrs.version}"; - hash = "sha256-bjt+2RzmG8iKcdyka4HsHM5NEzCwGah4s9eiywSHXbw="; + hash = "sha256-d4FMAj99SPj5S1p5nAUFNo386ZJvWxOKD9iGxHJYVBI="; }; patches = [ @@ -63,6 +64,7 @@ in stdenv.mkDerivation (finalAttrs: { # > The following imported targets are referenced, but are missing: # > SPIRV-Tools-opt ./0000-spirv-tools-opt-cmakelists.patch + ./0001-glslang-cmake-target.patch ]; nativeBuildInputs = [ @@ -113,15 +115,20 @@ in stdenv.mkDerivation (finalAttrs: { strictDeps = true; - preConfigure = let - tag = lib.last (lib.splitString "-" finalAttrs.version); - in '' - rm -rf dependencies/imgui - # cemu expects imgui source code, not just header files - ln -s ${imgui'.src} dependencies/imgui - substituteInPlace src/Common/version.h --replace-fail " (experimental)" "-${tag} (experimental)" - substituteInPlace dependencies/gamemode/lib/gamemode_client.h --replace-fail "libgamemode.so.0" "${gamemode.lib}/lib/libgamemode.so.0" - ''; + preConfigure = + let + tag = lib.splitString "." (lib.last (lib.splitString "-" finalAttrs.version)); + majorv = builtins.elemAt tag 0; + minorv = builtins.elemAt tag 1; + in + '' + rm -rf dependencies/imgui + # cemu expects imgui source code, not just header files + ln -s ${imgui'.src} dependencies/imgui + substituteInPlace CMakeLists.txt --replace-fail "EMULATOR_VERSION_MAJOR \"0\"" "EMULATOR_VERSION_MAJOR \"${majorv}\"" + substituteInPlace CMakeLists.txt --replace-fail "EMULATOR_VERSION_MINOR \"0\"" "EMULATOR_VERSION_MINOR \"${minorv}\"" + substituteInPlace dependencies/gamemode/lib/gamemode_client.h --replace-fail "libgamemode.so.0" "${gamemode.lib}/lib/libgamemode.so.0" + ''; installPhase = '' runHook preInstall @@ -139,13 +146,15 @@ in stdenv.mkDerivation (finalAttrs: { runHook postInstall ''; - preFixup = let - libs = [ vulkan-loader ] ++ cubeb.passthru.backendLibs; - in '' - gappsWrapperArgs+=( - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libs}" - ) - ''; + preFixup = + let + libs = [ vulkan-loader ] ++ cubeb.passthru.backendLibs; + in + '' + gappsWrapperArgs+=( + --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath libs}" + ) + ''; passthru = { updateScript = nix-update-script { }; @@ -161,7 +170,11 @@ in stdenv.mkDerivation (finalAttrs: { homepage = "https://cemu.info"; license = lib.licenses.mpl20; mainProgram = "cemu"; - maintainers = with lib.maintainers; [ zhaofengli baduhai AndersonTorres ]; + maintainers = with lib.maintainers; [ + zhaofengli + baduhai + AndersonTorres + ]; platforms = [ "x86_64-linux" ]; }; }) From cd31998dc638930be5a199821257d1737717d6f7 Mon Sep 17 00:00:00 2001 From: William Date: Tue, 5 Nov 2024 13:43:39 -0300 Subject: [PATCH 2/2] maintainers: change baduhai's name --- maintainers/maintainer-list.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b14f78609e47..5e90c4605e08 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2351,7 +2351,7 @@ email = "baduhai@pm.me"; github = "baduhai"; githubId = 31864305; - name = "William"; + name = "William Hai"; }; baitinq = { email = "manuelpalenzuelamerino@gmail.com";