[packages/muse] Version: 3.0.2, new fluidsynth and Qt compatibility

jajcus jajcus at pld-linux.org
Thu Nov 22 21:36:13 CET 2018


commit a372a8f0d4c5c4bc96f21bbf6fb8402585f0ddb6
Author: Jacek Konieczny <jajcus at jajcus.net>
Date:   Thu Nov 22 21:35:50 2018 +0100

    Version: 3.0.2, new fluidsynth and Qt compatibility

 fluidsynth2.patch         | 139 +++++++++++++++++++++++++++++++++++++++++++
 missing_includes.patch    |  44 ++++++++++++++
 muse-CMakeLists.txt.patch |  21 -------
 muse.spec                 | 147 +++++++++++++++++++++++++++-------------------
 4 files changed, 270 insertions(+), 81 deletions(-)
---
diff --git a/muse.spec b/muse.spec
index 7cd0c06..d414473 100644
--- a/muse.spec
+++ b/muse.spec
@@ -9,14 +9,15 @@
 Summary:	Linux Music Editor
 Summary(pl.UTF-8):	Edytor muzyczny dla Linuksa
 Name:		muse
-Version:	2.1.2
-Release:	2
-License:	GPL
+Version:	3.0.2
+Release:	1
+License:	GPL v2
 Group:		X11/Applications/Sound
 Source0:	http://downloads.sourceforge.net/lmuse/%{name}-%{version}.tar.gz
-# Source0-md5:	ad917335ac05a3d62e3cd073af901001
+# Source0-md5:	6e992f0f9d58adc3a2e2444dece37dfe
 Source1:	%{name}.desktop
-Patch0:		%{name}-CMakeLists.txt.patch
+Patch0:		missing_includes.patch
+Patch1:		fluidsynth2.patch
 URL:		http://muse.seh.de/
 BuildRequires:	QtDesigner-devel
 BuildRequires:	QtSvg-devel
@@ -24,7 +25,8 @@ BuildRequires:	QtUiTools-devel
 BuildRequires:	alsa-lib-devel >= 0.9.0
 BuildRequires:	cmake >= 2.8.0
 BuildRequires:	dssi-devel >= 0.9.0
-%{?with_fluid:BuildRequires:	fluidsynth-devel >= 0.9.0}
+%{?with_fluid:BuildRequires:	fluidsynth-devel >= 2.0.0}
+BuildRequires:	gtkmm-devel
 BuildRequires:	jack-audio-connection-kit-devel >= 0.103
 BuildRequires:	ladspa-devel
 BuildRequires:	lash-devel >= 0.2
@@ -32,10 +34,14 @@ BuildRequires:	liblo >= 0.23
 BuildRequires:	libsamplerate-devel >= 0.1.0
 BuildRequires:	libsndfile-devel >= 1.0.25
 BuildRequires:	libuuid-devel >= 0.1.8
+BuildRequires:	lilv-devel >= 0.22.0
+BuildRequires:	lv2-devel >= 1.12.0
 BuildRequires:	rpmbuild(macros) >= 1.213
+BuildRequires:	rtaudio-devel >= 4.0
+BuildRequires:	sord-devel >= 0.14.0
 Requires:	gtk-update-icon-cache
 Requires:	hicolor-icon-theme
-Requires:	lash
+Suggests:	lash
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -58,12 +64,14 @@ Dokumentacja do anta.
 
 %prep
 %setup -q
-%patch0 -p0
+%patch0 -p1
+%patch1 -p2
 
 %build
 install -d build
 cd build
 %cmake \
+	-DMusE_DOC_DIR="%{_docdir}/%{name}-%{version}" \
 	../
 
 %{__make}
@@ -79,6 +87,7 @@ cp -p packaging/muse_icon.png $RPM_BUILD_ROOT%{_pixmapsdir}/muse.png
 
 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/*.a
 rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/synthi/*.a
+rm -f $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/COPYING
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -91,66 +100,84 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc ChangeLog README  README.de README.effects-rack README.instruments README.ladspaguis README.shortcuts README.softsynth README.translate README.usage SECURITY NEWS COPYING AUTHORS
-%attr(755,root,root) %{_bindir}/muse2
+# do not use %doc, as it would remove files which are already there
+%{_docdir}/%{name}-%{version}/AUTHORS
+%{_docdir}/%{name}-%{version}/ChangeLog
+%{_docdir}/%{name}-%{version}/NEWS
+%{_docdir}/%{name}-%{version}/README*
+%{_docdir}/%{name}-%{version}/SECURITY
+%dir %{_docdir}/%{name}-%{version}/deicsonze
+%{_docdir}/%{name}-%{version}/deicsonze/*
+%dir %{_docdir}/%{name}-%{version}/fluidsynth
+%{_docdir}/%{name}-%{version}/fluidsynth/*
+%dir %{_docdir}/%{name}-%{version}/freeverb
+%{_docdir}/%{name}-%{version}/freeverb/*
+%dir %{_docdir}/%{name}-%{version}/simpledrums
+%{_docdir}/%{name}-%{version}/simpledrums/*
+%dir %{_docdir}/%{name}-%{version}/vam
+%{_docdir}/%{name}-%{version}/vam/*
+%attr(755,root,root) %{_bindir}/muse3
 %attr(755,root,root) %{_bindir}/grepmidi
-%dir %{_libdir}/%{name}
-%dir %{_libdir}/%{name}/modules
-%dir %{_libdir}/%{name}/plugins
-%dir %{_libdir}/%{name}/synthi
-%attr(755,root,root) %{_libdir}/%{name}/modules/*.so
-%attr(755,root,root) %{_libdir}/%{name}/plugins/*
-%attr(755,root,root) %{_libdir}/%{name}/synthi/*
-%dir %{_datadir}/%{name}
-%dir %{_datadir}/%{name}/demos
-%dir %{_datadir}/%{name}/drummaps
-%dir %{_datadir}/%{name}/instruments
-%dir %{_datadir}/%{name}/locale
-%dir %{_datadir}/%{name}/plugins
-%dir %{_datadir}/%{name}/presets
-%dir %{_datadir}/%{name}/pybridge
-%dir %{_datadir}/%{name}/scoreglyphs
-%dir %{_datadir}/%{name}/scripts
-%dir %{_datadir}/%{name}/templates
-%dir %{_datadir}/%{name}/themes
-%dir %{_datadir}/%{name}/utils
-%dir %{_datadir}/%{name}/wallpapers
+%dir %{_libdir}/%{name}-3.0
+%dir %{_libdir}/%{name}-3.0/modules
+%dir %{_libdir}/%{name}-3.0/plugins
+%dir %{_libdir}/%{name}-3.0/synthi
+%attr(755,root,root) %{_libdir}/%{name}-3.0/modules/*.so
+%attr(755,root,root) %{_libdir}/%{name}-3.0/plugins/*
+%attr(755,root,root) %{_libdir}/%{name}-3.0/synthi/*
+%dir %{_datadir}/%{name}-3.0
+%dir %{_datadir}/%{name}-3.0/demos
+%dir %{_datadir}/%{name}-3.0/drummaps
+%dir %{_datadir}/%{name}-3.0/instruments
+%dir %{_datadir}/%{name}-3.0/locale
+%dir %{_datadir}/%{name}-3.0/metronome
+%dir %{_datadir}/%{name}-3.0/plugins
+%dir %{_datadir}/%{name}-3.0/presets
+%dir %{_datadir}/%{name}-3.0/pybridge
+%dir %{_datadir}/%{name}-3.0/scoreglyphs
+%dir %{_datadir}/%{name}-3.0/scripts
+%dir %{_datadir}/%{name}-3.0/templates
+%dir %{_datadir}/%{name}-3.0/themes
+%dir %{_datadir}/%{name}-3.0/utils
+%dir %{_datadir}/%{name}-3.0/wallpapers
 %{_datadir}/mime/packages/muse.xml
-%{_datadir}/muse/didyouknow.txt
-%{_datadir}/muse/splash.png
-%{_datadir}/%{name}/demos/*
-%{_datadir}/%{name}/drummaps/*
-%{_datadir}/%{name}/instruments/*
-%{_datadir}/%{name}/locale/*
-%{_datadir}/%{name}/plugins/*
-%{_datadir}/%{name}/presets/*
-%{_datadir}/%{name}/pybridge/*
-%{_datadir}/%{name}/scoreglyphs/*
-%{_datadir}/%{name}/scripts/*
-%{_datadir}/%{name}/templates/*
-%{_datadir}/%{name}/themes/*
-%{_datadir}/%{name}/utils/*
-%{_datadir}/%{name}/wallpapers/*
+%{_datadir}/%{name}-3.0/didyouknow.txt
+%{_datadir}/%{name}-3.0/splash.png
+%{_datadir}/%{name}-3.0/demos/*
+%{_datadir}/%{name}-3.0/drummaps/*
+%{_datadir}/%{name}-3.0/instruments/*
+%{_datadir}/%{name}-3.0/locale/*
+%{_datadir}/%{name}-3.0/metronome/*
+%{_datadir}/%{name}-3.0/plugins/*
+%{_datadir}/%{name}-3.0/presets/*
+%{_datadir}/%{name}-3.0/pybridge/*
+%{_datadir}/%{name}-3.0/scoreglyphs/*
+%{_datadir}/%{name}-3.0/scripts/*
+%{_datadir}/%{name}-3.0/templates/*
+%{_datadir}/%{name}-3.0/themes/*
+%{_datadir}/%{name}-3.0/utils/*
+%{_datadir}/%{name}-3.0/wallpapers/*
 %{_desktopdir}/muse.desktop
 %{_pixmapsdir}/muse.png
 %{_mandir}/man1/*
 %{_iconsdir}/hicolor/64x64/apps/muse_icon.png
+/usr/share/metainfo/muse.appdata.xml
 
 %files doc
 %defattr(644,root,root,755)
-%dir %{_docdir}/%{name}
-%dir %{_docdir}/%{name}/muse_html
-%dir %{_docdir}/%{name}/muse_html/single
-%dir %{_docdir}/%{name}/muse_html/split
-%dir %{_docdir}/%{name}/muse_html/single/documentation
-%dir %{_docdir}/%{name}/muse_html/single/developer_docs
-%dir %{_docdir}/%{name}/muse_html/split/documentation
-%dir %{_docdir}/%{name}/muse_html/split/developer_docs
-%dir %{_docdir}/%{name}/muse_pdf
-%{_docdir}/%{name}/muse_pdf/*.pdf
-%{_docdir}/%{name}/muse_html/single/documentation/*
-%{_docdir}/%{name}/muse_html/single/developer_docs/*
-%{_docdir}/%{name}/muse_html/split/documentation/*
-%{_docdir}/%{name}/muse_html/split/developer_docs/*
+%dir %{_docdir}/%{name}-%{version}
+%dir %{_docdir}/%{name}-%{version}/muse_html
+%dir %{_docdir}/%{name}-%{version}/muse_html/single
+%dir %{_docdir}/%{name}-%{version}/muse_html/split
+%dir %{_docdir}/%{name}-%{version}/muse_html/single/documentation
+%dir %{_docdir}/%{name}-%{version}/muse_html/single/developer_docs
+%dir %{_docdir}/%{name}-%{version}/muse_html/split/documentation
+%dir %{_docdir}/%{name}-%{version}/muse_html/split/developer_docs
+%dir %{_docdir}/%{name}-%{version}/muse_pdf
+%{_docdir}/%{name}-%{version}/muse_pdf/*.pdf
+%{_docdir}/%{name}-%{version}/muse_html/single/documentation/*
+%{_docdir}/%{name}-%{version}/muse_html/single/developer_docs/*
+%{_docdir}/%{name}-%{version}/muse_html/split/documentation/*
+%{_docdir}/%{name}-%{version}/muse_html/split/developer_docs/*
 
 
diff --git a/fluidsynth2.patch b/fluidsynth2.patch
new file mode 100644
index 0000000..4081a02
--- /dev/null
+++ b/fluidsynth2.patch
@@ -0,0 +1,139 @@
+From 6e352b874ddffc6185e499cda12c1731d14a3708 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony at gmail.com>
+Date: Wed, 17 Oct 2018 23:17:31 +0200
+Subject: [PATCH] fluidsynth: Follow API change introduced in fluidsynth 2.0.0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas Müller <schnitzeltony at gmail.com>
+---
+ muse3/synti/fluidsynth/fluidsynti.cpp | 44 ++++++++++++++++++++++++++-
+ 1 file changed, 43 insertions(+), 1 deletion(-)
+
+diff --git a/muse3/synti/fluidsynth/fluidsynti.cpp b/muse3/synti/fluidsynth/fluidsynti.cpp
+index 11f51e57..75322d7e 100644
+--- a/muse3/synti/fluidsynth/fluidsynti.cpp
++++ b/muse3/synti/fluidsynth/fluidsynti.cpp
+@@ -155,16 +155,22 @@ FluidSynth::~FluidSynth()
+           std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl;
+       }
+         
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+       int err = delete_fluid_synth (fluidsynth);
++#else
++      delete_fluid_synth (fluidsynth);
++#endif
+       if(gui)
+         delete gui;
+ 
+       if (initBuffer)
+             delete [] initBuffer;
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+       if (err == -1) {
+             std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(fluidsynth) << std::endl;
+             return;
+-            }            
++            }
++#endif
+       }
+ 
+ bool FluidSynth::init(const char* name)
+@@ -1368,7 +1374,11 @@ const char* FluidSynth::getPatchName(int i, int, bool /*drum*/) const
+       else {
+             fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i);
+             if (!preset) return "<unknown>";
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+             return preset->get_name(preset);
++#else
++            return fluid_preset_get_name(preset);
++#endif
+             }
+       }
+ //---------------------------------------------------------
+@@ -1414,12 +1424,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const
+       if (!channels[channel].drumchannel) {
+             for (unsigned bank = 0; bank < 128; ++bank) {
+                   for (unsigned patch = 0; patch < 128; ++patch) {
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                         preset = sfont->get_preset (sfont, bank, patch);
++#else
++                        preset = fluid_sfont_get_preset (sfont, bank, patch);
++#endif
+                         if (preset) {
+                               midiPatch.hbank = bank;
+                               midiPatch.lbank = 0xff;  // Off
+                               midiPatch.prog = patch;
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                               midiPatch.name = preset->get_name (preset);
++#else
++                              midiPatch.name = fluid_preset_get_name (preset);
++#endif
+                               return &midiPatch;
+                               }
+                         }
+@@ -1429,12 +1447,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const
+       else { //This is a drumchannel
+             int bank = 128;
+             for (unsigned patch = 0; patch < 128; ++patch) {
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                   preset = sfont->get_preset (sfont, bank, patch);
++#else
++                  preset = fluid_sfont_get_preset (sfont, bank, patch);
++#endif
+                   if (preset) {
+                         midiPatch.hbank = 0xff;  // Off
+                         midiPatch.lbank = 0xff;  // Off
+                         midiPatch.prog = patch;
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                         midiPatch.name = preset->get_name(preset);
++#else
++                        midiPatch.name = fluid_preset_get_name (preset);
++#endif
+                         return &midiPatch;
+                         }
+                   }
+@@ -1466,13 +1492,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch)
+ 
+             for (unsigned bank = patch->hbank; bank < 128; ++bank) {
+                   for ( ; prog < 128; ++prog) {
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                         preset = sfont->get_preset (sfont, bank, prog);
++#else
++                        preset = fluid_sfont_get_preset (sfont, bank, prog);
++#endif
+                         if (preset) {
+                               //printf("Preset info: bank: %d prog: %d name: %s\n", bank, prog, preset->get_name(preset));
+                               midiPatch.hbank = bank;
+                               midiPatch.lbank = 0xff;  // Off
+                               midiPatch.prog = prog;
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                               midiPatch.name = preset->get_name (preset);
++#else
++                              midiPatch.name = fluid_preset_get_name (preset);
++#endif
+                               return &midiPatch;
+                               }
+                         }
+@@ -1483,13 +1517,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch)
+             unsigned bank = 128;
+             unsigned prog = patch->prog;
+             for (prog = patch->prog + 1; prog < 128; ++prog) {
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                   preset = sfont->get_preset (sfont, bank, prog);
++#else
++                  preset = fluid_sfont_get_preset (sfont, bank, prog);
++#endif
+                   if (preset) {
+                         //printf("Preset info: bank: %d prog: %d name: %s\n",bank, prog, preset->get_name(preset));
+                         midiPatch.hbank = 0xff;  // Off
+                         midiPatch.lbank = 0xff;  // Off
+                         midiPatch.prog = prog;
++#if FLUIDSYNTH_VERSION_MAJOR < 2
+                         midiPatch.name = preset->get_name (preset);
++#else
++                        midiPatch.name = fluid_preset_get_name (preset);
++#endif
+                         return &midiPatch;
+                         }
+                   }
diff --git a/missing_includes.patch b/missing_includes.patch
new file mode 100644
index 0000000..95c1e40
--- /dev/null
+++ b/missing_includes.patch
@@ -0,0 +1,44 @@
+diff -dur -x '*~' muse-3.0.2.orig/muse/widgets/genset.h muse-3.0.2/muse/widgets/genset.h
+--- muse-3.0.2.orig/muse/widgets/genset.h	2017-12-04 22:01:19.000000000 +0100
++++ muse-3.0.2/muse/widgets/genset.h	2018-11-22 19:13:29.182616803 +0100
+@@ -29,6 +29,7 @@
+ #include "cobject.h"
+ #include "mdisettings.h"
+ 
++#include <QButtonGroup>
+ #include <QShowEvent>
+ #include <list>
+ 
+diff -dur -x '*~' muse-3.0.2.orig/muse/widgets/pastedialog.h muse-3.0.2/muse/widgets/pastedialog.h
+--- muse-3.0.2.orig/muse/widgets/pastedialog.h	2017-12-04 22:01:19.000000000 +0100
++++ muse-3.0.2/muse/widgets/pastedialog.h	2018-11-22 19:13:48.033847674 +0100
+@@ -25,6 +25,7 @@
+ 
+ #include "ui_pastedialogbase.h"
+ #include <QString>
++#include <QButtonGroup>
+ 
+ namespace MusECore {
+ class Xml;
+diff -dur -x '*~' muse-3.0.2.orig/synti/simpledrums2/simpledrumsgui.h muse-3.0.2/synti/simpledrums2/simpledrumsgui.h
+--- muse-3.0.2.orig/synti/simpledrums2/simpledrumsgui.h	2018-01-29 21:07:03.000000000 +0100
++++ muse-3.0.2/synti/simpledrums2/simpledrumsgui.h	2018-11-22 19:10:58.517743603 +0100
+@@ -35,6 +35,7 @@
+ #include <QGroupBox>
+ #include <QHeaderView>
+ #include <QComboBox>
++#include <QButtonGroup>
+ #include <widgets/meter.h>
+ 
+ #include "libsynti/gui.h"
+--- muse-3.0.2.orig/muse/mplugins/mitplugin.cpp	2017-12-04 22:01:18.000000000 +0100
++++ muse-3.0.2/muse/mplugins/mitplugin.cpp	2018-11-22 19:48:54.657286284 +0100
+@@ -35,6 +35,8 @@
+ #include "rhythm.h"
+ #endif
+ 
++#include <QAction>
++
+ namespace MusEGui {
+ 
+ //---------------------------------------------------------
diff --git a/muse-CMakeLists.txt.patch b/muse-CMakeLists.txt.patch
deleted file mode 100644
index 9d790be..0000000
--- a/muse-CMakeLists.txt.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- muse/widgets/CMakeLists.txt.old	2013-03-28 16:17:35.000000000 +0100
-+++ muse/widgets/CMakeLists.txt	2013-06-01 19:34:33.000000000 +0200
-@@ -271,6 +271,7 @@
- ##
- target_link_libraries ( widgets
-       ${QT_LIBRARIES}
-+      X11
-       icons
-       instruments
-       )
---- CMakeLists.txt.org	2013-06-01 19:43:43.000000000 +0200
-+++ CMakeLists.txt	2013-06-01 19:45:23.000000000 +0200
-@@ -86,7 +86,7 @@
- SET(MusE_VERSION_PATCH 0)
- SET(MusE_VERSION       "2.1.2")
- SET(MusE_VERSION_FULL  "2.1.2")
--SET(MusE_INSTALL_NAME  "muse-2.1")
-+SET(MusE_INSTALL_NAME  "muse")
- SET(MusE_EXEC_NAME     "muse2")
- 
- ## The directory where we will install the shared components:
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/muse.git/commitdiff/a372a8f0d4c5c4bc96f21bbf6fb8402585f0ddb6



More information about the pld-cvs-commit mailing list