[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#946917: muse FTBFS after libfluidsynth update



tags 946917 +patch
thanks

I whipped up a patch that makes this build, I have not tested it beyond that. There were two main fixes, the first is that delete_fluid_synth no longer returns an error code, the second is a few structures are now opaque and have to be accessed through accessors.

I also found I had to add a build-dependency on libegl-dev to make the configure script complete successfully. It seems that /usr/lib/x86_64-linux-gnu/libEGL.so has moved from libglvnd-dev to libegl-dev

The debdiff is attached, I don't have any immediate plans to NMU, but I may do so later, especially if I get positive feedback about the patch from users.

diff -Nru muse-3.0.2+ds1/debian/changelog muse-3.0.2+ds1/debian/changelog
--- muse-3.0.2+ds1/debian/changelog	2018-12-16 13:37:01.000000000 +0000
+++ muse-3.0.2+ds1/debian/changelog	2019-12-19 17:49:59.000000000 +0000
@@ -1,3 +1,13 @@
+muse (3.0.2+ds1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix build with fluidsynth 2.
+  * Bump fluidsynth build-dependency since patch will make the code incompatible
+   with fluidsynth 1.
+  * Add build-depends on libegl-dev
+
+ -- Peter Michael Green <plugwash@debian.org>  Thu, 19 Dec 2019 17:49:59 +0000
+
 muse (3.0.2+ds1-1) unstable; urgency=medium
 
   * Team upload.
diff -Nru muse-3.0.2+ds1/debian/control muse-3.0.2+ds1/debian/control
--- muse-3.0.2+ds1/debian/control	2018-12-16 13:37:01.000000000 +0000
+++ muse-3.0.2+ds1/debian/control	2019-12-19 17:49:59.000000000 +0000
@@ -11,7 +11,7 @@
  dssi-dev,
  libasound2-dev,
  libdssialsacompat-dev [!linux-any],
- libfluidsynth-dev,
+ libfluidsynth-dev (>= 2),
  libjack-dev,
  liblilv-dev (>= 0.22),
  liblo-dev,
@@ -21,7 +21,8 @@
  libsord-dev (>= 0.14),
  lv2-dev (>= 1.12),
  qtbase5-dev,
- qttools5-dev
+ qttools5-dev,
+ libegl-dev
 Standards-Version: 4.2.1
 Homepage: http://www.muse-sequencer.org/
 Vcs-Git: https://salsa.debian.org/multimedia-team/muse.git
diff -Nru muse-3.0.2+ds1/debian/patches/0005-fluidsynth2.patch muse-3.0.2+ds1/debian/patches/0005-fluidsynth2.patch
--- muse-3.0.2+ds1/debian/patches/0005-fluidsynth2.patch	1970-01-01 00:00:00.000000000 +0000
+++ muse-3.0.2+ds1/debian/patches/0005-fluidsynth2.patch	2019-12-19 17:49:59.000000000 +0000
@@ -0,0 +1,112 @@
+Description: Fix build with fluidsynth 2.
+ The changes consist of some adjustments for the fact that some structures are
+ nowopaque and the removal of error handling for delete_fluid_synth which no
+ longer returns an error value.
+Author: Peter Michael Green <plugwash@debian.org>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: https://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: 2019-12-19
+
+Index: muse-3.0.2+ds1/synti/fluidsynth/fluidsynti.cpp
+===================================================================
+--- muse-3.0.2+ds1.orig/synti/fluidsynth/fluidsynti.cpp
++++ muse-3.0.2+ds1/synti/fluidsynth/fluidsynti.cpp
+@@ -155,16 +155,12 @@ FluidSynth::~FluidSynth()
+           std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl;
+       }
+         
+-      int err = delete_fluid_synth (fluidsynth);
++      delete_fluid_synth (fluidsynth);
+       if(gui)
+         delete gui;
+ 
+       if (initBuffer)
+             delete [] initBuffer;
+-      if (err == -1) {
+-            std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(fluidsynth) << std::endl;
+-            return;
+-            }            
+       }
+ 
+ bool FluidSynth::init(const char* name)
+@@ -1368,7 +1364,7 @@ const char* FluidSynth::getPatchName(int
+       else {
+             fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i);
+             if (!preset) return "<unknown>";
+-            return preset->get_name(preset);
++            return fluid_preset_get_name(preset);
+             }
+       }
+ //---------------------------------------------------------
+@@ -1414,12 +1410,12 @@ const MidiPatch* FluidSynth::getFirstPat
+       if (!channels[channel].drumchannel) {
+             for (unsigned bank = 0; bank < 128; ++bank) {
+                   for (unsigned patch = 0; patch < 128; ++patch) {
+-                        preset = sfont->get_preset (sfont, bank, patch);
++                        preset = fluid_sfont_get_preset (sfont, bank, patch);
+                         if (preset) {
+                               midiPatch.hbank = bank;
+                               midiPatch.lbank = 0xff;  // Off
+                               midiPatch.prog = patch;
+-                              midiPatch.name = preset->get_name (preset);
++                              midiPatch.name = fluid_preset_get_name (preset);
+                               return &midiPatch;
+                               }
+                         }
+@@ -1429,12 +1425,12 @@ const MidiPatch* FluidSynth::getFirstPat
+       else { //This is a drumchannel
+             int bank = 128;
+             for (unsigned patch = 0; patch < 128; ++patch) {
+-                  preset = sfont->get_preset (sfont, bank, patch);
++                  preset = fluid_sfont_get_preset (sfont, bank, patch);
+                   if (preset) {
+                         midiPatch.hbank = 0xff;  // Off
+                         midiPatch.lbank = 0xff;  // Off
+                         midiPatch.prog = patch;
+-                        midiPatch.name = preset->get_name(preset);
++                        midiPatch.name = fluid_preset_get_name(preset);
+                         return &midiPatch;
+                         }
+                   }
+@@ -1466,13 +1462,13 @@ const MidiPatch* FluidSynth::getNextPatc
+ 
+             for (unsigned bank = patch->hbank; bank < 128; ++bank) {
+                   for ( ; prog < 128; ++prog) {
+-                        preset = sfont->get_preset (sfont, bank, prog);
++                        preset = fluid_sfont_get_preset (sfont, bank, prog);
+                         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;
+-                              midiPatch.name = preset->get_name (preset);
++                              midiPatch.name = fluid_preset_get_name (preset);
+                               return &midiPatch;
+                               }
+                         }
+@@ -1483,13 +1479,13 @@ const MidiPatch* FluidSynth::getNextPatc
+             unsigned bank = 128;
+             unsigned prog = patch->prog;
+             for (prog = patch->prog + 1; prog < 128; ++prog) {
+-                  preset = sfont->get_preset (sfont, bank, prog);
++                  preset = fluid_sfont_get_preset (sfont, bank, prog);
+                   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;
+-                        midiPatch.name = preset->get_name (preset);
++                        midiPatch.name = fluid_preset_get_name (preset);
+                         return &midiPatch;
+                         }
+                   }
diff -Nru muse-3.0.2+ds1/debian/patches/series muse-3.0.2+ds1/debian/patches/series
--- muse-3.0.2+ds1/debian/patches/series	2018-12-16 13:18:40.000000000 +0000
+++ muse-3.0.2+ds1/debian/patches/series	2019-12-19 17:49:59.000000000 +0000
@@ -2,3 +2,4 @@
 0002-Add-f-option-to-desktop-file-Exec-key.patch
 0003-Fixes-compile-issue-with-QButtonGroup.patch
 0004-Added-missing-includes-needed-by-newer-Qt-5.11.patch
+0005-fluidsynth2.patch

Reply to: