From efd0dac7d134a0f215b68da22e3ca63abbb4c79d Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 13 Apr 2025 13:58:24 +0200 Subject: [PATCH] feat: add sdr++ with plutosdr support --- modules/ruther/packages/radio.scm | 98 +++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 modules/ruther/packages/radio.scm diff --git a/modules/ruther/packages/radio.scm b/modules/ruther/packages/radio.scm new file mode 100644 index 0000000..e48f988 --- /dev/null +++ b/modules/ruther/packages/radio.scm @@ -0,0 +1,98 @@ +(define-module (ruther packages radio) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (guix git-download) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages flex) + #:use-module (gnu packages bison) + #:use-module (gnu packages python) + #:use-module (gnu packages avahi) + #:use-module (gnu packages linux) + #:use-module (gnu packages libusb) + #:use-module (gnu packages xml) + #:use-module (gnu packages radio)) + +(define-public libiio + (package + (name "libiio") + (version "0.24") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/analogdevicesinc/libiio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "136n22macjz70bgxd7ix77gkv7zhbk3zzl340kwwpmb94z2fr4bk")))) + (arguments + (list + #:tests? #f + #:configure-flags + #~(list + (string-append "-DUDEV_RULES_INSTALL_DIR=" #$output "/lib/udev/rules.d") + "-DOSX_PACKAGE=off" + "-DOSX_FRAMEWORK=off" + (string-append "-DPython_EXECUTABLE=" (search-input-file %build-inputs "/bin/python3")) + "-DPYTHON_BINDINGS=on"))) + (native-inputs + (list + pkg-config + flex + bison + python + avahi + libaio)) + (inputs + (list + libxml2 + libusb)) + (build-system cmake-build-system) + (license (list + license:lgpl2.1 + license:gpl2)) + (home-page "https://github.com/analogdevicesinc/libiio") + (description #f) + (synopsis "A cross platform library for interfacing with local and remote Linux IIO devices "))) + +(define-public libad9361 + (package + (name "libad9361") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/analogdevicesinc/libad9361-iio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1inv39xfg8gqz1v7k1n2a7p9zzlb6gq98gcnnpdcr9fa5alvmvpm")))) + (inputs + (list libiio)) + (build-system cmake-build-system) + (license (list + license:lgpl2.1 + license:gpl2)) + (home-page #f) + (description #f) + (synopsis #f))) + +(define-public sdr++/pluto + (package + (inherit sdr++) + (name "sdr++-pluto") + + (arguments + (substitute-keyword-arguments (package-arguments sdr++) + ((#:configure-flags flags '()) + #~(cons* + "-DOPT_BUILD_PLUTOSDR_SOURCE=ON" + (delete "-DOPT_BUILD_PLUTOSDR_SOURCE=OFF" #$flags))))) + (inputs + (modify-inputs (package-inputs sdr++) + (append libad9361) + (append libiio))))) -- 2.48.1