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@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@gentoo.org>
This commit is contained in:
Sv. Lockal
2025-01-10 16:35:09 +00:00
committed by Sam James
parent 0fe6d8363a
commit 9347b98112
3 changed files with 64 additions and 2 deletions

View File

@@ -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"

View File

@@ -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,

View File

@@ -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() {