anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / radio / rtl-sdr / default.nix
blob6cb25feb980b8030ae8f30ec46e2ce45d0b6624f
1 { lib
2 , stdenv
3 , fetchFromGitea
4 , fetchFromGitHub
5 , cmake
6 , pkg-config
7 , libusb1
8 }:
9 let
10   generic = { version, pname, src, meta }:
11     stdenv.mkDerivation {
12       inherit version pname src;
13       nativeBuildInputs = [ pkg-config cmake ];
14       propagatedBuildInputs = [ libusb1 ];
16       cmakeFlags = lib.optionals stdenv.hostPlatform.isLinux [
17         "-DINSTALL_UDEV_RULES=ON"
18         "-DWITH_RPC=ON"
19       ];
21       postPatch = ''
22         substituteInPlace CMakeLists.txt \
23           --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d" \
24           --replace "VERSION_INFO_PATCH_VERSION git" "VERSION_INFO_PATCH_VERSION ${lib.versions.patch version}"
26         substituteInPlace rtl-sdr.rules \
27           --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
28       '';
30       meta = with lib; {
31         inherit (meta) longDescription homepage;
32         description = "Software to turn the RTL2832U into a SDR receiver";
33         license = licenses.gpl2Plus;
34         maintainers = with maintainers; [ bjornfor skovati Tungsten842 ];
35         platforms = platforms.unix;
36         mainProgram = "rtl_sdr";
37       };
38     };
41   rtl-sdr-osmocom = generic rec {
42     pname = "rtl-sdr-osmocom";
43     version = "2.0.1";
45     src = fetchFromGitea {
46       domain = "gitea.osmocom.org";
47       owner = "sdr";
48       repo = "rtl-sdr";
49       rev = "v${version}";
50       hash = "sha256-+RYSCn+wAkb9e7NRI5kLY8a6OXtJu7QcSUht1R6wDX0=";
51     };
52     meta = {
53       longDescription = "Rtl-sdr library by the Osmocom project";
54       homepage = "https://gitea.osmocom.org/sdr/rtl-sdr";
55     };
56   };
58   rtl-sdr-librtlsdr = generic rec {
59     pname = "rtl-sdr-librtlsdr";
60     version = "0.9.0";
62     src = fetchFromGitHub {
63       owner = "librtlsdr";
64       repo = "librtlsdr";
65       rev = "v${version}";
66       hash = "sha256-I1rbywQ0ZBw26wZdtMBkfpj7+kv09XKrrcoDuhIkRmw=";
67     };
68     meta = {
69       longDescription = ''
70         Fork of the rtl-sdr library by the Osmocom project. A list of differences
71         can be found here: https://github.com/librtlsdr/librtlsdr/blob/master/README_improvements.md
72       '';
73       homepage = "https://github.com/librtlsdr/librtlsdr";
74     };
75   };
77   rtl-sdr-blog = generic rec {
78     pname = "rtl-sdr-blog";
79     version = "1.3.5";
81     src = fetchFromGitHub {
82       owner = "rtlsdrblog";
83       repo = "rtl-sdr-blog";
84       rev = version;
85       hash = "sha256-7FpT+BoQ2U8KiKwX4NfEwrO3lMBti7RX8uKtT5dFH8M=";
86     };
87     meta = {
88       longDescription = ''
89         Fork of the rtl-sdr library by the Osmocom project. A list of differences
90         can be found here: https://github.com/rtlsdrblog/rtl-sdr-blog/blob/master/README
91       '';
92       homepage = "https://github.com/rtlsdrblog/rtl-sdr-blog";
93     };
94   };