Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add zyn-fusion #362

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions media-sound/zyn-fusion/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
DIST mgem-list-2033837203c8a141b1f9d23bb781fe0cbaefbd24.tar.gz 22021 BLAKE2B a7be5d506122b229e355d06609e0b1086d0d68f6eb234746d5c5a4648fd414a214948d5a7ffca50951370dfe192356a9587d406b7cb58137b25ceb108a2c7ef7 SHA512 9df56f9dcf0957fd4772438ae190c9f8394bb3541d5d899c16d38ea9d0529b9d6776231044030ddc29762690f03ec3b9ecb1f67bd1bacfa1d1373a4e966d490a
DIST mruby-complex-4f57a1ef9f968e9d5eef53667c7960a2e98c9750.tar.gz 9385 BLAKE2B 697e6865e6d8095d0e6b31c7301488ee0d97458edeb9e0eef954ae9d11f3b74c87a480f400e45e47c87be2ab91e6ceb679043281f3c28743bf791a15218c508b SHA512 680928c50158aa44922f4094437f4a7a0e21b6a34d82be7b2961f926ef8f05fceb3ca87315fc519b1734dae11fc5d1941d9473c43aaed32025b78d2194ad7e2d
DIST mruby-dir-89dceefa1250fb1ae868d4cb52498e9e24293cd1.tar.gz 6155 BLAKE2B f159bf48a99e8f50b6d534abe3a029ababa7b5071f856734c85d831f33e1cf109e6585c2e0ae494cc96debcc34606af64b9ab57a83826c4fb6da9f58b3044818 SHA512 da743c46c9cb76481cda8fa269e63eb210010dc5813582a8414256febd4b43c3dec384e396115288d0e7653dad2608b553575b5eb0d7cb264c5a979b19fcedbe
DIST mruby-dir-glob-334c040a2e2c4c2689f8c3440168011f64d57ada.tar.gz 7315 BLAKE2B 1dcc9ae98d9054f7aabe6a292b579b67d11a756a29a61f78d1995784e25bfc8615c564bf4d9e91d1d76758c435e026d9f73a94d8b714ebed67632047a387d9af SHA512 24b1e9352d4c7682c24bf256884c8d117e6b496e7cb62223ead01b50253be3bd30f984ed87da9b43a19cbfbe5bd78788cc5e5f40eb8f9c39a18575738c543fe7
DIST mruby-e5b61d34f65cabfbe88f3f1709a1f9cff86585de.tar.gz 421773 BLAKE2B e6be54805caaf5ea6f0722cf19ec093291fdb463f1425f9ba8373beacabbcfd8921e25316b782968841d0a4bfed6388e6a8e98bd718ec3e19ced81ddf50a7f52 SHA512 88e2a09eeb6e53c59218899c3307db4f7ffa658d81801c2b2bee93f4edd3034c4148576573f865dbd8d758b161b8aaada18e664e0a609b61e1c450228e5aaffb
DIST mruby-errno-b4415207ff6ea62360619c89a1cff83259dc4db0.tar.gz 7065 BLAKE2B b30a29947a4ef5ab467c029833b60776371f52d857e4362543b9d26b1f3982c43400cfff784b7e846a688fc46acf84d8b1a61355ba60f3d8e90b491693c046c9 SHA512 5c0db206731f74e229fe692f0cfefbbb26e79f0097a760ad7ea5199399b3a4773226d4b24df5fe7a161f074c3439ee015784e660febeea72d8354d388940ca9e
DIST mruby-file-stat-d196a1e529d227511cf19d516a46f62866619008.tar.gz 41635 BLAKE2B 89c312a66fc9c52bfc20a4aae63f7a6109f44b48887088c9734612c5e4902e16d0dfc4e7cc31d95a3d8ed592bd3718f23e523bfd7ec0b9d5a936c879d185fdf5 SHA512 3e851296e8bd2911fe94340108edc085825711acf389eae99f36f33c67f6cb9b14733ae1d795daa9ba647fadd9230c19b2dd7a5ddd512817b7079107a18de954
DIST mruby-glew-6849202f885516b381406e799dcdb430065e19cf.tar.gz 1349 BLAKE2B aafaa0a34726ad7dada95b09cce3a560bdfad52906f2d7f5f16d491111f44d3c98665e00d3f3098aecfb8523fb4fa83b75df07a611b2d87f40df2a93460fb28b SHA512 195c9082cfa8aaa8ddd321665475906b3e33055bbbb935bca717dcea70e0b730a9920ec91f2f19e44d4096badf284a52ab6a5bb48a5a497981fa36cb7e2fdb7a
DIST mruby-glfw3-0eeee012fd4bbd6544dd34f17ce2b476ad71d86b.tar.gz 14144 BLAKE2B a1f743b9f5a46ac9b62418156a544b47eb7140d2f2cca00351092c4d42b5a438aaafae87460036a25d0de9ab9f48cde005e1094f4b53f7c22dc9ef2aca9225e6 SHA512 a1deadce8faaea7930de0c28bf825e9af82a591f1a127da6133413a3eaeb8b1f9435a44bb97154c223eb20b8286a2679f1648c09ad3ef61ea41e4d8812c03578
DIST mruby-io-1c4428880b2f0f0fcd81ea2debc5f4459a7ed53c.tar.gz 20255 BLAKE2B 8b06c7886b9343a5d43a27cb201c10b7591593fc2b888b10c33cc96e5ff491e261e5f08c3a0d1458bf35e94f50c36359b5775833ac7b3b1ba5efe952f778c191 SHA512 527a27ce0ca1a097c191022d2e1c30fc5866a998cb04c62ed26acda8ba60840430200e3200f9a300335550e0d68671afc37e2787bd137dd8cdb6ad9d21ea564f
DIST mruby-nanovg-d7d4e1ce434131babb5fd6026201011f5b0b50ea.tar.gz 399756 BLAKE2B a9a0ab692c4d99feb779a53d45ef03693ae62d0f3e431290ee75dcdbfe3f5d77a25cb35437fe35a2d1310f3f4d420bcc292eef90221a7f0ee164c13d7cfda5ab SHA512 fa17ae329321b9974f7d90ab46259adc09743b5b973beb8904b564684d4f855ef91bad51ea8e511db1c7edb400b50cc2fb40da13bbab7ecc233de747d3f3b524
DIST mruby-pack-383a9c79e191d524a9a2b4107cc5043ecbf6190b.tar.gz 10278 BLAKE2B 2afa6b5bff0c4e7adafa29c87d19ab6a0857223afb7f4a9f135e3aad9013436a9642735597fbb337f50ab97ea6897e8f5e175e4150ed8422957a61bb7f5edb7b SHA512 683d17bfa28c52ed88ef3d827cee73fad5bd901bf4fb651be4a14206c3b3bc906b8cbe2a347df52aa27d6f57926f3e5bd7d0769820e22e6f460d7245d30ea9a2
DIST mruby-process-95da206a5764f4e80146979b8e35bd7a9afd6850.tar.gz 6397 BLAKE2B de51cb1c36879f916f6354072423eed1c81642c06525eec53f96350911c29c7487a08fda0f82158dbf4f08c931cd58b3648a7601519acb59602fe1c3534de20b SHA512 029cd16ced7f9a63c2e2405adedf3aab4bd98e8f63bffd42d5b7646909b9c8344919c03f6da4b6027fb0723f6e23c5d106c6ff23c4faf0e4bb7ad3eba95a276f
DIST mruby-qml-parse-a3e687124b5afe51cdc4d8d36cbff7204e81a1b4.tar.gz 8384 BLAKE2B 53711fd5bdc5067b99412bfbb07108326dd9cb1f7a94804f61ab6292a1a1befe98223d65c4f7e43d16da69348e8f46950b659f913016eddc429818086d454a51 SHA512 0ac0df2143b8b5f9478d04d94c20cb3e113533d9b5a796d21c3db8a9963b4724588abd0327a57aa67fac0bc6bd0a6fb9b8f0cad98425d454ef906e742edc1bb2
DIST mruby-qml-spawn-77f782643c78a9cfe48e49f027d9978fb5e27d77.tar.gz 9829 BLAKE2B 7ccf0d4bf7b6dc2d6f44dafa83b48b549d2f888a07b995893caca4c95e72498109879a88cfe91b554e4093d6405788b13d53b95b1c230aaa6f5482d638c7b1a3 SHA512 bc36f11b94f2d62d911e47f00d113462e838f001d3e2ba07437db89d6c850ada49c08d76ad9dfdc3745166ca8ceb3e9a2de59e937fbbd28c8304043a71f0f91a
DIST mruby-regexp-pcre-cd13fb15fd6b813fc6c9bc2f17db20257f71bb0c.tar.gz 2089292 BLAKE2B c3539e1553f9ea0a3cbee695ea080c252a93b3b924ce666d562559e8143a92421c97a9b411d2a84798bba6324cc84cd3b0d837cc299044d2860f89fdb6713cc2 SHA512 1ea959567e86c41f8fa5b1842845d9db0ff8dacbe00a27b5a8dd289b9da8f0555e48e192f8c6bf3897d258ddf58d793f9efcef80b7b0c8000f0b94976fb0dce2
DIST mruby-set-68334311ac7386eef84f3034a256e7135a87625d.tar.gz 5866 BLAKE2B 442bea2c97a369e505a03838ca18e7b19ffa68001e75c8c4b8b5e24f3d9b34e28f24f681a29e4387508be874de47b57b34a35b4993d1dd8b80f0afd514b4a52c SHA512 ff3e7d4ff7e027d126160a796264c8ef2dd4e2fdef65de24f481ce9b178d6f293fcfe7a8b7a4db6db4ee49fc15c30a361d717cadb8b580c4cc1864b45a0273ca
DIST mruby-sleep-263d70351a4f75a875f2a35ab9a9128d1ef5da90.tar.gz 2289 BLAKE2B 420037f1f266ebb2a79668d22386b0d0a0883ba1471988c1769d501a7542d15e059ecf0da50593c037586b2a5c6abce9f7cba5ac7eabe5221700f66c90c75095 SHA512 b22a8e0e6a4c5ae9d62eca016c1527e494334cab7c9b3155608fa78a3ceb6f092db6418ba4facfecc88fcfba094daba4e45e468d69cfc2a83d7e8d272f19b2de
DIST mruby-zest-8352b7ae4a0efba111f72572d993efb892a27761.tar.gz 110741 BLAKE2B e5d1d759e0a919898bdd5c515348e5190f208b0f6b70066f64aa965805540450cad1a9ae9707a31330b4158da03027085a4869da78b345649f20d4c368dd1624 SHA512 902bd27c9c557651419759b26ebef8c8b1f5f62c412276bd6c93ae93ebb7e774e975502597e9e1c114413e3d4103c8c3482d6f0335b4413b32d243f2f6a5e809
DIST nanovg-b83cf926525e7cea8d2483da2a75852b8c7b6d28.tar.gz 980565 BLAKE2B 9ec91335f1332e126c4504f24bb8a2d81bfdd0a5d3c00316c2a5990f6cdf4ed4a5e677c0f78345063e47909097b2b38bd553c7e63eb84d6c300576394e4fb8ee SHA512 0c7e94543a9f8b015a958ba9532ddb54dd41a64294505e728bcda08b06a5ba5e8e0dfd253c625e2a6669b1aa72cdebcc63765e0cc093e45ae7fedc896b080ad0
DIST osc-bridge-67b0b5c85e0072ea0bee1129a1ec8cef1328faaa.tar.gz 61857 BLAKE2B 7e4501a4cf81e0e076dab742cd98fe55cc01f15c1eb284fce970e1a3cc8b8ab0072591f5a7252a9318fe482b7c04dc51e324a05f2cc88e31666edd5201e01c1d SHA512 646b3f8704d78f00aab912c953b5f2a65d3b21a15a2cfcdfee0b537810927f3e1be94e996dd94d6c559b700c5514c1c28fff34d04e310994255519f409c73fef
DIST pugl-d87062625ed652df9455bd6f60ea89c53515c43a.tar.gz 162936 BLAKE2B 64dab4c47997c39b7236dfee1fd73bb499a560fd44f72db3d40a93bd86d1d19007ca022fd3576838ab6571788959e612ddb9ac38ae19b30ec0110196b9ba11c6 SHA512 a047c1e4c6684ca15fa1cb045cff5f37f5ad34f5284dec2b31d3dd22d58e1da9601cb138bf3776dcdb87099c3be098cc28fb4f7488ba09d6c34cf0488fa9393b
DIST rtosc-70307782622c668a325992f6887f354ca30d5e14.tar.gz 95136 BLAKE2B 928dedca40ec6ab25122bba87d165146a93681b31e0323db5050785572f2d27e3440139bedaf773d0392d181d1795a55d1640b1f2bc45b155a8ddee638ebad13 SHA512 02e1bdf23d03f907751153176082c290c55209c514f69ac90b43030baefe5d27f0fe633d24bd3967f877e0539fb62b88d572bba855662e165d8d286aa5c5f9f1
DIST zyn-fusion-3.0.5.tar.gz 59011 BLAKE2B c98333a7fba56fe2e5890f6873f7f0e373c2dffe8c39796c43ea86d2a5b10a9d7a74839be32ffe455f6acfcbcbbc9298440e24915d8a78ecbf489bdb22b5092b SHA512 6b04119930b8a31e8edf0acb6d4c0c9ad3424b8cb54f84789000666002a01d698ee5f326d1ccf07709b9aa36c0698e84e258e71f6f8867dc21718e0014ac5579
11 changes: 11 additions & 0 deletions media-sound/zyn-fusion/files/zyn-fusion-gcc10.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- mruby-zest-build-3.0.5/src/mruby-widget-lib/src/gem.c.old 2020-08-11 21:26:06.146444612 +0900
+++ mruby-zest-build-3.0.5/src/mruby-widget-lib/src/gem.c 2020-08-11 21:27:51.839394549 +0900
@@ -290,7 +290,7 @@
return self;
}

-const struct mrb_data_type mrb_nvg_context_type;
+extern const struct mrb_data_type mrb_nvg_context_type;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know if this has already been PRed upstream? Arch is carrying a similar patch https://aur.archlinux.org/cgit/aur.git/tree/gcc10.patch?h=zyn-fusion

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure; this is a common theme for gcc10 compat issues and I wouldn't be surprised if upstream hasn't heard of it yet. I can throw a PR over at them :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. Would be nice to do that. Don't need to wait for it with this PR though :)

typedef void NVGcontext;
int nvglCreateImageFromHandleGL2(NVGcontext* ctx, GLuint textureId, int w, int h, int imageFlags);

11 changes: 11 additions & 0 deletions media-sound/zyn-fusion/files/zyn-fusion-qml-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- mruby-zest-build-3.0.5/src/mruby-widget-lib/src/api.c.old 2020-08-11 21:46:43.476973373 +0900
+++ mruby-zest-build-3.0.5/src/mruby-widget-lib/src/api.c 2020-08-11 21:47:29.006957050 +0900
@@ -97,7 +97,7 @@


//Verify that the search path is usable
- char *path = get_search_path();
+ char *path = "/usr/share/zyn-fusion/";
if(!dev_mode) {
if(strstr(path, "libzest"))
strstr(path, "libzest")[0] = 0;
8 changes: 8 additions & 0 deletions media-sound/zyn-fusion/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>[email protected]</email>
<name>Hector Martin</name>
</maintainer>
</pkgmetadata>
116 changes: 116 additions & 0 deletions media-sound/zyn-fusion/zyn-fusion-3.0.5.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Copyright 2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

USE_RUBY="ruby25 ruby26 ruby27"
PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8,3_9} )

inherit bash-completion-r1 ruby-single python-any-r1

DESCRIPTION="Zyn-Fusion User Interface"
HOMEPAGE="https://github.com/mruby-zest/mruby-zest-build"

SUBMODULES=(
"4f57a1ef9f968e9d5eef53667c7960a2e98c9750 deps/mruby-complex https://github.com/pbosetti/mruby-complex"
"334c040a2e2c4c2689f8c3440168011f64d57ada deps/mruby-dir-glob https://github.com/gromnitsky/mruby-dir-glob"
"6849202f885516b381406e799dcdb430065e19cf deps/mruby-glew https://github.com/IceDragon200/mruby-glew"
"0eeee012fd4bbd6544dd34f17ce2b476ad71d86b deps/mruby-glfw3 https://github.com/IceDragon200/mruby-glfw3"
"1c4428880b2f0f0fcd81ea2debc5f4459a7ed53c deps/mruby-io https://github.com/iij/mruby-io"
"d7d4e1ce434131babb5fd6026201011f5b0b50ea deps/mruby-nanovg https://github.com/mruby-zest/mruby-nanovg"
"cd13fb15fd6b813fc6c9bc2f17db20257f71bb0c deps/mruby-regexp-pcre https://github.com/iij/mruby-regexp-pcre"
"68334311ac7386eef84f3034a256e7135a87625d deps/mruby-set https://github.com/yui-knk/mruby-set"
"263d70351a4f75a875f2a35ab9a9128d1ef5da90 deps/mruby-sleep https://github.com/matsumoto-r/mruby-sleep"
"b83cf926525e7cea8d2483da2a75852b8c7b6d28 deps/nanovg https://github.com/memononen/nanovg"
"d87062625ed652df9455bd6f60ea89c53515c43a deps/pugl https://github.com/mruby-zest/pugl"
"70307782622c668a325992f6887f354ca30d5e14 deps/rtosc https://github.com/fundamental/rtosc"
"e5b61d34f65cabfbe88f3f1709a1f9cff86585de mruby https://github.com/mruby/mruby"
"a3e687124b5afe51cdc4d8d36cbff7204e81a1b4 src/mruby-qml-parse https://github.com/mruby-zest/mruby-qml-parse"
"77f782643c78a9cfe48e49f027d9978fb5e27d77 src/mruby-qml-spawn https://github.com/mruby-zest/mruby-qml-spawn"
"8352b7ae4a0efba111f72572d993efb892a27761 src/mruby-zest https://github.com/mruby-zest/mruby-zest"
"67b0b5c85e0072ea0bee1129a1ec8cef1328faaa src/osc-bridge https://github.com/mruby-zest/osc-bridge"
"2033837203c8a141b1f9d23bb781fe0cbaefbd24 mruby/build/mrbgems/mgem-list https://github.com/mruby/mgem-list"
"89dceefa1250fb1ae868d4cb52498e9e24293cd1 mruby/build/mrbgems/mruby-dir https://github.com/iij/mruby-dir"
"383a9c79e191d524a9a2b4107cc5043ecbf6190b mruby/build/mrbgems/mruby-pack https://github.com/iij/mruby-pack"
"b4415207ff6ea62360619c89a1cff83259dc4db0 mruby/build/mrbgems/mruby-errno https://github.com/iij/mruby-errno"
"d196a1e529d227511cf19d516a46f62866619008 mruby/build/mrbgems/mruby-file-stat https://github.com/ksss/mruby-file-stat"
"95da206a5764f4e80146979b8e35bd7a9afd6850 mruby/build/mrbgems/mruby-process https://github.com/iij/mruby-process"
)

SRC_URI="https://github.com/mruby-zest/mruby-zest-build/archive/${PV}.tar.gz -> ${P}.tar.gz"
for i in "${SUBMODULES[@]}"; do
set -- $i
SRC_URI+=" $3/archive/$1.tar.gz -> ${3/*\//}-$1.tar.gz"
done

LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64"
IUSE=""

DEPEND="dev-libs/libuv
x11-libs/libX11
x11-libs/libxcb
virtual/opengl"
RDEPEND="${DEPEND}"
BDEPEND="${RUBY_DEPS}
${PYTHON_DEPS}"

S="${WORKDIR}/mruby-zest-build-$PV"

PATCHES=(
"${FILESDIR}/zyn-fusion-gcc10.patch"
"${FILESDIR}/zyn-fusion-qml-path.patch"
)

src_prepare() {
# Unbundle libuv: makefile and rake file
sed -i -e "s%./deps/\$(UV_DIR)/.libs/libuv.a%`pkg-config --libs libuv`%" \
-e 's%-I ../../deps/\$(UV_DIR)/include%-I /usr/include/uv/%' Makefile
sed -i -e "/deps\/libuv.a/s/<< .*/<< \"`pkg-config --libs libuv`\"/" \
-e 's%../deps/libuv-v1.9.1/include/%usr/include/uv/%' build_config.rb

for i in "${SUBMODULES[@]}"; do
set -- $i
mkdir -p "$2"
rmdir "$2"
mv "../${3/*\//}-$1" "$2"
done

# fix jobserver, make rake use MAKEOPTS too, give it a soname,
# say no to python2, use LDFLAGS/CFLAGS
sed -i -e 's/\bmake\b/$(MAKE)/' \
-e "s/\brake\b/rake ${MAKEOPTS}/" \
-e 's/-shared/$(LDFLAGS) -shared -Wl,-soname,libzest.so/' \
-e "s/python2/${EPYTHON}/" \
-e "s/--debug//" \
-e 's/CFLAGS="/CFLAGS="$(CFLAGS) /' \
-e 's/$(CC)/$(CC) $(CFLAGS)/' Makefile

default_src_prepare

# bundled waf is broken in Python3.7, and this is a version with
# autowaf, so it isn't trivial to just replace with upstream.
# Hack around it instead.
${EPYTHON} deps/pugl/waf --version # This will unpack waf
# Now fix it
sed -i -e '/StopIteration/d' deps/pugl/.waf*/waflib/Node.py
}

src_install() {
insinto /usr/share/zyn-fusion/qml
doins src/mruby-zest/qml/*
doins src/mruby-zest/example/*

insinto /usr/share/zyn-fusion/schema
doins src/osc-bridge/schema/test.json

insinto /usr/share/zyn-fusion/font
doins deps/nanovg/example/*.ttf

dolib.so libzest.so
dobin zest
dosym zest /usr/bin/zyn-fusion
dobashcomp completions/zyn-fusion
bashcomp_alias zyn-fusion zest
}
1 change: 1 addition & 0 deletions media-sound/zynaddsubfx/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST zynaddsubfx-3.0.5.tar.bz2 8141703 BLAKE2B 61f28a62d5ef8c17b5e38febb8ad1ecd40c80f87b26d90804131b97b57534adf5ad96a1f54980b75fd5e71185e2d5376a7df35696c7bcfd593b5d8e34bd2e386 SHA512 1e4d5a6393937e6c7103e6d0e97df76f2d129350854c2f338aa888591091b1508c63e9b52c8e5a176e282ff2f6b72c6a87de54875c412771aff26e8ece2c84e8
12 changes: 12 additions & 0 deletions media-sound/zynaddsubfx/files/zynaddsubfx-3.0.5-docs.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,9 +28,6 @@ include(CTestConfig.cmake)
add_subdirectory(src)
add_subdirectory(doc) # Doxygen only

-install(FILES AUTHORS.txt COPYING HISTORY.txt README.adoc
- DESTINATION share/doc/zynaddsubfx
- )
install(FILES zynaddsubfx-jack-multi.desktop zynaddsubfx-jack.desktop zynaddsubfx-alsa.desktop zynaddsubfx-oss.desktop
DESTINATION share/applications)
install(FILES zynaddsubfx.svg
19 changes: 19 additions & 0 deletions media-sound/zynaddsubfx/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>[email protected]</email>
<name>Hector Martin</name>
</maintainer>
<maintainer type="project">
<email>[email protected]</email>
<name>Gentoo ProAudio Project</name>
</maintainer>
<use>
<flag name="dssi">Enable support for DSSI Soft Synth Interface</flag>
<flag name="zest">Enable support for the zyn-fusion zest UI</flag>
</use>
<upstream>
<remote-id type="sourceforge">zynaddsubfx</remote-id>
</upstream>
</pkgmetadata>
96 changes: 96 additions & 0 deletions media-sound/zynaddsubfx/zynaddsubfx-3.0.5-r1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cmake flag-o-matic

DESCRIPTION="Software synthesizer capable of making a countless number of instruments"
HOMEPAGE="http://zynaddsubfx.sourceforge.net/"
SRC_URI="mirror://sourceforge/zynaddsubfx/${P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="alsa doc dssi +fltk jack lash portaudio zest"

REQUIRED_USE="|| ( alsa jack portaudio )"

BDEPEND="
virtual/pkgconfig
doc? ( app-doc/doxygen )
"
DEPEND="
>=dev-libs/mxml-2.2.1
media-libs/liblo
sci-libs/fftw:3.0
sys-libs/zlib
alsa? ( media-libs/alsa-lib )
dssi? ( media-libs/dssi )
fltk? (
>=x11-libs/fltk-1.3:1
x11-libs/libX11
x11-libs/libXpm
)
jack? ( virtual/jack )
lash? ( media-sound/lash )
portaudio? ( media-libs/portaudio )
"
RDEPEND="${DEPEND}
zest? ( media-sound/zyn-fusion )
"

PATCHES=( "${FILESDIR}"/${P}-docs.patch )

DOCS=( ChangeLog HISTORY.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
}

src_configure() {
append-cxxflags -std=c++11

local mycmakeargs=(
-DPluginLibDir=$(get_libdir)
$(cmake_use_find_package alsa Alsa)
$(cmake_use_find_package doc Doxygen)
$(cmake_use_find_package fltk FLTK)
)
if use zest ; then
Copy link
Member

@simonvanderveldt simonvanderveldt Aug 16, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we have a exactly one of REQUIRED_USE for fltk and zest?
Now you can have both set but you'll still always get one of the two for the plugin UI, I think that's a bit confusing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was wondering that myself when I was writing the ebuild, but then I looked at the REQUIRED_USE documentation and it says it should be used sparingly:

https://devmanual.gentoo.org/general-concepts/use-flags/index.html#conflicting-use-flags

In particular it seems exclusions like that are more useful for dependencies, while for leaf level ebuilds it makes more sense to favour user intent (which, if they ask for zest, probably means they don't want fltk).

An einfo message to this effect might be in order, though.

mycmakeargs+=( -DGuiModule=zest )
elif use fltk ; then
mycmakeargs+=( -DGuiModule=fltk )
else
mycmakeargs+=( -DGuiModule=off )
fi
cmake_src_configure
}

src_compile() {
cmake_src_compile
use doc && cmake_src_compile doc
}

src_install() {
use doc && local HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
cmake_src_install
insinto /usr/share/${PN}
doins -r instruments/*
}
3 changes: 3 additions & 0 deletions tests/resources/packages/media-sound/zynaddsubfx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
cat >/etc/portage/package.use/audio-overlay <<EOF
media-sound/zynaddsubfx alsa zest
EOF