# Maintainer: David Runge # Maintainer: Brett Cornwall # Contributor: speps # Contributor: Bernardo Barros # ALARM: Kevin Mihelich # - disable NEON # - disable java interface # - skip aarch64 - incompatible with beta luajit buildarch=4 pkgbase=csound pkgname=(csound csound-doc) pkgver=6.18.1 _manual_pkgver=6.17.0 pkgrel=2 pkgdesc="Programming language for sound rendering and signal processing" arch=(x86_64) url="https://csound.com" license=(LGPL2.1) # libpd needs to be packaged: https://github.com/libpd/libpd/releases # gmm > 5.1 breaks linear-algebra opcode: https://github.com/csound/csound/issues/920 makedepends=( alsa-lib cmake doxygen dssi fluidsynth hdf5 jack java-environment ladspa libmusicxml libsamplerate libsndfile libwebsockets llvm lua openssl portaudio portmidi portsmf python stk strip-nondeterminism swig wiiuse ) checkdepends=(cunit) source=( https://github.com/$pkgbase/$pkgbase/archive/$pkgver/$pkgname-$pkgver.tar.gz $pkgbase.sh https://github.com/$pkgbase/$pkgbase/releases/download/$_manual_pkgver/Csound${_manual_pkgver}_manual_html.zip https://github.com/$pkgbase/$pkgbase/releases/download/$_manual_pkgver/Csound${_manual_pkgver}_manual_pdf.zip ) sha512sums=('4ea4dccb36017c96482389a8d139f6f55c79c5ceb9cc34e6d2bfabcb930b4833d0301be4a4b21929db27b2d8ce30754b5c5867acd2ea5a849135e1b8d1506acf' '53a8ae1e61db2a3a492930ef0f0881b613ae47108c5e8de0a6e2aa28bcf7a5c93c7fea8b7fc2bbae29ab92e1e68bf94ba406be1255ad8ab5725ea9078c1fd6dc' 'ff2098828e51e78aa80b10736ea162d90c0b1bef3265e469951a5df63250d283e852490cb2a6599dcb1b8a5c185cf4f0b9534f501e4cb755b9da67ecfb1f4ba6' 'bf664bab1dec073b48853ccf7519086c55ad74af33db86ac7f95746231c18fb10d46a485047788050094e412d27bbd0df65e238d31b01b435989f2fd734189a6') b2sums=('1b258724dd986eea63921e36b43235eb05702729ee31e40ef724f7e7644755adeb5a3abdca9188d65296882d5f532693c0f9fc742ee5d39ccc7fbed860ec0bf4' '8a556685d0f9ee55c4de521b3d76fc729936e98e991e8ea860d64b29a1b09d142ab0a51548b2dddadb41ecb796e84ba1f8ed114494b4c67d7d6d8ab3475b2ede' '3148a60a398d49d6932864d84b2ee37ddf86d5389b91c99443b2c64f7c3b270d040b83ac88b80ebc772c198223682452da1618391fcc8963fe63151b7837037e' 'c0210f2fb97a6707ae6cd0a0cf38cd374f4d4c973b188ee8d418a7efd5c98dc1d4e61867de021ed2859bd8264cc0876b46deb565c358b6efea42f471d39671a9') prepare() { # fix file permissions in html manual find html/ -type f -exec chmod -c 644 {} \; } build() { local _java_major=$(java --version 2>/dev/null |grep 'openjdk'| cut -d ' ' -f2| cut -d '.' -f1) local cmake_options=( -B build -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=None # it's not allowed to redistribute the scansyn opcodes: https://github.com/csound/csound/issues/1148 -D BUILD_SCANSYN_OPCODES=OFF -D CMAKE_CXX_FLAGS="-Wno-error -Wno-missing-field-initializers -DPFFFT_SIMD_DISABLE" -D CMAKE_C_FLAGS="-Wno-error -Wno-missing-field-initializers -DPFFFT_SIMD_DISABLE" -D BUILD_JAVA_INTERFACE=0 \ -D JAVA_AWT_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib/libawt.so" -D JAVA_JVM_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib" -D LUA_LIBRARY=/usr/lib/liblua.so -D BUILD_STATIC_LIBRARY=ON -S $pkgbase-$pkgver -W no-dev ) cmake "${cmake_options[@]}" cmake --build build --verbose # For reproducibility (See https://bugs.archlinux.org/task/70331) find build -name '*.jar' -exec strip-nondeterminism {} + } check() { ctest --test-dir build --output-on-failure } package_csound() { groups=( pro-audio ) depends=( curl libcurl.so gcc-libs glibc libsamplerate libsamplerate.so libsndfile libsndfile.so ) optdepends=( 'alsa-lib: for librtalsa plugin' 'csound-doc: for the canonical Csound Reference Manual' 'csound-plugins: for additional opcodes' 'csoundqt: for frontend/ editor with integrated help' 'hdf5: for hdf5ops plugin' 'java-runtime: java integration' 'fluidsynth: for libfluidOpcodes plugin' 'jack: for libjacko, librtjack and libjackTransport plugins' 'liblo: for libosc plugin' 'ncurses: for libfaustcsound plugin' 'portmidi: for libpmidi plugin' 'portaudio: for librtpa plugin' 'libpulse: for librtpulse plugin' 'stk: for libstkops plugin' 'libwebsockets: for libwebsocketIO plugin' 'wiiuse: for libwiimote plugin' 'libx11: for libwidgets plugin' 'lua: for LUA integration' 'openssl: for libfaustcsound plugin' 'python-numpy: For Csound Python bindings' 'vim-csound: vim integration' 'zlib: for libfaustcsound plugin' ) provides=( libcsound64.so libcsnd6.so ) DESTDIR="$pkgdir" cmake --install build # export vars in profile.d install -vDm 755 "$srcdir/$pkgname.sh" -t "$pkgdir/etc/profile.d/" # rename extract executable due to name conflict with libextractor # https://github.com/csound/csound/issues/985 mv -v "$pkgdir/usr/bin/extract" "$pkgdir/usr/bin/$pkgname-extract" # moving csnd6.jar to /usr/share/java install -vdm 755 "$pkgdir/usr/share/java/" mv -v "$pkgdir/usr/lib/"*.jar "$pkgdir/usr/share/java/" } package_csound-doc() { pkgdesc+=" - documentation" install -vDm 644 Csound${_manual_pkgver}_manual.pdf "$pkgdir/usr/share/doc/$pkgname/$pkgbase-manual.pdf" install -dv "$pkgdir/usr/share/doc/$pkgname/html" cp -av html/* "$pkgdir/usr/share/doc/$pkgname/html/" } # vim:set ts=2 sw=2 et: