commit: 88adb5ef8e618fd95ea77bd34ae59ede4fec56e4 Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Thu Dec 4 05:38:56 2025 +0000 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org> CommitDate: Sun Dec 14 18:48:06 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88adb5ef
media-sound/ardour: sync with live ... except for libXi added with 9.0 and testsuite binaries that must be removed Bug: https://bugs.gentoo.org/733972 Closes: https://bugs.gentoo.org/966219 Closes: https://bugs.gentoo.org/967187 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/44943 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org> media-sound/ardour/ardour-8.12-r2.ebuild | 240 +++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) diff --git a/media-sound/ardour/ardour-8.12-r2.ebuild b/media-sound/ardour/ardour-8.12-r2.ebuild new file mode 100644 index 000000000000..91d86ecd8398 --- /dev/null +++ b/media-sound/ardour/ardour-8.12-r2.ebuild @@ -0,0 +1,240 @@ +# 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="8" +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 + 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}-9.0.0-fix-clang-crash.patch" + "${FILESDIR}/${PN}-9.0.0-properly-check-for-syscall.patch" + "${FILESDIR}/${PN}-9.0.0-fix-unlikely-buffer-overflow.patch" + "${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 "[email protected] = '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 + + if use test; then + # do not install the testsuite + rm "${ED}"/usr/bin/run-tests || die + rm "${ED}"/usr/$(get_libdir)/ardour${SLOT}/run-tests || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + 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." +}
