Control: tags 946863 + pending Dear maintainer,
I've prepared an NMU for freewheeling (versioned as 0.6.4-1.1) and uploaded it to DELAYED/2. Please feel free to tell me if I should delay it longer. Cheers -- Sebastian Ramacher
diff -Nru freewheeling-0.6.4/debian/changelog freewheeling-0.6.4/debian/changelog --- freewheeling-0.6.4/debian/changelog 2018-09-10 15:45:23.000000000 +0200 +++ freewheeling-0.6.4/debian/changelog 2021-02-03 12:46:41.000000000 +0100 @@ -1,3 +1,17 @@ +freewheeling (0.6.4-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * support fluidsynth2 (Closes: #946863) + (upstream: 18e98443616ced116ca26c90ab0f4b3ce8e6a453) + * replace build dependency 'gnutls-openssl-dev' with 'nettle-dev' + (upstream: e2127d75ef49e5171e2e60fdff6ad2412b0f07eb) + * fix thread-count race condition during memory-manager init + (upstream: b5eb2336bd0dd886f0789b2c3a8fff41bf5926a9) + * enable pckeyboard interface + (upstream: 00323c2c97f5a5971ec951c327eeb26d93117255) + + -- bill-auger <bill-au...@programmer.net> Wed, 03 Feb 2021 06:46:41 -0500 + freewheeling (0.6.4-1) unstable; urgency=medium * New upstream version 0.6.4 (closes: #906462) diff -Nru freewheeling-0.6.4/debian/control freewheeling-0.6.4/debian/control --- freewheeling-0.6.4/debian/control 2018-09-10 14:12:39.000000000 +0200 +++ freewheeling-0.6.4/debian/control 2021-02-03 12:46:41.000000000 +0100 @@ -14,7 +14,7 @@ libsndfile-dev, libfluidsynth-dev, liblo-dev, - libgnutls-openssl-dev + nettle-dev Standards-Version: 4.2.1 Homepage: http://freewheeling.sourceforge.net Vcs-Git: https://salsa.debian.org/multimedia-team/freewheeling.git diff -Nru freewheeling-0.6.4/debian/patches/012_fluidsynth.diff freewheeling-0.6.4/debian/patches/012_fluidsynth.diff --- freewheeling-0.6.4/debian/patches/012_fluidsynth.diff 2018-09-10 15:20:23.000000000 +0200 +++ freewheeling-0.6.4/debian/patches/012_fluidsynth.diff 1970-01-01 01:00:00.000000000 +0100 @@ -1,20 +0,0 @@ -Description: avoid fluidsynth deprecation warnings -Author: Paul Brossier <p...@debian.org> -Last-Update: 2018-09-10 - ---- a/src/fweelin_fluidsynth.cc -+++ b/src/fweelin_fluidsynth.cc -@@ -91,11 +91,11 @@ - double pitches[12]; - for (int i = 0; i < 12; i++) - pitches[i] = tuning; -- fluid_synth_create_octave_tuning(synth, 0, 0, "DETUNE", pitches); -+ fluid_synth_activate_octave_tuning(synth, 0, 0, "DETUNE", pitches, false); - - // Select tuning - for (int i = 0; i < MAX_MIDI_CHANNELS; i++) -- fluid_synth_select_tuning(synth, i, 0, 0); -+ fluid_synth_activate_tuning(synth, i, 0, 0, false); - } else - printf("FLUID: Using default tuning\n"); - diff -Nru freewheeling-0.6.4/debian/patches/enable-pckeyboard.patch freewheeling-0.6.4/debian/patches/enable-pckeyboard.patch --- freewheeling-0.6.4/debian/patches/enable-pckeyboard.patch 1970-01-01 01:00:00.000000000 +0100 +++ freewheeling-0.6.4/debian/patches/enable-pckeyboard.patch 2021-02-03 12:46:41.000000000 +0100 @@ -0,0 +1,19 @@ +cherry-picked from upstream (partial) +00323c2c97f5a5971ec951c327eeb26d93117255 enable pckeyboard UI +--- a/data/interfaces.xml ++++ b/data/interfaces.xml +@@ -29,11 +29,11 @@ + <!-- Bare minimum --> + <interface setup="browsers.xml" switchable="0"/> + +- <!-- Added user interfaces --> ++ <!-- Controller device<->loop mapping interfaces --> + <interface setup="midifootswitch.xml" switchable="0"/> +- <interface setup="bcf2000.xml"/> +-<!-- <interface setup="pckeyboard.xml"/> --> ++ <interface setup="pckeyboard.xml"/> + <interface setup="midikeyboard.xml"/> ++ <interface setup="bcf2000.xml"/> + <!-- <interface setup="pcr-m1.xml" switchable="0"/> --> + <interface setup="dancemat.xml"/> + </interfaces> diff -Nru freewheeling-0.6.4/debian/patches/fix-init-race-condition.patch freewheeling-0.6.4/debian/patches/fix-init-race-condition.patch --- freewheeling-0.6.4/debian/patches/fix-init-race-condition.patch 1970-01-01 01:00:00.000000000 +0100 +++ freewheeling-0.6.4/debian/patches/fix-init-race-condition.patch 2021-02-03 12:46:41.000000000 +0100 @@ -0,0 +1,34 @@ +cherry-picked from upstream +b5eb2336bd0dd886f0789b2c3a8fff41bf5926a9 fix thread-count race condition during memory-manager init +--- a/src/fweelin_datatypes.h ++++ b/src/fweelin_datatypes.h +@@ -684,8 +684,12 @@ + + int WriteElement (const T &el) { + if (num_writers != RT_RWThreads::num_rw_threads) { +- printf("CORE: ERROR: SRMWRingBuffer thread count mismatch.\n"); +- exit(1); ++ pthread_mutex_lock(&RT_RWThreads::register_rtstruct_lock); ++ pthread_mutex_unlock(&RT_RWThreads::register_rtstruct_lock); ++ if (num_writers != RT_RWThreads::num_rw_threads) { ++ printf("CORE: ERROR: SRMWRingBuffer thread count mismatch.\n"); ++ exit(1); ++ } + } + + // Determine which write thread we are +@@ -706,8 +710,12 @@ + + const T ReadElement () { + if (num_writers != RT_RWThreads::num_rw_threads) { +- printf("CORE: ERROR: SRMWRingBuffer thread count mismatch.\n"); +- exit(1); ++ pthread_mutex_lock(&RT_RWThreads::register_rtstruct_lock); ++ pthread_mutex_unlock(&RT_RWThreads::register_rtstruct_lock); ++ if (num_writers != RT_RWThreads::num_rw_threads) { ++ printf("CORE: ERROR: SRMWRingBuffer thread count mismatch.\n"); ++ exit(1); ++ } + } + + // Check each ring buffer diff -Nru freewheeling-0.6.4/debian/patches/fluidsynth2.patch freewheeling-0.6.4/debian/patches/fluidsynth2.patch --- freewheeling-0.6.4/debian/patches/fluidsynth2.patch 1970-01-01 01:00:00.000000000 +0100 +++ freewheeling-0.6.4/debian/patches/fluidsynth2.patch 2021-02-03 12:46:41.000000000 +0100 @@ -0,0 +1,119 @@ +cherry-picked from upstream +18e98443616ced116ca26c90ab0f4b3ce8e6a453 make compatible with both fluidsynth v1 and v2 +--- a/src/fweelin_browser.h ++++ b/src/fweelin_browser.h +@@ -52,7 +52,7 @@ + class BrowserItem { + public: + // Initialize a browser item with name n +- BrowserItem(char *n = 0, char default_name = 1) : ++ BrowserItem(const char *n = 0, char default_name = 1) : + default_name(default_name), next(0), prev(0) { + if (n == 0) + name = 0; +@@ -415,7 +415,7 @@ + public: + + PatchItem (int id = 0, int bank = 0, int prog = 0, int channel = 0, +- char *name = 0, char bypasscc = 0, int bypasschannel = -1, float bypasstime1 = 0.0, float bypasstime2 = 10.0) : ++ const char *name = 0, char bypasscc = 0, int bypasschannel = -1, float bypasstime1 = 0.0, float bypasstime2 = 10.0) : + BrowserItem(name), id(id), bank(bank), prog(prog), channel(channel), + bypasscc(bypasscc), bypasschannel(bypasschannel), bypasstime1(bypasstime1), bypasstime2(bypasstime2), + zones(0), numzones(0) {}; +--- a/src/fweelin_fluidsynth.cc ++++ b/src/fweelin_fluidsynth.cc +@@ -1,5 +1,3 @@ +-#if USE_FLUIDSYNTH +- + /* Copyright 2004-2011 Jan Pekau + + This file is part of Freewheeling. +@@ -17,6 +15,9 @@ + You should have received a copy of the GNU General Public License + along with Freewheeling. If not, see <http://www.gnu.org/licenses/>. */ + ++ ++#if USE_FLUIDSYNTH ++ + #include <sys/time.h> + + #include <stdio.h> +@@ -33,11 +34,6 @@ + + #include "fweelin_fluidsynth.h" + +-#define fluid_sfont_iteration_start(_sf) (*(_sf)->iteration_start)(_sf) +-#define fluid_sfont_iteration_next(_sf,_pr) (*(_sf)->iteration_next)(_sf,_pr) +-#define fluid_preset_get_name(_preset) (*(_preset)->get_name)(_preset) +-#define fluid_preset_get_banknum(_preset) (*(_preset)->get_banknum)(_preset) +-#define fluid_preset_get_num(_preset) (*(_preset)->get_num)(_preset) + + void FluidSynthParam_Int::Send(fluid_settings_t *settings) { + printf("FLUID: Setting parameter '%s' = '%d'\n",name,val); +@@ -91,11 +87,11 @@ + double pitches[12]; + for (int i = 0; i < 12; i++) + pitches[i] = tuning; +- fluid_synth_create_octave_tuning(synth, 0, 0, "DETUNE", pitches); ++ fluid_synth_activate_octave_tuning(synth, 0, 0, "DETUNE", pitches, FALSE); + + // Select tuning + for (int i = 0; i < MAX_MIDI_CHANNELS; i++) +- fluid_synth_select_tuning(synth, i, 0, 0); ++ fluid_synth_activate_tuning(synth, i, 0, 0, FALSE); + } else + printf("FLUID: Using default tuning\n"); + +@@ -160,9 +156,18 @@ + + // Sets up our internal patch list based on loaded soundfonts + void FluidSynthProcessor::SetupPatches() { +- fluid_preset_t preset; +- + PatchBrowser *br = (PatchBrowser *) app->getBROWSER(B_Patch); ++#if FLUIDSYNTH_VERSION_MAJOR == 1 ++ // NOTE: fluidsynth v2 implements these ++ #define fluid_sfont_iteration_start(_sf) (*(_sf)->iteration_start)(_sf) ++ #define fluid_sfont_iteration_next(_sf,_pr) (*(_sf)->iteration_next)(_sf,_pr) ++ #define fluid_preset_get_name(_preset) (*(_preset)->get_name)(_preset) ++ #define fluid_preset_get_banknum(_preset) (*(_preset)->get_banknum)(_preset) ++ #define fluid_preset_get_num(_preset) (*(_preset)->get_num)(_preset) ++ fluid_preset_t preset; ++#elif FLUIDSYNTH_VERSION_MAJOR == 2 ++ fluid_preset_t* preset; ++#endif // FLUIDSYNTH_VERSION_MAJOR + + if (br != 0) { + // Add FluidSynth patch bank +@@ -174,12 +179,21 @@ + for (int i = 0; i < sfcnt; i++) { + fluid_sfont_t *curfont = fluid_synth_get_sfont(synth,i); + fluid_sfont_iteration_start(curfont); ++#if FLUIDSYNTH_VERSION_MAJOR == 1 + while (fluid_sfont_iteration_next(curfont, &preset)) + br->AddItem(new PatchItem(fluid_sfont_get_id(curfont), + fluid_preset_get_banknum(&preset), + fluid_preset_get_num(&preset), + fluidchan, + fluid_preset_get_name(&preset))); ++#elif FLUIDSYNTH_VERSION_MAJOR == 2 ++ while ((preset = fluid_sfont_iteration_next(curfont)) != NULL) ++ br->AddItem(new PatchItem(fluid_sfont_get_id(curfont), ++ fluid_preset_get_banknum(preset), ++ fluid_preset_get_num(preset), ++ fluidchan, ++ fluid_preset_get_name(preset))); ++#endif // FLUIDSYNTH_VERSION_MAJOR + + if (i+1 < sfcnt) { + // End of soundfont- put in a divider +--- a/src/fweelin_fluidsynth.h ++++ b/src/fweelin_fluidsynth.h +@@ -18,6 +18,7 @@ + You should have received a copy of the GNU General Public License + along with Freewheeling. If not, see <http://www.gnu.org/licenses/>. */ + ++ + #if USE_FLUIDSYNTH + + #include <fluidsynth.h> diff -Nru freewheeling-0.6.4/debian/patches/series freewheeling-0.6.4/debian/patches/series --- freewheeling-0.6.4/debian/patches/series 2018-09-10 15:44:42.000000000 +0200 +++ freewheeling-0.6.4/debian/patches/series 2021-02-03 12:46:41.000000000 +0100 @@ -1,6 +1,5 @@ 000_fixinstalldirs.diff 001_sf2location.diff -012_fluidsynth.diff 021_forcecopy.diff 022_nounusedresult.diff 023_noignoresystem.diff @@ -8,3 +7,6 @@ 060_jackstart.diff 070_occurred.diff 071_threshold.diff +fluidsynth2.patch +fix-init-race-condition.patch +enable-pckeyboard.patch