artemis/artemis.spec
2020-10-28 16:02:34 +08:00

361 lines
12 KiB
RPMSpec

%global debug_package %nil
Name: artemis
Version: 1.4.0
Release: 1
Summary: Java high performance, clustered, asynchronous messaging system
License: ASL 2.0
URL: https://github.com/apache/activemq-artemis/
Source0: https://github.com/apache/activemq-artemis/archive/%{version}/%{name}-%{version}.tar.gz
Patch0: artemis-netty-4.1.patch
BuildRequires: gcc-c++ cmake libaio-devel libtool maven-local mvn(com.google.guava:guava)
BuildRequires: mvn(commons-beanutils:commons-beanutils) mvn(io.airlift:airline)
BuildRequires: mvn(io.netty:netty-all) mvn(javax.inject:javax.inject)
BuildRequires: mvn(javax.json:javax.json-api) mvn(javax.xml.bind:jaxb-api) mvn(junit:junit)
BuildRequires: mvn(org.apache:apache:pom:) mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.johnzon:johnzon-core)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-annotation_1.1_spec)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-ejb_3.0_spec)
BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jta_1.1_spec)
BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin)
BuildRequires: mvn(org.apache.maven.plugin-tools:maven-plugin-annotations)
BuildRequires: mvn(org.apache.qpid:proton-j) mvn(org.apache.qpid:proton-jms)
BuildRequires: mvn(org.apache.rat:apache-rat-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:javacc-maven-plugin) mvn(org.easymock:easymock)
BuildRequires: mvn(org.eclipse.aether:aether-api) mvn(org.eclipse.aether:aether-util)
BuildRequires: mvn(org.eclipse.jetty:jetty-server) mvn(org.eclipse.jetty:jetty-webapp)
BuildRequires: mvn(org.eclipse.osgi:org.eclipse.osgi)
BuildRequires: mvn(org.eclipse.osgi:org.eclipse.osgi.services)
BuildRequires: mvn(org.glassfish.jaxb:jaxb-jxc) mvn(org.glassfish.jaxb:jaxb-runtime)
BuildRequires: mvn(org.jboss.logging:jboss-logging)
BuildRequires: mvn(org.jboss.logging:jboss-logging-processor)
BuildRequires: mvn(org.jboss.logmanager:jboss-logmanager) mvn(org.jboss.modules:jboss-modules)
BuildRequires: mvn(org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec)
BuildRequires: mvn(org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec)
BuildRequires: mvn(org.jboss.resteasy:resteasy-atom-provider)
BuildRequires: mvn(org.jboss.resteasy:resteasy-jackson-provider)
BuildRequires: mvn(org.jboss.resteasy:resteasy-jaxb-provider)
BuildRequires: mvn(org.jboss.resteasy:resteasy-jaxrs) mvn(org.jboss.resteasy:tjws)
BuildRequires: mvn(org.jgroups:jgroups) mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.springframework:spring-beans) mvn(org.springframework:spring-context)
BuildRequires: mvn(org.springframework:spring-core) mvn(org.springframework:spring-jms)
BuildRequires: mvn(postgresql:postgresql) mvn(xalan:xalan)
%description
Apache ActiveMQ Artemis is an open source project to
build a multi-protocol, embeddable, very high performance,
clustered, asynchronous messaging system. Artemis
is an example of Message Oriented Middleware (MoM).
%package boot
Summary: ActiveMQ Artemis Boot
BuildArch: noarch
%description boot
ActiveMQ Artemis Boot.
%package cli
Summary: ActiveMQ Artemis CLI
BuildArch: noarch
%description cli
ActiveMQ Artemis CLI.
%package commons
Summary: ActiveMQ Artemis Commons
License: ASL 2.0 and Public Domain
BuildArch: noarch
Provides: bundled(java-base64) = 2.2.2
%description commons
ActiveMQ Artemis Commons.
%package core-client
Summary: ActiveMQ Artemis Core Client
BuildArch: noarch
%description core-client
ActiveMQ Artemis Core Client.
%package dto
Summary: ActiveMQ Artemis DTO
BuildArch: noarch
%description dto
ActiveMQ Artemis DTO.
%package jdbc-store
Summary: ActiveMQ Artemis JDBC Store
BuildArch: noarch
%description jdbc-store
ActiveMQ Artemis JDBC Store.
%package jms-client
Summary: ActiveMQ Artemis JMS Client
BuildArch: noarch
%description jms-client
ActiveMQ Artemis JMS Client.
%package jms-server
Summary: ActiveMQ Artemis JMS Server
BuildArch: noarch
%description jms-server
ActiveMQ Artemis JMS Server.
%package journal
Summary: ActiveMQ Artemis Journal
BuildArch: noarch
%description journal
ActiveMQ Artemis Journal.
%package maven-plugin
Summary: ActiveMQ Artemis Maven Plugin
BuildArch: noarch
%description maven-plugin
ActiveMQ Artemis Maven Plugin.
%package native
Summary: ActiveMQ Artemis native library
%description native
Artemis distributes a native library,
used as a bridge for its fast journal,
between Artemis and Linux libaio.
%package protocols
Summary: ActiveMQ Artemis Protocols POM
BuildArch: noarch
%description protocols
ActiveMQ Artemis Protocols Parent POM.
%package amqp-protocol
Summary: ActiveMQ Artemis Protocol AMQP
BuildArch: noarch
%description amqp-protocol
Apache ActiveMQ Artemis supports for AMQP 1.0
specification.
%package hornetq-protocol
Summary: ActiveMQ Artemis Protocol HornetQ
BuildArch: noarch
%description hornetq-protocol
ActiveMQ Artemis Protocol HornetQ.
%package hqclient-protocol
Summary: ActiveMQ Artemis Protocol HQClient
BuildArch: noarch
%description hqclient-protocol
Apache ActiveMQ Artemis Protocol HQClient.
%package proton-plug
Summary: ActiveMQ Artemis Protocol Proton
BuildArch: noarch
%description proton-plug
Apache ActiveMQ Artemis Protocol Proton.
%package stomp-protocol
Summary: ActiveMQ Artemis Protocol STOMP
BuildArch: noarch
%description stomp-protocol
Apache ActiveMQ Artemis Protocol STOMP.
%package ra
Summary: ActiveMQ Artemis RAR
BuildArch: noarch
%description ra
Apache ActiveMQ Artemis RAR.
%package rest
Summary: ActiveMQ Artemis REST Interface Implementation
BuildArch: noarch
%description rest
Apache ActiveMQ Artemis REST Interface Implementation.
%package selector
Summary: ActiveMQ Artemis Selector Implementation
BuildArch: noarch
%description selector
Apache ActiveMQ Artemis Selector Implementation.
%package server
Summary: ActiveMQ Artemis Server
BuildArch: noarch
%description server
Apache ActiveMQ Artemis Server.
%package server-osgi
Summary: ActiveMQ Artemis Server OSGi
BuildArch: noarch
%description server-osgi
Apache ActiveMQ Artemis Server OSGi.
%package service-extensions
Summary: ActiveMQ Artemis Service Extensions
BuildArch: noarch
%description service-extensions
Apache ActiveMQ Artemis Service Extensions.
%package web
Summary: ActiveMQ Artemis Web
BuildArch: noarch
%description web
Apache ActiveMQ Artemis Web.
%package spring-integration
Summary: ActiveMQ Artemis Spring Integration
BuildArch: noarch
%description spring-integration
Apache ActiveMQ Artemis Spring Integration.
%package pom
Summary: ActiveMQ Artemis POM
BuildArch: noarch
%description pom
ActiveMQ Artemis Parent POM.
%package javadoc
Summary: Javadoc for %{name}
BuildArch: noarch
%description javadoc
This package contains javadoc for %{name}.
%package doc
Summary: Documentation for %{name}
BuildArch: noarch
%description doc
Documentation for %{name}.
%prep
%setup -q -n activemq-%{name}-%{version}
%patch0 -p1
find -name "*.class" -print -delete
find -name "*.dll" -print -delete
find -name "*.exe" -print -delete
find -name "*.jar" -print -delete
find -name "*.so" -print -delete
rm -r .mvn .settings
%pom_change_dep -r :geronimo-json_1.0_spec javax.json:javax.json-api:1.0 artemis-core-client artemis-jms-server tests/integration-tests pom.xml
%pom_remove_plugin -r :maven-checkstyle-plugin
%pom_remove_plugin -r :maven-help-plugin
%pom_remove_plugin -r :maven-source-plugin
%pom_remove_plugin :maven-compiler-plugin
for p in artemis-native \
artemis-protocols/artemis-proton-plug \
artemis-protocols/artemis-stomp-protocol
do
%pom_add_plugin org.apache.maven.plugins:maven-compiler-plugin ${p} "
<configuration>
<compilerArgument>-proc:none</compilerArgument>
</configuration>"
done
%pom_remove_plugin -r :findbugs-maven-plugin
%pom_remove_dep -r com.sun.winsw:winsw
%pom_remove_plugin :maven-dependency-plugin artemis-cli
%pom_change_dep -r org.osgi:org.osgi.core org.eclipse.osgi:org.eclipse.osgi
%pom_change_dep -r org.osgi:osgi.cmpn org.eclipse.osgi:org.eclipse.osgi.services
%pom_change_dep -r :geronimo-j2ee-connector_1.5_spec org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec
%pom_change_dep -r :geronimo-jms_2.0_spec org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec
%pom_change_dep -r com.sun.xml.bind:jaxb-jxc org.glassfish.jaxb:jaxb-jxc
%pom_change_dep -r com.sun.xml.bind:jaxb-impl org.glassfish.jaxb:jaxb-runtime
%pom_xpath_remove -r "pom:dependency[pom:artifactId='jetty-all']/pom:classifier"
%pom_change_dep -r :jetty-all org.eclipse.jetty:jetty-server
%pom_add_dep org.eclipse.jetty:jetty-webapp:'${jetty.version}' artemis-web
%pom_change_dep -r org.postgresql:postgresql postgresql:
%pom_change_dep -r log4j: ::1.2.17
%pom_disable_module artemis-distribution
%pom_disable_module artemis-website
%pom_disable_module artemis-features
%pom_disable_module tests
%pom_disable_module integration/activemq-aerogear-integration
%pom_disable_module integration/activemq-vertx-integration
%pom_disable_module artemis-openwire-protocol artemis-protocols
%pom_disable_module artemis-mqtt-protocol artemis-protocols
%pom_xpath_remove "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:_exportcontents" artemis-server-osgi
%pom_xpath_remove "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration/pom:instructions/pom:Embed-Dependency" artemis-server-osgi
%pom_xpath_inject "pom:plugin[pom:artifactId='maven-bundle-plugin']/pom:configuration" "
<excludeDependencies>true</excludeDependencies>" artemis-server-osgi
%pom_remove_dep :artemis-commons::test artemis-protocols/artemis-proton-plug
%build
(
cd artemis-native
%cmake .
make %{?_smp_mflags}
)
%mvn_build -fs
%install
%mvn_install
mkdir -p %{buildroot}%{_libdir}/%{name}
install -pm 755 artemis-native/bin/libartemis-native-%{__isa_bits}.so %{buildroot}%{_libdir}/%{name}/libartemis-native.so
%files boot -f .mfiles-artemis-boot
%license LICENSE NOTICE
%files cli -f .mfiles-artemis-cli
%license LICENSE NOTICE
%files commons -f .mfiles-artemis-commons
%license LICENSE NOTICE
%files core-client -f .mfiles-artemis-core-client
%doc README.md
%files dto -f .mfiles-artemis-dto
%files jdbc-store -f .mfiles-artemis-jdbc-store
%files jms-client -f .mfiles-artemis-jms-client
%files jms-server -f .mfiles-artemis-jms-server
%files journal -f .mfiles-artemis-journal
%files maven-plugin -f .mfiles-artemis-maven-plugin
%files native -f .mfiles-artemis-native
%{_libdir}/%{name}
%license LICENSE NOTICE
%files protocols -f .mfiles-artemis-protocols
%license LICENSE NOTICE
%files amqp-protocol -f .mfiles-artemis-amqp-protocol
%files hornetq-protocol -f .mfiles-artemis-hornetq-protocol
%files hqclient-protocol -f .mfiles-artemis-hqclient-protocol
%files proton-plug -f .mfiles-artemis-proton-plug
%files stomp-protocol -f .mfiles-artemis-stomp-protocol
%files ra -f .mfiles-artemis-ra
%files rest -f .mfiles-artemis-rest
%files selector -f .mfiles-artemis-selector
%license LICENSE NOTICE
%files server -f .mfiles-artemis-server
%files server-osgi -f .mfiles-artemis-server-osgi
%files service-extensions -f .mfiles-artemis-service-extensions
%files web -f .mfiles-artemis-web
%files spring-integration -f .mfiles-artemis-spring-integration
%files pom -f .mfiles-artemis-pom
%license LICENSE NOTICE
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE
%files doc
%doc docs/*
%license LICENSE NOTICE
%changelog
* Wed Oct 28 2020 baizhonggui <baizhonggui@huawei.com> - 1.4.0-1
- package init