Hi,

I made a snap [1] package for the RTL-SDR tools.
The package has "strict" confinement, which allows installing it on
any supported distro.

I tested it on Ubuntu 21.10 (on amd64) and Ubuntu Core on a Raspberry
Pi (my main use case for the packaging is to be able to run rtl_tcp on
the latter).

Would you consider merging this to the repo and possibly publishing
snap packages on the Snap Store as part of the regular release
process?

Cheers,
-Alberto

[1] https://snapcraft.io/docs
1151cefee503223dacfc6cc3e46c81f781b77a15 add snap package
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
new file mode 100644
index 0000000..c7b76c8
--- /dev/null
+++ b/snap/snapcraft.yaml
@@ -0,0 +1,90 @@
+name: rtl-sdr
+summary: Tools for RTL2832 based SDR receivers
+description: |
+  Turns your Realtek RTL2832 based DVB dongle into a SDR receiver.
+
+  For more information see:
+  https://osmocom.org/projects/rtl-sdr/wiki
+license: GPL-2.0
+confinement: strict
+grade: stable
+base: core20
+adopt-info: rtl-sdr
+
+apps:
+  adsb:
+    command: usr/bin/rtl_adsb
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+  blast:
+    command: usr/bin/rtl_biast
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+  eeprom:
+    command: usr/bin/rtl_eeprom
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+  fm:
+    command: usr/bin/rtl_fm
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+  power:
+    command: usr/bin/rtl_power
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+  sdr:
+    command: usr/bin/rtl_sdr
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+  tcp:
+    command: usr/bin/rtl_tcp
+    plugs:
+      - home
+      - network-bind
+      - raw-usb
+
+  test:
+    command: usr/bin/rtl_test
+    plugs:
+      - home
+      - network-observe
+      - raw-usb
+
+parts:
+  rtl-sdr:
+    plugin: cmake
+    source: .
+    source-type: git
+    cmake-parameters:
+      - -DCMAKE_INSTALL_PREFIX=/usr
+      - -DDETACH_KERNEL_DRIVER=ON
+      - -DENABLE_ZEROCOPY=ON
+    build-packages:
+      - pkg-config
+      - libusb-1.0-0-dev
+    stage-packages:
+      - libusb-1.0-0
+    override-build: |
+      snapcraftctl build
+      snapcraftctl set-version $(git -C $SNAPCRAFT_PART_SRC describe --tags HEAD)
+    prime:
+      - usr/bin/
+      - usr/lib/*/librtlsdr.so*
+      - lib/*/libusb-*.so*

Reply via email to