media-sound/ardour: dropped obsolete 8.12-r2

Bug: https://bugs.gentoo.org/977277
Closes: https://bugs.gentoo.org/974186
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
This commit is contained in:
Miroslav Šulc
2026-06-28 18:44:35 +02:00
parent 520bbafd86
commit e5aec7d609
5 changed files with 0 additions and 400 deletions

View File

@@ -1,3 +1,2 @@
DIST Ardour-8.12.0.tar.bz2 17816405 BLAKE2B 7826081746c0c4d7fd5076b681fa2fdff204af26f2af82bb048294cc916eb1a33999a8f7900edc28984868f4941cbf9d8ba1caba38e5359f4b0077e82d905834 SHA512 cc74ea3a7faa43d0620fac3e251c9f765b3bb61756a90966756245eb9acca59b043605ccb0e4d5a6165f65e1be3c63ca738b84f6613d705236b5f787bc11de53
DIST Ardour-9.2.0.tar.bz2 18038842 BLAKE2B fc0668132291e015d2bb075e925a1e5b4922e415ea74affccc9b3af983b6a2f7f67a0582c5b53ca2231236f8dc4bd2c887885c172bd6710829ad5d5614be2a84 SHA512 f4d86dba07d7a3846411890e24f9cdf3d3ea4fbd8e5a575f56a3620859630fc96c1105b047024982f719d753729527f4d752414b443d56d2be6a70277b9dfa9a
DIST Ardour-9.7.0.tar.bz2 18118247 BLAKE2B f49ba1a35fa24054e97aff584ab8d489e21e925f5db4b19befb3a44dfe11043f4cd3a5a209db50b03abe5e66e0d08272bf0b307d4f9837e4c64b437d161fa85f SHA512 4cb155c413cbc29687d303f8d666ac5ca0481b859ae868753ec57480ca957b4fb61ebb012066069b47195f990bcff66158e0ce9f7783ec7d882d818f4dfc484e

View File

@@ -1,241 +0,0 @@
# Copyright 1999-2026 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 "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
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 "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."
}

View File

@@ -1,123 +0,0 @@
From f17a6562174ccf658eb35ba7a425d3ac340c1607 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Mon, 4 Nov 2024 18:46:21 +0100
Subject: [PATCH] use modern C++ for snprintf (#9841)
This replaces vector<char>::operator[] (which now
a constexpr since C++20). We could use &vector::data(),
but a unique_ptr seems more appropriate for the case at hand.
--- a/libs/ardour/broadcast_info.cc
+++ b/libs/ardour/broadcast_info.cc
@@ -39,15 +39,15 @@ namespace ARDOUR
static void
snprintf_bounded_null_filled (char* target, size_t target_size, char const * fmt, ...)
{
- std::vector<char> buf(target_size+1);
+ std::unique_ptr<char[]> buf (new char [target_size + 1]);
va_list ap;
va_start (ap, fmt);
- vsnprintf (&buf[0], target_size+1, fmt, ap);
+ vsnprintf (buf.get (), target_size+1, fmt, ap);
va_end (ap);
memset (target, 0, target_size);
- memcpy (target, &buf[0], target_size);
+ memcpy (target, buf.get (), target_size);
}
--- a/libs/ardour/export_graph_builder.cc
+++ b/libs/ardour/export_graph_builder.cc
@@ -796,9 +796,9 @@ ExportGraphBuilder::Intermediate::Intermediate (ExportGraphBuilder & parent, Fil
int format = ExportFormatBase::F_RAW | ExportFormatBase::SF_Float;
if (parent._realtime) {
- tmp_file.reset (new TmpFileRt<float> (&tmpfile_path_buf[0], format, channels, config.format->sample_rate()));
+ tmp_file.reset (new TmpFileRt<float> (tmpfile_path_buf.data (), format, channels, config.format->sample_rate()));
} else {
- tmp_file.reset (new TmpFileSync<float> (&tmpfile_path_buf[0], format, channels, config.format->sample_rate()));
+ tmp_file.reset (new TmpFileSync<float> (tmpfile_path_buf.data (), format, channels, config.format->sample_rate()));
}
tmp_file->FileWritten.connect_same_thread (post_processing_connection,
--- a/libs/ardour/io.cc
+++ b/libs/ardour/io.cc
@@ -1338,7 +1338,6 @@ IO::bundle_changed (Bundle::Change /*c*/)
string
IO::build_legal_port_name (std::shared_ptr<PortSet const> ports, DataType type)
{
- const int name_size = AudioEngine::instance()->port_name_size();
int limit;
string suffix;
@@ -1372,21 +1371,24 @@ IO::build_legal_port_name (std::shared_ptr<PortSet const> ports, DataType type)
// allow up to 4 digits for the output port number, plus the slash, suffix and extra space
+ uint32_t name_size = AudioEngine::instance()->port_name_size();
limit = name_size - AudioEngine::instance()->my_name().length() - (suffix.length() + 5);
- std::vector<char> buf1(name_size+1);
- std::vector<char> buf2(name_size+1);
+ ++name_size; // allow for \0
+
+ std::unique_ptr<char[]> buf1 (new char[name_size]);
+ std::unique_ptr<char[]> buf2 (new char[name_size]);
/* colons are illegal in port names, so fix that */
string nom = legalize_io_name (_name.val());
- snprintf (&buf1[0], name_size+1, ("%.*s/%s"), limit, nom.c_str(), suffix.c_str());
+ std::snprintf (buf1.get(), name_size, ("%.*s/%s"), limit, nom.c_str(), suffix.c_str());
- int port_number = find_port_hole (ports, &buf1[0]);
- snprintf (&buf2[0], name_size+1, "%s %d", &buf1[0], port_number);
+ int port_number = find_port_hole (ports, buf1.get ());
+ std::snprintf (buf2.get(), name_size, "%s %d", buf1.get (), port_number);
- return string (&buf2[0]);
+ return string (buf2.get ());
}
int32_t
@@ -1400,17 +1402,17 @@ IO::find_port_hole (std::shared_ptr<PortSet const> ports, const char* base)
return 1;
}
- /* we only allow up to 4 characters for the port number
- */
+ uint32_t const name_size = AudioEngine::instance()->port_name_size() + 1;
+ /* we only allow up to 4 characters for the port number */
for (n = 1; n < 9999; ++n) {
- std::vector<char> buf (AudioEngine::instance()->port_name_size());
PortSet::const_iterator i = ports->begin ();
- snprintf (&buf[0], buf.size()+1, _("%s %u"), base, n);
+ std::unique_ptr<char[]> buf (new char[name_size]);
+ std::snprintf (buf.get (), name_size, "%s %u", base, n);
for ( ; i != ports->end (); ++i) {
- if (string (i->name()) == string (&buf[0])) {
+ if (string (i->name()) == string (buf.get ())) {
break;
}
}
@@ -1526,13 +1528,13 @@ IO::bundle_channel_name (uint32_t c, uint32_t n, DataType t) const
case 2:
return c == 0 ? _("L") : _("R");
default:
- snprintf (buf, sizeof(buf), "%d", (c + 1));
+ std::snprintf (buf, sizeof(buf), "%d", (c + 1));
return buf;
}
} else {
- snprintf (buf, sizeof(buf), "%d", (c + 1));
+ std::snprintf (buf, sizeof(buf), "%d", (c + 1));
return buf;
}

View File

@@ -1,19 +0,0 @@
From 02fde5f1aa3997d880f185c2083707e8715cfa59 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Wed, 6 Nov 2024 04:07:01 +0100
Subject: [PATCH] Fix unlikely buffer overflow #9845
> warning: 'sscanf' may overflow; destination buffer in argument 6
> has size 32, but the corresponding specifier may require size 33
> [-Wfortify-source]
--- a/gtk2_ardour/transcode_ffmpeg.cc
+++ b/gtk2_ardour/transcode_ffmpeg.cc
@@ -192,7 +192,7 @@ TranscodeFfmpeg::probe ()
PARSE_FRACTIONAL_FPS (timebase)
} else if (key == X_("timecode") && m_duration == 0 && m_fps > 0) {
int h, m, s;
- char f[32];
+ char f[33];
if (sscanf (i->at (16).c_str (), "%d:%d:%d:%32s", &h, &m, &s, f) == 4) {
m_duration = (ARDOUR::samplecnt_t)floor (m_fps * (h * 3600.0 + m * 60.0 + s * 1.0 + atoi (f) / pow ((double)10, (int)strlen (f))));
}

View File

@@ -1,16 +0,0 @@
From ba4d9709c6e442ee57329fd592d48fc98ea0b937 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Wed, 6 Nov 2024 04:07:25 +0100
Subject: [PATCH] Properly check for syscall (#9845)
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -355,7 +355,7 @@ def configure(conf):
features = 'c',
mandatory = False,
execute = False,
- fragment = "#include <sys/syscall.h>\nint main () { syscall(SYS_ioprio_set, 1, 0, 8192); return 0; }")
+ fragment = "#include <unistd.h>\n#include <sys/syscall.h>\nint main () { syscall(SYS_ioprio_set, 1, 0, 8192); return 0; }")
if have_sys_ioprio:
conf.define('HAVE_IOPRIO', 1)