diff options
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r-- | gnu/packages/radio.scm | 565 |
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+))) |