# Contributor: Severin Neumann # Maintainer: Severin Neumann pkgname=opentelemetry-cpp pkgver=1.11.0 pkgrel=2 _opentelemetryproto_ver=1.0.0 pkgdesc="OpenTelemetry C++" url="https://opentelemetry.io/" arch="all !s390x" # failing test (TraceIdRatioBasedSampler.ShouldSampleWithoutContext) license="Apache-2.0" depends_dev=" $pkgname=$pkgver-r$pkgrel $pkgname-exporter-otlp-common=$pkgver-r$pkgrel $pkgname-exporter-otlp-grpc=$pkgver-r$pkgrel $pkgname-exporter-otlp-http=$pkgver-r$pkgrel $pkgname-exporter-zipkin=$pkgver-r$pkgrel " makedepends=" abseil-cpp-dev c-ares-dev cmake curl-dev grpc-dev nlohmann-json protobuf-dev re2-dev samurai " checkdepends=" benchmark-dev gtest-dev " subpackages=" $pkgname-dev $pkgname-exporter-otlp-common $pkgname-exporter-otlp-grpc $pkgname-exporter-otlp-http $pkgname-exporter-zipkin " source=" https://github.com/open-telemetry/opentelemetry-cpp/archive/v$pkgver/opentelemetry-cpp-v$pkgver.tar.gz opentelemetry-proto-$_opentelemetryproto_ver.tar.gz::https://github.com/open-telemetry/opentelemetry-proto/archive/refs/tags/v$_opentelemetryproto_ver.tar.gz gcc13.patch " build() { # skip some broken asm in benchmark 1.8.1 export CXXFLAGS="$CXXFLAGS -DBENCHMARK_HAS_NO_INLINE_ASSEMBLY" cmake -B build -G Ninja -Wno-dev \ -DOTELCPP_PROTO_PATH="$srcdir/opentelemetry-proto-$_opentelemetryproto_ver" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \ -DBUILD_W3CTRACECONTEXT_TEST="$(want_check && echo ON || echo OFF)" \ -DCMAKE_BUILD_TYPE=None \ -DWITH_ABSEIL=ON \ -DWITH_STL=ON \ -DWITH_EXAMPLES=OFF \ -DWITH_ZPAGES=OFF \ -DWITH_OTLP_GRPC=ON \ -DWITH_OTLP_HTTP=ON \ -DWITH_ZIPKIN=ON \ -DWITH_PROMETHEUS=OFF \ -DWITH_LOGS_PREVIEW=OFF \ -DWITH_ASYNC_EXPORT_PREVIEW=OFF \ -DWITH_METRICS_EXEMPLAR_PREVIEW=OFF cmake --build build } check() { cd build # these seem to fail on 32-bit as passing an invalid curl option CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j1 -E '(SendPostRequest.*)' } package() { DESTDIR="$pkgdir" cmake --install build } common() { pkgdesc="OpenTelemetry C++ OTLP Common Libraries" depends="$pkgname=$pkgver-r$pkgrel" amove usr/lib/libopentelemetry_otlp* } http() { pkgdesc="OpenTelemetry C++ OTLP HTTP exporter" depends="$pkgname=$pkgver-r$pkgrel $pkgname-exporter-otlp-common=$pkgver-r$pkgrel" amove usr/lib/libopentelemetry_exporter_otlp_http* } grpc() { pkgdesc="OpenTelemetry C++ OTLP gRPC exporter" depends="$pkgname=$pkgver-r$pkgrel $pkgname-exporter-otlp-common=$pkgver-r$pkgrel" amove usr/lib/libopentelemetry_exporter_otlp_grpc* } zipkin() { pkgdesc="OpenTelemetry C++ OTLP Zipkin exporter" depends="$pkgname=$pkgver-r$pkgrel" amove usr/lib/libopentelemetry_exporter_zipkin* } sha512sums=" 906df3cd44d88f7846231bc14c7305b9c6d9ee22ebd5a0cce21d6da1d7d62e72efe6101a2518d969a238eb3d6bbdf75e8017d7ab42edc0409391700973602006 opentelemetry-cpp-v1.11.0.tar.gz 74de78304a91fe72cfcdbd87fcb19c0d6338c161d6624ce09eac0527b1b43b8a5d8790ae055e1d3d44319eaa070a506f47e740f888c91d724a0aef8b509688f0 opentelemetry-proto-1.0.0.tar.gz ca839f8bac0b16855fdbe539c21bf16de0fcd13802bb0ba62d25db99a6bf1fa5e6911dbb19ee0523f39bb47188e5c657e2fd10193908c060a6b74f8d2c5f0fc3 gcc13.patch "