From dee92f9b4247b1fe42a9a6aa69026069f71131f6 Mon Sep 17 00:00:00 2001 From: Andrew W Elble Date: Fri, 30 Oct 2020 20:01:29 -0400 Subject: New package: gqrx (#19633) * gqrx and dependencies * changes * forgot log4cpp * misc dep fixes --- .../repos/builtin/packages/gnuradio/package.py | 45 ++++++++++++++++++++++ var/spack/repos/builtin/packages/gqrx/package.py | 29 ++++++++++++++ .../repos/builtin/packages/gr-osmosdr/package.py | 37 ++++++++++++++++++ .../repos/builtin/packages/hackrf-host/package.py | 22 +++++++++++ .../repos/builtin/packages/log4cpp/package.py | 16 ++++++++ var/spack/repos/builtin/packages/volk/package.py | 30 +++++++++++++++ 6 files changed, 179 insertions(+) create mode 100644 var/spack/repos/builtin/packages/gnuradio/package.py create mode 100644 var/spack/repos/builtin/packages/gqrx/package.py create mode 100644 var/spack/repos/builtin/packages/gr-osmosdr/package.py create mode 100644 var/spack/repos/builtin/packages/hackrf-host/package.py create mode 100644 var/spack/repos/builtin/packages/log4cpp/package.py create mode 100644 var/spack/repos/builtin/packages/volk/package.py diff --git a/var/spack/repos/builtin/packages/gnuradio/package.py b/var/spack/repos/builtin/packages/gnuradio/package.py new file mode 100644 index 0000000000..dca705ef6c --- /dev/null +++ b/var/spack/repos/builtin/packages/gnuradio/package.py @@ -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 diff --git a/var/spack/repos/builtin/packages/gqrx/package.py b/var/spack/repos/builtin/packages/gqrx/package.py new file mode 100644 index 0000000000..540bdd5eba --- /dev/null +++ b/var/spack/repos/builtin/packages/gqrx/package.py @@ -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') diff --git a/var/spack/repos/builtin/packages/gr-osmosdr/package.py b/var/spack/repos/builtin/packages/gr-osmosdr/package.py new file mode 100644 index 0000000000..f8f7a2fe3c --- /dev/null +++ b/var/spack/repos/builtin/packages/gr-osmosdr/package.py @@ -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') diff --git a/var/spack/repos/builtin/packages/hackrf-host/package.py b/var/spack/repos/builtin/packages/hackrf-host/package.py new file mode 100644 index 0000000000..572e3b91b0 --- /dev/null +++ b/var/spack/repos/builtin/packages/hackrf-host/package.py @@ -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:') diff --git a/var/spack/repos/builtin/packages/log4cpp/package.py b/var/spack/repos/builtin/packages/log4cpp/package.py new file mode 100644 index 0000000000..e99fb23e48 --- /dev/null +++ b/var/spack/repos/builtin/packages/log4cpp/package.py @@ -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') diff --git a/var/spack/repos/builtin/packages/volk/package.py b/var/spack/repos/builtin/packages/volk/package.py new file mode 100644 index 0000000000..846948f87a --- /dev/null +++ b/var/spack/repos/builtin/packages/volk/package.py @@ -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')) -- cgit v1.2.3-70-g09d2