diff options
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r-- | gnu/packages/radio.scm | 234 |
1 files changed, 177 insertions, 57 deletions
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 66f89508fb..2e7fec5547 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -69,10 +69,12 @@ #:use-module (gnu packages image) #:use-module (gnu packages image-processing) #:use-module (gnu packages javascript) + #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages lua) + #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages multiprecision) @@ -501,6 +503,30 @@ library. It also adds hamlib support, which provides basic gain and frequency controls for certain tuners which may be paired with an audio device.") (license license:expat)))) +(define-public soapybladerf + (let ((commit "85f6dc554ed4c618304d99395b19c4e1523675b0") + (revision "1")) + (package + (name "soapybladerf") + (version (git-version "0.4.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pothosware/SoapyBladeRF") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05c5mv1b55jv7dcr740hv4b3gplfaqryflfvprhlkm7bycr8pp16")))) + (build-system cmake-build-system) + (inputs (list bladerf soapysdr)) + (arguments (list #:tests? #f)) ; No test suite + (home-page "https://github.com/pothosware/SoapyBladeRF/wiki") + (synopsis "SoapySDR BladeRF module") + (description "This package provides BladeRF devices support to the +SoapySDR library.") + (license license:lgpl2.1+)))) + (define-public soapyhackrf ;; Some fixes are not yet in a tagged release. (let ((commit "6c0c33f0aa44c3080674e6bca0273184d3e9eb44") @@ -919,57 +945,62 @@ environment.") (license license:gpl3+))) (define-public gr-osmosdr - ;; No tag for version supporting Gnuradio 3.9; use commit. - (let ((commit "a100eb024c0210b95e4738b6efd836d48225bd03") - (revision "0")) - (package - (name "gr-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 - (list doxygen pkg-config pybind11 python-mako python-six)) - (inputs - (list airspy - airspyhf - boost - fftwf - gmp - gnuradio - hackrf - libsndfile - log4cpp - python - python-numpy - python-pyqt - rtl-sdr - soapysdr - spdlog - volk)) - (arguments - `(#:modules ((guix build cmake-build-system) - ((guix build python-build-system) #:prefix python:) - (guix build utils)) - #:imported-modules (,@%cmake-build-system-modules - (guix build python-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'install 'wrap-python - (assoc-ref python:%standard-phases 'wrap))))) - (synopsis "GNU Radio block for interfacing with various radio hardware") - (description "This is a block for GNU Radio allowing to use a common API + (package + (name "gr-osmosdr") + (version "0.2.4") + (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 "1qpa908bb7iagvaa7h541k1x092mb6dfrmw5ayy4p51qks45nj3p")))) + (build-system cmake-build-system) + (native-inputs + (list doxygen pkg-config pybind11 python-mako python-six)) + (inputs + (list airspy + airspyhf + bladerf + boost + fftwf + gmp + gnuradio + gr-iqbal + hackrf + libsndfile + log4cpp + python + python-numpy + python-pyqt + rtl-sdr + soapysdr + spdlog + volk)) + (arguments + (list #:modules '((guix build cmake-build-system) + ((guix build python-build-system) #:prefix python:) + (guix build utils)) + #:imported-modules `(,@%cmake-build-system-modules + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-gnuradio-iqbalance-detection + (lambda _ + (substitute* "CMakeLists.txt" + (("find_package\\(gnuradio-iqbalance PATHS \\$\\{Gnuradio_DIR\\}\\)") + (string-append "find_package(gnuradio-iqbalance PATHS " + #$(this-package-input "gr-iqbal") + "/lib/cmake/gnuradio)"))))) + (add-after 'install 'wrap-python + (assoc-ref python:%standard-phases 'wrap))))) + (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+)))) -(deprecated-package "gnuradio-osmosdr" gr-osmosdr) + (home-page "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR") + (license license:gpl3+))) (define-public libosmo-dsp (package @@ -1416,6 +1447,43 @@ you must extend 'udev-service-type' with this package. E.g.: @code{(udev-rules-service 'hackrf hackrf #:groups '(\"dialout\"))}.") (license license:gpl2))) +(define-public bladerf + (package + (name "bladerf") + (version "2023.02") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Nuand/bladeRF") + (commit version) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "038v9qdmrwx9mxsrq4l36bap0bsypyg4i8hs7l7srv4b0c2s7ynp")))) + (build-system cmake-build-system) + (native-inputs (list doxygen help2man pkg-config)) + (inputs (list libedit libusb)) + (arguments + (list #:configure-flags #~(list "-DTAGGED_RELEASE=ON" + (string-append "-DUDEV_RULES_PATH=" + #$output + "/lib/udev/rules.d") + "-DBLADERF_GROUP=dialout" + "-DBUILD_DOCUMENTATION=ON") + #:tests? #f)) ; No test suite + (home-page "https://www.nuand.com/") + (synopsis "User-space library and utilities for BladeRF SDR") + (description + "This package contains a library and command line utilities for +controlling the BladeRF Software Defined Radio (SDR) over USB. To install the +bladerf udev rules, you must extend 'udev-service-type' with this package. +E.g.: @code{(udev-rules-service 'bladerf bladerf)}.") + (license (list license:bsd-3 + license:expat + license:gpl2+ + license:lgpl2.1+)))) + (define-public hamlib (package (name "hamlib") @@ -1793,13 +1861,12 @@ gain and standing wave ratio.") (native-inputs (list pkg-config)) (inputs - (list hackrf libusb ncurses rtl-sdr)) + (list bladerf hackrf libusb ncurses rtl-sdr)) (arguments (list #:test-target "test" #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - "BLADERF=no") + #~(list (string-append "CC=" #$(cc-for-target))) #:phases #~(modify-phases %standard-phases (delete 'configure) @@ -2499,7 +2566,7 @@ voice formats.") (define-public sdrangel (package (name "sdrangel") - (version "7.10.0") + (version "7.16.0") (source (origin (method git-fetch) @@ -2508,7 +2575,7 @@ voice formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rl2qnc9s8cjwv77vfwgj66rz5zbxmixqh0gg6b29s4667pjvil6")))) + (base32 "1c2pdxw2a3pysqlmr42gghg0ga33afwdp6wc97h7s6gwc5km6zlk")))) (build-system qt-build-system) (native-inputs (list doxygen graphviz pkg-config)) @@ -2517,6 +2584,7 @@ voice formats.") airspyhf alsa-lib aptdec + bladerf boost cm256cc codec2 @@ -2535,6 +2603,7 @@ voice formats.") qtbase-5 qtcharts qtdeclarative-5 + qtgamepad qtlocation qtmultimedia-5 qtquickcontrols2-5 @@ -2567,6 +2636,11 @@ voice formats.") #$(this-package-input "soapysdr"))) #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-unrecognized-compiler-option + (lambda _ + (substitute* "cmake/Modules/CompilerOptions.cmake" + (("-Wno-inconsistent-missing-override") + "-fpermissive")))) (add-after 'unpack 'fix-CPU-extension-detection ;; ‘Fix’ in the static sense. TODO: Make this -tune'able. (lambda _ @@ -2608,6 +2682,7 @@ various hardware.") (list airspy airspyhf alsa-lib + bladerf codec2 fftwf glew @@ -2623,7 +2698,8 @@ various hardware.") (list zstd "lib"))) (arguments (list #:tests? #f ; No test suite. - #:configure-flags #~(list "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF" + #:configure-flags #~(list "-DOPT_BUILD_BLADERF_SOURCE=ON" + "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF" "-DOPT_BUILD_M17_DECODER=ON") #:phases #~(modify-phases %standard-phases @@ -2860,7 +2936,9 @@ of devices than RTL-SDR.") python-pytest xorg-server-for-tests)) (inputs - (list gnuradio + (list airspy + bladerf + gnuradio gr-osmosdr hackrf python-numpy @@ -2968,6 +3046,48 @@ position fixes) the signals of the BeiDou, Galileo, GLONASS and GPS Global Navigation Satellite System.") (license license:gpl3+))) +(define-public satdump + (package + (name "satdump") + (version "1.1.0") + (source + ;; TODO: The sources embed some libraries (in src-core/libs). + ;; Using regular packaged shared libraries instead will require big + ;; changes in CMakeList files. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SatDump/SatDump") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mz665h02v4hg0v6kb1b3lj7vd2kp7wgasasm10q6qwqr7c133p4")))) + (build-system cmake-build-system) + (native-inputs (list pkg-config)) + (inputs + (list airspy + airspyhf + bladerf + fftwf + glew + glfw + hackrf + libpng + luajit + nng + portaudio + rtl-sdr + volk + (list zstd "lib"))) + (arguments + (list #:tests? #f)) ; No test suite + (home-page "https://www.satdump.org/") + (synopsis "Satellite data processing software") + (description "SatDump is a generic satellite data processing software. +For example, it can decode the telemetry and images sent by some meteorological +satellites.") + (license license:gpl3))) + (define-public qdmr (package (name "qdmr") |