Hello community,

here is the log from the commit of package zynaddsubfx for openSUSE:Factory 
checked in at 2017-05-18 20:48:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/zynaddsubfx (Old)
 and      /work/SRC/openSUSE:Factory/.zynaddsubfx.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "zynaddsubfx"

Thu May 18 20:48:00 2017 rev:7 rq:494362 version:3.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/zynaddsubfx/zynaddsubfx.changes  2017-04-20 
20:57:12.902808260 +0200
+++ /work/SRC/openSUSE:Factory/.zynaddsubfx.new/zynaddsubfx.changes     
2017-05-18 20:48:02.729586128 +0200
@@ -1,0 +2,6 @@
+Wed May 10 15:14:34 UTC 2017 - davejpla...@gmail.com
+
+- Enable reproducible builds with zynaddsubfx-DPF.patch which fixes
+  the generation of random output port values for lv2 plugins.
+
+-------------------------------------------------------------------

New:
----
  zynaddsubfx-DPF.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ zynaddsubfx.spec ++++++
--- /var/tmp/diff_new_pack.ShO3sY/_old  2017-05-18 20:48:04.109391402 +0200
+++ /var/tmp/diff_new_pack.ShO3sY/_new  2017-05-18 20:48:04.109391402 +0200
@@ -49,6 +49,8 @@
 Source0:        
https://sourceforge.net/projects/zynaddsubfx/files/zynaddsubfx/3.0.1/%{name}-%{version}.tar.bz2
 Patch0:         zynaddsubfx-buildflags.patch
 Patch1:         zynaddsubfx-nodatetime.patch
+# PATCH-FIX-UPSTREAM zynaddsubfx-DPF.patch davejpla...@gmail.com -- patch DPF 
(issue#18) to latest git which fixes random lv2 output port values.
+Patch2:         zynaddsubfx-DPF.patch
 Provides:       ZynAddSubFX = %{version}
 Obsoletes:      ZynAddSubFX < %{version}
 
@@ -123,10 +125,12 @@
 %setup -q
 %patch0 -p0
 %patch1 -p0
+%patch2 -p0
 
 %build
 %cmake \
       -DDefaultOutput=jack \
+      -DNoNeonPlease:BOOL=ON \
       -DCMAKE_CXX_FLAGS=-std=c++11\
 %ifarch %{ix86} x86_64
       -DX86Build=ON \

++++++ zynaddsubfx-DPF.patch ++++++
Index: DPF/distrho/src/DistrhoPluginInternal.hpp
===================================================================
--- DPF/distrho/src/DistrhoPluginInternal.hpp.orig      2016-08-01 
00:51:33.000000000 +0200
+++ DPF/distrho/src/DistrhoPluginInternal.hpp   2017-05-10 17:05:02.037419388 
+0200
@@ -43,6 +43,7 @@ struct Plugin::PrivateData {
 #endif
 
     uint32_t   parameterCount;
+    uint32_t   parameterOffset;
     Parameter* parameters;
 
 #if DISTRHO_PLUGIN_WANT_PROGRAMS
@@ -73,6 +74,7 @@ struct Plugin::PrivateData {
           audioPorts(nullptr),
 #endif
           parameterCount(0),
+          parameterOffset(0),
           parameters(nullptr),
 #if DISTRHO_PLUGIN_WANT_PROGRAMS
           programCount(0),
@@ -91,6 +93,22 @@ struct Plugin::PrivateData {
     {
         DISTRHO_SAFE_ASSERT(bufferSize != 0);
         DISTRHO_SAFE_ASSERT(d_isNotZero(sampleRate));
+
+#if defined(DISTRHO_PLUGIN_TARGET_DSSI) || defined(DISTRHO_PLUGIN_TARGET_LV2)
+        parameterOffset += DISTRHO_PLUGIN_NUM_INPUTS + 
DISTRHO_PLUGIN_NUM_OUTPUTS;
+# if DISTRHO_PLUGIN_WANT_LATENCY
+        parameterOffset += 1;
+# endif
+#endif
+
+#ifdef DISTRHO_PLUGIN_TARGET_LV2
+# if (DISTRHO_PLUGIN_IS_SYNTH || DISTRHO_PLUGIN_WANT_TIMEPOS || 
DISTRHO_PLUGIN_WANT_STATE)
+        parameterOffset += 1;
+#  if DISTRHO_PLUGIN_WANT_STATE
+        parameterOffset += 1;
+#  endif
+# endif
+#endif
     }
 
     ~PrivateData() noexcept
@@ -283,6 +301,13 @@ public:
         return fData->parameterCount;
     }
 
+    uint32_t getParameterOffset() const noexcept
+    {
+        DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr, 0);
+
+        return fData->parameterOffset;
+    }
+
     uint32_t getParameterHints(const uint32_t index) const noexcept
     {
         DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr && index < 
fData->parameterCount, 0x0);
Index: DPF/distrho/src/DistrhoPluginLADSPA+DSSI.cpp
===================================================================
--- DPF/distrho/src/DistrhoPluginLADSPA+DSSI.cpp.orig   2016-08-01 
00:51:33.000000000 +0200
+++ DPF/distrho/src/DistrhoPluginLADSPA+DSSI.cpp        2017-05-10 
17:05:02.117414864 +0200
@@ -331,7 +331,12 @@ public:
 
     int dssi_get_midi_controller_for_port(const ulong port) noexcept
     {
-        const uint8_t midiCC = fPlugin.getParameterMidiCC(port);
+        const uint32_t parameterOffset = fPlugin.getParameterOffset();
+
+        if (port > parameterOffset)
+            return DSSI_NONE;
+
+        const uint8_t midiCC = 
fPlugin.getParameterMidiCC(port-parameterOffset);
 
         if (midiCC == 0 || midiCC == 32 || midiCC >= 0x78)
             return DSSI_NONE;
Index: DPF/distrho/src/DistrhoPluginLV2export.cpp
===================================================================
--- DPF/distrho/src/DistrhoPluginLV2export.cpp.orig     2016-11-20 
18:28:11.000000000 +0200
+++ DPF/distrho/src/DistrhoPluginLV2export.cpp  2017-05-10 17:05:02.117414864 
+0200
@@ -1,6 +1,6 @@
 /*
  * DISTRHO Plugin Framework (DPF)
- * Copyright (C) 2012-2016 Filipe Coelho <fal...@falktx.com>
+ * Copyright (C) 2012-2017 Filipe Coelho <fal...@falktx.com>
  *
  * Permission to use, copy, modify, and/or distribute this software for any 
purpose with
  * or without fee is hereby granted, provided that the above copyright notice 
and this
@@ -608,7 +608,18 @@ void lv2_generate_ttl(const char* const
 
             plugin.loadProgram(i);
 
-            presetString  = "<" DISTRHO_PLUGIN_URI + presetSeparator + 
"preset" + strBuf + ">\n";
+            presetString = "<" DISTRHO_PLUGIN_URI + presetSeparator + "preset" 
+ strBuf + ">\n";
+
+# if DISTRHO_PLUGIN_WANT_FULL_STATE
+            if (numParameters == 0 && numStates == 0)
+#else
+            if (numParameters == 0)
+#endif
+            {
+                presetString += "    .";
+                presetsString += presetString;
+                continue;
+            }
 
 # if DISTRHO_PLUGIN_WANT_FULL_STATE
             presetString += "    state:state [\n";
@@ -631,12 +642,22 @@ void lv2_generate_ttl(const char* const
                 presetString += "    ] .\n\n";
 # endif
 
+            bool firstParameter = true;
+
             for (uint32_t j=0; j <numParameters; ++j)
             {
-                if (j == 0)
+                if (plugin.isParameterOutput(j))
+                    continue;
+
+                if (firstParameter)
+                {
                     presetString += "    lv2:port [\n";
+                    firstParameter = false;
+                }
                 else
+                {
                     presetString += "    [\n";
+                }
 
                 presetString += "        lv2:symbol \"" + 
plugin.getParameterSymbol(j) + "\" ;\n";
 
@@ -645,7 +666,7 @@ void lv2_generate_ttl(const char* const
                 else
                     presetString += "        pset:value " + 
String(plugin.getParameterValue(j)) + " ;\n";
 
-                if (j+1 == numParameters)
+                if (j+1 == numParameters || (j+2 == numParameters && 
plugin.isParameterOutput(j+1)))
                     presetString += "    ] .\n\n";
                 else
                     presetString += "    ] ,\n";

Reply via email to