diff --git a/community/x42-plugins/PKGBUILD b/community/x42-plugins/PKGBUILD index 1492f199d..dd8f2f27a 100644 --- a/community/x42-plugins/PKGBUILD +++ b/community/x42-plugins/PKGBUILD @@ -4,43 +4,77 @@ # ALARM: Kevin Mihelich <kevin@archlinuxarm.org> # - export OPTIMIZATIONS to override Makefiles without x86isms -pkgname=x42-plugins -pkgver=20221119 +pkgbase=x42-plugins +pkgname=(x42-plugins x42-plugins-lv2 x42-plugins-standalone) +pkgver=20230315 pkgrel=1 -pkgdesc="Collection of LV2 plugins" +pkgdesc="Professional audio processing units available as LV2-plugin and JACK-application" arch=(x86_64) -url="https://github.com/x42/x42-plugins" +url="https://x42-plugins.com/x42/" license=(GPL2 GPL3) -groups=(lv2-plugins pro-audio) -depends=(cairo ftgl gcc-libs glibc hicolor-icon-theme libglvnd libx11 lv2-host) -makedepends=(fftw gendesk glib2 help2man jack liblo libltc libsamplerate -libsndfile lv2 pango ttf-dejavu zita-convolver) -checkdepends=(kxstudio-lv2-extensions lv2lint) -optdepends=( - 'jack: for standalone applications' - 'liblo: for standalone applications' +makedepends=( + cairo + fftw + ftgl + gendesk + glib2 + glu + help2man + jack + liblo + libltc + libsamplerate + libsndfile + lv2 + pango + ttf-dejavu + zita-convolver +) +checkdepends=( + kxstudio-lv2-extensions + lv2lint ) -options=(debug) source=( - http://gareus.org/misc/$pkgname/$pkgname-$pkgver.tar.xz + https://gareus.org/misc/$pkgname/$pkgname-$pkgver.tar.xz $pkgname.png::https://x42-plugins.com/x42/static/img/x42.png $pkgname.directory $pkgname.menu ) -sha512sums=('45d40da23326a6aa977e82a6f7b9fb4655395e3ee5b52065656ae84535f2fc3a54cde218637fbaec59ec44618f66d58c1c1cc7f08a7abf6dcc1939f0b5262daa' +sha512sums=('e767c4c3e1983a6ddc9138bf493e2593062c7e6f09617ffb4804c97b6c3060ea04a1244c9533d45bcdfb51fe212b6198484eba6939d1720713214490961d0c97' '956fdd8e04c846d06a5267d1748916744418e0ddfce0ac2e9dd3a1c1376aea61499177af80709d9fe78f8c0c2ddcbf9f9e5b2e413adc9a7eca9b648a87ad4860' 'fef75b22b2c1fed8586af4dfd01ea291a7c1506e80ce384f05f13dc04c4b7e3e934003c20d89ae94f36ad1021b7ad75097da836ca30ee965b4107b559305b496' '411015b0feb8a289272cb821afa7e2a284d3e9d994a446baa73b3a6ce0f0ebd1e94c4cb3392a0afb1d741ce6d8b2d14c9bd124a0684b830275b4ba8e14680aa3') -b2sums=('0317bb3eeebc94e221ca29f714f6119565e7a2198e696207baf2a972a7bf96726dd3a5fcaec436f9ca547fb167cca5fcfd8f72fa5012b356036f19846d003d4e' +b2sums=('8ded52d81fb3ffe3b955dd5c5be6b310bdbab87dfea421f8e289c8cb1c490d59e7c68da874c6ca41634825e0422dbb3e705483cc823d0958aaa7e530f45a3a9a' '35a8cfcdf7f8c57ba655049a6d75b3bf9d253c25702a3f191d3f6cab215887f7de5025d025993861ae88c1b4daae132e9cc1ddf083e5b822f1b53a683c0fcaa3' 'fb6557cd2e8b83dae1cb38503f2a72093085ddcc0a4ba2e5e0375f7063b83b3fb4180091ce10524cd336eeb33cffed45ada93055b960c9189f83d664216b33ee' '9c695f58099fcbfdce3e693e491d851ff7894a650ea12e079894176ef054b5f592785467c286bd8feaa340fdcdfb53d930b3a44ea890112e3fc1a4d172beb243') -_names=(darc dpl fat1 fil4 matrixmixer8x8 meter mixtri phaserotate scope spectr stepseq tuna) +_names=( + darc + dpl + fat1 + fil4 + matrixmixer8x8 + meter + mixtri + phaserotate + scope + spectr + stepseq + tuna +) + +_pick() { + local p="$1" f d; shift + for f; do + d="$srcdir/$p/${f#$pkgdir/}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} prepare() { - cd $pkgname-$pkgver - declare -A comments=( ["darc"]="A general purpose audio signal compressor" ["dpl"]="Look-ahead digital peak limiter intended but not limited to the final step of mastering or mixing" @@ -129,6 +163,8 @@ prepare() { esac done sed -e '/Categories/d' -i *.desktop + + cd $pkgname-$pkgver # moving images to correct location so installation is not such a hassle later on mv -v fat1.lv2/img/x42{_,-}fat1.png mv -v fil4.lv2/img/x42{_,-}fil4.png @@ -138,7 +174,7 @@ prepare() { } build() { - cd $pkgname-$pkgver + cd $pkgbase-$pkgver # replace ttf-freefont with ttf-liberation export FONTFILE=/usr/share/fonts/TTF/DejaVuSans-Bold.ttf export OPTIMIZATIONS="-ffast-math -fomit-frame-pointer -O3 -fno-finite-math-only" @@ -147,102 +183,233 @@ build() { check() { local _name _version _convolver _controlfilter _default _meter _midifilter _onsettrigger _sisco _tuna - local _controlfilters=(exp invert linearscale lowpass nlog) - local _convolvers=(Mono MonoToStereo Stereo) - local _defaults=(mono stereo) - local _meters=(VUmono VUstereo BBCmono BBCstereo BBCM6 EBUmono EBUstereo - DINmono DINstereo NORmono NORstereo COR EBUr128 goniometer spectr30mono - spectr30stereo dBTPmono dBTPstereo K12mono K12stereo K14mono K14stereo - K20mono K20stereo phasewheel stereoscope dr14mono dr14stereo TPnRMSmono - TPnRMSstereo SigDistHist bitmeter surround8 surround5 surround4 surround3) - local _midifilters=(cctonote channelfilter channelmap chokefilter - enforcescale eventblocker keyrange keysplit mapcc mapkeychannel mapkeyscale - midichord mididelay mididup midistrum miditranspose monolegato - noactivesensing nodup notetocc notetoggle ntapdelay onechannelfilter passthru - quantize randvelocity scalecc sostenuto velocitygamma velocityrange - velocityscale) - local _onsettriggers=(bassdrum_mono bassdrum_stereo) - local _siscos=(Mono Stereo 3chan 4chan) - local _tunas=(one two) - local _zconvolvers=(Mono CfgMono Stereo CfgStereo MonoToStereo - CfgMonoToStereo) + local _controlfilters=( + exp + invert + linearscale + lowpass + nlog + ) + local _convolvers=( + Mono + MonoToStereo + Stereo + ) + local _defaults=( + mono + stereo + ) + local _meters=( + VUmono + VUstereo + BBCmono + BBCstereo + BBCM6 + EBUmono + EBUstereo + DINmono + DINstereo + NORmono + NORstereo + COR + EBUr128 + goniometer + spectr30mono + spectr30stereo + dBTPmono + dBTPstereo + K12mono + K12stereo + K14mono + K14stereo + K20mono + K20stereo + phasewheel + stereoscope + dr14mono + dr14stereo + TPnRMSmono + TPnRMSstereo + SigDistHist + bitmeter + surround8 + surround5 + surround4 + surround3 + ) + local _midifilters=( + cctonote + channelfilter + channelmap + chokefilter + enforcescale + eventblocker + keyrange + keysplit + mapcc + mapkeychannel + mapkeyscale + midichord + mididelay + mididup + midistrum + miditranspose + monolegato + noactivesensing + nodup + notetocc + notetoggle + ntapdelay + onechannelfilter + passthru + quantize + randvelocity + scalecc + sostenuto + velocitygamma + velocityrange + velocityscale + ) + local _onsettriggers=( + bassdrum_mono + bassdrum_stereo + ) + local _siscos=( + Mono + Stereo + 3chan + 4chan + ) + local _tunas=( + one + two + ) + local _zconvolvers=( + Mono + CfgMono + Stereo + CfgStereo + MonoToStereo + CfgMonoToStereo + ) + local _url="http://gareus.org/oss/lv2/" - cd $pkgname-$pkgver + cd $pkgbase-$pkgver while IFS=" " read -r _name _version; do echo "lv2lint test for $_name $_version" case "$_name" in controlfilter.lv2 ) for _controlfilter in "${_controlfilters[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_controlfilter" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_controlfilter" done ;; convoLV2 ) for _convolver in "${_convolvers[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/$_name#$_convolver" + lv2lint -Mpack -I "$_name/build" "${_url}$_name#$_convolver" done ;; darc.lv2|dpl.lv2|fil4.lv2 ) for _default in "${_defaults[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_default" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_default" done ;; matrixmixer.lv2 ) - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#i8o8" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#i8o8" ;; meters.lv2 ) for _meter in "${_meters[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_meter" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_meter" done ;; midifilter.lv2 ) for _midifilter in "${_midifilters[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_midifilter" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_midifilter" done ;; mixtri.lv2 ) - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#lv2" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#lv2" ;; onsettrigger.lv2 ) for _onsettrigger in "${_onsettriggers[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_onsettrigger" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_onsettrigger" done ;; sisco.lv2 ) for _sisco in "${_siscos[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_sisco" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_sisco" done ;; spectra.lv2 ) - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#Mono" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#Mono" ;; stepseq.lv2 ) - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#s8n8" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#s8n8" ;; tuna.lv2 ) for _tuna in "${_tunas[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}#$_tuna" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}#$_tuna" done ;; zconvo.lv2 ) for _zconvolver in "${_zconvolvers[@]}"; do - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/zeroconvolv#$_zconvolver" + lv2lint -Mpack -I "$_name/build" "${_url}zeroconvolv#$_zconvolver" done ;; robtk ) echo "Toolkit. Skipping..." ;; * ) - lv2lint -Mpack -I "$_name/build" "http://gareus.org/oss/lv2/${_name//.lv2/}" + lv2lint -Mpack -I "$_name/build" "${_url}${_name//.lv2/}" ;; esac done < plugin.versions } -package() { - depends+=(libfftw3f.so libgobject-2.0.so libltc.so libpango-1.0.so - libpangocairo-1.0.so libsamplerate.so libsndfile.so libzita-convolver.so) +package_x42-plugins() { + depends=( + "x42-plugins-lv2=$pkgver" + "x42-plugins-standalone=$pkgver" + ) + make install DESTDIR="$pkgdir/" PREFIX=/usr -C $pkgbase-$pkgver + + ( + cd "$pkgdir" + _pick $pkgbase-lv2 usr/lib/lv2 + + _pick $pkgbase-standalone usr/bin + _pick $pkgbase-standalone usr/share + ) +} + +package_x42-plugins-lv2() { + pkgdesc+=" - LV2 plugins" + depends=( + cairo + ftgl + fftw libfftw3f.so + gcc-libs + glib2 libgobject-2.0.so + glibc + libglvnd + libltc libltc.so + libsamplerate libsamplerate.so + libsndfile libsndfile.so + libx11 + lv2-host + pango libpango-1.0.so libpangocairo-1.0.so + zita-convolver libzita-convolver.so + ) + groups=( + lv2-plugins + pro-audio + ) + + mv -v $pkgname/* "$pkgdir" +} + +package_x42-plugins-standalone() { declare -A _dirs=( ["darc"]="darc.lv2" ["dpl"]="dpl.lv2" @@ -257,19 +424,40 @@ package() { ["stepseq"]="stepseq.lv2" ["tuna"]="tuna.lv2" ) - cd $pkgname-$pkgver - make install DESTDIR="$pkgdir/" PREFIX=/usr + + pkgdesc+=" - JACK standalones" + depends=( + cairo + fftw libfftw3f.so + gcc-libs + glib2 libgobject-2.0.so + glibc + hicolor-icon-theme + jack libjack.so + libglvnd + liblo liblo.so + libltc libltc.so + libx11 + pango libpango-1.0.so libpangocairo-1.0.so + ) + groups=( + pro-audio + ) + + mv -v $pkgname/* "$pkgdir" # xdg desktop integration install -vDm 644 ./*.desktop -t "$pkgdir/usr/share/applications/" + + cd $pkgbase-$pkgver # icons for name in "${_names[@]}"; do install -vDm 644 "${_dirs[$name]}/img/x42-$name.png" -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/" done - install -vDm 644 ../$pkgname.png -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/" + install -vDm 644 ../$pkgbase.png -t "$pkgdir/usr/share/icons/hicolor/256x256/apps/" # menu integration - install -vDm 644 ../$pkgname.menu -t "$pkgdir/etc/xdg/menus/applications-merged/" - install -vDm 644 ../$pkgname.directory -t "$pkgdir/usr/share/desktop-directories/" - install -vDm 644 plugin.news -t "$pkgdir/usr/share/doc/$pkgname" + install -vDm 644 ../$pkgbase.menu -t "$pkgdir/etc/xdg/menus/applications-merged/" + install -vDm 644 ../$pkgbase.directory -t "$pkgdir/usr/share/desktop-directories/" } + # vim:set ts=2 sw=2 et: