nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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}