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-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org