about summary refs log tree commit diff
path: root/pkgs/by-name/fu
diff options
context:
space:
mode:
authornat <nat@nekopon.pl>2024-02-21 18:03:26 +0100
committernat <nat@nekopon.pl>2024-05-21 11:29:18 +0200
commitef364e690682c8cf913139a3c460e70ef3b82859 (patch)
tree5832c5dd586d0a1be0754b407a64329f4e10a8e6 /pkgs/by-name/fu
parent8e13580044f255e2ac0d922ed197c69913808f45 (diff)
furmark: init at 2.3.0.0
Diffstat (limited to 'pkgs/by-name/fu')
-rw-r--r--pkgs/by-name/fu/furmark/package.nix107
1 files changed, 107 insertions, 0 deletions
diff --git a/pkgs/by-name/fu/furmark/package.nix b/pkgs/by-name/fu/furmark/package.nix
new file mode 100644
index 0000000000000..89aad3bdb2afc
--- /dev/null
+++ b/pkgs/by-name/fu/furmark/package.nix
@@ -0,0 +1,107 @@
+{
+  autoPatchelfHook,
+  copyDesktopItems,
+  fetchzip,
+  lib,
+  libGL,
+  libGLU,
+  libxcrypt-legacy,
+  makeDesktopItem,
+  makeWrapper,
+  stdenv,
+  testers,
+  vulkan-loader,
+}:
+
+let
+  description = "OpenGL and Vulkan Benchmark and Stress Test";
+
+  versions = {
+    "x86_64-linux" = "2.3.0.0";
+    "aarch64-linux" = "2.3.0.0";
+    "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=";
+    };
+    "aarch64-linux" = {
+      url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.x86_64-linux}_rpi64.zip";
+      hash = "sha256-az4prQbg9I+6rt2y1OTy3t21/VHyZS++57r4Ahe3fcQ=";
+    };
+    "i686-linux" = {
+      url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.i686-linux}_linux32.zip";
+      hash = "sha256-yXd90FgL3WbTga5x0mXT40BonA2NQtqLzRVzn4s4lLc=";
+    };
+  };
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "furmark";
+  version = versions.${stdenv.hostPlatform.system};
+
+  src = fetchzip sources.${stdenv.hostPlatform.system};
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    copyDesktopItems
+    makeWrapper
+  ];
+
+  buildInputs = [
+    libGL
+    libGLU
+  ] ++ lib.optionals stdenv.isAarch64 [ libxcrypt-legacy ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/furmark
+    cp -rp * $out/share/furmark
+
+    mkdir -p $out/bin
+    for i in $(find $out/share/furmark -maxdepth 1 -type f -executable); do
+      ln -s "$i" "$out/bin/$(basename "$i")"
+    done
+
+    runHook postInstall
+  '';
+
+  appendRunpaths = [ (lib.makeLibraryPath [ vulkan-loader ]) ];
+
+  desktopItems = [
+    (makeDesktopItem rec {
+      name = "FurMark";
+      exec = "FurMark_GUI";
+      comment = description;
+      desktopName = name;
+      genericName = name;
+      categories = [
+        "System"
+        "Monitor"
+      ];
+    })
+  ];
+
+  passthru = {
+    tests.version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      command = "furmark --version";
+    };
+  };
+
+  meta = {
+    homepage = "https://www.geeks3d.com/furmark/v2/";
+    license = lib.licenses.unfree;
+    mainProgram = "FurMark_GUI";
+    maintainers = with lib.maintainers; [ surfaceflinger ];
+    platforms = [
+      "aarch64-linux"
+      "i686-linux"
+      "x86_64-linux"
+    ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    inherit description;
+  };
+})