aboutsummaryrefslogtreecommitdiff
path: root/devel/ice/files
diff options
context:
space:
mode:
authorBoris Samorodov <bsam@FreeBSD.org>2012-09-23 14:45:33 +0000
committerBoris Samorodov <bsam@FreeBSD.org>2012-09-23 14:45:33 +0000
commitc1436fa4e5e34530cd4ca97f9d1796dd47f64d19 (patch)
tree53e80749449d5d0989720db9cd5dbd8f5215fa9a /devel/ice/files
parent4f1027b6beba9e125e17e296b6c4a6eaf9ea0b36 (diff)
downloadports-c1436fa4e5e34530cd4ca97f9d1796dd47f64d19.tar.gz
ports-c1436fa4e5e34530cd4ca97f9d1796dd47f64d19.zip
Changes from the PR:
. fix built using Clang in C++11 mode and libc++ (-std=c++11 -stdlib=libc++); . incorporate a patch that fixes an assert bug in IceStrom; . adopt new-style options; While I'm here: . adopt new-style headers; . remove indefinite article form COMMENT; . remove library versions from LIB_DEPENDS. PR: ports/171643 Submitted by: Michael Gmelin <freebsd@grem.de> (maintainer)
Notes
Notes: svn path=/head/; revision=304742
Diffstat (limited to 'devel/ice/files')
-rw-r--r--devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h10
-rw-r--r--devel/ice/files/patch-cpp-include-Ice-Stream.h11
-rw-r--r--devel/ice/files/patch-cpp-include-IceUtil-Cache.h10
-rw-r--r--devel/ice/files/patch-cpp-include-IceUtil-Config.h19
-rw-r--r--devel/ice/files/patch-cpp-include-IceUtil-Shared.h72
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp16
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-MapI.h18
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp11
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h11
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp11
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h11
-rw-r--r--devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp11
-rw-r--r--devel/ice/files/patch-cpp-src-Ice-Network.cpp11
-rw-r--r--devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp20
-rw-r--r--devel/ice/files/patch-cpp-src-IceStorm-Replica.h15
-rw-r--r--devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp74
-rw-r--r--devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp47
-rw-r--r--devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp21
-rw-r--r--devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp46
-rw-r--r--devel/ice/files/patch-cpp-src-slice2cs-Main.cpp46
-rw-r--r--devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp55
-rw-r--r--devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp55
-rw-r--r--devel/ice/files/patch-cpp-src-slice2html-Main.cpp55
-rw-r--r--devel/ice/files/patch-cpp-src-slice2java-Main.cpp46
-rw-r--r--devel/ice/files/patch-cpp-src-slice2php-Main.cpp46
-rw-r--r--devel/ice/files/patch-cpp-src-slice2py-Main.cpp46
-rw-r--r--devel/ice/files/patch-cpp-src-slice2rb-Main.cpp46
27 files changed, 838 insertions, 2 deletions
diff --git a/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h b/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
new file mode 100644
index 000000000000..fac5ae1a708e
--- /dev/null
+++ b/devel/ice/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
@@ -0,0 +1,10 @@
+--- cpp.orig/demo/Freeze/customEvictor/Evictor.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/demo/Freeze/customEvictor/Evictor.h 2012-09-10 11:43:58.000000000 +0200
+@@ -66,6 +66,7 @@ class Evictor : public Ice::ServantLocator
+ public:
+
+ Evictor(CurrentDatabase&, int);
++ virtual ~Evictor() ICE_NOEXCEPT_TRUE {};
+
+ virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPtr&);
+ virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, const Ice::LocalObjectPtr&);
diff --git a/devel/ice/files/patch-cpp-include-Ice-Stream.h b/devel/ice/files/patch-cpp-include-Ice-Stream.h
index 3385b6618d14..bdd4e827fd53 100644
--- a/devel/ice/files/patch-cpp-include-Ice-Stream.h
+++ b/devel/ice/files/patch-cpp-include-Ice-Stream.h
@@ -77,3 +77,14 @@
}
v = static_cast<T>(val);
}
+--- cpp.orig/include/Ice/Stream.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/Ice/Stream.h 2012-09-10 11:43:58.000000000 +0200
+@@ -664,7 +664,7 @@ struct StreamWriter<StreamTraitTypeSequenceBool>
+ outS->writeSize(static_cast<Int>(v.size()));
+ for(typename T::const_iterator p = v.begin(); p != v.end(); ++p)
+ {
+- outS->write(*p);
++ outS->write(static_cast<bool>(*p));
+ }
+ }
+ };
diff --git a/devel/ice/files/patch-cpp-include-IceUtil-Cache.h b/devel/ice/files/patch-cpp-include-IceUtil-Cache.h
new file mode 100644
index 000000000000..68060b3c96f7
--- /dev/null
+++ b/devel/ice/files/patch-cpp-include-IceUtil-Cache.h
@@ -0,0 +1,10 @@
+--- cpp.orig/include/IceUtil/Cache.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Cache.h 2012-09-10 11:43:58.000000000 +0200
+@@ -77,6 +77,6 @@ protected:
+ {
+ }
+
+- virtual ~Cache()
++ virtual ~Cache() ICE_NOEXCEPT_FALSE
+ {
+ }
diff --git a/devel/ice/files/patch-cpp-include-IceUtil-Config.h b/devel/ice/files/patch-cpp-include-IceUtil-Config.h
new file mode 100644
index 000000000000..2e513293512a
--- /dev/null
+++ b/devel/ice/files/patch-cpp-include-IceUtil-Config.h
@@ -0,0 +1,19 @@
+--- cpp.orig/include/IceUtil/Config.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Config.h 2012-09-10 11:43:58.000000000 +0200
+@@ -248,3 +248,16 @@ public:
+ #define ICE_DEFAULT_MUTEX_PROTOCOL PrioNone
+
+ #endif
++
++
++//
++// Macro used for declaring destructors that might throw - required for C++11
++//
++#if __cplusplus >= 201103L
++#define ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT
++#define ICE_NOEXCEPT_FALSE noexcept(false)
++#define ICE_NOEXCEPT_TRUE noexcept(true)
++#else
++#define ICE_NOEXCEPT_FALSE
++#define ICE_NOEXCEPT_TRUE
++#endif
diff --git a/devel/ice/files/patch-cpp-include-IceUtil-Shared.h b/devel/ice/files/patch-cpp-include-IceUtil-Shared.h
new file mode 100644
index 000000000000..43a852a63d7e
--- /dev/null
+++ b/devel/ice/files/patch-cpp-include-IceUtil-Shared.h
@@ -0,0 +1,72 @@
+--- cpp.orig/include/IceUtil/Shared.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/include/IceUtil/Shared.h 2012-09-10 11:43:58.000000000 +0200
+@@ -50,6 +50,11 @@
+ //
+ // A non thread-safe base class for reference-counted types.
+ //
++// IceUtil::SimpleSharedUnsafeDestructor
++// =====================
++//
++// A non thread-safe base class for reference-counted types - destructor might throw.
++//
+ // IceUtil::Shared
+ // ===============
+ //
+@@ -109,6 +114,57 @@ private:
+ bool _noDelete;
+ };
+
++class ICE_UTIL_API SimpleSharedUnsafeDestructor
++{
++public:
++
++ SimpleSharedUnsafeDestructor();
++ SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&);
++
++ virtual ~SimpleSharedUnsafeDestructor() ICE_NOEXCEPT_FALSE
++ {
++ }
++
++ SimpleSharedUnsafeDestructor& operator=(const SimpleSharedUnsafeDestructor&)
++ {
++ return *this;
++ }
++
++ void __incRef()
++ {
++ assert(_ref >= 0);
++ ++_ref;
++ }
++
++ void __decRef()
++ {
++ assert(_ref > 0);
++ if(--_ref == 0)
++ {
++ if(!_noDelete)
++ {
++ _noDelete = true;
++ delete this;
++ }
++ }
++ }
++
++ int __getRef() const
++ {
++ return _ref;
++ }
++
++ void __setNoDelete(bool b)
++ {
++ _noDelete = b;
++ }
++
++private:
++
++ int _ref;
++ bool _noDelete;
++};
++
+ class ICE_UTIL_API Shared
+ {
+ public:
diff --git a/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp b/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
index d81ab18862c3..a03dce42e20c 100644
--- a/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
+++ b/devel/ice/files/patch-cpp-src-Freeze-MapDb.cpp
@@ -1,5 +1,19 @@
--- cpp.orig/src/Freeze/MapDb.cpp 2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Freeze/MapDb.cpp 2012-03-04 20:14:52.000000000 +0100
++++ cpp/src/Freeze/MapDb.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -72,7 +72,13 @@ Freeze::MapDb::~MapDb()
+ }
+ catch(const ::DbException& dx)
+ {
++#if defined(ICE_DESTRUCTORS_DONT_THROW_BY_DEFAULT)
++ Error out(_communicator->getLogger());
++ out << "DbException while closing database " << _dbName << ": "
++ << dx.what();
++#else
+ throw DatabaseException(__FILE__, __LINE__, dx.what());
++#endif
+ }
+ }
+ }
@@ -229,7 +229,11 @@
#ifndef NDEBUG
bool inserted =
diff --git a/devel/ice/files/patch-cpp-src-Freeze-MapI.h b/devel/ice/files/patch-cpp-src-Freeze-MapI.h
new file mode 100644
index 000000000000..1338d0a78a87
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-MapI.h
@@ -0,0 +1,18 @@
+--- cpp.orig/src/Freeze/MapI.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/MapI.h 2012-09-10 11:43:58.000000000 +0200
+@@ -63,12 +63,13 @@ public:
+ void
+ close();
+
+- class Tx : public IceUtil::SimpleShared
++ class Tx : public IceUtil::SimpleSharedUnsafeDestructor
+ {
+ public:
+
+ Tx(const MapHelperI&);
+- ~Tx();
++ ~Tx() ICE_NOEXCEPT_FALSE;
++ ;
+
+ void dead();
+
diff --git a/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp b/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp
new file mode 100644
index 000000000000..867aadf5e09d
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.cpp
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/ObjectStore.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/ObjectStore.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -189,7 +189,7 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
+ }
+ }
+
+-Freeze::ObjectStoreBase::~ObjectStoreBase()
++Freeze::ObjectStoreBase::~ObjectStoreBase() ICE_NOEXCEPT_FALSE
+ {
+ try
+ {
diff --git a/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h b/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h
new file mode 100644
index 000000000000..1be37d3ec89a
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-ObjectStore.h
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/ObjectStore.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/ObjectStore.h 2012-09-10 11:43:58.000000000 +0200
+@@ -36,7 +36,7 @@ public:
+ ObjectStoreBase(const std::string&, const std::string&, bool, EvictorIBase*,
+ const std::vector<IndexPtr>&, bool);
+
+- virtual ~ObjectStoreBase();
++ virtual ~ObjectStoreBase() ICE_NOEXCEPT_FALSE;
+
+ const Ice::ObjectPtr& sampleServant() const;
+
diff --git a/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
new file mode 100644
index 000000000000..aa9afc85d3df
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorContext.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorContext.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -273,7 +273,7 @@ Freeze::TransactionalEvictorContext::ServantHolder::ServantHolder() :
+ }
+
+
+-Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder()
++Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder() ICE_NOEXCEPT_FALSE
+ {
+ if(_ownBody && _body.ownServant)
+ {
diff --git a/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
new file mode 100644
index 000000000000..3bf5761aa829
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorContext.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorContext.h 2012-09-10 11:43:58.000000000 +0200
+@@ -34,7 +34,7 @@ public:
+ public:
+
+ ServantHolder();
+- ~ServantHolder();
++ ~ServantHolder() ICE_NOEXCEPT_FALSE;
+
+ void init(const TransactionalEvictorContextPtr&, const Ice::Current&, ObjectStore<TransactionalEvictorElement>*);
+
diff --git a/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
new file mode 100644
index 000000000000..aafbe6d21ad2
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
@@ -0,0 +1,11 @@
+--- cpp.orig/src/Freeze/TransactionalEvictorI.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/Freeze/TransactionalEvictorI.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -346,7 +346,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& request)
+ {
+ }
+
+- ~CtxHolder()
++ ~CtxHolder() ICE_NOEXCEPT_FALSE
+ {
+ if(_ownCtx)
+ {
diff --git a/devel/ice/files/patch-cpp-src-Ice-Network.cpp b/devel/ice/files/patch-cpp-src-Ice-Network.cpp
index c3a95e6dd154..7b57e91e4b15 100644
--- a/devel/ice/files/patch-cpp-src-Ice-Network.cpp
+++ b/devel/ice/files/patch-cpp-src-Ice-Network.cpp
@@ -1,5 +1,5 @@
--- cpp.orig/src/Ice/Network.cpp 2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/Network.cpp 2011-07-15 23:40:26.000000000 +0200
++++ cpp/src/Ice/Network.cpp 2012-09-10 11:43:58.000000000 +0200
@@ -715,7 +715,11 @@
WSASetLastError(error);
#else
@@ -13,3 +13,12 @@
{
SocketException ex(__FILE__, __LINE__);
ex.error = getSocketErrno();
+@@ -1098,7 +1098,7 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr_storage& addr)
+ size = 0; // Keep the compiler happy.
+ }
+
+- if(bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
++ if(::bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) == SOCKET_ERROR)
+ {
+ closeSocketNoThrow(fd);
+ SocketException ex(__FILE__, __LINE__);
diff --git a/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp b/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp
new file mode 100644
index 000000000000..d8288711642c
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceGrid-FileCache.cpp
@@ -0,0 +1,20 @@
+--- cpp.orig/src/IceGrid/FileCache.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceGrid/FileCache.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -195,15 +195,12 @@ FileCache::read(const string& file, Ice::Long offset, int size, Ice::Long& newOf
+
+ totalSize += lineSize;
+ lines.push_back(line);
+-#if defined(_MSC_VER) && (_MSC_VER < 1300)
+- if(is.eof())
++
++ if(is.eof() || is.fail())
+ {
+ newOffset += line.size();
+ }
+ else
+-#else
+- if(!is.fail())
+-#endif
+ {
+ newOffset = is.tellg();
+ }
diff --git a/devel/ice/files/patch-cpp-src-IceStorm-Replica.h b/devel/ice/files/patch-cpp-src-IceStorm-Replica.h
new file mode 100644
index 000000000000..d08f8c239d74
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceStorm-Replica.h
@@ -0,0 +1,15 @@
+--- cpp.orig/src/IceStorm/Replica.h 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/Replica.h 2012-09-10 11:43:58.000000000 +0200
+@@ -23,9 +23,9 @@ struct GroupNodeInfo
+ GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o = Ice::ObjectPrx());
+ bool operator<(const GroupNodeInfo& rhs) const;
+ bool operator==(const GroupNodeInfo& rhs) const;
+- const int id;
+- const LogUpdate llu;
+- const Ice::ObjectPrx observer;
++ int id;
++ LogUpdate llu;
++ Ice::ObjectPrx observer;
+ };
+
+ class Replica : virtual public IceUtil::Shared
diff --git a/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp b/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp
new file mode 100644
index 000000000000..b647892a5772
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceStorm-TopicI.cpp
@@ -0,0 +1,74 @@
+--- cpp.orig/src/IceStorm/TopicI.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/TopicI.cpp 2012-09-12 22:14:00.000000000 +0200
+@@ -666,7 +666,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -703,7 +703,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -788,7 +788,7 @@ TopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -912,7 +912,7 @@ TopicImpl::link(const TopicPrx& topic, Ice::Int cost)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -1311,7 +1311,7 @@ TopicImpl::observerAddSubscriber(const LogUpdate& llu, const SubscriberRecord& r
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -1380,7 +1380,7 @@ TopicImpl::observerRemoveSubscriber(const LogUpdate& llu, const Ice::IdentitySeq
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
+@@ -1456,7 +1456,7 @@ TopicImpl::destroyInternal(const LogUpdate& origLLU, bool master)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ // Erase all subscriber records and the topic record.
+@@ -1531,7 +1531,7 @@ TopicImpl::removeSubscribers(const Ice::IdentitySeq& ids)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id)
diff --git a/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp b/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp
new file mode 100644
index 000000000000..c86f7d047a14
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceStorm-TopicManagerI.cpp
@@ -0,0 +1,47 @@
+--- cpp.orig/src/IceStorm/TopicManagerI.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceStorm/TopicManagerI.cpp 2012-09-12 22:14:00.000000000 +0200
+@@ -312,7 +312,7 @@ TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) :
+ _sync = _instance->nodeAdapter()->addWithUUID(_syncImpl);
+ }
+
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+
+ // Ensure that the llu counter is present in the log.
+ LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
+@@ -381,7 +381,7 @@ TopicManagerImpl::create(const string& name)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -486,7 +486,7 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& cont
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ LLUWrapperPtr lluWrapper = _databaseCache->getLLU(connection);
+@@ -590,7 +590,7 @@ TopicManagerImpl::observerCreateTopic(const LogUpdate& llu, const string& name)
+ {
+ try
+ {
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ SubscriberRecordKey key;
+@@ -776,7 +776,7 @@ TopicManagerImpl::initMaster(const set<GroupNodeInfo>& slaves, const LogUpdate&
+ {
+ content.clear();
+
+- DatabaseConnectionPtr connection = _databaseCache->getConnection();
++ DatabaseConnectionPtr connection = _databaseCache->newConnection();
+ TransactionHolder txn(connection);
+
+ for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p)
diff --git a/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp b/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp
new file mode 100644
index 000000000000..30583c77a35c
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-IceUtil-Shared.cpp
@@ -0,0 +1,21 @@
+--- cpp.orig/src/IceUtil/Shared.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/IceUtil/Shared.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -96,6 +96,18 @@ IceUtil::SimpleShared::SimpleShared(const SimpleShared&) :
+ {
+ }
+
++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor() :
++ _ref(0),
++ _noDelete(false)
++{
++}
++
++IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&) :
++ _ref(0),
++ _noDelete(false)
++{
++}
++
+ IceUtil::Shared::Shared() :
+ _ref(0),
+ _noDelete(false)
diff --git a/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp b/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp
new file mode 100644
index 000000000000..1f0c2079b455
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2cpp-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2cpp/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2cpp/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -22,7 +22,7 @@ using namespace Slice;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -31,13 +31,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -48,7 +48,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -294,7 +294,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp b/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp
new file mode 100644
index 000000000000..e46ff75ef613
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2cs-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2cs/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2cs/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -22,7 +22,7 @@ using namespace Slice;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -31,13 +31,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -48,7 +48,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -303,7 +303,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp b/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp
new file mode 100644
index 000000000000..64281d740f03
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2freeze-Main.cpp
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2freeze/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2freeze/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -28,7 +28,7 @@ using namespace Slice;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -37,13 +37,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -56,7 +56,7 @@ string ICE_ENCODING_COMPARE = "Freeze::IceEncodingCompare";
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -1995,7 +1995,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
+@@ -2042,7 +2042,7 @@ compile(int argc, char* argv[])
+ u->destroy();
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp b/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp
new file mode 100644
index 000000000000..7612dccad7a6
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2freezej-Main.cpp
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2freezej/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2freezej/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -26,7 +26,7 @@ using namespace IceUtilInternal;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -35,13 +35,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -52,7 +52,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mtx);
+
+ interrupted = true;
+ }
+@@ -1828,7 +1828,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
+@@ -1923,7 +1923,7 @@ compile(int argc, char* argv[])
+ u->destroy();
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2html-Main.cpp b/devel/ice/files/patch-cpp-src-slice2html-Main.cpp
new file mode 100644
index 000000000000..84886c43404e
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2html-Main.cpp
@@ -0,0 +1,55 @@
+--- cpp.orig/src/slice2html/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2html/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -24,7 +24,7 @@ using namespace IceUtil;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -33,13 +33,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -50,7 +50,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -254,7 +254,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
+@@ -296,7 +296,7 @@ compile(int argc, char* argv[])
+ p->destroy();
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2java-Main.cpp b/devel/ice/files/patch-cpp-src-slice2java-Main.cpp
new file mode 100644
index 000000000000..9b05b32e4621
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2java-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2java/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2java/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -23,7 +23,7 @@ using namespace Slice;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -32,13 +32,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -49,7 +49,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -356,7 +356,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2php-Main.cpp b/devel/ice/files/patch-cpp-src-slice2php-Main.cpp
new file mode 100644
index 000000000000..85a751a84586
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2php-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2php/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2php/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -1488,7 +1488,7 @@ printHeader(IceUtilInternal::Output& out)
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -1497,13 +1497,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -1514,7 +1514,7 @@ Init init;
+ static void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -1777,7 +1777,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2py-Main.cpp b/devel/ice/files/patch-cpp-src-slice2py-Main.cpp
new file mode 100644
index 000000000000..83102598cbd8
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2py-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2py/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2py/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -40,7 +40,7 @@ using namespace Slice::Python;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -49,13 +49,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -66,7 +66,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -631,7 +631,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {
diff --git a/devel/ice/files/patch-cpp-src-slice2rb-Main.cpp b/devel/ice/files/patch-cpp-src-slice2rb-Main.cpp
new file mode 100644
index 000000000000..e2db7b860608
--- /dev/null
+++ b/devel/ice/files/patch-cpp-src-slice2rb-Main.cpp
@@ -0,0 +1,46 @@
+--- cpp.orig/src/slice2rb/Main.cpp 2011-06-15 21:43:58.000000000 +0200
++++ cpp/src/slice2rb/Main.cpp 2012-09-10 11:43:58.000000000 +0200
+@@ -39,7 +39,7 @@ using namespace Slice::Ruby;
+ namespace
+ {
+
+-IceUtil::Mutex* mutex = 0;
++IceUtil::Mutex* mtx = 0;
+ bool interrupted = false;
+
+ class Init
+@@ -48,13 +48,13 @@ public:
+
+ Init()
+ {
+- mutex = new IceUtil::Mutex;
++ mtx = new IceUtil::Mutex;
+ }
+
+ ~Init()
+ {
+- delete mutex;
+- mutex = 0;
++ delete mtx;
++ mtx = 0;
+ }
+ };
+
+@@ -65,7 +65,7 @@ Init init;
+ void
+ interruptedCallback(int signal)
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ interrupted = true;
+ }
+@@ -316,7 +316,7 @@ compile(int argc, char* argv[])
+ }
+
+ {
+- IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
++ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
+
+ if(interrupted)
+ {