## START: Set by rpmautospec ## (rpmautospec version 0.8.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global sover 1 %bcond check 1 %bcond elasticsearch 0 %bcond otlp_grpc 1 %bcond otlp_http 1 %bcond prometheus 0 %bcond zipkin 0 %if %{with elasticsearch} || %{with otlp_http} || %{with zipkin} %global use_http 1 %global use_json 1 %endif %define cmake_with() %{lua:do local name = rpm.expand("%{1}"):gsub('-', '_') local with = rpm.expand("%{?with_" .. name .. "}") ~= '' and 'ON' or 'OFF' print(string.format("-DWITH_%s:BOOL=%s", name:upper(), with)) end} Name: opentelemetry-cpp Version: 1.22.0 Release: %autorelease -p Summary: OpenTelemetry C++ client License: Apache-2.0 URL: https://opentelemetry.io %global forgeurl https://github.com/open-telemetry/opentelemetry-cpp Source: %{forgeurl}/archive/v%{version}/%{name}-%{version}.tar.gz Patch: %{forgeurl}/commit/b7b0278.patch#/SDK-Ensure-TraceId-is-portable-on-big-endian-architectures.patch BuildRequires: cmake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: ninja-build %if 0%{?use_http} BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(zlib) BuildRequires: zlib-static %endif %if 0%{?use_json} BuildRequires: cmake(nlohmann_json) %endif %if %{with check} BuildRequires: gmock-devel BuildRequires: gtest-devel %endif %if %{with otlp_grpc} BuildRequires: cmake(gRPC) %endif %if %{with otlp_http} || %{with otlp_grpc} BuildRequires: opentelemetry-proto-devel BuildRequires: protobuf-devel %endif %if %{with prometheus} BuildRequires: cmake(civetweb) BuildRequires: cmake(prometheus-cpp) %endif %description A language-specific implementation of OpenTelemetry in C++. OpenTelemetry is a collection of tools, APIs, and SDKs. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software's performance and behavior. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} == %{version}-%{release} %if 0%{?use_http} Requires: pkgconfig(libcurl) %endif %if 0%{?use_json} Requires: cmake(nlohmann_json) %endif %if %{with prometheus} Requires: cmake(civetweb) Requires: cmake(prometheus-cpp) %endif %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %if %{with elasticsearch} %package exporter-elasticsearch Summary: Elasticsearch exporter for opentelemetry-cpp Requires: %{name}%{?_isa} = %{version}-%{release} %description exporter-elasticsearch %{summary}. %endif %if %{with otlp_grpc} || %{with otlp_http} %package exporter-otlp Summary: OTLP exporter for opentelemetry-cpp Requires: %{name}%{?_isa} = %{version}-%{release} %description exporter-otlp %{summary}. %endif %if %{with prometheus} %package exporter-prometheus Summary: Prometheus exporter for opentelemetry-cpp Requires: %{name}%{?_isa} = %{version}-%{release} %description exporter-prometheus %{summary}. %endif %if %{with zipkin} %package exporter-zipkin Summary: Zipkin exporter for opentelemetry-cpp Requires: %{name}%{?_isa} = %{version}-%{release} %description exporter-zipkin %{summary}. %endif %prep %autosetup -p1 %build %cmake -G Ninja \ -DCMAKE_CXX_STANDARD:STRING=17 \ -DBUILD_TESTING:BOOL=%[%{with check}?"ON":"OFF"] \ -DOTELCPP_PROTO_PATH:PATH=%{_includedir} \ -DOTELCPP_VERSIONED_LIBS:BOOL=ON \ -DWITH_BENCHMARK:BOOL=OFF \ -DWITH_EXAMPLES:BOOL=OFF \ -DWITH_STL:BOOL=ON \ %{cmake_with elasticsearch} \ %{cmake_with otlp_grpc} \ %{cmake_with otlp_http} \ %{cmake_with prometheus} \ %{cmake_with zipkin} %cmake_build %install %cmake_install %if %{with check} %check %ctest -- -E 'BasicCurlHttpTests' %endif %files %doc README.md CHANGELOG.md %license LICENSE %{_libdir}/libopentelemetry_common.so.%{sover}{,.*} %{_libdir}/libopentelemetry_exporter_in_memory*.so.%{sover}{,.*} %{_libdir}/libopentelemetry_exporter_ostream*.so.%{sover}{,.*} %{_libdir}/libopentelemetry_logs.so.%{sover}{,.*} %{_libdir}/libopentelemetry_metrics.so.%{sover}{,.*} %{_libdir}/libopentelemetry_resources.so.%{sover}{,.*} %{_libdir}/libopentelemetry_trace.so.%{sover}{,.*} %{_libdir}/libopentelemetry_version.so.%{sover}{,.*} %if %{with elasticsearch} %files exporter-elasticsearch %{_libdir}/libopentelemetry_exporter_elasticsearch*.so.%{sover}{,.*} %{_libdir}/libopentelemetry_http_client_curl.so.%{sover}{,.*} %endif %if %{with otlp_grpc} || %{with otlp_http} %files exporter-otlp %{_libdir}/libopentelemetry_exporter_otlp*.so.%{sover}{,.*} %if %{with otlp_http} %{_libdir}/libopentelemetry_http_client_curl.so.%{sover}{,.*} %endif %{_libdir}/libopentelemetry_otlp_recordable.so.%{sover}{,.*} %{_libdir}/libopentelemetry_proto{,_grpc}.so.%{sover}{,.*} %endif %if %{with prometheus} %files exporter-prometheus %{_libdir}/libopentelemetry_exporter_prometheus*.so.%{sover}{,.*} %endif %if %{with zipkin} %files exporter-zipkin %{_libdir}/libopentelemetry_exporter_zipkin*.so.%{sover}{,.*} %{_libdir}/libopentelemetry_http_client_curl.so.%{sover}{,.*} %endif %files devel %{_includedir}/opentelemetry/*.h %{_includedir}/opentelemetry/baggage %{_includedir}/opentelemetry/common %{_includedir}/opentelemetry/context %{_includedir}/opentelemetry/detail %{_includedir}/opentelemetry/exporters %{_includedir}/opentelemetry/ext %{_includedir}/opentelemetry/logs %{_includedir}/opentelemetry/metrics %{_includedir}/opentelemetry/nostd %{_includedir}/opentelemetry/plugin %{_includedir}/opentelemetry/sdk %{_includedir}/opentelemetry/semconv %{_includedir}/opentelemetry/std %{_includedir}/opentelemetry/trace %{_libdir}/libopentelemetry_common.so %{_libdir}/libopentelemetry_exporter_*.so %{_libdir}/libopentelemetry_logs.so %{_libdir}/libopentelemetry_metrics.so %{_libdir}/libopentelemetry_resources.so %{_libdir}/libopentelemetry_trace.so %{_libdir}/libopentelemetry_version.so %{_libdir}/cmake %{_libdir}/pkgconfig %if 0%{?use_http} %{_libdir}/libopentelemetry_http_client_curl.so %endif %if %{with otlp_http} || %{with otlp_grpc} %{_includedir}/opentelemetry/proto %{_libdir}/libopentelemetry_otlp_recordable.so %{_libdir}/libopentelemetry_proto{,_grpc}.so %endif %changelog ## START: Generated by rpmautospec * Thu Oct 02 2025 Aleksei Bavshin - 1.22.0-0.1 - Update to 1.22.0 * Thu Oct 02 2025 Aleksei Bavshin - 1.20.0-0.1 - Initial package ## END: Generated by rpmautospec