]> git.pld-linux.org Git - packages/qpid-cpp.git/commitdiff
- more fixes in boost patch master
authorJakub Bogusz <qboosh@pld-linux.org>
Mon, 14 Dec 2020 20:30:27 +0000 (21:30 +0100)
committerJakub Bogusz <qboosh@pld-linux.org>
Mon, 14 Dec 2020 20:30:27 +0000 (21:30 +0100)
- added format string fixes to perl patch
- added c++ patch (fix invalid ostream operations)
- added corosync (adjust for corosync 2 API)
- added ruby patch (adjust dirs and fix format strings)
- release 0.2

qpid-cpp-boost.patch
qpid-cpp-c++.patch [new file with mode: 0644]
qpid-cpp-corosync.patch [new file with mode: 0644]
qpid-cpp-perl.patch
qpid-cpp-ruby.patch [new file with mode: 0644]
qpid-cpp.spec

index 4ad7d3288971b6bed19ea52e60b23b1687559849..dd0c556bfe64204b7f36b8dcd8d9b7959c6f3870 100644 (file)
          writeFile(file, os.str());
      }
      catch (const std::exception& e) {
+--- qpidc-0.16/src/qpid/sys/rdma/RdmaServer.cpp.orig   2010-12-23 18:11:57.000000000 +0100
++++ qpidc-0.16/src/qpid/sys/rdma/RdmaServer.cpp        2020-12-12 20:59:07.797183372 +0100
+@@ -119,7 +119,7 @@
+     cout << "Drained:\n";
+ }
+-void disconnected(Rdma::Connection::intrusive_ptr& ci) {
++void disconnected(Rdma::Connection::intrusive_ptr ci) {
+     ConRec* cr = ci->getContext<ConRec>();
+     cr->connection->disconnect();
+     cr->data->drainWriteQueue(drained);
+@@ -127,7 +127,7 @@
+     cout << "Disconnected: " << cr << "\n";
+ }
+-void connectionError(Rdma::Connection::intrusive_ptr& ci, Rdma::ErrorType) {
++void connectionError(Rdma::Connection::intrusive_ptr ci, Rdma::ErrorType) {
+     ConRec* cr = ci->getContext<ConRec>();
+     cr->connection->disconnect();
+     if (cr) {
+@@ -137,7 +137,7 @@
+     cout << "Connection error: " << cr << "\n";
+ }
+-bool connectionRequest(Rdma::Connection::intrusive_ptr& ci,  const Rdma::ConnectionParams& cp) {
++bool connectionRequest(Rdma::Connection::intrusive_ptr ci,  const Rdma::ConnectionParams& cp) {
+     cout << "Incoming connection: ";
+     // For fun reject alternate connection attempts
+@@ -165,7 +165,7 @@
+     return x;
+ }
+-void connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci) {
++void connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci) {
+     static int cnt = 0;
+     ConRec* cr = ci->getContext<ConRec>();
+     cout << "Connected: " << cr << "(" << ++cnt << ")\n";
+--- qpidc-0.16/src/qpid/sys/rdma/rdma_wrap.cpp.orig    2011-04-27 14:51:26.000000000 +0200
++++ qpidc-0.16/src/qpid/sys/rdma/rdma_wrap.cpp 2020-12-12 21:01:58.282926438 +0100
+@@ -325,7 +325,7 @@
+     {}
+     ConnectionEvent::operator bool() const {
+-        return event;
++        return !!event;
+     }
+     ::rdma_cm_event_type ConnectionEvent::getEventType() const {
+--- qpidc-0.16/src/qpid/sys/posix/Thread.cpp.orig      2011-05-09 21:55:29.000000000 +0200
++++ qpidc-0.16/src/qpid/sys/posix/Thread.cpp   2020-12-12 21:24:04.449075313 +0100
+@@ -55,7 +55,7 @@
+ Thread::Thread(Runnable& runnable) : impl(new ThreadPrivate(&runnable)) {}
+ Thread::operator bool() {
+-    return impl;
++    return !!impl;
+ }
+ bool Thread::operator==(const Thread& t) const {
+--- qpidc-0.16/src/qpid/sys/rdma/RdmaClient.cpp.orig   2010-12-23 18:11:57.000000000 +0100
++++ qpidc-0.16/src/qpid/sys/rdma/RdmaClient.cpp        2020-12-12 21:52:39.243118810 +0100
+@@ -160,7 +160,7 @@
+     cout << "Drained:\n";
+ }
+-void connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr& ci, const Rdma::ConnectionParams& cp) {
++void connected(Poller::shared_ptr poller, Rdma::Connection::intrusive_ptr ci, const Rdma::ConnectionParams& cp) {
+     cout << "Connected\n";
+     Rdma::QueuePair::intrusive_ptr q = ci->getQueuePair();
+@@ -178,17 +178,17 @@
+     aio->start(poller);
+ }
+-void disconnected(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr&) {
++void disconnected(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr) {
+     cout << "Disconnected\n";
+     p->shutdown();
+ }
+-void connectionError(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr&, const Rdma::ErrorType) {
++void connectionError(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr, const Rdma::ErrorType) {
+     cout << "Connection error\n";
+     p->shutdown();
+ }
+-void rejected(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr&, const Rdma::ConnectionParams&) {
++void rejected(boost::shared_ptr<Poller> p, Rdma::Connection::intrusive_ptr, const Rdma::ConnectionParams&) {
+     cout << "Connection rejected\n";
+     p->shutdown();
+ }
+--- qpidc-0.16/src/qpid/broker/ConnectionHandler.cpp.orig      2012-02-17 15:54:46.000000000 +0100
++++ qpidc-0.16/src/qpid/broker/ConnectionHandler.cpp   2020-12-12 22:11:17.543727122 +0100
+@@ -160,7 +160,7 @@
+     const framing::FieldTable& clientProperties = body.getClientProperties();
+     connection.setClientProperties(clientProperties);
+-    connection.setFederationLink(clientProperties.get(QPID_FED_LINK));
++    connection.setFederationLink(!!clientProperties.get(QPID_FED_LINK));
+     if (clientProperties.isSet(QPID_FED_TAG)) {
+         connection.setFederationPeerTag(clientProperties.getAsString(QPID_FED_TAG));
+     }
+--- qpidc-0.16/src/qpid/broker/DirectExchange.cpp.orig 2012-03-05 20:12:32.000000000 +0100
++++ qpidc-0.16/src/qpid/broker/DirectExchange.cpp      2020-12-12 22:14:20.136071267 +0100
+@@ -60,7 +60,7 @@
+         fedOp = args->getAsString(qpidFedOp);
+         fedTags = args->getAsString(qpidFedTags);
+         fedOrigin = args->getAsString(qpidFedOrigin);
+-        exclusiveBinding = args->get(qpidExclusiveBinding);  // only direct exchanges take exclusive bindings
++        exclusiveBinding = !!args->get(qpidExclusiveBinding);  // only direct exchanges take exclusive bindings
+     }
+     bool propagate = false;
+--- qpidc-0.16/src/qpid/broker/Exchange.cpp.orig       2012-03-05 20:12:32.000000000 +0100
++++ qpidc-0.16/src/qpid/broker/Exchange.cpp    2020-12-12 22:19:45.880973223 +0100
+@@ -203,13 +203,13 @@
+         }
+     }
+-    sequence = _args.get(qpidMsgSequence);
++    sequence = !!_args.get(qpidMsgSequence);
+     if (sequence) {
+         QPID_LOG(debug, "Configured exchange " <<  _name  << " with Msg sequencing");
+         args.setInt64(std::string(qpidSequenceCounter), sequenceNo);
+     }
+-    ive = _args.get(qpidIVE);
++    ive = !!_args.get(qpidIVE);
+     if (ive) {
+         if (broker && broker->isInCluster())
+             throw framing::NotImplementedException("Cannot use Initial Value Exchanges in a cluster");
+--- qpidc-0.16/src/qpid/client/SessionBase_0_10.cpp.orig       2010-04-09 17:08:47.000000000 +0200
++++ qpidc-0.16/src/qpid/client/SessionBase_0_10.cpp    2020-12-13 06:32:59.740649521 +0100
+@@ -73,7 +73,7 @@
+ SessionId SessionBase_0_10::getId() const { return impl->getId(); }
+-bool SessionBase_0_10::isValid() const { return impl; }
++bool SessionBase_0_10::isValid() const { return !!impl; }
+ Connection SessionBase_0_10::getConnection()
+ {
+--- qpidc-0.16/src/qpid/cluster/ClusterMap.cpp.orig    2012-03-22 19:51:28.000000000 +0100
++++ qpidc-0.16/src/qpid/cluster/ClusterMap.cpp 2020-12-13 07:07:40.639376325 +0100
+@@ -28,10 +28,6 @@
+ #include <iterator>
+ #include <ostream>
+-using namespace std;
+-using boost::ref;
+-using boost::optional;
+-
+ namespace qpid {
+ using namespace framing;
+@@ -42,7 +38,7 @@
+ void addFieldTableValue(FieldTable::ValueMap::value_type vt, ClusterMap::Map& map, ClusterMap::Set& set) {
+     MemberId id(vt.first);
+     set.insert(id);
+-    string url = vt.second->get<string>();
++    std::string url = vt.second->get<string>();
+     if (!url.empty())
+         map.insert(ClusterMap::Map::value_type(id, Url(url)));
+ }
+@@ -56,7 +52,7 @@
+ ClusterMap::ClusterMap() : frameSeq(0) {}
+ ClusterMap::ClusterMap(const Map& map) : frameSeq(0) {
+-    transform(map.begin(), map.end(), inserter(alive, alive.begin()), bind(&Map::value_type::first, _1));
++    std::transform(map.begin(), map.end(), std::inserter(alive, alive.begin()), boost::bind(&Map::value_type::first, _1));
+     members = map;
+ }
+@@ -64,19 +60,19 @@
+                        framing::SequenceNumber frameSeq_)
+     : frameSeq(frameSeq_)
+ {
+-    for_each(joinersFt.begin(), joinersFt.end(), bind(&addFieldTableValue, _1, ref(joiners), ref(alive)));
+-    for_each(membersFt.begin(), membersFt.end(), bind(&addFieldTableValue, _1, ref(members), ref(alive)));
++    for_each(joinersFt.begin(), joinersFt.end(), boost::bind(&addFieldTableValue, _1, boost::ref(joiners), boost::ref(alive)));
++    for_each(membersFt.begin(), membersFt.end(), boost::bind(&addFieldTableValue, _1, boost::ref(members), boost::ref(alive)));
+ }
+ void ClusterMap::toMethodBody(framing::ClusterConnectionMembershipBody& b) const {
+     b.getJoiners().clear();
+-    for_each(joiners.begin(), joiners.end(), bind(&insertFieldTableFromMapValue, ref(b.getJoiners()), _1));
++    for_each(joiners.begin(), joiners.end(), boost::bind(&insertFieldTableFromMapValue, boost::ref(b.getJoiners()), _1));
+     for(Set::const_iterator i = alive.begin(); i != alive.end(); ++i) {
+         if (!isMember(*i) && !isJoiner(*i))
+             b.getJoiners().setString(i->str(), string());
+     }
+     b.getMembers().clear();
+-    for_each(members.begin(), members.end(), bind(&insertFieldTableFromMapValue, ref(b.getMembers()), _1));
++    for_each(members.begin(), members.end(), boost::bind(&insertFieldTableFromMapValue, boost::ref(b.getMembers()), _1));
+     b.setFrameSeq(frameSeq);
+ }
+@@ -89,21 +85,21 @@
+     return joiners.empty() ? MemberId() : joiners.begin()->first;
+ }
+-vector<string> ClusterMap::memberIds() const {
+-    vector<string> ids;
++std::vector<string> ClusterMap::memberIds() const {
++    std::vector<string> ids;
+     for (Map::const_iterator iter = members.begin();
+          iter != members.end(); iter++) {
+-        stringstream stream;
++        std::stringstream stream;
+         stream << iter->first;
+         ids.push_back(stream.str());
+     }
+     return ids;
+ }
+-vector<Url> ClusterMap::memberUrls() const {
+-    vector<Url> urls(members.size());
+-    transform(members.begin(), members.end(), urls.begin(),
+-                   bind(&Map::value_type::second, _1));
++std::vector<Url> ClusterMap::memberUrls() const {
++    std::vector<Url> urls(members.size());
++    std::transform(members.begin(), members.end(), urls.begin(),
++                   boost::bind(&Map::value_type::second, _1));
+     return urls;
+ }
+@@ -111,18 +107,18 @@
+ ClusterMap::Set ClusterMap::getMembers() const {
+     Set s;
+-    transform(members.begin(), members.end(), inserter(s, s.begin()),
+-                   bind(&Map::value_type::first, _1));
++    std::transform(members.begin(), members.end(), std::inserter(s, s.begin()),
++                   boost::bind(&Map::value_type::first, _1));
+     return s;
+ }
+-ostream& operator<<(ostream& o, const ClusterMap::Map& m) {
+-    ostream_iterator<MemberId> oi(o);
+-    transform(m.begin(), m.end(), oi, bind(&ClusterMap::Map::value_type::first, _1));
++std::ostream& operator<<(std::ostream& o, const ClusterMap::Map& m) {
++    std::ostream_iterator<MemberId> oi(o);
++    std::transform(m.begin(), m.end(), oi, boost::bind(&ClusterMap::Map::value_type::first, _1));
+     return o;
+ }
+-ostream& operator<<(ostream& o, const ClusterMap& m) {
++std::ostream& operator<<(std::ostream& o, const ClusterMap& m) {
+     for (ClusterMap::Set::const_iterator i = m.alive.begin(); i != m.alive.end(); ++i) {
+         o << *i;
+         if (m.isMember(*i)) o << "(member)";
+@@ -134,7 +130,7 @@
+     return o;
+ }
+-bool ClusterMap::updateRequest(const MemberId& id, const string& url) {
++bool ClusterMap::updateRequest(const MemberId& id, const std::string& url) {
+     try {
+         if (isAlive(id)) {
+             joiners[id] = Url(url);
+@@ -153,9 +149,9 @@
+ bool ClusterMap::configChange(const Set& update) {
+     bool memberChange = false;
+     Set removed;
+-    set_difference(alive.begin(), alive.end(),
++    std::set_difference(alive.begin(), alive.end(),
+                         update.begin(), update.end(),
+-                        inserter(removed, removed.begin()));
++                        std::inserter(removed, removed.begin()));
+     alive = update;
+     for (Set::const_iterator i = removed.begin(); i != removed.end(); ++i) {
+         memberChange = memberChange || members.erase(*i);
+@@ -164,14 +160,14 @@
+     return memberChange;
+ }
+-optional<Url> ClusterMap::updateOffer(const MemberId& from, const MemberId& to) {
++boost::optional<Url> ClusterMap::updateOffer(const MemberId& from, const MemberId& to) {
+     Map::iterator i = joiners.find(to);
+     if (isAlive(from) && i != joiners.end()) {
+         Url url= i->second;
+         joiners.erase(i);       // No longer a potential updatee.
+         return url;
+     }
+-    return optional<Url>();
++    return boost::optional<Url>();
+ }
+ }} // namespace qpid::cluster
+--- qpidc-0.16/src/tests/cluster_test.cpp.orig 2011-02-10 11:12:41.000000000 +0100
++++ qpidc-0.16/src/tests/cluster_test.cpp      2020-12-13 07:51:00.611957732 +0100
+@@ -667,7 +667,7 @@
+     c0.connection.close();
+     // Verify all brokers get wiring update.
+     for (size_t i = 0; i < cluster.size(); ++i) {
+-        BOOST_MESSAGE("i == "<< i);
++        BOOST_TEST_MESSAGE("i == "<< i);
+         Client c(cluster[i]);
+         BOOST_CHECK_EQUAL("q", c.session.queueQuery("q").getQueue());
+         BOOST_CHECK_EQUAL("direct", c.session.exchangeQuery("ex").getType());
+@@ -826,7 +826,7 @@
+             mgr.execute(*this);
+         }
+             catch (const std::exception& e) {
+-                BOOST_MESSAGE("Exception in mgr.execute: " << e.what());
++                BOOST_TEST_MESSAGE("Exception in mgr.execute: " << e.what());
+                 failed = true;
+             }
+         }
+--- qpidc-0.16/src/tests/ClusterFixture.h.orig 2010-08-03 17:33:12.000000000 +0200
++++ qpidc-0.16/src/tests/ClusterFixture.h      2020-12-13 11:22:38.086502946 +0100
+@@ -99,7 +99,7 @@
+     string name;
+     std::auto_ptr<BrokerFixture> localBroker;
+     int localIndex;
+-    std::vector<shared_ptr<ForkedBroker> > forkedBrokers;
++    std::vector<boost::shared_ptr<ForkedBroker> > forkedBrokers;
+     Args userArgs;
+     boost::function<void (Args&, size_t)> updateArgs;
+ };
+--- qpidc-0.16/src/tests/ClusterFixture.cpp.orig       2010-07-01 21:19:48.000000000 +0200
++++ qpidc-0.16/src/tests/ClusterFixture.cpp    2020-12-13 11:27:02.765069059 +0100
+@@ -54,7 +54,6 @@
+ using namespace qpid::client;
+ using qpid::sys::TIME_SEC;
+ using qpid::broker::Broker;
+-using boost::shared_ptr;
+ using qpid::cluster::Cluster;
+ using boost::assign::list_of;
+@@ -89,7 +88,7 @@
+     if (size() != size_t(localIndex))  { // fork a broker process.
+         std::ostringstream os; os << "fork" << size();
+         std::string prefix = os.str();
+-        forkedBrokers.push_back(shared_ptr<ForkedBroker>(new ForkedBroker(makeArgs(prefix, size()))));
++        forkedBrokers.push_back(boost::shared_ptr<ForkedBroker>(new ForkedBroker(makeArgs(prefix, size()))));
+         push_back(forkedBrokers.back()->getPort());
+     }
+     else {                      // Run in this process
+@@ -117,7 +116,7 @@
+     qpid::log::Logger::instance().setPrefix(prefix);
+     localBroker.reset(new BrokerFixture(parseOpts(argv.size(), &argv[0])));
+     push_back(localBroker->getPort());
+-    forkedBrokers.push_back(shared_ptr<ForkedBroker>());
++    forkedBrokers.push_back(boost::shared_ptr<ForkedBroker>());
+ }
+ bool ClusterFixture::hasLocal() const { return localIndex >= 0 && size_t(localIndex) < size(); }
diff --git a/qpid-cpp-c++.patch b/qpid-cpp-c++.patch
new file mode 100644 (file)
index 0000000..dfa145b
--- /dev/null
@@ -0,0 +1,33 @@
+--- qpidc-0.16/src/tests/qpid-receive.cpp.orig 2012-02-17 15:54:46.000000000 +0100
++++ qpidc-0.16/src/tests/qpid-receive.cpp      2020-12-13 12:00:09.267640585 +0100
+@@ -131,8 +131,7 @@
+             if (address.empty()) throw qpid::Exception("Address must be specified!");
+             qpid::log::Logger::instance().configure(log);
+             if (help) {
+-                std::ostringstream msg;
+-                std::cout << msg << *this << std::endl << std::endl
++                std::cout << *this << std::endl << std::endl
+                           << "Drains messages from the specified address" << std::endl;
+                 return false;
+             } else {
+--- qpidc-0.16/src/tests/qpid-send.cpp.orig    2011-10-07 16:21:48.000000000 +0200
++++ qpidc-0.16/src/tests/qpid-send.cpp 2020-12-13 12:22:48.683609330 +0100
+@@ -157,8 +157,7 @@
+             if (address.empty()) throw qpid::Exception("Address must be specified!");
+             qpid::log::Logger::instance().configure(log);
+             if (help) {
+-                std::ostringstream msg;
+-                std::cout << msg << *this << std::endl << std::endl
++                std::cout << *this << std::endl << std::endl
+                           << "Drains messages from the specified address" << std::endl;
+                 return false;
+             } else {
+@@ -237,7 +236,7 @@
+   public:
+     virtual bool setContent(Message& msg) {
+         string content;
+-        bool got = getline(std::cin, content);
++        bool got = !!getline(std::cin, content);
+         if (got) msg.setContent(content);
+         return got;
+     }
diff --git a/qpid-cpp-corosync.patch b/qpid-cpp-corosync.patch
new file mode 100644 (file)
index 0000000..d05dc94
--- /dev/null
@@ -0,0 +1,163 @@
+--- qpidc-0.16/src/qpid/cluster/Cpg.cpp.orig   2010-02-26 17:47:23.000000000 +0100
++++ qpidc-0.16/src/qpid/cluster/Cpg.cpp        2020-12-13 07:18:53.042400272 +0100
+@@ -32,7 +32,7 @@
+ // This is a macro instead of a function because we don't want to
+ // evaluate the MSG argument unless there is an error.
+ #define CPG_CHECK(RESULT, MSG) \
+-    if ((RESULT) != CPG_OK) throw Exception(errorStr((RESULT), (MSG)))
++    if ((RESULT) != CS_OK) throw Exception(errorStr((RESULT), (MSG)))
+ namespace qpid {
+ namespace cluster {
+@@ -50,13 +50,13 @@
+ // Applies the same retry-logic to all cpg calls that need it.
+ void Cpg::callCpg ( CpgOp & c ) {
+-    cpg_error_t result;
++    cs_error_t result;
+     unsigned int snooze = 10;
+     for ( unsigned int nth_try = 0; nth_try < cpgRetries; ++ nth_try ) {
+-        if ( CPG_OK == (result = c.op(handle, & group))) {
++        if ( CS_OK == (result = c.op(handle, & group))) {
+             break;
+         }
+-        else if ( result == CPG_ERR_TRY_AGAIN ) {
++        else if ( result == CS_ERR_TRY_AGAIN ) {
+             QPID_LOG(info, "Retrying " << c.opName );
+             sys::usleep ( snooze );
+             snooze *= 10;
+@@ -65,7 +65,7 @@
+         else break;  // Don't retry unless CPG tells us to.
+     }
+-    if ( result != CPG_OK )
++    if ( result != CS_OK )
+         CPG_CHECK(result, c.msg(group));
+ }
+@@ -127,9 +127,9 @@
+     callbacks.cpg_confchg_fn = &globalConfigChange;
+     QPID_LOG(notice, "Initializing CPG");
+-    cpg_error_t err = cpg_initialize(&handle, &callbacks);
++    cs_error_t err = cpg_initialize(&handle, &callbacks);
+     int retries = 6; // FIXME aconway 2009-08-06: make this configurable.
+-    while (err == CPG_ERR_TRY_AGAIN && --retries) {
++    while (err == CS_ERR_TRY_AGAIN && --retries) {
+         QPID_LOG(notice, "Re-trying CPG initialization.");
+         sys::sleep(5);
+         err = cpg_initialize(&handle, &callbacks);
+@@ -169,11 +169,11 @@
+     if (flowState == CPG_FLOW_CONTROL_ENABLED)
+         return false;
+-    cpg_error_t result;
++    cs_error_t result;
+     do {
+         result = cpg_mcast_joined(handle, CPG_TYPE_AGREED, const_cast<iovec*>(iov), iovLen);
+-        if (result != CPG_ERR_TRY_AGAIN) CPG_CHECK(result, cantMcastMsg(group));
+-    } while(result == CPG_ERR_TRY_AGAIN);
++        if (result != CS_ERR_TRY_AGAIN) CPG_CHECK(result, cantMcastMsg(group));
++    } while(result == CS_ERR_TRY_AGAIN);
+     return true;
+ }
+@@ -187,34 +187,34 @@
+ }
+ void Cpg::dispatchOne() {
+-    CPG_CHECK(cpg_dispatch(handle,CPG_DISPATCH_ONE), "Error in CPG dispatch");
++    CPG_CHECK(cpg_dispatch(handle,CS_DISPATCH_ONE), "Error in CPG dispatch");
+ }
+ void Cpg::dispatchAll() {
+-    CPG_CHECK(cpg_dispatch(handle,CPG_DISPATCH_ALL), "Error in CPG dispatch");
++    CPG_CHECK(cpg_dispatch(handle,CS_DISPATCH_ALL), "Error in CPG dispatch");
+ }
+ void Cpg::dispatchBlocking() {
+-    CPG_CHECK(cpg_dispatch(handle,CPG_DISPATCH_BLOCKING), "Error in CPG dispatch");
++    CPG_CHECK(cpg_dispatch(handle,CS_DISPATCH_BLOCKING), "Error in CPG dispatch");
+ }
+-string Cpg::errorStr(cpg_error_t err, const std::string& msg) {
++string Cpg::errorStr(cs_error_t err, const std::string& msg) {
+     std::ostringstream  os;
+     os << msg << ": ";
+     switch (err) {
+-      case CPG_OK: os << "ok"; break;
+-      case CPG_ERR_LIBRARY: os << "library"; break;
+-      case CPG_ERR_TIMEOUT: os << "timeout"; break;
+-      case CPG_ERR_TRY_AGAIN: os << "try again"; break;
+-      case CPG_ERR_INVALID_PARAM: os << "invalid param"; break;
+-      case CPG_ERR_NO_MEMORY: os << "no memory"; break;
+-      case CPG_ERR_BAD_HANDLE: os << "bad handle"; break;
+-      case CPG_ERR_ACCESS: os << "access denied. You may need to set your group ID to 'ais'"; break;
+-      case CPG_ERR_NOT_EXIST: os << "not exist"; break;
+-      case CPG_ERR_EXIST: os << "exist"; break;
+-      case CPG_ERR_NOT_SUPPORTED: os << "not supported"; break;
+-      case CPG_ERR_SECURITY: os << "security"; break;
+-      case CPG_ERR_TOO_MANY_GROUPS: os << "too many groups"; break;
++      case CS_OK: os << "ok"; break;
++      case CS_ERR_LIBRARY: os << "library"; break;
++      case CS_ERR_TIMEOUT: os << "timeout"; break;
++      case CS_ERR_TRY_AGAIN: os << "try again"; break;
++      case CS_ERR_INVALID_PARAM: os << "invalid param"; break;
++      case CS_ERR_NO_MEMORY: os << "no memory"; break;
++      case CS_ERR_BAD_HANDLE: os << "bad handle"; break;
++      case CS_ERR_ACCESS: os << "access denied. You may need to set your group ID to 'ais'"; break;
++      case CS_ERR_NOT_EXIST: os << "not exist"; break;
++      case CS_ERR_EXIST: os << "exist"; break;
++      case CS_ERR_NOT_SUPPORTED: os << "not supported"; break;
++      case CS_ERR_SECURITY: os << "security"; break;
++      case CS_ERR_TOO_MANY_GROUPS: os << "too many groups"; break;
+       default: os << ": unknown cpg error " << err;
+     };
+     os << " (" << err << ")";
+--- qpidc-0.16/src/qpid/cluster/Cpg.h.orig     2009-12-11 16:29:00.000000000 +0100
++++ qpidc-0.16/src/qpid/cluster/Cpg.h  2020-12-13 06:57:45.132602462 +0100
+@@ -131,7 +131,7 @@
+         CpgOp ( std::string opName ) 
+           : opName(opName) { }
+-        virtual cpg_error_t op ( cpg_handle_t handle, struct cpg_name * ) = 0; 
++        virtual cs_error_t op ( cpg_handle_t handle, struct cpg_name * ) = 0; 
+         virtual std::string msg(const Name&) = 0;
+         virtual ~CpgOp ( ) { }
+     };
+@@ -141,7 +141,7 @@
+         CpgJoinOp ( )
+           : CpgOp ( std::string("cpg_join") ) { }
+-        cpg_error_t op(cpg_handle_t handle, struct cpg_name * group) { 
++        cs_error_t op(cpg_handle_t handle, struct cpg_name * group) { 
+             return cpg_join ( handle, group ); 
+         }
+@@ -152,7 +152,7 @@
+         CpgLeaveOp ( )
+           : CpgOp ( std::string("cpg_leave") ) { }
+-        cpg_error_t op(cpg_handle_t handle, struct cpg_name * group) { 
++        cs_error_t op(cpg_handle_t handle, struct cpg_name * group) { 
+             return cpg_leave ( handle, group ); 
+         }
+@@ -163,7 +163,7 @@
+         CpgFinalizeOp ( )
+           : CpgOp ( std::string("cpg_finalize") ) { }
+-        cpg_error_t op(cpg_handle_t handle, struct cpg_name *) { 
++        cs_error_t op(cpg_handle_t handle, struct cpg_name *) { 
+             return cpg_finalize ( handle ); 
+         }
+@@ -177,7 +177,7 @@
+     CpgLeaveOp    cpgLeaveOp;
+     CpgFinalizeOp cpgFinalizeOp;
+-    static std::string errorStr(cpg_error_t err, const std::string& msg);
++    static std::string errorStr(cs_error_t err, const std::string& msg);
+     static std::string cantJoinMsg(const Name&);
+     static std::string cantLeaveMsg(const Name&);
+     static std::string cantMcastMsg(const Name&);
index 1bbca9ec17b42da31988a1c9cfbbb065d7a990be..ecad4c4ec8c2199bc323b92158fe3797733afc09 100644 (file)
        cd ..
  
  clean-local:
+--- qpidc-0.16/bindings/qpid/perl/perl.i.orig  2011-02-18 20:16:35.000000000 +0100
++++ qpidc-0.16/bindings/qpid/perl/perl.i       2020-12-14 09:51:37.944680768 +0100
+@@ -27,7 +27,7 @@
+         $action
+     }
+     catch (qpid::messaging::MessagingException& mex) {
+-        Perl_croak(aTHX_ mex.what());
++        Perl_croak(aTHX_ "%s", mex.what());
+     }
+ }
+--- qpidc-0.16/bindings/swig_perl_typemaps.i.orig      2011-01-27 18:04:40.000000000 +0100
++++ qpidc-0.16/bindings/swig_perl_typemaps.i   2020-12-14 09:52:11.054501396 +0100
+@@ -110,7 +110,7 @@
+             }
+             }
+         } catch (qpid::types::Exception& ex) {
+-            Perl_croak(aTHX_ ex.what());
++            Perl_croak(aTHX_ "%s", ex.what());
+         }
+         return result;
diff --git a/qpid-cpp-ruby.patch b/qpid-cpp-ruby.patch
new file mode 100644 (file)
index 0000000..291f867
--- /dev/null
@@ -0,0 +1,77 @@
+--- qpidc-0.16/configure.ac.orig       2020-12-13 12:55:35.066289854 +0100
++++ qpidc-0.16/configure.ac    2020-12-13 18:50:43.760850752 +0100
+@@ -164,13 +164,13 @@
+ if test -n "$RUBY" ; then
+    AC_ARG_VAR(RUBY_INC, [Directory where ruby.h can be found])
+    if test -z "$RUBY_INC" ; then
+-      [RUBY_INC=`$RUBY -rrbconfig -e 'puts Config::CONFIG["rubyhdrdir"] || Config::CONFIG["archdir"]'`]
++      [RUBY_INC=`$RUBY -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"] || RbConfig::CONFIG["archdir"]'`]
+    fi
+    AC_SUBST(RUBY_INC)
+    AC_ARG_VAR(RUBY_INC_ARCH, [Directory where ruby/config.h can be found (needed from Ruby 1.9)])
+    if test -z "$RUBY_INC_ARCH" ; then
+-      [RUBY_INC_ARCH=`$RUBY -rrbconfig -e 'd = Config::CONFIG["rubyhdrdir"];if d != nil; print d + "/" + Config::CONFIG["arch"]; end'`]
++      [RUBY_INC_ARCH=`$RUBY -rrbconfig -e 'd = RbConfig::CONFIG["rubyhdrdir"];if d != nil; print d + "/" + RbConfig::CONFIG["arch"]; end'`]
+       dnl For earlier versions, just make it the same as RUBY_INC.
+       test x"$RUBY_INC_ARCH" != x || RUBY_INC_ARCH=$RUBY_INC
+    fi
+@@ -178,14 +178,14 @@
+    AC_ARG_VAR(RUBY_LIB, [Directory to install ruby files into])
+       if test -z "$RUBY_LIB" ; then
+       dnl Kludge to install ruby files under $prefix
+-      [RUBY_LIB=`$RUBY -rrbconfig -e 'puts Config::CONFIG["sitelibdir"].gsub("/usr", "${prefix}")'`]
++      [RUBY_LIB=`$RUBY -rrbconfig -e 'puts RbConfig::CONFIG["vendorlibdir"].gsub("/usr", "${prefix}")'`]
+    fi
+    AC_SUBST(RUBY_LIB)
+       AC_ARG_VAR(RUBY_LIB_ARCH, [Directory to install ruby binary modules into])
+       if test -z "$RUBY_LIB_ARCH" ; then
+       dnl Kludge to install ruby files under $prefix
+-        [RUBY_LIB_ARCH=`$RUBY -rrbconfig -e 'puts Config::CONFIG["sitearchdir"].gsub("/usr", "${prefix}")'`]
++        [RUBY_LIB_ARCH=`$RUBY -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"].gsub("/usr", "${prefix}")'`]
+       fi
+       AC_SUBST(RUBY_LIB_ARCH)
+@@ -195,7 +195,7 @@
+       esac
+       AC_SUBST(RUBY_LIBS)
+-   RUBY_DLEXT=`$RUBY -rrbconfig -e 'puts Config::CONFIG[["DLEXT"]]'`
++   RUBY_DLEXT=`$RUBY -rrbconfig -e 'puts RbConfig::CONFIG[["DLEXT"]]'`
+    AC_SUBST(RUBY_DLEXT)
+ fi
+ AM_CONDITIONAL([HAVE_RUBY_DEVEL], [test -f $RUBY_INC/ruby.h && test -n "$SWIG"])
+--- qpidc-0.16/bindings/qpid/ruby/ruby.i.orig  2010-08-13 00:35:23.000000000 +0200
++++ qpidc-0.16/bindings/qpid/ruby/ruby.i       2020-12-13 19:47:14.499148213 +0100
+@@ -28,7 +28,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());
+     }
+ }
+--- qpidc-0.16/bindings/swig_ruby_typemaps.i.orig      2012-01-04 17:24:33.000000000 +0100
++++ qpidc-0.16/bindings/swig_ruby_typemaps.i   2020-12-13 20:27:15.396141438 +0100
+@@ -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;
+--- qpidc-0.16/bindings/qmf2/ruby/ruby.i.orig  2010-09-23 03:42:08.000000000 +0200
++++ qpidc-0.16/bindings/qmf2/ruby/ruby.i       2020-12-13 21:21:22.161885533 +0100
+@@ -28,7 +28,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());
+     }
+ }
index 58a540cc15280ef655d70b41c05158cfb390f817..0e0223176a9e65b9551f49e490d0cfea7e5c9467 100644 (file)
@@ -13,7 +13,7 @@ Summary:      C++ implementation of the AMQP protocol
 Summary(pl.UTF-8):     Implementacja protokołu AMQP w C++
 Name:          qpid-cpp
 Version:       0.16
-Release:       0.1
+Release:       0.2
 License:       Apache v2.0
 Group:         Libraries
 Source0:       http://www.us.apache.org/dist/qpid/%{version}/%{name}-%{version}.tar.gz
@@ -23,6 +23,9 @@ Patch1:               %{name}-link.patch
 Patch2:                %{name}-perl.patch
 # https://reviews.apache.org/r/5593/
 Patch3:                %{name}-qmf-broker.patch
+Patch4:                %{name}-c++.patch
+Patch5:                %{name}-corosync.patch
+Patch6:                %{name}-ruby.patch
 URL:           http://qpid.apache.org/
 BuildRequires: acl-devel
 BuildRequires: autoconf >= 2.59
@@ -43,7 +46,7 @@ BuildRequires:        pkgconfig
 BuildRequires: python-devel >= 1:2.7
 BuildRequires: rpm-perlprov
 BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.219
+BuildRequires: rpmbuild(macros) >= 1.745
 BuildRequires: ruby-devel >= 1.8
 BuildRequires: swig-python >= 1.3.26
 BuildRequires: swig-ruby >= 1.3.26
@@ -186,6 +189,18 @@ Wiązania języka Ruby do bibliotek Qpid/C++.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p2
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+# deprecated std::auto_ptr
+# "invalid use of incomplete type qpid::framing::Handler<T>"
+%{__sed} -i -e 's/-Werror/-Wno-deprecated/' configure.ac
+
+%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' managementgen/qmf-gen
+
+# force using newer version
+%{__rm} m4/python.m4
 
 %build
 %{__libtoolize}
@@ -203,11 +218,11 @@ Wiązania języka Ruby do bibliotek Qpid/C++.
 %install
 rm -rf $RPM_BUILD_ROOT
 
-%{__make} install \
+%{__make} -j1 install \
        DESTDIR=$RPM_BUILD_ROOT
 
 %{__rm} $RPM_BUILD_ROOT%{py_sitedir}/*.la \
-       $RPM_BUILD_ROOT%{ruby_sitearchdir}/*.la \
+       $RPM_BUILD_ROOT%{ruby_vendorarchdir}/*.la \
        $RPM_BUILD_ROOT%{_libdir}/qpid/{client,daemon}/*.la
 %if %{with static_libs}
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/qpid/{client,daemon}/*.a
@@ -215,7 +230,7 @@ rm -rf $RPM_BUILD_ROOT
 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/qpid/tests
 
 install -d $RPM_BUILD_ROOT%{_examplesdir}
-mv $RPM_BUILD_ROOT%{_datadir}/qpidc/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%{__mv} $RPM_BUILD_ROOT%{_datadir}/qpidc/examples $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 %py_postclean
 
@@ -336,7 +351,6 @@ rm -rf $RPM_BUILD_ROOT
 %defattr(644,root,root,755)
 %{perl_vendorarch}/cqpid_perl.pm
 %dir %{perl_vendorarch}/auto/cqpid_perl
-%{perl_vendorarch}/auto/cqpid_perl/cqpid_perl.bs
 %attr(755,root,root) %{perl_vendorarch}/auto/cqpid_perl/cqpid_perl.so
 
 %files -n python-%{name}
@@ -352,8 +366,8 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n ruby-%{name}
 %defattr(644,root,root,755)
-%attr(755,root,root) %{ruby_sitearchdir}/cqmf2.so
-%attr(755,root,root) %{ruby_sitearchdir}/cqpid.so
-%attr(755,root,root) %{ruby_sitearchdir}/qmfengine.so
-%{ruby_sitelibdir}/qmf.rb
-%{ruby_sitelibdir}/qmf2.rb
+%attr(755,root,root) %{ruby_vendorarchdir}/cqmf2.so
+%attr(755,root,root) %{ruby_vendorarchdir}/cqpid.so
+%attr(755,root,root) %{ruby_vendorarchdir}/qmfengine.so
+%{ruby_vendorlibdir}/qmf.rb
+%{ruby_vendorlibdir}/qmf2.rb
This page took 0.109195 seconds and 4 git commands to generate.