--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@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 <adi@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.mikes@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
--- End Message ---
--- Begin Message ---
Hi,
On Fri, Dec 05, 2014 at 03:42:30PM +0100, Adrian Knoth wrote:
> Please unblock package ardour3
Unblocked.
> Only difference between new and old version is a backported fix for a severe
> bug that causes data to be permanently lost:
You also changed the standards-version (without documenting this in the
changelog).
Cheers,
Ivo
--- End Message ---