PKGBUILDs/community/gnuradio/PKGBUILD

142 lines
5.4 KiB
Bash
Raw Normal View History

2015-03-06 06:38:58 +00:00
# Maintainer: Kyle Keen <keenerd@gmail.com>
2020-10-18 19:27:25 +00:00
# Contributor: David Runge <dvzrv@archlinux.org>
2015-03-06 06:38:58 +00:00
# Contributor: Dominik Heidler <dheidler@gmail.com>
# Contributor: Jonatan Sastre <jsastreh [ at ] hotmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - set -Dhave_mfpu_neon=0 for v5/v6
pkgbase=gnuradio
pkgname=(gnuradio gnuradio-companion)
2021-12-12 23:48:48 +00:00
pkgver=3.9.4.0
2021-10-10 20:48:13 +00:00
pkgrel=1
2015-03-06 06:38:58 +00:00
pkgdesc="General purpose DSP and SDR toolkit. With drivers for usrp and fcd."
2018-01-06 20:50:53 +00:00
arch=('x86_64')
2019-08-21 12:37:24 +00:00
url="https://gnuradio.org"
2015-03-06 06:38:58 +00:00
license=('GPL')
2020-10-18 19:27:25 +00:00
depends=('python-numpy' 'gsl' 'blas' 'libuhd' 'libvolk' 'log4cpp' 'python-yaml'
2021-07-23 18:30:07 +00:00
'gmp' 'gsm' 'codec2' 'python-mako' 'python-click-plugins' 'soapysdr'
'pybind11')
2020-10-18 19:27:25 +00:00
makedepends=('alsa-lib' 'boost' 'cmake' 'fftw' 'glu' 'gtk3' 'jack' 'pango'
2020-12-31 14:54:40 +00:00
'portaudio' 'python-gobject' 'python-lxml' 'python-pyqt5' 'python-cairo'
2021-07-23 18:30:07 +00:00
'qwt' 'zeromq')
2015-03-06 06:38:58 +00:00
# todo
# split the gui components?
# build doxygen docs?
2015-03-15 16:56:21 +00:00
# gr-video-sdl ?
2015-03-06 06:38:58 +00:00
# icons
2019-08-21 12:37:24 +00:00
# add thrift?
2021-07-23 18:30:07 +00:00
# could soapy and pybind be optional makedeps?
2015-03-06 06:38:58 +00:00
# zeroc-ice: gr-ctrlport
# doxygen: C++ autogenerated documentation
2019-08-21 12:37:24 +00:00
# python-sphinx: Python autogenerated documentation
2015-03-06 06:38:58 +00:00
# secret release directory
2015-05-30 16:52:27 +00:00
#source=("http://s3-dist.gnuradio.org/gnuradio-$pkgver.tar.gz"
2019-04-29 12:41:21 +00:00
# neglected official release directory
#source=("https://gnuradio.org/releases/$pkgbase/$pkgbase-$pkgver.tar.gz"
2020-10-18 19:27:25 +00:00
# seems upstream stopped doing signed tags/release assets > 3.8.0.0 :-/
# https://github.com/gnuradio/gnuradio/issues/3858
2021-07-23 18:30:07 +00:00
source=("gnuradio-$pkgver.tgz::https://github.com/gnuradio/gnuradio/archive/refs/tags/v$pkgver.tar.gz"
#"https://github.com/gnuradio/gnuradio/releases/download/v$pkgver/gnuradio-$pkgver.tar.gz"
2020-10-18 19:27:25 +00:00
# "https://github.com/gnuradio/gnuradio/releases/download/v$pkgver/gnuradio-$pkgver.tar.gz.asc"
2020-12-09 15:13:00 +00:00
gnuradio-bind-placeholders.patch
2021-10-10 20:48:13 +00:00
gnuradio-qwt-6.2.patch
2019-08-21 12:37:24 +00:00
"21-fcd.rules")
2018-08-15 12:24:30 +00:00
validpgpkeys=('B90DDFAC56989BF62262EB812987C77CBB8ED9B2' # GNU Radio Project
'D74F9F146E7F755783583158B343B2BA293E5174') # Marcus Müller
2021-12-12 23:48:48 +00:00
sha512sums=('61c8a943f3cc0b33e4d4994b9e0bf5f79458bb21a2648fe6094dfb9b50edea7452f1bd35e6b1e566e331cf7fb4ea2a342d59bbd8798d5710d80eb037f427a183'
2020-12-31 14:54:40 +00:00
'f4e52e6e9ef6054f358d3ee00cbcb70bab65c36dfac8975c3182f6514c547905f36801a049f0918d69c9ffd98ce801891a3bfc4e4faeb8fb33582d84140a70b7'
2021-10-10 20:48:13 +00:00
'e169f3ac23930d4d42dabb96c3142dc254e7eb453e3e4bd3a96acdbccb1952e232447801e13eedad46874995a8f3c7ac1dc5abe79571b81f0715b70b593dbb98'
2020-10-18 19:27:25 +00:00
'6f02dc8e20a7a1cd11099c851a7c8427fcd21e9652e6cddd0a72ca747b0e93cd4fd1b7b7b7e426b6231348bcc34fb2417716a2f03c92ec141889edc65031c3a0')
2015-03-06 06:38:58 +00:00
2015-12-27 23:01:33 +00:00
prepare() {
2015-03-06 06:38:58 +00:00
cd "$srcdir/$pkgbase-$pkgver"
2021-07-23 18:30:07 +00:00
#patch -Np1 -i ../gnuradio-bind-placeholders.patch
2021-10-10 20:48:13 +00:00
patch -p1 -i ../gnuradio-qwt-6.2.patch # Fix build with qwt 6.2
2016-07-09 03:52:51 +00:00
sed -i -e "s|GR_PKG_LIBEXEC_DIR|GR_RUNTIME_DIR|" grc/scripts/freedesktop/CMakeLists.txt
2019-08-21 12:37:24 +00:00
#sed -i -e "s|/qwt$|/qwt5|" -e "s| qwt | qwt5 |" cmake/Modules/FindQwt.cmake
2021-07-23 18:30:07 +00:00
#sed -i -e "s| sphinx-build$| sphinx-build2|" cmake/Modules/FindSphinx.cmake
2019-08-21 12:37:24 +00:00
}
2015-03-06 06:38:58 +00:00
2019-08-21 12:37:24 +00:00
build() {
export PYTHON=python3
2015-03-06 06:38:58 +00:00
[[ $CARCH == "arm" || $CARCH == "armv6h" ]] && NEON="-Dhave_mfpu_neon=0"
2020-10-18 19:27:25 +00:00
cd "$pkgbase-$pkgver"
cmake -DCMAKE_INSTALL_PREFIX=/usr \
2019-08-21 12:37:24 +00:00
-DPYTHON_EXECUTABLE=$(which python3) \
2020-12-02 19:23:11 +00:00
-DPYTHON_INCLUDE_DIR=/usr/include/python3.9 \
-DPYTHON_LIBRARY=/usr/lib/libpython3.9.so \
-DGR_PYTHON_DIR=/usr/lib/python3.9/site-packages \
2016-04-25 13:37:19 +00:00
-DENABLE_INTERNAL_VOLK=OFF \
2015-03-06 06:38:58 +00:00
-DENABLE_GRC=ON \
2019-08-21 12:37:24 +00:00
-DENABLE_GR_QTGUI=ON \
-DQWT_LIBRARIES=/usr/lib/libqwt.so \
2020-10-18 19:27:25 +00:00
-Wno-dev $NEON \
-B build \
-S .
make VERBOSE=1 -C build
2015-03-06 06:38:58 +00:00
}
check() {
2020-10-18 19:27:25 +00:00
cd "$pkgbase-$pkgver"
# TODO: investigate zeromq related test failures
# export PYTHON=python3
# make VERBOSE=1 test -C build
2015-03-06 06:38:58 +00:00
}
package_gnuradio() {
2020-10-18 19:27:25 +00:00
depends+=('libasound.so' 'libboost_filesystem.so'
'libboost_program_options.so' 'libboost_thread.so' 'libfftw3f.so'
'libfftw3f_threads.so' 'libjack.so' 'libportaudio.so' 'libzmq.so')
2015-03-06 06:38:58 +00:00
optdepends=('boost: gr_modtool'
'cmake: gr_modtool'
'pkgconfig: libuhd')
2020-10-18 19:27:25 +00:00
provides=(
'libgnuradio-zeromq.so'
'libgnuradio-wavelet.so'
'libgnuradio-vocoder.so'
'libgnuradio-uhd.so'
'libgnuradio-trellis.so'
'libgnuradio-runtime.so'
'libgnuradio-qtgui.so'
'libgnuradio-pmt.so'
'libgnuradio-filter.so'
'libgnuradio-fft.so'
'libgnuradio-fec.so'
'libgnuradio-dtv.so'
'libgnuradio-digital.so'
'libgnuradio-channels.so'
'libgnuradio-blocks.so'
'libgnuradio-audio.so'
'libgnuradio-analog.so'
)
cd "$pkgbase-$pkgver"
make DESTDIR="$pkgdir" install -C build
install -vDm 644 ../21-fcd.rules -t "$pkgdir/usr/lib/udev/rules.d/"
install -vDm 644 grc/scripts/freedesktop/gnuradio-grc.desktop \
-t "$pkgdir/usr/share/applications/"
2015-03-06 06:38:58 +00:00
}
package_gnuradio-companion() {
pkgdesc="GUI frontend for gnuradio and SDR."
2019-08-21 12:37:24 +00:00
depends=('gnuradio' 'qwt' 'python-lxml'
2020-09-26 22:02:30 +00:00
'python-opengl' 'python-cairo' 'python-gobject' 'python-pyqt5')
2015-03-06 06:38:58 +00:00
# Yup, nothing in the package except dependencies,
2015-03-15 16:56:21 +00:00
# because more than five optdeps is too many for most people.
2015-03-06 06:38:58 +00:00
}
# options for armv6:
# -Dhave_mfpu_neon=0 \
# -DCMAKE_CXX_FLAGS:STRING="-march=armv6 -mfpu=vfp -mfloat-abi=hard" \
# -DCMAKE_C_FLAGS:STRING="-march=armv6 -mfpu=vfp -mfloat-abi=hard" \
# options for armv7:
# -DCMAKE_CXX_FLAGS:STRING="-march=armv7-a -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard"
# -DCMAKE_C_FLAGS:STRING="-march=armv7-a -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard"
# line 341 add /usr/lib/arm-linux-gnueabihf /usr/lib/arm-linux-gnueabi