Files
opentelemetry-java/opentelemetry-java.spec

307 lines
12 KiB
RPMSpec

#
# spec file for package opentelemetry-java
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: opentelemetry-java
Version: 1.44.1
Release: 0
Summary: OpenTelemetry Java
License: Apache-2.0
Group: Productivity/Networking/Web/Servers
URL: https://github.com/open-telemetry
Source0: https://github.com/open-telemetry/%{name}/archive/refs/tags/v%{version}.tar.gz
Source1: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api/%{version}/opentelemetry-api-%{version}.pom
Source2: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-bom/%{version}/opentelemetry-bom-%{version}.pom
Source3: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-context/%{version}/opentelemetry-context-%{version}.pom
Source4: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-common/%{version}/opentelemetry-exporter-common-%{version}.pom
Source5: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-otlp-common/%{version}/opentelemetry-exporter-otlp-common-%{version}.pom
Source6: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-otlp/%{version}/opentelemetry-exporter-otlp-%{version}.pom
Source7: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-sender-okhttp/%{version}/opentelemetry-exporter-sender-okhttp-%{version}.pom
Source8: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-common/%{version}/opentelemetry-sdk-common-%{version}.pom
Source9: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure-spi/%{version}/opentelemetry-sdk-extension-autoconfigure-spi-%{version}.pom
Source10: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-extension-autoconfigure/%{version}/opentelemetry-sdk-extension-autoconfigure-%{version}.pom
Source11: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-logs/%{version}/opentelemetry-sdk-logs-%{version}.pom
Source12: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-metrics/%{version}/opentelemetry-sdk-metrics-%{version}.pom
Source13: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk-trace/%{version}/opentelemetry-sdk-trace-%{version}.pom
Source14: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-sdk/%{version}/opentelemetry-sdk-%{version}.pom
Source15: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-api-incubator/%{version}-alpha/opentelemetry-api-incubator-%{version}-alpha.pom
Source16: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-exporter-prometheus/%{version}-alpha/opentelemetry-exporter-prometheus-%{version}-alpha.pom
Source17: https://repo1.maven.org/maven2/io/opentelemetry/opentelemetry-bom-alpha/%{version}-alpha/opentelemetry-bom-alpha-%{version}-alpha.pom
Source100: aggregator.pom
Source200: OtelVersionGenerator.sh
Patch0: 0001-Wire-generated-sources.patch
BuildRequires: bash
BuildRequires: fdupes
BuildRequires: jurand
BuildRequires: maven-local
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-core)
BuildRequires: mvn(com.google.auto.value:auto-value)
BuildRequires: mvn(com.google.auto.value:auto-value-annotations)
BuildRequires: mvn(com.google.code.findbugs:jsr305)
BuildRequires: mvn(com.google.errorprone:error_prone_annotations)
BuildRequires: mvn(io.grpc:grpc-stub)
BuildRequires: mvn(org.jctools:jctools-core)
BuildArch: noarch
%description
OpenTelemetry is the merging of OpenCensus and OpenTracing into
a single project.
This project contains the following top level components:
- OpenTelemetry API:
* stable apis including Tracer, Span, SpanContext, Meter, and
Baggage.
* context api The OpenTelemetry Context implementation.
* incubating apis incubating APIs, including Events.
- extensions define additional API extensions not part of the core
API, including propagators.
- sdk defines the implementation of the OpenTelemetry API.
- exporters trace, metric, and log exporters for the SDK.
- sdk-extensions defines additional SDK extensions, which are not
part of the core SDK.
- OpenTracing shim defines a bridge layer from OpenTracing to the
OpenTelemetry API.
- OpenCensus shim defines a bridge layer from OpenCensus to the
OpenTelemetry API.
%package api
Summary: OpenTelemetry API
Group: Productivity/Networking/Web/Servers
%description api
OpenTelemetry API: Stable apis including Tracer, Span, SpanContext,
Meter, and Baggage.
%package api-incubator
Summary: OpenTelemetry API Incubator
Group: Productivity/Networking/Web/Servers
%description api-incubator
OpenTelemetry API Incubator: Incubating APIs, including Events
%package bom
Summary: OpenTelemetry Bill of Materials
Group: Productivity/Networking/Web/Servers
%description bom
OpenTelemetry Bill of Materials.
%package bom-alpha
Summary: OpenTelemetry Bill of Materials (Alpha)
Group: Productivity/Networking/Web/Servers
%description bom-alpha
OpenTelemetry Bill of Materials (Alpha).
%package context
Summary: OpenTelemetry Context
Group: Productivity/Networking/Web/Servers
%description context
The OpenTelemetry Context implementation.
%package exporter-common
Summary: OpenTelemetry Exporter Common
Group: Productivity/Networking/Web/Servers
%description exporter-common
OpenTelemetry Exporter Common.
%package exporter-otlp
Summary: OpenTelemetry Protocol (OTLP) Exporters
Group: Productivity/Networking/Web/Servers
%description exporter-otlp
OpenTelemetry Protocol (OTLP) Exporters.
%package exporter-otlp-common
Summary: OpenTelemetry Protocol Exporter
Group: Productivity/Networking/Web/Servers
%description exporter-otlp-common
OpenTelemetry Protocol Exporter.
%package exporter-prometheus
Summary: OpenTelemetry Prometheus Exporter
Group: Productivity/Networking/Web/Servers
%description exporter-prometheus
OpenTelemetry Prometheus Exporter.
%package sdk
Summary: OpenTelemetry SDK
Group: Productivity/Networking/Web/Servers
%description sdk
OpenTelemetry SDK defines the implementation of the OpenTelemetry API.
%package sdk-common
Summary: OpenTelemetry SDK Common
Group: Productivity/Networking/Web/Servers
%description sdk-common
OpenTelemetry SDK Common.
%package sdk-extension-autoconfigure
Summary: OpenTelemetry SDK Auto-configuration
Group: Productivity/Networking/Web/Servers
%description sdk-extension-autoconfigure
OpenTelemetry SDK Auto-configuration.
%package sdk-extension-autoconfigure-spi
Summary: OpenTelemetry SDK Auto-configuration SPI
Group: Productivity/Networking/Web/Servers
%description sdk-extension-autoconfigure-spi
OpenTelemetry SDK Auto-configuration SPI.
%package sdk-logs
Summary: OpenTelemetry Log SDK
Group: Productivity/Networking/Web/Servers
%description sdk-logs
OpenTelemetry Log SDK.
%package sdk-metrics
Summary: OpenTelemetry SDK Metrics
Group: Productivity/Networking/Web/Servers
%description sdk-metrics
OpenTelemetry SDK Metrics.
%package sdk-trace
Summary: OpenTelemetry SDK For Tracing
Group: Productivity/Networking/Web/Servers
%description sdk-trace
OpenTelemetry SDK For Tracing.
%package javadoc
Summary: API documentation for %{name}
Group: Documentation/HTML
%description javadoc
API documentation for %{name}.
%prep
%setup -q
%patch -P 0 -p1
cp %{SOURCE100} pom.xml
cp %{SOURCE1} api/all/pom.xml
cp %{SOURCE2} bom/pom.xml
cp %{SOURCE3} context/pom.xml
cp %{SOURCE4} exporters/common/pom.xml
cp %{SOURCE5} exporters/otlp/common/pom.xml
cp %{SOURCE6} exporters/otlp/all/pom.xml
cp %{SOURCE7} exporters/sender/okhttp/pom.xml
cp %{SOURCE8} sdk/common/pom.xml
cp %{SOURCE9} sdk-extensions/autoconfigure-spi/pom.xml
cp %{SOURCE10} sdk-extensions/autoconfigure/pom.xml
cp %{SOURCE11} sdk/logs/pom.xml
cp %{SOURCE12} sdk/metrics/pom.xml
cp %{SOURCE13} sdk/trace/pom.xml
cp %{SOURCE14} sdk/all/pom.xml
cp %{SOURCE15} api/incubator/pom.xml
cp %{SOURCE16} exporters/prometheus/pom.xml
cp %{SOURCE17} bom-alpha/pom.xml
%pom_change_dep -r :::runtime :::compile
bash %{SOURCE200} io.opentelemetry.opentracing.shim.internal %{version} opentracing-shim/src/main/java
bash %{SOURCE200} io.opentelemetry.exporter.otlp.all.internal %{version} exporters/otlp/all/src/main/java
bash %{SOURCE200} io.opentelemetry.opencensus.shim.internal %{version} opencensus-shim/src/main/java
bash %{SOURCE200} io.opentelemetry.sdk.common.internal %{version} sdk/common/src/main/java
%pom_add_dep com.google.errorprone:error_prone_annotations:2.35.1:provided context
%pom_add_dep com.google.code.findbugs:jsr305:3.0.2:provided api/all context exporters/common sdk/all \
sdk/common sdk/logs sdk/metrics sdk/trace sdk-extensions/autoconfigure sdk-extensions/autoconfigure-spi \
exporters/otlp/common exporters/otlp/all
%pom_add_dep com.google.auto.value:auto-value:1.11.0:provided api/all exporters/common sdk/all sdk/common \
sdk/logs sdk/metrics sdk/trace sdk-extensions/autoconfigure
%pom_add_dep com.google.auto.value:auto-value-annotations:1.11.0:provided api/all exporters/common sdk/all \
sdk/logs sdk/common sdk/metrics sdk/trace sdk-extensions/autoconfigure
%pom_add_dep com.google.code.findbugs:jsr305:3.0.2:provided api/incubator
%pom_add_dep com.fasterxml.jackson.core:jackson-core:2.18.1:provided exporters/common
%pom_add_dep io.grpc:grpc-stub:1.68.1:provided exporters/common exporters/otlp/all
%pom_add_dep org.jctools:jctools-core:4.0.5 sdk/trace
cp -r sdk/trace-shaded-deps/src/main/resources sdk/trace/src/main/resources
cp sdk/trace-shaded-deps/src/main/java/io/opentelemetry/sdk/trace/internal/JcTools.java \
sdk/trace/src/main/java/io/opentelemetry/sdk/trace/internal/
%{java_remove_annotations} sdk/metrics -n IgnoreJRERequirement
#pom_disable_module bom
#pom_disable_module bom-alpha
#pom_disable_module exporters/common
#pom_disable_module exporters/otlp/common
#pom_disable_module exporters/otlp/all
%pom_disable_module exporters/prometheus
#pom_remove_dep -r io.opentelemetry:opentelemetry-exporter-prometheus
%pom_disable_module exporters/sender/okhttp
%pom_remove_dep -r io.opentelemetry:opentelemetry-exporter-sender-okhttp
%{mvn_package} :aggregator __noinstall
%build
%{mvn_build} -f -s -- -Dmaven.compiler.{source,target}=8
%install
%mvn_install
%fdupes -s %{buildroot}%{_javadocdir}
%files api -f .mfiles-opentelemetry-api
%license LICENSE
%doc README.md
%files api-incubator -f .mfiles-opentelemetry-api-incubator
%files context -f .mfiles-opentelemetry-context
%files sdk -f .mfiles-opentelemetry-sdk
%files sdk-common -f .mfiles-opentelemetry-sdk-common
%files sdk-extension-autoconfigure -f .mfiles-opentelemetry-sdk-extension-autoconfigure
%files sdk-extension-autoconfigure-spi -f .mfiles-opentelemetry-sdk-extension-autoconfigure-spi
%files sdk-logs -f .mfiles-opentelemetry-sdk-logs
%files sdk-metrics -f .mfiles-opentelemetry-sdk-metrics
%files sdk-trace -f .mfiles-opentelemetry-sdk-trace
%files exporter-common -f .mfiles-opentelemetry-exporter-common
%files exporter-otlp-common -f .mfiles-opentelemetry-exporter-otlp-common
%files exporter-otlp -f .mfiles-opentelemetry-exporter-otlp
%files bom -f .mfiles-opentelemetry-bom
%files bom-alpha -f .mfiles-opentelemetry-bom-alpha
%files javadoc -f .mfiles-javadoc
%license LICENSE
%changelog