New package: gqrx (#19633)

* gqrx and dependencies

* changes

* forgot log4cpp

* misc dep fixes
This commit is contained in:
Andrew W Elble 2020-10-30 20:01:29 -04:00 committed by GitHub
parent 9fb2d5521d
commit dee92f9b42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 179 additions and 0 deletions

View File

@ -0,0 +1,45 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class Gnuradio(CMakePackage):
"""GNU Radio is a free & open-source software development toolkit
that provides signal processing blocks to implement software
radios. It can be used with readily-available, low-cost external
RF hardware to create software-defined radios, or without hardware
in a simulation-like environment. It is widely used in hobbyist,
academic, and commercial environments to support both wireless
communications research and real-world radio systems."""
homepage = "https://www.gnuradio.org/"
url = "https://github.com/gnuradio/gnuradio/archive/v3.8.2.0.tar.gz"
maintainers = ['aweits']
version('3.8.2.0', sha256='ddda12b55e3e1d925eefb24afb9d604bca7c9bbe0a431707aa48a2eed53eec2f')
depends_on('cmake@3.5.1:', type='build')
depends_on('volk')
depends_on('python@3.6.5:', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
depends_on('swig@3.0.8:', type='build')
depends_on('log4cpp@1.0:')
# https://github.com/gnuradio/gnuradio/pull/3566
depends_on('boost@1.53:1.72.999')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-click', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-click-plugins', type=('build', 'run'))
depends_on('gsl@1.10:')
depends_on('gmp')
depends_on('fftw')
depends_on('libzmq')
extends('python')
def cmake_args(self):
args = []
args.append('-DPYTHON_EXECUTABLE={0}'.format(
self.spec['python'].command.path))
args.append('-DENABLE_INTERNAL_VOLK=OFF')
return args

View File

@ -0,0 +1,29 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class Gqrx(CMakePackage):
"""Gqrx is an open source software defined radio (SDR) receiver
implemented using GNU Radio and the Qt GUI toolkit. Currently it
works on Linux and Mac with hardware supported by gr-osmosdr,
including Funcube Dongle, RTL-SDR, Airspy, HackRF, BladeRF,
RFSpace, USRP and SoapySDR.
Gqrx can operate as an AM/FM/SSB receiver with audio output or as
an FFT-only instrument. There are also various hooks for
interacting with external application using nertwork sockets."""
homepage = "https://gqrx.dk/"
url = "https://github.com/csete/gqrx/archive/v2.13.1.tar.gz"
maintainers = ['aweits']
version('2.13.1', sha256='08b7b930bed00c6ac79330695c24919a9d779112e1a3dd37d22cc9ee38561e82')
depends_on('cmake@3.2.0:', type='build')
depends_on('gnuradio')
depends_on('pkgconfig', type='build')
depends_on('gr-osmosdr')
depends_on('qt')
depends_on('pulseaudio')

View File

@ -0,0 +1,37 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class GrOsmosdr(CMakePackage):
"""While primarily being developed for the OsmoSDR hardware, this
block as well supports:
FunCube Dongle through libgnuradio-fcd,
FUNcube Dongle Pro+ through gr-fcdproplus,
sysmocom OsmoSDR Devices through libosmosdr,
Nuand LLC bladeRF through libbladeRF library,
Great Scott Gadgets HackRF through libhackrf,
Ettus USRP Devices through Ettus UHD library,
Fairwaves UmTRX through Fairwaves' fork of Ettus' UHD library,
RFSPACE SDR-IQ, SDR-IP, NetSDR (incl. X2 option),
RTL2832U based DVB-T dongles through librtlsdr,
RTL-TCP spectrum server (see librtlsdr project),
MSi2500 based DVB-T dongles through libmirisdr,
SDRplay RSP through SDRplay API library,
AirSpy R820t dongles through libairspy,
gnuradio .cfile input through libgnuradio-blocks"""
homepage = "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR"
url = "https://github.com/osmocom/gr-osmosdr/archive/v0.2.2.tar.gz"
maintainers = ['aweits']
variant('hackrf', default=True, description='Support HackRF Hardware')
version('0.2.2', sha256='5a7ce7afee38a56191b5d16cb4a91c92476729ff16ed09cbba5a3851ac619713')
depends_on('gnuradio')
depends_on('swig', type='build')
depends_on('hackrf-host', when='+hackrf')

View File

@ -0,0 +1,22 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class HackrfHost(CMakePackage):
"""Software for HackRF, a low cost, open source Software Defined
Radio platform."""
homepage = "https://github.com/mossmann/hackrf"
url = "https://github.com/mossmann/hackrf/archive/v2018.01.1.tar.gz"
maintainers = ['aweits']
root_cmakelists_dir = 'host'
version('2018.01.1', sha256='84dbb5536d3aa5bd6b25d50df78d591e6c3431d752de051a17f4cb87b7963ec3')
depends_on('cmake@2.8.12:', type='build')
depends_on('libusb@1.0.18:')
depends_on('fftw@3.3.5:')

View File

@ -0,0 +1,16 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class Log4cpp(AutotoolsPackage):
"""Log4cpp is library of C++ classes for flexible logging to
files, syslog, IDSA and other destinations. It is modeled after
the Log4j Java library, staying as close to their API as is
reasonable."""
homepage = "http://log4cpp.sourceforge.net/"
url = "http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.3.tar.gz"
version('1.1.3', sha256='2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d')

View File

@ -0,0 +1,30 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
class Volk(CMakePackage):
"""VOLK is the Vector-Optimized Library of Kernels. It is a
library that contains kernels of hand-written SIMD code for
different mathematical operations. Since each SIMD architecture
can be very different and no compiler has yet come along to handle
vectorization properly or highly efficiently, VOLK approaches the
problem differently.
For each architecture or platform that a developer wishes to
vectorize for, a new proto-kernel is added to VOLK. At runtime,
VOLK will select the correct proto-kernel. In this way, the users
of VOLK call a kernel for performing the operation that is
platform/architecture agnostic. This allows us to write portable
SIMD code."""
homepage = "https://github.com/gnuradio/volk"
url = "https://github.com/gnuradio/volk/archive/v2.3.0.tar.gz"
maintainers = ['aweits']
version('2.3.0', sha256='f42c928f561b128acfe4adb21227e4a62a3f6ab8103592fc3233765ff326d5fc')
depends_on('python@3.4:', type=('build', 'run'))
depends_on('py-mako@0.4.2:', type=('build', 'run'))