Subject: [PATCH v3] testing/faust: new aport

From: Francesco Camuffo <[email-masked]>
Date: Mon, 21 Feb 2022 21:04:00 +0100

https://faust.grame.fr
Functional programming language for realtime audio signal processing
---
Use Ninja

Install sound2*

Add subpackage: faust-vim

 testing/faust/APKBUILD                        | 90 +++++++++++++++++++
 testing/faust/faust-musl-stacktrace.patch     | 16 ++++
 testing/faust/faust-tests-old-libraries.patch | 35 ++++++++
 3 files changed, 141 insertions(+)
 create mode 100644 testing/faust/APKBUILD
 create mode 100644 testing/faust/faust-musl-stacktrace.patch
 create mode 100644 testing/faust/faust-tests-old-libraries.patch

diff --git a/testing/faust/APKBUILD b/testing/faust/APKBUILD
new file mode 100644
index 0000000000..18a93b7b5c
--- /dev/null
+++ b/testing/faust/APKBUILD
@@ -0,0 +1,90 @@
+# Contributor: Francesco Camuffo <[email-masked]>
+# Maintainer: Francesco Camuffo <[email-masked]>
+pkgname=faust
+pkgver=2.37.3
+pkgrel=0
+pkgdesc="Functional programming language for realtime audio signal processing"
+url="https://faust.grame.fr"
+arch="all"
+license="GPL-2.0-or-later"
+checkdepends="bash"
+makedepends="
+	cmake
+	libexecinfo-dev
+	libmicrohttpd-dev
+	libsndfile-dev
+	llvm-dev
+	samurai
+	"
+subpackages="
+	$pkgname-tools
+	$pkgname-static
+	$pkgname-doc
+	$pkgname-dev
+	$pkgname-vim::noarch
+	"
+source="$pkgname-$pkgver.tar.gz::https://github.com/grame-cncm/faust/releases/download/$pkgver/faust-$pkgver.tar.gz
+	faust-musl-stacktrace.patch
+	faust-tests-old-libraries.patch
+	"
+
+build() {
+	cmake -B "$pkgname"-build \
+		-G Ninja \
+		-S build \
+		-C build/backends/all.cmake \
+		-C build/targets/all.cmake \
+		-DCMAKE_BUILD_TYPE=None \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DINCLUDE_DYNAMIC=ON \
+		-DINCLUDE_STATIC=ON \
+		-DINCLUDE_ITP=ON \
+		-Wno-dev
+	VERBOSE=1 cmake --build "$pkgname"-build
+	make VERBOSE=1 -C tools/sound2faust
+}
+
+check() {
+	make interp -C tests/compile-tests
+}
+
+package() {
+	DESTDIR="$pkgdir" cmake --install "$pkgname"-build
+	make VERBOSE=1 PREFIX=/usr DESTDIR="$pkgdir" install -C tools/sound2faust
+
+	# remove support for platforms not likely wanted
+	rm -rvf "$pkgdir"/usr/bin/faust2au \
+		"$pkgdir"/usr/lib/ios-libsndfile.a \
+		"$pkgdir"/usr/share/faust/AU \
+		"$pkgdir"/usr/share/faust/android \
+		"$pkgdir"/usr/share/faust/iOS \
+		"$pkgdir"/usr/share/faust/smartKeyboard
+}
+
+dev() {
+	pkgdesc="$pkgdesc (development files)"
+	amove usr/include/* \
+		usr/lib/*.so
+}
+
+tools() {
+	pkgdesc="$pkgdesc (tools)"
+	amove usr/bin/encoderunitypackage \
+		usr/bin/faust2* \
+		usr/bin/filename2ident \
+		usr/bin/sound2*
+}
+
+vim() {
+	pkgdesc="$pkgdesc (vim syntax)"
+	install_if="vim $pkgname=$pkgver-r$pkgrel"
+
+	cd "$builddir"/syntax-highlighting
+	install -vDm 644 faust.vim -t "$subpkgdir"/usr/share/vim/vimfiles/syntax/
+}
+
+sha512sums="
+29c27c1d4b71f63e5a42abdb1557e88ac9d623242a85df16478756a7bcbc3fe78466ace1280ea6a3cd04c979201e52a703f7be53b8a047dcc1f8fa7e034ef26d  faust-2.37.3.tar.gz
+f3e07bdd26ab8f0ffbf0c0dfbf8141facc07d2db05346f3b982faca613aa5ecad8986683db8d49caed720d58b183b215d6e1c4ceef069f29f41bcfa699ad5f28  faust-musl-stacktrace.patch
+fe0b800809ea1fcb4fd44e306eff7f01b9316ddc3406bdc52f0e783a3710b5b8e6e05a5925766e4fd73666cc6ca9f42027f608c7f7dbe44436b28e1787703595  faust-tests-old-libraries.patch
+"
diff --git a/testing/faust/faust-musl-stacktrace.patch b/testing/faust/faust-musl-stacktrace.patch
new file mode 100644
index 0000000000..8472a9e599
--- /dev/null
+++ b/testing/faust/faust-musl-stacktrace.patch
@@ -0,0 +1,16 @@
+https://github.com/void-linux/void-packages/blob/ebf9ad105986ec27a9d8a794318df3016df2ee13/srcpkgs/faust/patches/faust-musl-stacktrace.patch
+
+--- a/compiler/errors/errormsg.cpp-old	2019-12-22 19:47:17.694670614 +0100
++++ b/compiler/errors/errormsg.cpp	2019-12-22 19:48:25.145673133 +0100
+@@ -43,9 +43,11 @@
+             gGlobal->printCompilationOptions(str);
+         }
+         str << ")\n";
++#ifdef __GLIBC__
+ #ifndef EMCC
+         stacktrace(str, 20);
+ #endif
++#endif
+         throw faustexception(str.str());
+     }
+ }
diff --git a/testing/faust/faust-tests-old-libraries.patch b/testing/faust/faust-tests-old-libraries.patch
new file mode 100644
index 0000000000..26f3d53e0e
--- /dev/null
+++ b/testing/faust/faust-tests-old-libraries.patch
@@ -0,0 +1,35 @@
+From 974d4da02b525261d934a9eb70e41a1c4ee309c3 Mon Sep 17 00:00:00 2001
+From: Stephane Letz <[email-masked]>
+Date: Fri, 7 Jan 2022 18:27:52 +0100
+Subject: [PATCH] Correct compile-tests to be used even if faust is not
+ installed.
+
+---
+ tests/compile-tests/Make.lang | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/tests/compile-tests/Make.lang b/tests/compile-tests/Make.lang
+index 3e27a69ac..7fd5ffa9b 100644
+--- a/tests/compile-tests/Make.lang
++++ b/tests/compile-tests/Make.lang
+@@ -13,7 +13,8 @@ MAKE ?= make
+ 
+ SAMPLESROOT := ../..
+ REGRESSION := ..
+-FAUSTLIBS ?= ../../libraries
++FAUSTLIBS1 ?= ../../libraries
++FAUSTLIBS2 ?= ../../libraries/old
+ 
+ FAUSTOPTIONS ?= 
+ outdir ?= cpp
+@@ -75,8 +76,8 @@ $(version)/$(outdir):
+ # generic rule rule for $(lang) output
+ $(version)/$(outdir)/%.$(ext): $(SAMPLESROOT)/%.dsp
+ 	@[ -d $(@D) ] || mkdir -p $(@D)
+-	$(FAUST) -lang $(lang) -I $(FAUSTLIBS) $(FAUSTOPTIONS) $<  -o $@ 
++	$(FAUST) -lang $(lang) -I $(FAUSTLIBS1) -I $(FAUSTLIBS2) $(FAUSTOPTIONS) $<  -o $@ 
+ 	
+ $(version)/$(outdir)/%.$(ext): $(REGRESSION)/%.dsp
+ 	@[ -d $(@D) ] || mkdir -p $(@D)
+-	$(FAUST) -lang $(lang) -I $(FAUSTLIBS) $(FAUSTOPTIONS) $<  -o $@ 
++	$(FAUST) -lang $(lang) -I $(FAUSTLIBS1) -I $(FAUSTLIBS2) $(FAUSTOPTIONS) $<  -o $@ 
-- 
2.34.1