From: Jacek Konieczny Date: Thu, 9 Aug 2018 10:48:50 +0000 (+0200) Subject: new package: ZynAddSubFX with the new Zyn-Fusion UI X-Git-Tag: auto/th/zynaddsubfx-fusion-3.0.3-1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=0377ba2d112850a354e46146577726515f2f940c;p=packages%2Fzynaddsubfx-fusion.git new package: ZynAddSubFX with the new Zyn-Fusion UI --- 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 " + 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) 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@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