python312Packages.powerfox: init at 1.1.0 (#371207)
[NixPkgs.git] / pkgs / by-name / sd / sdrplay / package.nix
blobc3532f5fe4eaf9e4d8d1441193e0e02e3e17f05a
2   stdenv,
3   lib,
4   fetchurl,
5   autoPatchelfHook,
6   udev,
7   libusb1,
8 }:
9 let
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";
20   version = "3.07.1";
22   srcs = rec {
23     aarch64 = {
24       url = "https://www.sdrplay.com/software/SDRplay_RSP_API-ARM64-${version}.run";
25       hash = "sha256-GJPFW6W8Ke4mnczcSLFYfioOMGCfFn2/EIA07VnmVGY=";
26     };
28     x86_64 = {
29       url = "https://www.sdrplay.com/software/SDRplay_RSP_API-Linux-${version}.run";
30       sha256 = "1a25c7rsdkcjxr7ffvx2lwj7fxdbslg9qhr8ghaq1r53rcrqgzmf";
31     };
33     i686 = x86_64;
34   };
36 stdenv.mkDerivation rec {
37   pname = "sdrplay";
38   inherit version;
40   src = fetchurl srcs."${arch}";
42   nativeBuildInputs = [ autoPatchelfHook ];
44   buildInputs = [
45     libusb1
46     udev
47     (lib.getLib stdenv.cc.cc)
48   ];
50   unpackPhase = ''
51     sh "$src" --noexec --target source
52   '';
54   sourceRoot = "source";
56   dontBuild = true;
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   '';
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   };