Skip to content

Commit

Permalink
media-sound/ardour: patch for old ardour on new gcc. Bug 620954
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.5, Repoman-2.3.1
  • Loading branch information
Andreas Schuerch committed Jun 8, 2017
1 parent 1897299 commit 2765add
Show file tree
Hide file tree
Showing 2 changed files with 239 additions and 0 deletions.
139 changes: 139 additions & 0 deletions media-sound/ardour/ardour-4.7-r2.ebuild
Original file line number Diff line number Diff line change
@@ -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}"
}
100 changes: 100 additions & 0 deletions media-sound/ardour/files/ardour-4.7-gcc.patch
Original file line number Diff line number Diff line change
@@ -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 ()) {

0 comments on commit 2765add

Please sign in to comment.