Signed-off-by: falkTX <falktx@falktx.com>master
| @@ -4,11 +4,14 @@ | |||||
| *.debian.* | *.debian.* | ||||
| *.dsc | *.dsc | ||||
| *.orig.* | *.orig.* | ||||
| *.tar.* | |||||
| files | files | ||||
| include-binaries | include-binaries | ||||
| /libs/*/* | /libs/*/* | ||||
| !/libs/*/debian | |||||
| /libs/*/debian/* | |||||
| !/libs/*/debian/patches/*.patch | !/libs/*/debian/patches/*.patch | ||||
| !/libs/*/debian/patches/series | !/libs/*/debian/patches/series | ||||
| !/libs/*/debian/source/format | !/libs/*/debian/source/format | ||||
| @@ -16,4 +19,9 @@ include-binaries | |||||
| !/libs/*/debian/control | !/libs/*/debian/control | ||||
| !/libs/*/debian/rules | !/libs/*/debian/rules | ||||
| !/libs/kxstudio-build-scripts/*.mk | |||||
| !/libs/kxstudio-build-scripts/*.sh | |||||
| !/libs/kxstudio-build-scripts/*.supp | |||||
| !/libs/kxstudio-build-scripts/debian/copyright | |||||
| /kxstudio/kxstudio-repos/keyrings/ | /kxstudio/kxstudio-repos/keyrings/ | ||||
| @@ -1,3 +1,10 @@ | |||||
| kxstudio-build-scripts (4) focal; urgency=medium | |||||
| * Add lv2lint and lilv-utils as dependencies | |||||
| * Start audio plugin test scripts | |||||
| -- falkTX <falktx@falktx.com> Mon, 09 May 2022 10:11:38 +0100 | |||||
| kxstudio-build-scripts (3) focal; urgency=medium | kxstudio-build-scripts (3) focal; urgency=medium | ||||
| * Build carla for testing plugins | * Build carla for testing plugins | ||||
| @@ -14,7 +14,7 @@ Description: Build scripts for KXStudio repositories | |||||
| Package: kxstudio-audio-plugin-tester | Package: kxstudio-audio-plugin-tester | ||||
| Architecture: all | Architecture: all | ||||
| Depends: ${misc:Depends}, kxstudio-build-scripts, lv2lint | |||||
| Depends: ${misc:Depends}, kxstudio-build-scripts, lilv-utils, lv2lint, valgrind | |||||
| Description: Audio plugin test setup for KXStudio repositories | Description: Audio plugin test setup for KXStudio repositories | ||||
| This package provides the setup used for testing audio plugins | This package provides the setup used for testing audio plugins | ||||
| in the KXStudio repositories. | in the KXStudio repositories. | ||||
| @@ -0,0 +1,7 @@ | |||||
| #!/usr/bin/make -f | |||||
| include /usr/share/dpkg/kxstudio.mk | |||||
| define kxstudio_audio_plugin_test | |||||
| /usr/share/dpkg/kxstudio-audio-plugin.sh | |||||
| endef | |||||
| @@ -0,0 +1,89 @@ | |||||
| #!/bin/bash | |||||
| set -e | |||||
| if [ "$(cat debian/control | grep 'Package: ' | wc -l)" -eq 1 ]; then | |||||
| PKG_NAME=$(cat debian/control | awk 'sub("Package: ","")') | |||||
| else | |||||
| PKG_NAME=${PKG_NAME:=tmp} | |||||
| fi | |||||
| if [ ! -d debian/${PKG_NAME} ]; then | |||||
| echo "package is not installed, abort!" | |||||
| exit 1 | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/local/lib ]; then | |||||
| echo "error: files are installed in /usr/local" | |||||
| exit 1 | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/x86_64-linux-gnu ]; then | |||||
| echo "error: files are installed in multi-arch lib dir" | |||||
| exit 1 | |||||
| fi | |||||
| CARLA_BRIDGE_NATIVE_BIN=/opt/kxstudio/lib/carla/carla-bridge-native | |||||
| CARLA_DISCOVERY_NATIVE_BIN=/opt/kxstudio/lib/carla/carla-discovery-native | |||||
| VALRIND_BIN="valgrind --error-exitcode=255 --leak-check=full --track-origins=yes --suppressions=$(dirname ${0})/kxstudio-audio-plugin.supp" | |||||
| VALRIND_BRIDGE_BIN="${VALRIND_BIN} ${CARLA_BRIDGE_NATIVE_BIN}" | |||||
| VALRIND_DISCOVERY_BIN="${VALRIND_BIN} ${CARLA_DISCOVERY_NATIVE_BIN}" | |||||
| export CARLA_BRIDGE_DUMMY=1 | |||||
| export CARLA_BRIDGE_TESTING=native | |||||
| export LV2_PATH=$(pwd)/debian/${PKG_NAME}/usr/lib/lv2:/tmp/lv2-spec | |||||
| rm -rf /tmp/lv2-spec | |||||
| mkdir /tmp/lv2-spec | |||||
| cp -r /usr/lib/lv2/{atom,buf-size,core,data-access,kx-control-input-port-change-request,kx-programs,instance-access,midi,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 /tmp/lv2-spec/ | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/lv2 ]; then | |||||
| pushd debian/${PKG_NAME}/usr/lib/lv2 | |||||
| lv2_validate */*.ttl | |||||
| lv2lint $(lv2ls) | |||||
| # -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls) | |||||
| for p in $(ls); do | |||||
| ${VALRIND_DISCOVERY_BIN} lv2 ./${p} | |||||
| done | |||||
| for p in $(lv2ls); do | |||||
| ${VALRIND_BRIDGE_BIN} lv2 "" ${p} 1>/dev/null; | |||||
| done | |||||
| popd | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/ladspa ]; then | |||||
| pushd debian/${PKG_NAME}/usr/lib/ladspa | |||||
| for p in $(ls); do | |||||
| ${VALRIND_DISCOVERY_BIN} ladspa ./${p} | |||||
| ${VALRIND_BRIDGE_BIN} ladspa ./${p} "" 1>/dev/null; | |||||
| done | |||||
| popd | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/dssi ]; then | |||||
| pushd debian/${PKG_NAME}/usr/lib/dssi | |||||
| for p in $(ls); do | |||||
| ${VALRIND_DISCOVERY_BIN} dssi ./${p} | |||||
| ${VALRIND_BRIDGE_BIN} dssi ./${p} "" 1>/dev/null; | |||||
| done | |||||
| popd | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/vst ]; then | |||||
| pushd debian/${PKG_NAME}/usr/lib/vst | |||||
| for p in $(ls .so */*.so 2>/dev/null | grep -e '.*\.so' -e '.*\.vst/.*\.so' | grep -v 'lib.*\.so' | grep -v 'carla-bridge-lv2.so'); do | |||||
| ${VALRIND_DISCOVERY_BIN} vst2 ./${p} | |||||
| ${VALRIND_BRIDGE_BIN} vst2 ./${p} "" 1>/dev/null; | |||||
| done | |||||
| popd | |||||
| fi | |||||
| if [ -d debian/${PKG_NAME}/usr/lib/vst3 ]; then | |||||
| pushd debian/${PKG_NAME}/usr/lib/vst3 | |||||
| for p in $(ls); do | |||||
| ${VALRIND_DISCOVERY_BIN} vst3 ./${p} | |||||
| ${VALRIND_BRIDGE_BIN} vst3 ./${p} "" 1>/dev/null; | |||||
| done | |||||
| popd | |||||
| fi | |||||
| @@ -0,0 +1,47 @@ | |||||
| { | |||||
| libdl is full of leaks | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:_dl_open | |||||
| ... | |||||
| } | |||||
| { | |||||
| libdl is full of leaks | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:_dl_close | |||||
| ... | |||||
| } | |||||
| { | |||||
| libdl is full of leaks | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:_dl_init | |||||
| } | |||||
| { | |||||
| libdl is full of leaks | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:_dl_allocate_tls | |||||
| ... | |||||
| } | |||||
| { | |||||
| libdl is full of leaks | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:call_init.part.0 | |||||
| } | |||||
| { | |||||
| ignore XInitThreads | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:XInitThreads | |||||
| ... | |||||
| } | |||||
| { | |||||
| ignore XrmGetStringDatabase | |||||
| Memcheck:Leak | |||||
| ... | |||||
| fun:XrmGetStringDatabase | |||||
| ... | |||||
| } | |||||
| @@ -7,8 +7,7 @@ Build-Depends: debhelper-compat (= 13), | |||||
| python3, | python3, | ||||
| pkg-config, | pkg-config, | ||||
| libsndfile-static, | libsndfile-static, | ||||
| libsratom-static, | |||||
| libjack-dev | libjack-jackd2-dev | |||||
| libsratom-static | |||||
| Standards-Version: 4.5.0 | Standards-Version: 4.5.0 | ||||
| Homepage: http://drobilla.net/software/lilv/ | Homepage: http://drobilla.net/software/lilv/ | ||||
| Rules-Requires-Root: no | Rules-Requires-Root: no | ||||
| @@ -0,0 +1,5 @@ | |||||
| lv2lint (6:0.16.2-1kxstudio2) focal; urgency=medium | |||||
| * Initial package | |||||
| -- falkTX <falktx@falktx.com> Sun, 17 Apr 2022 15:05:47 +0100 | |||||
| @@ -0,0 +1,24 @@ | |||||
| Source: lv2lint | |||||
| Section: libs | |||||
| Priority: optional | |||||
| Maintainer: falkTX <falktx@falktx.com> | |||||
| Build-Depends: debhelper-compat (= 13), | |||||
| kxstudio-build-scripts, | |||||
| meson, | |||||
| pkg-config, | |||||
| libelf-dev, | |||||
| libx11-dev, | |||||
| liblilv-static | |||||
| Standards-Version: 4.5.0 | |||||
| XSC-KXStudio-VCS: https://open-music-kontrollers.ch/lv2/lv2lint/ | |||||
| Rules-Requires-Root: no | |||||
| Package: lv2lint | |||||
| Architecture: any | |||||
| Depends: ${misc:Depends}, ${shlibs:Depends}, lv2-dev | |||||
| Description: Check whether a given LV2 plugin is up to the specification | |||||
| lv2lint is an LV2 lint-like tool that checks whether a given plugin and its | |||||
| UI(s) match up with the provided metadata and adhere to well-known best practices. | |||||
| . | |||||
| Run it as part of your continuous integration pipeline together with lv2/sord_validate | |||||
| to reduce the likelihood of shipping plugins with major flaws in order to prevent unsatisfied users. | |||||
| @@ -0,0 +1,10 @@ | |||||
| #!/usr/bin/make -f | |||||
| KXSTUDIO_NO_FASTMATH = y | |||||
| include /usr/share/dpkg/kxstudio.mk | |||||
| override_dh_auto_configure: | |||||
| dh_auto_configure -- -Delf-tests=enabled -Dx11-tests=enabled -Donline-tests=disabled | |||||
| %: | |||||
| dh $@ -Smeson | |||||