diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2021-04-16 14:39:48 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2021-04-16 14:39:48 +0300 |
commit | fcc39864dba82e14895afbe841091091366c96bc (patch) | |
tree | 6e0f05495fd6512051224dc85fd3ab495cbf1a24 /gnu/packages/radio.scm | |
parent | 76fc36d0a7215979bb74c05840f5a4de4ab5ea93 (diff) | |
parent | 44f9432705d04c069a8acf9e37e3ad856ac0bf82 (diff) | |
download | guix-fcc39864dba82e14895afbe841091091366c96bc.tar.gz guix-fcc39864dba82e14895afbe841091091366c96bc.zip |
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts:
gnu/local.mk
gnu/packages/boost.scm
gnu/packages/chez.scm
gnu/packages/compression.scm
gnu/packages/crates-io.scm
gnu/packages/docbook.scm
gnu/packages/engineering.scm
gnu/packages/gcc.scm
gnu/packages/gl.scm
gnu/packages/gtk.scm
gnu/packages/nettle.scm
gnu/packages/python-check.scm
gnu/packages/python-xyz.scm
gnu/packages/radio.scm
gnu/packages/rust.scm
gnu/packages/sqlite.scm
guix/build-system/node.scm
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r-- | gnu/packages/radio.scm | 361 |
1 files changed, 268 insertions, 93 deletions
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index ff694cecd8..36472fe966 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2020 Charlie Ritter <chewzerita@posteo.net> ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 João Pedro Simas <jpsimas@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,6 +29,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (gnu packages admin) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) @@ -35,6 +37,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) @@ -48,14 +51,17 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages golang) + #:use-module (gnu packages gps) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages javascript) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) #:use-module (gnu packages maths) + #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -67,6 +73,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) + #:use-module (gnu packages sdl) #:use-module (gnu packages sphinx) #:use-module (gnu packages swig) #:use-module (gnu packages tcl) @@ -165,6 +172,53 @@ To install the rtl-sdr udev rules, you must extend 'udev-service-type' with this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}") (license license:gpl2+))) +(define-public airspyhf + (package + (name "airspyhf") + (version "1.6.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/airspy/airspyhf") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n699i5a9fzzhf80fcjlqq6p2a013rzlwmwv4nmwfafy6c8cr924")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libusb" ,libusb))) + (arguments + '(#:configure-flags '("-DINSTALL_UDEV_RULES=ON") + #:tests? #f ; No tests + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "tools/CMakeLists.txt" + (("DESTINATION \"/etc/udev/") + (string-append "DESTINATION \"" + (assoc-ref outputs "out") + "/lib/udev/"))))) + (add-after 'fix-paths 'fix-udev-rules + (lambda _ + (substitute* "tools/52-airspyhf.rules" + ;; The plugdev group does not exist; use dialout as in + ;; the hackrf package. + (("GROUP=\"plugdev\"") + "GROUP=\"dialout\""))))))) + (home-page "https://github.com/airspy/airspyhf") + (synopsis "Software defined radio driver for Airspy HF+") + (description + "This package provides the driver and utilities for controlling the Airspy +HF+ Software Defined Radio (SDR) over USB. + +To install the airspyhf udev rules, you must extend @code{udev-service-type} +with this package. E.g.: @code{(udev-rules-service 'airspyhf airspyhf)}") + (license license:bsd-3))) + (define-public chirp (package (name "chirp") @@ -286,36 +340,31 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (define-public gnuradio (package (name "gnuradio") - (version "3.8.0.0") + (version "3.9.0.0") (source (origin (method url-fetch) (uri (string-append "https://www.gnuradio.org/releases/gnuradio/" "gnuradio-" version ".tar.xz")) (sha256 - (base32 "0aw55gf5549b0fz2qdi7vplcmaf92bj34h40s34b2ycnqasv900r")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Delete bundled volk to use the shared one. - (delete-file-recursively "volk") - #t)))) + (base32 "1jvm9xd0l2pz1fww4zii6hl7ccnvy256nrf70ljb594n7j9j49ha")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) ("ghostscript" ,ghostscript) + ("js-mathjax" ,js-mathjax) ("orc" ,orc) ("pkg-config" ,pkg-config) + ("pybind11" ,pybind11) ("python-cheetah" ,python-cheetah) ("python-mako" ,python-mako) ("python-pyzmq" ,python-pyzmq) ("python-scipy" ,python-scipy) ("python-sphinx" ,python-sphinx) - ("swig" ,swig) ("texlive" ,(texlive-updmap.cfg (list texlive-amsfonts - texlive-latex-amsmath - ;; TODO: Add newunicodechar. - texlive-latex-graphics))) + texlive-latex-amsmath + ;; TODO: Add newunicodechar. + texlive-latex-graphics))) ("xorg-server" ,xorg-server-for-tests))) (inputs `(("alsa-lib" ,alsa-lib) @@ -329,6 +378,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") ("gsm" ,gsm) ("gtk+" ,gtk+) ("jack" ,jack-1) + ("libsndfile" ,libsndfile) ("log4cpp" ,log4cpp) ("pango" ,pango) ("portaudio" ,portaudio) @@ -343,6 +393,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") ("python-pyyaml" ,python-pyyaml) ("qtbase" ,qtbase) ("qwt" ,qwt) + ("sdl" ,sdl) ("volk" ,volk) ("zeromq" ,zeromq))) (arguments @@ -355,7 +406,9 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (guix build glib-or-gtk-build-system) (guix build python-build-system)) #:configure-flags - '("-DENABLE_INTERNAL_VOLK=OFF") + (list (string-append "-DMATHJAX2_ROOT=" + (assoc-ref %build-inputs "js-mathjax") + "/share/javascript/mathjax")) #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-paths @@ -371,8 +424,7 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") (substitute* "cmake/Modules/GrPython.cmake" (("dist-packages") "site-packages")) - (substitute* '("gr-vocoder/swig/vocoder_swig.i" - "gr-vocoder/include/gnuradio/vocoder/codec2.h" + (substitute* '("gr-vocoder/include/gnuradio/vocoder/codec2.h" "gr-vocoder/include/gnuradio/vocoder/freedv_api.h") (("<codec2/") "<")) @@ -384,6 +436,19 @@ used by RDS Spy, and audio files containing @dfn{multiplex} signals (MPX).") "/bin/Xvfb :1 &")) (setenv "DISPLAY" ":1") #t)) + (replace 'check + (lambda* (#:key tests? parallel-tests? #:allow-other-keys) + (invoke "ctest" "-j" (if parallel-tests? + (number->string (parallel-job-count)) + "1") + "--output-on-failure" + ;;disable broken tests + "-E" (string-join + '(;; https://github.com/gnuradio/gnuradio/issues/3871 + "qa_header_payload_demux" + ;; https://github.com/gnuradio/gnuradio/issues/4348 + "qa_packet_headerparser_b") + "|")))) (add-after 'install 'wrap-python (assoc-ref python:%standard-phases 'wrap)) (add-after 'wrap-python 'wrap-glib-or-gtk @@ -424,40 +489,45 @@ environment.") (license license:gpl3+))) (define-public gnuradio-osmosdr - (package - (name "gnuradio-osmosdr") - (version "0.2.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.osmocom.org/gr-osmosdr") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1aqj5cylipmmjh1x1kb2j8262hxq6mi86dgb2zphj94wvsab2ghx")))) - (build-system cmake-build-system) - (native-inputs - `(("doxygen" ,doxygen) - ("pkg-config" ,pkg-config) - ("python" ,python) - ("python-mako" ,python-mako) - ("python-six" ,python-six) - ("swig" ,swig))) - (inputs - `(("boost" ,boost) - ("fftwf" ,fftwf) - ("gmp" ,gmp) - ("gnuradio" ,gnuradio) - ("hackrf" ,hackrf) - ("log4cpp" ,log4cpp) - ("rtl-sdr" ,rtl-sdr) - ("volk" ,volk))) - (synopsis "GNU Radio block for interfacing with various radio hardware") - (description "This is a block for GNU Radio allowing to use a common API + ;; No tag for version supporting Gnuradio 3.9; use commit. + (let ((commit "a100eb024c0210b95e4738b6efd836d48225bd03") + (revision "0")) + (package + (name "gnuradio-osmosdr") + (version (git-version "0.2.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.osmocom.org/gr-osmosdr") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pk5gnyznfyy510lbqzg9ijcb1fnhmn547n24aiqyrxd6i6vv1ki")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("pkg-config" ,pkg-config) + ("pybind11" ,pybind11) + ("python" ,python) + ("python-mako" ,python-mako) + ("python-six" ,python-six))) + (inputs + `(("airspyhf" ,airspyhf) + ("boost" ,boost) + ("fftwf" ,fftwf) + ("gmp" ,gmp) + ("gnuradio" ,gnuradio) + ("hackrf" ,hackrf) + ("libsndfile" ,libsndfile) + ("log4cpp" ,log4cpp) + ("rtl-sdr" ,rtl-sdr) + ("volk" ,volk))) + (synopsis "GNU Radio block for interfacing with various radio hardware") + (description "This is a block for GNU Radio allowing to use a common API to access different radio hardware.") - (home-page "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR") - (license license:gpl3+))) + (home-page "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR") + (license license:gpl3+)))) (define-public libosmo-dsp (package @@ -504,36 +574,39 @@ primitives for SDR (Software Defined Radio).") (license license:gpl2+))) (define-public gnuradio-iqbalance - (package - (name "gnuradio-iqbalance") - (version "0.38.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.osmocom.org/gr-iqbal") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0ksagwz05p3b0702q7ljq7013xmp0ijp30my9z6s3p7ja8dj42s3")))) - (build-system cmake-build-system) - (native-inputs - `(("doxygen" ,doxygen) - ("pkg-config" ,pkg-config) - ("python" ,python) - ("python-numpy" ,python-numpy) - ("python-six" ,python-six) - ("swig" ,swig))) - (inputs - `(("boost" ,boost) - ("fftwf" ,fftwf) - ("gmp" ,gmp) - ("gnuradio" ,gnuradio) - ("libosmo-dsp" ,libosmo-dsp) - ("log4cpp" ,log4cpp) - ("volk" ,volk))) - (synopsis "GNU Radio block to correct IQ imbalance") - (description + ;; No tag for version supporting Gnuradio 3.9; use commit. + (let ((commit "fbee239a6fb36dd2fb564f6e6a0d393c4bc844db") + (revision "0")) + (package + (name "gnuradio-iqbalance") + (version (git-version "0.38.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.osmocom.org/gr-iqbal") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "12p193ngcs65nd3lynry119nhv40mikamqkw37wdln7lawx3nw7p")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("pkg-config" ,pkg-config) + ("pybind11" ,pybind11) + ("python" ,python) + ("python-numpy" ,python-numpy) + ("python-six" ,python-six))) + (inputs + `(("boost" ,boost) + ("fftwf" ,fftwf) + ("gmp" ,gmp) + ("gnuradio" ,gnuradio) + ("libosmo-dsp" ,libosmo-dsp) + ("log4cpp" ,log4cpp) + ("volk" ,volk))) + (synopsis "GNU Radio block to correct IQ imbalance") + (description "This is a GNU Radio block to correct IQ imbalance in quadrature receivers. It's composed of two main block: @itemize @@ -541,8 +614,8 @@ receivers. It's composed of two main block: @item Optimize: Attempts to auto-detect the phase and amplitude error to feed to the fix block above. @end itemize") - (home-page "https://git.osmocom.org/gr-iqbal/") - (license license:gpl3+))) + (home-page "https://git.osmocom.org/gr-iqbal/") + (license license:gpl3+)))) (define-public gqrx (package @@ -569,6 +642,7 @@ to the fix block above. ("gnuradio-iqbalance" ,gnuradio-iqbalance) ("gnuradio-osmosdr" ,gnuradio-osmosdr) ("jack" ,jack-1) + ("libsndfile" ,libsndfile) ("log4cpp" ,log4cpp) ("portaudio" ,portaudio) ("pulseaudio" ,pulseaudio) @@ -822,7 +896,7 @@ users.") (package (inherit hamlib) (name "wsjtx-hamlib") - (version "2.3.0") + (version "2.3.1") (source (origin (method git-fetch) @@ -831,7 +905,7 @@ users.") (commit (string-append "wsjtx-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ampwqs7p0g8pdnwpdrbvwyqag065n96amgb3v4z332nw0nxvm10")))) + (base32 "0m4yzjcqs7a1w4lghyyckpkiy96jxdjijddxarqr3a37cl2rz23j")))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -843,20 +917,12 @@ users.") "--with-lua-binding" "--with-python-binding" "--with-tcl-binding" - "--with-xml-support") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-tests - (lambda _ - (substitute* "tests/testloc.c" - (("dmmm2dec\\(deg, mmm, nesw\\);") - "dmmm2dec(deg, mmm, 0, nesw);")) - #t))))))) + "--with-xml-support"))))) (define-public wsjtx (package (name "wsjtx") - (version "2.3.0") + (version "2.3.1") (source (origin (method git-fetch) @@ -865,7 +931,7 @@ users.") (commit (string-append "wsjtx-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qf8r88ssara3pddvd3jpv5phzxwnanvdj00dxgmzq0c2jqcy2a8")))) + (base32 "0mdr4l7zii08615yn7z91spnvnqm5i9390bra9lz3aqyxrsiim91")))) (build-system qt-build-system) (native-inputs `(("asciidoc" ,asciidoc) @@ -1400,3 +1466,112 @@ Compatible hardware/software: @item Icom IC-9700 @end itemize\n") (license license:expat))) + +(define-public dream + (package + (name "dream") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/drm/dream/" version + "/dream-" version "-svn808.tar.gz")) + (sha256 + (base32 "01dv6gvljz64zrjbr08mybr9aicvpq2c6qskww46lngdjyhk8xs1")))) + (build-system qt-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("faad2" ,faad2) + ("fftw" ,fftw) + ("libsndfile" ,libsndfile) + ("libpcap" ,libpcap) + ("opus" ,opus) + ("pulseaudio" ,pulseaudio) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) + ("qtwebkit" ,qtwebkit) + ("qwt" ,qwt) + ("speexdsp" ,speexdsp) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "dream.pro" + (("target\\.path = /usr/bin") + (string-append "target.path = " + (assoc-ref outputs "out") "/bin")) + (("documentation\\.path = /usr/share/man/man1") + (string-append "documentation.path = " + (assoc-ref outputs "out") + "/share/man/man1")) + (("/usr/include/pulse/") + (string-append (assoc-ref inputs "pulseaudio") + "/include/pulse/")) + (("/usr/include/sndfile\\.h") + (string-append (assoc-ref inputs "libsndfile") + "/include/sndfile.h")) + (("/usr/include/opus/") + (string-append (assoc-ref inputs "opus") + "/include/opus/")) + (("/usr/include/speex/") + (string-append (assoc-ref inputs "speexdsp") + "/include/speex/")) + (("/usr/include/qwt/") + (string-append (assoc-ref inputs "qwt") + "/include/qwt/")) + (("\\$\\$OUT_PWD/include/neaacdec\\.h") + (string-append (assoc-ref inputs "faad2") + "/include/neaacdec.h"))))) + (replace 'configure + (lambda _ + (invoke "qmake")))))) + (home-page "https://sourceforge.net/projects/drm/") + (synopsis "Digital Radio Mondiale receiver") + (description + "Dream is a software implementation of a Digital Radio Mondiale (DRM) +receiver.") + (license license:gpl2+))) + +(define-public welle-io + (package + (name "welle-io") + (version "2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/albrechtl/welle.io") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa")))) + (build-system qt-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("faad2" ,faad2) + ("fftwf" ,fftwf) + ("lame" ,lame) + ("libusb" ,libusb) + ("mpg123" ,mpg123) + ("rtl-sdr" ,rtl-sdr) + ("qtbase" ,qtbase) + ("qtcharts" ,qtcharts) + ("qtdeclarative" ,qtdeclarative) + ("qtgraphicaleffects" ,qtgraphicaleffects) + ("qtmultimedia" ,qtmultimedia) + ("qtquickcontrols2" ,qtquickcontrols2))) + (arguments + `(#:configure-flags '("-DRTLSDR=ON") + #:tests? #f)) + (home-page "https://www.welle.io/") + (synopsis "DAB and DAB+ software radio") + (description + "@code{welle.io} is a Digital Audio Broadcasting (DAB and DAB+) software +defined radio with support for rtl-sdr.") + (license license:gpl2+))) |