commit:     30fe512985b356de81ef6b36de75f06981eeb70e
Author:     Alfred Wingate <parona <AT> protonmail <DOT> com>
AuthorDate: Fri Sep 19 03:54:38 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 20 22:24:56 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30fe5129

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 <AT> protonmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/43853
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...ntelemetry-cpp-1.6.0-add-benchmark-option.patch | 180 +++++++++++++++++++++
 .../files/opentelemetry-cpp-1.6.0-cmake4.patch     |  17 ++
 .../files/opentelemetry-cpp-1.6.0-gcc13.patch      |  38 +++++
 .../opentelemetry-cpp-1.6.0-r2.ebuild              |  57 +++++++
 4 files changed, 292 insertions(+)

diff --git 
a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-add-benchmark-option.patch
 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-add-benchmark-option.patch
new file mode 100644
index 000000000000..64e7d6857ca5
--- /dev/null
+++ 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-add-benchmark-option.patch
@@ -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 <[email protected]>
+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()

diff --git 
a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-cmake4.patch 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-cmake4.patch
new file mode 100644
index 000000000000..e2b097a42752
--- /dev/null
+++ b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-cmake4.patch
@@ -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 <[email protected]>
+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

diff --git 
a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-gcc13.patch 
b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-gcc13.patch
new file mode 100644
index 000000000000..add8004b77cf
--- /dev/null
+++ b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-gcc13.patch
@@ -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 <[email protected]>
+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 <[email protected]>
+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"

diff --git a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r2.ebuild 
b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r2.ebuild
new file mode 100644
index 000000000000..d4e6bb11b4ce
--- /dev/null
+++ b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r2.ebuild
@@ -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
+}

Reply via email to