diff options
author | Andreas Schuerch <nativemad@gentoo.org> | 2017-06-08 18:37:57 +0200 |
---|---|---|
committer | Andreas Schuerch <nativemad@gentoo.org> | 2017-06-08 18:37:57 +0200 |
commit | 2765addf0e7774f49bf4bb97f598a41c64c91d19 (patch) | |
tree | 7147d4e5ecffc19d771c296b36e5bd190e8dd0a7 /media-sound/ardour | |
parent | sys-apps/openrc: 0.27.1 version bump (diff) | |
download | gentoo-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.ebuild | 139 | ||||
-rw-r--r-- | media-sound/ardour/files/ardour-4.7-gcc.patch | 100 |
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 ()) { + |