# 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=22 pkgbase=csound pkgname=(csound csound-doc) pkgver=6.17.0 _manual_pkgver=6.17.0 pkgrel=1 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) options=(debug) source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/${pkgbase}/${pkgbase}/archive/${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=('d1555d149429bb94a456c5e65820e137117e81e9fdeab9f897e88909348c72e2e803b001c1221acf0d9cb5136d3703899e7472d370f5b5b5252c716d2d66f3a9' '53a8ae1e61db2a3a492930ef0f0881b613ae47108c5e8de0a6e2aa28bcf7a5c93c7fea8b7fc2bbae29ab92e1e68bf94ba406be1255ad8ab5725ea9078c1fd6dc' 'ff2098828e51e78aa80b10736ea162d90c0b1bef3265e469951a5df63250d283e852490cb2a6599dcb1b8a5c185cf4f0b9534f501e4cb755b9da67ecfb1f4ba6' 'bf664bab1dec073b48853ccf7519086c55ad74af33db86ac7f95746231c18fb10d46a485047788050094e412d27bbd0df65e238d31b01b435989f2fd734189a6') b2sums=('6c5548645432047a48cd25cd75ee7353c67f799212b95dfcace544c961297c8278cbe9e359b00a6f1834379c9e4c4df8d69fdd06838b04fb84ec3cc3921f97a1' '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) # it's not allowed to redistribute the scansyn opcodes: https://github.com/csound/csound/issues/1148 # the python plugin is not python3 compatible: https://github.com/csound/csound/issues/631 cmake -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ -DBUILD_SCANSYN_OPCODES=OFF \ -DCMAKE_CXX_FLAGS="-Wno-error -Wno-missing-field-initializers -DPFFFT_SIMD_DISABLE" \ -DCMAKE_C_FLAGS="-Wno-error -Wno-missing-field-initializers -DPFFFT_SIMD_DISABLE" \ -DBUILD_JAVA_INTERFACE=0 \ -DJAVA_AWT_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib/libawt.so" \ -DJAVA_JVM_LIBRARY="/usr/lib/jvm/java-${_java_major}-openjdk/jre/lib" \ -DLUA_LIBRARY=/usr/lib/liblua.so \ -DBUILD_STATIC_LIBRARY=ON \ -W no-dev \ -B build \ -S "${pkgbase}-${pkgver}" make VERBOSE=1 -C build # For reproducibility (See https://bugs.archlinux.org/task/70331) find build -name '*.jar' -exec strip-nondeterminism {} + } check() { make test -C build } package_csound() { groups=(pro-audio) depends=(gcc-libs glibc libcurl.so libsamplerate.so 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) make VERBOSE=1 DESTDIR="${pkgdir}/" install -C 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: