Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 77 lines 1.9 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 autoPatchelfHook, 6 addDriverRunpath, 7 makeWrapper, 8 ocl-icd, 9 vulkan-loader, 10}: 11 12let 13 inherit (stdenv.hostPlatform.uname) processor; 14 version = "6.4.0"; 15 sources = { 16 "x86_64-linux" = { 17 url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz"; 18 hash = "sha256-Q4MwU3dIFheKKSMxzCBZI8XoForaN41BuRGVMhJaUKw="; 19 }; 20 "aarch64-linux" = { 21 url = "https://cdn.geekbench.com/Geekbench-${version}-LinuxARMPreview.tar.gz"; 22 hash = "sha256-PZ95w2X4sqTLZGZ5wygt7WjSK4Gfgtdh/UCPo+8Ysc8="; 23 }; 24 }; 25 geekbench_avx2 = lib.optionalString stdenv.hostPlatform.isx86_64 "geekbench_avx2"; 26in 27stdenv.mkDerivation { 28 inherit version; 29 pname = "geekbench"; 30 31 src = fetchurl ( 32 sources.${stdenv.system} or (throw "unsupported system ${stdenv.hostPlatform.system}") 33 ); 34 35 dontConfigure = true; 36 dontBuild = true; 37 38 nativeBuildInputs = [ 39 autoPatchelfHook 40 makeWrapper 41 ]; 42 43 buildInputs = [ (lib.getLib stdenv.cc.cc) ]; 44 45 installPhase = '' 46 runHook preInstall 47 48 mkdir -p $out/bin 49 cp -r geekbench.plar geekbench-workload.plar geekbench6 geekbench_${processor} ${geekbench_avx2} $out/bin 50 51 for f in geekbench6 geekbench_${processor} ${geekbench_avx2} ; do 52 wrapProgram $out/bin/$f \ 53 --prefix LD_LIBRARY_PATH : "${ 54 lib.makeLibraryPath [ 55 addDriverRunpath.driverLink 56 ocl-icd 57 vulkan-loader 58 ] 59 }" 60 done 61 62 runHook postInstall 63 ''; 64 65 meta = { 66 description = "Cross-platform benchmark"; 67 homepage = "https://geekbench.com/"; 68 sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; 69 license = lib.licenses.unfree; 70 maintainers = with lib.maintainers; [ 71 michalrus 72 asininemonkey 73 ]; 74 platforms = builtins.attrNames sources; 75 mainProgram = "geekbench6"; 76 }; 77}