diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index dc802488d9fb..3242041cde63 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -29332,6 +29332,11 @@ githubId = 115360611; name = "Wölfchen"; }; + w1lldu = { + name = "William Du"; + github = "w1lldu"; + githubId = 70287641; + }; waelwindows = { email = "waelwindows9922@gmail.com"; github = "Waelwindows"; diff --git a/pkgs/by-name/fu/furmark/package.nix b/pkgs/by-name/fu/furmark/package.nix index c4a4f2b18e62..ef5e9acf6540 100644 --- a/pkgs/by-name/fu/furmark/package.nix +++ b/pkgs/by-name/fu/furmark/package.nix @@ -9,6 +9,7 @@ libxcrypt-legacy, makeDesktopItem, makeWrapper, + p7zip, stdenv, testers, vulkan-loader, @@ -18,25 +19,31 @@ let description = "OpenGL and Vulkan Benchmark and Stress Test"; versions = { - "x86_64-linux" = "2.3.0.0"; - "aarch64-linux" = "2.3.0.0"; + "x86_64-linux" = "2.10.2"; + "aarch64-linux" = "2.10.1"; "i686-linux" = "2.0.16"; }; sources = { "x86_64-linux" = { - url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.x86_64-linux}_linux64.zip"; - hash = "sha256-9xwnOo8gh6XlX2uTwvEorXsx9FafaeCyCPPPJLJGeuE="; + url = "https://gpumagick.com/downloads/files/2025/fm2/2_10_dbc69dd0a08da5ff09169a4fc759ddaa/FurMark_${versions.x86_64-linux}_linux64.7z"; + hash = "sha256-s9AEj9r7kBhPGPU365HgxS9tEyrm7UjLtoxD21pCrts="; }; "aarch64-linux" = { - url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.x86_64-linux}_rpi64.zip"; - hash = "sha256-az4prQbg9I+6rt2y1OTy3t21/VHyZS++57r4Ahe3fcQ="; + url = "https://gpumagick.com/downloads/files/2025/fm2/2_10_dbc69dd0a08da5ff09169a4fc759ddaa/FurMark_${versions.aarch64-linux}_arm64.7z"; + hash = "sha256-XQuK6UgZOjwqpENkHVYsoiG9zyZAbNjR+65hj9dvAY8="; }; "i686-linux" = { url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.i686-linux}_linux32.zip"; hash = "sha256-yXd90FgL3WbTga5x0mXT40BonA2NQtqLzRVzn4s4lLc="; }; }; + + is7z = + (stdenv.hostPlatform.system == "x86_64-linux") || (stdenv.hostPlatform.system == "aarch64-linux"); + + linkLogs = + (stdenv.hostPlatform.system == "x86_64-linux") || (stdenv.hostPlatform.system == "aarch64-linux"); in stdenv.mkDerivation (finalAttrs: { pname = "furmark"; @@ -44,12 +51,13 @@ stdenv.mkDerivation (finalAttrs: { versions.${stdenv.hostPlatform.system} or (throw "Furmark is not available on ${stdenv.hostPlatform.system}"); - src = fetchzip sources.${stdenv.hostPlatform.system}; + src = fetchurl sources.${stdenv.hostPlatform.system}; nativeBuildInputs = [ autoPatchelfHook copyDesktopItems makeWrapper + p7zip ]; buildInputs = [ @@ -58,12 +66,29 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ libxcrypt-legacy ]; + unpackPhase = '' + runHook preUnpack + 7z x $src + '' + + lib.optionalString is7z '' + mv FurMark_linux64/* . + rmdir FurMark_linux64 + '' + + '' + runHook postUnpack + ''; + installPhase = '' runHook preInstall mkdir -p $out/share/furmark cp -rp * $out/share/furmark - + '' + + lib.optionalString linkLogs '' + ln -sf /tmp/furmark-geexlab.log $out/share/furmark/_geexlab_log.txt + ln -sf /tmp/furmark-furmark.log $out/share/furmark/_furmark_log.txt + '' + + '' mkdir -p $out/bin for i in $(find $out/share/furmark -maxdepth 1 -type f -executable); do ln -s "$i" "$out/bin/$(basename "$i")" @@ -103,7 +128,10 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://www.geeks3d.com/furmark/v2/"; license = lib.licenses.unfree; mainProgram = "FurMark_GUI"; - maintainers = with lib.maintainers; [ surfaceflinger ]; + maintainers = with lib.maintainers; [ + surfaceflinger + w1lldu + ]; platforms = [ "aarch64-linux" "i686-linux"