summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoréclairevoyant <848000+eclairevoyant@users.noreply.github.com>2024-05-22 14:28:02 +0000
committerGitHub <noreply@github.com>2024-05-22 14:28:02 +0000
commitffb9257caa8c9f1a74cc6761bbe5f6b80dd2ead5 (patch)
tree79dfc74724a0e77f3ee3171ddb1a22be2abd575d
parentMerge pull request #313649 from f2k1de/graylog-5.1.13 (diff)
parentfurmark: init at 2.3.0.0 (diff)
downloadnixpkgs-ffb9257caa8c9f1a74cc6761bbe5f6b80dd2ead5.tar.gz
Merge pull request #290458 from surfaceflinger/furmark-init
furmark: init at 2.3.0.0
-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 000000000000..89aad3bdb2af
--- /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;
+ };
+})