mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-16 14:29:05 -07:00
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:
@@ -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
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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))));
|
||||
}
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user