Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package ardour3

Only difference between new and old version is a backported fix for a severe
bug that causes data to be permanently lost:

  grave: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=772118


Debdiff (well, git diff):

diff --git a/debian/changelog b/debian/changelog
index 4b7f32c..c3f1b26 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ardour3 (3.5.403~dfsg-3) unstable; urgency=medium
+
+  * Fix MIDI data loss when editing (Closes: #772118)
+
+ -- Adrian Knoth <a...@drcomp.erfurt.thur.de>  Thu, 04 Dec 2014 19:34:45 +0100
+
 ardour3 (3.5.403~dfsg-2) unstable; urgency=high
 
   * Reupload with waf fixes from 3.5.380~dfsg-2 and -3 
diff --git a/debian/control b/debian/control
index cae0ad1..69b6728 100644
--- a/debian/control
+++ b/debian/control
@@ -49,7 +49,7 @@ Build-Depends:
  python-isodate,
  libpcre3-dev,
  python-rdflib
-Standards-Version: 3.9.5
+Standards-Version: 3.9.6
 Homepage: http://www.ardour.org/
 Vcs-Git: git://anonscm.debian.org/pkg-multimedia/ardour3.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/ardour3.git
diff --git a/debian/control.in b/debian/control.in
index c3d37e4..c1c9c51 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -7,7 +7,7 @@ Uploaders:
  Jaromír Mikeš <mira.mi...@seznam.cz>
 Build-Depends:
  @cdbs@
-Standards-Version: 3.9.5
+Standards-Version: 3.9.6
 Homepage: http://www.ardour.org/
 Vcs-Git: git://anonscm.debian.org/pkg-multimedia/ardour3.git
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/ardour3.git
diff --git a/debian/patches/midi-data-loss.patch 
b/debian/patches/midi-data-loss.patch
new file mode 100644
index 0000000..9f7e8b6
--- /dev/null
+++ b/debian/patches/midi-data-loss.patch
@@ -0,0 +1,62 @@
+From: David Robillard <d...@drobilla.net>
+Description: Fix MIDI data loss when editing
+Forwarded: not-needed
+Last-Update: 2014-12-04
+Bug-Vendor: http://tracker.ardour.org/view.php?id=5669
+Applied-Upstream: 3.5.404; 
https://github.com/Ardour/ardour/commit/94954f852ead97bcda7afa548d543222733228ef
+--- ardour3.orig/libs/ardour/smf_source.cc
++++ ardour3/libs/ardour/smf_source.cc
+@@ -393,10 +393,22 @@ SMFSource::append_event_unlocked_beats (
+                name().c_str(), ev.id(), ev.time(), ev.size());
+              for (size_t i = 0; i < ev.size(); ++i) printf("%X ", 
ev.buffer()[i]); printf("\n");*/
+ 
+-      if (ev.time() < _last_ev_time_beats) {
+-              warning << string_compose(_("Skipping event with unordered time 
%1"), ev.time())
+-                      << endmsg;
+-              return;
++      double time = ev.time();
++      if (time < _last_ev_time_beats) {
++              const double difference = _last_ev_time_beats - time;
++              if (difference / (double)ppqn() < 1.0) {
++                      /* Close enough.  This problem occurs because Sequence 
is not
++                         actually ordered due to fuzzy time comparison.  I'm 
pretty sure
++                         this is inherently a bad idea which causes problems 
all over the
++                         place, but tolerate it here for now anyway. */
++                      time = _last_ev_time_beats;
++              } else {
++                      /* Out of order by more than a tick. */
++                      warning << string_compose(_("Skipping event with 
unordered beat time %1 < %2 (off by %3 beats, %4 ticks)"),
++                                                ev.time(), 
_last_ev_time_beats, difference, difference / (double)ppqn())
++                              << endmsg;
++                      return;
++              }
+       }
+ 
+       Evoral::event_id_t event_id;
+@@ -411,13 +423,13 @@ SMFSource::append_event_unlocked_beats (
+               _model->append (ev, event_id);
+       }
+ 
+-      _length_beats = max(_length_beats, ev.time());
++      _length_beats = max(_length_beats, time);
+ 
+-      const double delta_time_beats   = ev.time() - _last_ev_time_beats;
++      const double delta_time_beats   = time - _last_ev_time_beats;
+       const uint32_t delta_time_ticks = (uint32_t)lrint(delta_time_beats * 
(double)ppqn());
+ 
+       Evoral::SMF::append_event_delta(delta_time_ticks, ev.size(), 
ev.buffer(), event_id);
+-      _last_ev_time_beats = ev.time();
++      _last_ev_time_beats = time;
+       _flags = Source::Flag (_flags & ~Empty);
+ }
+ 
+@@ -434,7 +446,8 @@ SMFSource::append_event_unlocked_frames
+       // for (size_t i=0; i < ev.size(); ++i) printf("%X ", ev.buffer()[i]); 
printf("\n");
+ 
+       if (ev.time() < _last_ev_time_frames) {
+-              warning << string_compose(_("Skipping event with unordered time 
%1"), ev.time())
++              warning << string_compose(_("Skipping event with unordered 
frame time %1 < %2"),
++                                        ev.time(), _last_ev_time_frames)
+                       << endmsg;
+               return;
+       }
diff --git a/debian/patches/series b/debian/patches/series
index c8a0a54..d258483 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 waf.patch
 wscript.patch
 log-stdout.patch
+midi-data-loss.patch


unblock ardour3/3.5.403~dfsg-3

-- System Information:
Debian Release: 7.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


-- 
To UNSUBSCRIBE, email to debian-release-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/20141205144230.4678.69128.report...@ltw.loris.tv

Reply via email to