Blob Blame History Raw
# empty debuginfo
%global debug_package %nil

%global namedreltag .Final
%global namedversion %{version}%{?namedreltag}
%global customnamedversion 2_4_7_Final

# Use this switch to rebuild without narayana
# This is useful to break the hornetq circular dependency
%if 0%{?fedora}
%bcond_with narayana
%endif

Name:          hornetq
Version:       2.4.7
Release:       8%{?dist}
Summary:       High performance messaging system
License:       ASL 2.0
URL:           http://hornetq.jboss.org/
Source0:       https://github.com/hornetq/hornetq/archive/HornetQ_%{customnamedversion}.tar.gz
# https://issues.jboss.org/browse/HORNETQ-1534
# Replace json.org with javax.json
Patch0:        hornetq-2.4.7-javax.json.patch

BuildRequires: autoconf
BuildRequires: automake
BuildRequires: graphviz
BuildRequires: libaio-devel
BuildRequires: libtool
BuildRequires: maven-local
BuildRequires: mvn(com.github.maven-nar:nar-maven-plugin)
BuildRequires: mvn(io.netty:netty-all)
BuildRequires: mvn(java_cup:java_cup)
BuildRequires: mvn(javax.inject:javax.inject)
BuildRequires: mvn(javax.json:javax.json-api)
BuildRequires: mvn(javax.servlet:servlet-api)
BuildRequires: mvn(jdepend:jdepend)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(net.sf.saxon:saxon)
BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-install-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:javacc-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:xml-maven-plugin)
BuildRequires: mvn(org.jboss:jboss-transaction-spi)
BuildRequires: mvn(org.jboss.apiviz:apiviz)
BuildRequires: mvn(org.jboss.logging:jboss-logging)
BuildRequires: mvn(org.jboss.logging:jboss-logging-processor)
BuildRequires: mvn(org.jboss.logmanager:jboss-logmanager)
BuildRequires: mvn(org.jboss.naming:jnpserver)
%if %{without narayana}
BuildRequires: mvn(org.jboss.narayana.jta:jta)
BuildRequires: mvn(org.springframework:spring-beans)
BuildRequires: mvn(org.springframework:spring-context)
BuildRequires: mvn(org.springframework:spring-core)
BuildRequires: mvn(org.springframework:spring-jms)
%endif
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)
BuildRequires: mvn(org.jboss.resteasy:tjws)
BuildRequires: mvn(org.jboss.spec.javax.jms:jboss-jms-api_2.0_spec)
BuildRequires: mvn(org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec)
BuildRequires: mvn(org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec)
BuildRequires: mvn(org.jgroups:jgroups)

%description
HornetQ is an open source project to build a multi-protocol, embeddable,
very high performance, clustered, asynchronous messaging system.

%package commons
Summary:       HornetQ Commons
# Public Domain: ./hornetq-commons/src/main/java/org/hornetq/utils/Base64.java
License:       ASL 2.0 and Public Domain
Provides:      bundled(java-base64) = 2.2.2
Obsoletes:     %{name} < 2.4.2
BuildArch:     noarch

%description commons
HornetQ Commons Classes.

%package core-client
Summary:       HornetQ Core Client
License:       ASL 2.0 and LGPLv2+
# LGPLv2: 
#./hornetq-core-client/src/main/java/org/hornetq/core/filter/impl/Operator.java
#./hornetq-core-client/src/main/java/org/hornetq/core/filter/impl/RegExp.java
#./hornetq-core-client/src/main/java/org/hornetq/core/filter/impl/Identifier.java
BuildArch:     noarch

%description core-client
HornetQ Core Client.

%package jms-client
Summary:       HornetQ JMS Client
BuildArch:     noarch

%description jms-client
HornetQ JMS Client Implementation.

%package jms-server
Summary:       HornetQ JMS Server
BuildArch:     noarch

%description jms-server
HornetQ JMS Server Implementation.

%package journal
Summary:       HornetQ Journal
BuildArch:     noarch

%description journal
HornetQ Journal.

%package native
Summary:       HornetQ Journal

%description native
HornetQ Journal.

%package pom
Summary:       HornetQ Parent POM
BuildArch:     noarch

%description pom
HornetQ Parent POM.

%package protocols
Summary:       HornetQ Protocols Parent POM
BuildArch:     noarch

%description protocols
HornetQ Protocols Parent POM.

%package ra
Summary:       HornetQ RAR
BuildArch:     noarch

%description ra
HornetQ RAR Implementation.

%package rest
Summary:       HornetQ REST
BuildArch:     noarch

%description rest
HornetQ REST Interface Implementation.

%package server
Summary:       HornetQ Server
License:       ASL 2.0 and LGPLv2+
# LGPLv2: ./hornetq-server/src/main/java/org/hornetq/core/messagecounter/MessageCounter.java
BuildArch:     noarch

%description server
HornetQ Server Implementation.

%package spring-integration
Summary:       HornetQ Spring Integration
BuildArch:     noarch

%description spring-integration
HornetQ Spring Integration.

%package stomp-protocol
Summary:       HornetQ STOMP Protocol
BuildArch:     noarch

%description stomp-protocol
HornetQ STOMP Protocol Implementation.

%package tools
Summary:       HornetQ Tools
BuildArch:     noarch

%description tools
HornetQ Tools.

%package javadoc
Summary:       Javadoc for %{name}
BuildArch:     noarch

%description javadoc
This package contains the API documentation for %{name}.

%prep
%setup -q -n hornetq-HornetQ_%{customnamedversion}
# Remove bundled .so files
find -name "*.so" -print -delete
find -name "*.jar" -print -delete

%patch0 -p1
rm -rf hornetq-core-client/src/main/java/org/hornetq/utils/json

%pom_change_dep -r :geronimo-json_1.0_spec javax.json:javax.json-api:1.0 hornetq-core-client hornetq-jms-server tests/integration-tests

%pom_disable_module examples
%pom_disable_module hornetq-bootstrap
%pom_disable_module hornetq-service-sar
%pom_disable_module integration/hornetq-aerogear-integration
%pom_disable_module integration/hornetq-jboss-as-integration
%pom_disable_module integration/hornetq-twitter-integration
%pom_disable_module tests

# Incompatible version of qpid-proton-java
%pom_disable_module hornetq-amqp-protocol hornetq-protocols

%pom_remove_dep -r "org.jboss.microcontainer:jboss-kernel"

%if %{with narayana}
%pom_disable_module hornetq-jms-server
%pom_disable_module hornetq-ra
%pom_disable_module hornetq-rest
%pom_disable_module hornetq-tools
%pom_disable_module integration/hornetq-spring-integration
%endif

%pom_change_dep -r org.jboss.jbossts.jts:jbossjts-jacorb org.jboss.narayana.jta:jta
%pom_change_dep -r org.jboss.jbossts.jts:jbossjts-jacorb org.jboss.narayana.jta:jta hornetq-jms-server

%pom_remove_dep -r org.jboss.javaee:jboss-ejb-api
%pom_remove_dep -r org.jboss.javaee:jboss-jaspi-api
%pom_change_dep -r org.jboss.javaee:jboss-jca-api org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec
%pom_change_dep -r org.jboss.javaee:jboss-jca-api org.jboss.spec.javax.resource:jboss-connector-api_1.6_spec hornetq-ra

%pom_remove_plugin -r :license-maven-plugin
%pom_remove_plugin -r :maven-checkstyle-plugin
%pom_remove_plugin -r :maven-help-plugin
%pom_remove_plugin -r :maven-source-plugin
%pom_remove_plugin -r :findbugs-maven-plugin

cp -p distribution/hornetq/src/main/resources/licenses/LICENSE.txt .

# Workaround for building native bits
# Currently the build script uses the .so in the hornetq-nativebin/ directory
# but we need to rebuild them. The issue is that the mvn build process does not
# use the new .so files we've built. Here is a simple workaround.
%pom_xpath_inject "pom:project/pom:profiles" "
<profile>
  <id>native</id>
  <modules>
    <module>hornetq-commons</module>
    <module>hornetq-native</module>
  </modules>
</profile>"

rm -r **/src/test/* tests/*/src/test/*

# [ERROR] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique duplicate declaration of version
%pom_remove_dep org.jboss.logmanager:jboss-logmanager hornetq-server
%pom_add_dep org.jboss.logmanager:jboss-logmanager:1.2.2.GA:test hornetq-server

%build

# Let's build the .so files
%mvn_build -i -f -- -Pnative,native-build
pushd hornetq-native
# Copy them to hornetq-native/bin/ dir
find -name "*.so" -exec cp {} bin/libHornetQAIO.so \;
find -name "*.so" -exec cp {} bin/libHornetQAIO%{__isa_bits}.so \;
popd

# Tests are skipped because required modules are disabled
%mvn_build -sf -- -Pmaven-release

%install
%mvn_install

# Install native stuff
install -d -m 755 %{buildroot}/%{_libdir}
cp -L hornetq-native/bin/libHornetQAIO.so %{buildroot}/%{_libdir}/libHornetQAIO.so

%files commons -f .mfiles-hornetq-commons
%doc README.md
%license LICENSE.txt NOTICE

%files core-client -f .mfiles-hornetq-core-client
%files jms-client -f .mfiles-hornetq-jms-client
%files journal -f .mfiles-hornetq-journal

%post -n hornetq-native -p /sbin/ldconfig
%postun -n hornetq-native -p /sbin/ldconfig

%files native -f .mfiles-hornetq-native
%{_libdir}/libHornetQAIO.so
%doc hornetq-native/README

%files pom -f .mfiles-hornetq-pom
%license LICENSE.txt NOTICE

%files protocols -f .mfiles-hornetq-protocols
%license LICENSE.txt NOTICE

%files server -f .mfiles-hornetq-server
%files stomp-protocol -f .mfiles-hornetq-stomp-protocol

%if %{without narayana}
%files jms-server -f .mfiles-hornetq-jms-server
%files ra -f .mfiles-hornetq-ra
%files rest -f .mfiles-hornetq-rest
%files spring-integration -f .mfiles-hornetq-spring-integration
%files tools -f .mfiles-hornetq-tools
%endif

%files javadoc -f .mfiles-javadoc
%license LICENSE.txt NOTICE

%changelog
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.7-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.7-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.7-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.7-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Nov 01 2016 gil cattaneo <puntogil@libero.it> 2.4.7-3
- remove test suites

* Wed Sep 14 2016 gil cattaneo <puntogil@libero.it> 2.4.7-2
- Obsoletes hornetq package

* Wed Jun 29 2016 gil cattaneo <puntogil@libero.it> 2.4.7-1
- Upstream release 2.4.7.Final
- remove non free json.org

* Mon Jun 13 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.4.1-8
- Add missing BR on java_cup
- Disable hornetq-amqp-protocol module

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.4.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 2.4.1-5
- Rebuilt for GCC 5 C++11 ABI change

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri Mar 28 2014 Michael Simacek <msimacek@redhat.com> - 2.4.1-2
- Use Requires: java-headless rebuild (#1067528)

* Thu Feb 13 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.1-1
- Upstream release 2.4.1.Final

* Fri Jan 24 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-6
- Rebuild with narayana deps

* Fri Jan 24 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-5
- Rebuild without narayana deps
- Enable ARM build

* Tue Jan 21 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-4
- Rebuild to recreate debug package and use new qpid-proton-java package

* Tue Jan 14 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-3
- Rebuild with new narayana
- Exclude ARM for now

* Tue Jan 14 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-2
- Rebuild without narayana to disable circular dependency
- Changes to netty requirement

* Thu Jan 09 2014 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-1
- Upstream release 2.4.0.Final

* Mon Dec 16 2013 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-0.3.Beta3
- Upstream release 2.4.0.Beta3

* Thu Oct 24 2013 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-0.2.Beta1
- Upstream release 2.4.0.Beta2

* Wed Sep 11 2013 Marek Goldmann <mgoldman@redhat.com> - 2.4.0-0.1.Beta1
- Upstream release 2.4.0.Beta1

* Tue Jul 30 2013 Marek Goldmann <mgoldman@redhat.com> - 2.3.1-2
- Rebuild with narayana
- Added hornetq-jms-server and hornetq-ra modules

* Wed Jun 12 2013 Marek Goldmann <mgoldman@redhat.com> - 2.3.1-1
- Upstream release 2.3.1.Final
- New guidelines

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.13-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2.13-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Thu May 24 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-4
- Removed unnecessary Requires

* Wed May 23 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-3
- Removed unnecessary %%global
- Added License file to -devel subpackage
- Removed static files

* Wed May 16 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-2
- Added native part to the build

* Tue May 15 2012 Marek Goldmann <mgoldman@redhat.com> 2.2.13-1
- Initial packaging