summaryrefslogtreecommitdiff
path: root/gnu/packages/radio.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/radio.scm')
-rw-r--r--gnu/packages/radio.scm234
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")