about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix b/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix
new file mode 100644
index 000000000000..aedc847ee69f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/rtl-sdr/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, lib, fetchpatch, fetchgit, cmake, pkgconfig, libusb1 }:
+
+stdenv.mkDerivation rec {
+  name = "rtl-sdr-${version}";
+  version = "0.6.0";
+
+  src = fetchgit {
+    url = "git://git.osmocom.org/rtl-sdr.git";
+    rev = "refs/tags/${version}";
+    sha256 = "0lmvsnb4xw4hmz6zs0z5ilsah5hjz29g1s0050n59fllskqr3b8k";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ cmake libusb1 ];
+
+  # TODO: get these fixes upstream:
+  # * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
+  #   /etc/udev/rules.d/, and there is no option to install elsewhere. So install
+  #   rules manually.
+  # * Propagate libusb-1.0 dependency in pkg-config file.
+  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+    mkdir -p "$out/etc/udev/rules.d/"
+    cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules"
+
+    pcfile="$out"/lib/pkgconfig/librtlsdr.pc
+    grep -q "Requires:" "$pcfile" && { echo "Upstream has added 'Requires:' in $(basename "$pcfile"); update nix expression."; exit 1; }
+    echo "Requires: libusb-1.0" >> "$pcfile"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
+    homepage = http://sdr.osmocom.org/trac/wiki/rtl-sdr;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}