[packages/zynaddsubfx-fusion: 33/33] new package: ZynAddSubFX with the new Zyn-Fusion UI

jajcus jajcus at pld-linux.org
Thu Aug 9 12:52:25 CEST 2018


commit 0377ba2d112850a354e46146577726515f2f940c
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Thu Aug 9 12:48:50 2018 +0200

    new package: ZynAddSubFX with the new Zyn-Fusion UI

 external_mruby_gems.patch |  17 ++++
 get-fusion.sh             |  35 ++++++++
 system_libuv.patch        |  59 +++++++++++++
 zynaddsubfx-fusion.spec   | 211 ++++++++++++++++++++++++++++++++++++++++++++++
 zynaddsubfx.spec          | 130 ----------------------------
 5 files changed, 322 insertions(+), 130 deletions(-)
---
diff --git a/zynaddsubfx-fusion.spec b/zynaddsubfx-fusion.spec
new file mode 100644
index 0000000..570133a
--- /dev/null
+++ b/zynaddsubfx-fusion.spec
@@ -0,0 +1,211 @@
+#
+# This package provides ZynAddSubFX syntethizer with the new 'Zyn-Fusion' UI
+# Source code for the UI is available in the https://github.com/mruby-zest/mruby-zest-build
+# repository and contains many submodules and no unified source archive
+#
+# Use the provided 'get-fusion.sh' script to generate the Source1 archive
+
+%define fusion_version 3.0.2_59_gc4c9221
+
+%define mruby_pack_version 383a9c79e191d524a9a2b4107cc5043ecbf6190b
+%define mruby_process_version bd288a930d4f61fbda1865deb8997245dc5fd38c
+%define mruby_file_stat_version 12871584f2e5e2d24f5c54325d3ba3338414e2a4
+%define mruby_errno_version b4415207ff6ea62360619c89a1cff83259dc4db0
+%define mruby_dir_version 14bc5c3e51eac16ebc9075b7b62132a0cf5ae724
+
+Summary:	Realtime software synthesizer
+Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym
+Name:		zynaddsubfx-fusion
+Version:	3.0.3
+Release:	1
+License:	GPL
+Group:		X11/Applications/Sound
+Source0:	http://downloads.sourceforge.net/zynaddsubfx/zynaddsubfx-%{version}.tar.bz2
+# Source0-md5:	66acae0913108f129aa979f3c4b65473
+Source1:	mruby-zest-build-%{fusion_version}.tar.xz
+# Source1-md5:	fa7c3b4c46e6155df19cb00d9dc6db0f
+Source2:	https://github.com/iij/mruby-pack/archive/%{mruby_pack_version}/mruby-pack-%{mruby_pack_version}.tar.gz
+# Source2-md5:	b77f2dea16857e64624730ec94beb778
+Source3:	https://github.com/iij/mruby-process/archive/%{mruby_process_version}/mruby-process-%{mruby_process_version}.tar.gz
+# Source3-md5:	7c3881decb19930175b1f9520216d133
+Source4:	https://github.com/ksss/mruby-file-stat/archive/%{mruby_file_stat_version}/mruby-file-stat-%{mruby_file_stat_version}.tar.gz
+# Source4-md5:	8bad3f085f86cdc5d065c36b4ca3850d
+Source5:	https://github.com/iij/mruby-errno/archive/%{mruby_errno_version}/mruby-errno-%{mruby_errno_version}.tar.gz
+# Source5-md5:	2696ab2c434d1779e96fed50ed4a77c4
+Source6:	https://github.com/iij/mruby-dir/archive/%{mruby_dir_version}/mruby-dir-%{mruby_dir_version}.tar.gz
+# Source6-md5:	c0fd8162728821361e38ccec87677397
+Patch0:		cxx_flags.patch
+Patch1:		system_libuv.patch
+Patch2:		external_mruby_gems.patch
+URL:		http://zynaddsubfx.sourceforge.net/
+BuildRequires:	Mesa-libGL-devel
+BuildRequires:	Mesa-libGLU-devel
+BuildRequires:	alsa-lib-devel
+BuildRequires:	cairo-devel
+BuildRequires:	cmake
+#BuildRequires:	doxygen
+BuildRequires:	dssi-devel >= 0.9.0
+BuildRequires:	fftw3-devel
+BuildRequires:	jack-audio-connection-kit-devel >= 0.66.3
+BuildRequires:	lash-devel
+BuildRequires:	liblo-devel >= 0.28
+BuildRequires:	libuv-devel >= 1.9.1
+BuildRequires:	mxml-devel >= 2.2
+BuildRequires:	pkgconfig
+BuildRequires:	portaudio >= 19
+BuildRequires:	rpmbuild(macros) >= 1.213
+BuildRequires:	ruby
+BuildRequires:	ruby-rake
+BuildRequires:	sed >= 4.0
+BuildRequires:	sed >= 4.0
+BuildRequires:	zlib-devel
+Obsoletes:	ZynAddSubFX
+Obsoletes:	zynaddsubfx
+ExclusiveArch:	%{ix86} %{x8664}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define		_noautoprovfiles	%{_libdir}/(dssi|lv2|vst)
+
+%description
+ZynAddSubFX is a software synthesizer capable of making a countless
+number of instruments.
+
+Zyn-Fusion is the modern external GUI for the synthesizer.
+
+%description -l pl.UTF-8
+ZynAddSubFX jest programowym syntezatorem zdolnym do tworzenia
+niezliczonej ilości instrumentów.
+
+Zyn-Fusion do nowoczesny interfejs użytkownika dla tego syntezatora.
+
+%package dssi
+Summary:	Realtime software synthesizer - DSSI plugin
+Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin DSSI
+Group:		X11/Applications/Sound
+Requires:	%{name} = %{version}-%{release}
+Obsoletes:	ZynAddSubFX-dssi
+Obsoletes:	zynaddsubfx-dssi
+
+%description dssi
+ZynAddSubFX software synthesizer as a DSSI plugin.
+
+%description dssi -l pl.UTF-8
+Syntezator ZynAddSubFX jako wtyczka DSSI.
+
+%package lv2
+Summary:	Realtime software synthesizer - LV2 plugin
+Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin LV2
+Group:		X11/Applications/Sound
+Requires:	%{name} = %{version}-%{release}
+Obsoletes:	ZynAddSubFX-lv2
+Obsoletes:	zynaddsubfx-lv2
+
+%description lv2
+ZynAddSubFX software synthesizer as a LV2 plugin.
+
+%description lv2 -l pl.UTF-8
+Syntezator ZynAddSubFX jako wtyczka LV2.
+
+%package vst
+Summary:	Realtime software synthesizer - VST plugin
+Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin VST
+Group:		X11/Applications/Sound
+Requires:	%{name} = %{version}-%{release}
+Obsoletes:	ZynAddSubFX-vst
+Obsoletes:	zynaddsubfx-vst
+
+%description vst
+ZynAddSubFX software synthesizer as a VST plugin.
+
+%description vst -l pl.UTF-8
+Syntezator ZynAddSubFX jako wtyczka VST.
+
+%prep
+%setup -qn zynaddsubfx-%{version} -a 1 -a 2 -a 3 -a 4 -a 5 -a 6
+
+for module in pack process file-stat errno dir ; do
+	mv mruby-${module}-* mruby-zest-build/deps/mruby-${module}
+done
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+sed -i -e's@/opt/zyn-fusion@%{_libdir}/zyn-fusion at g' \
+	mruby-zest-build/test-libversion.c \
+	src/Plugin/ZynAddSubFX/ZynAddSubFX-UI-Zest.cpp
+
+%build
+
+# See https://github.com/zynaddsubfx/zyn-fusion-build/blob/master/build-linux.rb
+# for the build instructions
+
+[ -d build ] || mkdir build
+cd build
+%cmake .. \
+		-DGuiModule=zest \
+	-DPluginLibDir=%{_lib} \
+	-DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags}"
+
+%{__make}
+cd ..
+
+cd mruby-zest-build
+export LC_ALL=C.utf-8
+ruby rebuild-fcache.rb
+%{__make} setup
+%{__make} builddep
+export VERSION="%{version}"
+export BUILD_MODE="release"
+%{__make}
+%{__make} pack
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/%{name},%{_libdir}/zyn-fusion} \
+	$RPM_BUILD_ROOT%{_desktopdir}
+
+%{__make} -C build install \
+	DESTDIR="$RPM_BUILD_ROOT"
+
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
+
+cp -a mruby-zest-build/package/* $RPM_BUILD_ROOT%{_libdir}/zyn-fusion
+ln -s %{_libdir}/zyn-fusion/zest $RPM_BUILD_ROOT%{_bindir}/zyn-fusion
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/zyn-fusion/mruby
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc AUTHORS.txt HISTORY.txt README.adoc
+%attr(755,root,root) %{_bindir}/zynaddsubfx
+%attr(755,root,root) %{_bindir}/zyn-fusion
+%{_datadir}/zynaddsubfx
+%{_pixmapsdir}/zynaddsubfx.svg
+%{_desktopdir}/zynaddsubfx-*.desktop
+%dir %{_libdir}/zyn-fusion
+%attr(755,root,root) %{_libdir}/zyn-fusion/zest
+%attr(755,root,root) %{_libdir}/zyn-fusion/libzest.so
+%{_libdir}/zyn-fusion/VERSION
+%{_libdir}/zyn-fusion/font
+%{_libdir}/zyn-fusion/qml
+%{_libdir}/zyn-fusion/schema
+
+%files dssi
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/dssi/libzynaddsubfx_dssi.so
+
+%files lv2
+%defattr(644,root,root,755)
+%dir %{_libdir}/lv2/*.lv2
+%dir %{_libdir}/lv2/ZynAddSubFX.lv2presets
+%attr(755,root,root) %{_libdir}/lv2/*.lv2/*.so
+%{_libdir}/lv2/*.lv2/*.ttl
+%{_libdir}/lv2/ZynAddSubFX.lv2presets/*.ttl
+
+%files vst
+%defattr(644,root,root,755)
+%dir %{_libdir}/vst
+%attr(755,root,root) %{_libdir}/vst/*.so
diff --git a/zynaddsubfx.spec b/zynaddsubfx.spec
deleted file mode 100644
index 88a1f84..0000000
--- a/zynaddsubfx.spec
+++ /dev/null
@@ -1,130 +0,0 @@
-Summary:	Realtime software synthesizer
-Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym
-Name:		zynaddsubfx
-Version:	3.0.3
-Release:	1
-License:	GPL
-Group:		X11/Applications/Sound
-Source0:	http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
-# Source0-md5:	66acae0913108f129aa979f3c4b65473
-Patch0:		cxx_flags.patch
-URL:		http://zynaddsubfx.sourceforge.net/
-BuildRequires:	alsa-lib-devel
-#BuildRequires:	doxygen
-BuildRequires:	dssi-devel >= 0.9.0
-BuildRequires:	fftw3-devel
-BuildRequires:	fltk-devel >= 1.1.3
-BuildRequires:	jack-audio-connection-kit-devel >= 0.66.3
-BuildRequires:	lash-devel
-BuildRequires:	liblo-devel >= 0.28
-BuildRequires:	mxml-devel >= 2.2
-BuildRequires:	pkgconfig
-BuildRequires:	portaudio >= 19
-BuildRequires:	rpmbuild(macros) >= 1.213
-BuildRequires:	sed >= 4.0
-BuildRequires:	xorg-lib-libICE-devel
-BuildRequires:	xorg-lib-libX11-devel
-BuildRequires:	zlib-devel
-Obsoletes:	ZynAddSubFx
-ExclusiveArch:	%{ix86} %{x8664}
-BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-
-%define		_noautoprovfiles	%{_libdir}/(dssi|lv2|vst)
-
-%description
-ZynAddSubFX is a software synthesizer capable of making a countless
-number of instruments.
-
-%description -l pl.UTF-8
-ZynAddSubFX jest programowym syntezatorem zdolnym do tworzenia
-niezliczonej ilości instrumentów.
-
-%package dssi
-Summary:	Realtime software synthesizer - DSSI plugin
-Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin DSSI
-Group:		X11/Applications/Sound
-Requires:	%{name} = %{version}-%{release}
-
-%description dssi
-ZynAddSubFX software synthesizer as a DSSI plugin.
-
-%description dssi -l pl.UTF-8
-Syntezator ZynAddSubFX jako wtyczka DSSI.
-
-%package lv2
-Summary:	Realtime software synthesizer - LV2 plugin
-Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin LV2
-Group:		X11/Applications/Sound
-Requires:	%{name} = %{version}-%{release}
-
-%description lv2
-ZynAddSubFX software synthesizer as a LV2 plugin.
-
-%description lv2 -l pl.UTF-8
-Syntezator ZynAddSubFX jako wtyczka LV2.
-
-%package vst
-Summary:	Realtime software synthesizer - VST plugin
-Summary(pl.UTF-8):	Syntezator programowy działający w czasie rzeczywistym, plugin VST
-Group:		X11/Applications/Sound
-Requires:	%{name} = %{version}-%{release}
-
-%description vst
-ZynAddSubFX software synthesizer as a VST plugin.
-
-%description vst -l pl.UTF-8
-Syntezator ZynAddSubFX jako wtyczka VST.
-
-%prep
-%setup -qn %{name}-%{version}
-
-%patch0 -p1
-
-%build
-
-mkdir build
-cd build
-%cmake .. \
-	-DPluginLibDir=%{_lib} \
-	-DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags}"
-
-%{__make}
-
-%install
-rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/%{name}} \
-	$RPM_BUILD_ROOT%{_desktopdir}
-
-%{__make} -C build install \
-	DESTDIR="$RPM_BUILD_ROOT"
-
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(644,root,root,755)
-%doc AUTHORS.txt HISTORY.txt README.adoc
-%attr(755,root,root) %{_bindir}/zynaddsubfx
-%attr(755,root,root) %{_bindir}/zynaddsubfx-ext-gui
-%{_datadir}/zynaddsubfx
-%{_pixmapsdir}/zynaddsubfx.svg
-%{_desktopdir}/zynaddsubfx-*.desktop
-
-%files dssi
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/dssi/libzynaddsubfx_dssi.so
-
-%files lv2
-%defattr(644,root,root,755)
-%dir %{_libdir}/lv2/*.lv2
-%dir %{_libdir}/lv2/ZynAddSubFX.lv2presets
-%attr(755,root,root) %{_libdir}/lv2/*.lv2/*.so
-%{_libdir}/lv2/*.lv2/*.ttl
-%{_libdir}/lv2/ZynAddSubFX.lv2presets/*.ttl
-
-%files vst
-%defattr(644,root,root,755)
-%dir %{_libdir}/vst
-%attr(755,root,root) %{_libdir}/vst/*.so
diff --git a/external_mruby_gems.patch b/external_mruby_gems.patch
new file mode 100644
index 0000000..5e24d43
--- /dev/null
+++ b/external_mruby_gems.patch
@@ -0,0 +1,17 @@
+diff -dur zynaddsubfx-3.0.3.orig/mruby-zest-build/build_config.rb zynaddsubfx-3.0.3/mruby-zest-build/build_config.rb
+--- zynaddsubfx-3.0.3.orig/mruby-zest-build/build_config.rb	2018-08-09 10:57:14.000000000 +0200
++++ zynaddsubfx-3.0.3/mruby-zest-build/build_config.rb	2018-08-09 10:58:48.000000000 +0200
+@@ -75,6 +75,13 @@
+   #Eval for runtime reloads
+   conf.gem :core => "mruby-eval"
+ 
++  #external gems
++  conf.gem 'deps/mruby-pack'
++  conf.gem 'deps/mruby-process'
++  conf.gem 'deps/mruby-file-stat'
++  conf.gem 'deps/mruby-errno'
++  conf.gem 'deps/mruby-dir'
++
+   #Non-STD lib gems
+   conf.gem 'deps/mruby-io'
+   conf.gem 'deps/mruby-nanovg'
diff --git a/get-fusion.sh b/get-fusion.sh
new file mode 100755
index 0000000..bed0e90
--- /dev/null
+++ b/get-fusion.sh
@@ -0,0 +1,35 @@
+#!/bin/sh -e
+
+# Make archives of Zyn-Fusion sources from GIT
+
+if [ -z "$1" -o -n "$2" ] ; then
+	echo "Usage:"
+	echo "  $0 <commit>"
+	echo "E.g.:"
+	echo "  $0 c4c9221"
+	exit 1
+fi
+
+commit="$1"
+
+set -x
+
+if [ -d mruby-zest-build/.git ] ; then
+	cd mruby-zest-build
+	git fetch origin
+	git checkout master
+else
+	git clone --recursive https://github.com/mruby-zest/mruby-zest-build.git
+	cd mruby-zest-build
+fi
+git reset --hard "$commit"
+git submodule sync
+git submodule update
+
+version="$(git describe --tags | sed -e's/^v//;s/-/_/g')"
+archive_name="mruby-zest-build-$version.tar"
+
+echo "Building $archive_name..."
+git archive --prefix mruby-zest-build/ -o ../$archive_name HEAD
+git submodule --quiet foreach 'cd $toplevel/..; tar rf '"$archive_name"' mruby-zest-build/$path'
+xz ../$archive_name
diff --git a/system_libuv.patch b/system_libuv.patch
new file mode 100644
index 0000000..da9278b
--- /dev/null
+++ b/system_libuv.patch
@@ -0,0 +1,59 @@
+diff -dur zynaddsubfx-3.0.3.orig/mruby-zest-build/build_config.rb zynaddsubfx-3.0.3/mruby-zest-build/build_config.rb
+--- zynaddsubfx-3.0.3.orig/mruby-zest-build/build_config.rb	2018-08-06 09:01:21.000000000 +0200
++++ zynaddsubfx-3.0.3/mruby-zest-build/build_config.rb	2018-08-07 14:32:40.000000000 +0200
+@@ -92,7 +92,6 @@
+   conf.cc do |cc|
+       cc.include_paths << "#{`pwd`.strip}/../deps/nanovg/src"
+       cc.include_paths << "#{`pwd`.strip}/../deps/pugl/"
+-      cc.include_paths << "#{`pwd`.strip}/../deps/libuv-v1.9.1/include/"
+       cc.include_paths << "/usr/share/mingw-w64/include/" if windows
+       cc.include_paths << "/usr/x86_64-w64-mingw32/include/" if windows
+       cc.flags << "-DLDBL_EPSILON=1e-6" if windows
+@@ -110,7 +109,7 @@
+       #linker.library_paths  << "#{`pwd`.strip}/../deps/rtosc/build/"
+       linker.library_paths  << "#{`pwd`.strip}/../src/osc-bridge/"
+       linker.libraries << 'osc-bridge'
+-      linker.flags_after_libraries  << "#{`pwd`.strip}/../deps/libuv.a"
++      linker.flags_after_libraries  << "-luv"
+       linker.flags_after_libraries  << "#{`pwd`.strip}/../deps/pugl/build/libpugl-0.a"
+       linker.flags_after_libraries  << "#{`pwd`.strip}/../deps/libnanovg.a"
+       if(!windows)
+diff -dur zynaddsubfx-3.0.3.orig/mruby-zest-build/Makefile zynaddsubfx-3.0.3/mruby-zest-build/Makefile
+--- zynaddsubfx-3.0.3.orig/mruby-zest-build/Makefile	2018-08-06 09:01:21.000000000 +0200
++++ zynaddsubfx-3.0.3/mruby-zest-build/Makefile	2018-08-07 14:31:35.000000000 +0200
+@@ -10,12 +10,12 @@
+ #	cd deps/pugl         && ./waf configure --no-cairo --static
+ 	cd deps/pugl         && ./waf configure --no-cairo --static --debug
+ 	cd deps/pugl         && ./waf
+-	cd src/osc-bridge    && CFLAGS="-I ../../deps/libuv-v1.9.1/include " make lib
++	cd src/osc-bridge    && make lib
+ 	cd mruby             && MRUBY_CONFIG=../build_config.rb rake
+ 	$(CC) -shared -o libzest.so `find mruby/build/host -type f | grep -e "\.o$$" | grep -v bin` ./deps/libnanovg.a \
+ 		./deps/libnanovg.a \
+ 		src/osc-bridge/libosc-bridge.a \
+-		./deps/libuv-v1.9.1/.libs/libuv.a  -lm -lX11 -lGL -lpthread
++		-luv -lm -lX11 -lGL -lpthread
+ 	$(CC) test-libversion.c deps/pugl/build/libpugl-0.a -ldl -o zest -lX11 -lGL -lpthread -I deps/pugl -std=gnu99
+ 
+ osx:
+@@ -49,20 +49,13 @@
+ 
+ 
+ builddep:
+-	cd deps/$(UV_DIR)    && ./autogen.sh
+-	cd deps/$(UV_DIR)    && CFLAGS=-fPIC ./configure
+-	cd deps/$(UV_DIR)    && CFLAGS=-fPIC make
+-	cp deps/$(UV_DIR)/.libs/libuv.a deps/
+ 
+ builddepwin:
+ 	cd deps/$(UV_DIR)   && ./autogen.sh
+ 	cd deps/$(UV_DIR)   && CFLAGS="-mstackrealign" ./configure  --host=x86_64-w64-mingw32
+ 	cd deps/$(UV_DIR)   && LD=x86_64-w64-mingw32-gcc make
+-	cp deps/$(UV_DIR)/.libs/libuv.a deps/
+ 
+ setup:
+-	cd deps              && wget -4 $(UV_URL)
+-	cd deps              && tar xvf $(UV_FILE)
+ 
+ setupwin:
+ 	cd deps              && wget -4 $(UV_URL)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/zynaddsubfx-fusion.git/commitdiff/0377ba2d112850a354e46146577726515f2f940c



More information about the pld-cvs-commit mailing list