aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/ardour/ardour.SlackBuild8
-rw-r--r--audio/ardour/ardour.info6
-rw-r--r--audio/ardour/lilv.patch38
-rw-r--r--audio/ardour/tempoline_crash.patch83
4 files changed, 130 insertions, 5 deletions
diff --git a/audio/ardour/ardour.SlackBuild b/audio/ardour/ardour.SlackBuild
index 078707d94448..51b7dc11b4bb 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 1afd28ee759d..5fc8e6f91442 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 000000000000..cf5abec24e1b
--- /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 000000000000..cd93b1531beb
--- /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;