# compat-qpid-cpp # Define pkgdocdir for releases that don't define it already %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} %{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} # The following macros are no longer used for installation but only for cleanup %{!?ruby_sitelib: %global ruby_sitelib %(/usr/bin/ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitelibdir"] ')} %{!?ruby_sitearch: %global ruby_sitearch %(/usr/bin/ruby -rrbconfig -e 'puts RbConfig::CONFIG["sitearchdir"] ')} # LIBRARY VERSIONS %global QPIDCOMMON_VERSION_INFO 5:0:0 %global QPIDTYPES_VERSION_INFO 3:0:2 %global QPIDBROKER_VERSION_INFO 5:0:0 %global QPIDCLIENT_VERSION_INFO 5:0:0 %global QPIDMESSAGING_VERSION_INFO 4:0:1 %global RDMAWRAP_VERSION_INFO 5:0:0 %global SSLCOMMON_VERSION_INFO 5:0:0 Name: compat-qpid-cpp Version: 0.24 Release: 10%{?dist} Summary: Libraries for Qpid C++ client applications License: ASL 2.0 URL: http://qpid.apache.org Source0: http://www.apache.org/dist/qpid/%{version}/qpid-%{version}.tar.gz Patch01: 01-NO-JIRA-qpidd.service-file-for-use-on-Fedora.patch Patch02: 02-QPID-4670-Move-to-proton-0.5-remove-dummy-string-in-.patch Patch03: 03-QPID-5122-cleaner-encoding-of-index-for-delivery-tag.patch Patch04: 04-QPID-5123-Changes-to-Fedora-19-packaging-of-libdb4-p.patch Patch05: 05-QPID-5016-Zero-rmgr-struct-element-with-correct-size.patch Patch06: 06-QPID-5126-Fix-for-building-legacy-store-on-ARM-platf.patch Patch07: 07-QPID-4582-Get-legacystore-unit-tests-working.patch Patch08: 08-QPID-4582-Fixed-unit-legacystore-unit-test-to-remove.patch Patch09: 09-QPID-5129-Alignment-issues-on-ARM.patch Patch10: 10-QPID-5499-Fix-Ruby-bindings-when-built-with-Werror-f.patch Patch11: 11-QPID-5656-Updated-Ruby-bindings-to-build-under-CMake.patch Patch12: 12-QPID-5718-Dead-code-in-the-HA-codebase.patch Patch13: 13-NO-JIRA-Removed-dead-code.patch BuildRequires: cmake BuildRequires: boost-devel BuildRequires: libtool BuildRequires: doxygen BuildRequires: pkgconfig BuildRequires: ruby BuildRequires: ruby-devel BuildRequires: python BuildRequires: python-devel BuildRequires: perl BuildRequires: perl-devel BuildRequires: swig BuildRequires: cyrus-sasl-devel BuildRequires: cyrus-sasl-lib BuildRequires: cyrus-sasl BuildRequires: boost-program-options BuildRequires: boost-filesystem BuildRequires: libuuid-devel %ifnarch s390 s390x %{arm} BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel %endif BuildRequires: nss-devel BuildRequires: nspr-devel BuildRequires: xqilla-devel BuildRequires: xerces-c-devel BuildRequires: libdb-devel BuildRequires: libdb4-cxx-devel BuildRequires: libaio-devel BuildRequires: qpid-proton-c-devel%{?_isa} >= 0.5 %description Run-time libraries for AMQP client applications developed using Qpid C++. Clients exchange messages with an AMQP message broker using the AMQP protocol. %package client Conflicts: qpid-cpp-client Summary: Libraries for Qpid C++ client applications Provides: qpid(client) = %{version} Provides: qpid-cpp-client-ssl = %{version} Obsoletes: qpid-cpp-client-ssl < 0.24 Requires: boost Requires: chkconfig Requires: initscripts Requires: qpid-proton-c%{?_isa} >= 0.5 %description client Run-time libraries for AMQP client applications developed using Qpid C++. Clients exchange messages with an AMQP message broker using the AMQP protocol. %files client %doc cpp/DESIGN # %doc cpp/INSTALL %doc cpp/LICENSE %doc cpp/NOTICE %doc cpp/README.txt %doc cpp/RELEASE_NOTES %{_libdir}/libqpidcommon.so.2* %{_libdir}/libqpidclient.so.2* %{_libdir}/libqpidtypes.so.1* %{_libdir}/libqpidmessaging.so.2* %dir %{_libdir}/qpid %ifnarch %{arm} %{_libdir}/qpid/client %exclude %{_libdir}/qpid/client/rdmaconnector.so* %endif %dir %{_sysconfdir}/qpid %config(noreplace) %{_sysconfdir}/qpid/qpidc.conf %post client -p /sbin/ldconfig %postun client -p /sbin/ldconfig %package client-devel Conflicts: qpid-cpp-client-devel Summary: Header files, documentation and testing tools for developing Qpid C++ clients Provides: qpid(client-devel) = %{version} Requires: compat-qpid-cpp-client%{?_isa} = %{version}-%{release} Requires: boost-devel Requires: boost-filesystem Requires: boost-program-options Requires: libuuid-devel Requires: python %description client-devel Libraries, header files and documentation for developing AMQP clients in C++ using Qpid. Qpid implements the AMQP messaging specification. %files client-devel %dir %{_includedir}/qpid %{_includedir}/qpid/*.h %{_includedir}/qpid/qpid.i %{_includedir}/qpid/swig_perl_typemaps.i %{_includedir}/qpid/swig_python_typemaps.i %{_includedir}/qpid/swig_ruby_typemaps.i %{_includedir}/qpid/amqp_0_10 %{_includedir}/qpid/client %{_includedir}/qpid/console %{_includedir}/qpid/framing %{_includedir}/qpid/sys %{_includedir}/qpid/log %{_includedir}/qpid/management %{_includedir}/qpid/messaging %{_includedir}/qpid/agent %{_includedir}/qpid/types %{_libdir}/libqpidcommon.so %{_libdir}/libqpidclient.so %{_libdir}/libqpidtypes.so %{_libdir}/libqpidmessaging.so %{_libdir}/pkgconfig/qpid.pc %{_datadir}/qpid %{_bindir}/qpid-perftest %{_bindir}/qpid-topic-listener %{_bindir}/qpid-topic-publisher %{_bindir}/qpid-latency-test %{_bindir}/qpid-client-test %{_bindir}/qpid-txtest # %{_datadir}/qpid/examples %{_libexecdir}/qpid %post client-devel -p /sbin/ldconfig %postun client-devel -p /sbin/ldconfig %package client-devel-docs Conflicts: qpid-cpp-client-devel-docs Provides: qpid-cpp-client-devel-docs Summary: AMQP client development documentation BuildArch: noarch %description client-devel-docs This package includes the AMQP clients development documentation in HTML format for easy browsing. %files client-devel-docs %doc %{_pkgdocdir} %package server Conflicts: qpid-cpp-server Provides: qpid-cpp-server Summary: An AMQP message broker daemon # Remove with 0.28 Provides: qpid-cpp-server-ssl = %{version} Obsoletes: qpid-cpp-server-ssl < 0.24 Requires: compat-qpid-cpp-client%{?_isa} = %{version}-%{release} Requires: cyrus-sasl Requires: qpid-proton-c%{?_isa} >= 0.5 Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units %description server A message broker daemon that receives stores and routes messages using the open AMQP messaging protocol. %files server %{_libdir}/libqpidbroker.so* %{_sbindir}/qpidd %{_unitdir}/qpidd.service %config(noreplace) %{_sysconfdir}/qpid/qpidd.conf %config(noreplace) %{_sysconfdir}/sasl2/qpidd.conf %{_libdir}/qpid/daemon/* %exclude %{_libdir}/qpid/daemon/rdma.so %attr(755, qpidd, qpidd) %{_localstatedir}/lib/qpidd %ghost %attr(755, qpidd, qpidd) /var/run/qpidd #%attr(600, qpidd, qpidd) %config(noreplace) %{_localstatedir}/lib/qpidd/qpidd.sasldb %doc %{_mandir}/man1/qpidd* %pre server getent group qpidd >/dev/null || groupadd -r qpidd getent passwd qpidd >/dev/null || \ useradd -r -M -g qpidd -d %{_localstatedir}/lib/qpidd -s /sbin/nologin \ -c "Owner of Qpidd Daemons" qpidd exit 0 %post server /sbin/ldconfig if [ $1 -eq 1 ]; then # Initial installation /bin/systemctl --no-reload enable qpidd.service >/dev/null 2>&1 || : fi %preun server if [ $1 -eq 0 ]; then # Package removal, not upgrade /bin/systemctl --no-reload disable qpidd.service > /dev/null 2>&1 || : /bin/systemctl stop qpidd.service > /dev/null 2>&1 || : fi %postun server if [ $1 -ge 1 ]; then # Package upgrade, not uninstall /bin/systemctl stop qpidd.service > /dev/null 2>&1 || : /bin/systemctl start qpidd.service > /dev/null 2>&1 || : fi /sbin/ldconfig %package server-ha Conflicts: qpid-cpp-server-ha Provides: qpid-cpp-server-ha Summary: Provides extensions to the AMQP message broker to provide high availability Requires: compat-qpid-cpp-server%{?_isa} = %{version}-%{release} Requires: qpid-qmf%{?_isa} %description server-ha %{summary}. %files server-ha %{_bindir}/qpid-ha %{_initrddir}/qpidd-primary %{_libdir}/qpid/daemon/ha.so %post server-ha /sbin/chkconfig --add qpidd-primary /sbin/ldconfig %preun server-ha if [ $1 = 0 ]; then /sbin/service qpidd-primary stop > /dev/null 2>&1 || : /sbin/chkconfig --del qpidd-primary fi %postun server-ha if [ $1 -ge 1 ]; then /sbin/service qpidd-primary condrestart >/dev/null 2>&1 || : fi /sbin/ldconfig %ifnarch s390 s390x %{arm} %package client-rdma Conflicts: qpid-cpp-client-rdma Provides: qpid-cpp-client-rdma Summary: RDMA Protocol support (including Infiniband) for Qpid clients Requires: compat-qpid-cpp-client%{?_isa} = %{version}-%{release} %description client-rdma A client plugin and support library to support RDMA protocols (including Infiniband) as the transport for Qpid messaging. %files client-rdma %{_libdir}/librdmawrap.so* %{_libdir}/qpid/client/rdmaconnector.so* %config(noreplace) %{_sysconfdir}/qpid/qpidc.conf %post client-rdma -p /sbin/ldconfig %postun client-rdma -p /sbin/ldconfig %package server-rdma Conflicts: qpid-cpp-server-rdma Provides: qpid-cpp-server-rdma Summary: RDMA Protocol support (including Infiniband) for the Qpid daemon Requires: compat-qpid-cpp-server%{?_isa} = %{version}-%{release} Requires: compat-qpid-cpp-client-rdma%{?_isa} = %{version}-%{release} %description server-rdma A Qpid daemon plugin to support RDMA protocols (including Infiniband) as the transport for AMQP messaging. %files server-rdma %{_libdir}/qpid/daemon/rdma.so %post server-rdma -p /sbin/ldconfig %postun server-rdma -p /sbin/ldconfig %endif %package server-xml Conflicts: qpid-cpp-server-xml Provides: qpid-cpp-server-xml Summary: XML extensions for the Qpid daemon Requires: compat-qpid-cpp-server%{?_isa} = %{version}-%{release} Requires: xqilla Requires: xerces-c %description server-xml A Qpid daemon plugin to support extended XML-based routing of AMQP messages. %files server-xml %{_libdir}/qpid/daemon/xml.so %post server-xml -p /sbin/ldconfig %postun server-xml -p /sbin/ldconfig %package server-store Conflicts: qpid-cpp-server-store Provides: qpid-cpp-server-store Summary: Red Hat persistence extension to the Qpid messaging system License: LGPLv2+ Requires: compat-qpid-cpp-server%{?_isa} = %{version} Requires: db4 # Requires: libaio %description server-store Red Hat persistence extension to the Qpid AMQP broker: persistent message storage using either a libaio-based asynchronous journal, or synchronously with Berkeley DB. %files server-store %{_libdir}/qpid/daemon/store.so %post server-store -p /sbin/ldconfig %postun server-store -p /sbin/ldconfig %package -n compat-qpid-tools Conflicts: qpid-tools Provides: qpid-tools Summary: Management and diagnostic tools for Apache Qpid BuildArch: noarch Requires: python-qpid >= 0.8 Requires: python-qpid-qmf %description -n compat-qpid-tools Management and diagnostic tools for Apache Qpid brokers and clients. %files -n compat-qpid-tools %{_bindir}/qpid-cluster %{_bindir}/qpid-cluster-store %{_bindir}/qpid-config %{_bindir}/qpid-printevents %{_bindir}/qpid-queue-stats %{_bindir}/qpid-route %{_bindir}/qpid-stat %{_bindir}/qpid-tool %doc LICENSE NOTICE %if "%{python_version}" >= "2.6" %{python_sitelib}/qpid_tools-*.egg-info %endif %prep %setup -q -n qpid-%{version} %patch01 -p2 %patch02 -p2 %patch03 -p2 %patch04 -p2 %patch05 -p2 %patch06 -p2 %patch07 -p2 %patch08 -p2 %patch09 -p2 %patch10 -p2 %patch11 -p2 %patch12 -p2 %patch13 -p2 %global perftests "qpid-perftest qpid-topic-listener qpid-topic-publisher qpid-latency-test qpid-client-test qpid-txtest" %global rh_qpid_tests_failover "failover_soak run_failover_soak" %global rh_qpid_tests_clients "replaying_sender resuming_receiver declare_queues" %build pushd cpp %cmake -DDOC_INSTALL_DIR:PATH=%{_pkgdocdir} -DCMAKE_SKIP_RPATH:BOOL=ON . make %{?_smp_mflags} make docs-user-api pushd ../python ./setup.py build popd pushd ../tools ./setup.py build popd popd %install mkdir -p -m0755 %{buildroot}/%{_bindir} mkdir -p -m0755 %{buildroot}/%{_unitdir} pushd python %{__python} setup.py install \ --skip-build \ --install-purelib %{python_sitearch} \ --root %{buildroot} popd pushd tools %{__python} setup.py install \ --skip-build \ --install-purelib %{python_sitelib} \ --root %{buildroot} popd pushd cpp make install DESTDIR=%{buildroot}/ # clean up items we're not installing rm -f %{buildroot}/%{_libdir}/libqpidbroker.so rm -f %{buildroot}/%{_libdir}/libcqpid_perl.so rm -f %{buildroot}/%{_libdir}/ruby/cqmf2.so rm -f %{buildroot}/%{_libdir}/ruby/cqpid.so rm -f %{buildroot}/%{_libdir}/ruby/qmfengine.so rm -f %{buildroot}/%{ruby_sitelib} rm -rf %{buildroot}/%{_libdir}/perl5 # install systemd files mkdir -p %{buildroot}/%{_unitdir} install -pm 644 %{_builddir}/qpid-%{version}/cpp/etc/qpidd.service %{buildroot}/%{_unitdir} rm -f %{buildroot}/%{_initrddir}/qpidd rm -f %{buildroot}/%{_sysconfdir}/init.d/qpidd.service # install perftests utilities mkdir -p %{buildroot}/%{_bindir} pushd src/tests for ptest in %{perftests}; do libtool --mode=install install -m755 $ptest %{buildroot}/%{_bindir} done popd mkdir -p %{buildroot}/%{_localstatedir}/run touch %{buildroot}/%{_localstatedir}/run/qpidd popd # clean up leftover ruby files rm -rf %{buildroot}/usr/local/%{_lib}/ruby/site_ruby %check %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %exclude %{_bindir}/qmf-gen %exclude %{_bindir}/qmf-tool %exclude %{_libdir}/libqmf* %exclude %{_includedir}/qmf %exclude %{python_sitelib}/qmfgen %exclude %{_libdir}/pkgconfig/qmf2.pc %exclude %{python_sitelib}/qpidtoollibs %exclude %{python_sitearch}/cqpid.py* %exclude %{python_sitearch}/_cqpid.so %exclude %{python_sitearch}/qmf.py* %exclude %{python_sitearch}/qmfengine.py* %exclude %{python_sitearch}/_qmfengine.so %exclude %{python_sitearch}/qmf2.py* %exclude %{python_sitearch}/cqmf2.py* %exclude %{python_sitearch}/_cqmf2.so %exclude %{_bindir}/qpid-python-test %exclude %{python_sitearch}/mllib %exclude %{python_sitearch}/qpid %exclude %{python_sitearch}/*.egg-info %ifnarch %{arm} # %exclude %{python_sitearch}/qmf # %exclude %{ruby_vendorlibdir}/qmf* # %exclude %{ruby_vendorarchdir}/cqpid.so # %exclude %{ruby_vendorarchdir}/*qmf* %endif %changelog * Wed May 21 2014 Darryl L. Pierce - 0.24-10 - Added missing version to virtual packages. * Wed May 21 2014 Darryl L. Pierce - 0.24-9 - Changed client packages to provide the virtual qpid() packages. * Tue May 13 2014 Darryl L. Pierce - 0.24-8 - Fixed packages to provide the originals with which they conflict. * Tue May 13 2014 Darryl L. Pierce - 0.24-7 - Fixed ownership of /usr/lib{64}/qpid and /usr/libexec/qpid * Mon May 12 2014 Darryl L. Pierce - 0.24-6 - Updated ruby path macros to use RbConfig instead of Config. - Fixed files for -client package to be more explicit. * Fri May 2 2014 Darryl L. Pierce - 0.24-5 - Fixed CMake build to remove rpath data from binaries. * Tue Apr 29 2014 Darryl L. Pierce - 0.24-4 - Fixes based on package review feedback: - * Packages still requiring others from qpid-cpp * Mon Apr 28 2014 Darryl L. Pierce - 0.24-3 - Removed unnecessary defattr. - Added patch to remove dead/unused code. - Removed clean directive. * Tue Apr 1 2014 Darryl L. Pierce - 0.24-2 - Updated to build against CMake 3.0. * Mon Mar 24 2014 Darryl L. Pierce - 0.24-1 - Initial compatability packaging.