[debian-edu-commits] debian-edu/pkg-team/ 01/01: Fix build with Clang

Javier Serrano Polo jasp00-guest at moszumanska.debian.org
Wed Jan 4 13:05:44 UTC 2017


This is an automated email from the git hooks/post-receive script.

jasp00-guest pushed a commit to branch master
in repository lmms.

commit fb8b9040918c18034c419d5b2d9456874680d891
Author: Javier Serrano Polo <javier at jasp.net>
Date:   Wed Jan 4 13:15:42 2017 +0100

    Fix build with Clang
---
 debian/changelog                      |   7 +
 debian/patches/clang.patch            | 601 ++++++++++++++++++++++++++++++++++
 debian/patches/series                 |   1 +
 debian/patches/wine-flags-space.patch |   1 +
 4 files changed, 610 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 0a4b24f..8be70ec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+lmms (1.1.3-8) unstable; urgency=low
+
+  [ Javier Serrano Polo ]
+  * Fix build with Clang.
+
+ -- Javier Serrano Polo <javier at jasp.net>  Wed, 04 Jan 2017 13:11:22 +0100
+
 lmms (1.1.3-7) unstable; urgency=low
 
   [ Javier Serrano Polo ]
diff --git a/debian/patches/clang.patch b/debian/patches/clang.patch
new file mode 100644
index 0000000..2e2a0a2
--- /dev/null
+++ b/debian/patches/clang.patch
@@ -0,0 +1,601 @@
+Description: Fix build with Clang
+ Several issues are present:
+ - Unused private elements.
+ - Wrong use of delete.
+ - Unsupported compiler options.
+ - Shifting negative values.
+ - Possible truncations.
+ - Uninitialized variables.
+ - Unused code.
+ - Hiding overloaded virtual functions.
+ - Declarations outside namespace.
+ - Mismatched class tag.
+ .
+ Be careful editing this patch because allegrosmfwr.cpp has CRLF terminators.
+Author: Javier Serrano Polo <javier at jasp.net>
+Bug: https://github.com/LMMS/lmms/issues/3073
+
+Index: lmms-1.1.3/include/AutomatableModel.h
+===================================================================
+--- lmms-1.1.3.orig/include/AutomatableModel.h	2017-01-03 13:01:47.000000000 +0100
++++ lmms-1.1.3/include/AutomatableModel.h	2017-01-03 13:11:25.000000000 +0100
+@@ -307,7 +307,6 @@
+ 
+ 	// most objects will need this temporarily (until sampleExact is
+ 	// standard)
+-	float m_oldValue;
+ 	int m_setValueDepth;
+ 
+ 	AutoModelVector m_linkedModels;
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/CMakeLists.txt
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/CMakeLists.txt	2017-01-03 16:03:14.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/CMakeLists.txt	2017-01-03 16:14:28.000000000 +0100
+@@ -7,11 +7,22 @@
+                     "${CMAKE_CURRENT_SOURCE_DIR}/src")
+ INSTALL(TARGETS calf LIBRARY DESTINATION "${PLUGIN_DIR}/ladspa")
+ SET_TARGET_PROPERTIES(calf PROPERTIES PREFIX "")
++
+ SET(INLINE_FLAGS "")
+-IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+-SET(INLINE_FLAGS "-finline-functions-called-once -finline-limit=80")
++
++INCLUDE(CheckCXXCompilerFlag)
++CHECK_CXX_COMPILER_FLAG(-finline-functions CXX_HAVE_INLINE_FUNCTIONS)
++IF(${CXX_HAVE_INLINE_FUNCTIONS})
++	SET(INLINE_FLAGS "${INLINE_FLAGS} -finline-functions")
+ ENDIF()
+-SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 -finline-functions ${INLINE_FLAGS}")
++CHECK_CXX_COMPILER_FLAG(-finline-functions-called-once
++	CXX_HAVE_INLINE_FUNCTIONS_CALLED_ONCE)
++IF(${CXX_HAVE_INLINE_FUNCTIONS_CALLED_ONCE})
++	SET(INLINE_FLAGS "${INLINE_FLAGS} -finline-functions-called-once \
++		-finline-limit=80")
++ENDIF()
++
++SET_TARGET_PROPERTIES(calf PROPERTIES COMPILE_FLAGS "-O2 ${INLINE_FLAGS}")
+ 
+ IF(LMMS_BUILD_WIN32)
+ 	ADD_CUSTOM_COMMAND(TARGET calf POST_BUILD COMMAND "${STRIP}" "\"${CMAKE_CURRENT_BINARY_DIR}/calf.dll\"")
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/metadata.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/metadata.h	2017-01-03 17:41:17.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/metadata.h	2017-01-03 17:50:40.000000000 +0100
+@@ -51,7 +51,7 @@
+     enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, rt_capable = true, require_midi = false, support_midi = false };
+     PLUGIN_NAME_ID_LABEL("filter", "filter", "Filter")
+     /// do not export mode and inertia as CVs, as those are settings and not parameters
+-    bool is_cv(int param_no) { return param_no != par_mode && param_no != par_inertia; }
++    bool is_cv(int param_no) const { return param_no != par_mode && param_no != par_inertia; }
+ };
+ 
+ /// Filterclavier - metadata
+@@ -61,7 +61,7 @@
+     enum { in_count = 2, out_count = 2, ins_optional = 0, outs_optional = 0, rt_capable = true, require_midi = true, support_midi = true };
+     PLUGIN_NAME_ID_LABEL("filterclavier", "filterclavier", "Filterclavier")
+     /// do not export mode and inertia as CVs, as those are settings and not parameters
+-    bool is_cv(int param_no) { return param_no != par_mode && param_no != par_inertia; }
++    bool is_cv(int param_no) const { return param_no != par_mode && param_no != par_inertia; }
+ };
+ 
+ struct reverb_metadata: public plugin_metadata<reverb_metadata>
+@@ -499,7 +499,7 @@
+     PLUGIN_NAME_ID_LABEL("organ", "organ", "Organ")
+ 
+ public:
+-    plugin_command_info *get_commands();
++    plugin_command_info *get_commands() const;
+     const char *const *get_configure_vars() const;
+ };
+ 
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/modules.h	2017-01-03 19:02:59.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules.h	2017-01-03 19:30:35.000000000 +0100
+@@ -89,13 +89,14 @@
+     using audio_module<Metadata>::ins;
+     using audio_module<Metadata>::outs;
+     using audio_module<Metadata>::params;
++    using FilterClass::calculate_filter;
+     
+     dsp::inertia<dsp::exponential_ramp> inertia_cutoff, inertia_resonance, inertia_gain;
+     dsp::once_per_n timer;
+     bool is_active;    
+     mutable volatile int last_generation, last_calculated_generation;
+     
+-    filter_module_with_inertia(float **ins, float **outs, float **params)
++    filter_module_with_inertia()
+     : inertia_cutoff(dsp::exponential_ramp(128), 20)
+     , inertia_resonance(dsp::exponential_ramp(128), 20)
+     , inertia_gain(dsp::exponential_ramp(128), 1.0)
+@@ -193,7 +194,7 @@
+     mutable float old_cutoff, old_resonance, old_mode;
+ public:    
+     filter_audio_module()
+-    : filter_module_with_inertia<dsp::biquad_filter_module, filter_metadata>(ins, outs, params)
++    : filter_module_with_inertia<dsp::biquad_filter_module, filter_metadata>()
+     {
+         last_generation = 0;
+         old_mode = old_resonance = old_cutoff = -1;
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_comp.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/modules_comp.h	2017-01-03 19:35:53.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_comp.h	2017-01-03 19:38:06.000000000 +0100
+@@ -39,10 +39,10 @@
+ class gain_reduction_audio_module
+ {
+ private:
+-    float linSlope, detected, kneeSqrt, kneeStart, linKneeStart, kneeStop;
++    float linSlope, detected, kneeStart, linKneeStart, kneeStop;
+     float compressedKneeStop, adjKneeStart, thres;
+     float attack, release, threshold, ratio, knee, makeup, detection, stereo_link, bypass, mute, meter_out, meter_comp;
+-    mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_mute, old_detection, old_stereo_link;
++    mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_mute, old_detection;
+     mutable volatile int last_generation;
+     uint32_t srate;
+     bool is_active;
+@@ -69,7 +69,7 @@
+ /// Main gate routine by Damien called by various audio modules
+ class expander_audio_module {
+ private:
+-    float linSlope, peak, detected, kneeSqrt, kneeStart, linKneeStart, kneeStop, linKneeStop;
++    float linSlope, detected, kneeStart, linKneeStart, kneeStop, linKneeStop;
+     float compressedKneeStop, adjKneeStart, range, thres, attack_coeff, release_coeff;
+     float attack, release, threshold, ratio, knee, makeup, detection, stereo_link, bypass, mute, meter_out, meter_gate;
+     mutable float old_threshold, old_ratio, old_knee, old_makeup, old_bypass, old_range, old_trigger, old_mute, old_detection, old_stereo_link;
+@@ -142,7 +142,7 @@
+     mutable float f1_freq_old, f2_freq_old, f1_level_old, f2_level_old;
+     mutable float f1_freq_old1, f2_freq_old1, f1_level_old1, f2_level_old1;
+     CalfScModes sc_mode;
+-    mutable CalfScModes sc_mode_old, sc_mode_old1;
++    mutable CalfScModes sc_mode_old1;
+     float f1_active, f2_active;
+     stereo_in_out_metering<sidechaincompressor_metadata> meters;
+     gain_reduction_audio_module compressor;
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_limit.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/modules_limit.h	2017-01-03 19:39:00.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_limit.h	2017-01-03 19:40:20.000000000 +0100
+@@ -37,7 +37,6 @@
+ private:
+     typedef limiter_audio_module AM;
+     uint32_t clip_inL, clip_inR, clip_outL, clip_outR, asc_led;
+-    int mode, mode_old;
+     float meter_inL, meter_inR, meter_outL, meter_outR;
+     dsp::lookahead_limiter limiter;
+ public:
+@@ -73,7 +72,6 @@
+     unsigned int overall_buffer_size;
+     float *buffer;
+     int channels;
+-    float striprel[strips];
+     float weight[strips];
+     float weight_old[strips];
+     float limit_old;
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_mod.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/modules_mod.h	2017-01-03 19:41:55.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/modules_mod.h	2017-01-03 19:42:19.000000000 +0100
+@@ -160,8 +160,6 @@
+     typedef pulsator_audio_module AM;
+     uint32_t clip_inL, clip_inR, clip_outL, clip_outR;
+     float meter_inL, meter_inR, meter_outL, meter_outR;
+-    float offset_old;
+-    int mode_old;
+     bool clear_reset;
+     dsp::simple_lfo lfoL, lfoR;
+ public:
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/organ.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/organ.h	2017-01-03 19:43:08.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/organ.h	2017-01-03 19:53:55.000000000 +0100
+@@ -318,6 +318,7 @@
+     using drawbar_organ::note_on;
+     using drawbar_organ::note_off;
+     using drawbar_organ::control_change;
++    using drawbar_organ::pitch_bend;
+     enum { param_count = drawbar_organ::param_count};
+     dsp::organ_parameters par_values;
+     uint32_t srate;
+@@ -338,9 +339,9 @@
+     void deactivate();
+     uint32_t process(uint32_t offset, uint32_t nsamples, uint32_t inputs_mask, uint32_t outputs_mask);
+     /// No CV inputs for now
+-    bool is_cv(int param_no) { return false; }
++    bool is_cv(int param_no) const { return false; }
+     /// Practically all the stuff here is noisy
+-    bool is_noisy(int param_no) { return true; }
++    bool is_noisy(int param_no) const { return true; }
+     void execute(int cmd_no);
+     bool get_graph(int index, int subindex, float *data, int points, cairo_iface *context) const;
+     char *configure(const char *key, const char *value);
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/preset.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/preset.h	2017-01-03 19:57:02.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/preset.h	2017-01-03 20:00:25.000000000 +0100
+@@ -27,7 +27,7 @@
+ 
+ namespace calf_plugins {
+ 
+-class plugin_ctl_iface;
++struct plugin_ctl_iface;
+     
+ /// Contents of single preset
+ struct plugin_preset
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/primitives.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/calf/primitives.h	2017-01-03 17:36:12.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/calf/primitives.h	2017-01-03 16:22:16.000000000 +0100
+@@ -370,11 +370,6 @@
+         next_task = (unsigned)-1;
+         eob = false;
+     }
+-    inline bool is_next_tick() {
+-        if (time < next_task)
+-            return true;
+-        do_tasks();
+-    }
+     inline void next_tick() {
+         time++;
+     }
+@@ -382,14 +377,6 @@
+         timeline.insert(std::pair<unsigned int, task *>(time+pos, t));
+         next_task = timeline.begin()->first;
+     }
+-    void do_tasks() {
+-        std::multimap<unsigned int, task *>::iterator i = timeline.begin();
+-        while(i != timeline.end() && i->first == time) {
+-            i->second->execute(this);
+-            i->second->dispose();
+-            timeline.erase(i);
+-        }
+-    }
+     bool is_eob() {
+         return eob;
+     }
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/metadata.cpp
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/metadata.cpp	2017-01-03 17:52:03.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/metadata.cpp	2017-01-03 18:49:18.000000000 +0100
+@@ -29,6 +29,8 @@
+ 
+ const char *calf_plugins::calf_copyright_info = "(C) 2001-2009 Krzysztof Foltman, Thor Harald Johanssen, Markus Schmidt and others; license: LGPL";
+ 
++namespace calf_plugins {
++
+ ////////////////////////////////////////////////////////////////////////////
+ 
+ CALF_PORT_NAMES(flanger) = {"In L", "In R", "Out L", "Out R"};
+@@ -1105,7 +1107,7 @@
+ 
+ CALF_PLUGIN_INFO(organ) = { 0x8481, "Organ", "Calf Organ", "Krzysztof Foltman", calf_plugins::calf_copyright_info, "SynthesizerPlugin" };
+ 
+-plugin_command_info *organ_metadata::get_commands()
++plugin_command_info *organ_metadata::get_commands() const
+ {
+     static plugin_command_info cmds[] = {
+         { "cmd_panic", "Panic!", "Stop all sounds and reset all controllers" },
+@@ -1439,6 +1441,8 @@
+ 
+ ////////////////////////////////////////////////////////////////////////////
+ 
++}; // namespace calf_plugins
++
+ calf_plugins::plugin_registry::plugin_registry()
+ {
+     #define PER_MODULE_ITEM(name, isSynth, jackname) plugins.push_back((new name##_metadata));
+Index: lmms-1.1.3/plugins/LadspaEffect/calf/src/modules.cpp
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/calf/src/modules.cpp	2017-01-03 19:32:38.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/calf/src/modules.cpp	2017-01-03 19:33:13.000000000 +0100
+@@ -339,7 +339,7 @@
+ ///////////////////////////////////////////////////////////////////////////////////////////////
+ 
+ filterclavier_audio_module::filterclavier_audio_module() 
+-: filter_module_with_inertia<biquad_filter_module, filterclavier_metadata>(ins, outs, params)
++: filter_module_with_inertia<biquad_filter_module, filterclavier_metadata>()
+ , min_gain(1.0)
+ , max_gain(32.0)
+ , last_note(-1)
+Index: lmms-1.1.3/plugins/LadspaEffect/swh/flanger_1191.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/swh/flanger_1191.c	2017-01-03 15:44:13.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/swh/flanger_1191.c	2017-01-03 15:45:17.000000000 +0100
+@@ -266,7 +266,7 @@
+ 	
+ 	        // Calculate position in delay table
+ 	        d_base = LIN_INTERP(frac, old_d_base, new_d_base);
+-	        n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p;
++	        n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p;
+ 	        p_ph = n_ph + 0.5f;
+ 	        while (p_ph > 1.0f) {
+ 	                p_ph -= 1.0f;
+@@ -392,7 +392,7 @@
+ 	
+ 	        // Calculate position in delay table
+ 	        d_base = LIN_INTERP(frac, old_d_base, new_d_base);
+-	        n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p;
++	        n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p;
+ 	        p_ph = n_ph + 0.5f;
+ 	        while (p_ph > 1.0f) {
+ 	                p_ph -= 1.0f;
+Index: lmms-1.1.3/plugins/LadspaEffect/swh/gsm/short_term.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/swh/gsm/short_term.c	2017-01-03 15:35:13.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/swh/gsm/short_term.c	2017-01-03 15:35:55.000000000 +0100
+@@ -53,7 +53,7 @@
+ #undef	STEP
+ #define	STEP( B, MIC, INVA )	\
+ 		temp1    = GSM_ADD( *LARc++, MIC ) << 10;	\
+-		temp1    = GSM_SUB( temp1, B << 1 );		\
++		temp1    = GSM_SUB( temp1, B * 2 );		\
+ 		temp1    = GSM_MULT_R( INVA, temp1 );		\
+ 		*LARpp++ = GSM_ADD( temp1, temp1 );
+ 
+Index: lmms-1.1.3/plugins/LadspaEffect/swh/multivoice_chorus_1201.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/swh/multivoice_chorus_1201.c	2017-01-03 15:47:51.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/swh/multivoice_chorus_1201.c	2017-01-03 15:48:18.000000000 +0100
+@@ -345,7 +345,7 @@
+ 	        if (count % 16 < laws) {
+ 	                unsigned int t = count % 16;
+ 	                // Calculate sinus phases
+-	                float n_ph = (float)(law_p - abs(next_peak_pos[t] - count))/law_p;
++	                float n_ph = (float)(law_p - labs(next_peak_pos[t] - count))/law_p;
+ 	                float p_ph = n_ph + 0.5f;
+ 	                if (p_ph > 1.0f) {
+ 	                        p_ph -= 1.0f;
+@@ -488,7 +488,7 @@
+ 	        if (count % 16 < laws) {
+ 	                unsigned int t = count % 16;
+ 	                // Calculate sinus phases
+-	                float n_ph = (float)(law_p - abs(next_peak_pos[t] - count))/law_p;
++	                float n_ph = (float)(law_p - labs(next_peak_pos[t] - count))/law_p;
+ 	                float p_ph = n_ph + 0.5f;
+ 	                if (p_ph > 1.0f) {
+ 	                        p_ph -= 1.0f;
+Index: lmms-1.1.3/plugins/LadspaEffect/swh/retro_flange_1208.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/swh/retro_flange_1208.c	2017-01-03 15:46:35.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/swh/retro_flange_1208.c	2017-01-03 15:47:02.000000000 +0100
+@@ -321,7 +321,7 @@
+ 	                prev_law_pos = count + law_p;
+ 	        }
+ 	
+-	        n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p;
++	        n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p;
+ 	        p_ph = n_ph + 0.5f;
+ 	        if (p_ph > 1.0f) {
+ 	                p_ph -= 1.0f;
+@@ -446,7 +446,7 @@
+ 	                prev_law_pos = count + law_p;
+ 	        }
+ 	
+-	        n_ph = (float)(law_p - abs(next_law_pos - count))/(float)law_p;
++	        n_ph = (float)(law_p - labs(next_law_pos - count))/(float)law_p;
+ 	        p_ph = n_ph + 0.5f;
+ 	        if (p_ph > 1.0f) {
+ 	                p_ph -= 1.0f;
+Index: lmms-1.1.3/plugins/LadspaEffect/swh/vynil_1905.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/swh/vynil_1905.c	2017-01-03 15:51:56.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/swh/vynil_1905.c	2017-01-03 16:01:32.000000000 +0100
+@@ -243,6 +243,8 @@
+ 	buffer_s = malloc(sizeof(LADSPA_Data) * buffer_size);
+ 	buffer_mask = buffer_size - 1;
+ 	buffer_pos = 0;
++	click_buffer_omega.all = 0;
++	click_buffer_pos.all = 0;
+ 	click_gain = 0;
+ 	phi = 0.0f; /* Angular phase */
+ 
+Index: lmms-1.1.3/plugins/LadspaEffect/tap/CMakeLists.txt
+===================================================================
+--- lmms-1.1.3.orig/plugins/LadspaEffect/tap/CMakeLists.txt	2017-01-03 13:52:28.000000000 +0100
++++ lmms-1.1.3/plugins/LadspaEffect/tap/CMakeLists.txt	2017-01-03 15:12:14.000000000 +0100
+@@ -1,7 +1,15 @@
+ INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/include")
+ FILE(GLOB PLUGIN_SOURCES *.c)
+ LIST(SORT PLUGIN_SOURCES)
+-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wno-write-strings -fomit-frame-pointer -fno-strict-aliasing -fstrength-reduce -funroll-loops -ffast-math")
++SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wno-write-strings \
++	-fomit-frame-pointer -fno-strict-aliasing -funroll-loops -ffast-math")
++
++INCLUDE(CheckCCompilerFlag)
++CHECK_C_COMPILER_FLAG(-fstrength-reduce C_HAVE_STRENGTH_REDUCE)
++IF(${C_HAVE_STRENGTH_REDUCE})
++	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrength-reduce")
++ENDIF()
++
+ FOREACH(_item ${PLUGIN_SOURCES})
+ 	GET_FILENAME_COMPONENT(_plugin "${_item}" NAME_WE)
+ 	ADD_LIBRARY("${_plugin}" MODULE "${_item}")
+Index: lmms-1.1.3/plugins/MidiImport/portsmf/allegro.h
+===================================================================
+--- lmms-1.1.3.orig/plugins/MidiImport/portsmf/allegro.h	2017-01-03 20:02:37.000000000 +0100
++++ lmms-1.1.3/plugins/MidiImport/portsmf/allegro.h	2017-01-03 20:06:48.000000000 +0100
+@@ -842,6 +842,8 @@
+     Alg_event_ptr write_track_name(std::ostream &file, int n, 
+                                    Alg_events &events);
+ public:
++    using Alg_track::paste;
++
+     int channel_offset_per_track; // used to encode track_num into channel
+     Alg_tracks track_list;       // array of Alg_events
+     Alg_time_sigs time_sig;
+Index: lmms-1.1.3/plugins/MidiImport/portsmf/allegrosmfwr.cpp
+===================================================================
+--- lmms-1.1.3.orig/plugins/MidiImport/portsmf/allegrosmfwr.cpp	2017-01-03 20:07:50.000000000 +0100
++++ lmms-1.1.3/plugins/MidiImport/portsmf/allegrosmfwr.cpp	2017-01-03 20:08:34.000000000 +0100
+@@ -57,13 +57,11 @@
+ 
+     Alg_seq_ptr seq;
+ 
+-    int num_tracks; // number of tracks not counting tempo track
+     int division; // divisions per quarter note, default = 120
+     int initial_tempo;
+ 
+     int timesig_num; // numerator of time signature
+     int timesig_den; // denominator of time signature
+-    double timesig_when; // time of time signature
+ 
+     int keysig;          // number of sharps (+) or flats (-), -99 for undefined
+     char keysig_mode; // 'M' or 'm' for major/minor
+Index: lmms-1.1.3/plugins/delay/stereodelay.cpp
+===================================================================
+--- lmms-1.1.3.orig/plugins/delay/stereodelay.cpp	2017-01-03 13:40:27.000000000 +0100
++++ lmms-1.1.3/plugins/delay/stereodelay.cpp	2017-01-03 13:42:16.000000000 +0100
+@@ -48,7 +48,7 @@
+ {
+ 	if( m_buffer )
+ 	{
+-		delete m_buffer;
++		delete[] m_buffer;
+ 	}
+ }
+ 
+@@ -84,7 +84,7 @@
+ {
+ 	if( m_buffer )
+ 	{
+-		delete m_buffer;
++		delete[] m_buffer;
+ 	}
+ 
+ 	int bufferSize = ( int )( sampleRate * m_maxTime );
+Index: lmms-1.1.3/plugins/opl2/fmopl.c
+===================================================================
+--- lmms-1.1.3.orig/plugins/opl2/fmopl.c	2017-01-03 20:11:03.000000000 +0100
++++ lmms-1.1.3/plugins/opl2/fmopl.c	2017-01-03 20:22:23.000000000 +0100
+@@ -70,7 +70,7 @@
+ /* final output shift , limit minimum and maximum */
+ #define OPL_OUTSB   (TL_BITS+3-16)		/* OPL output final shift 16bit */
+ #define OPL_MAXOUT (0x7fff<<OPL_OUTSB)
+-#define OPL_MINOUT (-0x8000<<OPL_OUTSB)
++#define OPL_MINOUT (~((0x8000<<OPL_OUTSB)-1))
+ 
+ /* -------------------- quality selection --------------------- */
+ 
+Index: lmms-1.1.3/src/core/track.cpp
+===================================================================
+--- lmms-1.1.3.orig/src/core/track.cpp	2017-01-03 13:16:46.000000000 +0100
++++ lmms-1.1.3/src/core/track.cpp	2017-01-03 13:18:33.000000000 +0100
+@@ -75,11 +75,6 @@
+  */
+ const int RESIZE_GRIP_WIDTH = 4;
+ 
+-/*! The size of the track buttons in pixels
+- */
+-const int TRACK_OP_BTN_WIDTH = 20;
+-const int TRACK_OP_BTN_HEIGHT = 14;
+-
+ 
+ /*! A pointer for that text bubble used when moving segments, etc.
+  *
+Index: lmms-1.1.3/src/gui/LfoControllerDialog.cpp
+===================================================================
+--- lmms-1.1.3.orig/src/gui/LfoControllerDialog.cpp	2017-01-03 13:24:43.000000000 +0100
++++ lmms-1.1.3/src/gui/LfoControllerDialog.cpp	2017-01-03 13:25:24.000000000 +0100
+@@ -50,7 +50,6 @@
+ const int CD_LFO_SHAPES_X = 6;
+ const int CD_LFO_SHAPES_Y = 36;
+ 
+-const int CD_LFO_GRAPH_X = 6;
+ const int CD_LFO_GRAPH_Y = CD_ENV_KNOBS_LBL_Y+15;
+ const int CD_LFO_CD_KNOB_Y = CD_LFO_GRAPH_Y-2;
+ const int CD_LFO_BASE_CD_KNOB_X = CD_LFO_SHAPES_X + 64;
+Index: lmms-1.1.3/src/gui/LmmsStyle.cpp
+===================================================================
+--- lmms-1.1.3.orig/src/gui/LmmsStyle.cpp	2017-01-03 13:27:38.000000000 +0100
++++ lmms-1.1.3/src/gui/LmmsStyle.cpp	2017-01-03 13:29:35.000000000 +0100
+@@ -34,78 +34,6 @@
+ #include "LmmsStyle.h"
+ #include "LmmsPalette.h"
+ 
+-const int BUTTON_LENGTH = 24;
+-
+-static const char * const s_scrollbarArrowUpXpm[] = {
+-		"7 6 8 1",
+-		" 	g None",
+-		".	g #000000",
+-		"+	g #101010",
+-		"@	g #A0A0A0",
+-		"#	g #C0C0C0",
+-		"$	g #FFFFFF",
+-		"%	g #808080",
+-		"&	g #202020",
+-		"..+ at +..",
+-		"..#$#..",
+-		".%$$$%.",
+-		"&$$$$$&",
+-		"@$$$$$@",
+-		"@#####@"};
+-
+-static const char * const s_scrollbarArrowRightXpm[] = {
+-		"6 7 8 1",
+-		" 	c None",
+-		".	c #A0A0A0",
+-		"+	c #202020",
+-		"@	c #000000",
+-		"#	c #C0C0C0",
+-		"$	c #FFFFFF",
+-		"%	c #808080",
+-		"&	c #101010",
+-		"..+@@@",
+-		"#$$%@@",
+-		"#$$$#&",
+-		"#$$$$.",
+-		"#$$$#&",
+-		"#$$%@@",
+-		"..+@@@"};
+-
+-static const char * const s_scrollbarArrowDownXpm[] = {
+-		"7 6 8 1",
+-		" 	g None",
+-		".	g #000000",
+-		"+	g #101010",
+-		"@	g #A0A0A0",
+-		"#	g #C0C0C0",
+-		"$	g #FFFFFF",
+-		"%	g #808080",
+-		"&	g #202020",
+-		"@#####@",
+-		"@$$$$$@",
+-		"&$$$$$&",
+-		".%$$$%.",
+-		"..#$#..",
+-		"..+ at +.."};
+-
+-static const char * const s_scrollbarArrowLeftXpm[] = {
+-		"6 7 8 1",
+-		" 	g None",
+-		".	g #000000",
+-		"+	g #202020",
+-		"@	g #A0A0A0",
+-		"#	g #808080",
+-		"$	g #FFFFFF",
+-		"%	g #C0C0C0",
+-		"&	g #101010",
+-		"...+@@",
+-		"..#$$%",
+-		"&%$$$%",
+-		"@$$$$%",
+-		"&%$$$%",
+-		"..#$$%",
+-		"...+@@"};
+-
+ QPalette * LmmsStyle::s_palette = NULL;
+ 
+ QLinearGradient getGradient( const QColor & _col, const QRectF & _rect )
+Index: lmms-1.1.3/src/gui/PianoRoll.cpp
+===================================================================
+--- lmms-1.1.3.orig/src/gui/PianoRoll.cpp	2017-01-03 13:30:47.000000000 +0100
++++ lmms-1.1.3/src/gui/PianoRoll.cpp	2017-01-03 13:34:14.000000000 +0100
+@@ -88,7 +88,6 @@
+ const int PIANO_X = 0;
+ 
+ const int WHITE_KEY_WIDTH = 64;
+-const int BLACK_KEY_WIDTH = 41;
+ const int WHITE_KEY_SMALL_HEIGHT = 18;
+ const int WHITE_KEY_BIG_HEIGHT = 24;
+ const int BLACK_KEY_HEIGHT = 16;
diff --git a/debian/patches/series b/debian/patches/series
index 248be9f..40b8308 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,3 +20,4 @@ no-file.patch
 sort-resources.patch
 install-runpath.patch
 wine-flags-space.patch
+clang.patch
diff --git a/debian/patches/wine-flags-space.patch b/debian/patches/wine-flags-space.patch
index 7d24a0f..f3aaf6e 100644
--- a/debian/patches/wine-flags-space.patch
+++ b/debian/patches/wine-flags-space.patch
@@ -2,6 +2,7 @@ Description: Separate flags for WINE_BUILD_FLAGS
  CMAKE_CXX_FLAGS may not end with a space; add one.
 Author: Javier Serrano Polo <javier at jasp.net>
 Forwarded: https://github.com/LMMS/lmms/pull/3177
+Applied-Upstream: 1.2.0-rc2
 
 Index: lmms-1.1.3/plugins/vst_base/CMakeLists.txt
 ===================================================================

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-edu/pkg-team/lmms.git



More information about the debian-edu-commits mailing list