update dependencies

This commit is contained in:
Jakob Ketterl 2021-09-17 18:58:48 +02:00
parent 78dcdd5715
commit cb29fc251c
3 changed files with 36 additions and 77 deletions

2
debian/control vendored
View File

@ -11,6 +11,6 @@ Vcs-Git: https://github.com/jketterl/openwebrx.git
Package: openwebrx Package: openwebrx
Architecture: all Architecture: all
Depends: adduser, python3 (>= 3.5), python3-pkg-resources, csdr (>= 0.17), netcat, owrx-connector (>= 0.5), soapysdr-tools, python3-js8py (>= 0.1), ${python3:Depends}, ${misc:Depends} Depends: adduser, python3 (>= 3.5), python3-pkg-resources, csdr (>= 0.17), netcat, owrx-connector (>= 0.5), soapysdr-tools, python3-js8py (>= 0.1), ${python3:Depends}, ${misc:Depends}
Recommends: digiham (>= 0.5), sox, direwolf (>= 1.4), wsjtx, runds-connector (>= 0.2), hpsdrconnector, aprs-symbols, m17-demod, js8call Recommends: digiham (>= 0.5), direwolf (>= 1.4), wsjtx, runds-connector (>= 0.2), hpsdrconnector, aprs-symbols, m17-demod, js8call
Description: multi-user web sdr Description: multi-user web sdr
Open source, multi-user SDR receiver with a web interface Open source, multi-user SDR receiver with a web interface

View File

@ -18,7 +18,7 @@ function cmakebuild() {
cd /tmp cd /tmp
STATIC_PACKAGES="sox libfftw3-bin python3 python3-setuptools netcat-openbsd libsndfile1 liblapack3 libusb-1.0-0 libqt5core5a libreadline7 libgfortran4 libgomp1 libasound2 libudev1 ca-certificates libqt5gui5 libqt5sql5 libqt5printsupport5 libpulse0 libfaad2 libopus0 libboost-program-options1.67.0 libboost-log1.67.0" STATIC_PACKAGES="libfftw3-bin python3 python3-setuptools netcat-openbsd libsndfile1 liblapack3 libusb-1.0-0 libqt5core5a libreadline7 libgfortran4 libgomp1 libasound2 libudev1 ca-certificates libqt5gui5 libqt5sql5 libqt5printsupport5 libpulse0 libfaad2 libopus0 libboost-program-options1.67.0 libboost-log1.67.0"
BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev" BUILD_PACKAGES="wget git libsndfile1-dev libfftw3-dev cmake make gcc g++ liblapack-dev texinfo gfortran libusb-1.0-0-dev qtbase5-dev qtmultimedia5-dev qttools5-dev libqt5serialport5-dev qttools5-dev-tools asciidoctor asciidoc libasound2-dev libudev-dev libhamlib-dev patch xsltproc qt5-default libfaad-dev libopus-dev libboost-dev libboost-program-options-dev libboost-log-dev libboost-regex-dev"
apt-get update apt-get update
apt-get -y install auto-apt-proxy apt-get -y install auto-apt-proxy

View File

@ -51,18 +51,18 @@ class FeatureCache(object):
class FeatureDetector(object): class FeatureDetector(object):
features = { features = {
# core features; we won't start without these # core features; we won't start without these
"core": ["csdr", "nmux", "nc"], "core": ["csdr", "pycsdr"],
# different types of sdrs and their requirements # different types of sdrs and their requirements
"rtl_sdr": ["rtl_connector"], "rtl_sdr": ["rtl_connector"],
"rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"], "rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
"rtl_tcp": ["rtl_tcp_connector"], "rtl_tcp": ["rtl_tcp_connector"],
"sdrplay": ["soapy_connector", "soapy_sdrplay"], "sdrplay": ["soapy_connector", "soapy_sdrplay"],
"hackrf": ["soapy_connector", "soapy_hackrf"], "hackrf": ["soapy_connector", "soapy_hackrf"],
"perseussdr": ["perseustest"], "perseussdr": ["perseustest", "nmux"],
"airspy": ["soapy_connector", "soapy_airspy"], "airspy": ["soapy_connector", "soapy_airspy"],
"airspyhf": ["soapy_connector", "soapy_airspyhf"], "airspyhf": ["soapy_connector", "soapy_airspyhf"],
"lime_sdr": ["soapy_connector", "soapy_lime_sdr"], "lime_sdr": ["soapy_connector", "soapy_lime_sdr"],
"fifi_sdr": ["alsa", "rockprog"], "fifi_sdr": ["alsa", "rockprog", "nmux"],
"pluto_sdr": ["soapy_connector", "soapy_pluto_sdr"], "pluto_sdr": ["soapy_connector", "soapy_pluto_sdr"],
"soapy_remote": ["soapy_connector", "soapy_remote"], "soapy_remote": ["soapy_connector", "soapy_remote"],
"uhd": ["soapy_connector", "soapy_uhd"], "uhd": ["soapy_connector", "soapy_uhd"],
@ -72,16 +72,16 @@ class FeatureDetector(object):
"hpsdr": ["hpsdr_connector"], "hpsdr": ["hpsdr_connector"],
"runds": ["runds_connector"], "runds": ["runds_connector"],
# optional features and their requirements # optional features and their requirements
"digital_voice_digiham": ["digiham", "sox", "codecserver_ambe"], "digital_voice_digiham": ["digiham", "codecserver_ambe"],
"digital_voice_freedv": ["freedv_rx", "sox"], "digital_voice_freedv": ["freedv_rx"],
"digital_voice_m17": ["m17_demod", "sox", "digiham"], "digital_voice_m17": ["m17_demod", "digiham"],
"wsjt-x": ["wsjtx", "sox"], "wsjt-x": ["wsjtx"],
"wsjt-x-2-3": ["wsjtx_2_3", "sox"], "wsjt-x-2-3": ["wsjtx_2_3"],
"wsjt-x-2-4": ["wsjtx_2_4", "sox"], "wsjt-x-2-4": ["wsjtx_2_4"],
"packet": ["direwolf", "sox"], "packet": ["direwolf"],
"pocsag": ["digiham", "sox"], "pocsag": ["digiham"],
"js8call": ["js8", "sox"], "js8call": ["js8"],
"drm": ["dream", "sox"], "drm": ["dream"],
} }
def feature_availability(self): def feature_availability(self):
@ -167,24 +167,28 @@ class FeatureDetector(object):
except FileNotFoundError: except FileNotFoundError:
return False return False
_required_csdr_version = LooseVersion("0.18.0")
def has_csdr(self): def has_csdr(self):
""" """
OpenWebRX uses the demodulator and pipeline tools provided by the csdr project. Please check out [the project OpenWebRX uses the demodulator and pipeline tools provided by the csdr project. Please check out [the project
page on github](https://github.com/jketterl/csdr) for further details and installation instructions. page on github](https://github.com/jketterl/csdr) for further details and installation instructions.
""" """
required_version = LooseVersion("0.17.0")
csdr_version_regex = re.compile("^csdr version (.*)$")
try: try:
process = subprocess.Popen(["csdr", "version"], stderr=subprocess.PIPE) from pycsdr.modules import csdr_version
matches = csdr_version_regex.match(process.stderr.readline().decode()) return LooseVersion(csdr_version) >= FeatureDetector._required_csdr_version
if matches is None: except ImportError:
return False return False
version = LooseVersion(matches.group(1))
process.wait(1) def has_pycsdr(self):
return version >= required_version """
except FileNotFoundError: OpenWebRX uses the csdr python bindings from the pycsdr package to build its demodulator pipelines.
Please visit [the project page](https://github.com/jketterl/pycsdr) for further details.
"""
try:
from pycsdr.modules import version as pycsdr_version
return LooseVersion(pycsdr_version) >= FeatureDetector._required_csdr_version
except ImportError:
return False return False
def has_nmux(self): def has_nmux(self):
@ -194,13 +198,6 @@ class FeatureDetector(object):
""" """
return self.command_is_runnable("nmux --help") return self.command_is_runnable("nmux --help")
def has_nc(self):
"""
Nc is the client used to connect to the nmux multiplexer. It is provided by either the BSD netcat (recommended
for better performance) or GNU netcat packages. Please check your distribution package manager for options.
"""
return self.command_is_runnable("nc --help")
def has_perseustest(self): def has_perseustest(self):
""" """
To use a Microtelecom Perseus HF receiver, compile and To use a Microtelecom Perseus HF receiver, compile and
@ -231,40 +228,11 @@ class FeatureDetector(object):
""" """
required_version = LooseVersion("0.5") required_version = LooseVersion("0.5")
digiham_version_regex = re.compile("^(.*) version (.*)$") try:
from digiham.modules import version as digiham_version
def check_digiham_version(command): return LooseVersion(digiham_version) >= required_version
try: except ImportError:
process = subprocess.Popen([command, "--version"], stdout=subprocess.PIPE) return False
matches = digiham_version_regex.match(process.stdout.readline().decode())
if matches is None:
return False
version = LooseVersion(matches.group(2))
process.wait(1)
return matches.group(1) in [command, "digiham"] and version >= required_version
except FileNotFoundError:
return False
return reduce(
and_,
map(
check_digiham_version,
[
"rrc_filter",
"ysf_decoder",
"dmr_decoder",
"mbe_synthesizer",
"gfsk_demodulator",
"digitalvoice_filter",
"fsk_demodulator",
"pocsag_decoder",
"dstar_decoder",
"nxdn_decoder",
"dc_block",
],
),
True,
)
def _check_connector(self, command, required_version): def _check_connector(self, command, required_version):
owrx_connector_version_regex = re.compile("^{} version (.*)$".format(re.escape(command))) owrx_connector_version_regex = re.compile("^{} version (.*)$".format(re.escape(command)))
@ -423,15 +391,6 @@ class FeatureDetector(object):
""" """
return self.command_is_runnable("m17-demod") return self.command_is_runnable("m17-demod")
def has_sox(self):
"""
The sox audio library is used to convert between the typical 8 kHz audio sampling rate used by digital modes and
the audio sampling rate requested by the client.
It is available for most distributions through the respective package manager.
"""
return self.command_is_runnable("sox")
def has_direwolf(self): def has_direwolf(self):
""" """
OpenWebRX uses the [direwolf](https://github.com/wb2osz/direwolf) software modem to decode Packet Radio and OpenWebRX uses the [direwolf](https://github.com/wb2osz/direwolf) software modem to decode Packet Radio and