package/soapy-sdr: new package
Soapy SDR - vendor and platform neutral SDR support library. Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> [Julien: remove commented _DEPENDENCIES] Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
947deda6ff
commit
c430f54f36
@@ -1884,6 +1884,7 @@ menu "Hardware handling"
|
||||
source "package/pcsc-lite/Config.in"
|
||||
source "package/pico-sdk/Config.in"
|
||||
source "package/rpi-rgb-led-matrix/Config.in"
|
||||
source "package/soapy-sdr/Config.in"
|
||||
source "package/tslib/Config.in"
|
||||
source "package/uhd/Config.in"
|
||||
source "package/urg/Config.in"
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
From 1ee5670803f89b21d84a6a84acbb578da051c119 Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Volz <ryan.volz@gmail.com>
|
||||
Date: Tue, 26 Sep 2023 14:56:59 -0400
|
||||
Subject: [PATCH] Remove deprecated use of distutils, fix for Python 3.12+
|
||||
|
||||
Remove deprecated use of distutils, fix for Python 3.12+
|
||||
|
||||
This switches to using sysconfig from distutils, which is necessary for
|
||||
Python 3.12+ since distutils is deprecated and has been removed.
|
||||
|
||||
It is necessary to specify the install scheme when a prefix other than
|
||||
the Python default is used so that changes to the default scheme made by
|
||||
distributions (e.g. Debian, Fedora) do not produce an incorrect Python
|
||||
installation directory. For example, Debian patches the default scheme
|
||||
to prepend the path with '/local', but if a user specifies a prefix of
|
||||
'/usr/local', then the path using the default scheme would be
|
||||
'/usr/local/local/...' with a duplicated 'local' directory. Specifying
|
||||
an unmodified install scheme fixes that.
|
||||
|
||||
Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
|
||||
|
||||
Upstream: https://github.com/pothosware/SoapySDR/commit/1ee5670803f89b21d84a6a84acbb578da051c119
|
||||
Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
|
||||
---
|
||||
swig/python/get_python_lib.py | 36 ++++++++++++++++++++++++-----------
|
||||
1 file changed, 25 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/python/get_python_lib.py b/python/get_python_lib.py
|
||||
index 0c71652..574f0b6 100644
|
||||
--- a/python/get_python_lib.py
|
||||
+++ b/python/get_python_lib.py
|
||||
@@ -1,19 +1,33 @@
|
||||
import os
|
||||
+import pathlib
|
||||
import sys
|
||||
-import site
|
||||
-from distutils.sysconfig import get_python_lib
|
||||
+import sysconfig
|
||||
|
||||
if __name__ == '__main__':
|
||||
- prefix = sys.argv[1]
|
||||
+ prefix = pathlib.Path(sys.argv[1]).resolve()
|
||||
|
||||
- #ask distutils where to install the python module
|
||||
- install_dir = get_python_lib(plat_specific=True, prefix=prefix)
|
||||
+ # default install dir for the running Python interpreter
|
||||
+ default_install_dir = pathlib.Path(sysconfig.get_path('platlib')).resolve()
|
||||
|
||||
- #use sites when the prefix is already recognized
|
||||
+ # if default falls under the desired prefix, we're done
|
||||
try:
|
||||
- paths = [p for p in site.getsitepackages() if p.startswith(prefix)]
|
||||
- if len(paths) == 1: install_dir = paths[0]
|
||||
- except AttributeError: pass
|
||||
+ relative_install_dir = default_install_dir.relative_to(prefix)
|
||||
+ except ValueError:
|
||||
+ # get install dir for the specified prefix
|
||||
+ # can't use the default scheme because distributions modify it
|
||||
+ # newer Python versions have 'venv' scheme, use for all OSs.
|
||||
+ if 'venv' in sysconfig.get_scheme_names():
|
||||
+ scheme = 'venv'
|
||||
+ elif os.name == 'nt':
|
||||
+ scheme = 'nt'
|
||||
+ else:
|
||||
+ scheme = 'posix_prefix'
|
||||
+ prefix_install_dir = pathlib.Path(sysconfig.get_path(
|
||||
+ 'platlib',
|
||||
+ scheme=scheme,
|
||||
+ vars={'base': prefix, 'platbase': prefix},
|
||||
+ )).resolve()
|
||||
+ relative_install_dir = prefix_install_dir.relative_to(prefix)
|
||||
|
||||
- #strip the prefix to return a relative path
|
||||
- print(os.path.relpath(install_dir, prefix))
|
||||
+ # want a relative path for use in the build system
|
||||
+ print(relative_install_dir)
|
||||
--
|
||||
2.49.0
|
||||
|
||||
27
package/soapy-sdr/Config.in
Normal file
27
package/soapy-sdr/Config.in
Normal file
@@ -0,0 +1,27 @@
|
||||
comment "SoapySDR needs a toolchain w/ C++, threads, dynamic library"
|
||||
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
|
||||
BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_SOAPY_SDR
|
||||
bool "SoapySDR"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
help
|
||||
Soapy SDR - vendor and platform neutral SDR support library.
|
||||
|
||||
https://github.com/pothosware/SoapySDR/wiki
|
||||
|
||||
if BR2_PACKAGE_SOAPY_SDR
|
||||
|
||||
config BR2_PACKAGE_SOAPY_SDR_APPS
|
||||
bool "apps support"
|
||||
help
|
||||
Enable apps
|
||||
|
||||
config BR2_PACKAGE_SOAPY_SDR_PYTHON
|
||||
bool "python support"
|
||||
depends on BR2_PACKAGE_PYTHON3
|
||||
help
|
||||
Enable python binding
|
||||
endif
|
||||
3
package/soapy-sdr/soapy-sdr.hash
Normal file
3
package/soapy-sdr/soapy-sdr.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# Locally calculated:
|
||||
sha256 a508083875ed75d1090c24f88abef9895ad65f0f1b54e96d74094478f0c400e6 soapy-sdr-0.8.1.tar.gz
|
||||
sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 LICENSE_1_0.txt
|
||||
42
package/soapy-sdr/soapy-sdr.mk
Normal file
42
package/soapy-sdr/soapy-sdr.mk
Normal file
@@ -0,0 +1,42 @@
|
||||
################################################################################
|
||||
#
|
||||
# SoapySDR
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SOAPY_SDR_VERSION = 0.8.1
|
||||
SOAPY_SDR_SITE = https://github.com/pothosware/SoapySDR/archive/refs/tags
|
||||
SOAPY_SDR_LICENSE = BSL-1.0
|
||||
SOAPY_SDR_LICENSE_FILES = LICENSE_1_0.txt
|
||||
|
||||
SOAPY_SDR_SUPPORTS_IN_SOURCE_BUILD = NO
|
||||
|
||||
SOAPY_SDR_CONF_OPTS = \
|
||||
-DENABLE_TESTS=OFF \
|
||||
-DENABLE_DOCS=OFF \
|
||||
-DENABLE_LIBRARY=ON
|
||||
|
||||
# For third-party modules, the SoapySDR libraries are mandatory at
|
||||
# compile time.
|
||||
SOAPY_SDR_INSTALL_STAGING = YES
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SOAPY_SDR_APPS),y)
|
||||
SOAPY_SDR_CONF_OPTS += -DENABLE_APPS=ON
|
||||
else
|
||||
SOAPY_SDR_CONF_OPTS += -DENABLE_APPS=OFF
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SOAPY_SDR_PYTHON),y)
|
||||
SOAPY_SDR_DEPENDENCIES += python3
|
||||
SOAPY_SDR_CONF_OPTS += -DENABLE_PYTHON=ON \
|
||||
-DENABLE_PYTHON3=ON \
|
||||
-DBUILD_PYTHON3=ON \
|
||||
-DUSE_PYTHON_CONFIG=ON
|
||||
else
|
||||
SOAPY_SDR_CONF_OPTS += -DENABLE_PYTHON=OFF \
|
||||
-DENABLE_PYTHON3=OFF \
|
||||
-DBUILD_PYTHON3=OFF \
|
||||
-DUSE_PYTHON_CONFIG=OFF
|
||||
endif
|
||||
|
||||
$(eval $(cmake-package))
|
||||
Reference in New Issue
Block a user