File pulsar.spec of Package pulsar
#
# spec file for package pulsar
#
# 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/
#
%global homedir %{_datadir}/%{name}
Name: pulsar
Version: 4.0.1
Release: 0
Summary: Pulsar
License: Apache-2.0
Group: Productivity/Networking/Web/Servers
URL: https://github.com/apache/pulsar
Source0: %{name}-%{version}.tar.xz
Source1: %{name}-maven-repo.tar.xz
Patch0: 0001-don-t-bother-with-source-jars.patch
BuildRequires: fdupes
BuildRequires: java-devel >= 17
BuildRequires: maven-local
BuildRequires: xmvn-subst
BuildRequires: mvn(com.auth0:java-jwt)
BuildRequires: mvn(com.carrotsearch:hppc)
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-annotations)
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-databind)
BuildRequires: mvn(com.fasterxml.jackson.dataformat:jackson-dataformat-cbor)
BuildRequires: mvn(com.fasterxml.jackson.dataformat:jackson-dataformat-smile)
BuildRequires: mvn(com.fasterxml.jackson.dataformat:jackson-dataformat-xml)
BuildRequires: mvn(com.fasterxml.jackson.dataformat:jackson-dataformat-yaml)
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-jdk8)
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-jsr310)
BuildRequires: mvn(com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider)
BuildRequires: mvn(com.fasterxml.jackson.module:jackson-module-jsonSchema)
BuildRequires: mvn(com.fasterxml.jackson.module:jackson-module-parameter-names)
BuildRequires: mvn(com.fasterxml.jackson:jackson-bom:pom:)
BuildRequires: mvn(com.fasterxml.woodstox:woodstox-core)
BuildRequires: mvn(com.github.ben-manes.caffeine:caffeine)
BuildRequires: mvn(com.github.jnr:jnr-ffi)
BuildRequires: mvn(com.github.jnr:jnr-posix)
BuildRequires: mvn(com.github.luben:zstd-jni)
BuildRequires: mvn(com.github.oshi:oshi-core-java11)
BuildRequires: mvn(com.github.seancfoley:ipaddress)
BuildRequires: mvn(com.github.spotbugs:spotbugs-annotations)
BuildRequires: mvn(com.github.stephenc.jcip:jcip-annotations)
BuildRequires: mvn(com.github.zafarkhaja:java-semver)
BuildRequires: mvn(com.google.api.grpc:proto-google-common-protos)
BuildRequires: mvn(com.google.auto.value:auto-value-annotations)
BuildRequires: mvn(com.google.code.gson:gson)
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(com.google.http-client:google-http-client)
BuildRequires: mvn(com.google.http-client:google-http-client-gson)
BuildRequires: mvn(com.google.inject.extensions:guice-assistedinject)
BuildRequires: mvn(com.google.inject:guice)
BuildRequires: mvn(com.google.jimfs:jimfs)
BuildRequires: mvn(com.google.protobuf:protobuf-bom:pom:)
BuildRequires: mvn(com.google.protobuf:protobuf-java)
BuildRequires: mvn(com.google.protobuf:protobuf-java-util)
BuildRequires: mvn(com.google.re2j:re2j)
BuildRequires: mvn(com.squareup:javapoet)
BuildRequires: mvn(com.sun.activation:javax.activation)
BuildRequires: mvn(com.sun.xml.bind:jaxb-impl)
BuildRequires: mvn(com.univocity:univocity-parsers)
BuildRequires: mvn(commons-beanutils:commons-beanutils)
BuildRequires: mvn(commons-codec:commons-codec)
BuildRequires: mvn(commons-collections:commons-collections)
BuildRequires: mvn(commons-configuration:commons-configuration)
BuildRequires: mvn(commons-dbcp:commons-dbcp)
BuildRequires: mvn(commons-digester:commons-digester)
BuildRequires: mvn(commons-io:commons-io)
BuildRequires: mvn(commons-lang:commons-lang)
BuildRequires: mvn(commons-net:commons-net)
BuildRequires: mvn(commons-validator:commons-validator)
BuildRequires: mvn(dev.failsafe:failsafe)
BuildRequires: mvn(info.picocli:picocli)
BuildRequires: mvn(info.picocli:picocli-shell-jline3)
BuildRequires: mvn(io.github.classgraph:classgraph)
BuildRequires: mvn(io.grpc:grpc-all)
BuildRequires: mvn(io.grpc:grpc-alts)
BuildRequires: mvn(io.grpc:grpc-api)
BuildRequires: mvn(io.grpc:grpc-auth)
BuildRequires: mvn(io.grpc:grpc-bom:pom:)
BuildRequires: mvn(io.grpc:grpc-context)
BuildRequires: mvn(io.grpc:grpc-core)
BuildRequires: mvn(io.grpc:grpc-grpclb)
BuildRequires: mvn(io.grpc:grpc-inprocess)
BuildRequires: mvn(io.grpc:grpc-netty)
BuildRequires: mvn(io.grpc:grpc-netty-shaded)
BuildRequires: mvn(io.grpc:grpc-protobuf)
BuildRequires: mvn(io.grpc:grpc-protobuf-lite)
BuildRequires: mvn(io.grpc:grpc-rls)
BuildRequires: mvn(io.grpc:grpc-services)
BuildRequires: mvn(io.grpc:grpc-servlet)
BuildRequires: mvn(io.grpc:grpc-servlet-jakarta)
BuildRequires: mvn(io.grpc:grpc-stub)
BuildRequires: mvn(io.grpc:grpc-util)
BuildRequires: mvn(io.grpc:grpc-xds)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-classes-io_uring)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring)
BuildRequires: mvn(io.netty:netty)
BuildRequires: mvn(io.netty:netty-bom:pom:)
BuildRequires: mvn(io.netty:netty-buffer)
BuildRequires: mvn(io.netty:netty-codec-haproxy)
BuildRequires: mvn(io.netty:netty-codec-http)
BuildRequires: mvn(io.netty:netty-codec-socks)
BuildRequires: mvn(io.netty:netty-handler)
BuildRequires: mvn(io.netty:netty-handler-proxy)
BuildRequires: mvn(io.netty:netty-parent:pom:)
BuildRequires: mvn(io.netty:netty-resolver-dns)
BuildRequires: mvn(io.netty:netty-tcnative)
BuildRequires: mvn(io.netty:netty-tcnative-boringssl-static)
BuildRequires: mvn(io.netty:netty-tcnative-classes)
BuildRequires: mvn(io.netty:netty-transport)
BuildRequires: mvn(io.netty:netty-transport-native-unix-common)
BuildRequires: mvn(io.opencensus:opencensus-api)
BuildRequires: mvn(io.opencensus:opencensus-contrib-grpc-metrics)
BuildRequires: mvn(io.opencensus:opencensus-contrib-http-util)
BuildRequires: mvn(io.opentelemetry:opentelemetry-api)
BuildRequires: mvn(io.opentelemetry:opentelemetry-api-incubator)
BuildRequires: mvn(io.opentelemetry:opentelemetry-bom-alpha:pom:)
BuildRequires: mvn(io.opentelemetry:opentelemetry-bom:pom:)
BuildRequires: mvn(io.opentelemetry:opentelemetry-context)
BuildRequires: mvn(io.opentelemetry:opentelemetry-exporter-common)
BuildRequires: mvn(io.opentelemetry:opentelemetry-exporter-otlp)
BuildRequires: mvn(io.opentelemetry:opentelemetry-exporter-otlp-common)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-common)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-extension-autoconfigure)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-logs)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-metrics)
BuildRequires: mvn(io.opentelemetry:opentelemetry-sdk-trace)
BuildRequires: mvn(io.perfmark:perfmark-api)
BuildRequires: mvn(io.prometheus:simpleclient)
BuildRequires: mvn(io.prometheus:simpleclient_caffeine)
BuildRequires: mvn(io.prometheus:simpleclient_common)
BuildRequires: mvn(io.prometheus:simpleclient_hotspot)
BuildRequires: mvn(io.prometheus:simpleclient_httpserver)
BuildRequires: mvn(io.prometheus:simpleclient_jetty)
BuildRequires: mvn(io.prometheus:simpleclient_log4j2)
BuildRequires: mvn(io.prometheus:simpleclient_servlet)
BuildRequires: mvn(io.prometheus:simpleclient_servlet_common)
BuildRequires: mvn(io.prometheus:simpleclient_tracer_common)
BuildRequires: mvn(io.protostuff:protostuff-parser)
BuildRequires: mvn(io.reactivex.rxjava3:rxjava)
BuildRequires: mvn(jakarta.activation:jakarta.activation-api)
BuildRequires: mvn(jakarta.annotation:jakarta.annotation-api)
BuildRequires: mvn(jakarta.json:jakarta.json-api)
BuildRequires: mvn(jakarta.persistence:jakarta.persistence-api)
BuildRequires: mvn(jakarta.validation:jakarta.validation-api)
BuildRequires: mvn(jakarta.ws.rs:jakarta.ws.rs-api)
BuildRequires: mvn(jakarta.xml.bind:jakarta.xml.bind-api)
BuildRequires: mvn(javax.annotation:javax.annotation-api)
BuildRequires: mvn(javax.json:javax.json-api)
BuildRequires: mvn(javax.servlet.jsp:jsp-api)
BuildRequires: mvn(javax.servlet:javax.servlet-api)
BuildRequires: mvn(javax.validation:validation-api)
BuildRequires: mvn(javax.websocket:javax.websocket-client-api)
BuildRequires: mvn(javax.ws.rs:javax.ws.rs-api)
BuildRequires: mvn(javax.ws.rs:jsr311-api)
BuildRequires: mvn(javax.xml.bind:jaxb-api)
BuildRequires: mvn(jline:jline)
BuildRequires: mvn(joda-time:joda-time)
BuildRequires: mvn(kr.motd.maven:os-maven-plugin)
BuildRequires: mvn(log4j:log4j)
BuildRequires: mvn(mysql:mysql-connector-java)
BuildRequires: mvn(net.bytebuddy:byte-buddy)
BuildRequires: mvn(net.java.dev.jna:jna)
BuildRequires: mvn(net.jcip:jcip-annotations)
BuildRequires: mvn(net.jodah:typetools)
BuildRequires: mvn(net.minidev:json-smart)
BuildRequires: mvn(net.sourceforge.argparse4j:argparse4j)
BuildRequires: mvn(org.antlr:antlr-runtime)
BuildRequires: mvn(org.antlr:antlr4-runtime)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.apache.commons:commons-collections4)
BuildRequires: mvn(org.apache.commons:commons-configuration2)
BuildRequires: mvn(org.apache.commons:commons-crypto)
BuildRequires: mvn(org.apache.commons:commons-csv)
BuildRequires: mvn(org.apache.commons:commons-lang3)
BuildRequires: mvn(org.apache.commons:commons-text)
BuildRequires: mvn(org.apache.derby:derby)
BuildRequires: mvn(org.apache.httpcomponents:httpasyncclient)
BuildRequires: mvn(org.apache.logging.log4j:log4j-api)
BuildRequires: mvn(org.apache.logging.log4j:log4j-core)
BuildRequires: mvn(org.apache.logging.log4j:log4j-slf4j-impl)
BuildRequires: mvn(org.apache.logging.log4j:log4j-web)
BuildRequires: mvn(org.apache.lucene:lucene-analyzers-common)
BuildRequires: mvn(org.apache.lucene:lucene-backward-codecs)
BuildRequires: mvn(org.apache.lucene:lucene-core)
BuildRequires: mvn(org.apache.lucene:lucene-grouping)
BuildRequires: mvn(org.apache.lucene:lucene-highlighter)
BuildRequires: mvn(org.apache.lucene:lucene-join)
BuildRequires: mvn(org.apache.lucene:lucene-memory)
BuildRequires: mvn(org.apache.lucene:lucene-misc)
BuildRequires: mvn(org.apache.lucene:lucene-queries)
BuildRequires: mvn(org.apache.lucene:lucene-queryparser)
BuildRequires: mvn(org.apache.lucene:lucene-sandbox)
BuildRequires: mvn(org.apache.lucene:lucene-spatial-extras)
BuildRequires: mvn(org.apache.lucene:lucene-spatial3d)
BuildRequires: mvn(org.apache.lucene:lucene-suggest)
BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
BuildRequires: mvn(org.apache.maven.surefire:surefire-testng)
BuildRequires: mvn(org.apache.maven.wagon:wagon-ssh-external)
BuildRequires: mvn(org.apache.maven:maven-project)
BuildRequires: mvn(org.apache.tomcat.embed:tomcat-embed-core)
BuildRequires: mvn(org.apache.tomcat:tomcat-annotations-api)
BuildRequires: mvn(org.apache.velocity:velocity-engine-core)
BuildRequires: mvn(org.apache:apache:pom:)
BuildRequires: mvn(org.bitbucket.b_c:jose4j)
BuildRequires: mvn(org.bouncycastle:bc-fips)
BuildRequires: mvn(org.bouncycastle:bcpkix-jdk18on)
BuildRequires: mvn(org.bouncycastle:bcprov-jdk18on)
BuildRequires: mvn(org.checkerframework:checker-qual)
BuildRequires: mvn(org.codehaus.jackson:jackson-core-asl)
BuildRequires: mvn(org.codehaus.jackson:jackson-mapper-asl)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:properties-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:templating-maven-plugin)
BuildRequires: mvn(org.conscrypt:conscrypt-openjdk-uber)
BuildRequires: mvn(org.eclipse.jetty.http2:http2-client)
BuildRequires: mvn(org.eclipse.jetty.http2:http2-common)
BuildRequires: mvn(org.eclipse.jetty.http2:http2-hpack)
BuildRequires: mvn(org.eclipse.jetty.http2:http2-http-client-transport)
BuildRequires: mvn(org.eclipse.jetty.websocket:javax-websocket-client-impl)
BuildRequires: mvn(org.eclipse.jetty.websocket:websocket-api)
BuildRequires: mvn(org.eclipse.jetty.websocket:websocket-client)
BuildRequires: mvn(org.eclipse.jetty.websocket:websocket-common)
BuildRequires: mvn(org.eclipse.jetty.websocket:websocket-server)
BuildRequires: mvn(org.eclipse.jetty.websocket:websocket-servlet)
BuildRequires: mvn(org.eclipse.jetty:jetty-alpn-client)
BuildRequires: mvn(org.eclipse.jetty:jetty-alpn-conscrypt-server)
BuildRequires: mvn(org.eclipse.jetty:jetty-alpn-java-client)
BuildRequires: mvn(org.eclipse.jetty:jetty-alpn-server)
BuildRequires: mvn(org.eclipse.jetty:jetty-jmx)
BuildRequires: mvn(org.eclipse.jetty:jetty-proxy)
BuildRequires: mvn(org.eclipse.jetty:jetty-server)
BuildRequires: mvn(org.eclipse.jetty:jetty-servlet)
BuildRequires: mvn(org.eclipse.jetty:jetty-servlets)
BuildRequires: mvn(org.eclipse.jetty:jetty-webapp)
BuildRequires: mvn(org.eclipse.jgit:org.eclipse.jgit)
BuildRequires: mvn(org.eclipse.jgit:org.eclipse.jgit.ssh.jsch)
BuildRequires: mvn(org.glassfish.hk2:hk2-bom:pom:)
BuildRequires: mvn(org.glassfish.hk2:hk2-locator)
BuildRequires: mvn(org.glassfish.hk2:osgi-resource-locator)
BuildRequires: mvn(org.glassfish.jersey.containers:jersey-container-servlet)
BuildRequires: mvn(org.glassfish.jersey.containers:jersey-container-servlet-core)
BuildRequires: mvn(org.glassfish.jersey.core:jersey-client)
BuildRequires: mvn(org.glassfish.jersey.core:jersey-common)
BuildRequires: mvn(org.glassfish.jersey.core:jersey-server)
BuildRequires: mvn(org.glassfish.jersey.ext:jersey-entity-filtering)
BuildRequires: mvn(org.glassfish.jersey.inject:jersey-hk2)
BuildRequires: mvn(org.glassfish.jersey.media:jersey-media-json-jackson)
BuildRequires: mvn(org.glassfish.jersey.media:jersey-media-multipart)
BuildRequires: mvn(org.glassfish:javax.json)
BuildRequires: mvn(org.javassist:javassist)
BuildRequires: mvn(org.jboss.logging:jboss-logging)
BuildRequires: mvn(org.jdom:jdom)
BuildRequires: mvn(org.jetbrains:annotations)
BuildRequires: mvn(org.jline:jline)
BuildRequires: mvn(org.jruby.jcodings:jcodings)
BuildRequires: mvn(org.json:json)
BuildRequires: mvn(org.junit:junit-bom:pom:)
BuildRequires: mvn(org.jvnet.mimepull:mimepull)
BuildRequires: mvn(org.lz4:lz4-java)
BuildRequires: mvn(org.mariadb.jdbc:mariadb-java-client)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.objenesis:objenesis)
BuildRequires: mvn(org.openjdk.jmh:jmh-core)
BuildRequires: mvn(org.openjdk.jmh:jmh-generator-annprocess)
BuildRequires: mvn(org.reactivestreams:reactive-streams)
BuildRequires: mvn(org.reflections:reflections)
BuildRequires: mvn(org.roaringbitmap:RoaringBitmap)
BuildRequires: mvn(org.scala-lang:scala-library)
BuildRequires: mvn(org.slf4j:jcl-over-slf4j)
BuildRequires: mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.slf4j:slf4j-reload4j)
BuildRequires: mvn(org.snakeyaml:snakeyaml-engine)
BuildRequires: mvn(org.testng:testng)
BuildRequires: mvn(org.xerial:sqlite-jdbc)
BuildRequires: mvn(org.xolstice.maven.plugins:protobuf-maven-plugin)
BuildRequires: mvn(org.yaml:snakeyaml)
BuildRequires: mvn(org.zeromq:jeromq)
#!BuildRequires: jboss-websocket-1.0-api
#!BuildRequires: tomcat-embed
#!BuildRequires: tomcat-lib
# for i in %%{homedir}/lib/*; do rpm -qf --qf="%%{NAME}\n" `readlink -e $i`; done | sort -u
Requires: IPAddress
Requires: aopalliance
Requires: apache-commons-cli
Requires: apache-commons-codec
Requires: apache-commons-collections4
Requires: apache-commons-compress
Requires: apache-commons-configuration
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: apache-commons-lang3
Requires: apache-commons-logging
Requires: apache-commons-text
Requires: atinject
Requires: auto-value-annotations
Requires: bean-validation-api
Requires: beust-jcommander
Requires: bouncycastle
Requires: bouncycastle-pkix
Requires: bouncycastle-util
Requires: byte-buddy
Requires: caffeine
Requires: checker-qual
Requires: conscrypt
Requires: failsafe
Requires: glassfish-activation
Requires: glassfish-activation-api
Requires: glassfish-annotation-api
Requires: glassfish-hk2-api
Requires: glassfish-hk2-locator
Requires: glassfish-hk2-osgi-resource-locator
Requires: glassfish-hk2-utils
Requires: glassfish-jax-rs-api
Requires: glassfish-jaxb-api
Requires: glassfish-servlet-api
Requires: google-auth-library-java-credentials
Requires: google-auth-library-java-oauth2-http
Requires: google-errorprone-annotations
Requires: google-gson
Requires: google-http-java-client
Requires: google-http-java-client-gson
Requires: grpc-java-all
Requires: grpc-java-alts
Requires: grpc-java-api
Requires: grpc-java-auth
Requires: grpc-java-context
Requires: grpc-java-core
Requires: grpc-java-grpclb
Requires: grpc-java-inprocess
Requires: grpc-java-netty
Requires: grpc-java-netty-shaded
Requires: grpc-java-opentelemetry
Requires: grpc-java-protobuf
Requires: grpc-java-protobuf-lite
Requires: grpc-java-rls
Requires: grpc-java-services
Requires: grpc-java-servlet
Requires: grpc-java-servlet-jakarta
Requires: grpc-java-stub
Requires: grpc-java-util
Requires: grpc-java-xds
Requires: guava
Requires: hppc
Requires: httpcomponents-client
Requires: httpcomponents-core
Requires: j2objc-annotations
Requires: jackson-annotations
Requires: jackson-core
Requires: jackson-databind
Requires: jackson-dataformat-yaml
Requires: jackson-jaxrs-json-provider
Requires: jackson-jaxrs-providers
Requires: jackson-module-jaxb-annotations
Requires: jackson-module-jsonSchema
Requires: jackson-modules-java8
Requires: jakarta-activation
Requires: jakarta-annotations
Requires: jansi
Requires: java-jwt
Requires: javassist
Requires: jaxb-api
Requires: jboss-websocket-1.0-api
Requires: jcip-annotations
Requires: jcl-over-slf4j
Requires: jctools
Requires: jersey
Requires: jetbrains-annotations
Requires: jetty-alpn-server
Requires: jetty-client
Requires: jetty-continuation
Requires: jetty-http
Requires: jetty-io
Requires: jetty-javax-websocket-client-impl
Requires: jetty-proxy
Requires: jetty-security
Requires: jetty-server
Requires: jetty-servlet
Requires: jetty-servlets
Requires: jetty-util
Requires: jetty-util-ajax
Requires: jetty-websocket-api
Requires: jetty-websocket-client
Requires: jetty-websocket-common
Requires: jetty-websocket-server
Requires: jetty-websocket-servlet
Requires: jline
Requires: jline3
Requires: jna
Requires: jna-contrib
Requires: jose4j
Requires: jsemver
Requires: jsr-305
Requires: log4j
Requires: log4j-slf4j
Requires: log4j-web
Requires: mimepull
Requires: netty
Requires: netty-incubator-transport-io_uring
Requires: netty-tcnative
Requires: netty-tcnative-openssl-dynamic
Requires: objectweb-asm
Requires: opencensus-java-api
Requires: opencensus-java-contrib-http-util
Requires: opentelemetry-java-api
Requires: opentelemetry-java-api-incubator
Requires: opentelemetry-java-context
Requires: opentelemetry-java-exporter-common
Requires: opentelemetry-java-exporter-otlp
Requires: opentelemetry-java-exporter-otlp-common
Requires: opentelemetry-java-sdk
Requires: opentelemetry-java-sdk-common
Requires: opentelemetry-java-sdk-extension-autoconfigure
Requires: opentelemetry-java-sdk-extension-autoconfigure-spi
Requires: opentelemetry-java-sdk-logs
Requires: opentelemetry-java-sdk-metrics
Requires: opentelemetry-java-sdk-trace
Requires: oshi
Requires: perfmark-api
Requires: picocli
Requires: picocli-shell-jline3
Requires: prometheus-simpleclient-java
Requires: prometheus-simpleclient-java-caffeine
Requires: prometheus-simpleclient-java-common
Requires: prometheus-simpleclient-java-hotspot
Requires: prometheus-simpleclient-java-httpserver
Requires: prometheus-simpleclient-java-jetty
Requires: prometheus-simpleclient-java-log4j2
Requires: prometheus-simpleclient-java-servlet
Requires: prometheus-simpleclient-java-servlet-common
Requires: prometheus-simpleclient-java-tracer-common
Requires: proto-google-common-protos
Requires: protobuf-java
Requires: re2j
Requires: reactive-streams-jvm
Requires: roaringbitmap
Requires: rxjava
Requires: slf4j
Requires: snakeyaml
Requires: testng
Requires: typetools
%ifarch x86_64 %{?x86_64}
BuildRequires: mvn(com.google.protobuf:protoc:exe:linux-x86_64:)
BuildRequires: mvn(io.grpc:protoc-gen-grpc-java:exe:linux-x86_64:)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring::linux-x86_64:)
BuildRequires: mvn(io.netty:netty-transport-native-epoll::linux-x86_64:)
%endif
%ifarch aarch64 %{arm64}
BuildRequires: mvn(com.google.protobuf:protoc:exe:linux-aarch_64:)
BuildRequires: mvn(io.grpc:protoc-gen-grpc-java:exe:linux-aarch_64:)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring::linux-aarch_64:)
BuildRequires: mvn(io.netty:netty-transport-native-epoll::linux-aarch_64:)
%endif
%ifarch %{ix86}
BuildRequires: mvn(com.google.protobuf:protoc:exe:linux-x86_32:)
BuildRequires: mvn(io.grpc:protoc-gen-grpc-java:exe:linux-x86_32:)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring::linux-x86_32:)
BuildRequires: mvn(io.netty:netty-transport-native-epoll::linux-x86_32:)
%endif
%ifarch s390x
BuildRequires: mvn(com.google.protobuf:protoc:exe:linux-s390_64:)
BuildRequires: mvn(io.grpc:protoc-gen-grpc-java:exe:linux-s390_64:)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring::linux-s390_64:)
BuildRequires: mvn(io.netty:netty-transport-native-epoll::linux-s390_64:)
%endif
%ifarch ppc64le
BuildRequires: mvn(com.google.protobuf:protoc:exe:linux-ppcle_64:)
BuildRequires: mvn(io.grpc:protoc-gen-grpc-java:exe:linux-ppcle_64:)
BuildRequires: mvn(io.netty.incubator:netty-incubator-transport-native-io_uring::linux-ppcle_64:)
BuildRequires: mvn(io.netty:netty-transport-native-epoll::linux-ppcle_64:)
%endif
%description
Pulsar is a distributed pub-sub messaging platform with a very
flexible messaging model and an intuitive client API.
%package offloaders
Summary: Pulsar offloader archives
Group: Productivity/Networking/Web/Servers
Requires: %{name} = %{version}
%description offloaders
Pulsar is a distributed pub-sub messaging platform with a very
flexible messaging model and an intuitive client API.
This package contains Pulsar offloader archives.
%prep
%autosetup -a1 -p1
%pom_add_dep org.checkerframework:checker-qual:3.22.0:provided pulsar-client
%pom_remove_plugin :maven-enforcer-plugin \
pulsar-client-all \
pulsar-client-auth-athenz \
pulsar-client-auth-sasl .
# we don't need these extensions useful for gradle metadata publication
rm -rf .mvn/develocity-custom-user-data.groovy
rm -rf .mvn/develocity.xml
rm -rf .mvn/extensions.xml
# We don't have slf4j 2.x
%pom_change_dep :log4j-slf4j2-impl :log4j-slf4j-impl \
buildtools \
distribution/server \
distribution/shell \
pulsar-client-all \
pulsar-functions/instance \
pulsar-functions/localrun \
pulsar-functions/runtime-all \
structured-event-log
# It makes little sense to be importing the boms
%pom_remove_dep :slf4j-bom . buildtools
%pom_remove_dep :log4j-bom . buildtools
# Generates test resources that we don't need and tries to download from internet
# jars that we will build later on
%pom_remove_plugin :maven-dependency-plugin pulsar-functions/worker pulsar-broker
%pom_remove_dep :netty-resolver-dns-native-macos pulsar-client
sed -i "s|jakarta\.annotation|javax.annotation|g" \
pulsar-client-admin-shaded/pom.xml \
pulsar-client-all/pom.xml \
pulsar-client-shaded/pom.xml \
pulsar-functions/proto/pom.xml \
pom.xml
%build
%{mvn_build} -jf -- -Dmaven.repo.local=$(pwd)/maven-repo
mkdir pulsar_home
(cd pulsar_home
tar --delay-directory-restore -xvf \
../distribution/server/target/apache-pulsar-%{version}-bin.tar.gz
tar --delay-directory-restore -xvf \
../distribution/offloaders/target/apache-pulsar-offloaders-%{version}-bin.tar.gz
)
%install
export PULSAR_HOME=$(pwd)/pulsar_home/apache-pulsar-%{version}
export PULSAR_OFFLOADERS_HOME=$(pwd)/pulsar_home/apache-pulsar-offloaders-%{version}
rm $PULSAR_HOME/bin/*.cmd
%ifnarch aarch64
find $PULSAR_HOME -name \*-linux-aarch_64* -print -delete
%endif
%ifnarch x86_64
find $PULSAR_HOME -name \*-linux-x86_64* -print -delete
%endif
install -d -m 0755 %{buildroot}%{homedir}
cp -a $PULSAR_HOME/{bin,conf,examples,instances,lib} %{buildroot}%{homedir}/
xmvn-subst -s -R %{buildroot} -s %{buildroot}%{homedir}
cp -a $PULSAR_OFFLOADERS_HOME/offloaders %{buildroot}%{homedir}/
%files
%dir %{homedir}
%{homedir}/bin
%{homedir}/conf
%{homedir}/examples
%{homedir}/instances
%{homedir}/lib
%license LICENSE NOTICE
%doc CONTRIBUTING.md CONTRIBUTORS.md faq.md README.md SECURITY.md
%files offloaders
%{homedir}/offloaders
%license LICENSE NOTICE
%changelog