[compat-qpid-cpp] First build for Fedora.
Darryl L. Pierce
mcpierce at fedoraproject.org
Wed May 28 18:52:54 UTC 2014
commit e3eaf3f7db07b8b186167018973932ea2dceed6b
Author: Darryl L. Pierce <mcpierce at gmail.com>
Date: Tue May 27 16:52:51 2014 -0400
First build for Fedora.
- Resolves: BZ#1080583
.gitignore | 1 +
...JIRA-qpidd.service-file-for-use-on-Fedora.patch | 35 ++
...ove-to-proton-0.5-remove-dummy-string-in-.patch | 206 +++++++
...leaner-encoding-of-index-for-delivery-tag.patch | 81 +++
...hanges-to-Fedora-19-packaging-of-libdb4-p.patch | 117 ++++
...ero-rmgr-struct-element-with-correct-size.patch | 26 +
...ix-for-building-legacy-store-on-ARM-platf.patch | 35 ++
...D-4582-Get-legacystore-unit-tests-working.patch | 408 ++++++++++++++
...ixed-unit-legacystore-unit-test-to-remove.patch | 29 +
09-QPID-5129-Alignment-issues-on-ARM.patch | 74 +++
...ix-Ruby-bindings-when-built-with-Werror-f.patch | 83 +++
...pdated-Ruby-bindings-to-build-under-CMake.patch | 83 +++
12-QPID-5718-Dead-code-in-the-HA-codebase.patch | 42 ++
13-NO-JIRA-Removed-dead-code.patch | 32 +
compat-qpid-cpp.spec | 595 ++++++++++++++++++++
compat-qpid-cpp.spec~ | 585 +++++++++++++++++++
sources | 1 +
17 files changed, 2433 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..f1a6f32 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/qpid-0.24.tar.gz
diff --git a/01-NO-JIRA-qpidd.service-file-for-use-on-Fedora.patch b/01-NO-JIRA-qpidd.service-file-for-use-on-Fedora.patch
new file mode 100644
index 0000000..92e1ded
--- /dev/null
+++ b/01-NO-JIRA-qpidd.service-file-for-use-on-Fedora.patch
@@ -0,0 +1,35 @@
+From c77f3a1fd1d93260d57b5e1e9b0792ccc2beb6bb Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <mcpierce at gmail.com>
+Date: Wed, 3 Apr 2013 10:07:37 -0400
+Subject: [PATCH] NO-JIRA: qpidd.service file for use on Fedora
+
+This patch provides the needed systemd file for running the Qpid broker
+as a service.
+---
+ qpid/cpp/etc/qpidd.service | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+ create mode 100644 qpid/cpp/etc/qpidd.service
+
+diff --git a/qpid/cpp/etc/qpidd.service b/qpid/cpp/etc/qpidd.service
+new file mode 100644
+index 0000000..10a99d1
+--- /dev/null
++++ b/qpid/cpp/etc/qpidd.service
+@@ -0,0 +1,14 @@
++[Unit]
++Description=An AMQP message broker daemon.
++Documentation=man:qpidd(1) http://qpid.apache.org/
++Requires=network.target
++After=network.target
++
++[Service]
++User=qpidd
++Group=qpidd
++Type=simple
++ExecStart=/usr/sbin/qpidd --config /etc/qpid/qpidd.conf
++
++[Install]
++WantedBy=multi-user.target
+--
+1.8.4.2
+
diff --git a/02-QPID-4670-Move-to-proton-0.5-remove-dummy-string-in-.patch b/02-QPID-4670-Move-to-proton-0.5-remove-dummy-string-in-.patch
new file mode 100644
index 0000000..7809685
--- /dev/null
+++ b/02-QPID-4670-Move-to-proton-0.5-remove-dummy-string-in-.patch
@@ -0,0 +1,206 @@
+From c909dac986a38640e9b17da4c91c803f5d6c28dd Mon Sep 17 00:00:00 2001
+From: Gordon Sim <gsim at apache.org>
+Date: Wed, 28 Aug 2013 12:41:14 +0000
+Subject: [PATCH 2/2] QPID-4670: Move to proton 0.5, remove dummy string in
+ address for dynamic nodes
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1518180 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/amqp.cmake | 4 ++--
+ qpid/cpp/src/qpid/broker/amqp/Connection.cpp | 3 ---
+ qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp | 9 ++++-----
+ qpid/cpp/src/qpid/broker/amqp/Relay.cpp | 13 +++++++------
+ qpid/cpp/src/qpid/broker/amqp/Relay.h | 5 +++--
+ qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp | 3 ---
+ qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp | 5 -----
+ 7 files changed, 16 insertions(+), 26 deletions(-)
+
+diff --git a/qpid/cpp/src/amqp.cmake b/qpid/cpp/src/amqp.cmake
+index 30cb848..9dfd320 100644
+--- a/qpid/cpp/src/amqp.cmake
++++ b/qpid/cpp/src/amqp.cmake
+@@ -24,8 +24,8 @@ include(FindPkgConfig)
+ pkg_check_modules(PROTON libqpid-proton)
+
+ set (amqp_default ${amqp_force})
+-set (minimum_version 0.3)
+-set (maximum_version 0.4)
++set (minimum_version 0.5)
++set (maximum_version 0.5)
+ if (PROTON_FOUND)
+ if (PROTON_VERSION LESS ${minimum_version})
+ message(STATUS "Qpid proton ${PROTON_VERSION} is too old, require ${minimum_version} - ${maximum_version}; amqp 1.0 support not enabled")
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Connection.cpp b/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
+index 2cb0994..d422124 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
++++ b/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
+@@ -182,12 +182,9 @@ void Connection::open()
+
+ void Connection::readPeerProperties()
+ {
+- /**
+- * TODO: enable when proton 0.5 has been released:
+ qpid::types::Variant::Map properties;
+ DataReader::read(pn_connection_remote_properties(connection), properties);
+ setPeerProperties(properties);
+- */
+ }
+
+ void Connection::closed()
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
+index 68ff979..eb18582 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
++++ b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
+@@ -118,20 +118,19 @@ void OutgoingFromQueue::handle(pn_delivery_t* delivery)
+ if (r.disposition) {
+ switch (r.disposition) {
+ case PN_ACCEPTED:
+- //TODO: only if consuming
+- queue->dequeue(0, r.cursor);
++ if (preAcquires()) queue->dequeue(0, r.cursor);
+ outgoingMessageAccepted();
+ break;
+ case PN_REJECTED:
+- queue->reject(r.cursor);
++ if (preAcquires()) queue->reject(r.cursor);
+ outgoingMessageRejected();
+ break;
+ case PN_RELEASED:
+- queue->release(r.cursor, false);//TODO: for PN_RELEASED, delivery count should not be incremented
++ if (preAcquires()) queue->release(r.cursor, false);//TODO: for PN_RELEASED, delivery count should not be incremented
+ outgoingMessageRejected();//TODO: not quite true...
+ break;
+ case PN_MODIFIED:
+- queue->release(r.cursor, true);//TODO: proper handling of modified
++ if (preAcquires()) queue->release(r.cursor, true);//TODO: proper handling of modified
+ outgoingMessageRejected();//TODO: not quite true...
+ break;
+ default:
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Relay.cpp b/qpid/cpp/src/qpid/broker/amqp/Relay.cpp
+index a08971c..83b3e64 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Relay.cpp
++++ b/qpid/cpp/src/qpid/broker/amqp/Relay.cpp
+@@ -105,14 +105,14 @@ void Relay::detached(Outgoing*)
+ {
+ out = 0;
+ isDetached = true;
+- std::cerr << "Outgoing link detached from relay" << std::endl;
++ QPID_LOG(info, "Outgoing link detached from relay [" << this << "]");
+ if (in) in->wakeup();
+ }
+ void Relay::detached(Incoming*)
+ {
+ in = 0;
+ isDetached = true;
+- std::cerr << "Incoming link detached from relay" << std::endl;
++ QPID_LOG(info, "Incoming link detached from relay [" << this << "]");
+ if (out) out->wakeup();
+ }
+
+@@ -139,13 +139,13 @@ void OutgoingFromRelay::handle(pn_delivery_t* delivery)
+ if (pn_delivery_writable(delivery)) {
+ if (transfer->write(link)) {
+ outgoingMessageSent();
+- QPID_LOG(debug, "Sent relayed message " << name);
++ QPID_LOG(debug, "Sent relayed message " << name << " [" << relay.get() << "]");
+ } else {
+- QPID_LOG(error, "Failed to send relayed message " << name);
++ QPID_LOG(error, "Failed to send relayed message " << name << " [" << relay.get() << "]");
+ }
+ }
+ if (pn_delivery_updated(delivery)) {
+- pn_disposition_t d = transfer->updated();
++ uint64_t d = transfer->updated();
+ switch (d) {
+ case PN_ACCEPTED:
+ outgoingMessageAccepted();
+@@ -226,6 +226,7 @@ void IncomingToRelay::detached()
+ relay->detached(this);
+ }
+
++BufferedTransfer::BufferedTransfer() : disposition(0) {}
+ void BufferedTransfer::initIn(pn_link_t* link, pn_delivery_t* d)
+ {
+ in.handle = d;
+@@ -264,7 +265,7 @@ void BufferedTransfer::initOut(pn_link_t* link)
+ pn_delivery_set_context(out.handle, this);
+ }
+
+-pn_disposition_t BufferedTransfer::updated()
++uint64_t BufferedTransfer::updated()
+ {
+ disposition = pn_delivery_remote_state(out.handle);
+ if (disposition) {
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Relay.h b/qpid/cpp/src/qpid/broker/amqp/Relay.h
+index 0c2d48b..ef70069 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Relay.h
++++ b/qpid/cpp/src/qpid/broker/amqp/Relay.h
+@@ -45,10 +45,11 @@ struct Delivery
+ class BufferedTransfer
+ {
+ public:
++ BufferedTransfer();
+ void initIn(pn_link_t* link, pn_delivery_t* d);
+ bool settle();
+ void initOut(pn_link_t* link);
+- pn_disposition_t updated();
++ uint64_t updated();
+ bool write(pn_link_t*);
+ private:
+ std::vector<char> data;
+@@ -56,7 +57,7 @@ class BufferedTransfer
+ Delivery out;
+ pn_delivery_tag_t dt;
+ std::vector<char> tag;
+- pn_disposition_t disposition;
++ uint64_t disposition;
+ };
+
+ /**
+diff --git a/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp b/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
+index 9ecb46d..0f3d4e4 100644
+--- a/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
++++ b/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp
+@@ -83,8 +83,6 @@ const std::string DELETE_IF_EMPTY("delete-if-empty");
+ const std::string DELETE_IF_UNUSED_AND_EMPTY("delete-if-unused-and-empty");
+ const std::string CREATE_ON_DEMAND("create-on-demand");
+
+-const std::string DUMMY(".");
+-
+ const std::string X_DECLARE("x-declare");
+ const std::string X_BINDINGS("x-bindings");
+ const std::string X_SUBSCRIBE("x-subscribe");
+@@ -506,7 +504,6 @@ void AddressHelper::configure(pn_terminus_t* terminus, CheckMode mode)
+ bool createOnDemand(false);
+ if (isTemporary) {
+ //application expects a name to be generated
+- pn_terminus_set_address(terminus, DUMMY.c_str());//workaround for PROTON-277
+ pn_terminus_set_dynamic(terminus, true);
+ setNodeProperties(terminus);
+ } else {
+diff --git a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
+index c9b7c1a..a7c0f65 100644
+--- a/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
++++ b/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp
+@@ -742,10 +742,6 @@ pn_bytes_t convert(const std::string& s)
+ }
+ void ConnectionContext::setProperties()
+ {
+- /**
+- * Enable when proton 0.5 is released and qpidc has been updated
+- * to use it
+- *
+ pn_data_t* data = pn_connection_properties(connection);
+ pn_data_put_map(data);
+ pn_data_enter(data);
+@@ -760,7 +756,6 @@ void ConnectionContext::setProperties()
+ pn_data_put_symbol(data, convert(CLIENT_PPID));
+ pn_data_put_int(data, sys::SystemInfo::getParentProcessId());
+ pn_data_exit(data);
+- **/
+ }
+
+ const qpid::sys::SecuritySettings* ConnectionContext::getTransportSecuritySettings()
+--
+1.8.3.1
+
diff --git a/03-QPID-5122-cleaner-encoding-of-index-for-delivery-tag.patch b/03-QPID-5122-cleaner-encoding-of-index-for-delivery-tag.patch
new file mode 100644
index 0000000..f762eac
--- /dev/null
+++ b/03-QPID-5122-cleaner-encoding-of-index-for-delivery-tag.patch
@@ -0,0 +1,81 @@
+From 69d1ac622c2db4d357365d03e26eb34c8b992a44 Mon Sep 17 00:00:00 2001
+From: Gordon Sim <gsim at apache.org>
+Date: Tue, 10 Sep 2013 11:03:20 +0000
+Subject: [PATCH] QPID-5122: cleaner encoding of index for delivery tags
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1521433 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp | 18 ++++++++++++++----
+ qpid/cpp/src/qpid/broker/amqp/Outgoing.h | 3 +++
+ 2 files changed, 17 insertions(+), 4 deletions(-)
+
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
+index eb18582..5bcdf67 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
++++ b/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp
+@@ -29,6 +29,7 @@
+ #include "qpid/sys/OutputControl.h"
+ #include "qpid/amqp/descriptors.h"
+ #include "qpid/amqp/MessageEncoder.h"
++#include "qpid/framing/Buffer.h"
+ #include "qpid/framing/reply_exceptions.h"
+ #include "qpid/log/Statement.h"
+
+@@ -91,8 +92,7 @@ void OutgoingFromQueue::write(const char* data, size_t size)
+
+ void OutgoingFromQueue::handle(pn_delivery_t* delivery)
+ {
+- pn_delivery_tag_t tag = pn_delivery_tag(delivery);
+- size_t i = *reinterpret_cast<const size_t*>(tag.bytes);
++ size_t i = Record::getIndex(pn_delivery_tag(delivery));
+ Record& r = deliveries[i];
+ if (pn_delivery_writable(delivery)) {
+ assert(r.msg);
+@@ -254,8 +254,10 @@ OutgoingFromQueue::Record::Record() : delivery(0), disposition(0), index(0) {}
+ void OutgoingFromQueue::Record::init(size_t i)
+ {
+ index = i;
+- tag.bytes = reinterpret_cast<const char*>(&index);
+- tag.size = sizeof(index);
++ qpid::framing::Buffer buffer(tagData, Record::TAG_WIDTH);
++ buffer.putUInt<Record::TAG_WIDTH>(index);
++ tag.bytes = tagData;
++ tag.size = Record::TAG_WIDTH;
+ }
+ void OutgoingFromQueue::Record::reset()
+ {
+@@ -265,5 +267,13 @@ void OutgoingFromQueue::Record::reset()
+ disposition = 0;
+ }
+
++size_t OutgoingFromQueue::Record::getIndex(pn_delivery_tag_t t)
++{
++ assert(t.size == TAG_WIDTH);
++ qpid::framing::Buffer buffer(const_cast<char*>(t.bytes)/*won't ever be written to*/, t.size);
++ return (size_t) buffer.getUInt<TAG_WIDTH>();
++}
++
++
+
+ }}} // namespace qpid::broker::amqp
+diff --git a/qpid/cpp/src/qpid/broker/amqp/Outgoing.h b/qpid/cpp/src/qpid/broker/amqp/Outgoing.h
+index 86d7d46..b53f67f 100644
+--- a/qpid/cpp/src/qpid/broker/amqp/Outgoing.h
++++ b/qpid/cpp/src/qpid/broker/amqp/Outgoing.h
+@@ -117,10 +117,13 @@ class OutgoingFromQueue : public Outgoing, public qpid::broker::Consumer, public
+ int disposition;
+ size_t index;
+ pn_delivery_tag_t tag;
++ static const size_t TAG_WIDTH = sizeof(size_t);
++ char tagData[TAG_WIDTH];//index in encoded form, used for tag
+
+ Record();
+ void init(size_t i);
+ void reset();
++ static size_t getIndex(pn_delivery_tag_t);
+ };
+
+ const bool exclusive;
+--
+1.8.3.1
+
diff --git a/04-QPID-5123-Changes-to-Fedora-19-packaging-of-libdb4-p.patch b/04-QPID-5123-Changes-to-Fedora-19-packaging-of-libdb4-p.patch
new file mode 100644
index 0000000..c0aadf6
--- /dev/null
+++ b/04-QPID-5123-Changes-to-Fedora-19-packaging-of-libdb4-p.patch
@@ -0,0 +1,117 @@
+From e9ec612f443e666df8d54c3a2ab1a7f7d0507326 Mon Sep 17 00:00:00 2001
+From: Kim van der Riet <kpvdr at apache.org>
+Date: Tue, 10 Sep 2013 01:48:58 +0000
+Subject: [PATCH] QPID-5123: Changes to Fedora 19 packaging of libdb4 prevents
+ legacystore from building
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1521335 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/finddb.cmake | 20 +++++++++++---------
+ qpid/cpp/src/legacystore.cmake | 4 ++--
+ qpid/cpp/src/qpid/legacystore/MessageStoreImpl.cpp | 2 +-
+ 3 files changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/qpid/cpp/src/finddb.cmake b/qpid/cpp/src/finddb.cmake
+index fad827c..2f2f94f 100644
+--- a/qpid/cpp/src/finddb.cmake
++++ b/qpid/cpp/src/finddb.cmake
+@@ -22,31 +22,33 @@ if(UNIX)
+ # - Find BerkeleyDB
+ # Find the BerkeleyDB includes and library
+ # This module defines
+-# DB_INCLUDE_DIR, where to find db.h, etc.
++# DB_CXX_INCLUDE_DIR, where to find db_cxx.h, etc.
+ # DB_LIBRARIES, the libraries needed to use BerkeleyDB.
+ # DB_FOUND, If false, do not try to use BerkeleyDB.
+ # also defined, but not for general use are
+ # DB_LIBRARY, where to find the BerkeleyDB library.
+
+-FIND_PATH(DB_INCLUDE_DIR db.h
++FIND_PATH(DB_CXX_INCLUDE_DIR db_cxx.h
+ /usr/local/include/db4
++ /usr/local/include/libdb4
+ /usr/local/include
+ /usr/include/db4
++ /usr/include/libdb4
+ /usr/include
+ )
+
+-SET(DB_NAMES ${DB_NAMES} db_cxx)
++SET(DB_NAMES ${DB_NAMES} db_cxx db_cxx-4)
+ FIND_LIBRARY(DB_LIBRARY
+ NAMES ${DB_NAMES}
+ PATHS /usr/lib /usr/local/lib
+ )
+
+-IF (DB_LIBRARY AND DB_INCLUDE_DIR)
++IF (DB_LIBRARY AND DB_CXX_INCLUDE_DIR)
+ SET(DB_LIBRARIES ${DB_LIBRARY})
+ SET(DB_FOUND "YES")
+-ELSE (DB_LIBRARY AND DB_INCLUDE_DIR)
++ELSE (DB_LIBRARY AND DB_CXX_INCLUDE_DIR)
+ UNSET( DB_FOUND )
+-ENDIF (DB_LIBRARY AND DB_INCLUDE_DIR)
++ENDIF (DB_LIBRARY AND DB_CXX_INCLUDE_DIR)
+
+
+ IF (DB_FOUND)
+@@ -60,15 +62,15 @@ ELSE (DB_FOUND)
+ ENDIF (DB_FOUND)
+
+ # Deprecated declarations.
+-SET (NATIVE_DB_INCLUDE_PATH ${DB_INCLUDE_DIR} )
++SET (NATIVE_DB_INCLUDE_PATH ${DB_CXX_INCLUDE_DIR} )
+ GET_FILENAME_COMPONENT (NATIVE_DB_LIB_PATH ${DB_LIBRARY} PATH)
+
+ MARK_AS_ADVANCED(
+ DB_LIBRARY
+- DB_INCLUDE_DIR
++ DB_CXX_INCLUDE_DIR
+ )
+
+ else(UNIX)
+ MESSAGE(STATUS "BerkeleyDB is ignored on non-Unix platforms")
+ UNSET( DB_FOUND )
+-endif(UNIX)
+\ No newline at end of file
++endif(UNIX)
+diff --git a/qpid/cpp/src/legacystore.cmake b/qpid/cpp/src/legacystore.cmake
+index 9d6876b..1fdb51a 100644
+--- a/qpid/cpp/src/legacystore.cmake
++++ b/qpid/cpp/src/legacystore.cmake
+@@ -126,10 +126,10 @@ if (BUILD_LEGACYSTORE)
+ )
+
+ if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/db-inc.h)
+- message(STATUS "Including BDB from ${DB_INCLUDE_DIR}/db_cxx.h")
++ message(STATUS "Including BDB from ${DB_CXX_INCLUDE_DIR}/db_cxx.h")
+ file(WRITE
+ ${CMAKE_CURRENT_BINARY_DIR}/db-inc.h
+- "#include <${DB_INCLUDE_DIR}/db_cxx.h>\n")
++ "#include <${DB_CXX_INCLUDE_DIR}/db_cxx.h>\n")
+ endif()
+
+ add_library (legacystore MODULE
+diff --git a/qpid/cpp/src/qpid/legacystore/MessageStoreImpl.cpp b/qpid/cpp/src/qpid/legacystore/MessageStoreImpl.cpp
+index c92c982..4db2790 100644
+--- a/qpid/cpp/src/qpid/legacystore/MessageStoreImpl.cpp
++++ b/qpid/cpp/src/qpid/legacystore/MessageStoreImpl.cpp
+@@ -21,6 +21,7 @@
+
+ #include "qpid/legacystore/MessageStoreImpl.h"
+
++#include "db-inc.h"
+ #include "qpid/broker/QueueSettings.h"
+ #include "qpid/legacystore/BindingDbt.h"
+ #include "qpid/legacystore/BufferValue.h"
+@@ -31,7 +32,6 @@
+ #include "qmf/org/apache/qpid/legacystore/Package.h"
+ #include "qpid/legacystore/StoreException.h"
+ #include <dirent.h>
+-#include <db.h>
+
+ #define MAX_AIO_SLEEPS 100000 // tot: ~1 sec
+ #define AIO_SLEEP_TIME_US 10 // 0.01 ms
+--
+1.8.3.1
+
diff --git a/05-QPID-5016-Zero-rmgr-struct-element-with-correct-size.patch b/05-QPID-5016-Zero-rmgr-struct-element-with-correct-size.patch
new file mode 100644
index 0000000..fb8fadd
--- /dev/null
+++ b/05-QPID-5016-Zero-rmgr-struct-element-with-correct-size.patch
@@ -0,0 +1,26 @@
+From ba91d731c6dc24c012b6abb3ceb5b14d0f7ae8f7 Mon Sep 17 00:00:00 2001
+From: Andrew Stitcher <astitcher at apache.org>
+Date: Thu, 25 Jul 2013 18:39:52 +0000
+Subject: [PATCH] QPID-5016: Zero rmgr struct element with correct size.
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1507085 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/qpid/legacystore/jrnl/rmgr.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/rmgr.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/rmgr.cpp
+index 3a11817..204affd 100644
+--- a/qpid/cpp/src/qpid/legacystore/jrnl/rmgr.cpp
++++ b/qpid/cpp/src/qpid/legacystore/jrnl/rmgr.cpp
+@@ -72,7 +72,7 @@ rmgr::initialize(aio_callback* const cbp)
+ throw jexception(jerrno::JERR__MALLOC, oss.str(), "rmgr", "initialize");
+ }
+ _fhdr_aio_cb_ptr = new aio_cb;
+- std::memset(_fhdr_aio_cb_ptr, 0, sizeof(aio_cb*));
++ std::memset(_fhdr_aio_cb_ptr, 0, sizeof(aio_cb));
+ }
+
+ void
+--
+1.8.3.1
+
diff --git a/06-QPID-5126-Fix-for-building-legacy-store-on-ARM-platf.patch b/06-QPID-5126-Fix-for-building-legacy-store-on-ARM-platf.patch
new file mode 100644
index 0000000..c4b6aab
--- /dev/null
+++ b/06-QPID-5126-Fix-for-building-legacy-store-on-ARM-platf.patch
@@ -0,0 +1,35 @@
+From 0bd06fdd4d4bcbef63de1e2ee4a1e4cee9b0d7f4 Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <mcpierce at apache.org>
+Date: Tue, 10 Sep 2013 20:24:29 +0000
+Subject: [PATCH] QPID-5126: Fix for building legacy store on ARM platforms
+
+Contributed by: Kim van der Riet <kim.vdriet at redhat.com>
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1521629 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/qpid/legacystore/jrnl/jcfg.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/jcfg.h b/qpid/cpp/src/qpid/legacystore/jrnl/jcfg.h
+index 0a0d0df..01d92ee 100644
+--- a/qpid/cpp/src/qpid/legacystore/jrnl/jcfg.h
++++ b/qpid/cpp/src/qpid/legacystore/jrnl/jcfg.h
+@@ -33,13 +33,13 @@
+ #ifndef QPID_LEGACYSTORE_JRNL_JCFG_H
+ #define QPID_LEGACYSTORE_JRNL_JCFG_H
+
+-#if defined(__i386__) /* little endian, 32 bits */
++#if defined(__i386__) || (__arm__) /* little endian, 32 bits */
+ #define JRNL_LITTLE_ENDIAN
+ #define JRNL_32_BIT
+ #elif defined(__PPC__) || defined(__s390__) /* big endian, 32 bits */
+ #define JRNL_BIG_ENDIAN
+ #define JRNL_32_BIT
+-#elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__) /* little endian, 64 bits */
++#elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__) || (__arm64__) /* little endian, 64 bits */
+ #define JRNL_LITTLE_ENDIAN
+ #define JRNL_64_BIT
+ #elif defined(__powerpc64__) || defined(__s390x__) /* big endian, 64 bits */
+--
+1.8.3.1
+
diff --git a/07-QPID-4582-Get-legacystore-unit-tests-working.patch b/07-QPID-4582-Get-legacystore-unit-tests-working.patch
new file mode 100644
index 0000000..db286b3
--- /dev/null
+++ b/07-QPID-4582-Get-legacystore-unit-tests-working.patch
@@ -0,0 +1,408 @@
+From e6147f6717def76f8c62c1ab1e6ba23afbd519a6 Mon Sep 17 00:00:00 2001
+From: Andrew Stitcher <astitcher at apache.org>
+Date: Tue, 8 Oct 2013 15:08:44 +0000
+Subject: [PATCH 1/2] QPID-4582: Get legacystore unit tests working
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1530300 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/CMakeLists.txt | 1 +
+ qpid/cpp/src/legacystore.cmake | 20 +++++++
+ qpid/cpp/src/tests/legacystore/CMakeLists.txt | 28 ++++-----
+ qpid/cpp/src/tests/legacystore/OrderingTest.cpp | 17 +++---
+ qpid/cpp/src/tests/legacystore/SimpleTest.cpp | 31 +++++-----
+ .../src/tests/legacystore/TransactionalTest.cpp | 15 +++--
+ .../src/tests/legacystore/TwoPhaseCommitTest.cpp | 15 +++--
+ qpid/cpp/src/tests/legacystore/run_test | 69 ----------------------
+ 8 files changed, 76 insertions(+), 120 deletions(-)
+ delete mode 100644 qpid/cpp/src/tests/legacystore/run_test
+
+diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
+index c1d1640..53edb52 100644
+--- a/qpid/cpp/src/CMakeLists.txt
++++ b/qpid/cpp/src/CMakeLists.txt
+@@ -1602,6 +1602,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+ add_subdirectory(qpid/store)
+ add_subdirectory(tests)
++add_subdirectory(tests/legacystore)
+
+ # Support for pkg-config
+
+diff --git a/qpid/cpp/src/legacystore.cmake b/qpid/cpp/src/legacystore.cmake
+index 1fdb51a..afb5ea0 100644
+--- a/qpid/cpp/src/legacystore.cmake
++++ b/qpid/cpp/src/legacystore.cmake
+@@ -152,6 +152,26 @@ if (BUILD_LEGACYSTORE)
+ ${DB_LIBRARY}
+ )
+
++ # For use in the store tests only
++ add_library (legacystore_shared SHARED
++ ${legacy_jrnl_SOURCES}
++ ${legacy_store_SOURCES}
++ ${legacy_qmf_SOURCES}
++ )
++
++ set_target_properties (legacystore_shared PROPERTIES
++ COMPILE_DEFINITIONS _IN_QPID_BROKER
++ INCLUDE_DIRECTORIES "${legacy_include_DIRECTORIES}"
++ )
++
++ target_link_libraries (legacystore_shared
++ aio
++ uuid
++ qpidcommon qpidtypes qpidbroker
++ ${Boost_PROGRAM_OPTIONS_LIBRARY}
++ ${DB_LIBRARY}
++ )
++
+ install(TARGETS legacystore
+ DESTINATION ${QPIDD_MODULE_DIR}
+ COMPONENT ${QPID_COMPONENT_BROKER})
+diff --git a/qpid/cpp/src/tests/legacystore/CMakeLists.txt b/qpid/cpp/src/tests/legacystore/CMakeLists.txt
+index 6cfaa7e..cf5062c 100644
+--- a/qpid/cpp/src/tests/legacystore/CMakeLists.txt
++++ b/qpid/cpp/src/tests/legacystore/CMakeLists.txt
+@@ -70,36 +70,28 @@ set (qpid_test_boost_libs
+ # womp on each other's store directory.
+
+ #
+-# define_selftest
++# define_legacystore_test
+ # macro to accept the name of a single source file and to create a
+ # unit test executable that runs the source.
+ #
+-MACRO (define_selftest theSourceFile)
++MACRO (define_legacystore_test theSourceFile)
+ add_executable (legacystore_${theSourceFile}
+- unit_test
+ ${theSourceFile}
++ unit_test
+ ${platform_test_additions})
+ target_link_libraries (legacystore_${theSourceFile}
+ ${qpid_test_boost_libs}
+- qpidmessaging qpidbroker qmfconsole legacystore)
+-get_property(ls_include TARGET legacystore_${theSourceFile} PROPERTY INCLUDE_DIRECTORIES)
+-list(APPEND ls_include ${abs_top_srcdir}/src/qpid/legacystore)
+-list(APPEND ls_include ${abs_top_srcdir}/src/tests)
+-set_target_properties (legacystore_${theSourceFile} PROPERTIES
+- INCLUDE_DIRECTORIES "${ls_include}"
+- COMPILE_DEFINITIONS _IN_QPID_BROKER)
++ qpidmessaging qpidtypes qpidbroker qpidcommon legacystore_shared)
++set_target_properties (legacystore_${theSourceFile} PROPERTIES COMPILE_DEFINITIONS _IN_QPID_BROKER)
+ remember_location(legacystore_${theSourceFile})
+-set(test_wrap ${shell} ${CMAKE_CURRENT_SOURCE_DIR}/run_test${test_script_suffix})
+
+ add_test (legacystore_${theSourceFile} ${test_wrap} ${legacystore_${theSourceFile}_LOCATION})
+-ENDMACRO (define_selftest)
+-
+-# add_definitions(-H)
++ENDMACRO (define_legacystore_test)
+
+-define_selftest (SimpleTest)
+-define_selftest (OrderingTest)
+-define_selftest (TransactionalTest)
+-define_selftest (TwoPhaseCommitTest)
++define_legacystore_test (SimpleTest)
++define_legacystore_test (OrderingTest)
++define_legacystore_test (TransactionalTest)
++define_legacystore_test (TwoPhaseCommitTest)
+
+ #
+ # Other test programs
+diff --git a/qpid/cpp/src/tests/legacystore/OrderingTest.cpp b/qpid/cpp/src/tests/legacystore/OrderingTest.cpp
+index 92a09f0..74a9db1 100644
+--- a/qpid/cpp/src/tests/legacystore/OrderingTest.cpp
++++ b/qpid/cpp/src/tests/legacystore/OrderingTest.cpp
+@@ -20,16 +20,18 @@
+ */
+
+ #include "unit_test.h"
++#include "MessageUtils.h"
+
++#include "qpid/broker/Queue.h"
++#include "qpid/broker/RecoveryManagerImpl.h"
++#include "qpid/broker/PersistableObject.h"
++#include "qpid/framing/AMQHeaderBody.h"
+ #include "qpid/legacystore/MessageStoreImpl.h"
+-#include <iostream>
+-#include "MessageUtils.h"
+-#include <qpid/broker/Queue.h>
+-#include <qpid/broker/RecoveryManagerImpl.h>
+-#include <qpid/framing/AMQHeaderBody.h>
+ #include "qpid/log/Logger.h"
+ #include "qpid/sys/Timer.h"
+
++#include <iostream>
++
+ using namespace qpid;
+ using namespace qpid::broker;
+ using namespace qpid::framing;
+@@ -48,7 +50,7 @@ QPID_AUTO_TEST_SUITE(OrderingTest)
+
+ const std::string test_filename("OrderingTest");
+ const char* tdp = getenv("TMP_DATA_DIR");
+-const std::string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/tmp/OrderingTest");
++const std::string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/var/tmp/OrderingTest");
+
+ // === Helper fns ===
+
+@@ -118,7 +120,8 @@ void restart()
+ sys::Timer t;
+ DtxManager mgr(t);
+ mgr.setStore (store.get());
+- RecoveryManagerImpl recoveryMgr(queues, exchanges, links, mgr, br.getProtocolRegistry());
++ RecoveredObjects ro;
++ RecoveryManagerImpl recoveryMgr(queues, exchanges, links, mgr, br.getProtocolRegistry(), ro);
+ store->recover(recoveryMgr);
+
+ queue = queues.find(name);
+diff --git a/qpid/cpp/src/tests/legacystore/SimpleTest.cpp b/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
+index a49333d..e03e005 100644
+--- a/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
++++ b/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
+@@ -20,21 +20,23 @@
+ */
+
+ #include "unit_test.h"
++#include "MessageUtils.h"
+
++#include "qpid/broker/DirectExchange.h"
++#include "qpid/broker/Queue.h"
++#include "qpid/broker/QueueSettings.h"
++#include "qpid/broker/RecoveryManagerImpl.h"
++#include "qpid/broker/PersistableObject.h"
++#include "qpid/framing/AMQHeaderBody.h"
++#include "qpid/framing/FieldTable.h"
++#include "qpid/framing/FieldValue.h"
+ #include "qpid/legacystore/MessageStoreImpl.h"
+-#include <iostream>
+-#include "tests/legacystore/MessageUtils.h"
+ #include "qpid/legacystore/StoreException.h"
+-#include "qpid/broker/DirectExchange.h"
+-#include <qpid/broker/Queue.h>
+-#include <qpid/broker/QueueSettings.h>
+-#include <qpid/broker/RecoveryManagerImpl.h>
+-#include <qpid/framing/AMQHeaderBody.h>
+-#include <qpid/framing/FieldTable.h>
+-#include <qpid/framing/FieldValue.h>
+ #include "qpid/log/Logger.h"
+ #include "qpid/sys/Timer.h"
+
++#include <iostream>
++
+ qpid::broker::Broker::Options opts;
+ qpid::broker::Broker br(opts);
+
+@@ -57,15 +59,15 @@ QPID_AUTO_TEST_SUITE(SimpleTest)
+
+ const string test_filename("SimpleTest");
+ const char* tdp = getenv("TMP_DATA_DIR");
+-const string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/tmp/SimpleTest");
++const string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/var/tmp/SimpleTest");
+
+ // === Helper fns ===
+
+-struct DummyHandler : OutputHandler
++struct DummyHandler : FrameHandler
+ {
+ std::vector<AMQFrame> frames;
+
+- virtual void send(AMQFrame& frame){
++ virtual void handle(AMQFrame& frame){
+ frames.push_back(frame);
+ }
+ };
+@@ -75,7 +77,8 @@ void recover(MessageStoreImpl& store, QueueRegistry& queues, ExchangeRegistry& e
+ sys::Timer t;
+ DtxManager mgr(t);
+ mgr.setStore (&store);
+- RecoveryManagerImpl recovery(queues, exchanges, links, mgr, br.getProtocolRegistry());
++ RecoveredObjects ro;
++ RecoveryManagerImpl recovery(queues, exchanges, links, mgr, br.getProtocolRegistry(), ro);
+ store.recover(recovery);
+ }
+
+@@ -307,7 +310,7 @@ QPID_AUTO_TEST_CASE(Enqueue)
+ BOOST_CHECK_EQUAL(routingKey, msg.getRoutingKey());
+ BOOST_CHECK_EQUAL(messageId, MessageUtils::getMessageId(msg));
+ BOOST_CHECK_EQUAL(std::string("xyz"), msg.getAnnotation("abc"));
+- BOOST_CHECK_EQUAL((u_int64_t) 14, msg.getContentSize());
++ BOOST_CHECK_EQUAL((u_int64_t) 14, msg.getContent().size());
+
+ DummyHandler handler;
+ MessageUtils::deliver(msg, handler, 100);
+diff --git a/qpid/cpp/src/tests/legacystore/TransactionalTest.cpp b/qpid/cpp/src/tests/legacystore/TransactionalTest.cpp
+index 2d3f6f9..d1bc34d 100644
+--- a/qpid/cpp/src/tests/legacystore/TransactionalTest.cpp
++++ b/qpid/cpp/src/tests/legacystore/TransactionalTest.cpp
+@@ -20,18 +20,20 @@
+ */
+
+ #include "unit_test.h"
+-
+-#include "qpid/legacystore/MessageStoreImpl.h"
+-#include <iostream>
+ #include "MessageUtils.h"
+-#include "qpid/legacystore/StoreException.h"
++
+ #include "qpid/broker/Queue.h"
+ #include "qpid/broker/RecoveryManagerImpl.h"
++#include "qpid/broker/PersistableObject.h"
+ #include "qpid/framing/AMQHeaderBody.h"
++#include "qpid/legacystore/MessageStoreImpl.h"
++#include "qpid/legacystore/StoreException.h"
+ #include "qpid/log/Statement.h"
+ #include "qpid/log/Logger.h"
+ #include "qpid/sys/Timer.h"
+
++#include <iostream>
++
+ using namespace mrg::msgstore;
+ using namespace qpid;
+ using namespace qpid::broker;
+@@ -53,7 +55,7 @@ QPID_AUTO_TEST_SUITE(TransactionalTest)
+
+ const string test_filename("TransactionalTest");
+ const char* tdp = getenv("TMP_DATA_DIR");
+-const string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/tmp/TransactionalTest");
++const string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/var/tmp/TransactionalTest");
+
+ // Test txn context which has special setCompleteFailure() method which prevents entire "txn complete" process from hapenning
+ class TestTxnCtxt : public TxnCtxt
+@@ -141,7 +143,8 @@ void restart()
+ sys::Timer t;
+ DtxManager mgr(t);
+ mgr.setStore (store.get());
+- RecoveryManagerImpl recovery(*queues, exchanges, links, mgr, br.getProtocolRegistry());
++ RecoveredObjects ro;
++ RecoveryManagerImpl recovery(*queues, exchanges, links, mgr, br.getProtocolRegistry(), ro);
+ store->recover(recovery);
+
+ queueA = queues->find(nameA);
+diff --git a/qpid/cpp/src/tests/legacystore/TwoPhaseCommitTest.cpp b/qpid/cpp/src/tests/legacystore/TwoPhaseCommitTest.cpp
+index 92e49df..25bb9dc 100644
+--- a/qpid/cpp/src/tests/legacystore/TwoPhaseCommitTest.cpp
++++ b/qpid/cpp/src/tests/legacystore/TwoPhaseCommitTest.cpp
+@@ -20,18 +20,20 @@
+ */
+
+ #include "unit_test.h"
+-
+-#include "qpid/legacystore/MessageStoreImpl.h"
+-#include <iostream>
+ #include "MessageUtils.h"
++
+ #include "qpid/broker/Queue.h"
+ #include "qpid/broker/RecoveryManagerImpl.h"
++#include "qpid/broker/PersistableObject.h"
+ #include "qpid/framing/AMQHeaderBody.h"
+-#include "qpid/log/Statement.h"
++#include "qpid/legacystore/MessageStoreImpl.h"
+ #include "qpid/legacystore/TxnCtxt.h"
+ #include "qpid/log/Logger.h"
++#include "qpid/log/Statement.h"
+ #include "qpid/sys/Timer.h"
+
++#include <iostream>
++
+ using namespace mrg::msgstore;
+ using namespace qpid;
+ using namespace qpid::broker;
+@@ -54,7 +56,7 @@ QPID_AUTO_TEST_SUITE(TwoPhaseCommitTest)
+
+ const string test_filename("TwoPhaseCommitTest");
+ const char* tdp = getenv("TMP_DATA_DIR");
+-string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/tmp/TwoPhaseCommitTest");
++string test_dir(tdp && strlen(tdp) > 0 ? tdp : "/var/tmp/TwoPhaseCommitTest");
+
+ // === Helper fns ===
+
+@@ -386,7 +388,8 @@ class TwoPhaseCommitTest
+ links = std::auto_ptr<LinkRegistry>(new LinkRegistry);
+ dtxmgr = std::auto_ptr<DtxManager>(new DtxManager(t));
+ dtxmgr->setStore (store.get());
+- RecoveryManagerImpl recovery(*queues, exchanges, *links, *dtxmgr, br.getProtocolRegistry());
++ RecoveredObjects ro;
++ RecoveryManagerImpl recovery(*queues, exchanges, *links, *dtxmgr, br.getProtocolRegistry(), ro);
+ store->recover(recovery);
+
+ queueA = queues->find(nameA);
+diff --git a/qpid/cpp/src/tests/legacystore/run_test b/qpid/cpp/src/tests/legacystore/run_test
+deleted file mode 100644
+index 1d5c2ae..0000000
+--- a/qpid/cpp/src/tests/legacystore/run_test
++++ /dev/null
+@@ -1,69 +0,0 @@
+-#!/bin/bash
+-
+-#
+-# Licensed to the Apache Software Foundation (ASF) under one
+-# or more contributor license agreements. See the NOTICE file
+-# distributed with this work for additional information
+-# regarding copyright ownership. The ASF licenses this file
+-# to you under the Apache License, Version 2.0 (the
+-# "License"); you may not use this file except in compliance
+-# with the License. You may obtain a copy of the License at
+-#
+-# http://www.apache.org/licenses/LICENSE-2.0
+-#
+-# Unless required by applicable law or agreed to in writing,
+-# software distributed under the License is distributed on an
+-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+-# KIND, either express or implied. See the License for the
+-# specific language governing permissions and limitations
+-# under the License.
+-#
+-
+-# Set up environment and run a test executable or script.
+-#
+-# Output nothing if test passes, show the output if it fails and
+-# leave output in <test>.log for examination.
+-#
+-# If qpidd.port exists run test with QPID_PORT=`cat qpidd.port`
+-#
+-# If $VALGRIND if is set run under valgrind. If there are valgrind
+-# erros show valgrind output, also leave it in <test>.valgrind for
+-# examination.
+-#
+-
+-source `dirname $0`/vg_check
+-
+-# Export variables from makefile.
+-export VALGRIND srcdir
+-
+-# Export QPID_PORT if qpidd.port exists.
+-test -f qpidd.port && export QPID_PORT=`cat qpidd.port`
+-
+-# Avoid silly libtool error messages if these are not defined
+-test -z "$LC_ALL" && export LC_ALL=
+-test -z "$LC_CTYPE" && export LC_CTYPE=
+-test -z "$LC_COLLATE" && export LC_COLLATE=
+-test -z "$LC_MESSAGES" && export LC_MESSAGES=
+-
+-VG_LOG="$1.vglog"
+-rm -f $VG_LOG*
+-
+-if grep -l "^# Generated by .*libtool" "$1" >/dev/null 2>&1; then
+- # This is a libtool "executable". Valgrind it if VALGRIND specified.
+- test -n "$VALGRIND" && VALGRIND="$VALGRIND --log-file=$VG_LOG --"
+- # Hide output unless there's an error.
+- libtool --mode=execute $VALGRIND "$@" 2>&1 || ERROR=$?
+- test -n "$VALGRIND" && vg_check $VG_LOG*
+-else
+- # This is a non-libtool shell script, just execute it.
+- export VALGRIND srcdir
+- exec "$@"
+-fi
+-
+-if test -z "$ERROR"; then
+- # Clean up logs if there was no error.
+- rm -f $VG_LOG*
+- exit 0
+-else
+- exit $ERROR
+-fi
+--
+1.8.3.1
+
diff --git a/08-QPID-4582-Fixed-unit-legacystore-unit-test-to-remove.patch b/08-QPID-4582-Fixed-unit-legacystore-unit-test-to-remove.patch
new file mode 100644
index 0000000..3a67f72
--- /dev/null
+++ b/08-QPID-4582-Fixed-unit-legacystore-unit-test-to-remove.patch
@@ -0,0 +1,29 @@
+From 5a5116a6f139e51a729231e49c3c1fac83b41884 Mon Sep 17 00:00:00 2001
+From: Andrew Stitcher <astitcher at apache.org>
+Date: Wed, 9 Oct 2013 15:35:00 +0000
+Subject: [PATCH 2/2] QPID-4582: Fixed unit legacystore unit test to remove
+ warning under RHEL5
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1530681 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/tests/legacystore/SimpleTest.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/qpid/cpp/src/tests/legacystore/SimpleTest.cpp b/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
+index e03e005..c769bde 100644
+--- a/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
++++ b/qpid/cpp/src/tests/legacystore/SimpleTest.cpp
+@@ -235,8 +235,8 @@ QPID_AUTO_TEST_CASE(QueueCreateWithSettings)
+ recover(store, registry);
+ Queue::shared_ptr queue = registry.find(name);
+ BOOST_REQUIRE(queue);
+- BOOST_CHECK_EQUAL(settings.maxDepth.getCount(), 202);
+- BOOST_CHECK_EQUAL(settings.maxDepth.getSize(), 1003);
++ BOOST_CHECK_EQUAL(settings.maxDepth.getCount(), 202u);
++ BOOST_CHECK_EQUAL(settings.maxDepth.getSize(), 1003u);
+ BOOST_CHECK_EQUAL(settings.maxDepth.getCount(), queue->getSettings().maxDepth.getCount());
+ BOOST_CHECK_EQUAL(settings.maxDepth.getSize(), queue->getSettings().maxDepth.getSize());
+ }
+--
+1.8.3.1
+
diff --git a/09-QPID-5129-Alignment-issues-on-ARM.patch b/09-QPID-5129-Alignment-issues-on-ARM.patch
new file mode 100644
index 0000000..26e92fd
--- /dev/null
+++ b/09-QPID-5129-Alignment-issues-on-ARM.patch
@@ -0,0 +1,74 @@
+From f4c9baa75fbc87bde4419f7dd54e570d82a497ce Mon Sep 17 00:00:00 2001
+From: Andrew Stitcher <astitcher at apache.org>
+Date: Tue, 8 Oct 2013 15:09:05 +0000
+Subject: [PATCH] QPID-5129: Alignment issues on ARM
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1530302 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp | 6 ++++--
+ qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp | 6 ++++--
+ qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp | 3 ++-
+ 3 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
+index f820c3c..270ebdd 100644
+--- a/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
++++ b/qpid/cpp/src/qpid/legacystore/jrnl/deq_rec.cpp
+@@ -270,12 +270,14 @@ deq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
+ // Get and check header
+ _deq_hdr.hdr_copy(h);
+ rd_cnt = sizeof(rec_hdr);
+- _deq_hdr._deq_rid = *(u_int64_t*)((char*)rptr + rd_cnt);
++ //_deq_hdr._deq_rid = *(u_int64_t*)((char*)rptr + rd_cnt);
++ std::memcpy((void*)&_deq_hdr._deq_rid, (char*)rptr + rd_cnt, sizeof(u_int64_t));
+ rd_cnt += sizeof(u_int64_t);
+ #if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
+ rd_cnt += sizeof(u_int32_t); // Filler 0
+ #endif
+- _deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ //_deq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ std::memcpy((void*)&_deq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
+ rd_cnt = _deq_hdr.size();
+ chk_hdr();
+ if (_deq_hdr._xidsize)
+diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
+index 4685998..94f4206 100644
+--- a/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
++++ b/qpid/cpp/src/qpid/legacystore/jrnl/enq_rec.cpp
+@@ -360,7 +360,8 @@ enq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
+ #if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
+ rd_cnt += sizeof(u_int32_t); // Filler 0
+ #endif
+- _enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ //_enq_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ std::memcpy((void*)&_enq_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
+ rd_cnt += sizeof(std::size_t);
+ #if defined(JRNL_LITTLE_ENDIAN) && defined(JRNL_32_BIT)
+ rd_cnt += sizeof(u_int32_t); // Filler 0
+@@ -368,7 +369,8 @@ enq_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
+ #if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
+ rd_cnt += sizeof(u_int32_t); // Filler 1
+ #endif
+- _enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ //_enq_hdr._dsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ std::memcpy((void*)&_enq_hdr._dsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
+ rd_cnt = _enq_hdr.size();
+ chk_hdr();
+ if (_enq_hdr._xidsize + (_enq_hdr.is_external() ? 0 : _enq_hdr._dsize))
+diff --git a/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp b/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
+index 918a6ce..1008e77 100644
+--- a/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
++++ b/qpid/cpp/src/qpid/legacystore/jrnl/txn_rec.cpp
+@@ -270,7 +270,8 @@ txn_rec::decode(rec_hdr& h, void* rptr, u_int32_t rec_offs_dblks, u_int32_t max_
+ #if defined(JRNL_BIG_ENDIAN) && defined(JRNL_32_BIT)
+ rd_cnt += sizeof(u_int32_t); // Filler 0
+ #endif
+- _txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ //_txn_hdr._xidsize = *(std::size_t*)((char*)rptr + rd_cnt);
++ std::memcpy((void*)&_txn_hdr._xidsize, (char*)rptr + rd_cnt, sizeof(std::size_t));
+ rd_cnt = _txn_hdr.size();
+ chk_hdr();
+ _buff = std::malloc(_txn_hdr._xidsize);
+--
+1.8.3.1
+
diff --git a/10-QPID-5499-Fix-Ruby-bindings-when-built-with-Werror-f.patch b/10-QPID-5499-Fix-Ruby-bindings-when-built-with-Werror-f.patch
new file mode 100644
index 0000000..cd2927e
--- /dev/null
+++ b/10-QPID-5499-Fix-Ruby-bindings-when-built-with-Werror-f.patch
@@ -0,0 +1,83 @@
+From ba180ca4a513615339b270f53b5ed78dc4169efe Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <dpierce at redhat.com>
+Date: Tue, 21 Jan 2014 14:16:38 -0500
+Subject: [PATCH] QPID-5499: Fix Ruby/Perl bindings when built with
+ -Werror=format-security
+
+Changed the swig descriptors so that they use a constant format string.
+---
+ qpid/cpp/bindings/qmf2/ruby/ruby.i | 2 +-
+ qpid/cpp/bindings/qpid/perl/perl.i | 2 +-
+ qpid/cpp/bindings/qpid/ruby/ruby.i | 2 +-
+ qpid/cpp/include/qpid/swig_perl_typemaps.i | 2 +-
+ qpid/cpp/include/qpid/swig_ruby_typemaps.i | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/qpid/cpp/bindings/qmf2/ruby/ruby.i b/qpid/cpp/bindings/qmf2/ruby/ruby.i
+index 0254017..65d0770 100644
+--- a/qpid/cpp/bindings/qmf2/ruby/ruby.i
++++ b/qpid/cpp/bindings/qmf2/ruby/ruby.i
+@@ -30,7 +30,7 @@
+ }
+ catch (qpid::types::Exception& mex) {
+ static VALUE qmferror = rb_define_class("QmfError", rb_eStandardError);
+- rb_raise(qmferror, mex.what());
++ rb_raise(qmferror, "%s", mex.what());
+ }
+ }
+
+diff --git a/qpid/cpp/bindings/qpid/perl/perl.i b/qpid/cpp/bindings/qpid/perl/perl.i
+index 0d118ae..4dc2665 100644
+--- a/qpid/cpp/bindings/qpid/perl/perl.i
++++ b/qpid/cpp/bindings/qpid/perl/perl.i
+@@ -27,7 +27,7 @@
+ $action
+ }
+ catch (qpid::messaging::MessagingException& mex) {
+- Perl_croak(aTHX_ mex.what());
++ Perl_croak(aTHX_ "%s", mex.what());
+ }
+ }
+
+diff --git a/qpid/cpp/bindings/qpid/ruby/ruby.i b/qpid/cpp/bindings/qpid/ruby/ruby.i
+index 3d686c2..99d29b0 100644
+--- a/qpid/cpp/bindings/qpid/ruby/ruby.i
++++ b/qpid/cpp/bindings/qpid/ruby/ruby.i
+@@ -30,7 +30,7 @@
+ }
+ catch (qpid::messaging::MessagingException& mex) {
+ static VALUE merror = rb_define_class("MessagingError", rb_eStandardError);
+- rb_raise(merror, mex.what());
++ rb_raise(merror, "%s", mex.what());
+ }
+ }
+
+diff --git a/qpid/cpp/include/qpid/swig_perl_typemaps.i b/qpid/cpp/include/qpid/swig_perl_typemaps.i
+index da24bfe..74d2b07 100644
+--- a/qpid/cpp/include/qpid/swig_perl_typemaps.i
++++ b/qpid/cpp/include/qpid/swig_perl_typemaps.i
+@@ -120,7 +120,7 @@
+ }
+ }
+ } catch (qpid::types::Exception& ex) {
+- Perl_croak(aTHX_ ex.what());
++ Perl_croak(aTHX_ "%s", ex.what());
+ }
+
+ if (!result)
+diff --git a/qpid/cpp/include/qpid/swig_ruby_typemaps.i b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
+index 1a07cc8..4e07088 100644
+--- a/qpid/cpp/include/qpid/swig_ruby_typemaps.i
++++ b/qpid/cpp/include/qpid/swig_ruby_typemaps.i
+@@ -106,7 +106,7 @@
+ }
+ } catch (qpid::types::Exception& ex) {
+ static VALUE error = rb_define_class("Error", rb_eStandardError);
+- rb_raise(error, ex.what());
++ rb_raise(error, "%s", ex.what());
+ }
+
+ return result;
+--
+1.8.4.2
+
diff --git a/11-QPID-5656-Updated-Ruby-bindings-to-build-under-CMake.patch b/11-QPID-5656-Updated-Ruby-bindings-to-build-under-CMake.patch
new file mode 100644
index 0000000..daceade
--- /dev/null
+++ b/11-QPID-5656-Updated-Ruby-bindings-to-build-under-CMake.patch
@@ -0,0 +1,83 @@
+From f03365c39909dafc448fd02cef68021b4a4e9659 Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <dpierce at redhat.com>
+Date: Tue, 1 Apr 2014 16:12:48 -0400
+Subject: [PATCH] QPID-5656: Updated Ruby bindings to build under CMake 3.0
+
+CMake 3.0 has reverted to the CMake 2.6 naming for libraries. prepending
+"lib" to only the Ruby library names.
+---
+ qpid/cpp/bindings/qmf/ruby/CMakeLists.txt | 6 ++++--
+ qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt | 6 ++++--
+ qpid/cpp/bindings/qpid/ruby/CMakeLists.txt | 6 ++++--
+ 3 files changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/qpid/cpp/bindings/qmf/ruby/CMakeLists.txt b/qpid/cpp/bindings/qmf/ruby/CMakeLists.txt
+index 37ce732..88d10ca 100644
+--- a/qpid/cpp/bindings/qmf/ruby/CMakeLists.txt
++++ b/qpid/cpp/bindings/qmf/ruby/CMakeLists.txt
+@@ -36,7 +36,8 @@ swig_link_libraries(qmfengine_ruby qmf qmfconsole ${RUBY_LIBRARY})
+ ##----------------------------------
+ ## Install the complete Ruby binding
+ ##----------------------------------
+-if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 3))
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qmfengine_ruby.so
+ RENAME qmfengine.so
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+@@ -48,4 +49,5 @@ else()
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
+-endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 3))
+diff --git a/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt b/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
+index 4ea61ab..19fe4bf 100644
+--- a/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
++++ b/qpid/cpp/bindings/qmf2/ruby/CMakeLists.txt
+@@ -36,7 +36,8 @@ swig_link_libraries(cqmf2_ruby qmf2 ${RUBY_LIBRARY})
+ ##----------------------------------
+ ## Install the complete Ruby binding
+ ##----------------------------------
+-if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 3))
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cqmf2_ruby.so
+ RENAME cqmf2.so
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+@@ -48,5 +49,6 @@ else()
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
+-endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 2))
+
+diff --git a/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
+index a56fac7..ec12f00 100644
+--- a/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
++++ b/qpid/cpp/bindings/qpid/ruby/CMakeLists.txt
+@@ -47,7 +47,8 @@ set_source_files_properties(${swig_generated_file_fullname} PROPERTIES COMPILE_F
+ ##----------------------------------
+ ## Install the complete Ruby binding
+ ##----------------------------------
+-if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++if ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 3))
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cqpid_ruby.so
+ RENAME cqpid.so
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+@@ -59,7 +60,8 @@ else()
+ DESTINATION ${RUBY_PFX_ARCH_DIR}
+ COMPONENT ${QPID_COMPONENT_CLIENT}
+ )
+-endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8))
++endif ((${CMAKE_MAJOR_VERSION} EQUAL 2) AND (${CMAKE_MINOR_VERSION} LESS 8) OR
++ (${CMAKE_MAJOR_VERSION} EQUAL 3))
+
+ add_custom_command(OUTPUT ${GEM_BINDINGS_SOURCE_FILE}
+ COMMAND cp ${swig_generated_file_fullname} ${GEM_BINDINGS_SOURCE_FILE}
+--
+1.9.0
+
diff --git a/12-QPID-5718-Dead-code-in-the-HA-codebase.patch b/12-QPID-5718-Dead-code-in-the-HA-codebase.patch
new file mode 100644
index 0000000..0c3dc53
--- /dev/null
+++ b/12-QPID-5718-Dead-code-in-the-HA-codebase.patch
@@ -0,0 +1,42 @@
+From 646736f73f3d73f9c4876f42f5833db8094835f5 Mon Sep 17 00:00:00 2001
+From: Alan Conway <aconway at apache.org>
+Date: Wed, 23 Apr 2014 14:45:13 +0000
+Subject: [PATCH] QPID-5718: Dead code in the HA codebase
+
+Removed: std::ostream& operator<<(std::ostream& o, const QueueSetPrinter& qp)
+Already gone: void collectQueueReplicators(const boost::shared_ptr<Exchange>& ex, set<boost::shared_ptr<QueueReplicator> >& collect)
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1589431 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/qpid/ha/RemoteBackup.cpp | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/qpid/cpp/src/qpid/ha/RemoteBackup.cpp b/qpid/cpp/src/qpid/ha/RemoteBackup.cpp
+index c37d44f..ba5f477 100644
+--- a/qpid/cpp/src/qpid/ha/RemoteBackup.cpp
++++ b/qpid/cpp/src/qpid/ha/RemoteBackup.cpp
+@@ -83,21 +83,6 @@ RemoteBackup::GuardPtr RemoteBackup::guard(const QueuePtr& q) {
+ return guard;
+ }
+
+-namespace {
+-typedef std::set<boost::shared_ptr<broker::Queue> > QS;
+-struct QueueSetPrinter {
+- const QS& qs;
+- std::string prefix;
+- QueueSetPrinter(const std::string& p, const QS& q) : qs(q), prefix(p) {}
+-};
+-std::ostream& operator<<(std::ostream& o, const QueueSetPrinter& qp) {
+- if (!qp.qs.empty()) o << qp.prefix;
+- for (QS::const_iterator i = qp.qs.begin(); i != qp.qs.end(); ++i)
+- o << (*i)->getName() << " ";
+- return o;
+-}
+-}
+-
+ void RemoteBackup::ready(const QueuePtr& q) {
+ catchupQueues.erase(q);
+ if (catchupQueues.size()) {
+--
+1.9.0
+
diff --git a/13-NO-JIRA-Removed-dead-code.patch b/13-NO-JIRA-Removed-dead-code.patch
new file mode 100644
index 0000000..3ad971b
--- /dev/null
+++ b/13-NO-JIRA-Removed-dead-code.patch
@@ -0,0 +1,32 @@
+From babbfa9f4373114f3948aab0f2fa1bd79bfc124f Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <dpierce at redhat.com>
+Date: Mon, 28 Apr 2014 08:32:48 -0400
+Subject: [PATCH] NO-JIRA: Removed dead code
+
+---
+ qpid/cpp/src/qpid/ha/BrokerReplicator.cpp | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
+index 17b0018..5d53634 100644
+--- a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
++++ b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
+@@ -347,15 +347,6 @@ void BrokerReplicator::initialize() {
+
+ BrokerReplicator::~BrokerReplicator() { shutdown(); }
+
+-namespace {
+-void collectQueueReplicators(
+- const boost::shared_ptr<Exchange> ex, set<boost::shared_ptr<QueueReplicator> >& collect)
+-{
+- boost::shared_ptr<QueueReplicator> qr(boost::dynamic_pointer_cast<QueueReplicator>(ex));
+- if (qr) collect.insert(qr);
+-}
+-} // namespace
+-
+ void BrokerReplicator::shutdown() {
+ // NOTE: this is called in a QMF dispatch thread, not the Link's connection
+ // thread. It's OK to be unlocked because it doesn't use any mutable state,
+--
+1.9.0
+
diff --git a/compat-qpid-cpp.spec b/compat-qpid-cpp.spec
new file mode 100644
index 0000000..727688e
--- /dev/null
+++ b/compat-qpid-cpp.spec
@@ -0,0 +1,595 @@
+# 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: 11%{?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)%{?_isa} = %{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)%{?_isa} = %{version}
+Requires: qpid(client)%{?_isa} = %{version}
+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
+
+Provides: qpid(server)%{?_isa} = %{version}
+
+# Remove with 0.28
+Provides: qpid-cpp-server-ssl = %{version}
+Obsoletes: qpid-cpp-server-ssl < 0.24
+
+Requires: qpid(client)%{?_isa} = %{version}
+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
+
+Provides: qpid(server-ha)%{?_isa} = %{version}
+Requires: qpid(server)%{?_isa} = %{version}
+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
+
+Provides: qpid(client-rdma)%{?_isa} = %{version}
+Requires: qpid(client)%{?_isa} = %{version}
+
+%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
+
+Provides: qpid(server-rdma)%{?_isa} = %{version}
+Requires: qpid(server)%{?_isa} = %{version}
+Requires: qpid(client-rdma)%{?_isa} = %{version}
+
+%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
+
+Provides: qpid(server-xml)%{?_isa} = %{version}
+Requires: qpid(server)%{?_isa} = %{version}
+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+
+
+Provides: qpid(server-store)%{?_isa} = %{version}
+Requires: qpid(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
+* Tue May 27 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-11
+- First build for Fedora.
+- Resolves: BZ#1080583
+
+* Wed May 21 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-10
+- Added missing version to virtual packages.
+
+* Wed May 21 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-9
+- Changed client packages to provide the virtual qpid() packages.
+
+* Tue May 13 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-8
+- Fixed packages to provide the originals with which they conflict.
+
+* Tue May 13 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-7
+- Fixed ownership of /usr/lib{64}/qpid and /usr/libexec/qpid
+
+* Mon May 12 2014 Darryl L. Pierce <dpierce at redhat.com> - 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 <dpierce at redhat.com> - 0.24-5
+- Fixed CMake build to remove rpath data from binaries.
+
+* Tue Apr 29 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-4
+- Fixes based on package review feedback:
+- * Packages still requiring others from qpid-cpp
+
+* Mon Apr 28 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-3
+- Removed unnecessary defattr.
+- Added patch to remove dead/unused code.
+- Removed clean directive.
+
+* Tue Apr 1 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-2
+- Updated to build against CMake 3.0.
+
+* Mon Mar 24 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-1
+- Initial compatability packaging.
+
diff --git a/compat-qpid-cpp.spec~ b/compat-qpid-cpp.spec~
new file mode 100644
index 0000000..f3d75fd
--- /dev/null
+++ b/compat-qpid-cpp.spec~
@@ -0,0 +1,585 @@
+# 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 <dpierce at redhat.com> - 0.24-10
+- Added missing version to virtual packages.
+
+* Wed May 21 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-9
+- Changed client packages to provide the virtual qpid() packages.
+
+* Tue May 13 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-8
+- Fixed packages to provide the originals with which they conflict.
+
+* Tue May 13 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-7
+- Fixed ownership of /usr/lib{64}/qpid and /usr/libexec/qpid
+
+* Mon May 12 2014 Darryl L. Pierce <dpierce at redhat.com> - 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 <dpierce at redhat.com> - 0.24-5
+- Fixed CMake build to remove rpath data from binaries.
+
+* Tue Apr 29 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-4
+- Fixes based on package review feedback:
+- * Packages still requiring others from qpid-cpp
+
+* Mon Apr 28 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-3
+- Removed unnecessary defattr.
+- Added patch to remove dead/unused code.
+- Removed clean directive.
+
+* Tue Apr 1 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-2
+- Updated to build against CMake 3.0.
+
+* Mon Mar 24 2014 Darryl L. Pierce <dpierce at redhat.com> - 0.24-1
+- Initial compatability packaging.
+
diff --git a/sources b/sources
index e69de29..e9a1489 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+26fff4ce45352b3949d2263ba9434cb0 qpid-0.24.tar.gz
More information about the scm-commits
mailing list