commit:     9347b98112e75fdb803d073f983614cb2ef116a3
Author:     Sv. Lockal <lockalsash <AT> gmail <DOT> com>
AuthorDate: Fri Jan 10 16:35:09 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Apr 24 18:14:55 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9347b981

dev-cpp/opentelemetry-cpp: fix build with clang, gcc-15 and [prometheus]

Closes: https://bugs.gentoo.org/946146
Closes: https://bugs.gentoo.org/946807
Signed-off-by: Sv. Lockal <lockalsash <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/40088
Closes: https://github.com/gentoo/gentoo/pull/40088
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/opentelemetry-cpp-1.16.1-cstdint.patch   | 14 +++++++
 ...entelemetry-cpp-1.16.1-fix-clang-template.patch | 43 ++++++++++++++++++++++
 .../opentelemetry-cpp-1.16.1.ebuild                |  9 ++++-
 3 files changed, 64 insertions(+), 2 deletions(-)

diff --git 
a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-cstdint.patch 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-cstdint.patch
new file mode 100644
index 000000000000..65fc5baf0f80
--- /dev/null
+++ b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-cstdint.patch
@@ -0,0 +1,14 @@
+Fix compilation with gcc-15.
+Bug: https://bugs.gentoo.org/946146
+Upstream PR: https://github.com/open-telemetry/opentelemetry-cpp/pull/3240
+--- a/api/include/opentelemetry/logs/severity.h
++++ b/api/include/opentelemetry/logs/severity.h
+@@ -3,6 +3,8 @@
+ 
+ #pragma once
+ 
++#include <cstdint>
++
+ #include "opentelemetry/nostd/string_view.h"
+ #include "opentelemetry/version.h"
+ 

diff --git 
a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-fix-clang-template.patch
 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-fix-clang-template.patch
new file mode 100644
index 000000000000..85d013227a32
--- /dev/null
+++ 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.16.1-fix-clang-template.patch
@@ -0,0 +1,43 @@
+Fix clang-19 error: a template argument list is expected after a name prefixed 
by the template keyword
+Upstream PR: https://github.com/open-telemetry/opentelemetry-cpp/pull/3133
+--- a/api/include/opentelemetry/logs/event_logger.h
++++ b/api/include/opentelemetry/logs/event_logger.h
+@@ -65,9 +65,8 @@ class EventLogger
+     }
+     nostd::unique_ptr<LogRecord> log_record = 
delegate_logger->CreateLogRecord();
+ 
+-    IgnoreTraitResult(
+-        detail::LogRecordSetterTrait<typename 
std::decay<ArgumentType>::type>::template Set(
+-            log_record.get(), std::forward<ArgumentType>(args))...);
++    IgnoreTraitResult(detail::LogRecordSetterTrait<typename 
std::decay<ArgumentType>::type>::Set(
++        log_record.get(), std::forward<ArgumentType>(args))...);
+ 
+     EmitEvent(event_name, std::move(log_record));
+   }
+--- a/api/include/opentelemetry/logs/logger.h
++++ b/api/include/opentelemetry/logs/logger.h
+@@ -72,9 +72,8 @@ class Logger
+       return;
+     }
+ 
+-    IgnoreTraitResult(
+-        detail::LogRecordSetterTrait<typename 
std::decay<ArgumentType>::type>::template Set(
+-            log_record.get(), std::forward<ArgumentType>(args))...);
++    IgnoreTraitResult(detail::LogRecordSetterTrait<typename 
std::decay<ArgumentType>::type>::Set(
++        log_record.get(), std::forward<ArgumentType>(args))...);
+ 
+     EmitLogRecord(std::move(log_record));
+   }
+--- a/api/include/opentelemetry/logs/logger_type_traits.h
++++ b/api/include/opentelemetry/logs/logger_type_traits.h
+@@ -166,8 +166,8 @@ struct LogRecordSetterTrait
+                 * = nullptr>
+   inline static LogRecord *Set(LogRecord *log_record, ArgumentType &&arg) 
noexcept
+   {
+-    return LogRecordSetterTrait<common::KeyValueIterable>::template Set(
+-        log_record, std::forward<ArgumentType>(arg));
++    return LogRecordSetterTrait<common::KeyValueIterable>::Set(log_record,
++                                                               
std::forward<ArgumentType>(arg));
+   }
+ 
+   template <class ArgumentType,

diff --git a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.16.1.ebuild 
b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.16.1.ebuild
index aff74e33e519..77c626523688 100644
--- a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.16.1.ebuild
+++ b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.16.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -23,6 +23,9 @@ RDEPEND="
 "
 DEPEND="
        ${RDEPEND}
+       prometheus? (
+               dev-cpp/prometheus-cpp
+       )
        test? (
                dev-cpp/gtest
                dev-cpp/benchmark
@@ -33,7 +36,9 @@ RESTRICT="!test? ( test )"
 
 PATCHES=(
        # remove tests the need network
-       "${FILESDIR}/opentelemetry-cpp-1.5.0-tests.patch"
+       "${FILESDIR}/${PN}-1.5.0-tests.patch"
+       "${FILESDIR}/${PN}-1.16.1-cstdint.patch"
+       "${FILESDIR}/${PN}-1.16.1-fix-clang-template.patch"
 )
 
 src_configure() {

Reply via email to