nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 87 lines 2.3 kB view raw
1{ 2 stdenv, 3 lib, 4 fetchurl, 5 autoPatchelfHook, 6 udev, 7 libusb1, 8}: 9let 10 arch = 11 if stdenv.hostPlatform.isx86_64 then 12 "x86_64" 13 else if stdenv.hostPlatform.isi686 then 14 "i686" 15 else if stdenv.hostPlatform.isAarch64 then 16 "aarch64" 17 else 18 throw "unsupported architecture"; 19 20 version = "3.07.1"; 21 22 srcs = rec { 23 aarch64 = { 24 url = "https://www.sdrplay.com/software/SDRplay_RSP_API-ARM64-${version}.run"; 25 hash = "sha256-GJPFW6W8Ke4mnczcSLFYfioOMGCfFn2/EIA07VnmVGY="; 26 }; 27 28 x86_64 = { 29 url = "https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${version}.run"; 30 sha256 = "1a25c7rsdkcjxr7ffvx2lwj7fxdbslg9qhr8ghaq1r53rcrqgzmf"; 31 }; 32 33 i686 = x86_64; 34 }; 35in 36stdenv.mkDerivation rec { 37 pname = "sdrplay"; 38 inherit version; 39 40 src = fetchurl srcs."${arch}"; 41 42 nativeBuildInputs = [ autoPatchelfHook ]; 43 44 buildInputs = [ 45 libusb1 46 udev 47 (lib.getLib stdenv.cc.cc) 48 ]; 49 50 unpackPhase = '' 51 sh "$src" --noexec --target source 52 ''; 53 54 sourceRoot = "source"; 55 56 dontBuild = true; 57 58 installPhase = '' 59 mkdir -p $out/{bin,lib,include,lib/udev/rules.d} 60 majorVersion="${lib.concatStringsSep "." (lib.take 1 (builtins.splitVersion version))}" 61 majorMinorVersion="${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}" 62 libName="libsdrplay_api" 63 cp "${arch}/$libName.so.$majorMinorVersion" $out/lib/ 64 ln -s "$out/lib/$libName.so.$majorMinorVersion" "$out/lib/$libName.so.$majorVersion" 65 ln -s "$out/lib/$libName.so.$majorVersion" "$out/lib/$libName.so" 66 cp "${arch}/sdrplay_apiService" $out/bin/ 67 cp -r inc/* $out/include/ 68 cp 66-mirics.rules $out/lib/udev/rules.d/ 69 ''; 70 71 meta = with lib; { 72 description = "SDRplay API"; 73 longDescription = '' 74 Proprietary library and api service for working with SDRplay devices. For documentation and licensing details see 75 https://www.sdrplay.com/docs/SDRplay_API_Specification_v${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}.pdf 76 ''; 77 homepage = "https://www.sdrplay.com/downloads/"; 78 sourceProvenance = with sourceTypes; [ binaryNativeCode ]; 79 license = licenses.unfree; 80 maintainers = with maintainers; [ 81 pmenke 82 zaninime 83 ]; 84 platforms = platforms.linux; 85 mainProgram = "sdrplay_apiService"; 86 }; 87}