media-sound/zynaddsubfx: build new UI instead of unmaintained one

Closes: https://bugs.gentoo.org/920178
Closes: https://github.com/gentoo/gentoo/pull/34315
Signed-off-by: Jason A. Donenfeld <zx2c4@gentoo.org>
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
This commit is contained in:
Miroslav Šulc
2023-12-19 23:34:13 +01:00
parent b2d8cae942
commit c318dc516a
9 changed files with 375 additions and 38 deletions

View File

@@ -1 +1,2 @@
DIST zyn-fusion-ui-src-3.0.6.tar.bz2 5266884 BLAKE2B d9715c319bfd313792f550e12a47939dec665eda6ef395f8bb7a175b11f0922a4037428f99dc95fe749c40074ce8976fa9d257b6bc1e8f1feb63ca943c3bdd76 SHA512 7f195cf6a193376160441863d725383640bc75ad0c21b8ef7786da67a42fe014be103e3c3d9c29c83ffc3d78b9e11a4031a6b3922d457a336d184228c16077cd
DIST zynaddsubfx-3.0.6.tar.bz2 10001014 BLAKE2B 4adbeffb9bc0bd77bf81a6734f5c26fc676426e644e27cebb8e54e8d74d869c0e1b468782cd1a64aacef8f9b788d434a8d30a194944650eea03c4fd146ee7bf7 SHA512 86311f00d97e20c7eb22a46c99736c56765ed9737e728ef380a324e4a92c731086ed74f5d7bfeae104b690ab1ee1b40bfb8f240bc4c46f8afd47308ec48cbcea

View File

@@ -0,0 +1,19 @@
--- i/Makefile
+++ w/Makefile
@@ -16,10 +16,14 @@ linux:
$(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
./deps/libnanovg.a \
src/osc-bridge/libosc-bridge.a \
- `pkg-config --libs libuv` -lm -lX11 -lGL -lpthread
+ $(CFLAGS) \
+ `pkg-config --libs libuv` -lm -lX11 -lGL -lpthread \
+ $(LDFLAGS)
$(CC) test-libversion.c deps/pugl/pugl/pugl_x11.c \
+ $(CFLAGS) \
-DPUGL_HAVE_GL \
- -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 -Wno-trigraphs
+ -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99 -Wno-trigraphs \
+ $(LDFLAGS)
osx: deps/libuv.a
ruby ./rebuild-fcache.rb

View File

@@ -0,0 +1,11 @@
--- i/test-libversion.c
+++ w/test-libversion.c
@@ -660,7 +660,7 @@ int main(int argc, char **argv)
if(!handle)
handle = dlopen("libzest.so", RTLD_LAZY);
if(!handle)
- handle = dlopen("/opt/zyn-fusion/libzest.so", RTLD_LAZY);
+ handle = dlopen("/usr/lib64/zynaddsubfx/libzest.so", RTLD_LAZY);
#endif
if(!handle) {
printf("[ERROR] Cannot Open libzest.so\n");

View File

@@ -0,0 +1,69 @@
From c1f5fcbad97c20b14a35e894477081d69519f6b0 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Sat, 21 May 2022 13:19:48 +0200
Subject: [PATCH] Use find internals instead of piping into grep
Makefile:
Use GNU find internals (e.g. `-iname`, `-exec` and conditionals) instead
of piping into multiple instances of grep.
Simplify line counting by using wc from find.
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ linux:
# force rebuilding all code that depends on hotloading.
touch src/mruby-widget-lib/src/api.c
cd mruby && $(HOTLOADING) MRUBY_CONFIG=../build_config.rb rake
- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
+ $(CC) -shared -o libzest.so `find mruby/build/host -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` \
./deps/libnanovg.a \
src/osc-bridge/libosc-bridge.a \
`pkg-config --libs libuv` -lm -lX11 -lGL -lpthread
@@ -30,7 +30,7 @@ osx: deps/libuv.a
cd deps/pugl && python2 ./waf
cd src/osc-bridge && CFLAGS="-I ../../deps/libuv/include " make lib
cd mruby && MRUBY_CONFIG=../build_config.rb rake
- $(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -v mrbc | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
+ $(CC) -shared -o libzest.so `find mruby/build/host -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` ./deps/libnanovg.a \
./deps/libnanovg.a \
src/osc-bridge/libosc-bridge.a \
./deps/libuv/.libs/libuv.a -lm -framework OpenGL -lpthread
@@ -41,7 +41,7 @@ windows: buildpuglwin deps/libuv-win.a
$(AR) rc deps/libnanovg.a deps/nanovg/src/*.o
cd src/osc-bridge && CFLAGS="-mstackrealign -I ../../deps/libuv/include " make lib
cd mruby && WINDOWS=1 MRUBY_CONFIG=../build_config.rb rake
- $(CC) -mstackrealign -shared -o libzest.dll -static-libgcc `find mruby/build/w64 -type f | grep -e "\.o$$" | grep -v bin` \
+ $(CC) -mstackrealign -shared -o libzest.dll -static-libgcc `find mruby/build/w64 -type f \( -not -iwholename "*mrbc*" -a -not -iwholename "*bin*" -a -iname "*.o" \)` \
./deps/libnanovg.a \
src/osc-bridge/libosc-bridge.a \
./deps/libuv-win.a \
@@ -98,21 +98,21 @@ stats:
@echo 'mruby-qml-parse commits: ' `cd src/mruby-qml-parse && git log --oneline | wc -l`
@echo 'mruby-qml-spawn commits: ' `cd src/mruby-qml-spawn && git log --oneline | wc -l`
@echo 'osc-bridge commits: ' `cd src/osc-bridge && git log --oneline | wc -l`
- @echo 'number of qml files:' `find src/ -type f | grep -e qml$$ | wc -l`
- @echo 'number of ruby files:' `find src/ -type f | grep -e rb$$ | wc -l`
- @echo 'number of c files:' `find src/ -type f | grep -e c$$ | wc -l`
- @echo 'number of header files:' `find src/ -type f | grep -e h$$ | wc -l`
+ @echo 'number of qml files:' `find src/ -type f -iname "*.qml" | wc -l`
+ @echo 'number of ruby files:' `find src/ -type f -iname "*.rb" | wc -l`
+ @echo 'number of c files:' `find src/ -type f -iname "*.c" | wc -l`
+ @echo 'number of header files:' `find src/ -type f -iname "*.h" | wc -l`
@echo 'lines of OSC schema:' `wc -l src/osc-bridge/schema/test.json`
@echo 'lines of qml:'
- @wc -l `find src/ -type f | grep qml$$` | tail -n 1
+ @`find src/ -type f -iname "*.qml" -exec wc -l {} +` | tail -n 1
@echo 'lines of ruby:'
- @wc -l `find src/ -type f | grep -e rb$$ | grep -v fcache` | tail -n 1
+ @`find src/ -type f \( -iname "*.rb" -a -not -iwholename "*fcache*" \) -exec wc -l {} +` | tail -n 1
@echo 'lines of c source:'
- @wc -l `find src/ -type f | grep -e c$$` | tail -n 1
+ @`find src/ -type f -iname "*.c" -exec wc -l {} +` | tail -n 1
@echo 'lines of c header:'
- @wc -l `find src/ -type f | grep -e h$$` | tail -n 1
+ @`find src/ -type f -iname "*.h" -exec wc -l {} +` | tail -n 1
@echo 'total lines of code:'
- @wc -l `find src/ -type f | grep -Ee "(qml|rb|c|h)$$" | grep -v fcache` | tail -n 1
+ @`find src/ -type f \( -iname "*.qml" -o -iname "*.rb" -o -iname "*.c" -o -iname "*.h" -a -not -iwholename "*fcache*" \) -exec wc -l {} +` | tail -n 1
verbose: ## Compile mruby with --trace

View File

@@ -0,0 +1,40 @@
--- i/src/mruby-widget-lib/mrblib/script.rb
+++ w/src/mruby-widget-lib/mrblib/script.rb
@@ -160,13 +160,13 @@ class ZRunner
search = @search_path
search ||= ""
font_error = false
- sans = [search + "font/Roboto-Regular.ttf", "deps/nanovg/example/Roboto-Regular.ttf"]
+ sans = ["/usr/share/fonts/roboto/Roboto-Regular.ttf", search + "font/Roboto-Regular.ttf", "deps/nanovg/example/Roboto-Regular.ttf"]
if(@vg.create_font('sans', sans[0]) == -1 && @vg.create_font('sans', sans[1]) == -1)
GL::debug "[ERROR] could not find sans font"
font_error = true
end
- bold = [search + "font/Roboto-Bold.ttf", "deps/nanovg/example/Roboto-Bold.ttf"]
+ bold = ["/usr/share/fonts/roboto/Roboto-Bold.ttf", search + "font/Roboto-Bold.ttf", "deps/nanovg/example/Roboto-Bold.ttf"]
if(@vg.create_font('bold', bold[0]) == -1 && @vg.create_font('bold', bold[1]) == -1)
GL::debug "[ERROR] could not find bold font"
font_error = true
--- i/src/mruby-widget-lib/src/api.c
+++ w/src/mruby-widget-lib/src/api.c
@@ -110,7 +110,7 @@ zest_open(char *address)
if(strstr(path, "libzest"))
strstr(path, "libzest")[0] = 0;
char path2[256];
- snprintf(path2, sizeof(path2), "%s%s", path, "./qml/MainWindow.qml");
+ snprintf(path2, sizeof(path2), "%s%s", path, "../../share/zynaddsubfx/qml/MainWindow.qml");
FILE *f = fopen(path2, "r");
if(f) {
printf("[INFO:Zyn] Found Assets at %s\n", path);
--- i/src/osc-bridge/src/bridge.c
+++ w/src/osc-bridge/src/bridge.c
@@ -431,7 +431,7 @@ schema_t br_get_schema(bridge_t *br, uri_t uri)
schema_t sch;
//printf("[debug] loading json file\n");
- FILE *f = fopen("schema/test.json", "r");
+ FILE *f = fopen("/usr/share/zynaddsubfx/schema/test.json", "r");
if(!f && br->search_path) {
char tmp[256];
snprintf(tmp, sizeof(tmp), "%s%s", br->search_path, "schema/test.json");

View File

@@ -1,5 +1,3 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5c70857..20e20d2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,9 +35,6 @@ include(CTestConfig.cmake)

View File

@@ -0,0 +1,11 @@
--- i/src/Plugin/ZynAddSubFX/ZynAddSubFX-UI-Zest.cpp
+++ w/src/Plugin/ZynAddSubFX/ZynAddSubFX-UI-Zest.cpp
@@ -68,7 +68,7 @@ public:
#else
handle = dlopen("./libzest.so", RTLD_LAZY);
if(!handle)
- handle = dlopen("/opt/zyn-fusion/libzest.so", RTLD_LAZY);
+ handle = dlopen("/usr/lib64/zynaddsubfx/libzest.so", RTLD_LAZY);
if(!handle)
handle = dlopen("libzest.so", RTLD_LAZY);
#endif

View File

@@ -1,46 +1,121 @@
Upstream Commit: https://github.com/zynaddsubfx/zynaddsubfx/commit/f384d92486d6b515cb628d0f52008a9e03341d8c
Upstream Commit: https://github.com/zynaddsubfx/zynaddsubfx/commit/70905c96fe7b9ffde19bc4bc05b0dc53a1ed1707
From f384d92486d6b515cb628d0f52008a9e03341d8c Mon Sep 17 00:00:00 2001
From: fundamental <mark.d.mccurry@gmail.com>
Date: Wed, 19 Apr 2023 21:52:01 -0400
Subject: [PATCH] Bank: Add stdint.h header include
As uint8_t is used, this header should be included.
---
src/Misc/Bank.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Misc/Bank.h b/src/Misc/Bank.h
index 5120441a5..3f324dd84 100644
--- a/src/Misc/Bank.h
+++ b/src/Misc/Bank.h
@@ -18,6 +18,7 @@
--- zynaddsubfx-3.0.6/src/Params/ADnoteParameters.h
+++ zynaddsubfx-3.0.6.mod/src/Params/ADnoteParameters.h
@@ -16,6 +16,7 @@
#include "../globals.h"
#include "PresetsArray.h"
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6/src/Params/Controller.h
+++ zynaddsubfx-3.0.6.mod/src/Params/Controller.h
@@ -17,6 +17,7 @@
#include <stdint.h>
#include "../globals.h"
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6/src/Params/EnvelopeParams.h
+++ zynaddsubfx-3.0.6.mod/src/Params/EnvelopeParams.h
@@ -17,6 +17,7 @@
#include "../globals.h"
#include "../Misc/XMLwrapper.h"
#include "Presets.h"
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6/src/Params/FilterParams.h
+++ zynaddsubfx-3.0.6.mod/src/Params/FilterParams.h
@@ -17,6 +17,7 @@
#include "../globals.h"
#include "../Misc/XMLwrapper.h"
#include "PresetsArray.h"
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6/src/Params/LFOParams.h
+++ zynaddsubfx-3.0.6.mod/src/Params/LFOParams.h
@@ -17,6 +17,7 @@
#include <Misc/Time.h>
#include <rtosc/ports.h>
#include "Presets.h"
+#include <cstdint>
#define LFO_SINE 0
#define LFO_TRIANGLE 1
--- zynaddsubfx-3.0.6/src/Params/PADnoteParameters.h
+++ zynaddsubfx-3.0.6.mod/src/Params/PADnoteParameters.h
@@ -19,7 +19,7 @@
#include "Presets.h"
#include <string>
#include <functional>
-
+#include <cstdint>
namespace zyn {
/**
--- zynaddsubfx-3.0.6/src/Params/SUBnoteParameters.h
+++ zynaddsubfx-3.0.6.mod/src/Params/SUBnoteParameters.h
@@ -17,6 +17,7 @@
#include <stdint.h>
#include "../globals.h"
#include "Presets.h"
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6.old/src/Misc/Bank.cpp
+++ zynaddsubfx-3.0.6/src/Misc/Bank.cpp
@@ -17,6 +17,7 @@
#include <cstring>
#include <cstdio>
#include <cstdlib>
+#include <cstdint>
#include <dirent.h>
#include <sys/stat.h>
#include <algorithm>
--- zynaddsubfx-3.0.6.old/src/Misc/Bank.h
+++ zynaddsubfx-3.0.6/src/Misc/Bank.h
@@ -16,6 +16,7 @@
#include <string>
#include <vector>
+#include <cstdint>
#include "../globals.h"
#include "Config.h"
+#include <stdint.h>
//entries in a bank
#define BANK_SIZE 160
From 70905c96fe7b9ffde19bc4bc05b0dc53a1ed1707 Mon Sep 17 00:00:00 2001
From: fundamental <mark.d.mccurry@gmail.com>
Date: Sat, 22 Apr 2023 10:21:09 -0400
Subject: [PATCH] MidiIn: Add stdint.h header include
---
src/Nio/MidiIn.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Nio/MidiIn.h b/src/Nio/MidiIn.h
index ce0bcfec3..c6b30c61d 100644
--- a/src/Nio/MidiIn.h
+++ b/src/Nio/MidiIn.h
--- zynaddsubfx-3.0.6.old/src/Nio/InMgr.cpp
+++ zynaddsubfx-3.0.6/src/Nio/InMgr.cpp
@@ -17,6 +17,7 @@
#include "../Misc/MiddleWare.h"
#include <rtosc/thread-link.h>
#include <iostream>
+#include <cstdint>
using namespace std;
extern zyn::MiddleWare *middleware;
--- zynaddsubfx-3.0.6.old/src/Nio/MidiIn.cpp
+++ zynaddsubfx-3.0.6/src/Nio/MidiIn.cpp
@@ -15,6 +15,7 @@
#include "../globals.h"
#include "InMgr.h"
#include <string.h>
+#include <cstdint>
namespace zyn {
--- zynaddsubfx-3.0.6.old/src/Nio/MidiIn.h
+++ zynaddsubfx-3.0.6/src/Nio/MidiIn.h
@@ -17,6 +17,7 @@
#define MIDI_IN_H
#include "Engine.h"
+#include <stdint.h>//uint8_t
+#include <cstdint>
namespace zyn {

View File

@@ -0,0 +1,113 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic
DESCRIPTION="Software synthesizer capable of making a countless number of instruments"
HOMEPAGE="https://zynaddsubfx.sourceforge.net/"
SRC_URI="
mirror://sourceforge/zynaddsubfx/${P}.tar.bz2
mirror://sourceforge/zynaddsubfx/zyn-fusion-ui-src-${PV}.tar.bz2
"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="+alsa doc dssi jack lash portaudio"
REQUIRED_USE="|| ( alsa jack portaudio )"
DEPEND="
dev-libs/mxml
media-libs/liblo
sci-libs/fftw:3.0
sys-libs/zlib
alsa? ( media-libs/alsa-lib )
doc? ( dev-texlive/texlive-fontutils )
dssi? ( media-libs/dssi )
jack? ( virtual/jack )
lash? ( media-sound/lash )
portaudio? ( media-libs/portaudio )
"
RDEPEND="
${DEPEND}
media-fonts/roboto
"
BDEPEND="
dev-lang/ruby:*
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
PATCHES=(
"${FILESDIR}"/${P}-docs.patch
"${FILESDIR}"/${P}-stdint.patch
"${FILESDIR}"/${P}-libzest_location.patch
)
ZYN_FUSION_UI_PATCHES=(
"${FILESDIR}"/zyn-fusion-ui-${PV}-cflags_ldflags.patch
"${FILESDIR}"/zyn-fusion-ui-${PV}-libzest_location.patch
"${FILESDIR}"/zyn-fusion-ui-${PV}-makefile_find.patch
"${FILESDIR}"/zyn-fusion-ui-${PV}-system_wide_location.patch
)
DOCS=( AUTHORS.txt NEWS.txt README.adoc )
src_prepare() {
cmake_src_prepare
if ! use dssi; then
sed -i -e '/pkg_search_module.*DSSI/s/^/#DONT/' src/CMakeLists.txt || die
fi
if ! use jack; then
sed -e '/pkg_check_modules.*JACK/s/^/#DONT/' -i {rtosc,src}/CMakeLists.txt || die
fi
if ! use lash; then
sed -i -e '/pkg_search_module.*LASH/s/^/#DONT/' src/CMakeLists.txt || die
fi
if ! use portaudio; then
sed -i -e '/pkg_check_modules.*PORTAUDIO/s/^/#DONT/' src/CMakeLists.txt || die
fi
# FIXME upstream: sandbox error
sed -i -e '/add_subdirectory(bash-completion)/d' doc/CMakeLists.txt || die
cd ../zyn-fusion-ui-src-${PV}
eapply "${ZYN_FUSION_UI_PATCHES[@]}"
}
src_configure() {
append-cxxflags -std=c++11
local mycmakeargs=(
-DPluginLibDir=$(get_libdir)
-DGuiModule=zest
-DDefaultInput=jack
-DDefaultOutput=jack
$(cmake_use_find_package alsa Alsa)
$(cmake_use_find_package doc Doxygen)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
use doc && cmake_src_compile doc
emake -C ../zyn-fusion-ui-src-${PV}
}
src_install() {
use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
cmake_src_install
cd ../zyn-fusion-ui-src-${PV}
newbin zest zyn-fusion
insinto /usr/$(get_libdir)/${PN}
doins libzest.so
insinto /usr/share/${PN}/qml
doins -r src/mruby-zest/{example,qml}/*.qml
insinto /usr/share/${PN}/schema
doins src/osc-bridge/schema/test.json
}