diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-cpp/opentelemetry-cpp | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'dev-cpp/opentelemetry-cpp')
9 files changed, 583 insertions, 0 deletions
diff --git a/dev-cpp/opentelemetry-cpp/Manifest b/dev-cpp/opentelemetry-cpp/Manifest new file mode 100644 index 000000000000..ad2538cae673 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/Manifest @@ -0,0 +1,4 @@ +DIST opentelemetry-cpp-1.24.0.tar.gz 1223110 BLAKE2B c0a1e5c3a9656074b707183d63077d470bf5ebf9f98be7afbcaf0b1abee71d197fd40cbf7411263c1296ae5eb0ccf70a698a2b167f8cefba7e78da2c1bb7dff7 SHA512 bde103a04ef70a1dccd247f5ab4bca4fff23d081d1ae758286fb1a62409310a399dd90ae29f188e552fb96112c95f501dac5fafab4edc1df924ca43f21d0f150 +DIST opentelemetry-cpp-1.25.0.tar.gz 1243042 BLAKE2B f7c32ba1ae30a7e439f686c551b9db59de020aedde788ab94774177d3dac3c851d0fe00a7cf140c8cf5d263218cf9046d6f534b4aff4b50b485f96f81462de46 SHA512 d39565e6f42c601d8d84b14f678b44b52cd8712d2ee23f02aca56c345ae5407dcebbdbcd484ef54ed0e85faec9bfd3c3f0f80ac490af9d9a54ebaf503534add7 +DIST opentelemetry-cpp-1.6.0.tar.gz 790774 BLAKE2B 9512c092bfe49c9da82eff3950204c1f2eb654df2ed428e58ceb8877d15d80d9978fa6da37f7780352538c74de04bac69660528b255dfbce743f89b9d4020dd2 SHA512 ae0777451a3d2d676afd9f3142ab78c7afb08474f6038bd810ff0ee30fee6695e10100c901e7ffadf3faf16c7d19622acdea414cd720be8572f7720f2d528628 +DIST opentelemetry-proto-1.8.0.tar.gz 119085 BLAKE2B 037d8005892035e5dea470108103439b90ce8ce20ac89e14a72d67d406ff5319b76e345f8201b4d0d2e479d95906f88527c516bc1bb53d4c1a72276af9184989 SHA512 43e320c365f73e1302951cf69e4f395c8dec9fe3efba802dea10637b61721a64868fb0a45c33d2ac15f99a7ba0b865c268d268a543a4efeff10f5c59407e7ba9 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 <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() 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 <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 diff --git a/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-dont-install-nosend.patch b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-dont-install-nosend.patch new file mode 100644 index 000000000000..f3d757f2c5f4 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/files/opentelemetry-cpp-1.6.0-dont-install-nosend.patch @@ -0,0 +1,15 @@ +diff --git a/ext/src/http/client/nosend/CMakeLists.txt b/ext/src/http/client/nosend/CMakeLists.txt +index 497daeb3..949bfd36 100644 +--- a/ext/src/http/client/nosend/CMakeLists.txt ++++ b/ext/src/http/client/nosend/CMakeLists.txt +@@ -27,10 +27,4 @@ if(${BUILD_TESTING}) + target_link_libraries(http_client_nosend ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIB} + opentelemetry_ext) + +- install( +- TARGETS http_client_nosend +- EXPORT "${PROJECT_NAME}-target" +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() 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 <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" diff --git a/dev-cpp/opentelemetry-cpp/metadata.xml b/dev-cpp/opentelemetry-cpp/metadata.xml new file mode 100644 index 000000000000..240ba63bf772 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> + <use> + <flag name="elasticsearch">Build support for the elasticsearch exporter</flag> + <flag name="grpc">Build support for the OTLP (OpenTelemetry Protocol) GRPC exporter</flag> + <flag name="http">Build support for the OTLP (OpenTelemetry Protocol) HTTP exporter</flag> + <flag name="jaeger">Include the jaeger exporter</flag> + <flag name="otlp">Build support for the OTLP (OpenTelemetry Protocol) File exporter</flag> + <flag name="prometheus">include the Prometheus Client in the SDK</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.24.0.ebuild b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.24.0.ebuild new file mode 100644 index 000000000000..95a89743d107 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.24.0.ebuild @@ -0,0 +1,123 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# update based on third_party_release +OPENTELEMETRY_PROTO="1.8.0" + +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 + otlp? ( + https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v${OPENTELEMETRY_PROTO}.tar.gz + -> opentelemetry-proto-${OPENTELEMETRY_PROTO}.tar.gz + ) +" + +LICENSE="Apache-2.0" +SLOT="0/1" +KEYWORDS="amd64 ~arm ~arm64 ppc64 ~riscv ~x86" + +IUSE="elasticsearch grpc http otlp prometheus test" +REQUIRED_USE=" + grpc? ( otlp ) + http? ( otlp ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + http? ( + net-misc/curl + virtual/zlib:= + ) + elasticsearch? ( + dev-cpp/nlohmann_json + net-misc/curl + ) + grpc? ( net-libs/grpc:= ) + otlp? ( + dev-cpp/abseil-cpp:= + dev-libs/protobuf:=[libprotoc(+)] + dev-cpp/nlohmann_json + ) + prometheus? ( dev-cpp/prometheus-cpp ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-cpp/gtest ) +" +BDEPEND=" + virtual/pkgconfig + otlp? ( dev-libs/protobuf[protoc(+)] ) +" + +src_configure() { + # sanity check subslot to kick would be drive by bumpers + # https://github.com/open-telemetry/opentelemetry-cpp/blob/main/docs/abi-version-policy.md + local detected_abi + detected_abi="$(sed -n -e 's/^# define OPENTELEMETRY_ABI_VERSION_NO \(.*\)/\1/p' \ + api/include/opentelemetry/version.h)" + detected_abi="${detected_abi}" + if [[ "${SLOT}" != "0/${detected_abi}" ]]; then + die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}." + fi + + local detected_proto_ver + detected_proto_ver="$(sed -n -e '/^opentelemetry-proto=/p' third_party_release)" + if [[ "${OPENTELEMETRY_PROTO}" != "${detected_proto_ver#opentelemetry-proto=v}" ]]; then + die "OPENTELEMETRY_PROTO=${OPENTELEMETRY_PROTO} doesn't match upstream specified ${detected_proto_ver}" + fi + + local mycmakeargs=( + -DBUILD_TESTING=$(usex test) + -DWITH_BENCHMARK=OFF # benchmark tests dont make sense in ebuilds + -DBUILD_W3CTRACECONTEXT_TEST=OFF # network-sandbox breaking tests + -DWITH_FUNC_TESTS=ON + + -DOTELCPP_VERSIONED_LIBS=ON + -DOTELCPP_MAINTAINER_MODE=OFF + -DOPENTELEMETRY_INSTALL=ON + # Modifies ABI and some project expect the non C++ std reliant ABI specifically + -DWITH_STL=OFF + -DWITH_GSL=OFF + + -DWITH_API_ONLY=OFF + + -DWITH_CONFIGURATION=OFF # experimental, vendored rapidyaml + + -DWITH_ELASTICSEARCH=$(usex elasticsearch) + -DWITH_PROMETHEUS=$(usex prometheus) + -DWITH_OPENTRACING=OFF # unpackaged + -DWITH_ZIPKIN=OFF # unpackaged + -DWITH_ETW=OFF # unpackaged + + # https://github.com/open-telemetry/opentelemetry-cpp/blob/main/exporters/otlp/README.md + # file exporter can be built separately to the other exporter. + # Its just simpler dependency wise to have a "otlp" use flag that the other exporter require. + -DWITH_OTLP_FILE=$(usex otlp) + -DWITH_OTLP_GRPC=$(usex grpc) + -DWITH_OTLP_HTTP=$(usex http) + -DWITH_OTLP_HTTP_COMPRESSION=ON # zlib is in the system set + ) + use otlp && mycmakeargs+=( -DOTELCPP_PROTO_PATH="${WORKDIR}"/opentelemetry-proto-${OPENTELEMETRY_PROTO} ) + + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + # needs a running prometheus instance + exporter.PrometheusExporter.ShutdownSetsIsShutdownToTrue + ) + + # curl tests fragile + cmake_src_test -j1 +} diff --git a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.25.0.ebuild b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.25.0.ebuild new file mode 100644 index 000000000000..1a71e81e9854 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.25.0.ebuild @@ -0,0 +1,123 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# update based on third_party_release +OPENTELEMETRY_PROTO="1.8.0" + +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 + otlp? ( + https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v${OPENTELEMETRY_PROTO}.tar.gz + -> opentelemetry-proto-${OPENTELEMETRY_PROTO}.tar.gz + ) +" + +LICENSE="Apache-2.0" +SLOT="0/1" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" + +IUSE="elasticsearch grpc http otlp prometheus test" +REQUIRED_USE=" + grpc? ( otlp ) + http? ( otlp ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + http? ( + net-misc/curl + virtual/zlib:= + ) + elasticsearch? ( + dev-cpp/nlohmann_json + net-misc/curl + ) + grpc? ( net-libs/grpc:= ) + otlp? ( + dev-cpp/abseil-cpp:= + dev-libs/protobuf:=[libprotoc(+)] + dev-cpp/nlohmann_json + ) + prometheus? ( dev-cpp/prometheus-cpp ) +" +DEPEND=" + ${RDEPEND} + test? ( dev-cpp/gtest ) +" +BDEPEND=" + virtual/pkgconfig + otlp? ( dev-libs/protobuf[protoc(+)] ) +" + +src_configure() { + # sanity check subslot to kick would be drive by bumpers + # https://github.com/open-telemetry/opentelemetry-cpp/blob/main/docs/abi-version-policy.md + local detected_abi + detected_abi="$(sed -n -e 's/^# define OPENTELEMETRY_ABI_VERSION_NO \(.*\)/\1/p' \ + api/include/opentelemetry/version.h)" + detected_abi="${detected_abi}" + if [[ "${SLOT}" != "0/${detected_abi}" ]]; then + die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}." + fi + + local detected_proto_ver + detected_proto_ver="$(sed -n -e '/^opentelemetry-proto=/p' third_party_release)" + if [[ "${OPENTELEMETRY_PROTO}" != "${detected_proto_ver#opentelemetry-proto=v}" ]]; then + die "OPENTELEMETRY_PROTO=${OPENTELEMETRY_PROTO} doesn't match upstream specified ${detected_proto_ver}" + fi + + local mycmakeargs=( + -DBUILD_TESTING=$(usex test) + -DWITH_BENCHMARK=OFF # benchmark tests dont make sense in ebuilds + -DBUILD_W3CTRACECONTEXT_TEST=OFF # network-sandbox breaking tests + -DWITH_FUNC_TESTS=ON + + -DOTELCPP_VERSIONED_LIBS=ON + -DOTELCPP_MAINTAINER_MODE=OFF + -DOPENTELEMETRY_INSTALL=ON + # Modifies ABI and some project expect the non C++ std reliant ABI specifically + -DWITH_STL=OFF + -DWITH_GSL=OFF + + -DWITH_API_ONLY=OFF + + -DWITH_CONFIGURATION=OFF # experimental, vendored rapidyaml + + -DWITH_ELASTICSEARCH=$(usex elasticsearch) + -DWITH_PROMETHEUS=$(usex prometheus) + -DWITH_OPENTRACING=OFF # unpackaged + -DWITH_ZIPKIN=OFF # unpackaged + -DWITH_ETW=OFF # unpackaged + + # https://github.com/open-telemetry/opentelemetry-cpp/blob/main/exporters/otlp/README.md + # file exporter can be built separately to the other exporter. + # Its just simpler dependency wise to have a "otlp" use flag that the other exporter require. + -DWITH_OTLP_FILE=$(usex otlp) + -DWITH_OTLP_GRPC=$(usex grpc) + -DWITH_OTLP_HTTP=$(usex http) + -DWITH_OTLP_HTTP_COMPRESSION=ON # zlib is in the system set + ) + use otlp && mycmakeargs+=( -DOTELCPP_PROTO_PATH="${WORKDIR}"/opentelemetry-proto-${OPENTELEMETRY_PROTO} ) + + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + # needs a running prometheus instance + exporter.PrometheusExporter.ShutdownSetsIsShutdownToTrue + ) + + # curl tests fragile + cmake_src_test -j1 +} diff --git a/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r3.ebuild b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r3.ebuild new file mode 100644 index 000000000000..1f503b8a5e58 --- /dev/null +++ b/dev-cpp/opentelemetry-cpp/opentelemetry-cpp-1.6.0-r3.ebuild @@ -0,0 +1,66 @@ +# 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 +} + +src_install() { + cmake_src_install + + if use prometheus; then + sed '/^# Create imported target opentelemetry-cpp::prometheus_exporter/i\find_dependency(prometheus-cpp REQUIRED)\n' \ + -i "${ED}/usr/$(get_libdir)/cmake/opentelemetry-cpp/opentelemetry-cpp-target.cmake" || die + fi +} |
