dev-cpp/opentelemetry-cpp: fixup old version

Handle gcc13, cmake4 and reliable tests.

Unfortunately this version has to stay for ceph

Bug: https://bugs.gentoo.org/895694
Signed-off-by: Alfred Wingate <parona@protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43853
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Alfred Wingate
2025-09-19 06:54:38 +03:00
committed by Sam James
parent 61c0c5361c
commit 30fe512985
4 changed files with 292 additions and 0 deletions

View File

@@ -0,0 +1,180 @@
https://github.com/open-telemetry/opentelemetry-cpp/commit/3f0eee6b9143d018f907e45d7035e36882f1ecb3
Removed non cmake changes
From 3f0eee6b9143d018f907e45d7035e36882f1ecb3 Mon Sep 17 00:00:00 2001
From: Tom Tan <Tom.Tan@microsoft.com>
Date: Wed, 23 Nov 2022 17:01:33 -0800
Subject: [PATCH] Add option WITH_BENCHMARK to disable building benchmarks
(#1794)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -164,6 +164,8 @@ option(WITH_NO_GETENV "Whether the platform supports environment variables" OFF)
option(BUILD_TESTING "Whether to enable tests" ON)
+option(WITH_BENCHMARK "Whether to build benchmark program" ON)
+
option(BUILD_W3CTRACECONTEXT_TEST "Whether to build w3c trace context" OFF)
option(OTELCPP_MAINTAINER_MODE "Build in maintainer mode (-Wall -Werror)" OFF)
@@ -478,8 +480,10 @@ if(BUILD_TESTING)
message("GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}")
message("GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}")
enable_testing()
- # Benchmark respects the CMAKE_PREFIX_PATH
- find_package(benchmark CONFIG REQUIRED)
+ if(WITH_BENCHMARK)
+ # Benchmark respects the CMAKE_PREFIX_PATH
+ find_package(benchmark CONFIG REQUIRED)
+ endif()
endif()
include(CMakePackageConfigHelpers)
--- a/api/test/baggage/CMakeLists.txt
+++ b/api/test/baggage/CMakeLists.txt
@@ -9,7 +9,10 @@ foreach(testname baggage_test)
TEST_PREFIX baggage.
TEST_LIST ${testname})
endforeach()
-add_executable(baggage_benchmark baggage_benchmark.cc)
-target_link_libraries(baggage_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+
+if(WITH_BENCHMARK)
+ add_executable(baggage_benchmark baggage_benchmark.cc)
+ target_link_libraries(baggage_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+endif()
add_subdirectory(propagation)
--- a/api/test/common/CMakeLists.txt
+++ b/api/test/common/CMakeLists.txt
@@ -10,6 +10,8 @@ foreach(testname kv_properties_test string_util_test)
TEST_LIST ${testname})
endforeach()
-add_executable(spinlock_benchmark spinlock_benchmark.cc)
-target_link_libraries(spinlock_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+if(WITH_BENCHMARK)
+ add_executable(spinlock_benchmark spinlock_benchmark.cc)
+ target_link_libraries(spinlock_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+endif()
--- a/api/test/trace/CMakeLists.txt
+++ b/api/test/trace/CMakeLists.txt
@@ -21,9 +21,11 @@ foreach(
TEST_LIST api_${testname})
endforeach()
-add_executable(span_id_benchmark span_id_benchmark.cc)
-target_link_libraries(span_id_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
-add_executable(span_benchmark span_benchmark.cc)
-target_link_libraries(span_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+if(WITH_BENCHMARK)
+ add_executable(span_id_benchmark span_id_benchmark.cc)
+ target_link_libraries(span_id_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+ add_executable(span_benchmark span_benchmark.cc)
+ target_link_libraries(span_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+endif()
--- a/exporters/etw/CMakeLists.txt
+++ b/exporters/etw/CMakeLists.txt
@@ -32,8 +32,6 @@ if(BUILD_TESTING)
add_executable(etw_tracer_test test/etw_tracer_test.cc)
add_executable(etw_logger_test test/etw_logger_test.cc)
- add_executable(etw_perf_test test/etw_perf_test.cc)
-
target_link_libraries(etw_provider_test ${GTEST_BOTH_LIBRARIES}
opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
@@ -43,9 +41,12 @@ if(BUILD_TESTING)
target_link_libraries(etw_logger_test ${GTEST_BOTH_LIBRARIES}
opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
- target_link_libraries(
- etw_perf_test benchmark::benchmark ${GTEST_BOTH_LIBRARIES}
- opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
+ if(WITH_BENCHMARK)
+ add_executable(etw_perf_test test/etw_perf_test.cc)
+ target_link_libraries(
+ etw_perf_test benchmark::benchmark ${GTEST_BOTH_LIBRARIES}
+ opentelemetry_exporter_etw ${CMAKE_THREAD_LIBS_INIT})
+ endif()
gtest_add_tests(
TARGET etw_provider_test
--- a/sdk/test/common/CMakeLists.txt
+++ b/sdk/test/common/CMakeLists.txt
@@ -24,14 +24,16 @@ add_executable(random_fork_test random_fork_test.cc)
target_link_libraries(random_fork_test opentelemetry_common)
add_test(random_fork_test random_fork_test)
-add_executable(random_benchmark random_benchmark.cc)
-target_link_libraries(random_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+if(WITH_BENCHMARK)
+ add_executable(random_benchmark random_benchmark.cc)
+ target_link_libraries(random_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
-add_executable(circular_buffer_benchmark circular_buffer_benchmark.cc)
-target_link_libraries(circular_buffer_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
+ add_executable(circular_buffer_benchmark circular_buffer_benchmark.cc)
+ target_link_libraries(circular_buffer_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_api)
-add_executable(attributemap_hash_benchmark attributemap_hash_benchmark.cc)
-target_link_libraries(attributemap_hash_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+ add_executable(attributemap_hash_benchmark attributemap_hash_benchmark.cc)
+ target_link_libraries(attributemap_hash_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+endif()
--- a/sdk/test/metrics/CMakeLists.txt
+++ b/sdk/test/metrics/CMakeLists.txt
@@ -28,12 +28,15 @@ foreach(
TEST_LIST ${testname})
endforeach()
-add_executable(attributes_processor_benchmark attributes_processor_benchmark.cc)
-target_link_libraries(attributes_processor_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+if(WITH_BENCHMARK)
+ add_executable(attributes_processor_benchmark
+ attributes_processor_benchmark.cc)
+ target_link_libraries(attributes_processor_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
-add_executable(attributes_hashmap_benchmark attributes_hashmap_benchmark.cc)
-target_link_libraries(attributes_hashmap_benchmark benchmark::benchmark
- ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+ add_executable(attributes_hashmap_benchmark attributes_hashmap_benchmark.cc)
+ target_link_libraries(attributes_hashmap_benchmark benchmark::benchmark
+ ${CMAKE_THREAD_LIBS_INIT} opentelemetry_common)
+endif()
add_subdirectory(exemplar)
--- a/sdk/test/trace/CMakeLists.txt
+++ b/sdk/test/trace/CMakeLists.txt
@@ -24,7 +24,10 @@ foreach(
TEST_LIST ${testname})
endforeach()
-add_executable(sampler_benchmark sampler_benchmark.cc)
-target_link_libraries(
- sampler_benchmark benchmark::benchmark ${CMAKE_THREAD_LIBS_INIT}
- opentelemetry_trace opentelemetry_resources opentelemetry_exporter_in_memory)
+if(WITH_BENCHMARK)
+ add_executable(sampler_benchmark sampler_benchmark.cc)
+ target_link_libraries(
+ sampler_benchmark benchmark::benchmark ${CMAKE_THREAD_LIBS_INIT}
+ opentelemetry_trace opentelemetry_resources
+ opentelemetry_exporter_in_memory)
+endif()

View File

@@ -0,0 +1,17 @@
https://github.com/open-telemetry/opentelemetry-cpp/commit/3e4b7d3c73d5c117069fb9becb7e2145dc06608d
Modified to apply cleanly
From 3e4b7d3c73d5c117069fb9becb7e2145dc06608d Mon Sep 17 00:00:00 2001
From: Marc Alff <marc.alff@oracle.com>
Date: Fri, 8 Mar 2024 09:35:12 +0100
Subject: [PATCH] [BUILD] Bump cmake version to 3.9 (#2581)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.9)
# See https://cmake.org/cmake/help/v3.3/policy/CMP0057.html required by certain
# versions of gtest

View File

@@ -0,0 +1,38 @@
https://bugs.gentoo.org/895694
https://github.com/open-telemetry/opentelemetry-cpp/pull/2423
https://github.com/open-telemetry/opentelemetry-cpp/commit/d1143ab37ef7a7e9bbc4289513dbd21b9fe134d2
From d1143ab37ef7a7e9bbc4289513dbd21b9fe134d2 Mon Sep 17 00:00:00 2001
From: Thomas-Barbier-1A <thomas.barbier@amadeus.com>
Date: Tue, 5 Dec 2023 10:54:00 +0100
Subject: [PATCH] [BUILD] 'uint8_t' not declared in this scope with gcc 13.2.1
(#2423)
--- a/api/include/opentelemetry/trace/propagation/detail/hex.h
+++ b/api/include/opentelemetry/trace/propagation/detail/hex.h
@@ -4,6 +4,7 @@
#pragma once
#include <algorithm>
+#include <cstdint>
#include <cstring>
#include "opentelemetry/nostd/string_view.h"
https://github.com/open-telemetry/opentelemetry-cpp/commit/cfa130bb9200d6ce307b8e030426b983af562e8a
From cfa130bb9200d6ce307b8e030426b983af562e8a Mon Sep 17 00:00:00 2001
From: Andrew Stitcher <astitcher@apache.org>
Date: Sat, 20 May 2023 04:39:20 -0400
Subject: [PATCH] Missed include (#2143)
--- a/ext/include/opentelemetry/ext/http/common/url_parser.h
+++ b/ext/include/opentelemetry/ext/http/common/url_parser.h
@@ -3,6 +3,7 @@
#pragma once
+#include <cstdint>
#include <string>
#include <vector>
#include "opentelemetry/nostd/string_view.h"

View File

@@ -0,0 +1,57 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake
DESCRIPTION="The OpenTelemetry C++ Client"
HOMEPAGE="
https://opentelemetry.io/
https://github.com/open-telemetry/opentelemetry-cpp
"
SRC_URI="https://github.com/open-telemetry/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64"
IUSE="+jaeger prometheus test"
RDEPEND="
net-misc/curl:=
dev-libs/thrift:=
dev-libs/boost:=
prometheus? ( dev-cpp/prometheus-cpp )
"
DEPEND="
${RDEPEND}
test? ( dev-cpp/gtest )
"
RESTRICT="!test? ( test )"
PATCHES=(
# bug #865029
"${FILESDIR}/opentelemetry-cpp-1.6.0-dont-install-nosend.patch"
"${FILESDIR}/opentelemetry-cpp-1.6.0-cmake4.patch"
"${FILESDIR}/opentelemetry-cpp-1.6.0-gcc13.patch"
"${FILESDIR}/opentelemetry-cpp-1.6.0-add-benchmark-option.patch"
)
src_configure() {
local mycmakeargs=(
-DBUILD_TESTING:BOOL=$(usex test)
-DWITH_BENCHMARK=OFF # benchmark tests dont make sense in ebuilds
-DBUILD_W3CTRACECONTEXT_TEST=OFF # network-sandbox breaking tests
-DWITH_JAEGER=$(usex jaeger)
-DWITH_PROMETHEUS=$(usex prometheus)
)
cmake_src_configure
}
src_test() {
# curl tests fragile
cmake_src_test -j1
}