File PKGBUILD of Package gnuradiopv
# Maintainer: Per Vices <packages@pervices.com>
pkgname=gnuradiopv
_gitname=gnuradio
pkgver=3.10.11.0
pkgrel=10
pkgdesc="Per Vices Signal processing runtime and signal processing software development toolkit"
arch=(x86_64)
url="https://github.com/pervices/gnuradio"
license=(GPL-3.0-or-later)
depends=(
bubblewrap
codec2
gcc-libs
glibc
gmp
gsl
libad9361
libuhdpv
libunwind
libvolk
python-click
python-mako
python-matplotlib
python-numpy
python-pygccxml
python-pyyaml
python-pyzmq
python-scipy
python-thrift
sdl12-compat
soapysdr
spdlog
thrift
)
depends+=(
blas
cblas
lapack
)
makedepends=(
alsa-lib
boost
cmake
cppzmq
doxygen
fftw
fmt
git
gtk3
jack
libiio
libsndfile
libuhdpv
libvolk
mathjax2
portaudio
pybind11
python-cairo
python-gobject
python-jsonschema
python-lxml
python-packaging
python-pyqt5
python-pyqtgraph
python-pytest
qt5-base
qwt
xdg-utils
zeromq
)
checkdepends=(
python-jsonschema
python-pytest
python-setuptools
xorg-server-xvfb
)
_usurl=https://github.com/gnuradio/gnuradio
source=(
# "git+https://github.com/pervices/gnuradio.git#tag=v3.10.11.0"
"$_gitname.tar.gz"
# "$_gitname-numpy-2.0.patch::$_usurl/commit/8fbc5eb4b7214a4cb029ccae97205a85d49bdd48.patch"
# "$_gitname-boost-1.87.patch::$_usurl/commit/111a4ff8b868791dae74d8cdf8c1e0684840f51a.patch"
"$_gitname-numpy-2.0.patch"
"$_gitname-boost-1.87.patch"
"$_gitname-boost-1.89.patch"
"21-fcd.rules"
)
md5sums=('SKIP'
'016631083d8b8a40f422bc1ad310b380'
'4a6dcdb9185ff8d7aa2e5bddbb398763'
'7a3f565d174299fbd4f1ad5cfc9b7fe6'
'465e12c454c6a22ebec9849181af7bdc'
)
conflicts=('gnuradio' 'gnuradio-companion')
provides=('gnuradio' 'gnuradio-companion')
pkgver() {
cd $srcdir/$_gitname
git checkout main-pv-3.10.11.0 -- cmake/debian-pv
echo $(cat cmake/debian-pv/changelog | head -1 | cut -d ' ' -f2 | cut -d '-' -f1 | tr --delete ['('])
}
prepare() {
cd $srcdir/$_gitname
patch -Np1 -i ../gnuradio-numpy-2.0.patch
patch -Np1 -i ../gnuradio-boost-1.87.patch
patch -Np1 -i ../gnuradio-boost-1.89.patch
# shellcheck disable=SC2016
sed -i 's/-${DOCVER}//' CMakeLists.txt
# Strip build path from docs
sed -i 's/^STRIP_FROM_PATH.*/STRIP_FROM_PATH = @PROJECT_SOURCE_DIR@ @PROJECT_BINARY_DIR@/' \
docs/doxygen/Doxyfile.in
}
build() {
cd $srcdir/$_gitname
cmake \
-S . -B build \
-D CMAKE_INSTALL_PREFIX=/usr \
-D CMAKE_BUILD_TYPE=Release \
-W no-dev \
-D ENABLE_POSTINSTALL=OFF \
-D ENABLE_UHD_RFNOC=OFF
cmake --build build
}
check() {
cd $srcdir/$_gitname
xvfb-run ctest --test-dir build --output-on-failure
}
package() {
depends+=(
alsa-lib
boost-libs
fftw
fmt
jack
libiio
libsndfile
portaudio
python-cairo
python-gobject
python-lxml
python-opengl
python-pyqt5
python-pyqtgraph
qt5-base
qwt
spdlog
zeromq
)
optdepends=(
'python-setuptools: for gr_modtool'
)
provides=(
libgnuradio-analog.so
libgnuradio-audio.so
libgnuradio-blocks.so
libgnuradio-channels.so
libgnuradio-digital.so
libgnuradio-dtv.so
libgnuradio-fec.so
libgnuradio-fft.so
libgnuradio-filter.so
libgnuradio-iio.so
libgnuradio-network.so
libgnuradio-pmt.so
libgnuradio-qtgui.so
libgnuradio-runtime.so
libgnuradio-soapy.so
libgnuradio-trellis.so
libgnuradio-uhd.so
libgnuradio-video-sdl.so
libgnuradio-vocoder.so
libgnuradio-wavelet.so
libgnuradio-zeromq.so
)
backup=(
etc/gnuradio/conf.d/00-grc-docs.conf
etc/gnuradio/conf.d/gnuradio-runtime.conf
etc/gnuradio/conf.d/gr-audio-alsa.conf
etc/gnuradio/conf.d/gr-audio-jack.conf
etc/gnuradio/conf.d/gr-audio-oss.conf
etc/gnuradio/conf.d/gr-audio-portaudio.conf
etc/gnuradio/conf.d/gr-audio.conf
etc/gnuradio/conf.d/gr-qtgui.conf
etc/gnuradio/conf.d/grc.conf
etc/gnuradio/conf.d/modtool.conf
)
cd $srcdir/$_gitname
DESTDIR="$pkgdir" cmake --install build
install -vDm644 -t "$pkgdir/usr/lib/udev/rules.d/" "$srcdir/21-fcd.rules"
install -vDm644 -t "$pkgdir/usr/share/applications" grc/scripts/freedesktop/gnuradio-grc.desktop
install -vDm644 -t "$pkgdir/usr/share/mime/packages" grc/scripts/freedesktop/gnuradio-grc.xml
install -vDm644 -t "$pkgdir/usr/share/metainfo" grc/scripts/freedesktop/org.gnuradio.grc.metainfo.xml
for size in 16 24 32 48 64 128 256; do
install -vDm644 "grc/scripts/freedesktop/grc-icon-$size.png" \
"$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/gnuradio-grc.png"
done
}