113 lines
3.6 KiB
Plaintext

# Contributor: Severin Neumann <neumanns@cisco.com>
# Maintainer: Severin Neumann <neumanns@cisco.com>
pkgname=opentelemetry-cpp
pkgver=1.11.0
pkgrel=4
_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
gcc14.patch
add-loongarch64-support.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.*|trace.FastRandomNumberGeneratorTest.GenerateUniqueNumbers)'
}
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
c628c8268b987d392e7cc596ef4d7cf2cda9d2d61e44d2515c5e888451fe7b756cc53077c85e5c0b94b377bd74fdf56f942e60c637bd463e47f5e7179a97ad2b gcc14.patch
af3c7063773cf64d305f4d8a1c95ccfd2a45b48014b8f5509642a8efc1a58b16adab00c5e6a4662c83252574b9b5fadf07d07f6ec9c70cf5fab22083da85a6cf add-loongarch64-support.patch
"