mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
Ardour uses it as default if installed Bug: https://bugs.gentoo.org/966074 Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/44943 Closes: https://github.com/gentoo/gentoo/pull/44943 Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
233 lines
5.7 KiB
Bash
233 lines
5.7 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{11..13} )
|
|
PYTHON_REQ_USE='threads(+)'
|
|
inherit desktop edo flag-o-matic optfeature python-any-r1 waf-utils toolchain-funcs xdg
|
|
|
|
DESCRIPTION="Digital Audio Workstation"
|
|
HOMEPAGE="https://ardour.org/"
|
|
|
|
if [[ ${PV} == *9999* ]]; then
|
|
# Main repo not stable
|
|
#EGIT_REPO_URI="https://git.ardour.org/ardour/ardour.git"
|
|
EGIT_REPO_URI="https://github.com/Ardour/ardour.git"
|
|
inherit git-r3
|
|
else
|
|
# We previously had 8.12 instead of 8.12.0 despite SRC_URI + S
|
|
[[ ${PV} != 8.12 ]] && die "Please fix the version to be X.Y.Z instead of X.Y on this next bump!"
|
|
# upstream doesn't provide a release tarball in github repo
|
|
# see https://github.com/Ardour/ardour/blob/master/README-GITHUB.txt
|
|
# official link is available here, but with token/expiration:
|
|
# https://community.ardour.org/download?architecture=x86_64&type=source
|
|
SRC_URI="https://dev.gentoo.org/~fordfrog/distfiles/Ardour-${PV}.0.tar.bz2"
|
|
S="${WORKDIR}/Ardour-${PV}.0"
|
|
KEYWORDS="~amd64 ~loong ~x86"
|
|
fi
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="9"
|
|
IUSE="doc jack phonehome pulseaudio test"
|
|
CPU_USE=(
|
|
cpu_flags_x86_{avx,avx512f,fma3,sse}
|
|
)
|
|
IUSE+=" ${CPU_USE[@]}"
|
|
RESTRICT="!test? ( test )"
|
|
|
|
RDEPEND="
|
|
app-arch/libarchive:=
|
|
dev-cpp/cairomm:0[X]
|
|
dev-cpp/glibmm:2
|
|
dev-cpp/pangomm:1.4
|
|
dev-libs/glib:2
|
|
dev-libs/libsigc++:2
|
|
dev-libs/libxml2:2=
|
|
media-libs/alsa-lib
|
|
media-libs/aubio:=
|
|
media-libs/flac
|
|
media-libs/fontconfig
|
|
media-libs/freetype:2
|
|
media-libs/liblo
|
|
media-libs/liblrdf
|
|
media-libs/libpng:=
|
|
media-libs/libsamplerate
|
|
media-libs/libsndfile
|
|
media-libs/lilv
|
|
media-libs/lv2
|
|
media-libs/raptor:2
|
|
media-libs/rubberband:=
|
|
media-libs/taglib:=
|
|
media-libs/vamp-plugin-sdk
|
|
net-libs/libwebsockets:=
|
|
net-misc/curl
|
|
sys-apps/dbus
|
|
sys-libs/readline:0=
|
|
sci-libs/fftw:3.0=[threads]
|
|
virtual/libusb:1
|
|
x11-libs/cairo[X]
|
|
x11-libs/libX11
|
|
x11-libs/libXext
|
|
x11-libs/libXinerama
|
|
x11-libs/libXrandr
|
|
x11-libs/pango
|
|
x11-themes/hicolor-icon-theme
|
|
jack? ( virtual/jack )
|
|
pulseaudio? ( media-libs/libpulse )
|
|
"
|
|
# media-libs/suil[X,gtk2] bundled suil is used, maybe probably because of ytk
|
|
# !bundled-libs? ( media-sound/fluidsynth ) at least libltc is missing to be able to unbundle...
|
|
DEPEND="
|
|
${RDEPEND}
|
|
dev-libs/boost
|
|
dev-libs/sord
|
|
media-libs/sratom
|
|
x11-libs/libXi
|
|
test? ( dev-util/cppunit )
|
|
"
|
|
BDEPEND="
|
|
${PYTHON_DEPS}
|
|
dev-util/itstool
|
|
sys-devel/gettext
|
|
virtual/pkgconfig
|
|
doc? (
|
|
app-text/doxygen
|
|
media-gfx/graphviz
|
|
)
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}/${PN}-8.12-fix_fpu.patch"
|
|
# see bug #966219
|
|
"${FILESDIR}/${PN}-8.12-fix_fftranscode.patch"
|
|
)
|
|
|
|
src_prepare() {
|
|
default
|
|
|
|
local optflags=(
|
|
$(usev cpu_flags_x86_sse sse)
|
|
)
|
|
# these flags imply sse and avx
|
|
if use cpu_flags_x86_sse && use cpu_flags_x86_avx; then
|
|
optflags+=(
|
|
avx
|
|
$(usev cpu_flags_x86_avx512f avx512f)
|
|
$(usev cpu_flags_x86_fma3 fma)
|
|
)
|
|
fi
|
|
|
|
# use only flags defined by users
|
|
sed 's/flag_line = o.*/flag_line = \": '"${optflags[*]}"'\"/' \
|
|
-i wscript || die
|
|
|
|
# shebang
|
|
python_fix_shebang wscript
|
|
python_fix_shebang waf
|
|
|
|
# fix hardcoded cpp, apply `gcc -E` needs patching but will fail w/ clang
|
|
tc-export CPP
|
|
sed -e "s@obj.command = 'cpp'@obj.command = '${CPP/-gcc -E/-cpp}'@" \
|
|
-i gtk2_ardour/wscript || die
|
|
|
|
# skip non-generic tests with failures
|
|
sed -e "\@'test/fpu_test.cc',@d" -i libs/ardour/wscript || die
|
|
}
|
|
|
|
src_configure() {
|
|
# avoid bug https://bugs.gentoo.org/800067
|
|
local -x AS="$(tc-getCC) -c"
|
|
|
|
# -Werror=odr
|
|
# https://tracker.ardour.org/view.php?id=9649
|
|
# https://bugs.gentoo.org/917095
|
|
filter-lto
|
|
|
|
append-ldflags -Wl,-rpath,"${EPREFIX}/usr/$(get_libdir)/ardour${SLOT}"
|
|
|
|
local backends=(
|
|
alsa
|
|
dummy
|
|
$(usev jack)
|
|
$(usev pulseaudio)
|
|
)
|
|
|
|
# VST support is enabled by default given --no-lxvst is not called.
|
|
# But please keep in mind the README (obsolete?) made by upstream.
|
|
# https://github.com/Ardour/ardour/blob/master/PACKAGER_README
|
|
tc-export CC CXX
|
|
local myconf=(
|
|
--configdir="${EPREFIX}"/etc
|
|
--cxx17
|
|
--freedesktop
|
|
--noconfirm
|
|
--optimize
|
|
--with-backends=$(IFS=','; echo "${backends[*]}")
|
|
$(usev !cpu_flags_x86_sse --no-fpu-optimization)
|
|
$(usev !phonehome --no-phone-home)
|
|
$(usev test --test)
|
|
# not possible right now --use-external-libs
|
|
# missing dependency: https://github.com/c4dm/qm-dsp
|
|
)
|
|
|
|
waf-utils_src_configure "${myconf[@]}"
|
|
}
|
|
|
|
src_compile() {
|
|
waf-utils_src_compile
|
|
waf-utils_src_compile i18n
|
|
if use doc; then
|
|
pushd doc >/dev/null || die
|
|
doxygen -u Doxyfile || die
|
|
doxygen Doxyfile || die
|
|
find . \( -iname '*.map' -o -iname '*.md5' \) -delete || die
|
|
popd >/dev/null || die
|
|
fi
|
|
}
|
|
|
|
src_test() {
|
|
pushd "${S}"/libs/ardour/ >/dev/null || die
|
|
edo ./run-tests.sh
|
|
popd >/dev/null || die
|
|
}
|
|
|
|
src_install() {
|
|
use doc && local HTML_DOCS=( doc/html/. )
|
|
|
|
waf-utils_src_install
|
|
|
|
mv ${PN}.1 ${PN}${SLOT}.1 || die
|
|
doman ${PN}${SLOT}.1
|
|
|
|
local s
|
|
for s in 16 22 32 48 256 512; do
|
|
newicon -s ${s} gtk2_ardour/resources/Ardour-icon_${s}px.png ardour${SLOT}.png
|
|
done
|
|
|
|
sed -i \
|
|
-e "s/\(^Name=\).*/\1Ardour ${SLOT}/" \
|
|
-e 's/;AudioEditing;/;X-AudioEditing;/' \
|
|
build/gtk2_ardour/ardour${SLOT}.desktop || die
|
|
domenu build/gtk2_ardour/ardour${SLOT}.desktop
|
|
|
|
insinto /usr/share/mime/packages
|
|
newins build/gtk2_ardour/ardour.xml ardour${SLOT}.xml
|
|
rm "${D}/usr/share/mime/packages/ardour.xml" || die
|
|
|
|
# the appdata directory is deprecated
|
|
# no patch because this causes the translation fail
|
|
mv "${ED}"/usr/share/{appdata,metainfo} || die
|
|
}
|
|
|
|
pkg_postinst() {
|
|
xdg_pkg_postinst
|
|
|
|
optfeature "another synth used by default if installed" media-plugins/gmsynth-lv2
|
|
optfeature "exporting audio in mp3" media-video/ffmpeg[lame]
|
|
|
|
elog "Please do _not_ report problems with the package to ${PN} upstream."
|
|
elog "If you think you've found a bug, check the upstream binary package"
|
|
elog "before you report anything to upstream."
|
|
}
|