summaryrefslogtreecommitdiff
path: root/media-sound/ardour
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-11-05 03:03:37 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-11-05 03:03:37 +0000
commit564cd64dc5f2727c4df6aeb1bb51327503c84e78 (patch)
tree44f51d1887abfcdb7df61a570c2ffa0d6841d7db /media-sound/ardour
parent3cc82055be7dba177f4aea15af9f5414b532da7e (diff)
gentoo auto-resync : 05:11:2024 - 03:03:37
Diffstat (limited to 'media-sound/ardour')
-rw-r--r--media-sound/ardour/Manifest3
-rw-r--r--media-sound/ardour/ardour-8.10-r2.ebuild (renamed from media-sound/ardour/ardour-8.10-r1.ebuild)8
-rw-r--r--media-sound/ardour/files/ardour-9.0.0-fix-clang-crash.patch123
3 files changed, 126 insertions, 8 deletions
diff --git a/media-sound/ardour/Manifest b/media-sound/ardour/Manifest
index 4b02106702da..92033f8550a7 100644
--- a/media-sound/ardour/Manifest
+++ b/media-sound/ardour/Manifest
@@ -1,8 +1,9 @@
AUX ardour-6.8-boost-1.85.patch 750 BLAKE2B 9a86275431cb735b32b36a570450d4b5c035f1360c89e69d7d688171e299aea15128057f01dd905335c4fca68035a146cc54cd62b0aa163ec56ae06e545ca8ad SHA512 ad4888bbda5da5ba3e49ca751bdec34159fde01355e8dac3e23c968a8eeba4bce3228f43ef87977ee619c70063ef16e2383c6b7126213d88125222431f79574d
AUX ardour-6.8-metadata.patch 568 BLAKE2B 68bb84e5249d67e88e191dbc009b7f2b696d448903a2c7164778f4fda3b526370bd2562fa627faea832da2c115d61fe8ddccf6c54c016a7f68e5cab688868984 SHA512 1bf77b0cf2692e7051a524a049add8f22feb734120d9ae58ffcf06647e8ed28249dcbe2cd124eb2354897f119a2977c6124228fc37c15e476053dc5ea4b5033c
+AUX ardour-9.0.0-fix-clang-crash.patch 4511 BLAKE2B ad67f040fbb51f18f7feca562c6a741aad1d2e559820319e8eefb998198a78a59df61ef3ff2643be1f52f21c7e04570056af546229f395d1967f3de1d5a0fc0e SHA512 e98f83676b9c063e3a1abcd554f14e83dcfb2ff35525917dbf2e301947902ed51613826a08334df8e7a00847ff454bfdec3828176fba351075d85c28a7355319
DIST Ardour-8.10.0.tar.bz2 17811275 BLAKE2B 5a0edc68c707ae1659b080cf543a4a3dc3397c91366e5c5e3084fe0095d983ba1170acc1fde49dbd6abd1b05325e2117b79fcf96c1d5c84b24d5ecc76a39cd64 SHA512 744e4bc73e35a758fce46c0035a11b430b70aa77503446a0118aba62b86b62fb293be1418ec8cfc0e1495a3a005bb71445f48661d9302a3b5bacc1a7f6c2874b
DIST Ardour-8.7.0.tar.bz2 17807972 BLAKE2B 9bbe4ed5c3ad62d643518881a45b71642f5ce41c8620eb4c82befcb9df1053b08b60d3683961d78825f99e3a74222404c511073491972f138edaaaea445c6961 SHA512 cd2cdc1360b01d23cd3df62ee949ecab9d5d8da5112636438c2ef8a88d188503bcd7f09f2a5d8e07460dacbc35cecd96e8edbc748adccc50b5a90375f2f742d0
-EBUILD ardour-8.10-r1.ebuild 5272 BLAKE2B 52c0bba86ffb317e835ab53aa15dad0c0c44a52141caf218a63931c2d5457df1f4d50c280c471a79b85533a80a232a060abd91b7e209255547e19d04b56429dd SHA512 9030c756d44f3605c12a7fb99583a65edc50aff4bef6e49a0fe54c77ab71958baa0605e049a1b6ad995e554b9ff0be340442b165e55d278dc77ca0b42e8cdfeb
+EBUILD ardour-8.10-r2.ebuild 5197 BLAKE2B b751cab598b8160904d6e8089288f875d0ccec378690e8080e37a90fb45e305874325455f8cd6d1a8143571dd8c5c85365a0b493c39b57ea1340bf9242b4638a SHA512 cf0f3573274340d0d0a597e43066bfd2dfde85bc40899448c8fb7e9579cd36b4488ce0c41724baf8235ed4a7801a2fa01865fc1a8a69ec7965502d5b1feb77a2
EBUILD ardour-8.10.ebuild 5216 BLAKE2B 76147b3a790cccf26e6c7cb11305d2f50271f93abab3eb83d25c98559aced9ea0719e80240986d1adb0e6bf5adbf337b6422443babf2388f533aeb98a99dc188 SHA512 941298dfb89c7c86b100a4d127f8aa775b084f8c98cac7bba8d1e5a10a6922d8cb7828a5d16afd9896635e11b09bce653f3bc07bb8bb870953c1d142192a1ea1
EBUILD ardour-8.7.ebuild 5257 BLAKE2B 48899bdee879dd24d9530e2eadb4c89a03241a1c793e87bd8ff5df3cdd25e598bc73ae2cb4dae131bfd6607957e77b42ddf0d33e996949e10887a0b8cbd6047d SHA512 d37fb303db968c36017d1e6a4a296e534bfd6280bd25ef841f5fb556ebda5b87e6bbf3d8e4b47517c28d0f99573d6d6852a5c6801960a5309a2107be2e8b4552
EBUILD ardour-9999.ebuild 5150 BLAKE2B dc3d456ef39ed244244ceeafea10a6e6c841638f3c1b8a8608990f69d6e96fe10d822a3e59edb00d743090471d4c78461250189bac4838ac8144862a977090a9 SHA512 aed242f55912801b1ded17e06fd1c2666d11d2254c1d142bb8d8fd861742176922e391b095d063701fc26e0a76315d42913656832fa4a3e91d844625f786a1e5
diff --git a/media-sound/ardour/ardour-8.10-r1.ebuild b/media-sound/ardour/ardour-8.10-r2.ebuild
index 0f3b1f15c091..bb6ece851b94 100644
--- a/media-sound/ardour/ardour-8.10-r1.ebuild
+++ b/media-sound/ardour/ardour-8.10-r2.ebuild
@@ -71,6 +71,7 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-6.8-metadata.patch"
+ "${FILESDIR}/${PN}-9.0.0-fix-clang-crash.patch"
)
pkg_pretend() {
@@ -78,13 +79,6 @@ pkg_pretend() {
ewarn "Linking with gold linker might produce broken executable, see bug #733972"
}
-pkg_setup() {
- if has_version \>=dev-libs/libsigc++-2.6 ; then
- append-cxxflags -std=c++11
- fi
- python-any-r1_pkg_setup
-}
-
src_prepare() {
default
diff --git a/media-sound/ardour/files/ardour-9.0.0-fix-clang-crash.patch b/media-sound/ardour/files/ardour-9.0.0-fix-clang-crash.patch
new file mode 100644
index 000000000000..6162782d91f5
--- /dev/null
+++ b/media-sound/ardour/files/ardour-9.0.0-fix-clang-crash.patch
@@ -0,0 +1,123 @@
+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;
+
+ }