summaryrefslogtreecommitdiff
path: root/gnu/packages/radio.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/radio.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r--gnu/packages/radio.scm565
1 files changed, 413 insertions, 152 deletions
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index f4c9d866df..3e5ada8c48 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -2,15 +2,16 @@
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019, 2020 Christopher Howard <christopher@librehacker.com>
;;; Copyright © 2019, 2020 Evan Straw <evan.straw99@gmail.com>
-;;; Copyright © 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020, 2021, 2022, 2023 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Charlie Ritter <chewzerita@posteo.net>
-;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2021 João Pedro Simas <jpsimas@gmail.com>
;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Sheng Yang <styang@fastmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2022 Ryan Tolboom <ryan@using.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -89,6 +90,7 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
@@ -173,7 +175,7 @@ used as a drop-in substitute for @code{libfec}.")
(define-public liquid-dsp
(package
(name "liquid-dsp")
- (version "1.4.0")
+ (version "1.5.0")
(source
(origin (method git-fetch)
(uri (git-reference
@@ -181,21 +183,25 @@ used as a drop-in substitute for @code{libfec}.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0mr86z37yycrqwbrmsiayi1vqrgpjq0pn1c3p1qrngipkw45jnn0"))))
+ (base32 "0m0bhj80rs9yhfwnrlx960lii1cqijz1wr8q93i7m2z91h3v3w0j"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake))
(inputs
(list fftwf libfec))
(arguments
- `(;; For reproducibility, disable use of SSE3, SSE4.1, etc.
- #:configure-flags '("--enable-simdoverride")
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'delete-static-library
- (lambda* (#:key outputs #:allow-other-keys)
- (delete-file (string-append (assoc-ref outputs "out")
- "/lib/libliquid.a")))))))
+ (list
+ ;; For reproducibility, disable use of SSE3, SSE4.1, etc.
+ #:configure-flags #~(list "--enable-simdoverride")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'delete-static-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((version #$(version-major+minor
+ (package-version this-package))))
+ (delete-file (string-append #$output
+ "/lib/libliquid.a."
+ version))))))))
(home-page "https://liquidsdr.org")
(synopsis "Signal processing library for software-defined radios")
(description
@@ -421,33 +427,36 @@ controls for certain tuners which may be paired with an audio device.")
(license license:expat))))
(define-public soapyhackrf
- (package
- (name "soapyhackrf")
- (version "0.3.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pothosware/SoapyHackRF")
- (commit (string-append "soapy-hackrf-" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0wnnsm3c4ivwcbs1b68svbyds13aajws9mqk2xjc2pqgj0fdhcvz"))))
- (build-system cmake-build-system)
- (inputs
- (list hackrf soapysdr))
- (arguments
- `(#:tests? #f)) ; No test suite
- (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
- (synopsis "SoapySDR HackRF module")
- (description
- "This package provides HackRF devices support to the SoapySDR library.")
- (license license:expat)))
+ ;; Some fixes are not yet in a tagged release.
+ (let ((commit "6c0c33f0aa44c3080674e6bca0273184d3e9eb44")
+ (revision "1"))
+ (package
+ (name "soapyhackrf")
+ (version (git-version "0.3.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pothosware/SoapyHackRF")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1khplrp6iphdclj1wrybxs7pw42rf9112fhfhw7x2fvds8yiswm7"))))
+ (build-system cmake-build-system)
+ (inputs
+ (list hackrf soapysdr))
+ (arguments
+ `(#:tests? #f)) ; No test suite
+ (home-page "https://github.com/pothosware/SoapyHackRF/wiki")
+ (synopsis "SoapySDR HackRF module")
+ (description
+ "This package provides HackRF devices support to the SoapySDR library.")
+ (license license:expat))))
(define-public soapyrtlsdr
(package
(name "soapyrtlsdr")
- (version "0.3.2")
+ (version "0.3.3")
(source
(origin
(method git-fetch)
@@ -456,7 +465,7 @@ controls for certain tuners which may be paired with an audio device.")
(commit (string-append "soapy-rtl-sdr-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1dlnryj6k20pk7w7v4v13y099r7ikhvlzbgzgphmi5cxkdv0shrd"))))
+ (base32 "0g1d69lpqw9c8hkir0h61nh40rgyz9p9x04xcfdih7iw26n5vai1"))))
(build-system cmake-build-system)
(inputs
(list rtl-sdr soapysdr))
@@ -468,10 +477,90 @@ controls for certain tuners which may be paired with an audio device.")
"This package provides RTL-SDR devices support to the SoapySDR library.")
(license license:expat)))
+(define-public python-simplesoapy
+ (package
+ (name "python-simplesoapy")
+ (version "1.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "SimpleSoapy" version))
+ (sha256
+ (base32 "0bh02m5zj82mp7sxpvwr24ylmrbp3p4r9q7psqcfnxl628w3b4hl"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ (list python-numpy soapysdr))
+ (home-page "https://github.com/xmikos/simplesoapy")
+ (synopsis "Python wrapper for SoapySDR")
+ (description
+ "This package provide a simple pythonic wrapper for the SoapySDR
+library.")
+ (license license:expat)))
+
+(define-public soapy-power
+ (package
+ (name "soapy-power")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "soapy_power" version))
+ (sha256
+ (base32 "1rajmygcqvv5ph7yk65r4w581lfszrz0f48csvfmma1ami0lirdm"))))
+ (build-system python-build-system)
+ (inputs
+ (list python-numpy
+ python-scipy
+ python-simplesoapy
+ python-simplespectral))
+ (home-page "https://github.com/xmikos/soapy_power")
+ (synopsis "Obtain power spectrum from SDR devices")
+ (description "The @code{soapy_power} obtains the power spectrum from SDR
+devices that are supported by the SoapySDR library.")
+ (license license:expat)))
+
+(define-public qspectrumanalyzer
+ (package
+ (name "qspectrumanalyzer")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "QSpectrumAnalyzer" version))
+ (sha256
+ (base32 "1bhl8zp4z7v3595ailyivx9vb7y5si6kr22aylphb5pf60jxqhn0"))))
+ (build-system python-build-system)
+ (inputs
+ (list bash-minimal
+ python-pyqt
+ python-pyqtgraph
+ python-qt.py
+ python-simplespectral
+ python-simplesoapy
+ soapy-power))
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-path
+ ;; Add the location of the default backend to PATH.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (wrap-program (string-append #$output
+ "/bin/qspectrumanalyzer")
+ `("PATH" ":" prefix
+ (,(string-append (assoc-ref inputs "soapy-power")
+ "/bin")))))))))
+ (home-page "https://github.com/xmikos/qspectrumanalyzer")
+ (synopsis "Spectrum analyzer for multiple SDR platforms")
+ (description
+ "This package provides a spectrum analyzer for multiple SDR platforms.
+It is a GUI for @code{soapy_power}, @code{hackrf_sweep}, @code{rtl_power},
+@code{rx_power} and other backends.")
+ (license license:gpl3)))
+
(define-public aptdec
;; No release since 2013, use commit directly.
- (let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da")
- (revision "2"))
+ (let ((commit "4d4a0c9787a27d1eba26b9299c23ae9c66e56716")
+ (revision "3"))
(package
(name "aptdec")
(version (git-version "1.7" revision commit))
@@ -480,10 +569,11 @@ controls for certain tuners which may be paired with an audio device.")
(method git-fetch)
(uri (git-reference
(url "https://github.com/Xerbo/aptdec")
- (commit commit)))
+ (commit commit)
+ (recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "0fzkhqnbkc2dd39jzb5m5mwcl31b0x3w0yykpx4s195llq4bdvis"))))
+ (base32 "09dvvwk4bs9d4bf9z74ixvhzghwzmlbqbx1dn20hbhpm0bgxwk8m"))))
(build-system cmake-build-system)
(inputs
(list libpng libsndfile))
@@ -798,6 +888,61 @@ primitives for SDR (Software Defined Radio).")
(home-page "https://osmocom.org/projects/libosmo-dsp")
(license license:gpl2+)))
+(define-public gr-dsd
+ ;; The bundled DSD has been modified to bypass the soundcard.
+ (let ((commit "f9b99360b9b15a568befec1b8cc262f7806898e9")
+ (revision "0"))
+ (package
+ (name "gr-dsd")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/argilo/gr-dsd")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1axxb8jdbjbf69csp17gpfis8id66ijjrqp2wbyvz1p66m0svldr"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list cppunit
+ doxygen
+ pkg-config
+ pybind11
+ python-numpy))
+ (inputs
+ (list boost
+ gmp
+ gnuradio
+ itpp
+ libsndfile
+ log4cpp
+ spdlog
+ volk))
+ (arguments
+ (list ;; Tests fail with:
+ ;; from dsd import dsd_block_ff
+ ;; ModuleNotFoundError: No module named 'dsd'
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-itpp-detection
+ (lambda _
+ (substitute* "dsd/cmake/FindITPP.cmake"
+ (("libitpp\\.dll")
+ "itpp_debug")))))))
+ (synopsis "GNU Radio block for Digital Speech Decoder")
+ (description
+ "This package provides a GNU Radio block interfacing with Digital
+Speech Decoder (DSD) to decode several digital voice protocols, like D-STAR,
+DMR, NXDN, P25, etc.")
+ (home-page "https://github.com/argilo/gr-dsd")
+ (license (list license:bsd-3
+ license:gpl2
+ license:gpl3+
+ license:isc)))))
+
(define-public gr-iqbal
;; No tag for version supporting Gnuradio 3.9; use commit.
(let ((commit "fbee239a6fb36dd2fb564f6e6a0d393c4bc844db")
@@ -899,7 +1044,7 @@ satellites.")
(define-public gqrx
(package
(name "gqrx")
- (version "2.15.8")
+ (version "2.15.9")
(source
(origin
(method git-fetch)
@@ -908,7 +1053,7 @@ satellites.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ph7fnjxfv7rfdlh17c8j4djvkfqjnalmcvnafhnq7agjy428727"))))
+ (base32 "1a70lmcidp5ccmpvlvpfk1g7pshyp8xq2k0kgxrplf8za5hns019"))))
(build-system qt-build-system)
(native-inputs
(list pkg-config))
@@ -937,6 +1082,29 @@ using GNU Radio and the Qt GUI toolkit.")
(home-page "https://gqrx.dk/")
(license license:gpl3+)))
+(define-public gqrx-scanner
+ (package
+ (name "gqrx-scanner")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/neural75/gqrx-scanner")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ar8kqfrd768l6y4kqgq3467xckrrpaq8zlwzz5l7lp8r41w5plr"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f)) ; No test suite
+ (synopsis "Frequency scanner for Gqrx")
+ (description
+ "This package provides a frequency scanner for the Gqrx software-defined
+radio receiver.")
+ (home-page "https://github.com/neural75/gqrx-scanner")
+ (license license:expat)))
+
(define-public fldigi
(package
(name "fldigi")
@@ -1083,39 +1251,35 @@ for correctness.")
(define-public hackrf
(package
(name "hackrf")
- (version "2021.03.1")
+ (version "2022.09.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/mossmann/hackrf")
+ (url "https://github.com/greatscottgadgets/hackrf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "12fkgimjy5ia291c1rn4y59pn9r5wdvz5x9z5xc8zr1xr96iyhfs"))))
+ (base32 "0m9j160q5zb3jimszv1lb6j76zf5lwijvpfl1k28d832rh847vvk"))))
(build-system cmake-build-system)
(arguments
- '(#:configure-flags
- (list "-DUDEV_RULES_GROUP=dialout"
- (string-append "-DUDEV_RULES_PATH="
- (assoc-ref %outputs "out")
- "/lib/udev/rules.d"))
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'enter-source-directory
- (lambda _
- (chdir "host")
- #t))
- (add-after 'install 'delete-static-library
- (lambda* (#:key outputs #:allow-other-keys)
- (delete-file (string-append (assoc-ref outputs "out")
- "/lib/libhackrf.a"))
- #t))
- (add-before 'install-license-files 'leave-source-directory
- (lambda _
- (chdir "..")
- #t)))
- #:tests? #f)) ; no test suite
+ (list #:configure-flags
+ #~(list "-DUDEV_RULES_GROUP=dialout"
+ (string-append "-DUDEV_RULES_PATH="
+ #$output
+ "/lib/udev/rules.d"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'enter-source-directory
+ (lambda _
+ (chdir "host")))
+ (add-after 'install 'delete-static-library
+ (lambda _
+ (delete-file (string-append #$output "/lib/libhackrf.a"))))
+ (add-before 'install-license-files 'leave-source-directory
+ (lambda _
+ (chdir ".."))))
+ #:tests? #f)) ; no test suite
(native-inputs
(list pkg-config))
(inputs
@@ -1144,20 +1308,35 @@ you must extend 'udev-service-type' with this package. E.g.:
(base32 "11r4i8gmxnb6ixpk4ns38c9xwj3qibp2v3pkhy2z0lhz0xxi1w4b"))))
(build-system gnu-build-system)
(native-inputs
- (list doxygen
- lua
+ (list autoconf
+ automake
+ doxygen
+ libtool
pkg-config
python-wrapper
- swig
- tcl))
+ swig))
(inputs
- (list gd libusb libxml2 readline))
+ (list gd
+ libusb
+ libxml2
+ lua
+ python
+ readline
+ tcl))
(arguments
- `(#:configure-flags '("--disable-static"
- "--with-lua-binding"
- "--with-python-binding"
- "--with-tcl-binding"
- "--with-xml-support")))
+ `(#:configure-flags
+ '("--disable-static"
+ "--with-lua-binding"
+ "--with-python-binding"
+ "--with-tcl-binding"
+ "--with-xml-support")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'force-bootstrap
+ ;; The included configure script is misbuilt. It will never find
+ ;; pkg-config, and hence any libraries that rely on it. Rebuild it.
+ (lambda _
+ (delete-file "configure"))))))
(synopsis "Tools and API to control radios")
(description
"The Ham Radio Control Library (Hamlib) is a project to provide programs
@@ -1415,14 +1594,14 @@ operators.")
(define-public xnec2c
(package
(name "xnec2c")
- (version "4.4.11")
+ (version "4.4.12")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.xnec2c.org/releases/xnec2c-v"
version ".tar.gz"))
(sha256
- (base32 "13ybnb1v1y9wjmj49s8ir2rpfsz7h8r9jwv0qd4if9wsn44jg29k"))))
+ (base32 "1ibj2bjzn4dp988w0yayjsiccv44icsm02gr0g6gk389p7lg32p9"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@@ -1461,7 +1640,7 @@ gain and standing wave ratio.")
(define-public dump1090
(package
(name "dump1090")
- (version "7.1")
+ (version "8.2")
(source
(origin
(method git-fetch)
@@ -1470,25 +1649,26 @@ gain and standing wave ratio.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1702qv5g27sgpqf98sj2qbg36sqzc7r3kssslzzgljqkr5jgrw6m"))))
+ (base32 "16ylywy2fdwf5kqr8kgl9lbzy1zwx4ckj9y122k3h86pfkswljs9"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
(list hackrf libusb ncurses rtl-sdr))
(arguments
- `(#:test-target "test"
- #:make-flags
- (list (string-append "CC=" ,(cc-for-target))
- "BLADERF=no")
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
- (install-file "dump1090" bin)
- (install-file "view1090" bin)))))))
+ (list
+ #:test-target "test"
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ "BLADERF=no")
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda _
+ (let ((bin (string-append #$output "/bin/")))
+ (install-file "dump1090" bin)
+ (install-file "view1090" bin)))))))
(synopsis "Mode S decoder for rtl-sdr devices")
(description
"Dump1090 is a Mode S decoder specifically designed for rtl-sdr devices.
@@ -1500,7 +1680,7 @@ their position, altitude, speed, etc.")
(define-public rtl-433
(package
(name "rtl-433")
- (version "21.12")
+ (version "22.11")
(source
(origin
(method git-fetch)
@@ -1509,7 +1689,7 @@ their position, altitude, speed, etc.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0ygxs35zvgnamhqdwk1akcwagcirzpi4wndzgf9d23faiv4cm01a"))))
+ (base32 "0qx89qmf0zn0qa05vraipny4ihx6lm72s830mbfyzw2znyk3wdm8"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config))
@@ -1525,7 +1705,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
(define-public multimon-ng
(package
(name "multimon-ng")
- (version "1.1.9")
+ (version "1.2.0")
(source
(origin
(method git-fetch)
@@ -1534,7 +1714,7 @@ from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2"))))
+ (base32 "0hm7391z1iz2sk4xkwfphqz8qvihqjzsh45csz14gb4jfs1p6ks2"))))
(build-system cmake-build-system)
(inputs
(list libx11 pulseaudio))
@@ -1562,7 +1742,7 @@ modes:
(define-public nanovna-saver
(package
(name "nanovna-saver")
- (version "0.3.9")
+ (version "0.5.3")
(source
(origin
(method git-fetch)
@@ -1571,7 +1751,7 @@ modes:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1h5k402wjlj7xjniggwf0x7a5srlgglc2x4hy6lz6c30zwa7z8fm"))))
+ (base32 "1h0wzva8j7fqnpf0qy42bw9rdclgq3jdq902ajvd9v5iqcqs78n0"))))
(build-system python-build-system)
(native-inputs
(list python-cython))
@@ -2101,6 +2281,41 @@ Codec.")
Audio Broadcasting}.")
(license license:gpl2+))))
+(define-public dsd
+ (let ((commit "59423fa46be8b41ef0bd2f3d2b45590600be29f0")
+ (revision "1"))
+ (package
+ (name "dsd")
+ (version (git-version "1.7.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/szechyjs/dsd")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "128gvgkanvh4n5bjnzkfk419hf5fdbad94fb8d8lv67h94vfchyd"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list itpp libsndfile mbelib portaudio))
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-itpp-detection
+ (lambda _
+ (substitute* "cmake/FindITPP.cmake"
+ (("libitpp\\.dll")
+ "itpp_debug")))))))
+ (synopsis "Digital speech decoder")
+ (description
+ "DSD is able to decode several digital voice formats used in radio
+transmissions.")
+ (home-page "https://github.com/szechyjs/dsd")
+ (license (list license:expat license:gpl2)))))
+
(define-public dsdcc
(package
(name "dsdcc")
@@ -2143,7 +2358,7 @@ voice formats.")
(define-public sdrangel
(package
(name "sdrangel")
- (version "7.6.2")
+ (version "7.8.5")
(source
(origin
(method git-fetch)
@@ -2152,7 +2367,7 @@ voice formats.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "193iwwb4mbr29mlgaqb67j8214k10k2q0ky9fcl1ja52vmdzz71b"))))
+ (base32 "0kfzmxbhfpvs8csfbhnl5nij6nlbr00s43392wfq35vnnkbgk5lv"))))
(build-system qt-build-system)
(native-inputs
(list doxygen graphviz pkg-config))
@@ -2209,13 +2424,18 @@ voice formats.")
#$(this-package-input "soapysdr")))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-boost-compatibility
+ (add-after 'unpack 'fix-CPU-extension-detection
+ ;; ‘Fix’ in the static sense. TODO: Make this -tune'able.
(lambda _
- (substitute*
- '("plugins/channelrx/noisefigure/noisefigure.cpp"
- "plugins/channelrx/noisefigure/noisefigureenrdialog.cpp")
- (("boost::math::barycentric_rational<double>")
- "boost::math::interpolators::barycentric_rational<double>")))))))
+ (let ((file "cmake/Modules/DetectArchitecture.cmake"))
+ ;; Disable all build-time CPU extension detection…
+ (substitute* file
+ (("detect_extensions\\(.*") ""))
+ (when ,(target-x86-64?)
+ ;; …but force extensions that are guaranteed to be available.
+ (substitute* file
+ ((".*cmake_pop_check_state" eof)
+ (string-append "force_ext_available(SSE2)\n" eof))))))))))
(home-page "https://github.com/f4exb/sdrangel/wiki")
(synopsis "Software defined radio")
(description
@@ -2300,19 +2520,27 @@ software-defined radio receivers.")
(define-public wfview
(package
(name "wfview")
- (version "1.2d")
+ (version "1.50")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/eliggett/wfview")
- (commit version)))
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1kpkwxhcacgmprbr8xz840rj9a22513vxrh2q7d3js5i1dva8j2z"))))
+ (base32 "1djgn1z4hibzci53mrvskz47jfq6hk8lhhqckpa93pvsi9kadl4k"))))
(build-system qt-build-system)
(inputs
- (list opus qcustomplot qtbase-5 qtmultimedia-5 qtserialport))
+ (list eigen
+ opus
+ portaudio
+ pulseaudio
+ qcustomplot
+ qtbase-5
+ qtmultimedia-5
+ qtserialport
+ rtaudio))
(arguments
`(#:tests? #f ; No test suite.
#:phases
@@ -2376,46 +2604,42 @@ Caller-ID.")
(license license:gpl3+)))
(define-public rfcat
- ;; Use a commit for now because some fixes to make rfcat work with
- ;; Python 3 instead of Python 2 are not in a release yet.
- (let ((commit "725bf79af27d47cdec64107317c1c8fe3f7ad7b8")
- (revision "1"))
- (package
- (name "rfcat")
- (version (git-version "1.9.5" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/atlas0fd00m/rfcat")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0dbc6n4pxsa73wzxny773khc73r1dn3ma5hi7xv76vcykjvzkdi3"))))
- (build-system python-build-system)
- (inputs
- (list python-future
- python-ipython
- python-numpy
- python-pyserial
- python-pyside-2
- python-pyusb))
- (arguments
- `(#:tests? #f ; Tests want to use a serial port
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'fix-permissions
- (lambda _
- (make-file-writable "rflib/rflib_version.py")))
- (add-after 'install 'install-udev-rules
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "etc/udev/rules.d/20-rfcat.rules"
- (string-append (assoc-ref outputs "out")
- "/lib/udev/rules.d")))))))
- (home-page "https://github.com/atlas0fd00m/rfcat")
- (synopsis "Program to control some radio dongles")
- (description
- "@code{rfcat} is a program to control some radio dongles operating in
+ (package
+ (name "rfcat")
+ (version "1.9.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/atlas0fd00m/rfcat")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0zmgbgf1025ln2v6lc27dmkmwv8pxjgrmhmpk34rkkixhvnk69pf"))))
+ (build-system python-build-system)
+ (inputs
+ (list python-future
+ python-ipython
+ python-numpy
+ python-pyserial
+ python-pyside-2
+ python-pyusb))
+ (arguments
+ (list
+ #:tests? #f ; Tests want to use a serial port
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-permissions
+ (lambda _
+ (make-file-writable "rflib/rflib_version.py")))
+ (add-after 'install 'install-udev-rules
+ (lambda* _
+ (install-file "etc/udev/rules.d/20-rfcat.rules"
+ (string-append #$output "/lib/udev/rules.d")))))))
+ (home-page "https://github.com/atlas0fd00m/rfcat")
+ (synopsis "Program to control some radio dongles")
+ (description
+ "@code{rfcat} is a program to control some radio dongles operating in
ISM bands.
Supported dongles:
@@ -2428,8 +2652,8 @@ Supported dongles:
To install the rfcat udev rules, you must extend @code{udev-service-type} with
this package. E.g.: @code{(udev-rules-service 'rfcat rfcat)}")
- (license (list license:bsd-3
- license:gpl2)))))
+ (license (list license:bsd-3
+ license:gpl2))))
(define-public rx-tools
;; No tagged release since 2016, use commit instead.
@@ -2588,3 +2812,40 @@ the navigation message, computation of observables and, finally, computation of
position fixes) the signals of the BeiDou, Galileo, GLONASS and GPS Global
Navigation Satellite System.")
(license license:gpl3+)))
+
+(define-public qdmr
+ (package
+ (name "qdmr")
+ (version "0.11.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hmatuschek/qdmr")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xbp4ica6bgsiwc57wzm8744dqik2fw77kh1gb8s3sa1q9my2vlx"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:tests? #f ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda _
+ (substitute* "lib/CMakeLists.txt"
+ (("(DESTINATION \")/etc/udev/" _ directive)
+ (string-append directive #$output "/lib/udev/"))))))))
+ (inputs (list libusb qtbase-5 qtlocation qtserialport yaml-cpp))
+ (native-inputs (list qttools-5))
+ (home-page "https://dm3mat.darc.de/qdmr/")
+ (synopsis "GUI application and command line tool to program DMR radios")
+ (description
+ "qdmr is a graphical user interface (GUI) application that allows one to
+program several types of DMR radios. It is comparable to the Customer
+Programming Software (CPS) bundled with these radios but aims to be a more
+universal tool.
+
+To install the qdmr udev rules, you must extend @code{udev-service-type} with this
+package. E.g.: @code{(udev-rules-service 'qdmr qdmr)}")
+ (license license:gpl3+)))