PKGBUILDs/community/zynaddsubfx/PKGBUILD
2022-01-26 13:58:10 +00:00

190 lines
9.2 KiB
Bash

# Maintainer: David Runge <dvzrv@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: SpepS <dreamspepser at yahoo dot it>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: DonVla <donvla@users.sourceforge.net>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - don't build with neon (-DNoNeonPlease=1)
pkgname=zynaddsubfx
pkgver=3.0.6
pkgrel=2
_mruby_zest_commit='dd3d45ba333011f2359e86f9a758d9836e53fe5f' # refs/tags/3.0.6
pkgdesc="Opensource software synthesizer capable of making a countless number of instruments."
arch=(x86_64)
url="http://zynaddsubfx.sourceforge.net"
license=(GPL2)
groups=(lv2-plugins pro-audio vst-plugins)
# NOTE: fftw is dlopen()'ed
depends=(fftw gcc-libs glibc hicolor-icon-theme libglvnd libuv zlib)
makedepends=(alsa-lib asciidoc asciidoctor cmake cxxtest doxygen git jack liblo
libxpm mxml portaudio rtosc ruby-rake ttf-roboto)
optdepends=(
'lv2-host: for using the LV2 plugin'
'vst-host: for using the VST plugin'
)
source=(
"https://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
"${pkgname}-3.0.6-system_rtosc.patch"
"${pkgname}-3.0.6-libzest_location.patch"
"${pkgname}-mruby-zest-build::git+https://github.com/mruby-zest/mruby-zest-build#commit=${_mruby_zest_commit}"
"${pkgname}-mruby::git+https://github.com/mruby/mruby"
"${pkgname}-nanovg::git+https://github.com/memononen/nanovg"
"${pkgname}-mruby-sleep::git+https://github.com/matsumoto-r/mruby-sleep"
"${pkgname}-mruby-dir-glob::git+https://github.com/gromnitsky/mruby-dir-glob"
"${pkgname}-mruby-regexp-pcre::git+https://github.com/iij/mruby-regexp-pcre"
"${pkgname}-mruby-set::git+https://github.com/yui-knk/mruby-set"
"${pkgname}-mruby-io::git+https://github.com/iij/mruby-io"
"${pkgname}-mruby-glew::git+https://github.com/IceDragon200/mruby-glew"
"${pkgname}-mruby-glfw3::git+https://github.com/IceDragon200/mruby-glfw3"
"${pkgname}-mruby-nanovg::git+https://github.com/mruby-zest/mruby-nanovg"
"${pkgname}-mruby-qml-spawn::git+https://github.com/mruby-zest/mruby-qml-spawn"
"${pkgname}-mruby-qml-parse::git+https://github.com/mruby-zest/mruby-qml-parse"
"${pkgname}-mruby-complex::git+https://github.com/pbosetti/mruby-complex"
"${pkgname}-mruby-dir::git+https://github.com/iij/mruby-dir"
"${pkgname}-mruby-errno::git+https://github.com/iij/mruby-errno"
"${pkgname}-mruby-file-stat::git+https://github.com/ksss/mruby-file-stat"
"${pkgname}-mruby-process::git+https://github.com/iij/mruby-process"
"${pkgname}-mruby-zest-build-3.0.6-devendor_rtosc.patch"
"${pkgname}-mruby-zest-build-3.0.6-libzest_location.patch"
"${pkgname}-mruby-zest-build-3.0.6-system_wide_location.patch"
"${pkgname}-mruby-zest-build-3.0.6-cflags_ldflags.patch"
)
sha512sums=('86311f00d97e20c7eb22a46c99736c56765ed9737e728ef380a324e4a92c731086ed74f5d7bfeae104b690ab1ee1b40bfb8f240bc4c46f8afd47308ec48cbcea'
'c84d185e7bcc3d7b0bd44941999b9b14638e230c5c5d86b487a39d6b793b56649b6aacde8d27b0aef567eaa3d381d3906d7bd31fd5fd74d5a662e21d188fcdc9'
'695f5776b07e4ace611f358ea1007e0023f1ba6dcf4ebb85974b461490850c51bb85903abafc07b23236051ab161cc0e538a127a11efd0b1dfd129dc99f37d77'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'0677bf66e5996b09298a3f7e3aabf0d5d8a5bbdca6ed869038e1a35cbef94c2bafcfeb92cd163f43476aadf5c915cde92c75876c5ff3964d5b2049509075a765'
'd7ef0b4e8068d1d09d34c913d7b70342eaaa2eb8dae619d223e3e03ac667cf76c6e5615b60efabaf7eae594e3a5d6f40bc0cf10b8e939da1aa349bc27dff4ea8'
'2a6b57df3a9ffac669341d37739b281ce32696f82d82ee17220fdc9e426729d40f91cf50e1b58b7be1cc9bc5651d99794ae5e1bbd32f25c14aaf489989e10aab'
'a3912a879cb78565934a5cdea97ac1623f65a02d26ded548d851cd271da62390eb3fa9f26dfff153eb2d18c5bf30ba47e19fcbf1985e4b03772d2df936998511')
b2sums=('4adbeffb9bc0bd77bf81a6734f5c26fc676426e644e27cebb8e54e8d74d869c0e1b468782cd1a64aacef8f9b788d434a8d30a194944650eea03c4fd146ee7bf7'
'd9586ef1dd7866963d342f9be8def639ab4428a173f8abc2e503643d87e2c9087ff8d6af538df7c8f8df8f8facd409e8665735ef905deae8dfe3a840de340ea1'
'68a24898a4646c6d84e782c4e31a962de456fa315d5c398c16b013efa684683f80cc411bf51628bb9cff799fc77f669d56e5d44af5938e05d0ec64322ad30ec7'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'70ea96032e5f3f20f4270339f03b508c5a5e5d62859d6771adce452fbcde48f89edb4ef8908255cbf915f1088ce5d3fc5baa1b1e74794db3bc975e48c3425d14'
'2f1782fd907fb0e284c16ee0f09e1d93d05984676707da2d9d47038880e723379535f8d3934f97753cc9a6865aed957a1c230840dda3a2cb49a26cb4ff2cd034'
'69ccb494e863caf8e47eaa70609940d532cfae6265eeffc626f24ed6a2290511d828d63405a7560fd567b0ab01bdabedd85aa3fe28bec5a638477654f9440f40'
'cab9048aede5bd346493ede996752b902f78de95de97310622caa0f7e473eba46159f1ee5fc925cf9ffc3cf1bd3f98c6dac521f354ac1be074346015bf9ded14')
prepare() {
(
cd "${pkgname}-${pkgver}"
# https://github.com/zynaddsubfx/zynaddsubfx/pull/170
# https://github.com/zynaddsubfx/zynaddsubfx/pull/171
patch -Np1 -i ../"${pkgname}-3.0.6-system_rtosc.patch"
# load libzest.so from custom system location in /usr/lib/zynaddsubfx/
patch -Np1 -i ../"${pkgname}-3.0.6-libzest_location.patch"
# disable broken PortChecker test
sed -e '/add_test(PortChecker/d' -i src/Tests/CMakeLists.txt
)
(
cd "${pkgname}-mruby-zest-build"
git submodule init
git submodule deinit deps/rtosc
git submodule deinit deps/libuv
git config submodule.mruby.url "${srcdir}/${pkgname}-mruby"
git config submodule.deps/nanovg.url "${srcdir}/${pkgname}-nanovg"
git config submodule.deps/mruby-sleep.url "${srcdir}/${pkgname}-mruby-sleep"
git config submodule.deps/mruby-dir-glob.url "${srcdir}/${pkgname}-mruby-dir-glob"
git config submodule.deps/mruby-regexp-pcre.url "${srcdir}/${pkgname}-mruby-regexp-pcre"
git config submodule.deps/mruby-set.url "${srcdir}/${pkgname}-mruby-set"
git config submodule.deps/mruby-io.url "${srcdir}/${pkgname}-mruby-io"
git config submodule.deps/mruby-glew.url "${srcdir}/${pkgname}-mruby-glew"
git config submodule.deps/mruby-glfw3.url "${srcdir}/${pkgname}-mruby-glfw3"
git config submodule.deps/mruby-nanovg.url "${srcdir}/${pkgname}-mruby-nanovg"
git config submodule.deps/mruby-qml-spawn.url "${srcdir}/${pkgname}-mruby-qml-spawn"
git config submodule.deps/mruby-qml-parse.url "${srcdir}/${pkgname}-mruby-qml-parse"
git config submodule.deps/mruby-complex.url "${srcdir}/${pkgname}-mruby-complex"
git config submodule.deps/mruby-dir.url "${srcdir}/${pkgname}-mruby-dir"
git config submodule.deps/mruby-errno.url "${srcdir}/${pkgname}-mruby-errno"
git config submodule.deps/mruby-file-stat.url "${srcdir}/${pkgname}-mruby-file-stat"
git config submodule.deps/mruby-process.url "${srcdir}/${pkgname}-mruby-process"
git submodule update
# use system provided rtosc
patch -Np1 -i ../"${pkgname}-mruby-zest-build-3.0.6-devendor_rtosc.patch"
# load libzest.so from custom system location in /usr/lib/zynaddsubfx/
patch -Np1 -i ../"${pkgname}-mruby-zest-build-3.0.6-libzest_location.patch"
# load qml data from custom system location in /usr/share/zynaddsubfx/qml/
# load JSON schema from custom system location in /usr/share/zynaddsubfx/schema/
# load fonts from custom system location in /usr/share/fonts/TTF/
patch -Np1 -i ../"${pkgname}-mruby-zest-build-3.0.6-system_wide_location.patch"
# incorporate LDFLAGS to achieve full RELRO
patch -Np1 -i ../"${pkgname}-mruby-zest-build-3.0.6-cflags_ldflags.patch"
)
}
build() {
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=None \
-DDefaultOutput=jack \
-DDefaultInput=jack \
-DGuiModule=zest \
-DNoNeonPlease=1 \
-DZYN_SYSTEM_RTOSC=ON \
-W no-dev \
-B build \
-S "${pkgname}-${pkgver}"
make VERBOSE=1 -C build
make man -C "${pkgname}-${pkgver}/doc"
# TODO: fix full RELRO
make -C "${pkgname}-mruby-zest-build"
}
check() {
make -k test ARGS='-VVd' -C build
}
package() {
depends+=(libasound.so libjack.so liblo.so libmxml.so libportaudio.so
librtosc.so librtosc-cpp.so)
make DESTDIR="${pkgdir}/" install -C build
install -vDm 644 "${pkgname}-${pkgver}/${pkgname}.svg" -t "${pkgdir}/usr/share/icons/hicolor/scalable/apps/"
install -vDm 644 "${pkgname}-${pkgver}/doc/${pkgname}.1" -t "${pkgdir}/usr/share/man/man1/"
cd "${pkgname}-mruby-zest-build"
install -vDm 755 zest "${pkgdir}/usr/bin/zyn-fusion"
install -vDm 755 libzest.so -t "${pkgdir}/usr/lib/$pkgname/"
install -vDm 644 src/mruby-zest/{example,qml}/*.qml -t "${pkgdir}/usr/share/${pkgname}/qml/"
install -vDm 644 src/osc-bridge/schema/test.json -t "${pkgdir}/usr/share/${pkgname}/schema/"
install -vDm 644 completions/zyn-fusion -t "${pkgdir}/usr/share/bash-completion/completions/"
}