# 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.16.0 pkgrel=5 pkgdesc="A 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' # Build checks for python sitepackages dir 'stk' 'strip-nondeterminism' 'swig' 'wiiuse' ) checkdepends=('cunit') source=("${pkgbase}-${pkgver}.tar.gz::https://github.com/${pkgbase}/${pkgbase}/archive/${pkgver}.tar.gz" "${pkgbase}.sh" "https://github.com/${pkgbase}/${pkgbase}/releases/download/${pkgver}/Csound${pkgver}_manual_html.zip" "https://github.com/${pkgbase}/${pkgbase}/releases/download/${pkgver}/Csound${pkgver}_manual_pdf.zip") sha512sums=('218d26604ebc7761b77a19c2aebbf337085fe16ecb0fbefcbca2b4fdc721830e9bbf170a280d1b44534ac5f23e46ec88c01fd2bbbcf882cbca010ceb098d59eb' '53a8ae1e61db2a3a492930ef0f0881b613ae47108c5e8de0a6e2aa28bcf7a5c93c7fea8b7fc2bbae29ab92e1e68bf94ba406be1255ad8ab5725ea9078c1fd6dc' 'e550a832e365ab186533045d110259699039d08a85ec2f53d4fe36aa31004725b1dc6732f71d9895fa19b3df5f4ec720af1b4f80856a14b0ffbd844c4ab2dbe3' '18347ce7080ca7997e98f8addffcc492c7ec5d8e037e71a33bb46fdbc5b58ec26ee42f370689fc228d4150bd9dedc31c7824ec4c19f3243d512977f4380f9490') b2sums=('708bf1e28078798863b8e347624eadb0ac215cfad3718bd651d6b4a54cafd844f516d5f06fad4cef3ece9f48398e46a6ac803e9385b1a2cc159f333613305a91' '8a556685d0f9ee55c4de521b3d76fc729936e98e991e8ea860d64b29a1b09d142ab0a51548b2dddadb41ecb796e84ba1f8ed114494b4c67d7d6d8ab3475b2ede' '3bf6e2202a42dfa826d39ef41282e1942f26cc3f6a3358e0de3a006f102b686342b4e1824a1c3a48ac37ffed31d9353e6946d948751dcc059819da649d63d9cb' '7bb35f806568a80abbd84a4f4988217bea09f3174881d802f6d61505f044c8a26b59036dcb61ead5315e756a4512eb1fb56b2824f27f09899a8fe1664a386754') 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) cd "${pkgbase}-${pkgver}" # 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 . make VERBOSE=1 -C build } check() { cd "${pkgbase}-${pkgver}" 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' # TODO: csound-plugins currently destabilizes csound. Once that # package is pushed into the repos we can suggest it. #'csound-plugins: for extra opcodes not shipped with Csound' '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' 'vim-csound: vim integration' 'zlib: for libfaustcsound plugin') provides=('libcsound64.so' 'libcsnd6.so') cd "${pkgname}-${pkgver}" 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/" # For reproducibility (See https://bugs.archlinux.org/task/70331) find ${pkgdir} -name '*.jar' -exec strip-nondeterminism {} + } package_csound-doc() { license=('LGPL2.1' 'GPL') install -vDm 644 "${srcdir}/Csound${pkgver}_manual.pdf" \ "${pkgdir}/usr/share/doc/${pkgname}/${pkgbase}-manual.pdf" install -dv "${pkgdir}/usr/share/doc/${pkgname}/html" cp -av "${srcdir}/html/"* "${pkgdir}/usr/share/doc/${pkgname}/html" } # vim:set ts=2 sw=2 et: