summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schuerch <nativemad@gentoo.org>2017-06-08 18:37:57 +0200
committerAndreas Schuerch <nativemad@gentoo.org>2017-06-08 18:37:57 +0200
commit2765addf0e7774f49bf4bb97f598a41c64c91d19 (patch)
tree7147d4e5ecffc19d771c296b36e5bd190e8dd0a7 /media-sound/ardour
parentsys-apps/openrc: 0.27.1 version bump (diff)
downloadgentoo-2765addf0e7774f49bf4bb97f598a41c64c91d19.tar.gz
gentoo-2765addf0e7774f49bf4bb97f598a41c64c91d19.tar.bz2
gentoo-2765addf0e7774f49bf4bb97f598a41c64c91d19.zip
media-sound/ardour: patch for old ardour on new gcc. Bug 620954
Package-Manager: Portage-2.3.5, Repoman-2.3.1
Diffstat (limited to 'media-sound/ardour')
-rw-r--r--media-sound/ardour/ardour-4.7-r2.ebuild139
-rw-r--r--media-sound/ardour/files/ardour-4.7-gcc.patch100
2 files changed, 239 insertions, 0 deletions
diff --git a/media-sound/ardour/ardour-4.7-r2.ebuild b/media-sound/ardour/ardour-4.7-r2.ebuild
new file mode 100644
index 000000000000..968572f28b59
--- /dev/null
+++ b/media-sound/ardour/ardour-4.7-r2.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE='threads(+)'
+#EPYTHON='python2.7'
+inherit eutils toolchain-funcs flag-o-matic python-any-r1 waf-utils
+
+DESCRIPTION="Digital Audio Workstation"
+HOMEPAGE="http://ardour.org/"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="http://git.ardour.org/ardour/ardour.git"
+ inherit git-r3
+else
+ KEYWORDS="~amd64 ~x86"
+ SRC_URI="https://github.com/Ardour/ardour/archive/${PV}.tar.gz -> ${P}.tar.gz"
+fi
+
+LICENSE="GPL-2"
+SLOT="4"
+IUSE="altivec doc jack lv2 cpu_flags_x86_sse cpu_flags_x86_mmx cpu_flags_x86_3dnow"
+
+RDEPEND="
+ >=dev-cpp/glibmm-2.32.0
+ >=dev-cpp/gtkmm-2.16:2.4
+ >=dev-cpp/libgnomecanvasmm-2.26:2.6
+ dev-libs/boost:=
+ >=dev-libs/glib-2.10.1:2
+ dev-libs/libsigc++:2
+ >=dev-libs/libxml2-2.6:2
+ dev-libs/libxslt
+ >=gnome-base/libgnomecanvas-2
+ media-libs/alsa-lib
+ media-libs/aubio
+ media-libs/flac
+ media-libs/freetype:2
+ media-libs/libart_lgpl
+ media-libs/liblo
+ >=media-libs/liblrdf-0.4.0-r20
+ >=media-libs/libsamplerate-0.1
+ >=media-libs/libsndfile-1.0.18
+ >=media-libs/libsoundtouch-1.6.0
+ media-libs/raptor:2
+ >=media-libs/rubberband-1.6.0
+ >=media-libs/taglib-1.7
+ media-libs/vamp-plugin-sdk
+ net-misc/curl
+ sci-libs/fftw:3.0
+ virtual/libusb:0
+ x11-libs/cairo
+ >=x11-libs/gtk+-2.8.1:2
+ x11-libs/pango
+ jack? ( virtual/jack )
+ lv2? (
+ >=media-libs/slv2-0.6.1
+ media-libs/lilv
+ media-libs/sratom
+ dev-libs/sord
+ >=media-libs/suil-0.6.10
+ >=media-libs/lv2-1.4.0
+ )"
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ jack? ( virtual/jack )
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen[dot] )"
+
+pkg_setup() {
+ if has_version \>=dev-libs/libsigc++-2.6 ; then
+ append-cxxflags -std=c++11
+ fi
+ python-any-r1_pkg_setup
+}
+
+src_prepare(){
+ if ! [[ ${PV} == *9999* ]]; then
+ epatch "${FILESDIR}"/${PN}-4.x-revision-naming.patch
+ epatch "${FILESDIR}"/${PN}-4.7-gcc.patch
+ touch "${S}/libs/ardour/revision.cc"
+ fi
+ use lv2 || epatch "${FILESDIR}"/${PN}-4.0-lv2.patch
+ sed 's/'full-optimization\'\ :\ \\[.*'/'full-optimization\'\ :\ \'\','/' -i "${S}"/wscript || die
+ MARCH=$(get-flag march)
+ OPTFLAGS=""
+ if use cpu_flags_x86_sse; then
+ if [[ ${MARCH} == "i686" ]] || [[ ${MARCH} == "i486" ]]; then
+ elog "You enabled sse but use an march that does not support sse!"
+ elog "We add -msse to the flags now, but please consider switching your march in make.conf!"
+ fi
+ OPTFLAGS="sse"
+ fi
+ if use cpu_flags_x86_mmx; then
+ if [[ ${MARCH} == "i486" ]]; then
+ elog "You enabled mmx with i486 set as march! You have been warned!"
+ fi
+ OPTFLAGS="${OPTFLAGS} mmx"
+ fi
+ if use cpu_flags_x86_3dnow; then
+ OPTFLAGS="${OPTFLAGS} 3dnow"
+ fi
+ sed 's/flag_line\ =\ o.*/flag_line\ =\ \": '"${OPTFLAGS}"' just some place holders\"/' \
+ -i "${S}"/wscript || die
+ sed 's/cpu\ ==\ .*/cpu\ ==\ "LeaveMarchAsIs":/' -i "${S}"/wscript || die
+ append-flags "-lboost_system"
+ python_fix_shebang "${S}"/wscript
+ python_fix_shebang "${S}"/waf
+}
+
+src_configure() {
+ tc-export CC CXX
+ mkdir -p "${D}"
+ waf-utils_src_configure \
+ --destdir="${D}" \
+ --prefix=/usr \
+ --configdir=/etc \
+ --nls \
+ --optimize \
+ $(usex jack "--with-backends=alsa,jack" "--with-backends=alsa --libjack=weak") \
+ $(usex lv2 "--lv2" "--no-lv2") \
+ $(usex doc "--docs" '') \
+ $({ use altivec || use cpu_flags_x86_sse; } && echo "--fpu-optimization" || echo "--no-fpu-optimization")
+}
+
+src_install() {
+ waf-utils_src_install
+ mv ${PN}.1 ${PN}${SLOT}.1
+ doman ${PN}${SLOT}.1
+ newicon icons/icon/ardour_icon_tango_48px_red.png ${PN}${SLOT}.png
+ make_desktop_entry ardour4 ardour4 ardour4 AudioVideo
+}
+
+pkg_postinst() {
+ elog "If you are using Ardour and want to keep its development alive"
+ elog "then please consider to make a donation upstream at ${HOMEPAGE}"
+}
diff --git a/media-sound/ardour/files/ardour-4.7-gcc.patch b/media-sound/ardour/files/ardour-4.7-gcc.patch
new file mode 100644
index 000000000000..685eb2ab1178
--- /dev/null
+++ b/media-sound/ardour/files/ardour-4.7-gcc.patch
@@ -0,0 +1,100 @@
+--- libs/gtkmm2ext/actions.cc.old 2016-02-19 02:28:56.000000000 +0100
++++ libs/gtkmm2ext/actions.cc 2017-06-05 03:32:48.762688016 +0200
+@@ -401,7 +401,7 @@
+ gtkmm2.6, so we fall back to the C level.
+ */
+
+- if (ui_manager == 0) {
++ if (ui_manager == (Glib::RefPtr<Gtk::UIManager>) 0) {
+ return RefPtr<Action> ();
+ }
+
+--- libs/gtkmm2ext/fastmeter.cc.old 2016-02-19 02:28:56.000000000 +0100
++++ libs/gtkmm2ext/fastmeter.cc 2017-06-05 05:01:57.075834979 +0200
+@@ -731,7 +731,7 @@
+
+ Glib::RefPtr<Gdk::Window> win;
+
+- if ((win = get_window()) == 0) {
++ if ((win = get_window()) == (Glib::RefPtr<Gdk::Window>) 0) {
+ queue_draw ();
+ return;
+ }
+
+--- gtk2_ardour/editor.cc.old 2016-02-19 02:28:56.000000000 +0100
++++ gtk2_ardour/editor.cc 2017-06-05 05:38:20.971481110 +0200
+@@ -714,16 +714,16 @@
+ list<Glib::RefPtr<Gdk::Pixbuf> > window_icons;
+ Glib::RefPtr<Gdk::Pixbuf> icon;
+
+- if ((icon = ::get_icon ("ardour_icon_16px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_16px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_22px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_22px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_32px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_32px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_48px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_48px")) {
+ window_icons.push_back (icon);
+ }
+ if (!window_icons.empty()) {
+
+--- gtk2_ardour/fft_graph.cc.old 2016-02-19 02:28:56.000000000 +0100
++++ gtk2_ardour/fft_graph.cc 2017-06-05 06:21:56.644212996 +0200
+@@ -203,7 +203,7 @@
+
+
+
+- if (graph_gc == 0) {
++ if (graph_gc == (Glib::RefPtr<Gdk::GC>) 0) {
+ graph_gc = GC::create( get_window() );
+ }
+
+@@ -213,7 +213,7 @@
+
+ graph_gc->set_rgb_fg_color( grey );
+
+- if (layout == 0) {
++ if (layout == (Glib::RefPtr<Pango::Layout>) 0) {
+ layout = create_pango_layout ("");
+ layout->set_font_description (get_style()->get_font());
+ }
+
+--- gtk2_ardour/startup.cc.old 2016-02-19 02:28:56.000000000 +0100
++++ gtk2_ardour/startup.cc 2017-06-05 06:41:27.091051601 +0200
+@@ -79,23 +79,23 @@
+ set_position (WIN_POS_CENTER);
+ set_border_width (12);
+
+- if ((icon_pixbuf = ::get_icon ("ardour_icon_48px")) == 0) {
++ if ((icon_pixbuf = ::get_icon ("ardour_icon_48px")) == (Glib::RefPtr<Gdk::Pixbuf>) 0) {
+ throw failed_constructor();
+ }
+
+ list<Glib::RefPtr<Gdk::Pixbuf> > window_icons;
+ Glib::RefPtr<Gdk::Pixbuf> icon;
+
+- if ((icon = ::get_icon ("ardour_icon_16px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_16px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_22px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_22px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_32px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_32px")) {
+ window_icons.push_back (icon);
+ }
+- if ((icon = ::get_icon ("ardour_icon_48px")) != 0) {
++ if (icon = ::get_icon ("ardour_icon_48px")) {
+ window_icons.push_back (icon);
+ }
+ if (!window_icons.empty ()) {
+