chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / fu / furmark / package.nix
blobadc2f9dc66d410086650bbcecdf28c71e1782f81
2   autoPatchelfHook,
3   copyDesktopItems,
4   fetchurl,
5   fetchzip,
6   lib,
7   libGL,
8   libGLU,
9   libxcrypt-legacy,
10   makeDesktopItem,
11   makeWrapper,
12   stdenv,
13   testers,
14   vulkan-loader,
17 let
18   description = "OpenGL and Vulkan Benchmark and Stress Test";
20   versions = {
21     "x86_64-linux" = "2.3.0.0";
22     "aarch64-linux" = "2.3.0.0";
23     "i686-linux" = "2.0.16";
24   };
26   sources = {
27     "x86_64-linux" = {
28       url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.x86_64-linux}_linux64.zip";
29       hash = "sha256-9xwnOo8gh6XlX2uTwvEorXsx9FafaeCyCPPPJLJGeuE=";
30     };
31     "aarch64-linux" = {
32       url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.x86_64-linux}_rpi64.zip";
33       hash = "sha256-az4prQbg9I+6rt2y1OTy3t21/VHyZS++57r4Ahe3fcQ=";
34     };
35     "i686-linux" = {
36       url = "https://gpumagick.com/downloads/files/2024/furmark2/FurMark_${versions.i686-linux}_linux32.zip";
37       hash = "sha256-yXd90FgL3WbTga5x0mXT40BonA2NQtqLzRVzn4s4lLc=";
38     };
39   };
41 stdenv.mkDerivation (finalAttrs: {
42   pname = "furmark";
43   version =
44     versions.${stdenv.hostPlatform.system}
45       or (throw "Furmark is not available on ${stdenv.hostPlatform.system}");
47   src = fetchzip sources.${stdenv.hostPlatform.system};
49   nativeBuildInputs = [
50     autoPatchelfHook
51     copyDesktopItems
52     makeWrapper
53   ];
55   buildInputs = [
56     libGL
57     libGLU
58   ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ libxcrypt-legacy ];
60   installPhase = ''
61     runHook preInstall
63     mkdir -p $out/share/furmark
64     cp -rp * $out/share/furmark
66     mkdir -p $out/bin
67     for i in $(find $out/share/furmark -maxdepth 1 -type f -executable); do
68       ln -s "$i" "$out/bin/$(basename "$i")"
69     done
71     runHook postInstall
72   '';
74   appendRunpaths = [ (lib.makeLibraryPath [ vulkan-loader ]) ];
76   desktopItems = [
77     (makeDesktopItem rec {
78       name = "FurMark";
79       exec = "FurMark_GUI";
80       comment = description;
81       desktopName = name;
82       genericName = name;
83       icon = fetchurl {
84         url = "https://www.geeks3d.com/furmark/i/20240220-furmark-logo-02.png";
85         hash = "sha256-EqhWQgTEmF/2AcqDxgGtr2m5SMYup28hPEhI6ssFw7g=";
86       };
87       categories = [
88         "System"
89         "Monitor"
90       ];
91     })
92   ];
94   passthru = {
95     tests.version = testers.testVersion {
96       package = finalAttrs.finalPackage;
97       command = "furmark --version";
98     };
99   };
101   meta = {
102     homepage = "https://www.geeks3d.com/furmark/v2/";
103     license = lib.licenses.unfree;
104     mainProgram = "FurMark_GUI";
105     maintainers = with lib.maintainers; [ surfaceflinger ];
106     platforms = [
107       "aarch64-linux"
108       "i686-linux"
109       "x86_64-linux"
110     ];
111     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
112     inherit description;
113   };