about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorTungsten842 <886724vf@anonaddy.me>2024-04-14 17:48:34 +0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2024-04-16 20:55:35 +0200
commita1080ded576e7abdaa87a4a35fcd49566a2969f2 (patch)
tree6c406a44aed6a4278ff1b6a598c5f8ff53bc4c9d /pkgs
parentbe365f9dc9fcf15ba010eca6debaea73368693f1 (diff)
rtl-sdr: refactor, add rtl-sdr-blog and set it as default
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/radio/rtl-sdr/default.nix107
-rw-r--r--pkgs/by-name/rt/rtl-sdr-osmocom/package.nix53
-rw-r--r--pkgs/top-level/all-packages.nix7
3 files changed, 85 insertions, 82 deletions
diff --git a/pkgs/applications/radio/rtl-sdr/default.nix b/pkgs/applications/radio/rtl-sdr/default.nix
index 0d454e0be436a..1b08033f31bba 100644
--- a/pkgs/applications/radio/rtl-sdr/default.nix
+++ b/pkgs/applications/radio/rtl-sdr/default.nix
@@ -1,45 +1,96 @@
 { lib
 , stdenv
+, fetchFromGitea
 , fetchFromGitHub
 , cmake
 , pkg-config
 , libusb1
 }:
+let
+  generic = { version, pname, src, meta }:
+    stdenv.mkDerivation {
+      inherit version pname src;
+      nativeBuildInputs = [ pkg-config cmake ];
+      propagatedBuildInputs = [ libusb1 ];
 
-stdenv.mkDerivation rec {
-  pname = "rtl-sdr";
-  version = "0.9.0";
+      cmakeFlags = lib.optionals stdenv.isLinux [
+        "-DINSTALL_UDEV_RULES=ON"
+        "-DWITH_RPC=ON"
+      ];
 
-  src = fetchFromGitHub {
-    owner = "librtlsdr";
-    repo = "librtlsdr";
-    rev = "v${version}";
-    hash = "sha256-I1rbywQ0ZBw26wZdtMBkfpj7+kv09XKrrcoDuhIkRmw=";
-  };
+      postPatch = ''
+        substituteInPlace CMakeLists.txt \
+          --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d" \
+          --replace "VERSION_INFO_PATCH_VERSION git" "VERSION_INFO_PATCH_VERSION ${lib.versions.patch version}"
 
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d" \
-      --replace "VERSION_INFO_PATCH_VERSION git" "VERSION_INFO_PATCH_VERSION ${lib.versions.patch version}"
+        substituteInPlace rtl-sdr.rules \
+          --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
+      '';
 
-    substituteInPlace rtl-sdr.rules \
-      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
-  '';
+      meta = with lib; {
+        inherit (meta) longDescription homepage;
+        description = "Software to turn the RTL2832U into a SDR receiver";
+        license = licenses.gpl2Plus;
+        maintainers = with maintainers; [ bjornfor skovati ];
+        platforms = platforms.unix;
+        mainProgram = "rtl_sdr";
+      };
+    };
+in
+{
+  rtl-sdr-osmocom = generic rec {
+    pname = "rtl-sdr-osmocom";
+    version = "2.0.1";
 
-  nativeBuildInputs = [ pkg-config cmake ];
+    src = fetchFromGitea {
+      domain = "gitea.osmocom.org";
+      owner = "sdr";
+      repo = "rtl-sdr";
+      rev = "v${version}";
+      hash = "sha256-+RYSCn+wAkb9e7NRI5kLY8a6OXtJu7QcSUht1R6wDX0=";
+    };
+    meta = {
+      longDescription = "Rtl-sdr library by the Osmocom project";
+      homepage = "https://gitea.osmocom.org/sdr/rtl-sdr";
+    };
+  };
 
-  propagatedBuildInputs = [ libusb1 ];
+  rtl-sdr-librtlsdr = generic rec {
+    pname = "rtl-sdr-librtlsdr";
+    version = "0.9.0";
 
-  cmakeFlags = lib.optionals stdenv.isLinux [
-    "-DINSTALL_UDEV_RULES=ON"
-    "-DWITH_RPC=ON"
-  ];
+    src = fetchFromGitHub {
+      owner = "librtlsdr";
+      repo = "librtlsdr";
+      rev = "v${version}";
+      hash = "sha256-I1rbywQ0ZBw26wZdtMBkfpj7+kv09XKrrcoDuhIkRmw=";
+    };
+    meta = {
+      longDescription = ''
+        Fork of the rtl-sdr library by the Osmocom project. A list of differences
+        can be found here: https://github.com/librtlsdr/librtlsdr/blob/master/README_improvements.md
+      '';
+      homepage = "https://github.com/librtlsdr/librtlsdr";
+    };
+  };
 
-  meta = with lib; {
-    description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
-    homepage = "https://github.com/librtlsdr/librtlsdr";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ bjornfor ];
-    platforms = platforms.linux ++ platforms.darwin;
+  rtl-sdr-blog = generic rec {
+    pname = "rtl-sdr-blog";
+    version = "1.3.5";
+
+    src = fetchFromGitHub {
+      owner = "rtlsdrblog";
+      repo = "rtl-sdr-blog";
+      rev = version;
+      hash = "sha256-7FpT+BoQ2U8KiKwX4NfEwrO3lMBti7RX8uKtT5dFH8M=";
+    };
+    meta = {
+      longDescription = ''
+        Fork of the rtl-sdr library by the Osmocom project. A list of differences
+        can be found here: https://github.com/rtlsdrblog/rtl-sdr-blog/blob/master/README
+      '';
+      homepage = "https://github.com/rtlsdrblog/rtl-sdr-blog";
+    };
   };
+
 }
diff --git a/pkgs/by-name/rt/rtl-sdr-osmocom/package.nix b/pkgs/by-name/rt/rtl-sdr-osmocom/package.nix
deleted file mode 100644
index 9f88ebd503a43..0000000000000
--- a/pkgs/by-name/rt/rtl-sdr-osmocom/package.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitea
-, cmake
-, pkg-config
-, libusb1
-}:
-
-stdenv.mkDerivation rec {
-  pname = "rtl-sdr-osmocom";
-  version = "2.0.1";
-
-  src = fetchFromGitea {
-    domain = "gitea.osmocom.org";
-    owner = "sdr";
-    repo = "rtl-sdr";
-    rev = "v${version}";
-    hash = "sha256-+RYSCn+wAkb9e7NRI5kLY8a6OXtJu7QcSUht1R6wDX0=";
-  };
-
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace '/etc/udev/rules.d' "$out/etc/udev/rules.d" \
-      --replace "VERSION_INFO_PATCH_VERSION git" "VERSION_INFO_PATCH_VERSION ${lib.versions.patch version}"
-
-    substituteInPlace rtl-sdr.rules \
-      --replace 'MODE:="0666"' 'ENV{ID_SOFTWARE_RADIO}="1", MODE="0660", GROUP="plugdev"'
-  '';
-
-  nativeBuildInputs = [ pkg-config cmake ];
-
-  propagatedBuildInputs = [ libusb1 ];
-
-  cmakeFlags = lib.optionals stdenv.isLinux [
-    "-DINSTALL_UDEV_RULES=ON"
-    "-DWITH_RPC=ON"
-  ];
-
-  meta = with lib; {
-    description = "Software to turn the RTL2832U into a SDR receiver";
-    longDescription = ''
-    This packages the rtl-sdr library by the Osmocom project. This is the upstream codebase of the unsuffixed "rtl-sdr" package, which is a downstream fork. A list of differences can be found here:
-    https://github.com/librtlsdr/librtlsdr/blob/master/README_improvements.md
-
-    The Osmocom upstream has a regular release schedule, so this package will likely support newer SDR dongles. It should be compatible with most software that currently depends on the "rtl-sdr" nixpkg, but comptabiliy should be manually confirmed.
-    '';
-    homepage = "https://gitea.osmocom.org/sdr/rtl-sdr";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ skovati ];
-    platforms = platforms.unix;
-    mainProgram = "rtl_sdr";
-  };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0c0b46ffaeadc..445e320dec986 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -34417,7 +34417,12 @@ with pkgs;
 
   rtl-ais = callPackage ../applications/radio/rtl-ais { };
 
-  rtl-sdr = callPackage ../applications/radio/rtl-sdr { };
+  inherit (callPackages ../applications/radio/rtl-sdr { })
+    rtl-sdr-librtlsdr
+    rtl-sdr-osmocom
+    rtl-sdr-blog;
+
+  rtl-sdr = rtl-sdr-blog;
 
   rubyripper = callPackage ../applications/audio/rubyripper { };