diff options
-rw-r--r-- | audio/ardour/ardour.SlackBuild | 8 | ||||
-rw-r--r-- | audio/ardour/ardour.info | 6 | ||||
-rw-r--r-- | audio/ardour/lilv.patch | 38 | ||||
-rw-r--r-- | audio/ardour/tempoline_crash.patch | 83 |
4 files changed, 130 insertions, 5 deletions
diff --git a/audio/ardour/ardour.SlackBuild b/audio/ardour/ardour.SlackBuild index 078707d944..51b7dc11b4 100644 --- a/audio/ardour/ardour.SlackBuild +++ b/audio/ardour/ardour.SlackBuild @@ -2,7 +2,7 @@ # Slackware build script for ardour -# Copyright 2008-2012 Heinz Wiesinger, Amsterdam, The Netherlands +# Copyright 2008-2013 Heinz Wiesinger, Amsterdam, The Netherlands # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. PRGNAM=ardour -VERSION=2.8.14 +VERSION=2.8.16 BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -99,6 +99,10 @@ patch -d gtk2_ardour -p0 -i $CWD/SConscript.diff # Omit -O3 from the CFLAGS patch -p1 -i $CWD/SConstruct.diff +# Bugfixes from git +patch -p1 -i $CWD/tempoline_crash.patch +patch -p1 -i $CWD/lilv.patch + scons \ PREFIX=/usr \ LIBDIR=/usr/lib${LIBDIRSUFFIX} \ diff --git a/audio/ardour/ardour.info b/audio/ardour/ardour.info index 1afd28ee75..5fc8e6f914 100644 --- a/audio/ardour/ardour.info +++ b/audio/ardour/ardour.info @@ -1,8 +1,8 @@ PRGNAM="ardour" -VERSION="2.8.14" +VERSION="2.8.16" HOMEPAGE="http://ardour.org" -DOWNLOAD="http://www.liwjatan.at/files/src/ardour/ardour-2.8.14.tar.bz2" -MD5SUM="c79219ba10735d0b061d53a84ae611a4" +DOWNLOAD="http://www.liwjatan.at/files/src/ardour/ardour-2.8.16.tar.bz2" +MD5SUM="5bafe41df00d25e7a357baaa1038f16d" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="aubio jack-audio-connection-kit libgnomecanvasmm liblo liblrdf scons" diff --git a/audio/ardour/lilv.patch b/audio/ardour/lilv.patch new file mode 100644 index 0000000000..cf5abec24e --- /dev/null +++ b/audio/ardour/lilv.patch @@ -0,0 +1,38 @@ +commit 4ce89b51782ae8b86ee00175c5abdeec07cc4e4c +Author: Paul Davis <paul@linuxaudiosystems.com> +Date: Thu Feb 21 14:53:49 2013 +0000 + + fix const-correctness for current lilv + + git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@14072 d708f5d6-7413-0410-9779-e7cbd77b26cf + +diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h +index eacefa4..595dcc1 100644 +--- a/libs/ardour/ardour/lv2_plugin.h ++++ b/libs/ardour/ardour/lv2_plugin.h +@@ -154,7 +154,7 @@ class LV2Plugin : public ARDOUR::Plugin + /** Find the LV2 input port with the given designation. + * If found, bufptrs[port_index] will be set to bufptr. + */ +- LilvPort* designated_input (const char* uri, void** bufptrs[], void** bufptr); ++ const LilvPort* designated_input (const char* uri, void** bufptrs[], void** bufptr); + }; + + +diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc +index 4a1719d..6d21091 100644 +--- a/libs/ardour/lv2_plugin.cc ++++ b/libs/ardour/lv2_plugin.cc +@@ -644,10 +644,10 @@ LV2Plugin::latency_compute_run () + deactivate (); + } + +-LilvPort* ++const LilvPort* + LV2Plugin::designated_input (const char* uri, void** bufptrs[], void** bufptr) + { +- LilvPort* port = NULL; ++ const LilvPort* port = NULL; + #ifdef HAVE_NEW_LILV + LilvNode* designation = lilv_new_uri(_world.world, uri); + port = lilv_plugin_get_port_by_designation( diff --git a/audio/ardour/tempoline_crash.patch b/audio/ardour/tempoline_crash.patch new file mode 100644 index 0000000000..cd93b1531b --- /dev/null +++ b/audio/ardour/tempoline_crash.patch @@ -0,0 +1,83 @@ +commit b29f54fb6efcdb2facf0471bd8e24d8eea3231b0 +Author: Paul Davis <paul@linuxaudiosystems.com> +Date: Wed Feb 20 18:53:30 2013 +0000 + + back-port tempo line assert fix from 3.0 to stop crashing under some relatively easy to hit conditions + + git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@14067 d708f5d6-7413-0410-9779-e7cbd77b26cf + +diff --git a/gtk2_ardour/tempo_lines.cc b/gtk2_ardour/tempo_lines.cc +index e8bd034..a373dec 100644 +--- a/gtk2_ardour/tempo_lines.cc ++++ b/gtk2_ardour/tempo_lines.cc +@@ -146,9 +146,8 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit + } + + xpos = rint(((nframes64_t)(*i).frame) / (double)frames_per_unit); +- if (inserted_last_time && !_lines.empty()) { +- li = _lines.lower_bound(xpos); // first line >= xpos +- } ++ ++ li = _lines.lower_bound(xpos); // first line >= xpos + + line = (li != _lines.end()) ? li->second : NULL; + assert(!line || line->property_x1() == li->first); +@@ -215,33 +214,35 @@ TempoLines::draw (ARDOUR::TempoMap::BBTPointList& points, double frames_per_unit + // Create a new line + } else if (_lines.size() < needed || _lines.size() < MAX_CACHED_LINES) { + //cout << "*** CREATING LINE" << endl; +- assert(_lines.find(xpos) == _lines.end()); +- line = new ArdourCanvas::SimpleLine (*_group); +- line->property_x1() = xpos; +- line->property_x2() = xpos; +- line->property_y1() = 0.0; +- line->property_y2() = _height; +- line->property_color_rgba() = color; +- _lines.insert(make_pair(xpos, line)); +- inserted_last_time = true; ++ if (_lines.find(xpos) == _lines.end()) { ++ line = new ArdourCanvas::SimpleLine (*_group); ++ line->property_x1() = xpos; ++ line->property_x2() = xpos; ++ line->property_y1() = 0.0; ++ line->property_y2() = _height; ++ line->property_color_rgba() = color; ++ _lines.insert(make_pair(xpos, line)); ++ inserted_last_time = true; ++ } + + // Steal from the left + } else { + //cout << "*** STEALING FROM LEFT" << endl; +- assert(_lines.find(xpos) == _lines.end()); +- Lines::iterator steal = _lines.begin(); +- line = steal->second; +- _lines.erase(steal); +- line->property_color_rgba() = color; +- line->property_x1() = xpos; +- line->property_x2() = xpos; +- _lines.insert(make_pair(xpos, line)); +- inserted_last_time = true; // search next time +- invalidated = true; +- +- // Shift clean range right +- _clean_left = max(_clean_left, steal->first); +- _clean_right = max(_clean_right, xpos); ++ if (_lines.find(xpos) == _lines.end()) { ++ Lines::iterator steal = _lines.begin(); ++ line = steal->second; ++ _lines.erase(steal); ++ line->property_color_rgba() = color; ++ line->property_x1() = xpos; ++ line->property_x2() = xpos; ++ _lines.insert(make_pair(xpos, line)); ++ inserted_last_time = true; // search next time ++ invalidated = true; ++ ++ // Shift clean range right ++ _clean_left = max(_clean_left, steal->first); ++ _clean_right = max(_clean_right, xpos); ++ } + } + + break; |