From freebsd@grem.de  Sun Jun  2 22:14:23 2013
Return-Path: <freebsd@grem.de>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	by hub.freebsd.org (Postfix) with ESMTP id 9A704142
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  2 Jun 2013 22:14:23 +0000 (UTC)
	(envelope-from freebsd@grem.de)
Received: from mail.grem.de (outcast.grem.de [213.239.217.27])
	by mx1.freebsd.org (Postfix) with SMTP id F2D501AD3
	for <FreeBSD-gnats-submit@freebsd.org>; Sun,  2 Jun 2013 22:14:21 +0000 (UTC)
Received: (qmail 54267 invoked by uid 0); 2 Jun 2013 22:07:33 -0000
Message-Id: <20130602220733.54266.qmail@mail.grem.de>
Date: 2 Jun 2013 22:07:33 -0000
From: Michael Gmelin <freebsd@grem.de>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [MAINTAINER] devel/ice: update to 3.5.0
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         179233
>Category:       ports
>Synopsis:       [MAINTAINER] devel/ice: update to 3.5.0
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    rm
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 02 22:20:01 UTC 2013
>Closed-Date:    Mon Jun 17 11:52:35 UTC 2013
>Last-Modified:  Mon Jun 17 11:52:35 UTC 2013
>Originator:     Michael Gmelin
>Release:        FreeBSD 9.1-RELEASE amd64
>Organization:
Grem Equity GmbH
>Environment:
System: FreeBSD srv 9.1-RELEASE-p2 FreeBSD 9.1-RELEASE-p2 #4 r249052: Wed Apr  3 18:26:19 UTC
>Description:
- Update to 3.5.0

Note: The PR system is mangling UTF-8 encoded patches (see PR
www/172195), so the attached patch is probably corrupted.  You can
download a clean version of the patch at:

http://blog.grem.de/ice_350_20130602.patch or
http://blog.grem.de/ice_350_20130602.patch.gz

Version 3.5.0 of Ice brings many new features, e.g.
- New encoding version
- Metrics facility
- Optional data members and parameters
- Compact encoding for classes and exceptions
- Compact type IDs
- Preserved slices
- Custom enumerator values
- C++11 lambda functions
- Remote Update of Server Properties
- IPv6 now enabled by default
- Python 3 support
- Use Berkley DB 5

See http://doc.zeroc.com/display/Ice/Release+Notes for details.

Many of the features from the previous version of the port were
incorporated upstream, therefore the number of patches in the port
skeleton is much smaller now.

The port has been tested using gcc 4.2.1 (libstdc++, C++98) and
clang 3.1 and 3.3 (libc++, C++11).

Added file(s):
- files/patch-config-Make.common.rules
- files/patch-cpp-Makefile
- files/patch-cpp-config-Make.rules
- files/patch-cpp-src-Ice-.depend
- files/patch-cpp-test-Ice-metrics-AllTests.cpp
- pkg-message

Removed file(s):
- files/patch-Make.rules
- files/patch-Makefile
- files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
- files/patch-cpp-demo-IceGrid-secure-README
- files/patch-cpp-demo-IceGrid-secure-application.xml
- files/patch-cpp-demo-IceGrid-secure-config.admin
- files/patch-cpp-demo-IceGrid-secure-config.client
- files/patch-cpp-demo-IceGrid-secure-config.master
- files/patch-cpp-demo-IceGrid-secure-config.node
- files/patch-cpp-demo-IceGrid-secure-config.registry
- files/patch-cpp-demo-IceGrid-secure-config.slave
- files/patch-cpp-demo-IceGrid-secure-makecerts.py
- files/patch-cpp-include-Freeze-Map.h
- files/patch-cpp-include-Ice-Buffer.h
- files/patch-cpp-include-Ice-ConnectionIF.h
- files/patch-cpp-include-Ice-IconvStringConverter.h
- files/patch-cpp-include-Ice-IncomingAsyncF.h
- files/patch-cpp-include-Ice-LocalObjectF.h
- files/patch-cpp-include-Ice-ObjectF.h
- files/patch-cpp-include-Ice-OutgoingAsyncF.h
- files/patch-cpp-include-Ice-Proxy.h
- files/patch-cpp-include-Ice-ProxyF.h
- files/patch-cpp-include-Ice-Stream.h
- files/patch-cpp-include-Ice-StreamF.h
- files/patch-cpp-include-IceUtil-Cache.h
- files/patch-cpp-include-IceUtil-Mutex.h
- files/patch-cpp-include-IceUtil-Shared.h
- files/patch-cpp-src-Freeze-MapDb.cpp
- files/patch-cpp-src-Freeze-MapI.cpp
- files/patch-cpp-src-Freeze-MapI.h
- files/patch-cpp-src-Freeze-ObjectStore.cpp
- files/patch-cpp-src-Freeze-ObjectStore.h
- files/patch-cpp-src-Freeze-SharedDbEnv.cpp
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
- files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
- files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
- files/patch-cpp-src-Glacier2-Blobject.cpp
- files/patch-cpp-src-Glacier2-Blobject.h
- files/patch-cpp-src-Glacier2-RequestQueue.cpp
- files/patch-cpp-src-Glacier2-RequestQueue.h
- files/patch-cpp-src-Glacier2-RouterI.cpp
- files/patch-cpp-src-Ice-ConnectionI.cpp
- files/patch-cpp-src-Ice-IncomingAsync.cpp
- files/patch-cpp-src-Ice-LocalObject.cpp
- files/patch-cpp-src-Ice-Object.cpp
- files/patch-cpp-src-Ice-OutgoingAsync.cpp
- files/patch-cpp-src-Ice-PropertyNames.cpp
- files/patch-cpp-src-Ice-PropertyNames.h
- files/patch-cpp-src-Ice-Service.cpp
- files/patch-cpp-src-Ice-Stream.cpp
- files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp
- files/patch-cpp-src-IceGrid-DescriptorHelper.cpp
- files/patch-cpp-src-IceGrid-Internal.ice
- files/patch-cpp-src-IceGrid-InternalRegistryI.cpp
- files/patch-cpp-src-IceGrid-InternalRegistryI.h
- files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
- files/patch-cpp-src-IceGrid-ReplicaCache.cpp
- files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp
- files/patch-cpp-src-IceGrid-SessionI.h
- files/patch-cpp-src-IceSSL-Instance.cpp
- files/patch-cpp-src-IceSSL-InstanceF.h
- files/patch-cpp-src-IceSSL-TrustManager.cpp
- files/patch-cpp-src-IceSSL-TrustManagerF.h
- files/patch-cpp-src-IceSSL-Util.cpp
- files/patch-cpp-src-IceSSL-UtilF.h
- files/patch-cpp-src-IceStorm-NodeI.cpp
- files/patch-cpp-src-IceStorm-Replica.h
- files/patch-cpp-src-IceStorm-TopicI.cpp
- files/patch-cpp-src-IceStorm-TopicManagerI.cpp
- files/patch-cpp-src-IceUtil-Cond.cpp
- files/patch-cpp-src-IceUtil-CountDownLatch.cpp
- files/patch-cpp-src-IceUtil-CtrlCHandler.cpp
- files/patch-cpp-src-IceUtil-FileUtil.cpp
- files/patch-cpp-src-IceUtil-RecMutex.cpp
- files/patch-cpp-src-IceUtil-Shared.cpp
- files/patch-cpp-src-Slice-CPlusPlusUtil.cpp
- files/patch-cpp-src-Slice-FileTracker.cpp
- files/patch-cpp-src-slice2cpp-Main.cpp
- files/patch-cpp-src-slice2cs-Gen.cpp
- files/patch-cpp-src-slice2cs-Main.cpp
- files/patch-cpp-src-slice2freeze-Main.cpp
- files/patch-cpp-src-slice2freezej-Main.cpp
- files/patch-cpp-src-slice2html-Main.cpp
- files/patch-cpp-src-slice2java-Gen.cpp
- files/patch-cpp-src-slice2java-Main.cpp
- files/patch-cpp-src-slice2php-Main.cpp
- files/patch-cpp-src-slice2py-Main.cpp
- files/patch-cpp-src-slice2rb-Main.cpp
- files/patch-cpp-test-Ice-background-EndpointI.h
- files/patch-cpp-test-Ice-custom-AllTests.cpp
- files/patch-cpp-test-IceUtil-unicode-Client.cpp
- files/patch-cpp-test-Slice-keyword-Client.cpp

Generated with FreeBSD Port Tools 0.99_6 (mode: update, diff: suffix)
>How-To-Repeat:
>Fix:

--- Ice-3.5.0.patch begins here ---
diff -ruN --exclude=CVS ../ice.orig/Makefile ./Makefile
--- ../ice.orig/Makefile	2013-04-27 10:50:46.000000000 +0200
+++ ./Makefile	2013-06-02 14:20:04.000000000 +0200
@@ -2,14 +2,15 @@
 # $FreeBSD: devel/ice/Makefile 316654 2013-04-27 08:50:46Z mva $
 
 PORTNAME=		Ice
-PORTVERSION=		3.4.2
-PORTREVISION=		3
+PORTVERSION=		3.5.0
 CATEGORIES=		devel
-MASTER_SITES=		http://download.zeroc.com/Ice/3.4/
+MASTER_SITES=		http://download.zeroc.com/Ice/3.5/
 
 MAINTAINER=		freebsd@grem.de
 COMMENT=		Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
 
+LICENSE=		GPLv2
+
 LIB_DEPENDS=		expat:${PORTSDIR}/textproc/expat2 \
 			mcpp:${PORTSDIR}/devel/mcpp
 
@@ -26,8 +27,8 @@
 
 USE_GMAKE=		yes
 USES=			iconv
-USE_BDB=		42+
-INVALID_BDB_VER=	2 3 40 41
+USE_BDB=		5
+INVALID_BDB_VER=	2 3 40 41 42 43 44 46 47 48
 USE_LDCONFIG=		yes
 BUILD_WRKSRC=		${WRKSRC}/cpp
 INSTALL_WRKSRC=		${WRKSRC}/cpp
diff -ruN --exclude=CVS ../ice.orig/distinfo ./distinfo
--- ../ice.orig/distinfo	2012-07-14 15:54:48.000000000 +0200
+++ ./distinfo	2013-05-19 23:35:43.000000000 +0200
@@ -1,2 +1,2 @@
-SHA256 (Ice-3.4.2.tar.gz) = dcf0484495b6df0849ec90a00e8204fe5fe1c0d3882bb438bf2c1d062f15c979
-SIZE (Ice-3.4.2.tar.gz) = 5485106
+SHA256 (Ice-3.5.0.tar.gz) = 583d4a819d50ad8b79b1e9ad45abfa3078f981486271ca8cd9ede8fa420ff575
+SIZE (Ice-3.5.0.tar.gz) = 5388847
diff -ruN --exclude=CVS ../ice.orig/files/patch-Make.rules ./files/patch-Make.rules
--- ../ice.orig/files/patch-Make.rules	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-Make.rules	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
---- cpp/config/Make.rules.orig	Fri Mar  9 00:16:54 2007
-+++ cpp/config/Make.rules	Fri Apr 13 20:05:04 2007
-@@ -188,7 +188,9 @@
-       DB_FLAGS          = -I/usr/include/db45
-       DB_LIBS           = -L/usr/$(libsubdir)/db45 -ldb_cxx
-    else
--      DB_LIBS           = -ldb_cxx
-+      DB_FLAGS          = -I%%BDB_INCLUDE_DIR%%
-+      DB_LIBS           = -L%%BDB_LIB_DIR%% -l%%BDB_LIB_CXX_NAME%%
-+      DB_RPATH_LINK     = $(call rpathlink,%%BDB_LIB_DIR%%)
-    endif
- endif
diff -ruN --exclude=CVS ../ice.orig/files/patch-Makefile ./files/patch-Makefile
--- ../ice.orig/files/patch-Makefile	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-Makefile	1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
---- cpp.orig/Makefile	2012-03-04 21:38:42.000000000 +0100
-+++ cpp/Makefile	2012-03-04 21:38:42.000000000 +0100
-@@ -11,7 +11,22 @@
- 
- include $(top_srcdir)/config/Make.rules
- 
--SUBDIRS		= config src include test demo
-+SUBDIRS		= config src include
-+
-+ifeq ($(NOTESTS),)
-+SUBDIRS		+= test
-+endif
-+
-+ifeq ($(NODEMOS),)
-+SUBDIRS		+= demo
-+endif
-+
-+ifeq ($(NOPORTDOCS),)
-+SUBDIRS		+= doc
-+endif
-+ 
-+ INSTALL_SUBDIRS	= $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir)
-+ 
- 
- INSTALL_SUBDIRS	= $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir)
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-config-Make.common.rules ./files/patch-config-Make.common.rules
--- ../ice.orig/files/patch-config-Make.common.rules	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-config-Make.common.rules	2013-06-01 19:52:09.000000000 +0200
@@ -0,0 +1,18 @@
+--- config.orig/Make.common.rules	2013-05-20 22:21:58.666286011 +0000
++++ config/Make.common.rules	2013-05-20 22:20:50.897196090 +0000
+@@ -378,11 +378,15 @@
+ 	then \
+ 	    echo "Creating $(install_slicedir)..." ; \
+ 	    $(call mkdir, $(install_slicedir)) ; \
++	fi
++
++	@if test -d $(install_slicedir) ; \
++	then \
+ 	    cd $(top_srcdir)/../slice ; \
+ 	    for subdir in * ; \
+ 	    do \
+ 	        echo "Copying slice/$$subdir to $(install_slicedir)..." ; \
+ 	        cp -fpr $$subdir $(install_slicedir) ; \
+ 	    done ; \
+-	    fi
++	fi
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-Makefile ./files/patch-cpp-Makefile
--- ../ice.orig/files/patch-cpp-Makefile	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-Makefile	2013-05-20 01:05:19.000000000 +0200
@@ -0,0 +1,26 @@
+--- cpp.orig/Makefile	2013-03-11 15:19:46.000000000 +0000
++++ cpp/Makefile	2013-05-19 22:06:57.713280491 +0000
+@@ -11,11 +11,22 @@
+ 
+ include $(top_srcdir)/config/Make.rules
+ 
+-SUBDIRS		= config src include test
++SUBDIRS		= config src include
++
++ifeq ($(NOTESTS),)
++SUBDIRS		:= $(SUBDIRS) test
++endif
+ 
+ ifeq ($(shell uname | grep MINGW),)
++ifeq ($(NODEMOS),)
+ SUBDIRS		:= $(SUBDIRS) demo
+ endif
++endif
++
++ifeq ($(NOPORTDOCS),)
++SUBDIRS		:= $(SUBDIRS) doc
++endif
++
+ 
+ INSTALL_SUBDIRS	= $(install_bindir) $(install_libdir) $(install_includedir) $(install_configdir)
+ 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-allTests.py ./files/patch-cpp-allTests.py
--- ../ice.orig/files/patch-cpp-allTests.py	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-allTests.py	2013-05-20 00:26:42.000000000 +0200
@@ -1,13 +1,5 @@
---- cpp.orig/allTests.py	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/allTests.py	2012-03-04 20:14:52.000000000 +0100
-@@ -25,6 +25,7 @@
- # List of all basic tests.
- #
- tests = [ 
-+
-     ("IceUtil/condvar", ["once", "win32only"]),
-     ("IceUtil/thread",  ["once"]),
-     ("IceUtil/unicode", ["once"]),
+--- cpp.orig/allTests.py	2013-03-11 15:19:58.000000000 +0000
++++ cpp/allTests.py	2013-05-19 22:25:00.000000000 +0000
 @@ -62,7 +63,7 @@
      ("Ice/servantLocator", ["core"]),
      ("Ice/interceptor", ["core"]),
@@ -22,9 +14,9 @@
  if TestUtil.isWin32() or os.getuid() == 0:
      tests += [
 -        ("IceUtil/priority", ["core", "nodarwin"]),
--        ("Ice/threadPoolPriority", ["core", "nodarwin"])
+-        ("Ice/threadPoolPriority", ["core", "nodarwin", "nomx"])
 +        ("IceUtil/priority", ["core", "nodarwin", "nofreebsd"]),
-+        ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd"])
++        ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd", "nomx"])
          ]
  
  if __name__ == "__main__":
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-config-Make.rules ./files/patch-cpp-config-Make.rules
--- ../ice.orig/files/patch-cpp-config-Make.rules	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-config-Make.rules	2013-05-21 02:45:50.000000000 +0200
@@ -0,0 +1,13 @@
+--- cpp.orig/config/Make.rules	Fri Mar 11 16:19:00 2013
++++ cpp/config/Make.rules	Fri May 19 22:00:09 2013
+@@ -233,7 +233,9 @@
+           DB_FLAGS          = -I/usr/local/include/db53
+           DB_LIBS           = -L/usr/local/$(libsubdir)/db53 -ldb_cxx
+       else
+-        DB_LIBS      = -ldb_cxx
++        DB_FLAGS          = -I%%BDB_INCLUDE_DIR%%
++        DB_LIBS           = -L%%BDB_LIB_DIR%% -l%%BDB_LIB_CXX_NAME%%
++        DB_RPATH_LINK     = $(call rpathlink,%%BDB_LIB_DIR%%)
+       endif
+    endif
+ endif
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h ./files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
--- ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-README ./files/patch-cpp-demo-IceGrid-secure-README
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-README	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-README	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/README	2011-06-15 21:44:00.000000000 +0200
-+++ cpp/demo/IceGrid/secure/README	2012-03-04 19:55:44.000000000 +0100
-@@ -31,9 +31,10 @@
- the filesystem permissions to restrict access to the certificate.
- 
- Once the certificates are generated, you can start the IceGrid
--registry, node, and Glacier2 router:
-+registries, node, and Glacier2 router:
- 
--$ icegridregistry --Ice.Config=config.registry
-+$ icegridregistry --Ice.Config=config.master
-+$ icegridregistry --Ice.Config=config.slave
- $ icegridnode --Ice.Config=config.node
- $ glacier2router --Ice.Config=config.glacier2
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-application.xml ./files/patch-cpp-demo-IceGrid-secure-application.xml
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-application.xml	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-application.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/application.xml	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/application.xml	2012-03-04 19:55:44.000000000 +0100
-@@ -20,8 +20,8 @@
-       <property name="IceSSL.DefaultDir" value="certs"/>
- 
-       <property name="Ice.Admin.Endpoints" value="ssl -h 127.0.0.1"/>
--      <property name="IceSSL.TrustOnly.Client" value="CN=IceGrid Registry"/>
--      <property name="IceSSL.TrustOnly.Server.Ice.Admin" value="CN=IceGrid Node"/>
-+      <property name="IceSSL.TrustOnly.Client" value="CN=Master;CN=Slave"/>
-+      <property name="IceSSL.TrustOnly.Server.Ice.Admin" value="CN=Node"/>
-     </properties>
- 
-     <node name="Node">
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.admin ./files/patch-cpp-demo-IceGrid-secure-config.admin
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.admin	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.admin	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.admin	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/config.admin	2012-03-04 19:55:44.000000000 +0100
-@@ -14,7 +14,7 @@
- # SSL Configuration
- #
- IceSSL.DefaultDir=certs
--IceSSL.TrustOnly.Client=CN="IceGrid Registry";CN="Glacier2"
-+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Glacier2"
- 
- # C++ configuration
- Ice.Plugin.IceSSL.cpp=IceSSL:createIceSSL
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.client ./files/patch-cpp-demo-IceGrid-secure-config.client
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.client	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.client	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.client	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/config.client	2012-03-04 19:55:44.000000000 +0100
-@@ -1,7 +1,7 @@
- #
- # The IceGrid locator proxy.
- #
--Ice.Default.Locator=DemoIceGrid/Locator:tcp -p 4061
-+Ice.Default.Locator=DemoIceGrid/Locator:tcp -p 4061:tcp -p 14061
- 
- #
- # Trace properties.
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.master ./files/patch-cpp-demo-IceGrid-secure-config.master
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.master	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.master	1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.master	2012-03-04 19:55:44.000000000 +0100
-+++ cpp/demo/IceGrid/secure/config.master	2012-03-04 19:55:44.000000000 +0100
-@@ -0,0 +1,61 @@
-+#
-+# The IceGrid instance name.
-+#
-+IceGrid.InstanceName=DemoIceGrid
-+
-+#
-+# IceGrid registry configuration.
-+#
-+IceGrid.Registry.Client.Endpoints=tcp -p 4061 -t 10000:ssl -p 4062 -t 10000
-+IceGrid.Registry.Server.Endpoints=ssl -t 10000
-+IceGrid.Registry.Internal.Endpoints=ssl -t 10000
-+IceGrid.Registry.Data=db/master
-+
-+#
-+# Ensure that nodes and slaves connecting to this registry have a name
-+# matching the certificate CN.
-+#
-+IceGrid.Registry.RequireNodeCertCN=1
-+IceGrid.Registry.RequireReplicaCertCN=1
-+
-+#
-+# IceGrid admin clients must use a secure connection to connect to the
-+# registry or use Glacier2.
-+#
-+IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
-+IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
-+
-+#
-+# IceGrid SQL configuration if using SQL database.
-+#
-+#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
-+#IceGrid.SQL.DatabaseType=QSQLITE
-+#IceGrid.SQL.DatabaseName=db/master/Registry.db
-+
-+#
-+# Trace properties.
-+#
-+Ice.ProgramName=Master
-+IceGrid.Registry.Trace.Node=2
-+IceGrid.Registry.Trace.Replica=2
-+
-+#
-+# SSL Configuration
-+#
-+Ice.Plugin.IceSSL=IceSSL:createIceSSL
-+IceSSL.DefaultDir=certs
-+IceSSL.CertAuthFile=ca_cert.pem
-+IceSSL.CertFile=master_cert.pem
-+IceSSL.KeyFile=master_key.pem
-+
-+#
-+# Don't require certificates. This is useful for admin clients that don't
-+# use certificate but still need to establish a secure connection for the
-+# username/password authentication
-+#
-+IceSSL.VerifyPeer=1
-+
-+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Node";CN="Glacier2"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="Node";CN="Master";CN="Slave"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.node ./files/patch-cpp-demo-IceGrid-secure-config.node
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.node	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.node	1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.node	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/config.node	2012-03-04 19:55:44.000000000 +0100
-@@ -1,7 +1,7 @@
- #
- # The IceGrid locator proxy.
- #
--Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000
-+Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000:ssl -p 14062 -t 10000
- 
- #
- # IceGrid node configuration.
-@@ -26,5 +26,5 @@
- IceSSL.CertFile=node_cert.pem
- IceSSL.KeyFile=node_key.pem
- 
--IceSSL.TrustOnly.Client=CN="Server";CN="IceGrid Registry"
--IceSSL.TrustOnly.Server=CN="IceGrid Registry"
-+IceSSL.TrustOnly.Client=CN="Server";CN="Master";CN="Slave"
-+IceSSL.TrustOnly.Server=CN="Master";CN="Slave"
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.registry ./files/patch-cpp-demo-IceGrid-secure-config.registry
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.registry	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.registry	1970-01-01 01:00:00.000000000 +0100
@@ -1,57 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.registry	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/config.registry	2012-03-04 19:55:44.000000000 +0100
-@@ -1,54 +0,0 @@
--#
--# The IceGrid instance name.
--#
--IceGrid.InstanceName=DemoIceGrid
--
--#
--# IceGrid registry configuration.
--#
--IceGrid.Registry.Client.Endpoints=tcp -p 4061 -t 10000:ssl -p 4062 -t 10000
--IceGrid.Registry.Server.Endpoints=ssl -t 10000
--IceGrid.Registry.Internal.Endpoints=ssl -t 10000
--IceGrid.Registry.Data=db/registry
--
--#
--# IceGrid admin clients must use a secure connection to connect to the
--# registry or use Glacier2.
--#
--IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
--IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
--
--#
--# IceGrid SQL configuration if using SQL database.
--#
--#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
--#IceGrid.SQL.DatabaseType=QSQLITE
--#IceGrid.SQL.DatabaseName=db/registry/Registry.db
--
--#
--# Trace properties.
--#
--Ice.ProgramName=Registry
--IceGrid.Registry.Trace.Node=2
--IceGrid.Registry.Trace.Replica=2
--
--#
--# SSL Configuration
--#
--Ice.Plugin.IceSSL=IceSSL:createIceSSL
--IceSSL.DefaultDir=certs
--IceSSL.CertAuthFile=ca_cert.pem
--IceSSL.CertFile=registry_cert.pem
--IceSSL.KeyFile=registry_key.pem
--
--#
--# Don't require certificates. This is useful for admin clients that don't
--# use certificate but still need to establish a secure connection for the
--# username/password authentication
--#
--IceSSL.VerifyPeer=1
--
--IceSSL.TrustOnly.Client=CN="IceGrid Registry";CN="IceGrid Node";CN="Glacier2"
--IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
--IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="IceGrid Node";CN="IceGrid Registry"
--IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.slave ./files/patch-cpp-demo-IceGrid-secure-config.slave
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.slave	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-config.slave	1970-01-01 01:00:00.000000000 +0100
@@ -1,69 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/config.slave	2012-03-04 19:55:44.000000000 +0100
-+++ cpp/demo/IceGrid/secure/config.slave	2012-03-04 19:55:44.000000000 +0100
-@@ -0,0 +1,66 @@
-+#
-+# The IceGrid locator proxy.
-+#
-+Ice.Default.Locator=DemoIceGrid/Locator:ssl -p 4062 -t 10000
-+
-+#
-+# The IceGrid instance name.
-+#
-+IceGrid.InstanceName=DemoIceGrid
-+
-+#
-+# IceGrid registry configuration.
-+#
-+IceGrid.Registry.Client.Endpoints=tcp -p 14061 -t 10000:ssl -p 14062 -t 10000
-+IceGrid.Registry.Server.Endpoints=ssl -t 10000
-+IceGrid.Registry.Internal.Endpoints=ssl -t 10000
-+IceGrid.Registry.Data=db/slave
-+IceGrid.Registry.ReplicaName=Slave
-+
-+#
-+# Ensure that nodes connecting to this registry have a name matching
-+# the certificate CN.
-+#
-+IceGrid.Registry.RequireNodeCertCN=1
-+
-+#
-+# IceGrid admin clients must use a secure connection to connect to the
-+# registry or use Glacier2.
-+#
-+IceGrid.Registry.AdminSessionManager.Endpoints=ssl -t 10000
-+IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
-+
-+#
-+# IceGrid SQL configuration if using SQL database.
-+#
-+#Ice.Plugin.DB=IceGridSqlDB:createSqlDB
-+#IceGrid.SQL.DatabaseType=QSQLITE
-+#IceGrid.SQL.DatabaseName=db/slave/Registry.db
-+
-+#
-+# Trace properties.
-+#
-+Ice.ProgramName=Slave
-+IceGrid.Registry.Trace.Node=2
-+IceGrid.Registry.Trace.Replica=2
-+
-+#
-+# SSL Configuration
-+#
-+Ice.Plugin.IceSSL=IceSSL:createIceSSL
-+IceSSL.DefaultDir=certs
-+IceSSL.CertAuthFile=ca_cert.pem
-+IceSSL.CertFile=slave_cert.pem
-+IceSSL.KeyFile=slave_key.pem
-+
-+#
-+# Don't require certificates. This is useful for admin clients that don't
-+# use certificate but still need to establish a secure connection for the
-+# username/password authentication
-+#
-+IceSSL.VerifyPeer=1
-+
-+IceSSL.TrustOnly.Client=CN="Master";CN="Slave";CN="Node";CN="Glacier2"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=CN="Server"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=CN="Node";CN="Master";CN="Slave"
-+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=CN="Glacier2"
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-demo-IceGrid-secure-makecerts.py ./files/patch-cpp-demo-IceGrid-secure-makecerts.py
--- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-makecerts.py	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-demo-IceGrid-secure-makecerts.py	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
---- cpp.orig/demo/IceGrid/secure/makecerts.py	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/demo/IceGrid/secure/makecerts.py	2012-03-04 19:55:44.000000000 +0100
-@@ -44,8 +44,9 @@
- print
- print
- 
--createCertificate("registry", "IceGrid Registry")
--createCertificate("node", "IceGrid Node")
-+createCertificate("master", "Master")
-+createCertificate("slave", "Slave")
-+createCertificate("node", "Node")
- createCertificate("glacier2", "Glacier2")
- createCertificate("server", "Server")
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Freeze-Map.h ./files/patch-cpp-include-Freeze-Map.h
--- ../ice.orig/files/patch-cpp-include-Freeze-Map.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Freeze-Map.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/include/Freeze/Map.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Freeze/Map.h	2012-03-04 20:14:52.000000000 +0100
-@@ -426,7 +426,7 @@
- 
-     ConstIterator(MapHelper& mapHelper, const Ice::CommunicatorPtr& communicator) :
-         _helper(IteratorHelper::create(mapHelper, true)), 
--        _communicator(_communicator),
-+        _communicator(communicator),
-         _refValid(false)
-     {
-     }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-Buffer.h ./files/patch-cpp-include-Ice-Buffer.h
--- ../ice.orig/files/patch-cpp-include-Ice-Buffer.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-Buffer.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
---- cpp.orig/include/Ice/Buffer.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/Buffer.h	2012-03-04 20:14:52.000000000 +0100
-@@ -10,6 +10,7 @@
- #ifndef ICEE_BUFFER_H
- #define ICEE_BUFFER_H
- 
-+#include <cstddef>
- #include <Ice/Config.h>
- 
- namespace IceInternal
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-ConnectionIF.h ./files/patch-cpp-include-Ice-ConnectionIF.h
--- ../ice.orig/files/patch-cpp-include-Ice-ConnectionIF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-ConnectionIF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/include/Ice/ConnectionIF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/ConnectionIF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -17,13 +17,13 @@
- {
- 
- class ConnectionI;
-+ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
- 
- }
- 
- namespace IceInternal
- {
- 
--ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
- 
- enum AsyncStatus
- {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-IconvStringConverter.h ./files/patch-cpp-include-Ice-IconvStringConverter.h
--- ../ice.orig/files/patch-cpp-include-Ice-IconvStringConverter.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-IconvStringConverter.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
---- cpp.orig/include/Ice/IconvStringConverter.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/IconvStringConverter.h	2012-03-04 20:14:52.000000000 +0100
-@@ -225,10 +225,16 @@
- template<typename charT> /*static*/ void
- IconvStringConverter<charT>::close(std::pair<iconv_t, iconv_t> cdp)
- {
--    int rs = iconv_close(cdp.first);
-+#ifndef NDEBUG
-+    int rs = 
-+#endif
-+    iconv_close(cdp.first);
-     assert(rs == 0);
- 
--    rs = iconv_close(cdp.second);
-+#ifndef NDEBUG
-+    rs = 
-+#endif
-+    iconv_close(cdp.second);
-     assert(rs == 0);
- }
-  
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-IncomingAsyncF.h ./files/patch-cpp-include-Ice-IncomingAsyncF.h
--- ../ice.orig/files/patch-cpp-include-Ice-IncomingAsyncF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-IncomingAsyncF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/include/Ice/IncomingAsyncF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/IncomingAsyncF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -28,12 +28,6 @@
- 
- class AMD_Object_ice_invoke;
- class AMD_Array_Object_ice_invoke;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::AMD_Object_ice_invoke*);
- ICE_API IceUtil::Shared* upCast(::Ice::AMD_Array_Object_ice_invoke*);
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-LocalObjectF.h ./files/patch-cpp-include-Ice-LocalObjectF.h
--- ../ice.orig/files/patch-cpp-include-Ice-LocalObjectF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-LocalObjectF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/include/Ice/LocalObjectF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/LocalObjectF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -18,12 +18,6 @@
- {
- 
- class LocalObject;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::LocalObject*);
- 
- }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-ObjectF.h ./files/patch-cpp-include-Ice-ObjectF.h
--- ../ice.orig/files/patch-cpp-include-Ice-ObjectF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-ObjectF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
---- cpp.orig/include/Ice/ObjectF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/ObjectF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -17,19 +17,8 @@
- {
- 
- class Object;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::Object*);
- 
--}
--
--namespace Ice
--{
--
- typedef IceInternal::Handle< Object > ObjectPtr;
- 
- void ICE_API __patch__ObjectPtr(void*, ObjectPtr&);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-OutgoingAsyncF.h ./files/patch-cpp-include-Ice-OutgoingAsyncF.h
--- ../ice.orig/files/patch-cpp-include-Ice-OutgoingAsyncF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-OutgoingAsyncF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/include/Ice/OutgoingAsyncF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/OutgoingAsyncF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -19,13 +19,13 @@
- 
- class AsyncResult;
- typedef IceInternal::Handle<AsyncResult> AsyncResultPtr;
-+ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
- 
- }
- 
- namespace IceInternal
- {
- 
--ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
- 
- class OutgoingAsync;
- ICE_API IceUtil::Shared* upCast(OutgoingAsync*);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-Proxy.h ./files/patch-cpp-include-Ice-Proxy.h
--- ../ice.orig/files/patch-cpp-include-Ice-Proxy.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-Proxy.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
---- cpp.orig/include/Ice/Proxy.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/Proxy.h	2012-03-04 20:14:52.000000000 +0100
-@@ -38,6 +38,8 @@
- 
- class Locator;
- class Router;
-+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
-+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
- 
- }
- 
-@@ -46,8 +48,6 @@
- namespace IceInternal
- {
- 
--ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
--ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
- 
- class LocalExceptionWrapper;
- 
-@@ -1172,7 +1172,7 @@
- 
-     TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : CallbackNC<T>(instance, excb, sentcb)
-     {
--        checkCallback(instance, cb || excb != 0);
-+        this->checkCallback(instance, cb || excb != 0);
-     }
- };
- 
-@@ -1188,7 +1188,7 @@
- 
-     TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent sentcb) : Callback<T, CT>(instance, excb, sentcb)
-     {
--        checkCallback(instance, cb || excb != 0);
-+        this->checkCallback(instance, cb || excb != 0);
-     }
- };
- 
-@@ -1209,7 +1209,7 @@
-     OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : 
-         CallbackNC<T>(instance, excb, sentcb), response(cb)
-     {
--        checkCallback(instance, cb != 0 || excb != 0);
-+        this->checkCallback(instance, cb != 0 || excb != 0);
-     }
- 
-     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
-@@ -1254,7 +1254,7 @@
-     OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sent sentcb) : 
-         Callback<T, CT>(instance, excb, sentcb),  response(cb)
-     {
--        checkCallback(instance, cb != 0 || excb != 0);
-+        this->checkCallback(instance, cb != 0 || excb != 0);
-     }
- 
-     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-ProxyF.h ./files/patch-cpp-include-Ice-ProxyF.h
--- ../ice.orig/files/patch-cpp-include-Ice-ProxyF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-ProxyF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
---- cpp.orig/include/Ice/ProxyF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/ProxyF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -22,6 +22,11 @@
- {
- 
- class Object;
-+inline ::IceProxy::Ice::Object* 
-+upCast(::IceProxy::Ice::Object* o)
-+{
-+    return o;
-+}
- 
- }
- 
-@@ -34,6 +39,11 @@
- {
- 
- class Object;
-+inline ::IceDelegate::Ice::Object*
-+upCast(::IceDelegate::Ice::Object* o)
-+{
-+    return o;
-+}
- 
- }
- 
-@@ -47,6 +57,12 @@
- 
- class Object;
- 
-+inline ::IceDelegateM::Ice::Object*
-+upCast(::IceDelegateM::Ice::Object* o)
-+{
-+    return o;
-+}
-+
- }
- 
- }
-@@ -58,36 +74,12 @@
- {
- 
- class Object;
--
--}
--
--}
--
--namespace IceInternal
--{
--
--inline ::IceProxy::Ice::Object* 
--upCast(::IceProxy::Ice::Object* o)
--{
--    return o;
--}
--
--inline ::IceDelegate::Ice::Object*
--upCast(::IceDelegate::Ice::Object* o)
--{
--    return o;
--}
--
- inline ::IceDelegateD::Ice::Object*
- upCast(::IceDelegateD::Ice::Object* o)
- {
-     return o;
- }
- 
--inline ::IceDelegateM::Ice::Object*
--upCast(::IceDelegateM::Ice::Object* o)
--{
--    return o;
- }
- 
- }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-Stream.h ./files/patch-cpp-include-Ice-Stream.h
--- ../ice.orig/files/patch-cpp-include-Ice-Stream.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-include-Ice-Stream.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,90 +0,0 @@
---- cpp.orig/include/Ice/Stream.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/Stream.h	2012-03-04 20:14:52.000000000 +0100
-@@ -17,6 +17,12 @@
- #include <Ice/Proxy.h>
- #include <IceUtil/Shared.h>
- 
-+namespace IceInternal
-+{
-+    // Forward declaration required for writer specializations.
-+    void delegateThrowMarshalException(const char*, int, const ::std::string&);
-+}
-+
- namespace Ice
- {
-     
-@@ -45,9 +51,6 @@
-     StreamTraitTypeUnknown
- };
- 
--// Forward declaration required for writer specializations.
--class MarshalException;
--
- //
- // Base trait template. This doesn't actually do anything -- we just
- // use it as a template that we can specialize.
-@@ -542,7 +545,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Byte>(v));
-     }
-@@ -558,7 +561,7 @@
-         inS->read(val);
-         if(val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         v = static_cast<T>(val);
-     }
-@@ -573,7 +576,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Short>(v));
-     }
-@@ -589,7 +592,7 @@
-         inS->read(val);
-         if(val < 0 || val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         v = static_cast<T>(val);
-     }
-@@ -603,7 +606,7 @@
-     {
-         if(static_cast<int>(v) < 0 || static_cast<int>(v) >= StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         outS->write(static_cast<Int>(v));
-     }
-@@ -619,7 +622,7 @@
-         inS->read(val);
-         if(val < 0 || val > StreamTrait<T>::enumLimit)
-         {
--            throw MarshalException(__FILE__, __LINE__, "enumerator out of range");
-+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__, "enumerator out of range");
-         }
-         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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-Ice-StreamF.h ./files/patch-cpp-include-Ice-StreamF.h
--- ../ice.orig/files/patch-cpp-include-Ice-StreamF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-Ice-StreamF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/include/Ice/StreamF.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/Ice/StreamF.h	2012-03-04 20:14:52.000000000 +0100
-@@ -19,12 +19,6 @@
- 
- class InputStream;
- class OutputStream;
--
--}
--
--namespace IceInternal
--{
--
- ICE_API IceUtil::Shared* upCast(::Ice::InputStream*);
- ICE_API IceUtil::Shared* upCast(::Ice::OutputStream*);
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h ./files/patch-cpp-include-IceUtil-Cache.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-include-IceUtil-Cache.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Config.h ./files/patch-cpp-include-IceUtil-Config.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Config.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-include-IceUtil-Config.h	2013-05-20 04:19:22.000000000 +0200
@@ -1,19 +1,11 @@
---- 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
- 
+--- cpp.orig/include/IceUtil/Config.h	2013-03-11 15:19:46.000000000 +0000
++++ cpp/include/IceUtil/Config.h	2013-05-20 02:09:58.239194578 +0000
+@@ -51,7 +51,7 @@
+ // Check for C++ 11 support
+ //
+ #if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \
+-    (defined(__clang__) && (__clang_major__ >= 4) && __cplusplus >= 201103) || \
++    (defined(__clang__) && ((defined(__APPLE__) && __clang_major__ >= 4) || (!defined(__APPLE__) && __clang_major__ >= 3)) && __cplusplus >= 201103) || \
+     (defined(_MSC_VER) && (_MSC_VER >= 1600))
+ #   define ICE_CPP11
  #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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Mutex.h ./files/patch-cpp-include-IceUtil-Mutex.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Mutex.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-include-IceUtil-Mutex.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/include/IceUtil/Mutex.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/include/IceUtil/Mutex.h	2012-03-04 20:14:52.000000000 +0100
-@@ -251,8 +251,11 @@
- inline
- Mutex::~Mutex()
- {
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif    
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
- }
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h ./files/patch-cpp-include-IceUtil-Shared.h
--- ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-include-IceUtil-Shared.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,72 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp ./files/patch-cpp-src-Freeze-MapDb.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-MapDb.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
---- cpp.orig/src/Freeze/MapDb.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ 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 = 
- #endif
--                    _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get())).second;
-+                    _indices.insert(IndexMap::value_type(indexBase->name(), indexI.get()))
-+#ifndef NDEBUG                    
-+                    .second
-+#endif
-+                ;
-                 assert(inserted);
-                 
-                 indexBase->_impl = indexI.release();
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-MapI.cpp ./files/patch-cpp-src-Freeze-MapI.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-MapI.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-MapI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
---- cpp.orig/src/Freeze/MapI.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Freeze/MapI.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -749,8 +749,11 @@
- 
-     try
-     {
-+#ifndef NDEBUG
-         int err;
--        err = _dbc->put(&dbKey, &dbValue, DB_CURRENT);
-+        err = 
-+#endif
-+        _dbc->put(&dbKey, &dbValue, DB_CURRENT);
-         assert(err == 0);
-     }
-     catch(const ::DbDeadlockException& dx)
-@@ -1023,7 +1026,11 @@
- #ifndef NDEBUG
-         bool inserted =
- #endif 
--            _indices.insert(IndexMap::value_type(indexBase->name(), indexBase)).second;
-+            _indices.insert(IndexMap::value_type(indexBase->name(), indexBase))
-+#ifndef NDEBUG
-+            .second
-+#endif
-+            ;
-         assert(inserted);
-         indexBase->_map = this;
-     }
-@@ -1360,8 +1367,11 @@
-         try
-         {
-             u_int32_t count;
-+#ifndef NDEBUG
-             int err;
--            err = _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
-+            err = 
-+#endif            
-+            _db->truncate(txn, &count, txn != 0 ? 0 : DB_AUTO_COMMIT);
-             assert(err == 0);
-             break;
-         }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-MapI.h ./files/patch-cpp-src-Freeze-MapI.h
--- ../ice.orig/files/patch-cpp-src-Freeze-MapI.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-MapI.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp ./files/patch-cpp-src-Freeze-ObjectStore.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-ObjectStore.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h ./files/patch-cpp-src-Freeze-ObjectStore.h
--- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-ObjectStore.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-SharedDbEnv.cpp ./files/patch-cpp-src-Freeze-SharedDbEnv.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-SharedDbEnv.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-SharedDbEnv.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/src/Freeze/SharedDbEnv.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Freeze/SharedDbEnv.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -336,8 +336,11 @@
-         // Remove from map
-         //
-      
-+#ifndef NDEBUG
-         size_t one;
--        one = sharedDbEnvMap->erase(key);
-+        one = 
-+#endif
-+        sharedDbEnvMap->erase(key);
-         assert(one == 1);
- 
-         if(sharedDbEnvMap->size() == 0)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
--- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.cpp ./files/patch-cpp-src-Glacier2-Blobject.cpp
--- ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Glacier2-Blobject.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
---- cpp.orig/src/Glacier2/Blobject.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Glacier2/Blobject.cpp	2012-03-04 19:39:27.000000000 +0100
-@@ -171,6 +171,15 @@
- }
- 
- void
-+Glacier2::Blobject::destroy()
-+{
-+    if(_requestQueue)
-+    {
-+        _requestQueue->destroy();
-+    }
-+}
-+
-+void
- Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokePtr& amdCB, 
-                            const std::pair<const Ice::Byte*, const Ice::Byte*>& inParams, const Current& current)
- {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.h ./files/patch-cpp-src-Glacier2-Blobject.h
--- ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Glacier2-Blobject.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Glacier2/Blobject.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Glacier2/Blobject.h	2012-03-04 19:39:27.000000000 +0100
-@@ -24,6 +24,8 @@
-     Blobject(const InstancePtr&, const Ice::ConnectionPtr&, const Ice::Context&);
-     virtual ~Blobject();
- 
-+    void destroy();
-+
- protected:
- 
-     void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&, 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.cpp ./files/patch-cpp-src-Glacier2-RequestQueue.cpp
--- ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Glacier2-RequestQueue.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
---- cpp.orig/src/Glacier2/RequestQueue.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Glacier2/RequestQueue.cpp	2012-03-04 19:39:27.000000000 +0100
-@@ -185,7 +185,8 @@
-     _callback(newCallback_Object_ice_invoke(this, &RequestQueue::response, &RequestQueue::exception,
-                                             &RequestQueue::sent)),
-     _flushCallback(newCallback_Connection_flushBatchRequests(this, &RequestQueue::exception, &RequestQueue::sent)),
--    _pendingSend(false)
-+    _pendingSend(false),
-+    _destroyed(false)
- {
- }
- 
-@@ -241,6 +242,37 @@
- }
- 
- void
-+Glacier2::RequestQueue::destroy()
-+{
-+    IceUtil::Mutex::Lock lock(*this);
-+
-+    _destroyed = true;
-+
-+    //
-+    // Although the session has been destroyed, we cannot destroy this queue
-+    // until all requests have completed.
-+    //
-+    if(_requests.empty())
-+    {
-+        destroyInternal();
-+    }
-+}
-+
-+void
-+Glacier2::RequestQueue::destroyInternal()
-+{
-+    //
-+    // Must be called with the mutex locked.
-+    //
-+
-+    //
-+    // Remove cyclic references.
-+    //
-+    const_cast<Ice::Callback_Object_ice_invokePtr&>(_callback) = 0;
-+    const_cast<Ice::Callback_Connection_flushBatchRequestsPtr&>(_flushCallback) = 0;
-+}
-+
-+void
- Glacier2::RequestQueue::flush()
- {
-     assert(_connection);
-@@ -289,6 +321,11 @@
-             _pendingSendRequest = 0;
-         }
-     }
-+
-+    if(_destroyed && _requests.empty())
-+    {
-+        destroyInternal();
-+    }
- }
- 
- void
-@@ -312,6 +349,11 @@
-         }
-     }
-     _requests.clear();
-+
-+    if(_destroyed)
-+    {
-+        destroyInternal();
-+    }
- }
- 
- void
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.h ./files/patch-cpp-src-Glacier2-RequestQueue.h
--- ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Glacier2-RequestQueue.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
---- cpp.orig/src/Glacier2/RequestQueue.h	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Glacier2/RequestQueue.h	2012-03-04 19:39:27.000000000 +0100
-@@ -65,8 +65,12 @@
-     bool addRequest(const RequestPtr&);
-     void flushRequests(std::set<Ice::ObjectPrx>&);
- 
-+    void destroy();
-+
- private:
- 
-+    void destroyInternal();
-+
-     void flush();
-     void flush(std::set<Ice::ObjectPrx>&);
- 
-@@ -83,6 +87,7 @@
-     std::deque<RequestPtr> _requests;
-     bool _pendingSend;
-     RequestPtr _pendingSendRequest;
-+    bool _destroyed;
- };
- typedef IceUtil::Handle<RequestQueue> RequestQueuePtr;
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Glacier2-RouterI.cpp ./files/patch-cpp-src-Glacier2-RouterI.cpp
--- ../ice.orig/files/patch-cpp-src-Glacier2-RouterI.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Glacier2-RouterI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/src/Glacier2/RouterI.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Glacier2/RouterI.cpp	2012-03-04 19:39:27.000000000 +0100
-@@ -98,6 +98,12 @@
-             _session->destroy_async(amiCB);
-         }
-     }
-+
-+    _clientBlobject->destroy();
-+    if(_serverBlobject)
-+    {
-+        _serverBlobject->destroy();
-+    }
- }
- 
- ObjectPrx
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-.depend ./files/patch-cpp-src-Ice-.depend
--- ../ice.orig/files/patch-cpp-src-Ice-.depend	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-src-Ice-.depend	2013-05-22 04:23:27.000000000 +0200
@@ -0,0 +1,8 @@
+--- cpp.orig/src/Ice/.depend	2013-05-21 00:29:56.146194325 +0000
++++ cpp/src/Ice/.depend	2013-05-21 00:42:56.956197313 +0000
+@@ -1,5 +1,5 @@
+-Acceptor$(OBJEXT): Acceptor.cpp ../Ice/Acceptor.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h ../Ice/AcceptorF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/TransceiverF.h ../Ice/Network.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/Version.h $(includedir)/Ice/EndpointTypes.h
++Acceptor$(OBJEXT): Acceptor.cpp ../Ice/Acceptor.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h ../Ice/AcceptorF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h ../Ice/TransceiverF.h ../Ice/Network.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/Version.h $(includedir)/Ic
 e/EndpointTypes.h
+ Application$(OBJEXT): Application.cpp $(includedir)/Ice/Application.h $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/StringConvert
 er.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/FactoryTable.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Version.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/
 OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(i
 ncludedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/Ice/IconvStringConverter.h ../Ice/LoggerI.h $(includedir)/IceUtil/FileUtil.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/ArgVector.h ../Ice/GC.h
+ Base64$(OBJEXT): Base64.cpp ../Ice/Base64.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h
+ Buffer$(OBJEXT): Buffer.cpp $(includedir)/Ice/Buffer.h $(includedir)/Ice/Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Identity.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Version.h $(includedir)/Ice/BuiltinSequences.h
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-ConnectionI.cpp ./files/patch-cpp-src-Ice-ConnectionI.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-ConnectionI.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-ConnectionI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,27 +0,0 @@
---- cpp.orig/src/Ice/ConnectionI.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/ConnectionI.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -31,7 +31,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--Ice::LocalObject* IceInternal::upCast(ConnectionI* p) { return p; }
-+Ice::LocalObject* Ice::upCast(ConnectionI* p) { return p; }
- 
- namespace
- {
-@@ -600,6 +600,7 @@
-     }
-     catch(const LocalException& ex)
-     {
-+        status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
-         setState(StateClosed, ex);
-         assert(_exception.get());
-         _exception->ice_throw();
-@@ -971,6 +972,7 @@
-     }
-     catch(const Ice::LocalException& ex)
-     {
-+        status = IceInternal::AsyncStatusQueued; // this is only to apeace the compiler
-         setState(StateClosed, ex);
-         assert(_exception.get());
-         _exception->ice_throw();
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-IncomingAsync.cpp ./files/patch-cpp-src-Ice-IncomingAsync.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-IncomingAsync.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-IncomingAsync.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Ice/IncomingAsync.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/IncomingAsync.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -24,7 +24,7 @@
- using namespace IceInternal;
- 
- IceUtil::Shared* IceInternal::upCast(IncomingAsync* p) { return p; }
--IceUtil::Shared* IceInternal::upCast(AMD_Object_ice_invoke* p) { return p; }
-+IceUtil::Shared* Ice::upCast(AMD_Object_ice_invoke* p) { return p; }
- 
- namespace
- {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-LocalObject.cpp ./files/patch-cpp-src-Ice-LocalObject.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-LocalObject.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-LocalObject.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Ice/LocalObject.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/LocalObject.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -13,7 +13,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(LocalObject* obj) { return obj; }
-+IceUtil::Shared* Ice::upCast(LocalObject* obj) { return obj; }
- 
- bool
- Ice::LocalObject::operator==(const LocalObject& r) const
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-Network.cpp ./files/patch-cpp-src-Ice-Network.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-Network.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-Ice-Network.cpp	2013-05-20 00:56:41.000000000 +0200
@@ -1,6 +1,6 @@
---- cpp.orig/src/Ice/Network.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/Network.cpp	2012-09-10 11:43:58.000000000 +0200
-@@ -715,7 +715,11 @@
+--- cpp.orig/src/Ice/Network.cpp	2013-03-11 15:19:46.000000000 +0000
++++ cpp/src/Ice/Network.cpp	2013-05-19 22:55:40.257195813 +0000
+@@ -936,7 +936,11 @@
      WSASetLastError(error);
  #else
      int error = errno;
@@ -13,12 +13,3 @@
      {
          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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-Object.cpp ./files/patch-cpp-src-Ice-Object.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-Object.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-Object.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Ice/Object.cpp	2011-06-15 21:43:58.000000000 +0200
-+++ cpp/src/Ice/Object.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -19,7 +19,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(Object* p) { return p; }
-+IceUtil::Shared* Ice::upCast(Object* p) { return p; }
- 
- bool
- Ice::Object::operator==(const Object& r) const
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-OutgoingAsync.cpp ./files/patch-cpp-src-Ice-OutgoingAsync.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-OutgoingAsync.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-OutgoingAsync.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Ice/OutgoingAsync.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Ice/OutgoingAsync.cpp	2012-03-04 20:14:52.000000000 +0100
-@@ -30,7 +30,7 @@
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(AsyncResult* p) { return p; }
-+IceUtil::Shared* Ice::upCast(AsyncResult* p) { return p; }
- 
- IceUtil::Shared* IceInternal::upCast(OutgoingAsyncMessageCallback* p) { return p; }
- IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.cpp ./files/patch-cpp-src-Ice-PropertyNames.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-PropertyNames.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
---- cpp.orig/src/Ice/PropertyNames.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Ice/PropertyNames.cpp	2012-03-04 19:55:44.000000000 +0100
-@@ -8,7 +8,7 @@
- // **********************************************************************
- 
- //
--// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon May 09 07:39:43 2011
-+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Jul 12 07:22:34 2011
- 
- // IMPORTANT: Do not edit this file -- any edits made here will be lost!
- 
-@@ -335,6 +335,8 @@
-     IceInternal::Property("IceGrid.Registry.PermissionsVerifier", false, 0),
-     IceInternal::Property("IceGrid.Registry.ReplicaName", false, 0),
-     IceInternal::Property("IceGrid.Registry.ReplicaSessionTimeout", false, 0),
-+    IceInternal::Property("IceGrid.Registry.RequireNodeCertCN", false, 0),
-+    IceInternal::Property("IceGrid.Registry.RequireReplicaCertCN", false, 0),
-     IceInternal::Property("IceGrid.Registry.Server.ACM", false, 0),
-     IceInternal::Property("IceGrid.Registry.Server.AdapterId", false, 0),
-     IceInternal::Property("IceGrid.Registry.Server.Endpoints", false, 0),
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.h ./files/patch-cpp-src-Ice-PropertyNames.h
--- ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-PropertyNames.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/Ice/PropertyNames.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Ice/PropertyNames.h	2012-03-04 19:55:44.000000000 +0100
-@@ -8,7 +8,7 @@
- // **********************************************************************
- 
- //
--// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon May 09 07:39:43 2011
-+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Jul 12 07:22:34 2011
- 
- // IMPORTANT: Do not edit this file -- any edits made here will be lost!
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-Service.cpp ./files/patch-cpp-src-Ice-Service.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-Service.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-Service.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
---- cpp.orig/src/Ice/Service.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Ice/Service.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -2136,17 +2136,26 @@
-             //
-             // Associate stdin, stdout and stderr with /dev/null.
-             //
-+#ifndef NDEBUG
-             int fd;
--            fd = open("/dev/null", O_RDWR);
-+            fd = 
-+#endif
-+            open("/dev/null", O_RDWR);
-             assert(fd == 0);
-             if(stdOut.empty())
-             {
--                fd = dup2(0, 1);
-+#ifndef NDEBUG
-+                fd = 
-+#endif
-+                dup2(0, 1);
-                 assert(fd == 1);
-             }
-             if(stdErr.empty())
-             {
--                fd = dup2(1, 2);
-+#ifndef NDEBUG
-+                fd = 
-+#endif
-+                dup2(1, 2);
-                 assert(fd == 2);
-             }
-         }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Ice-Stream.cpp ./files/patch-cpp-src-Ice-Stream.cpp
--- ../ice.orig/files/patch-cpp-src-Ice-Stream.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Ice-Stream.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
---- cpp.orig/src/Ice/Stream.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Ice/Stream.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -8,10 +8,19 @@
- // **********************************************************************
- 
- #include <Ice/Stream.h>
-+#include <Ice/LocalException.h>
- 
- using namespace std;
- using namespace Ice;
- using namespace IceInternal;
- 
--IceUtil::Shared* IceInternal::upCast(InputStream* p) { return p; }
--IceUtil::Shared* IceInternal::upCast(OutputStream* p) { return p; }
-+IceUtil::Shared* Ice::upCast(InputStream* p) { return p; }
-+IceUtil::Shared* Ice::upCast(OutputStream* p) { return p; }
-+
-+namespace IceInternal
-+{
-+  void delegateThrowMarshalException(const char* file, int line , const ::std::string& message)
-+  {
-+    throw Ice::MarshalException(file, line, message);
-+  }
-+}
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp ./files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
---- cpp.orig/src/IceGrid/AdminCallbackRouter.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/AdminCallbackRouter.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -49,7 +49,12 @@
- #ifndef NDEBUG
-     bool inserted =
- #endif
--        _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con)).second;
-+        _categoryToConnection.insert(map<string, ConnectionPtr>::value_type(category, con))
-+#ifndef NDEBUG
-+        .second
-+#endif
-+        ;
-+
-     
-     assert(inserted == true);
- }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp ./files/patch-cpp-src-IceGrid-DescriptorHelper.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-DescriptorHelper.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
---- cpp.orig/src/IceGrid/DescriptorHelper.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/DescriptorHelper.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -198,15 +198,6 @@
-     return result;
- }
- 
--template<typename Dict> Dict
--getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
--{
--#if defined(_MSC_VER) && (_MSC_VER < 1300)
--    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
--#else
--    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
--#endif
--}
- 
- template<typename EqFunc, typename Dict> Dict
- getDictUpdatedEltsWithEq(const Dict& ldict, const Dict& rdict, EqFunc eq)
-@@ -223,6 +214,16 @@
-     return result;
- }
- 
-+template<typename Dict> Dict
-+getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
-+{
-+#if defined(_MSC_VER) && (_MSC_VER < 1300)
-+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_type>());
-+#else
-+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict::mapped_type>());
-+#endif
-+}
-+
- template <typename Dict> Ice::StringSeq
- getDictRemovedElts(const Dict& ldict, const Dict& rdict)
- {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp ./files/patch-cpp-src-IceGrid-FileCache.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-FileCache.cpp	2013-06-01 19:51:46.000000000 +0200
@@ -1,20 +1,16 @@
---- 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)
+--- cpp.orig/src/IceGrid/FileCache.cpp	2013-03-11 15:19:12.271195149 +0000
++++ cpp/src/IceGrid/FileCache.cpp	2013-06-01 17:47:48.636196265 +0000
+@@ -195,11 +195,11 @@
+         // Some eofbit cases will also set failbit. So first
+         // check eof.
+         //
 -        if(is.eof())
-+        
 +        if(is.eof() || is.fail())
          {
              newOffset += line.size();
          }
-         else
--#else
--        if(!is.fail())
--#endif
+-        else if(!is.fail())
++        else
          {
              newOffset = is.tellg();
          }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-Internal.ice ./files/patch-cpp-src-IceGrid-Internal.ice
--- ../ice.orig/files/patch-cpp-src-IceGrid-Internal.ice	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-Internal.ice	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
---- cpp.orig/src/IceGrid/Internal.ice	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/Internal.ice	2012-03-04 19:55:44.000000000 +0100
-@@ -702,7 +702,7 @@
-      *
-      **/
-     NodeSession* registerNode(InternalNodeInfo info, Node* prx, LoadInfo loadInf)
--        throws NodeActiveException;
-+        throws NodeActiveException, PermissionDeniedException;
- 
-     /**
-      *
-@@ -721,7 +721,7 @@
-      *
-      **/
-     ReplicaSession* registerReplica(InternalReplicaInfo info, InternalRegistry* prx)
--        throws ReplicaActiveException;
-+        throws ReplicaActiveException, PermissionDeniedException;
- 
-     /**
-      *
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp ./files/patch-cpp-src-IceGrid-InternalRegistryI.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-InternalRegistryI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,136 +0,0 @@
---- cpp.orig/src/IceGrid/InternalRegistryI.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/InternalRegistryI.cpp	2012-03-04 19:55:44.000000000 +0100
-@@ -19,6 +19,8 @@
- #include <IceGrid/ReplicaSessionI.h>
- #include <IceGrid/ReplicaSessionManager.h>
- #include <IceGrid/FileCache.h>
-+#include <IceSSL/IceSSL.h>
-+#include <IceSSL/RFC2253.h>
- 
- using namespace std;
- using namespace IceGrid;
-@@ -38,6 +40,8 @@
-     Ice::PropertiesPtr properties = database->getCommunicator()->getProperties();
-     _nodeSessionTimeout = properties->getPropertyAsIntWithDefault("IceGrid.Registry.NodeSessionTimeout", 30);
-     _replicaSessionTimeout = properties->getPropertyAsIntWithDefault("IceGrid.Registry.ReplicaSessionTimeout", 30);
-+    _requireNodeCertCN = properties->getPropertyAsIntWithDefault("IceGrid.Registry.RequireNodeCertCN", 0);
-+    _requireReplicaCertCN = properties->getPropertyAsIntWithDefault("IceGrid.Registry.RequireReplicaCertCN", 0);
- }
- 
- InternalRegistryI::~InternalRegistryI()
-@@ -50,7 +54,56 @@
-                                 const LoadInfo& load, 
-                                 const Ice::Current& current)
- {
--    const Ice::LoggerPtr logger = _database->getTraceLevels()->logger;
-+    const TraceLevelsPtr traceLevels = _database->getTraceLevels();
-+    const Ice::LoggerPtr logger = traceLevels->logger;
-+    if(!info || !node)
-+    {
-+        return 0;
-+    }
-+
-+    if(_requireNodeCertCN)
-+    {
-+        try
-+        {
-+            IceSSL::ConnectionInfoPtr sslConnInfo = IceSSL::ConnectionInfoPtr::dynamicCast(current.con->getInfo());
-+            if(sslConnInfo)
-+            {
-+                if (sslConnInfo->certs.empty() ||
-+                    !IceSSL::Certificate::decode(sslConnInfo->certs[0])->getSubjectDN().match("CN=" + info->name))
-+                {
-+                    if(traceLevels->node > 0)
-+                    {
-+                        Ice::Trace out(logger, traceLevels->nodeCat);
-+                        out << "certificate CN doesn't match node name `" << info->name << "'";
-+                    }
-+                    throw PermissionDeniedException("certificate CN doesn't match node name `" + info->name + "'");
-+                }
-+            }
-+            else
-+            {
-+                if(traceLevels->node > 0)
-+                {
-+                    Ice::Trace out(logger, traceLevels->nodeCat);
-+                    out << "node certificate for `" << info->name << "' is required to connect to this registry";
-+                }
-+                throw PermissionDeniedException("node certificate is required to connect to this registry");
-+            }
-+        }
-+        catch(const PermissionDeniedException& ex)
-+        {
-+            throw ex;
-+        }
-+        catch(const IceUtil::Exception&)
-+        {
-+            if(traceLevels->node > 0)
-+            {
-+                Ice::Trace out(logger, traceLevels->nodeCat);
-+                out << "unexpected exception while verifying certificate for node `" << info->name << "'";
-+            }
-+            throw PermissionDeniedException("unable to verify certificate for node `" + info->name + "'");
-+        }
-+    }
-+ 
-     try
-     {
-         NodeSessionIPtr session = new NodeSessionI(_database, node, info, _nodeSessionTimeout, load);
-@@ -68,7 +121,56 @@
-                                    const InternalRegistryPrx& prx,
-                                    const Ice::Current& current)
- {
--    const Ice::LoggerPtr logger = _database->getTraceLevels()->logger;
-+    const TraceLevelsPtr traceLevels = _database->getTraceLevels();
-+    const Ice::LoggerPtr logger = traceLevels->logger;
-+    if(!info || !prx)
-+    {
-+        return 0;
-+    }
-+
-+    if(_requireReplicaCertCN)
-+    {
-+        try
-+        {
-+            IceSSL::ConnectionInfoPtr sslConnInfo = IceSSL::ConnectionInfoPtr::dynamicCast(current.con->getInfo());
-+            if(sslConnInfo)
-+            {
-+                if (sslConnInfo->certs.empty() ||
-+                    !IceSSL::Certificate::decode(sslConnInfo->certs[0])->getSubjectDN().match("CN=" + info->name))
-+                {
-+                    if(traceLevels->replica > 0)
-+                    {
-+                        Ice::Trace out(logger, traceLevels->replicaCat);
-+                        out << "certificate CN doesn't match replica name `" << info->name << "'";
-+                    }
-+                    throw PermissionDeniedException("certificate CN doesn't match replica name `" + info->name + "'");
-+                }
-+            }
-+            else
-+            {
-+                if(traceLevels->replica > 0)
-+                {
-+                    Ice::Trace out(logger, traceLevels->replicaCat);
-+                    out << "replica certificate for `" << info->name << "' is required to connect to this registry";
-+                }
-+                throw PermissionDeniedException("replica certificate is required to connect to this registry");
-+            }
-+        }
-+        catch(const PermissionDeniedException& ex)
-+        {
-+            throw ex;
-+        }
-+        catch(const IceUtil::Exception&)
-+        {
-+            if(traceLevels->replica > 0)
-+            {
-+                Ice::Trace out(logger, traceLevels->replicaCat);
-+                out << "unexpected exception while verifying certificate for replica `" << info->name << "'";
-+            }
-+            throw PermissionDeniedException("unable to verify certificate for replica `" + info->name + "'");
-+        }
-+    }
-+    
-     try
-     {
-         ReplicaSessionIPtr s = new ReplicaSessionI(_database, _wellKnownObjects, info, prx, _replicaSessionTimeout);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.h ./files/patch-cpp-src-IceGrid-InternalRegistryI.h
--- ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-InternalRegistryI.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceGrid/InternalRegistryI.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/InternalRegistryI.h	2012-03-04 19:55:44.000000000 +0100
-@@ -68,6 +68,8 @@
-     ReplicaSessionManager& _session;
-     int _nodeSessionTimeout;
-     int _replicaSessionTimeout;
-+    bool _requireNodeCertCN;
-+    bool _requireReplicaCertCN;
- };
-     
- };
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp ./files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-NodeSessionManager.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/src/IceGrid/NodeSessionManager.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/NodeSessionManager.cpp	2012-03-04 19:55:44.000000000 +0100
-@@ -110,6 +110,14 @@
-         }
-         exception.reset(ex.ice_clone());
-     }
-+    catch(const PermissionDeniedException& ex)
-+    {
-+        if(traceLevels)
-+        { 
-+            traceLevels->logger->error("connection to the the registry `" + _name + "' was denied:\n" + ex.reason);
-+        }
-+        exception.reset(ex.ice_clone());
-+    }
-     catch(const Ice::Exception& ex)
-     {
-         exception.reset(ex.ice_clone());
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaCache.cpp ./files/patch-cpp-src-IceGrid-ReplicaCache.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaCache.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-ReplicaCache.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceGrid/ReplicaCache.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/ReplicaCache.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -40,7 +40,7 @@
-     Lock sync(*this);
-     
-     ReplicaEntryPtr entry;
--    while(entry = getImpl(name))
-+    while((entry = getImpl(name)))
-     {
-         ReplicaSessionIPtr session = entry->getSession();
-         if(session->isDestroyed())
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp ./files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp
--- ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/src/IceGrid/ReplicaSessionManager.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/ReplicaSessionManager.cpp	2012-03-04 19:55:44.000000000 +0100
-@@ -500,6 +500,14 @@
-         }
-         exception.reset(ex.ice_clone());
-     }
-+    catch(const PermissionDeniedException& ex)
-+    {
-+        if(_traceLevels)
-+        {
-+            _traceLevels->logger->error("connection to the the registry `" + _name + "' was denied:\n" + ex.reason);
-+        }
-+        exception.reset(ex.ice_clone());
-+    }
-     catch(const Ice::Exception& ex)
-     {
-         exception.reset(ex.ice_clone());
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceGrid-SessionI.h ./files/patch-cpp-src-IceGrid-SessionI.h
--- ../ice.orig/files/patch-cpp-src-IceGrid-SessionI.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceGrid-SessionI.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceGrid/SessionI.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceGrid/SessionI.h	2012-03-04 20:14:53.000000000 +0100
-@@ -35,7 +35,7 @@
- class SessionI;
- typedef IceUtil::Handle<SessionI> SessionIPtr;
- 
--class BaseSessionI : virtual Ice::Object, public IceUtil::Mutex
-+class BaseSessionI : virtual public Ice::Object, public IceUtil::Mutex
- {
- public:
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-Instance.cpp ./files/patch-cpp-src-IceSSL-Instance.cpp
--- ../ice.orig/files/patch-cpp-src-IceSSL-Instance.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-Instance.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceSSL/Instance.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/Instance.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -38,7 +38,7 @@
- using namespace Ice;
- using namespace IceSSL;
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::Instance* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::Instance* p) { return p; }
- 
- namespace
- {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-InstanceF.h ./files/patch-cpp-src-IceSSL-InstanceF.h
--- ../ice.orig/files/patch-cpp-src-IceSSL-InstanceF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-InstanceF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/src/IceSSL/InstanceF.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/InstanceF.h	2012-03-04 20:14:53.000000000 +0100
-@@ -18,13 +18,13 @@
- {
- 
- class Instance;
-+IceUtil::Shared* upCast(IceSSL::Instance*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::Instance*);
- 
- }
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-TrustManager.cpp ./files/patch-cpp-src-IceSSL-TrustManager.cpp
--- ../ice.orig/files/patch-cpp-src-IceSSL-TrustManager.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-TrustManager.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceSSL/TrustManager.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/TrustManager.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -20,7 +20,7 @@
- using namespace std;
- using namespace IceSSL;
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::TrustManager* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::TrustManager* p) { return p; }
- 
- TrustManager::TrustManager(const Ice::CommunicatorPtr& communicator) :
-     _communicator(communicator)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-TrustManagerF.h ./files/patch-cpp-src-IceSSL-TrustManagerF.h
--- ../ice.orig/files/patch-cpp-src-IceSSL-TrustManagerF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-TrustManagerF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/src/IceSSL/TrustManagerF.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/TrustManagerF.h	2012-03-04 20:14:53.000000000 +0100
-@@ -18,13 +18,13 @@
- {
- 
- class TrustManager;
-+IceUtil::Shared* upCast(IceSSL::TrustManager*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::TrustManager*);
- 
- }
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-Util.cpp ./files/patch-cpp-src-IceSSL-Util.cpp
--- ../ice.orig/files/patch-cpp-src-IceSSL-Util.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-Util.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/src/IceSSL/Util.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/Util.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -175,7 +175,7 @@
-     return dh;
- }
- 
--IceUtil::Shared* IceInternal::upCast(IceSSL::DHParams* p) { return p; }
-+IceUtil::Shared* IceSSL::upCast(IceSSL::DHParams* p) { return p; }
- 
- IceSSL::DHParams::DHParams() :
-     _dh512(0), _dh1024(0), _dh2048(0), _dh4096(0)
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceSSL-UtilF.h ./files/patch-cpp-src-IceSSL-UtilF.h
--- ../ice.orig/files/patch-cpp-src-IceSSL-UtilF.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceSSL-UtilF.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,17 +0,0 @@
---- cpp.orig/src/IceSSL/UtilF.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceSSL/UtilF.h	2012-03-04 20:14:53.000000000 +0100
-@@ -21,13 +21,13 @@
- {
- 
- class DHParams;
-+IceUtil::Shared* upCast(IceSSL::DHParams*);
- 
- }
- 
- namespace IceInternal
- {
- 
--IceUtil::Shared* upCast(IceSSL::DHParams*);
- 
- }
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-NodeI.cpp ./files/patch-cpp-src-IceStorm-NodeI.cpp
--- ../ice.orig/files/patch-cpp-src-IceStorm-NodeI.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceStorm-NodeI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
---- cpp.orig/src/IceStorm/NodeI.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceStorm/NodeI.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -18,11 +18,6 @@
- namespace
- {
- 
--bool operator==(const GroupNodeInfo& info, int id)
--{
--    return info.id == id;
--}
--
- class CheckTask : public IceUtil::TimerTask
- {
-     const NodeIPtr _node;
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h ./files/patch-cpp-src-IceStorm-Replica.h
--- ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-IceStorm-Replica.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp ./files/patch-cpp-src-IceStorm-TopicI.cpp
--- ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-IceStorm-TopicI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp ./files/patch-cpp-src-IceStorm-TopicManagerI.cpp
--- ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-IceStorm-TopicManagerI.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-Cond.cpp ./files/patch-cpp-src-IceUtil-Cond.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-Cond.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-Cond.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
---- cpp.orig/src/IceUtil/Cond.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceUtil/Cond.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -330,8 +330,11 @@
- 
- IceUtil::Cond::~Cond()
- {
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_cond_destroy(&_cond);
-+    rc = 
-+#endif
-+    pthread_cond_destroy(&_cond);
-     assert(rc == 0);
- }
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-CountDownLatch.cpp ./files/patch-cpp-src-IceUtil-CountDownLatch.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-CountDownLatch.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-CountDownLatch.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
---- cpp.orig/src/IceUtil/CountDownLatch.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceUtil/CountDownLatch.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -44,10 +44,16 @@
- #ifdef _WIN32
-     CloseHandle(_event);
- #else
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
--    rc = pthread_cond_destroy(&_cond);
-+#ifndef NDEBUG
-+    rc = 
-+#endif
-+    pthread_cond_destroy(&_cond);
-     assert(rc == 0);
- #endif
- }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp ./files/patch-cpp-src-IceUtil-CtrlCHandler.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-CtrlCHandler.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
---- cpp.orig/src/IceUtil/CtrlCHandler.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceUtil/CtrlCHandler.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -219,29 +219,41 @@
-         sigaddset(&ctrlCLikeSignals, SIGHUP);
-         sigaddset(&ctrlCLikeSignals, SIGINT);
-         sigaddset(&ctrlCLikeSignals, SIGTERM);
--        int rc = pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
-+#ifndef NDEBUG
-+        int rc = 
-+#endif        
-+        pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
-         assert(rc == 0);
- 
-         // Joinable thread
--        rc = pthread_create(&_tid, 0, sigwaitThread, 0);
-+#ifndef NDEBUG
-+        rc = 
-+#endif
-+        pthread_create(&_tid, 0, sigwaitThread, 0);
-         assert(rc == 0);
-     }
- }
- 
- CtrlCHandler::~CtrlCHandler()
- {
--    int rc = pthread_cancel(_tid);
-+#ifndef NDEBUG
-+    int rc = 
-+#endif
-+    pthread_cancel(_tid);
-     assert(rc == 0);
- #if defined(__APPLE__)
-     //
-     // WORKAROUND: sigwait isn't a cancellation point on MacOS X, see
-     // comment in sigwaitThread
-     //
--    rc = pthread_kill(_tid, SIGTERM);
-+    pthread_kill(_tid, SIGTERM);
-     //assert(rc == 0); For some reaosns, this assert is sometime triggered
- #endif
-     void* status = 0;
--    rc = pthread_join(_tid, &status);
-+#ifndef NDEBUG
-+    rc = 
-+#endif
-+    pthread_join(_tid, &status);
-     assert(rc == 0);
- #if !defined(__APPLE__)
-     assert(status == PTHREAD_CANCELED);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-FileUtil.cpp ./files/patch-cpp-src-IceUtil-FileUtil.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-FileUtil.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-FileUtil.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
---- cpp.orig/src/IceUtil/FileUtil.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceUtil/FileUtil.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -26,6 +26,10 @@
- #  include <dir.h>
- #endif
- 
-+#ifdef __FreeBSD__
-+#  include <unistd.h>
-+#endif
-+
- using namespace std;
- 
- //
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-RecMutex.cpp ./files/patch-cpp-src-IceUtil-RecMutex.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-RecMutex.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-RecMutex.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
---- cpp.orig/src/IceUtil/RecMutex.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/IceUtil/RecMutex.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -148,8 +148,11 @@
- IceUtil::RecMutex::~RecMutex()
- {
-     assert(_count == 0);
-+#ifndef NDEBUG
-     int rc = 0;
--    rc = pthread_mutex_destroy(&_mutex);
-+    rc = 
-+#endif
-+    pthread_mutex_destroy(&_mutex);
-     assert(rc == 0);
- }
- 
-@@ -196,8 +199,11 @@
- {
-     if(--_count == 0)
-     {
-+#ifndef NDEBUG
-         int rc = 0; // Prevent warnings when NDEBUG is defined.
--        rc = pthread_mutex_unlock(&_mutex);
-+        rc = 
-+#endif
-+        pthread_mutex_unlock(&_mutex);
-         assert(rc == 0);
-     }
- }
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp ./files/patch-cpp-src-IceUtil-Shared.cpp
--- ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-IceUtil-Shared.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp ./files/patch-cpp-src-Slice-CPlusPlusUtil.cpp
--- ../ice.orig/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Slice-CPlusPlusUtil.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
---- cpp.orig/src/Slice/CPlusPlusUtil.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Slice/CPlusPlusUtil.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -631,7 +631,7 @@
-         string scope = fixKwd(cl->scope());
-         if(marshal)
-         {
--            out << nl << stream << deref << "write(::Ice::ObjectPtr(::IceInternal::upCast(" << fixedParam 
-+            out << nl << stream << deref << "write(::Ice::ObjectPtr(" << scope << "upCast(" << fixedParam 
-                 << ".get())));";
-         }
-         else
-@@ -649,7 +649,7 @@
-         string scope = fixKwd(px->_class()->scope());
-         if(marshal)
-         {
--            out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceInternal::upCast(" << fixedParam 
-+            out << nl << stream << deref << "write(::Ice::ObjectPrx(::IceProxy" << scope << "upCast(" << fixedParam 
-                 << ".get())));";
-         }
-         else
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-Slice-FileTracker.cpp ./files/patch-cpp-src-Slice-FileTracker.cpp
--- ../ice.orig/files/patch-cpp-src-Slice-FileTracker.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-Slice-FileTracker.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
---- cpp.orig/src/Slice/FileTracker.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/Slice/FileTracker.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -17,6 +17,10 @@
- #   include <direct.h>
- #endif
- 
-+#ifdef __FreeBSD__
-+#   include <unistd.h>
-+#endif
-+
- using namespace std;
- 
- Slice::FileException::FileException(const char* file, int line, const string& r) :
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cpp-Gen.cpp ./files/patch-cpp-src-slice2cpp-Gen.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cpp-Gen.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-slice2cpp-Gen.cpp	2013-05-21 02:46:05.000000000 +0200
@@ -1,111 +1,13 @@
---- cpp.orig/src/slice2cpp/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/slice2cpp/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -1944,8 +1944,10 @@
+--- cpp.orig/src/slice2cpp/Gen.cpp	2013-03-11 15:19:46.000000000 +0000
++++ cpp/src/slice2cpp/Gen.cpp	2013-05-20 19:51:48.109197053 +0000
+@@ -385,6 +385,10 @@
+         H << "\n#include <Ice/Proxy.h>";
+         H << "\n#include <Ice/OutgoingAsync.h>";
      }
- 
-     string name = fixKwd(p->name());
-+    string scoped = fixKwd(p->scoped());
- 
-     H << sp << nl << "class " << name << ';';
-+    H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
- }
- 
- Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string& dllExport) :
-@@ -3691,10 +3693,22 @@
- Slice::Gen::ObjectDeclVisitor::visitClassDecl(const ClassDeclPtr& p)
- {
-     string name = fixKwd(p->name());
-+    string scoped = fixKwd(p->scoped());
- 
-     H << sp << nl << "class " << name << ';';
-     H << nl << "bool operator==(const " << name << "&, const " << name << "&);";
-     H << nl << "bool operator<(const " << name << "&, const " << name << "&);";
-+
-+    H << sp;
-+
-+    if(!p->isLocal())
++    else if(p->hasNonLocalClassDecls())
 +    {
-+        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
++        H << "\n#include <Ice/Proxy.h>";
 +    }
-+    else
-+    {
-+        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
-+    }
- }
- 
- void
-@@ -4922,13 +4936,13 @@
- {
-     if((BuiltinPtr::dynamicCast(p) && BuiltinPtr::dynamicCast(p)->kind() == Builtin::KindObject)
-        || ClassDeclPtr::dynamicCast(p))
--    {
--        C << nl << "if(" << prefix << name << ')';
-+    {        C << nl << "if(" << prefix << name << ')';
-         C << sb;
-         ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
-         if(decl)
-         {
--            C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__addObject(_c);";
-+            string scope = fixKwd(decl->scope());
-+            C << nl << scope << "upCast(" << prefix << name << ".get())->__addObject(_c);";
-         }
-         else
-         {
-@@ -4991,9 +5005,10 @@
-         ClassDeclPtr decl = ClassDeclPtr::dynamicCast(p);
-         if(decl)
-         {
--            C << nl << "if(" << "::IceInternal::upCast(" << prefix << name << ".get())->__usesClasses())";
-+            string scope = fixKwd(decl->scope());
-+            C << nl << "if(" << scope << "upCast(" << prefix << name << ".get())->__usesClasses())";
-             C << sb;
--            C << nl << "::IceInternal::upCast(" << prefix << name << ".get())->__decRefUnsafe();";
-+            C << nl << scope << "upCast(" << prefix << name << ".get())->__decRefUnsafe();";
-             C << nl << prefix << name << ".__clearHandleUnsafe();";
  
-         }
-@@ -5629,40 +5644,30 @@
- {
-     string scoped = fixKwd(p->scoped());
- 
--    H << sp;
--
--    if(!p->isLocal())
--    {
--        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*);";
--        H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy" << scoped << "*);";
--    }
--    else
--    {
--        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped << "*);";
--    }
- }
- 
- bool
- Slice::Gen::IceInternalVisitor::visitClassDefStart(const ClassDefPtr& p)
- {
-     string scoped = fixKwd(p->scoped());
-+    string scope = fixKwd(p->scope());
- 
-     C << sp;
-     if(!p->isLocal())
+     if(p->hasNonLocalDataOnlyClasses() || p->hasNonLocalExceptions())
      {
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::Ice::Object* IceInternal::upCast(" << scoped << "* p) { return p; }";
-+	  << "::Ice::Object* " << scope << "upCast(" << scoped << "* p) { return p; }";
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::IceProxy::Ice::Object* IceInternal::upCast(::IceProxy" << scoped
-+	  << "::IceProxy::Ice::Object* IceProxy" << scope << "upCast(::IceProxy" << scoped
-           << "* p) { return p; }";
-     }
-     else
-     {
-         C << nl
- 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
--	  << "::Ice::LocalObject* IceInternal::upCast(" << scoped << "* p) { return p; }";
-+	  << "::Ice::LocalObject* " << scope << "upCast(" << scoped << "* p) { return p; }";
-     }
- 
-     return true;
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp ./files/patch-cpp-src-slice2cpp-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2cpp-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cs-Gen.cpp ./files/patch-cpp-src-slice2cs-Gen.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cs-Gen.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-slice2cs-Gen.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
---- cpp.orig/src/slice2cs/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/slice2cs/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -1281,7 +1281,7 @@
-         {
-             _out << value << "F";
-         }
--        else if(ep = EnumPtr::dynamicCast(type))
-+        else if((ep = EnumPtr::dynamicCast(type)))
-         {
-             string enumName = fixId(ep->scoped());
-             string::size_type colon = value.rfind(':');
-@@ -3914,16 +3914,6 @@
-     ClassDefPtr cl = ClassDefPtr::dynamicCast(p->container());
-     string name = fixId(p->name(), DotNet::ICloneable, true);
-     vector<string> params = getParams(p);
--    bool hasOutParams = false;
--    ParamDeclList paramList = p->parameters();
--    for(ParamDeclList::const_iterator pli = paramList.begin(); pli != paramList.end(); ++pli)
--    {
--        if((*pli)->isOutParam())
--        {
--            hasOutParams = true;
--            break;
--        }
--    }
- 
-     _out << sp;
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp ./files/patch-cpp-src-slice2cs-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2cs-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp ./files/patch-cpp-src-slice2freeze-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2freeze-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp ./files/patch-cpp-src-slice2freezej-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2freezej-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp ./files/patch-cpp-src-slice2html-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2html-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2java-Gen.cpp ./files/patch-cpp-src-slice2java-Gen.cpp
--- ../ice.orig/files/patch-cpp-src-slice2java-Gen.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-src-slice2java-Gen.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
---- cpp.orig/src/slice2java/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/src/slice2java/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -1246,7 +1246,7 @@
-     {
-         BuiltinPtr bp;
-         EnumPtr ep;
--        if(bp = BuiltinPtr::dynamicCast(type))
-+        if((bp = BuiltinPtr::dynamicCast(type)))
-         {
-             switch(bp->kind())
-             {
-@@ -1349,7 +1349,7 @@
-             }
- 
-         }
--        else if(ep = EnumPtr::dynamicCast(type))
-+        else if((ep = EnumPtr::dynamicCast(type)))
-         {
-             string val = value;
-             string::size_type pos = val.rfind(':');
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp ./files/patch-cpp-src-slice2java-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2java-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp ./files/patch-cpp-src-slice2php-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2php-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp ./files/patch-cpp-src-slice2py-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2py-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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 -ruN --exclude=CVS ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp ./files/patch-cpp-src-slice2rb-Main.cpp
--- ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp	2012-09-23 16:45:33.000000000 +0200
+++ ./files/patch-cpp-src-slice2rb-Main.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
---- 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)
-             {
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Glacier2-ssl-Server.cpp ./files/patch-cpp-test-Glacier2-ssl-Server.cpp
--- ../ice.orig/files/patch-cpp-test-Glacier2-ssl-Server.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-Glacier2-ssl-Server.cpp	2013-05-20 01:06:16.000000000 +0200
@@ -18,15 +18,6 @@
  }
  
  }
-@@ -99,7 +105,7 @@
-     }
- 
-     virtual void
--    ice_ping(const Ice::Current& current)
-+    ice_ping(const Ice::Current& current) const
-     {
-         testContext(_ssl, current.ctx);
-     }
 @@ -133,8 +139,11 @@
      {
          testContext(true, current.ctx);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Ice-background-EndpointI.h ./files/patch-cpp-test-Ice-background-EndpointI.h
--- ../ice.orig/files/patch-cpp-test-Ice-background-EndpointI.h	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-Ice-background-EndpointI.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- cpp.orig/test/Ice/background/EndpointI.h	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/test/Ice/background/EndpointI.h	2012-03-04 20:14:53.000000000 +0100
-@@ -48,7 +48,7 @@
- 
-     virtual Ice::Int hashInit() const;
- #if !defined(_MSC_VER) || _MSC_VER > 1300
--    using IceInternal::EndpointI::connectors;
-+    using ::IceInternal::EndpointI::connectors;
- #endif
-     
- private:
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Ice-custom-AllTests.cpp ./files/patch-cpp-test-Ice-custom-AllTests.cpp
--- ../ice.orig/files/patch-cpp-test-Ice-custom-AllTests.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-Ice-custom-AllTests.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
---- cpp.orig/test/Ice/custom/AllTests.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/test/Ice/custom/AllTests.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -1384,7 +1384,8 @@
-                        const ::Test::ClassStructSeq& seq,
-                        const InParamPtr& cookie)
-     {
--        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in = getIn(in, cookie);
-+        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in;
-+        in = getIn(in, cookie);
-         test(ret == in.first);
-         test(cs1 == in.first);
-         test(seq == in.second);
-@@ -1432,7 +1433,8 @@
- 
-     void throwExcept1(const Ice::AsyncResultPtr& result)
-     {
--        wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-+        wstring in;
-+        in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-         try
-         {
-             Test1::WstringClassPrx t = Test1::WstringClassPrx::uncheckedCast(result->getProxy());
-@@ -1451,7 +1453,8 @@
- 
-     void throwExcept2(const Ice::AsyncResultPtr& result)
-     {
--        wstring in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-+        wstring in;
-+        in = getIn(in, InParamPtr::dynamicCast(result->getCookie()));
-         try
-         {
-             Test2::WstringClassPrx t = Test2::WstringClassPrx::uncheckedCast(result->getProxy());
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Ice-metrics-AllTests.cpp ./files/patch-cpp-test-Ice-metrics-AllTests.cpp
--- ../ice.orig/files/patch-cpp-test-Ice-metrics-AllTests.cpp	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-cpp-test-Ice-metrics-AllTests.cpp	2013-05-20 04:20:07.000000000 +0200
@@ -0,0 +1,32 @@
+--- cpp.orig/test/Ice/metrics/AllTests.cpp	2013-03-11 15:19:47.000000000 +0000
++++ cpp/test/Ice/metrics/AllTests.cpp	2013-05-20 02:11:00.939194168 +0000
+@@ -597,9 +597,12 @@
+     testAttribute(clientMetrics, clientProps, update, "Connection", "incoming", "false");
+     testAttribute(clientMetrics, clientProps, update, "Connection", "adapterName", "");
+     testAttribute(clientMetrics, clientProps, update, "Connection", "connectionId", "Con1");
+-    testAttribute(clientMetrics, clientProps, update, "Connection", "localHost", "127.0.0.1");
++    if (!inFreeBSDJail())
++    {
++      testAttribute(clientMetrics, clientProps, update, "Connection", "localHost", "127.0.0.1");
++      testAttribute(clientMetrics, clientProps, update, "Connection", "remoteHost", "127.0.0.1");
++    }
+     //testAttribute(clientMetrics, clientProps, update, "Connection", "localPort", "");
+-    testAttribute(clientMetrics, clientProps, update, "Connection", "remoteHost", "127.0.0.1");
+     testAttribute(clientMetrics, clientProps, update, "Connection", "remotePort", "12010");
+     testAttribute(clientMetrics, clientProps, update, "Connection", "mcastHost", "");
+     testAttribute(clientMetrics, clientProps, update, "Connection", "mcastPort", "");
+@@ -814,9 +817,12 @@
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "incoming", "true", op);
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "adapterName", "TestAdapter", op);
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "connectionId", "", op);
+-    testAttribute(serverMetrics, serverProps, update, "Dispatch", "localHost", "127.0.0.1", op);
++    if (!inFreeBSDJail())
++    {
++      testAttribute(serverMetrics, serverProps, update, "Dispatch", "localHost", "127.0.0.1", op);
++      testAttribute(serverMetrics, serverProps, update, "Dispatch", "remoteHost", "127.0.0.1", op);
++    }
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "localPort", "12010", op);
+-    testAttribute(serverMetrics, serverProps, update, "Dispatch", "remoteHost", "127.0.0.1", op);
+     //testAttribute(serverMetrics, serverProps, update, "Dispatch", "remotePort", "12010", op);
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "mcastHost", "", op);
+     testAttribute(serverMetrics, serverProps, update, "Dispatch", "mcastPort", "", op);
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Ice-properties-run.py ./files/patch-cpp-test-Ice-properties-run.py
--- ../ice.orig/files/patch-cpp-test-Ice-properties-run.py	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-Ice-properties-run.py	2013-06-01 19:52:55.000000000 +0200
@@ -1,18 +1,29 @@
---- cpp.orig/test/Ice/properties/run.py	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/test/Ice/properties/run.py	2012-03-04 20:14:53.000000000 +0100
-@@ -26,7 +26,7 @@
+--- cpp.orig/test/Ice/properties/run.py	2013-03-11 15:19:47.000000000 +0000
++++ cpp/test/Ice/properties/run.py	2013-05-21 03:48:13.020195761 +0000
+@@ -28,15 +28,15 @@
  #
- # Write config
- #
--configPath = u"./config/中国_client.config"
-+configPath = u"./config/中国_client.config".encode("utf-8")
+ if sys.version_info[0] == 2:
+     configPath = "./config/\xe4\xb8\xad\xe5\x9b\xbd_client.config".decode("utf-8")
+-    TestUtil.createConfig(configPath, 
++    TestUtil.createConfig(configPath.encode("utf-8"), 
+                           ["# Automatically generated by Ice test driver.", 
+                            "Ice.Trace.Protocol=1",
+                            "Ice.Trace.Network=1", 
+                            "Ice.ProgramName=PropertiesClient", 
+-                           "Config.Path=./config/中国_client.config"])
++                           "Config.Path=" + configPath.encode("utf-8")])
+ else:
+     configPath = "./config/\u4e2d\u56fd_client.config"
+-    TestUtil.createConfig(configPath, 
++    TestUtil.createConfig(configPath.encode("utf-8"), 
+                           ["# Automatically generated by Ice test driver.", 
+                            "Ice.Trace.Protocol=1",
+                            "Ice.Trace.Network=1", 
+@@ -46,5 +46,5 @@
  
- TestUtil.createConfig(configPath, 
-                       ["# Automatically generated by Ice test driver.", 
-@@ -38,4 +38,4 @@
  TestUtil.simpleTest(client)
  
- if os.path.exists(configPath):
+-if os.path.exists(configPath):
 -    os.remove(configPath)
-\ No newline at end of file
-+    os.remove(configPath)
++if os.path.exists(configPath.encode("utf-8")):
++    os.remove(configPath.encode("utf-8"))
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-IceUtil-unicode-Client.cpp ./files/patch-cpp-test-IceUtil-unicode-Client.cpp
--- ../ice.orig/files/patch-cpp-test-IceUtil-unicode-Client.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-IceUtil-unicode-Client.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
---- cpp.orig/test/IceUtil/unicode/Client.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/test/IceUtil/unicode/Client.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -15,6 +15,10 @@
- #   include <io.h>
- #endif
- 
-+#ifdef __FreeBSD__
-+#   include <unistd.h>
-+#endif
-+
- using namespace IceUtil;
- using namespace std;
- 
diff -ruN --exclude=CVS ../ice.orig/files/patch-cpp-test-Slice-keyword-Client.cpp ./files/patch-cpp-test-Slice-keyword-Client.cpp
--- ../ice.orig/files/patch-cpp-test-Slice-keyword-Client.cpp	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-cpp-test-Slice-keyword-Client.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
---- cpp.orig/test/Slice/keyword/Client.cpp	2011-06-15 21:43:59.000000000 +0200
-+++ cpp/test/Slice/keyword/Client.cpp	2012-03-04 20:14:53.000000000 +0100
-@@ -73,6 +73,9 @@
-     virtual void ice_response(Ice::Int)  {}
-     virtual void ice_exception(const ::Ice::Exception&) {}
- };
-+
-+template<typename T>
-+void unused(T const &) { }
-    
- //
- // This section of the test is present to ensure that the C++ types
-@@ -86,6 +89,7 @@
- 
-     _cpp_and::_cpp_auto b;
-     b._cpp_default = 0;
-+    unused(b);
- 
-     _cpp_and::deletePtr c = new _cpp_and::_cpp_delete();
-     c->_cpp_else = "";
diff -ruN --exclude=CVS ../ice.orig/files/patch-scripts-TestUtil.py ./files/patch-scripts-TestUtil.py
--- ../ice.orig/files/patch-scripts-TestUtil.py	2012-07-14 15:54:48.000000000 +0200
+++ ./files/patch-scripts-TestUtil.py	2013-05-21 02:45:33.000000000 +0200
@@ -1,6 +1,6 @@
---- scripts.orig/TestUtil.py	2011-06-15 21:44:00.000000000 +0200
-+++ scripts/TestUtil.py	2012-03-04 20:14:53.000000000 +0100
-@@ -74,6 +74,25 @@
+--- scripts.orig/TestUtil.py	2013-03-11 15:19:47.000000000 +0000
++++ scripts/TestUtil.py	2013-05-21 00:29:37.903194948 +0000
+@@ -84,6 +84,25 @@
  def isLinux():
      return sys.platform.startswith("linux")
  
@@ -26,19 +26,18 @@
  def getCppCompiler():
      compiler = ""
      if os.environ.get("CPP_COMPILER", "") != "":
-@@ -1590,7 +1609,15 @@
-             if isDarwin() and "nodarwin" in config:
-                 print "%s*** test not supported under Darwin%s" % (prefix, suffix)
+@@ -1846,6 +1865,14 @@
+                 print("%s*** test not supported under Darwin%s" % (prefix, suffix))
                  continue
-+
+ 
 +            if isFreeBSD() and "nofreebsd" in config:
-+                print "%s*** test not supported under FreeBSD%s" % (prefix, suffix)
++                print("%s*** test not supported under FreeBSD%s" % (prefix, suffix))
 +                continue
-             
++
 +            if isFreeBSDJail() and "nofreebsdjail" in config:
-+                print "%s*** test not supported within a FreeBSD Jail%s" % (prefix, suffix)
++                print("%s*** test not supported within a FreeBSD Jail%s" % (prefix, suffix))
 +                continue
 +
              if not isWin32() and "win32only" in config:
-                 print "%s*** test only supported under Win32%s" % (prefix, suffix)
+                 print("%s*** test only supported under Win32%s" % (prefix, suffix))
                  continue
diff -ruN --exclude=CVS ../ice.orig/pkg-message ./pkg-message
--- ../ice.orig/pkg-message	1970-01-01 01:00:00.000000000 +0100
+++ ./pkg-message	2013-05-20 18:43:50.000000000 +0200
@@ -0,0 +1,14 @@
+The default on-the-wire encoding for Ice changed in version 3.5 and IPv6
+is now enabled by default. ABI versions are not compatible.
+
+For details on these and additional changes please read the upgrading
+instructions available at
+
+	http://doc.zeroc.com/x/SQpN
+
+For on-the-wire background compatibility add
+
+	Ice.IPv6=0
+	Ice.Default.EncodingVersion=1.0
+
+to your Ice application configuration.
diff -ruN --exclude=CVS ../ice.orig/pkg-plist ./pkg-plist
--- ../ice.orig/pkg-plist	2012-07-14 15:54:48.000000000 +0200
+++ ./pkg-plist	2013-06-02 23:37:47.000000000 +0200
@@ -41,12 +41,14 @@
 include/Freeze/TransactionalEvictor.h
 include/Glacier2/Application.h
 include/Glacier2/Glacier2.h
+include/Glacier2/Metrics.h
 include/Glacier2/PermissionsVerifier.h
 include/Glacier2/PermissionsVerifierF.h
 include/Glacier2/Router.h
 include/Glacier2/RouterF.h
 include/Glacier2/SSLInfo.h
 include/Glacier2/Session.h
+include/Glacier2/SessionHelper.h
 include/Ice/Application.h
 include/Ice/BasicStream.h
 include/Ice/Buffer.h
@@ -77,6 +79,7 @@
 include/Ice/FacetMap.h
 include/Ice/FactoryTable.h
 include/Ice/FactoryTableInit.h
+include/Ice/Format.h
 include/Ice/Functional.h
 include/Ice/GCCountMap.h
 include/Ice/GCShared.h
@@ -91,6 +94,8 @@
 include/Ice/IncomingAsyncF.h
 include/Ice/Initialize.h
 include/Ice/InstanceF.h
+include/Ice/Instrumentation.h
+include/Ice/InstrumentationF.h
 include/Ice/LocalException.h
 include/Ice/LocalObject.h
 include/Ice/LocalObjectF.h
@@ -99,6 +104,10 @@
 include/Ice/Logger.h
 include/Ice/LoggerF.h
 include/Ice/LoggerUtil.h
+include/Ice/Metrics.h
+include/Ice/MetricsAdminI.h
+include/Ice/MetricsFunctional.h
+include/Ice/MetricsObserverI.h
 include/Ice/Object.h
 include/Ice/ObjectAdapter.h
 include/Ice/ObjectAdapterF.h
@@ -106,6 +115,8 @@
 include/Ice/ObjectF.h
 include/Ice/ObjectFactory.h
 include/Ice/ObjectFactoryF.h
+include/Ice/ObjectFactoryManagerF.h
+include/Ice/ObserverHelper.h
 include/Ice/Outgoing.h
 include/Ice/OutgoingAsync.h
 include/Ice/OutgoingAsyncF.h
@@ -114,6 +125,7 @@
 include/Ice/Process.h
 include/Ice/ProcessF.h
 include/Ice/Properties.h
+include/Ice/PropertiesAdmin.h
 include/Ice/PropertiesF.h
 include/Ice/Protocol.h
 include/Ice/ProtocolPluginFacade.h
@@ -132,13 +144,17 @@
 include/Ice/Service.h
 include/Ice/SliceChecksumDict.h
 include/Ice/SliceChecksums.h
+include/Ice/SlicedData.h
+include/Ice/SlicedDataF.h
 include/Ice/Stats.h
 include/Ice/StatsF.h
 include/Ice/Stream.h
 include/Ice/StreamF.h
+include/Ice/StreamHelpers.h
 include/Ice/StringConverter.h
 include/Ice/UndefSysMacros.h
 include/Ice/UserExceptionFactory.h
+include/Ice/Version.h
 include/IceBox/IceBox.h
 include/IceGrid/Admin.h
 include/IceGrid/Descriptor.h
@@ -160,6 +176,7 @@
 include/IceSSL/IceSSL.h
 include/IceSSL/Plugin.h
 include/IceStorm/IceStorm.h
+include/IceStorm/Metrics.h
 include/IceUtil/AbstractMutex.h
 include/IceUtil/ArgVector.h
 include/IceUtil/Cache.h
@@ -181,14 +198,15 @@
 include/IceUtil/MutexProtocol.h
 include/IceUtil/MutexPtrLock.h
 include/IceUtil/MutexPtrTryLock.h
+include/IceUtil/Optional.h
 include/IceUtil/Options.h
 include/IceUtil/OutputUtil.h
-include/IceUtil/RWRecMutex.h
 include/IceUtil/Random.h
 include/IceUtil/RecMutex.h
+include/IceUtil/ScannerConfig.h
 include/IceUtil/ScopedArray.h
 include/IceUtil/Shared.h
-include/IceUtil/StaticMutex.h
+include/IceUtil/StopWatch.h
 include/IceUtil/StringUtil.h
 include/IceUtil/Thread.h
 include/IceUtil/ThreadException.h
@@ -196,6 +214,7 @@
 include/IceUtil/Timer.h
 include/IceUtil/UUID.h
 include/IceUtil/Unicode.h
+include/IceUtil/UniquePtr.h
 include/IceXML/Parser.h
 include/Slice/CPlusPlusUtil.h
 include/Slice/Checksum.h
@@ -211,50 +230,50 @@
 include/Slice/Util.h
 lib/ImportKey.class
 lib/libFreeze.so
-lib/libFreeze.so.3.4.2
-lib/libFreeze.so.34
+lib/libFreeze.so.3.5.0
+lib/libFreeze.so.35
 lib/libGlacier2.so
-lib/libGlacier2.so.3.4.2
-lib/libGlacier2.so.34
+lib/libGlacier2.so.3.5.0
+lib/libGlacier2.so.35
 lib/libIce.so
-lib/libIce.so.3.4.2
-lib/libIce.so.34
+lib/libIce.so.3.5.0
+lib/libIce.so.35
 lib/libIceBox.so
-lib/libIceBox.so.3.4.2
-lib/libIceBox.so.34
+lib/libIceBox.so.3.5.0
+lib/libIceBox.so.35
 lib/libIceDB.so
-lib/libIceDB.so.3.4.2
-lib/libIceDB.so.34
+lib/libIceDB.so.3.5.0
+lib/libIceDB.so.35
 lib/libIceGrid.so
-lib/libIceGrid.so.3.4.2
-lib/libIceGrid.so.34
+lib/libIceGrid.so.3.5.0
+lib/libIceGrid.so.35
 lib/libIceGridFreezeDB.so
-lib/libIceGridFreezeDB.so.3.4.2
-lib/libIceGridFreezeDB.so.34
+lib/libIceGridFreezeDB.so.3.5.0
+lib/libIceGridFreezeDB.so.35
 lib/libIcePatch2.so
-lib/libIcePatch2.so.3.4.2
-lib/libIcePatch2.so.34
+lib/libIcePatch2.so.3.5.0
+lib/libIcePatch2.so.35
 lib/libIceSSL.so
-lib/libIceSSL.so.3.4.2
-lib/libIceSSL.so.34
+lib/libIceSSL.so.3.5.0
+lib/libIceSSL.so.35
 lib/libIceStorm.so
-lib/libIceStorm.so.3.4.2
-lib/libIceStorm.so.34
+lib/libIceStorm.so.3.5.0
+lib/libIceStorm.so.35
 lib/libIceStormFreezeDB.so
-lib/libIceStormFreezeDB.so.3.4.2
-lib/libIceStormFreezeDB.so.34
+lib/libIceStormFreezeDB.so.3.5.0
+lib/libIceStormFreezeDB.so.35
 lib/libIceStormService.so
-lib/libIceStormService.so.3.4.2
-lib/libIceStormService.so.34
+lib/libIceStormService.so.3.5.0
+lib/libIceStormService.so.35
 lib/libIceUtil.so
-lib/libIceUtil.so.3.4.2
-lib/libIceUtil.so.34
+lib/libIceUtil.so.3.5.0
+lib/libIceUtil.so.35
 lib/libIceXML.so
-lib/libIceXML.so.3.4.2
-lib/libIceXML.so.34
+lib/libIceXML.so.3.5.0
+lib/libIceXML.so.35
 lib/libSlice.so
-lib/libSlice.so.3.4.2
-lib/libSlice.so.34
+lib/libSlice.so.3.5.0
+lib/libSlice.so.35
 %%DATADIR%%/Freeze/BackgroundSaveEvictor.ice
 %%DATADIR%%/Freeze/CatalogData.ice
 %%DATADIR%%/Freeze/Connection.ice
@@ -266,6 +285,7 @@
 %%DATADIR%%/Freeze/Exception.ice
 %%DATADIR%%/Freeze/Transaction.ice
 %%DATADIR%%/Freeze/TransactionalEvictor.ice
+%%DATADIR%%/Glacier2/Metrics.ice
 %%DATADIR%%/Glacier2/PermissionsVerifier.ice
 %%DATADIR%%/Glacier2/PermissionsVerifierF.ice
 %%DATADIR%%/Glacier2/Router.ice
@@ -286,11 +306,14 @@
 %%DATADIR%%/Ice/Identity.ice
 %%DATADIR%%/Ice/ImplicitContext.ice
 %%DATADIR%%/Ice/ImplicitContextF.ice
+%%DATADIR%%/Ice/Instrumentation.ice
+%%DATADIR%%/Ice/InstrumentationF.ice
 %%DATADIR%%/Ice/LocalException.ice
 %%DATADIR%%/Ice/Locator.ice
 %%DATADIR%%/Ice/LocatorF.ice
 %%DATADIR%%/Ice/Logger.ice
 %%DATADIR%%/Ice/LoggerF.ice
+%%DATADIR%%/Ice/Metrics.ice
 %%DATADIR%%/Ice/ObjectAdapter.ice
 %%DATADIR%%/Ice/ObjectAdapterF.ice
 %%DATADIR%%/Ice/ObjectFactory.ice
@@ -308,6 +331,7 @@
 %%DATADIR%%/Ice/SliceChecksumDict.ice
 %%DATADIR%%/Ice/Stats.ice
 %%DATADIR%%/Ice/StatsF.ice
+%%DATADIR%%/Ice/Version.ice
 %%DATADIR%%/IceBox/IceBox.ice
 %%DATADIR%%/IceGrid/Admin.ice
 %%DATADIR%%/IceGrid/Descriptor.ice
@@ -324,13 +348,16 @@
 %%DATADIR%%/IceSSL/ConnectionInfo.ice
 %%DATADIR%%/IceSSL/EndpointInfo.ice
 %%DATADIR%%/IceStorm/IceStorm.ice
+%%DATADIR%%/IceStorm/Metrics.ice
 %%DATADIR%%/LICENSE
 %%DATADIR%%/config/convertssl.py
 %%DATADIR%%/config/icegrid-slice.3.1.ice.gz
 %%DATADIR%%/config/icegrid-slice.3.2.ice.gz
 %%DATADIR%%/config/icegrid-slice.3.3.ice.gz
+%%DATADIR%%/config/icegrid-slice.3.5.ice.gz
 %%DATADIR%%/config/templates.xml
-%%DATADIR%%/config/upgradeicegrid.py
+%%DATADIR%%/config/upgradeicegrid33.py
+%%DATADIR%%/config/upgradeicegrid35.py
 %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/BackgroundSaveEvictor.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/CatalogData.html
@@ -351,7 +378,6 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/TransactionAlreadyInProgressException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/TransactionalEvictor.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2.html
-%%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/Admin.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/CannotCreateSessionException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/IdentitySet.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/PermissionDeniedException.html
@@ -389,6 +415,7 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/DNSException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/DatagramLimitException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EncapsulationException.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EncodingVersion.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Endpoint.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EndpointInfo.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EndpointParseException.html
@@ -407,6 +434,7 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/IllegalMessageSizeException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ImplicitContext.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/InitializationException.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Instrumentation.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/InvalidReplicaGroupIdException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Locator.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/LocatorRegistry.html
@@ -432,6 +460,7 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Properties.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/PropertiesAdmin.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProtocolException.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProtocolVersion.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProxyParseException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProxyUnmarshalException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/RequestFailedException.html
@@ -461,6 +490,7 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/UnsupportedEncodingException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/UnsupportedProtocolException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/VersionMismatchException.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/VersionParseException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox/AlreadyStartedException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox/AlreadyStoppedException.html
@@ -545,8 +575,20 @@
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/TemplateDescriptor.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/UserAccountMapper.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/UserAccountNotFoundException.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/ConnectionMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/DispatchMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/InvocationMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/Metrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/MetricsAdmin.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/MetricsFailures.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/RemoteMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/SessionMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/SubscriberMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/ThreadMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/TopicMetrics.html
+%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/UnknownMetricsView.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2.html
-%%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/Admin.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileAccessException.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileInfo.html
 %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileServer.html
@@ -589,6 +631,7 @@
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceStorm
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceSSL
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IcePatch2
+%%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceMX
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceGrid
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceBox
 %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/Ice
--- Ice-3.5.0.patch ends here ---

>Release-Note:
>Audit-Trail:

From: William Grzybowski <william88@gmail.com>
To: bug-followup@FreeBSD.org, freebsd@grem.de
Cc:  
Subject: Re: ports/179233: [MAINTAINER] devel/ice: update to 3.5.0
Date: Wed, 12 Jun 2013 18:23:43 -0300

 Tests are failing for me:
 
 *** running tests 9/85 in
 /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 *** configuration: Default
 *** test started: 06/12/13 18:20:13
 starting client... ok
 Testing operation name... ok
 terminate called after throwing an instance of 'IceUtil::ThreadSyscallException'
   what():  ../../include/IceUtil/Mutex.h:303: IceUtil::ThreadSyscallException:
 syscall exception: Invalid argument
 unexpected exit status: expected: 0, got -6
 Traceback (most recent call last):
   File "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
 line 24, in <module>
     TestUtil.simpleTest(client)
   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
 1424, in simpleTest
     client.waitTestSuccess()
   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 564, in waitTestSuccess
     test(self.exitstatus, exitstatus)
   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 549, in test
     assert False
 AssertionError
 ('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 failed with exit status', 256)
 
 FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
 8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
 amd64
 
 --
 William Grzybowski
 ------------------------------------------
 Curitiba/PR - Brasil

From: Michael Gmelin <freebsd@grem.de>
To: William Grzybowski <william88@gmail.com>
Cc: bug-followup@FreeBSD.org
Subject: Re: ports/179233: [MAINTAINER] devel/ice: update to 3.5.0
Date: Wed, 12 Jun 2013 23:53:00 +0200

 On Wed, 12 Jun 2013 18:23:43 -0300
 William Grzybowski <william88@gmail.com> wrote:
 
 > Tests are failing for me:
 > 
 > *** running tests 9/85 in
 > /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 > *** configuration: Default
 > *** test started: 06/12/13 18:20:13
 > starting client... ok
 > Testing operation name... ok
 > terminate called after throwing an instance of
 > 'IceUtil::ThreadSyscallException'
 > what():  ../../include/IceUtil/Mutex.h:303:
 > IceUtil::ThreadSyscallException: syscall exception: Invalid argument
 > unexpected exit status: expected: 0, got -6 Traceback (most recent
 > call last): File
 > "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
 > line 24, in <module> TestUtil.simpleTest(client)
 >   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
 > 1424, in simpleTest
 >     client.waitTestSuccess()
 >   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 > 564, in waitTestSuccess
 >     test(self.exitstatus, exitstatus)
 >   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 > 549, in test
 >     assert False
 > AssertionError
 > ('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 > failed with exit status', 256)
 > 
 > FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
 > 8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
 > amd64
 > 
 > --
 > William Grzybowski
 > ------------------------------------------
 > Curitiba/PR - Brasil
 
 Hi William,
 
 The port has been tested on the current release version of FreeBSD
 (9.1-RELEASE) using a world built with system gcc (4.2.1) and system
 clang (3.1), libstdc++ and libc++, c++98 an c++11, it also builds fine
 on the current legacy release version (8.3-RELEASE at the time I opened
 the PR, haven't tested on 8.4 yet).
 
 I can't really test the port on or optimize it for 10-CURRENT, which is
 dramatically different and ships with a more recent version of the
 clang compiler and libc++.
 
 By the way, the error you're getting is caused by a call to
 pthread_mutex_lock failing, which in turn could be related to changes
 in the OS, default compiler flags etc.
 
 Please test on a current release version of FreeBSD. If it's still
 failing on 9.1-RELEASE please send me a complete build output and a
 list of packages installed on the system you're testing on as well as
 the content of /etc/make.conf. I've been testing this port for weeks, so
 seeing it fail on 9.1-RELEASE would be quite a surprise.
 
 If you still feel that the port should work on 10-CURRENT (with no
 official release date for 10.0 announced yet), please let me know, so
 I can discuss on ports@.
 
 Thanks for your time and effort. 
 
 Cheers,
 Michael
 
 -- 
 Michael Gmelin

From: William Grzybowski <william88@gmail.com>
To: Michael Gmelin <freebsd@grem.de>
Cc: bug-followup@freebsd.org
Subject: Re: ports/179233: [MAINTAINER] devel/ice: update to 3.5.0
Date: Wed, 12 Jun 2013 19:38:37 -0300

 On Wed, Jun 12, 2013 at 6:53 PM, Michael Gmelin <freebsd@grem.de> wrote:
 > On Wed, 12 Jun 2013 18:23:43 -0300
 > William Grzybowski <william88@gmail.com> wrote:
 >
 >> Tests are failing for me:
 >>
 >> *** running tests 9/85 in
 >> /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 >> *** configuration: Default
 >> *** test started: 06/12/13 18:20:13
 >> starting client... ok
 >> Testing operation name... ok
 >> terminate called after throwing an instance of
 >> 'IceUtil::ThreadSyscallException'
 >> what():  ../../include/IceUtil/Mutex.h:303:
 >> IceUtil::ThreadSyscallException: syscall exception: Invalid argument
 >> unexpected exit status: expected: 0, got -6 Traceback (most recent
 >> call last): File
 >> "/usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword/run.py",
 >> line 24, in <module> TestUtil.simpleTest(client)
 >>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/TestUtil.py", line
 >> 1424, in simpleTest
 >>     client.waitTestSuccess()
 >>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 >> 564, in waitTestSuccess
 >>     test(self.exitstatus, exitstatus)
 >>   File "/usr/ports/devel/ice/work/Ice-3.5.0/scripts/Expect.py", line
 >> 549, in test
 >>     assert False
 >> AssertionError
 >> ('test in /usr/ports/devel/ice/work/Ice-3.5.0/cpp/test/Slice/keyword
 >> failed with exit status', 256)
 >>
 >> FreeBSD venon 10.0-CURRENT FreeBSD 10.0-CURRENT #0 r249253M: Mon Apr
 >> 8 11:48:10 BRT 2013     william@venon:/usr/obj/usr/src/sys/VENON
 >> amd64
 >>
 >> --
 >> William Grzybowski
 >> ------------------------------------------
 >> Curitiba/PR - Brasil
 >
 > Hi William,
 >
 > The port has been tested on the current release version of FreeBSD
 > (9.1-RELEASE) using a world built with system gcc (4.2.1) and system
 > clang (3.1), libstdc++ and libc++, c++98 an c++11, it also builds fine
 > on the current legacy release version (8.3-RELEASE at the time I opened
 > the PR, haven't tested on 8.4 yet).
 >
 > I can't really test the port on or optimize it for 10-CURRENT, which is
 > dramatically different and ships with a more recent version of the
 > clang compiler and libc++.
 >
 > By the way, the error you're getting is caused by a call to
 > pthread_mutex_lock failing, which in turn could be related to changes
 > in the OS, default compiler flags etc.
 >
 > Please test on a current release version of FreeBSD. If it's still
 > failing on 9.1-RELEASE please send me a complete build output and a
 > list of packages installed on the system you're testing on as well as
 > the content of /etc/make.conf. I've been testing this port for weeks, so
 > seeing it fail on 9.1-RELEASE would be quite a surprise.
 >
 > If you still feel that the port should work on 10-CURRENT (with no
 > official release date for 10.0 announced yet), please let me know, so
 > I can discuss on ports@.
 
 Well, I think it should, as most of the ports do.
 I was going to commit this port but I'll leave it to someone then
 because I don't feel comfortable otherwise.
 
 Thanks for your work.
 
 
 --
 William Grzybowski
 ------------------------------------------
 Curitiba/PR - Brasil

From: Michael Gmelin <freebsd@grem.de>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/179233: [MAINTAINER] devel/ice: update to 3.5.0
Date: Thu, 13 Jun 2013 11:52:06 +0200

 --MP_/Bhz6HmB4KT7_Ykb_loL/.fC
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline
 
 So I followed Eitan Adler's advice
 
 http://lists.freebsd.org/pipermail/freebsd-ports/2013-June/084271.html
 
 and marked the port as BROKEN for 10. I will work on this once FreeBSD
 10 is getting closer to a release and therefore stops being a moving
 target.
 
 Since the distribution file changed upstream, I also adapted distinfo.
 
 Please find attach the complete patch, which - to circumvent PR system
 problems - is also available at:
 
 http://blog.grem.de/ice_350_20130613.patch
 http://blog.grem.de/ice_350_20130613.patch.gz
 
 Thanks,
 Michael
 
 -- 
 Michael Gmelin
 
 --MP_/Bhz6HmB4KT7_Ykb_loL/.fC
 Content-Type: text/x-patch
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment; filename=ice_350_20130613.patch
 
 diff -ruN ../ice.orig/Makefile ./Makefile
 --- ../ice.orig/Makefile	2013-04-27 10:50:46.000000000 +0200
 +++ ./Makefile	2013-06-13 11:16:06.000000000 +0200
 @@ -2,14 +2,15 @@
  # $FreeBSD: devel/ice/Makefile 316654 2013-04-27 08:50:46Z mva $
 =20
  PORTNAME=3D		Ice
 -PORTVERSION=3D		3.4.2
 -PORTREVISION=3D		3
 +PORTVERSION=3D		3.5.0
  CATEGORIES=3D		devel
 -MASTER_SITES=3D		http://download.zeroc.com/Ice/3.4/
 +MASTER_SITES=3D		http://download.zeroc.com/Ice/3.5/
 =20
  MAINTAINER=3D		freebsd@grem.de
  COMMENT=3D		Modern alternative to object middleware such as CORBA/COM/DCOM=
 /COM+
 =20
 +LICENSE=3D		GPLv2
 +
  LIB_DEPENDS=3D		expat:${PORTSDIR}/textproc/expat2 \
  			mcpp:${PORTSDIR}/devel/mcpp
 =20
 @@ -26,8 +27,8 @@
 =20
  USE_GMAKE=3D		yes
  USES=3D			iconv
 -USE_BDB=3D		42+
 -INVALID_BDB_VER=3D	2 3 40 41
 +USE_BDB=3D		5
 +INVALID_BDB_VER=3D	2 3 40 41 42 43 44 46 47 48
  USE_LDCONFIG=3D		yes
  BUILD_WRKSRC=3D		${WRKSRC}/cpp
  INSTALL_WRKSRC=3D		${WRKSRC}/cpp
 @@ -45,6 +46,10 @@
  BROKEN=3D			fails to link
  .endif
 =20
 +.if ${OSVERSION} >=3D 1000000
 +BROKEN=3D			Does not work on FreeBSD 10
 +.endif
 +
  .if ((${ARCH} !=3D i386) && (${ARCH} !=3D powerpc))
  MAKE_ENV=3D		LP64=3Dyes
  .endif
 diff -ruN ../ice.orig/distinfo ./distinfo
 --- ../ice.orig/distinfo	2012-07-14 15:54:48.000000000 +0200
 +++ ./distinfo	2013-06-13 11:13:25.000000000 +0200
 @@ -1,2 +1,2 @@
 -SHA256 (Ice-3.4.2.tar.gz) =3D dcf0484495b6df0849ec90a00e8204fe5fe1c0d3882b=
 b438bf2c1d062f15c979
 -SIZE (Ice-3.4.2.tar.gz) =3D 5485106
 +SHA256 (Ice-3.5.0.tar.gz) =3D bbde6b5a87f5abc8d9105468731f1419829bc22b5d23=
 b8fdef553967a2eebdb0
 +SIZE (Ice-3.5.0.tar.gz) =3D 4790555
 diff -ruN ../ice.orig/files/patch-Make.rules ./files/patch-Make.rules
 --- ../ice.orig/files/patch-Make.rules	2012-07-14 15:54:48.000000000 +0200
 +++ ./files/patch-Make.rules	1970-01-01 01:00:00.000000000 +0100
 @@ -1,12 +0,0 @@
 ---- cpp/config/Make.rules.orig	Fri Mar  9 00:16:54 2007
 -+++ cpp/config/Make.rules	Fri Apr 13 20:05:04 2007
 -@@ -188,7 +188,9 @@
 -       DB_FLAGS          =3D -I/usr/include/db45
 -       DB_LIBS           =3D -L/usr/$(libsubdir)/db45 -ldb_cxx
 -    else
 --      DB_LIBS           =3D -ldb_cxx
 -+      DB_FLAGS          =3D -I%%BDB_INCLUDE_DIR%%
 -+      DB_LIBS           =3D -L%%BDB_LIB_DIR%% -l%%BDB_LIB_CXX_NAME%%
 -+      DB_RPATH_LINK     =3D $(call rpathlink,%%BDB_LIB_DIR%%)
 -    endif
 - endif
 diff -ruN ../ice.orig/files/patch-Makefile ./files/patch-Makefile
 --- ../ice.orig/files/patch-Makefile	2012-07-14 15:54:48.000000000 +0200
 +++ ./files/patch-Makefile	1970-01-01 01:00:00.000000000 +0100
 @@ -1,26 +0,0 @@
 ---- cpp.orig/Makefile	2012-03-04 21:38:42.000000000 +0100
 -+++ cpp/Makefile	2012-03-04 21:38:42.000000000 +0100
 -@@ -11,7 +11,22 @@
 -=20
 - include $(top_srcdir)/config/Make.rules
 -=20
 --SUBDIRS		=3D config src include test demo
 -+SUBDIRS		=3D config src include
 -+
 -+ifeq ($(NOTESTS),)
 -+SUBDIRS		+=3D test
 -+endif
 -+
 -+ifeq ($(NODEMOS),)
 -+SUBDIRS		+=3D demo
 -+endif
 -+
 -+ifeq ($(NOPORTDOCS),)
 -+SUBDIRS		+=3D doc
 -+endif
 -+=20
 -+ INSTALL_SUBDIRS	=3D $(install_bindir) $(install_libdir) $(install_includ=
 edir) $(install_configdir)
 -+=20
 -=20
 - INSTALL_SUBDIRS	=3D $(install_bindir) $(install_libdir) $(install_include=
 dir) $(install_configdir)
 -=20
 diff -ruN ../ice.orig/files/patch-config-Make.common.rules ./files/patch-co=
 nfig-Make.common.rules
 --- ../ice.orig/files/patch-config-Make.common.rules	1970-01-01 01:00:00.00=
 0000000 +0100
 +++ ./files/patch-config-Make.common.rules	2013-06-01 19:52:09.000000000 +0=
 200
 @@ -0,0 +1,18 @@
 +--- config.orig/Make.common.rules	2013-05-20 22:21:58.666286011 +0000
 ++++ config/Make.common.rules	2013-05-20 22:20:50.897196090 +0000
 +@@ -378,11 +378,15 @@
 + 	then \
 + 	    echo "Creating $(install_slicedir)..." ; \
 + 	    $(call mkdir, $(install_slicedir)) ; \
 ++	fi
 ++
 ++	@if test -d $(install_slicedir) ; \
 ++	then \
 + 	    cd $(top_srcdir)/../slice ; \
 + 	    for subdir in * ; \
 + 	    do \
 + 	        echo "Copying slice/$$subdir to $(install_slicedir)..." ; \
 + 	        cp -fpr $$subdir $(install_slicedir) ; \
 + 	    done ; \
 +-	    fi
 ++	fi
 diff -ruN ../ice.orig/files/patch-cpp-Makefile ./files/patch-cpp-Makefile
 --- ../ice.orig/files/patch-cpp-Makefile	1970-01-01 01:00:00.000000000 +0100
 +++ ./files/patch-cpp-Makefile	2013-05-20 01:05:19.000000000 +0200
 @@ -0,0 +1,26 @@
 +--- cpp.orig/Makefile	2013-03-11 15:19:46.000000000 +0000
 ++++ cpp/Makefile	2013-05-19 22:06:57.713280491 +0000
 +@@ -11,11 +11,22 @@
 +=20
 + include $(top_srcdir)/config/Make.rules
 +=20
 +-SUBDIRS		=3D config src include test
 ++SUBDIRS		=3D config src include
 ++
 ++ifeq ($(NOTESTS),)
 ++SUBDIRS		:=3D $(SUBDIRS) test
 ++endif
 +=20
 + ifeq ($(shell uname | grep MINGW),)
 ++ifeq ($(NODEMOS),)
 + SUBDIRS		:=3D $(SUBDIRS) demo
 + endif
 ++endif
 ++
 ++ifeq ($(NOPORTDOCS),)
 ++SUBDIRS		:=3D $(SUBDIRS) doc
 ++endif
 ++
 +=20
 + INSTALL_SUBDIRS	=3D $(install_bindir) $(install_libdir) $(install_include=
 dir) $(install_configdir)
 +=20
 diff -ruN ../ice.orig/files/patch-cpp-allTests.py ./files/patch-cpp-allTest=
 s.py
 --- ../ice.orig/files/patch-cpp-allTests.py	2012-07-14 15:54:48.000000000 +=
 0200
 +++ ./files/patch-cpp-allTests.py	2013-05-20 00:26:42.000000000 +0200
 @@ -1,13 +1,5 @@
 ---- cpp.orig/allTests.py	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/allTests.py	2012-03-04 20:14:52.000000000 +0100
 -@@ -25,6 +25,7 @@
 - # List of all basic tests.
 - #
 - tests =3D [=20
 -+
 -     ("IceUtil/condvar", ["once", "win32only"]),
 -     ("IceUtil/thread",  ["once"]),
 -     ("IceUtil/unicode", ["once"]),
 +--- cpp.orig/allTests.py	2013-03-11 15:19:58.000000000 +0000
 ++++ cpp/allTests.py	2013-05-19 22:25:00.000000000 +0000
  @@ -62,7 +63,7 @@
       ("Ice/servantLocator", ["core"]),
       ("Ice/interceptor", ["core"]),
 @@ -22,9 +14,9 @@
   if TestUtil.isWin32() or os.getuid() =3D=3D 0:
       tests +=3D [
  -        ("IceUtil/priority", ["core", "nodarwin"]),
 --        ("Ice/threadPoolPriority", ["core", "nodarwin"])
 +-        ("Ice/threadPoolPriority", ["core", "nodarwin", "nomx"])
  +        ("IceUtil/priority", ["core", "nodarwin", "nofreebsd"]),
 -+        ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd"])
 ++        ("Ice/threadPoolPriority", ["core", "nodarwin", "nofreebsd", "nom=
 x"])
           ]
  =20
   if __name__ =3D=3D "__main__":
 diff -ruN ../ice.orig/files/patch-cpp-config-Make.rules ./files/patch-cpp-c=
 onfig-Make.rules
 --- ../ice.orig/files/patch-cpp-config-Make.rules	1970-01-01 01:00:00.00000=
 0000 +0100
 +++ ./files/patch-cpp-config-Make.rules	2013-05-21 02:45:50.000000000 +0200
 @@ -0,0 +1,13 @@
 +--- cpp.orig/config/Make.rules	Fri Mar 11 16:19:00 2013
 ++++ cpp/config/Make.rules	Fri May 19 22:00:09 2013
 +@@ -233,7 +233,9 @@
 +           DB_FLAGS          =3D -I/usr/local/include/db53
 +           DB_LIBS           =3D -L/usr/local/$(libsubdir)/db53 -ldb_cxx
 +       else
 +-        DB_LIBS      =3D -ldb_cxx
 ++        DB_FLAGS          =3D -I%%BDB_INCLUDE_DIR%%
 ++        DB_LIBS           =3D -L%%BDB_LIB_DIR%% -l%%BDB_LIB_CXX_NAME%%
 ++        DB_RPATH_LINK     =3D $(call rpathlink,%%BDB_LIB_DIR%%)
 +       endif
 +    endif
 + endif
 diff -ruN ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h .=
 /files/patch-cpp-demo-Freeze-customEvictor-Evictor.h
 --- ../ice.orig/files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	2012-09=
 -23 16:45:33.000000000 +0200
 +++ ./files/patch-cpp-demo-Freeze-customEvictor-Evictor.h	1970-01-01 01:00:=
 00.000000000 +0100
 @@ -1,10 +0,0 @@
 ---- cpp.orig/demo/Freeze/customEvictor/Evictor.h	2011-06-15 21:43:58.00000=
 0000 +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:
 -    =20
 -     Evictor(CurrentDatabase&, int);
 -+    virtual ~Evictor() ICE_NOEXCEPT_TRUE {};
 -    =20
 -     virtual Ice::ObjectPtr locate(const Ice::Current&, Ice::LocalObjectPt=
 r&);
 -     virtual void finished(const Ice::Current&, const Ice::ObjectPtr&, con=
 st Ice::LocalObjectPtr&);
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-README ./files/pa=
 tch-cpp-demo-IceGrid-secure-README
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-README	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-README	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/README	2011-06-15 21:44:00.000000000 +0200
 -+++ cpp/demo/IceGrid/secure/README	2012-03-04 19:55:44.000000000 +0100
 -@@ -31,9 +31,10 @@
 - the filesystem permissions to restrict access to the certificate.
 -=20
 - Once the certificates are generated, you can start the IceGrid
 --registry, node, and Glacier2 router:
 -+registries, node, and Glacier2 router:
 -=20
 --$ icegridregistry --Ice.Config=3Dconfig.registry
 -+$ icegridregistry --Ice.Config=3Dconfig.master
 -+$ icegridregistry --Ice.Config=3Dconfig.slave
 - $ icegridnode --Ice.Config=3Dconfig.node
 - $ glacier2router --Ice.Config=3Dconfig.glacier2
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-application.xml .=
 /files/patch-cpp-demo-IceGrid-secure-application.xml
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-application.xml	2012-07=
 -14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-application.xml	1970-01-01 01:00:=
 00.000000000 +0100
 @@ -1,13 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/application.xml	2011-06-15 21:43:58.00000=
 0000 +0200
 -+++ cpp/demo/IceGrid/secure/application.xml	2012-03-04 19:55:44.000000000 =
 +0100
 -@@ -20,8 +20,8 @@
 -       <property name=3D"IceSSL.DefaultDir" value=3D"certs"/>
 -=20
 -       <property name=3D"Ice.Admin.Endpoints" value=3D"ssl -h 127.0.0.1"/>
 --      <property name=3D"IceSSL.TrustOnly.Client" value=3D"CN=3DIceGrid Re=
 gistry"/>
 --      <property name=3D"IceSSL.TrustOnly.Server.Ice.Admin" value=3D"CN=3D=
 IceGrid Node"/>
 -+      <property name=3D"IceSSL.TrustOnly.Client" value=3D"CN=3DMaster;CN=
 =3DSlave"/>
 -+      <property name=3D"IceSSL.TrustOnly.Server.Ice.Admin" value=3D"CN=3D=
 Node"/>
 -     </properties>
 -=20
 -     <node name=3D"Node">
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.admin ./fi=
 les/patch-cpp-demo-IceGrid-secure-config.admin
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.admin	2012-07-14=
  15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.admin	1970-01-01 01:00:00.=
 000000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.admin	2011-06-15 21:43:58.00000000=
 0 +0200
 -+++ cpp/demo/IceGrid/secure/config.admin	2012-03-04 19:55:44.000000000 +01=
 00
 -@@ -14,7 +14,7 @@
 - # SSL Configuration
 - #
 - IceSSL.DefaultDir=3Dcerts
 --IceSSL.TrustOnly.Client=3DCN=3D"IceGrid Registry";CN=3D"Glacier2"
 -+IceSSL.TrustOnly.Client=3DCN=3D"Master";CN=3D"Slave";CN=3D"Glacier2"
 -=20
 - # C++ configuration
 - Ice.Plugin.IceSSL.cpp=3DIceSSL:createIceSSL
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.client ./f=
 iles/patch-cpp-demo-IceGrid-secure-config.client
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.client	2012-07-1=
 4 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.client	1970-01-01 01:00:00=
 .000000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.client	2011-06-15 21:43:58.0000000=
 00 +0200
 -+++ cpp/demo/IceGrid/secure/config.client	2012-03-04 19:55:44.000000000 +0=
 100
 -@@ -1,7 +1,7 @@
 - #
 - # The IceGrid locator proxy.
 - #
 --Ice.Default.Locator=3DDemoIceGrid/Locator:tcp -p 4061
 -+Ice.Default.Locator=3DDemoIceGrid/Locator:tcp -p 4061:tcp -p 14061
 -=20
 - #
 - # Trace properties.
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.master ./f=
 iles/patch-cpp-demo-IceGrid-secure-config.master
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.master	2012-07-1=
 4 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.master	1970-01-01 01:00:00=
 .000000000 +0100
 @@ -1,64 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.master	2012-03-04 19:55:44.0000000=
 00 +0100
 -+++ cpp/demo/IceGrid/secure/config.master	2012-03-04 19:55:44.000000000 +0=
 100
 -@@ -0,0 +1,61 @@
 -+#
 -+# The IceGrid instance name.
 -+#
 -+IceGrid.InstanceName=3DDemoIceGrid
 -+
 -+#
 -+# IceGrid registry configuration.
 -+#
 -+IceGrid.Registry.Client.Endpoints=3Dtcp -p 4061 -t 10000:ssl -p 4062 -t 1=
 0000
 -+IceGrid.Registry.Server.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.Internal.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.Data=3Ddb/master
 -+
 -+#
 -+# Ensure that nodes and slaves connecting to this registry have a name
 -+# matching the certificate CN.
 -+#
 -+IceGrid.Registry.RequireNodeCertCN=3D1
 -+IceGrid.Registry.RequireReplicaCertCN=3D1
 -+
 -+#
 -+# IceGrid admin clients must use a secure connection to connect to the
 -+# registry or use Glacier2.
 -+#
 -+IceGrid.Registry.AdminSessionManager.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.AdminPermissionsVerifier=3DDemoIceGrid/NullPermissionsVe=
 rifier
 -+
 -+#
 -+# IceGrid SQL configuration if using SQL database.
 -+#
 -+#Ice.Plugin.DB=3DIceGridSqlDB:createSqlDB
 -+#IceGrid.SQL.DatabaseType=3DQSQLITE
 -+#IceGrid.SQL.DatabaseName=3Ddb/master/Registry.db
 -+
 -+#
 -+# Trace properties.
 -+#
 -+Ice.ProgramName=3DMaster
 -+IceGrid.Registry.Trace.Node=3D2
 -+IceGrid.Registry.Trace.Replica=3D2
 -+
 -+#
 -+# SSL Configuration
 -+#
 -+Ice.Plugin.IceSSL=3DIceSSL:createIceSSL
 -+IceSSL.DefaultDir=3Dcerts
 -+IceSSL.CertAuthFile=3Dca_cert.pem
 -+IceSSL.CertFile=3Dmaster_cert.pem
 -+IceSSL.KeyFile=3Dmaster_key.pem
 -+
 -+#
 -+# Don't require certificates. This is useful for admin clients that don't
 -+# use certificate but still need to establish a secure connection for the
 -+# username/password authentication
 -+#
 -+IceSSL.VerifyPeer=3D1
 -+
 -+IceSSL.TrustOnly.Client=3DCN=3D"Master";CN=3D"Slave";CN=3D"Node";CN=3D"Gl=
 acier2"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=3DCN=3D"Server"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=3DCN=3D"Node";CN=3D"Mas=
 ter";CN=3D"Slave"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=3DCN=3D"Glac=
 ier2"
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.node ./fil=
 es/patch-cpp-demo-IceGrid-secure-config.node
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.node	2012-07-14 =
 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.node	1970-01-01 01:00:00.0=
 00000000 +0100
 @@ -1,19 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.node	2011-06-15 21:43:58.000000000=
  +0200
 -+++ cpp/demo/IceGrid/secure/config.node	2012-03-04 19:55:44.000000000 +0100
 -@@ -1,7 +1,7 @@
 - #
 - # The IceGrid locator proxy.
 - #
 --Ice.Default.Locator=3DDemoIceGrid/Locator:ssl -p 4062 -t 10000
 -+Ice.Default.Locator=3DDemoIceGrid/Locator:ssl -p 4062 -t 10000:ssl -p 140=
 62 -t 10000
 -=20
 - #
 - # IceGrid node configuration.
 -@@ -26,5 +26,5 @@
 - IceSSL.CertFile=3Dnode_cert.pem
 - IceSSL.KeyFile=3Dnode_key.pem
 -=20
 --IceSSL.TrustOnly.Client=3DCN=3D"Server";CN=3D"IceGrid Registry"
 --IceSSL.TrustOnly.Server=3DCN=3D"IceGrid Registry"
 -+IceSSL.TrustOnly.Client=3DCN=3D"Server";CN=3D"Master";CN=3D"Slave"
 -+IceSSL.TrustOnly.Server=3DCN=3D"Master";CN=3D"Slave"
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.registry .=
 /files/patch-cpp-demo-IceGrid-secure-config.registry
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.registry	2012-07=
 -14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.registry	1970-01-01 01:00:=
 00.000000000 +0100
 @@ -1,57 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.registry	2011-06-15 21:43:58.00000=
 0000 +0200
 -+++ cpp/demo/IceGrid/secure/config.registry	2012-03-04 19:55:44.000000000 =
 +0100
 -@@ -1,54 +0,0 @@
 --#
 --# The IceGrid instance name.
 --#
 --IceGrid.InstanceName=3DDemoIceGrid
 --
 --#
 --# IceGrid registry configuration.
 --#
 --IceGrid.Registry.Client.Endpoints=3Dtcp -p 4061 -t 10000:ssl -p 4062 -t 1=
 0000
 --IceGrid.Registry.Server.Endpoints=3Dssl -t 10000
 --IceGrid.Registry.Internal.Endpoints=3Dssl -t 10000
 --IceGrid.Registry.Data=3Ddb/registry
 --
 --#
 --# IceGrid admin clients must use a secure connection to connect to the
 --# registry or use Glacier2.
 --#
 --IceGrid.Registry.AdminSessionManager.Endpoints=3Dssl -t 10000
 --IceGrid.Registry.AdminPermissionsVerifier=3DDemoIceGrid/NullPermissionsVe=
 rifier
 --
 --#
 --# IceGrid SQL configuration if using SQL database.
 --#
 --#Ice.Plugin.DB=3DIceGridSqlDB:createSqlDB
 --#IceGrid.SQL.DatabaseType=3DQSQLITE
 --#IceGrid.SQL.DatabaseName=3Ddb/registry/Registry.db
 --
 --#
 --# Trace properties.
 --#
 --Ice.ProgramName=3DRegistry
 --IceGrid.Registry.Trace.Node=3D2
 --IceGrid.Registry.Trace.Replica=3D2
 --
 --#
 --# SSL Configuration
 --#
 --Ice.Plugin.IceSSL=3DIceSSL:createIceSSL
 --IceSSL.DefaultDir=3Dcerts
 --IceSSL.CertAuthFile=3Dca_cert.pem
 --IceSSL.CertFile=3Dregistry_cert.pem
 --IceSSL.KeyFile=3Dregistry_key.pem
 --
 --#
 --# Don't require certificates. This is useful for admin clients that don't
 --# use certificate but still need to establish a secure connection for the
 --# username/password authentication
 --#
 --IceSSL.VerifyPeer=3D1
 --
 --IceSSL.TrustOnly.Client=3DCN=3D"IceGrid Registry";CN=3D"IceGrid Node";CN=
 =3D"Glacier2"
 --IceSSL.TrustOnly.Server.IceGrid.Registry.Server=3DCN=3D"Server"
 --IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=3DCN=3D"IceGrid Node";C=
 N=3D"IceGrid Registry"
 --IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=3DCN=3D"Glac=
 ier2"
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.slave ./fi=
 les/patch-cpp-demo-IceGrid-secure-config.slave
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-config.slave	2012-07-14=
  15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-config.slave	1970-01-01 01:00:00.=
 000000000 +0100
 @@ -1,69 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/config.slave	2012-03-04 19:55:44.00000000=
 0 +0100
 -+++ cpp/demo/IceGrid/secure/config.slave	2012-03-04 19:55:44.000000000 +01=
 00
 -@@ -0,0 +1,66 @@
 -+#
 -+# The IceGrid locator proxy.
 -+#
 -+Ice.Default.Locator=3DDemoIceGrid/Locator:ssl -p 4062 -t 10000
 -+
 -+#
 -+# The IceGrid instance name.
 -+#
 -+IceGrid.InstanceName=3DDemoIceGrid
 -+
 -+#
 -+# IceGrid registry configuration.
 -+#
 -+IceGrid.Registry.Client.Endpoints=3Dtcp -p 14061 -t 10000:ssl -p 14062 -t=
  10000
 -+IceGrid.Registry.Server.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.Internal.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.Data=3Ddb/slave
 -+IceGrid.Registry.ReplicaName=3DSlave
 -+
 -+#
 -+# Ensure that nodes connecting to this registry have a name matching
 -+# the certificate CN.
 -+#
 -+IceGrid.Registry.RequireNodeCertCN=3D1
 -+
 -+#
 -+# IceGrid admin clients must use a secure connection to connect to the
 -+# registry or use Glacier2.
 -+#
 -+IceGrid.Registry.AdminSessionManager.Endpoints=3Dssl -t 10000
 -+IceGrid.Registry.AdminPermissionsVerifier=3DDemoIceGrid/NullPermissionsVe=
 rifier
 -+
 -+#
 -+# IceGrid SQL configuration if using SQL database.
 -+#
 -+#Ice.Plugin.DB=3DIceGridSqlDB:createSqlDB
 -+#IceGrid.SQL.DatabaseType=3DQSQLITE
 -+#IceGrid.SQL.DatabaseName=3Ddb/slave/Registry.db
 -+
 -+#
 -+# Trace properties.
 -+#
 -+Ice.ProgramName=3DSlave
 -+IceGrid.Registry.Trace.Node=3D2
 -+IceGrid.Registry.Trace.Replica=3D2
 -+
 -+#
 -+# SSL Configuration
 -+#
 -+Ice.Plugin.IceSSL=3DIceSSL:createIceSSL
 -+IceSSL.DefaultDir=3Dcerts
 -+IceSSL.CertAuthFile=3Dca_cert.pem
 -+IceSSL.CertFile=3Dslave_cert.pem
 -+IceSSL.KeyFile=3Dslave_key.pem
 -+
 -+#
 -+# Don't require certificates. This is useful for admin clients that don't
 -+# use certificate but still need to establish a secure connection for the
 -+# username/password authentication
 -+#
 -+IceSSL.VerifyPeer=3D1
 -+
 -+IceSSL.TrustOnly.Client=3DCN=3D"Master";CN=3D"Slave";CN=3D"Node";CN=3D"Gl=
 acier2"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.Server=3DCN=3D"Server"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.Internal=3DCN=3D"Node";CN=3D"Mas=
 ter";CN=3D"Slave"
 -+IceSSL.TrustOnly.Server.IceGrid.Registry.AdminSessionManager=3DCN=3D"Glac=
 ier2"
 diff -ruN ../ice.orig/files/patch-cpp-demo-IceGrid-secure-makecerts.py ./fi=
 les/patch-cpp-demo-IceGrid-secure-makecerts.py
 --- ../ice.orig/files/patch-cpp-demo-IceGrid-secure-makecerts.py	2012-07-14=
  15:54:48.000000000 +0200
 +++ ./files/patch-cpp-demo-IceGrid-secure-makecerts.py	1970-01-01 01:00:00.=
 000000000 +0100
 @@ -1,14 +0,0 @@
 ---- cpp.orig/demo/IceGrid/secure/makecerts.py	2011-06-15 21:43:58.00000000=
 0 +0200
 -+++ cpp/demo/IceGrid/secure/makecerts.py	2012-03-04 19:55:44.000000000 +01=
 00
 -@@ -44,8 +44,9 @@
 - print
 - print
 -=20
 --createCertificate("registry", "IceGrid Registry")
 --createCertificate("node", "IceGrid Node")
 -+createCertificate("master", "Master")
 -+createCertificate("slave", "Slave")
 -+createCertificate("node", "Node")
 - createCertificate("glacier2", "Glacier2")
 - createCertificate("server", "Server")
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-include-Freeze-Map.h ./files/patch-cp=
 p-include-Freeze-Map.h
 --- ../ice.orig/files/patch-cpp-include-Freeze-Map.h	2012-07-14 15:54:48.00=
 0000000 +0200
 +++ ./files/patch-cpp-include-Freeze-Map.h	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/include/Freeze/Map.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Freeze/Map.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -426,7 +426,7 @@
 -=20
 -     ConstIterator(MapHelper& mapHelper, const Ice::CommunicatorPtr& commu=
 nicator) :
 -         _helper(IteratorHelper::create(mapHelper, true)),=20
 --        _communicator(_communicator),
 -+        _communicator(communicator),
 -         _refValid(false)
 -     {
 -     }
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-Buffer.h ./files/patch-cp=
 p-include-Ice-Buffer.h
 --- ../ice.orig/files/patch-cpp-include-Ice-Buffer.h	2012-07-14 15:54:48.00=
 0000000 +0200
 +++ ./files/patch-cpp-include-Ice-Buffer.h	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,10 +0,0 @@
 ---- cpp.orig/include/Ice/Buffer.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/Buffer.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -10,6 +10,7 @@
 - #ifndef ICEE_BUFFER_H
 - #define ICEE_BUFFER_H
 -=20
 -+#include <cstddef>
 - #include <Ice/Config.h>
 -=20
 - namespace IceInternal
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-ConnectionIF.h ./files/pa=
 tch-cpp-include-Ice-ConnectionIF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-ConnectionIF.h	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-include-Ice-ConnectionIF.h	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/include/Ice/ConnectionIF.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/ConnectionIF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -17,13 +17,13 @@
 - {
 -=20
 - class ConnectionI;
 -+ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
 -=20
 - }
 -=20
 - namespace IceInternal
 - {
 -=20
 --ICE_API Ice::LocalObject* upCast(Ice::ConnectionI*);
 -=20
 - enum AsyncStatus
 - {
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-IconvStringConverter.h ./=
 files/patch-cpp-include-Ice-IconvStringConverter.h
 --- ../ice.orig/files/patch-cpp-include-Ice-IconvStringConverter.h	2012-07-=
 14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-include-Ice-IconvStringConverter.h	1970-01-01 01:00:0=
 0.000000000 +0100
 @@ -1,21 +0,0 @@
 ---- cpp.orig/include/Ice/IconvStringConverter.h	2011-06-15 21:43:58.000000=
 000 +0200
 -+++ cpp/include/Ice/IconvStringConverter.h	2012-03-04 20:14:52.000000000 +=
 0100
 -@@ -225,10 +225,16 @@
 - template<typename charT> /*static*/ void
 - IconvStringConverter<charT>::close(std::pair<iconv_t, iconv_t> cdp)
 - {
 --    int rs =3D iconv_close(cdp.first);
 -+#ifndef NDEBUG
 -+    int rs =3D=20
 -+#endif
 -+    iconv_close(cdp.first);
 -     assert(rs =3D=3D 0);
 -=20
 --    rs =3D iconv_close(cdp.second);
 -+#ifndef NDEBUG
 -+    rs =3D=20
 -+#endif
 -+    iconv_close(cdp.second);
 -     assert(rs =3D=3D 0);
 - }
 - =20
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-IncomingAsyncF.h ./files/=
 patch-cpp-include-Ice-IncomingAsyncF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-IncomingAsyncF.h	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-include-Ice-IncomingAsyncF.h	1970-01-01 01:00:00.0000=
 00000 +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/include/Ice/IncomingAsyncF.h	2011-06-15 21:43:58.000000000 +0=
 200
 -+++ cpp/include/Ice/IncomingAsyncF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -28,12 +28,6 @@
 -=20
 - class AMD_Object_ice_invoke;
 - class AMD_Array_Object_ice_invoke;
 --
 --}
 --
 --namespace IceInternal
 --{
 --
 - ICE_API IceUtil::Shared* upCast(::Ice::AMD_Object_ice_invoke*);
 - ICE_API IceUtil::Shared* upCast(::Ice::AMD_Array_Object_ice_invoke*);
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-LocalObjectF.h ./files/pa=
 tch-cpp-include-Ice-LocalObjectF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-LocalObjectF.h	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-include-Ice-LocalObjectF.h	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/include/Ice/LocalObjectF.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/LocalObjectF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -18,12 +18,6 @@
 - {
 -=20
 - class LocalObject;
 --
 --}
 --
 --namespace IceInternal
 --{
 --
 - ICE_API IceUtil::Shared* upCast(::Ice::LocalObject*);
 -=20
 - }
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-ObjectF.h ./files/patch-c=
 pp-include-Ice-ObjectF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-ObjectF.h	2012-07-14 15:54:48.0=
 00000000 +0200
 +++ ./files/patch-cpp-include-Ice-ObjectF.h	1970-01-01 01:00:00.000000000 +=
 0100
 @@ -1,22 +0,0 @@
 ---- cpp.orig/include/Ice/ObjectF.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/ObjectF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -17,19 +17,8 @@
 - {
 -=20
 - class Object;
 --
 --}
 --
 --namespace IceInternal
 --{
 --
 - ICE_API IceUtil::Shared* upCast(::Ice::Object*);
 -=20
 --}
 --
 --namespace Ice
 --{
 --
 - typedef IceInternal::Handle< Object > ObjectPtr;
 -=20
 - void ICE_API __patch__ObjectPtr(void*, ObjectPtr&);
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-OutgoingAsyncF.h ./files/=
 patch-cpp-include-Ice-OutgoingAsyncF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-OutgoingAsyncF.h	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-include-Ice-OutgoingAsyncF.h	1970-01-01 01:00:00.0000=
 00000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/include/Ice/OutgoingAsyncF.h	2011-06-15 21:43:58.000000000 +0=
 200
 -+++ cpp/include/Ice/OutgoingAsyncF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -19,13 +19,13 @@
 -=20
 - class AsyncResult;
 - typedef IceInternal::Handle<AsyncResult> AsyncResultPtr;
 -+ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
 -=20
 - }
 -=20
 - namespace IceInternal
 - {
 -=20
 --ICE_API IceUtil::Shared* upCast(::Ice::AsyncResult*);
 -=20
 - class OutgoingAsync;
 - ICE_API IceUtil::Shared* upCast(OutgoingAsync*);
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-Proxy.h ./files/patch-cpp=
 -include-Ice-Proxy.h
 --- ../ice.orig/files/patch-cpp-include-Ice-Proxy.h	2012-07-14 15:54:48.000=
 000000 +0200
 +++ ./files/patch-cpp-include-Ice-Proxy.h	1970-01-01 01:00:00.000000000 +01=
 00
 @@ -1,56 +0,0 @@
 ---- cpp.orig/include/Ice/Proxy.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/Proxy.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -38,6 +38,8 @@
 -=20
 - class Locator;
 - class Router;
 -+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
 -+ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
 -=20
 - }
 -=20
 -@@ -46,8 +48,6 @@
 - namespace IceInternal
 - {
 -=20
 --ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Locator*);
 --ICE_API ::IceProxy::Ice::Object* upCast(::IceProxy::Ice::Router*);
 -=20
 - class LocalExceptionWrapper;
 -=20
 -@@ -1172,7 +1172,7 @@
 -=20
 -     TwowayCallbackNC(const TPtr& instance, bool cb, Exception excb, Sent =
 sentcb) : CallbackNC<T>(instance, excb, sentcb)
 -     {
 --        checkCallback(instance, cb || excb !=3D 0);
 -+        this->checkCallback(instance, cb || excb !=3D 0);
 -     }
 - };
 -=20
 -@@ -1188,7 +1188,7 @@
 -=20
 -     TwowayCallback(const TPtr& instance, bool cb, Exception excb, Sent se=
 ntcb) : Callback<T, CT>(instance, excb, sentcb)
 -     {
 --        checkCallback(instance, cb || excb !=3D 0);
 -+        this->checkCallback(instance, cb || excb !=3D 0);
 -     }
 - };
 -=20
 -@@ -1209,7 +1209,7 @@
 -     OnewayCallbackNC(const TPtr& instance, Response cb, Exception excb, S=
 ent sentcb) :=20
 -         CallbackNC<T>(instance, excb, sentcb), response(cb)
 -     {
 --        checkCallback(instance, cb !=3D 0 || excb !=3D 0);
 -+        this->checkCallback(instance, cb !=3D 0 || excb !=3D 0);
 -     }
 -=20
 -     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
 -@@ -1254,7 +1254,7 @@
 -     OnewayCallback(const TPtr& instance, Response cb, Exception excb, Sen=
 t sentcb) :=20
 -         Callback<T, CT>(instance, excb, sentcb),  response(cb)
 -     {
 --        checkCallback(instance, cb !=3D 0 || excb !=3D 0);
 -+        this->checkCallback(instance, cb !=3D 0 || excb !=3D 0);
 -     }
 -=20
 -     virtual void __completed(const ::Ice::AsyncResultPtr& result) const
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-ProxyF.h ./files/patch-cp=
 p-include-Ice-ProxyF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-ProxyF.h	2012-07-14 15:54:48.00=
 0000000 +0200
 +++ ./files/patch-cpp-include-Ice-ProxyF.h	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,76 +0,0 @@
 ---- cpp.orig/include/Ice/ProxyF.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/ProxyF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -22,6 +22,11 @@
 - {
 -=20
 - class Object;
 -+inline ::IceProxy::Ice::Object*=20
 -+upCast(::IceProxy::Ice::Object* o)
 -+{
 -+    return o;
 -+}
 -=20
 - }
 -=20
 -@@ -34,6 +39,11 @@
 - {
 -=20
 - class Object;
 -+inline ::IceDelegate::Ice::Object*
 -+upCast(::IceDelegate::Ice::Object* o)
 -+{
 -+    return o;
 -+}
 -=20
 - }
 -=20
 -@@ -47,6 +57,12 @@
 -=20
 - class Object;
 -=20
 -+inline ::IceDelegateM::Ice::Object*
 -+upCast(::IceDelegateM::Ice::Object* o)
 -+{
 -+    return o;
 -+}
 -+
 - }
 -=20
 - }
 -@@ -58,36 +74,12 @@
 - {
 -=20
 - class Object;
 --
 --}
 --
 --}
 --
 --namespace IceInternal
 --{
 --
 --inline ::IceProxy::Ice::Object*=20
 --upCast(::IceProxy::Ice::Object* o)
 --{
 --    return o;
 --}
 --
 --inline ::IceDelegate::Ice::Object*
 --upCast(::IceDelegate::Ice::Object* o)
 --{
 --    return o;
 --}
 --
 - inline ::IceDelegateD::Ice::Object*
 - upCast(::IceDelegateD::Ice::Object* o)
 - {
 -     return o;
 - }
 -=20
 --inline ::IceDelegateM::Ice::Object*
 --upCast(::IceDelegateM::Ice::Object* o)
 --{
 --    return o;
 - }
 -=20
 - }
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-Stream.h ./files/patch-cp=
 p-include-Ice-Stream.h
 --- ../ice.orig/files/patch-cpp-include-Ice-Stream.h	2012-09-23 16:45:33.00=
 0000000 +0200
 +++ ./files/patch-cpp-include-Ice-Stream.h	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,90 +0,0 @@
 ---- cpp.orig/include/Ice/Stream.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/Stream.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -17,6 +17,12 @@
 - #include <Ice/Proxy.h>
 - #include <IceUtil/Shared.h>
 -=20
 -+namespace IceInternal
 -+{
 -+    // Forward declaration required for writer specializations.
 -+    void delegateThrowMarshalException(const char*, int, const ::std::str=
 ing&);
 -+}
 -+
 - namespace Ice
 - {
 -    =20
 -@@ -45,9 +51,6 @@
 -     StreamTraitTypeUnknown
 - };
 -=20
 --// Forward declaration required for writer specializations.
 --class MarshalException;
 --
 - //
 - // Base trait template. This doesn't actually do anything -- we just
 - // use it as a template that we can specialize.
 -@@ -542,7 +545,7 @@
 -     {
 -         if(static_cast<int>(v) < 0 || static_cast<int>(v) >=3D StreamTrai=
 t<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         outS->write(static_cast<Byte>(v));
 -     }
 -@@ -558,7 +561,7 @@
 -         inS->read(val);
 -         if(val > StreamTrait<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         v =3D static_cast<T>(val);
 -     }
 -@@ -573,7 +576,7 @@
 -     {
 -         if(static_cast<int>(v) < 0 || static_cast<int>(v) >=3D StreamTrai=
 t<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         outS->write(static_cast<Short>(v));
 -     }
 -@@ -589,7 +592,7 @@
 -         inS->read(val);
 -         if(val < 0 || val > StreamTrait<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         v =3D static_cast<T>(val);
 -     }
 -@@ -603,7 +606,7 @@
 -     {
 -         if(static_cast<int>(v) < 0 || static_cast<int>(v) >=3D StreamTrai=
 t<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         outS->write(static_cast<Int>(v));
 -     }
 -@@ -619,7 +622,7 @@
 -         inS->read(val);
 -         if(val < 0 || val > StreamTrait<T>::enumLimit)
 -         {
 --            throw MarshalException(__FILE__, __LINE__, "enumerator out of=
  range");
 -+            IceInternal::delegateThrowMarshalException(__FILE__, __LINE__=
 , "enumerator out of range");
 -         }
 -         v =3D 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 =3D v.begin(); p !=3D v.end(); +=
 +p)
 -         {
 --            outS->write(*p);
 -+            outS->write(static_cast<bool>(*p));
 -         }
 -     }
 - };
 diff -ruN ../ice.orig/files/patch-cpp-include-Ice-StreamF.h ./files/patch-c=
 pp-include-Ice-StreamF.h
 --- ../ice.orig/files/patch-cpp-include-Ice-StreamF.h	2012-07-14 15:54:48.0=
 00000000 +0200
 +++ ./files/patch-cpp-include-Ice-StreamF.h	1970-01-01 01:00:00.000000000 +=
 0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/include/Ice/StreamF.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/Ice/StreamF.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -19,12 +19,6 @@
 -=20
 - class InputStream;
 - class OutputStream;
 --
 --}
 --
 --namespace IceInternal
 --{
 --
 - ICE_API IceUtil::Shared* upCast(::Ice::InputStream*);
 - ICE_API IceUtil::Shared* upCast(::Ice::OutputStream*);
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h ./files/patch=
 -cpp-include-IceUtil-Cache.h
 --- ../ice.orig/files/patch-cpp-include-IceUtil-Cache.h	2012-09-23 16:45:33=
 .000000000 +0200
 +++ ./files/patch-cpp-include-IceUtil-Cache.h	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,10 +0,0 @@
 ---- 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:
 -     {
 -     }
 -    =20
 --    virtual ~Cache()
 -+    virtual ~Cache() ICE_NOEXCEPT_FALSE
 -     {
 -     }
 diff -ruN ../ice.orig/files/patch-cpp-include-IceUtil-Config.h ./files/patc=
 h-cpp-include-IceUtil-Config.h
 --- ../ice.orig/files/patch-cpp-include-IceUtil-Config.h	2012-09-23 16:45:3=
 3.000000000 +0200
 +++ ./files/patch-cpp-include-IceUtil-Config.h	2013-05-20 04:19:22.00000000=
 0 +0200
 @@ -1,19 +1,11 @@
 ---- 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
 -=20
 +--- cpp.orig/include/IceUtil/Config.h	2013-03-11 15:19:46.000000000 +0000
 ++++ cpp/include/IceUtil/Config.h	2013-05-20 02:09:58.239194578 +0000
 +@@ -51,7 +51,7 @@
 + // Check for C++ 11 support
 + //
 + #if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ =3D=3D 4 && __GNUC_M=
 INOR__ >=3D 5)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \
 +-    (defined(__clang__) && (__clang_major__ >=3D 4) && __cplusplus >=3D 2=
 01103) || \
 ++    (defined(__clang__) && ((defined(__APPLE__) && __clang_major__ >=3D 4=
 ) || (!defined(__APPLE__) && __clang_major__ >=3D 3)) && __cplusplus >=3D 2=
 01103) || \
 +     (defined(_MSC_VER) && (_MSC_VER >=3D 1600))
 + #   define ICE_CPP11
   #endif
 -+
 -+
 -+//
 -+// Macro used for declaring destructors that might throw - required for C=
 ++11
 -+//
 -+#if __cplusplus >=3D 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 -ruN ../ice.orig/files/patch-cpp-include-IceUtil-Mutex.h ./files/patch=
 -cpp-include-IceUtil-Mutex.h
 --- ../ice.orig/files/patch-cpp-include-IceUtil-Mutex.h	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-include-IceUtil-Mutex.h	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/include/IceUtil/Mutex.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/include/IceUtil/Mutex.h	2012-03-04 20:14:52.000000000 +0100
 -@@ -251,8 +251,11 @@
 - inline
 - Mutex::~Mutex()
 - {
 -+#ifndef NDEBUG
 -     int rc =3D 0;
 --    rc =3D pthread_mutex_destroy(&_mutex);
 -+    rc =3D=20
 -+#endif   =20
 -+    pthread_mutex_destroy(&_mutex);
 -     assert(rc =3D=3D 0);
 - }
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h ./files/patc=
 h-cpp-include-IceUtil-Shared.h
 --- ../ice.orig/files/patch-cpp-include-IceUtil-Shared.h	2012-09-23 16:45:3=
 3.000000000 +0200
 +++ ./files/patch-cpp-include-IceUtil-Shared.h	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,72 +0,0 @@
 ---- 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
 -+// =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 -+//
 -+// A non thread-safe base class for reference-counted types - destructor =
 might throw.
 -+//
 - // IceUtil::Shared
 - // =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 - //
 -@@ -109,6 +114,57 @@ private:
 -     bool _noDelete;
 - };
 -=20
 -+class ICE_UTIL_API SimpleSharedUnsafeDestructor
 -+{
 -+public:
 -+
 -+    SimpleSharedUnsafeDestructor();
 -+    SimpleSharedUnsafeDestructor(const SimpleSharedUnsafeDestructor&);
 -+
 -+    virtual ~SimpleSharedUnsafeDestructor() ICE_NOEXCEPT_FALSE
 -+    {
 -+    }
 -+
 -+    SimpleSharedUnsafeDestructor& operator=3D(const SimpleSharedUnsafeDes=
 tructor&)
 -+    {
 -+        return *this;
 -+    }
 -+
 -+    void __incRef()
 -+    {
 -+        assert(_ref >=3D 0);
 -+        ++_ref;
 -+    }
 -+
 -+    void __decRef()
 -+    {
 -+        assert(_ref > 0);
 -+        if(--_ref =3D=3D 0)
 -+        {
 -+            if(!_noDelete)
 -+            {
 -+                _noDelete =3D true;
 -+                delete this;
 -+            }
 -+        }
 -+    }
 -+
 -+    int __getRef() const
 -+    {
 -+        return _ref;
 -+    }
 -+
 -+    void __setNoDelete(bool b)
 -+    {
 -+        _noDelete =3D b;
 -+    }
 -+
 -+private:
 -+
 -+    int _ref;
 -+    bool _noDelete;
 -+};
 -+
 - class ICE_UTIL_API Shared
 - {
 - public:
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp ./files/patch-cp=
 p-src-Freeze-MapDb.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-MapDb.cpp	2012-09-23 16:45:33.00=
 0000000 +0200
 +++ ./files/patch-cpp-src-Freeze-MapDb.cpp	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,29 +0,0 @@
 ---- cpp.orig/src/Freeze/MapDb.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ 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 =3D=20
 - #endif
 --                    _indices.insert(IndexMap::value_type(indexBase->name(=
 ), indexI.get())).second;
 -+                    _indices.insert(IndexMap::value_type(indexBase->name(=
 ), indexI.get()))
 -+#ifndef NDEBUG                   =20
 -+                    .second
 -+#endif
 -+                ;
 -                 assert(inserted);
 -                =20
 -                 indexBase->_impl =3D indexI.release();
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-MapI.cpp ./files/patch-cpp=
 -src-Freeze-MapI.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-MapI.cpp	2012-07-14 15:54:48.000=
 000000 +0200
 +++ ./files/patch-cpp-src-Freeze-MapI.cpp	1970-01-01 01:00:00.000000000 +01=
 00
 @@ -1,41 +0,0 @@
 ---- cpp.orig/src/Freeze/MapI.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Freeze/MapI.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -749,8 +749,11 @@
 -=20
 -     try
 -     {
 -+#ifndef NDEBUG
 -         int err;
 --        err =3D _dbc->put(&dbKey, &dbValue, DB_CURRENT);
 -+        err =3D=20
 -+#endif
 -+        _dbc->put(&dbKey, &dbValue, DB_CURRENT);
 -         assert(err =3D=3D 0);
 -     }
 -     catch(const ::DbDeadlockException& dx)
 -@@ -1023,7 +1026,11 @@
 - #ifndef NDEBUG
 -         bool inserted =3D
 - #endif=20
 --            _indices.insert(IndexMap::value_type(indexBase->name(), index=
 Base)).second;
 -+            _indices.insert(IndexMap::value_type(indexBase->name(), index=
 Base))
 -+#ifndef NDEBUG
 -+            .second
 -+#endif
 -+            ;
 -         assert(inserted);
 -         indexBase->_map =3D this;
 -     }
 -@@ -1360,8 +1367,11 @@
 -         try
 -         {
 -             u_int32_t count;
 -+#ifndef NDEBUG
 -             int err;
 --            err =3D _db->truncate(txn, &count, txn !=3D 0 ? 0 : DB_AUTO_C=
 OMMIT);
 -+            err =3D=20
 -+#endif           =20
 -+            _db->truncate(txn, &count, txn !=3D 0 ? 0 : DB_AUTO_COMMIT);
 -             assert(err =3D=3D 0);
 -             break;
 -         }
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-MapI.h ./files/patch-cpp-s=
 rc-Freeze-MapI.h
 --- ../ice.orig/files/patch-cpp-src-Freeze-MapI.h	2012-09-23 16:45:33.00000=
 0000 +0200
 +++ ./files/patch-cpp-src-Freeze-MapI.h	1970-01-01 01:00:00.000000000 +0100
 @@ -1,18 +0,0 @@
 ---- 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();
 -=20
 --    class Tx : public IceUtil::SimpleShared
 -+    class Tx : public IceUtil::SimpleSharedUnsafeDestructor
 -     {
 -     public:
 -=20
 -         Tx(const MapHelperI&);
 --        ~Tx();
 -+        ~Tx() ICE_NOEXCEPT_FALSE;
 -+        ;
 -=20
 -         void dead();
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp ./files/pa=
 tch-cpp-src-Freeze-ObjectStore.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.cpp	2012-09-23 16:45=
 :33.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-ObjectStore.cpp	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,11 +0,0 @@
 ---- 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
 -     }
 - }
 -=20
 --Freeze::ObjectStoreBase::~ObjectStoreBase()
 -+Freeze::ObjectStoreBase::~ObjectStoreBase() ICE_NOEXCEPT_FALSE
 - {
 -     try
 -     {
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h ./files/patc=
 h-cpp-src-Freeze-ObjectStore.h
 --- ../ice.orig/files/patch-cpp-src-Freeze-ObjectStore.h	2012-09-23 16:45:3=
 3.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-ObjectStore.h	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,11 +0,0 @@
 ---- 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, Evictor=
 IBase*,=20
 -                     const std::vector<IndexPtr>&, bool);
 -=20
 --    virtual ~ObjectStoreBase();
 -+    virtual ~ObjectStoreBase() ICE_NOEXCEPT_FALSE;
 -=20
 -     const Ice::ObjectPtr& sampleServant() const;
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-SharedDbEnv.cpp ./files/pa=
 tch-cpp-src-Freeze-SharedDbEnv.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-SharedDbEnv.cpp	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-SharedDbEnv.cpp	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/src/Freeze/SharedDbEnv.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Freeze/SharedDbEnv.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -336,8 +336,11 @@
 -         // Remove from map
 -         //
 -     =20
 -+#ifndef NDEBUG
 -         size_t one;
 --        one =3D sharedDbEnvMap->erase(key);
 -+        one =3D=20
 -+#endif
 -+        sharedDbEnvMap->erase(key);
 -         assert(one =3D=3D 1);
 -=20
 -         if(sharedDbEnvMap->size() =3D=3D 0)
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContex=
 t.cpp ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	=
 2012-09-23 16:45:33.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.cpp	1970-01-01=
  01:00:00.000000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Freeze/TransactionalEvictorContext.cpp	2011-06-15 21:43:5=
 8.000000000 +0200
 -+++ cpp/src/Freeze/TransactionalEvictorContext.cpp	2012-09-10 11:43:58.000=
 000000 +0200
 -@@ -273,7 +273,7 @@ Freeze::TransactionalEvictorContext::ServantHolder::Se=
 rvantHolder() :
 - }
 -=20
 -=20
 --Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder()
 -+Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder() ICE_=
 NOEXCEPT_FALSE
 - {
 -     if(_ownBody && _body.ownServant)
 -     {
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContex=
 t.h ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h
 --- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	20=
 12-09-23 16:45:33.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-TransactionalEvictorContext.h	1970-01-01 0=
 1:00:00.000000000 +0100
 @@ -1,11 +0,0 @@
 ---- 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.00000=
 0000 +0200
 -@@ -34,7 +34,7 @@ public:
 -     public:
 -        =20
 -         ServantHolder();
 --        ~ServantHolder();
 -+        ~ServantHolder() ICE_NOEXCEPT_FALSE;
 -=20
 -         void init(const TransactionalEvictorContextPtr&, const Ice::Curre=
 nt&, ObjectStore<TransactionalEvictorElement>*);
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp =
 ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp
 --- ../ice.orig/files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	2012-0=
 9-23 16:45:33.000000000 +0200
 +++ ./files/patch-cpp-src-Freeze-TransactionalEvictorI.cpp	1970-01-01 01:00=
 :00.000000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Freeze/TransactionalEvictorI.cpp	2011-06-15 21:43:58.0000=
 00000 +0200
 -+++ cpp/src/Freeze/TransactionalEvictorI.cpp	2012-09-10 11:43:58.000000000=
  +0200
 -@@ -346,7 +346,7 @@ Freeze::TransactionalEvictorI::dispatch(Request& reque=
 st)
 -         {
 -         }
 -        =20
 --        ~CtxHolder()
 -+        ~CtxHolder() ICE_NOEXCEPT_FALSE
 -         {
 -             if(_ownCtx)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.cpp ./files/pat=
 ch-cpp-src-Glacier2-Blobject.cpp
 --- ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.cpp	2012-07-14 15:54:=
 48.000000000 +0200
 +++ ./files/patch-cpp-src-Glacier2-Blobject.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,18 +0,0 @@
 ---- cpp.orig/src/Glacier2/Blobject.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Glacier2/Blobject.cpp	2012-03-04 19:39:27.000000000 +0100
 -@@ -171,6 +171,15 @@
 - }
 -=20
 - void
 -+Glacier2::Blobject::destroy()
 -+{
 -+    if(_requestQueue)
 -+    {
 -+        _requestQueue->destroy();
 -+    }
 -+}
 -+
 -+void
 - Glacier2::Blobject::invoke(ObjectPrx& proxy, const AMD_Object_ice_invokeP=
 tr& amdCB,=20
 -                            const std::pair<const Ice::Byte*, const Ice::B=
 yte*>& inParams, const Current& current)
 - {
 diff -ruN ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.h ./files/patch=
 -cpp-src-Glacier2-Blobject.h
 --- ../ice.orig/files/patch-cpp-src-Glacier2-Blobject.h	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-src-Glacier2-Blobject.h	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Glacier2/Blobject.h	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Glacier2/Blobject.h	2012-03-04 19:39:27.000000000 +0100
 -@@ -24,6 +24,8 @@
 -     Blobject(const InstancePtr&, const Ice::ConnectionPtr&, const Ice::Co=
 ntext&);
 -     virtual ~Blobject();
 -=20
 -+    void destroy();
 -+
 - protected:
 -=20
 -     void invoke(Ice::ObjectPrx&, const Ice::AMD_Object_ice_invokePtr&,=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.cpp ./files=
 /patch-cpp-src-Glacier2-RequestQueue.cpp
 --- ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.cpp	2012-07-14 15=
 :54:48.000000000 +0200
 +++ ./files/patch-cpp-src-Glacier2-RequestQueue.cpp	1970-01-01 01:00:00.000=
 000000 +0100
 @@ -1,74 +0,0 @@
 ---- cpp.orig/src/Glacier2/RequestQueue.cpp	2011-06-15 21:43:58.000000000 +=
 0200
 -+++ cpp/src/Glacier2/RequestQueue.cpp	2012-03-04 19:39:27.000000000 +0100
 -@@ -185,7 +185,8 @@
 -     _callback(newCallback_Object_ice_invoke(this, &RequestQueue::response=
 , &RequestQueue::exception,
 -                                             &RequestQueue::sent)),
 -     _flushCallback(newCallback_Connection_flushBatchRequests(this, &Reque=
 stQueue::exception, &RequestQueue::sent)),
 --    _pendingSend(false)
 -+    _pendingSend(false),
 -+    _destroyed(false)
 - {
 - }
 -=20
 -@@ -241,6 +242,37 @@
 - }
 -=20
 - void
 -+Glacier2::RequestQueue::destroy()
 -+{
 -+    IceUtil::Mutex::Lock lock(*this);
 -+
 -+    _destroyed =3D true;
 -+
 -+    //
 -+    // Although the session has been destroyed, we cannot destroy this qu=
 eue
 -+    // until all requests have completed.
 -+    //
 -+    if(_requests.empty())
 -+    {
 -+        destroyInternal();
 -+    }
 -+}
 -+
 -+void
 -+Glacier2::RequestQueue::destroyInternal()
 -+{
 -+    //
 -+    // Must be called with the mutex locked.
 -+    //
 -+
 -+    //
 -+    // Remove cyclic references.
 -+    //
 -+    const_cast<Ice::Callback_Object_ice_invokePtr&>(_callback) =3D 0;
 -+    const_cast<Ice::Callback_Connection_flushBatchRequestsPtr&>(_flushCal=
 lback) =3D 0;
 -+}
 -+
 -+void
 - Glacier2::RequestQueue::flush()
 - {
 -     assert(_connection);
 -@@ -289,6 +321,11 @@
 -             _pendingSendRequest =3D 0;
 -         }
 -     }
 -+
 -+    if(_destroyed && _requests.empty())
 -+    {
 -+        destroyInternal();
 -+    }
 - }
 -=20
 - void
 -@@ -312,6 +349,11 @@
 -         }
 -     }
 -     _requests.clear();
 -+
 -+    if(_destroyed)
 -+    {
 -+        destroyInternal();
 -+    }
 - }
 -=20
 - void
 diff -ruN ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.h ./files/p=
 atch-cpp-src-Glacier2-RequestQueue.h
 --- ../ice.orig/files/patch-cpp-src-Glacier2-RequestQueue.h	2012-07-14 15:5=
 4:48.000000000 +0200
 +++ ./files/patch-cpp-src-Glacier2-RequestQueue.h	1970-01-01 01:00:00.00000=
 0000 +0100
 @@ -1,23 +0,0 @@
 ---- cpp.orig/src/Glacier2/RequestQueue.h	2011-06-15 21:43:58.000000000 +02=
 00
 -+++ cpp/src/Glacier2/RequestQueue.h	2012-03-04 19:39:27.000000000 +0100
 -@@ -65,8 +65,12 @@
 -     bool addRequest(const RequestPtr&);
 -     void flushRequests(std::set<Ice::ObjectPrx>&);
 -=20
 -+    void destroy();
 -+
 - private:
 -=20
 -+    void destroyInternal();
 -+
 -     void flush();
 -     void flush(std::set<Ice::ObjectPrx>&);
 -=20
 -@@ -83,6 +87,7 @@
 -     std::deque<RequestPtr> _requests;
 -     bool _pendingSend;
 -     RequestPtr _pendingSendRequest;
 -+    bool _destroyed;
 - };
 - typedef IceUtil::Handle<RequestQueue> RequestQueuePtr;
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Glacier2-RouterI.cpp ./files/patc=
 h-cpp-src-Glacier2-RouterI.cpp
 --- ../ice.orig/files/patch-cpp-src-Glacier2-RouterI.cpp	2012-07-14 15:54:4=
 8.000000000 +0200
 +++ ./files/patch-cpp-src-Glacier2-RouterI.cpp	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/src/Glacier2/RouterI.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Glacier2/RouterI.cpp	2012-03-04 19:39:27.000000000 +0100
 -@@ -98,6 +98,12 @@
 -             _session->destroy_async(amiCB);
 -         }
 -     }
 -+
 -+    _clientBlobject->destroy();
 -+    if(_serverBlobject)
 -+    {
 -+        _serverBlobject->destroy();
 -+    }
 - }
 -=20
 - ObjectPrx
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-.depend ./files/patch-cpp-src=
 -Ice-.depend
 --- ../ice.orig/files/patch-cpp-src-Ice-.depend	1970-01-01 01:00:00.0000000=
 00 +0100
 +++ ./files/patch-cpp-src-Ice-.depend	2013-05-22 04:23:27.000000000 +0200
 @@ -0,0 +1,8 @@
 +--- cpp.orig/src/Ice/.depend	2013-05-21 00:29:56.146194325 +0000
 ++++ cpp/src/Ice/.depend	2013-05-21 00:42:56.956197313 +0000
 +@@ -1,5 +1,5 @@
 +-Acceptor$(OBJEXT): Acceptor.cpp ../Ice/Acceptor.h $(includedir)/IceUtil/S=
 hared.h $(includedir)/IceUtil/Config.h ../Ice/AcceptorF.h $(includedir)/Ice=
 /Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h =
 $(includedir)/Ice/Config.h ../Ice/TransceiverF.h ../Ice/Network.h $(include=
 dir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ProxyHa=
 ndle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Exception.h $(included=
 ir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/LocalObject.=
 h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(incl=
 udedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir=
 )/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/L=
 oggerF.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/Version.h $(include=
 dir)/Ice/EndpointTypes.h
 ++Acceptor$(OBJEXT): Acceptor.cpp ../Ice/Acceptor.h $(includedir)/IceUtil/S=
 hared.h $(includedir)/IceUtil/Config.h ../Ice/AcceptorF.h $(includedir)/Ice=
 /Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h =
 $(includedir)/Ice/Config.h ../Ice/TransceiverF.h ../Ice/Network.h $(include=
 dir)/Ice/CommunicatorF.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/=
 ObjectFactoryF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/ObjectAdap=
 terF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ProxyF.h $(include=
 dir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Except=
 ion.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedir)/=
 Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Stream=
 Helpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterato=
 r.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(i=
 ncludedir)/Ice/LoggerF.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/Ver=
 sion.h $(includedir)/Ice/EndpointTypes.h
 + Application$(OBJEXT): Application.cpp $(includedir)/Ice/Application.h $(i=
 ncludedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initi=
 alize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(incl=
 udedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/Proxy=
 Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $=
 (includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exc=
 eption.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(includedi=
 r)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Str=
 eamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iter=
 ator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h =
 $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)=
 /Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Instrumentation=
 F.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includ=
 edir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/Bu=
 iltinSequences.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/FactoryT=
 able.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(include=
 dir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/I=
 ceUtil/MutexProtocol.h $(includedir)/Ice/UserExceptionFactory.h $(includedi=
 r)/Ice/ObjectFactoryF.h $(includedir)/Ice/Version.h $(includedir)/Ice/Local=
 Exception.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Properties.h $(i=
 ncludedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/=
 ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/Endpoi=
 ntIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(in=
 cludedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)=
 /Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/=
 Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(inclu=
 dedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)=
 /Ice/Current.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Object.h $=
 (includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ic=
 e/IncomingAsyncF.h $(includedir)/Ice/ObjectFactoryManagerF.h $(includedir)/=
 Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $=
 (includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(inc=
 ludedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/Serv=
 antLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Incomin=
 gAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir=
 )/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator=
 .h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/I=
 ce/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Communi=
 catorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdap=
 ter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedi=
 r)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Pr=
 ocess.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h =
 $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(include=
 dir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Loc=
 ator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/ProcessF.h $(=
 includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(included=
 ir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Ser=
 vice.h $(includedir)/Ice/IconvStringConverter.h ../Ice/LoggerI.h $(included=
 ir)/IceUtil/FileUtil.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/I=
 ceUtil/ArgVector.h ../Ice/GC.h
 + Base64$(OBJEXT): Base64.cpp ../Ice/Base64.h $(includedir)/Ice/Config.h $(=
 includedir)/IceUtil/Config.h
 + Buffer$(OBJEXT): Buffer.cpp $(includedir)/Ice/Buffer.h $(includedir)/Ice/=
 Config.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/LocalException.h =
 $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice=
 /ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Excepti=
 on.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/I=
 ce/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/StreamF.h $(inc=
 ludedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/I=
 ce/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUti=
 l/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/Identity.h =
 $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Version.h $(includedir=
 )/Ice/BuiltinSequences.h
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-ConnectionI.cpp ./files/patch=
 -cpp-src-Ice-ConnectionI.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-ConnectionI.cpp	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-src-Ice-ConnectionI.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,27 +0,0 @@
 ---- cpp.orig/src/Ice/ConnectionI.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/ConnectionI.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -31,7 +31,7 @@
 - using namespace Ice;
 - using namespace IceInternal;
 -=20
 --Ice::LocalObject* IceInternal::upCast(ConnectionI* p) { return p; }
 -+Ice::LocalObject* Ice::upCast(ConnectionI* p) { return p; }
 -=20
 - namespace
 - {
 -@@ -600,6 +600,7 @@
 -     }
 -     catch(const LocalException& ex)
 -     {
 -+        status =3D IceInternal::AsyncStatusQueued; // this is only to ape=
 ace the compiler
 -         setState(StateClosed, ex);
 -         assert(_exception.get());
 -         _exception->ice_throw();
 -@@ -971,6 +972,7 @@
 -     }
 -     catch(const Ice::LocalException& ex)
 -     {
 -+        status =3D IceInternal::AsyncStatusQueued; // this is only to ape=
 ace the compiler
 -         setState(StateClosed, ex);
 -         assert(_exception.get());
 -         _exception->ice_throw();
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-IncomingAsync.cpp ./files/pat=
 ch-cpp-src-Ice-IncomingAsync.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-IncomingAsync.cpp	2012-07-14 15:54:=
 48.000000000 +0200
 +++ ./files/patch-cpp-src-Ice-IncomingAsync.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Ice/IncomingAsync.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/IncomingAsync.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -24,7 +24,7 @@
 - using namespace IceInternal;
 -=20
 - IceUtil::Shared* IceInternal::upCast(IncomingAsync* p) { return p; }
 --IceUtil::Shared* IceInternal::upCast(AMD_Object_ice_invoke* p) { return p=
 ; }
 -+IceUtil::Shared* Ice::upCast(AMD_Object_ice_invoke* p) { return p; }
 -=20
 - namespace
 - {
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-LocalObject.cpp ./files/patch=
 -cpp-src-Ice-LocalObject.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-LocalObject.cpp	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-src-Ice-LocalObject.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Ice/LocalObject.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/LocalObject.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -13,7 +13,7 @@
 - using namespace Ice;
 - using namespace IceInternal;
 -=20
 --IceUtil::Shared* IceInternal::upCast(LocalObject* obj) { return obj; }
 -+IceUtil::Shared* Ice::upCast(LocalObject* obj) { return obj; }
 -=20
 - bool
 - Ice::LocalObject::operator=3D=3D(const LocalObject& r) const
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-Network.cpp ./files/patch-cpp=
 -src-Ice-Network.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-Network.cpp	2012-09-23 16:45:33.000=
 000000 +0200
 +++ ./files/patch-cpp-src-Ice-Network.cpp	2013-05-20 00:56:41.000000000 +02=
 00
 @@ -1,6 +1,6 @@
 ---- cpp.orig/src/Ice/Network.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/Network.cpp	2012-09-10 11:43:58.000000000 +0200
 -@@ -715,7 +715,11 @@
 +--- cpp.orig/src/Ice/Network.cpp	2013-03-11 15:19:46.000000000 +0000
 ++++ cpp/src/Ice/Network.cpp	2013-05-19 22:55:40.257195813 +0000
 +@@ -936,7 +936,11 @@
       WSASetLastError(error);
   #else
       int error =3D errno;
 @@ -13,12 +13,3 @@
       {
           SocketException ex(__FILE__, __LINE__);
           ex.error =3D getSocketErrno();
 -@@ -1098,7 +1098,7 @@ IceInternal::doBind(SOCKET fd, const struct sockaddr=
 _storage& addr)
 -         size =3D 0; // Keep the compiler happy.
 -     }
 -=20
 --    if(bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) =
 =3D=3D SOCKET_ERROR)
 -+    if(::bind(fd, reinterpret_cast<const struct sockaddr*>(&addr), size) =
 =3D=3D SOCKET_ERROR)
 -     {
 -         closeSocketNoThrow(fd);
 -         SocketException ex(__FILE__, __LINE__);
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-Object.cpp ./files/patch-cpp-=
 src-Ice-Object.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-Object.cpp	2012-07-14 15:54:48.0000=
 00000 +0200
 +++ ./files/patch-cpp-src-Ice-Object.cpp	1970-01-01 01:00:00.000000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Ice/Object.cpp	2011-06-15 21:43:58.000000000 +0200
 -+++ cpp/src/Ice/Object.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -19,7 +19,7 @@
 - using namespace Ice;
 - using namespace IceInternal;
 -=20
 --IceUtil::Shared* IceInternal::upCast(Object* p) { return p; }
 -+IceUtil::Shared* Ice::upCast(Object* p) { return p; }
 -=20
 - bool
 - Ice::Object::operator=3D=3D(const Object& r) const
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-OutgoingAsync.cpp ./files/pat=
 ch-cpp-src-Ice-OutgoingAsync.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-OutgoingAsync.cpp	2012-07-14 15:54:=
 48.000000000 +0200
 +++ ./files/patch-cpp-src-Ice-OutgoingAsync.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Ice/OutgoingAsync.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Ice/OutgoingAsync.cpp	2012-03-04 20:14:52.000000000 +0100
 -@@ -30,7 +30,7 @@
 - using namespace Ice;
 - using namespace IceInternal;
 -=20
 --IceUtil::Shared* IceInternal::upCast(AsyncResult* p) { return p; }
 -+IceUtil::Shared* Ice::upCast(AsyncResult* p) { return p; }
 -=20
 - IceUtil::Shared* IceInternal::upCast(OutgoingAsyncMessageCallback* p) { r=
 eturn p; }
 - IceUtil::Shared* IceInternal::upCast(OutgoingAsync* p) { return p; }
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.cpp ./files/pat=
 ch-cpp-src-Ice-PropertyNames.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.cpp	2012-07-14 15:54:=
 48.000000000 +0200
 +++ ./files/patch-cpp-src-Ice-PropertyNames.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,20 +0,0 @@
 ---- cpp.orig/src/Ice/PropertyNames.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Ice/PropertyNames.cpp	2012-03-04 19:55:44.000000000 +0100
 -@@ -8,7 +8,7 @@
 - // **********************************************************************
 -=20
 - //
 --// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon M=
 ay 09 07:39:43 2011
 -+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue J=
 ul 12 07:22:34 2011
 -=20
 - // IMPORTANT: Do not edit this file -- any edits made here will be lost!
 -=20
 -@@ -335,6 +335,8 @@
 -     IceInternal::Property("IceGrid.Registry.PermissionsVerifier", false, =
 0),
 -     IceInternal::Property("IceGrid.Registry.ReplicaName", false, 0),
 -     IceInternal::Property("IceGrid.Registry.ReplicaSessionTimeout", false=
 , 0),
 -+    IceInternal::Property("IceGrid.Registry.RequireNodeCertCN", false, 0),
 -+    IceInternal::Property("IceGrid.Registry.RequireReplicaCertCN", false,=
  0),
 -     IceInternal::Property("IceGrid.Registry.Server.ACM", false, 0),
 -     IceInternal::Property("IceGrid.Registry.Server.AdapterId", false, 0),
 -     IceInternal::Property("IceGrid.Registry.Server.Endpoints", false, 0),
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.h ./files/patch=
 -cpp-src-Ice-PropertyNames.h
 --- ../ice.orig/files/patch-cpp-src-Ice-PropertyNames.h	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-src-Ice-PropertyNames.h	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/Ice/PropertyNames.h	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Ice/PropertyNames.h	2012-03-04 19:55:44.000000000 +0100
 -@@ -8,7 +8,7 @@
 - // **********************************************************************
 -=20
 - //
 --// Generated by makeprops.py from file ..\config\PropertyNames.xml, Mon M=
 ay 09 07:39:43 2011
 -+// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue J=
 ul 12 07:22:34 2011
 -=20
 - // IMPORTANT: Do not edit this file -- any edits made here will be lost!
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-Service.cpp ./files/patch-cpp=
 -src-Ice-Service.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-Service.cpp	2012-07-14 15:54:48.000=
 000000 +0200
 +++ ./files/patch-cpp-src-Ice-Service.cpp	1970-01-01 01:00:00.000000000 +01=
 00
 @@ -1,32 +0,0 @@
 ---- cpp.orig/src/Ice/Service.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Ice/Service.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -2136,17 +2136,26 @@
 -             //
 -             // Associate stdin, stdout and stderr with /dev/null.
 -             //
 -+#ifndef NDEBUG
 -             int fd;
 --            fd =3D open("/dev/null", O_RDWR);
 -+            fd =3D=20
 -+#endif
 -+            open("/dev/null", O_RDWR);
 -             assert(fd =3D=3D 0);
 -             if(stdOut.empty())
 -             {
 --                fd =3D dup2(0, 1);
 -+#ifndef NDEBUG
 -+                fd =3D=20
 -+#endif
 -+                dup2(0, 1);
 -                 assert(fd =3D=3D 1);
 -             }
 -             if(stdErr.empty())
 -             {
 --                fd =3D dup2(1, 2);
 -+#ifndef NDEBUG
 -+                fd =3D=20
 -+#endif
 -+                dup2(1, 2);
 -                 assert(fd =3D=3D 2);
 -             }
 -         }
 diff -ruN ../ice.orig/files/patch-cpp-src-Ice-Stream.cpp ./files/patch-cpp-=
 src-Ice-Stream.cpp
 --- ../ice.orig/files/patch-cpp-src-Ice-Stream.cpp	2012-07-14 15:54:48.0000=
 00000 +0200
 +++ ./files/patch-cpp-src-Ice-Stream.cpp	1970-01-01 01:00:00.000000000 +0100
 @@ -1,24 +0,0 @@
 ---- cpp.orig/src/Ice/Stream.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Ice/Stream.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -8,10 +8,19 @@
 - // **********************************************************************
 -=20
 - #include <Ice/Stream.h>
 -+#include <Ice/LocalException.h>
 -=20
 - using namespace std;
 - using namespace Ice;
 - using namespace IceInternal;
 -=20
 --IceUtil::Shared* IceInternal::upCast(InputStream* p) { return p; }
 --IceUtil::Shared* IceInternal::upCast(OutputStream* p) { return p; }
 -+IceUtil::Shared* Ice::upCast(InputStream* p) { return p; }
 -+IceUtil::Shared* Ice::upCast(OutputStream* p) { return p; }
 -+
 -+namespace IceInternal
 -+{
 -+  void delegateThrowMarshalException(const char* file, int line , const :=
 :std::string& message)
 -+  {
 -+    throw Ice::MarshalException(file, line, message);
 -+  }
 -+}
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp .=
 /files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp	2012-07=
 -14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-AdminCallbackRouter.cpp	1970-01-01 01:00:=
 00.000000000 +0100
 @@ -1,16 +0,0 @@
 ---- cpp.orig/src/IceGrid/AdminCallbackRouter.cpp	2011-06-15 21:43:59.00000=
 0000 +0200
 -+++ cpp/src/IceGrid/AdminCallbackRouter.cpp	2012-03-04 20:14:53.000000000 =
 +0100
 -@@ -49,7 +49,12 @@
 - #ifndef NDEBUG
 -     bool inserted =3D
 - #endif
 --        _categoryToConnection.insert(map<string, ConnectionPtr>::value_ty=
 pe(category, con)).second;
 -+        _categoryToConnection.insert(map<string, ConnectionPtr>::value_ty=
 pe(category, con))
 -+#ifndef NDEBUG
 -+        .second
 -+#endif
 -+        ;
 -+
 -    =20
 -     assert(inserted =3D=3D true);
 - }
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp ./fi=
 les/patch-cpp-src-IceGrid-DescriptorHelper.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-DescriptorHelper.cpp	2012-07-14=
  15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-DescriptorHelper.cpp	1970-01-01 01:00:00.=
 000000000 +0100
 @@ -1,35 +0,0 @@
 ---- cpp.orig/src/IceGrid/DescriptorHelper.cpp	2011-06-15 21:43:59.00000000=
 0 +0200
 -+++ cpp/src/IceGrid/DescriptorHelper.cpp	2012-03-04 20:14:53.000000000 +01=
 00
 -@@ -198,15 +198,6 @@
 -     return result;
 - }
 -=20
 --template<typename Dict> Dict
 --getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
 --{
 --#if defined(_MSC_VER) && (_MSC_VER < 1300)
 --    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_t=
 ype>());
 --#else
 --    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict:=
 :mapped_type>());
 --#endif
 --}
 -=20
 - template<typename EqFunc, typename Dict> Dict
 - getDictUpdatedEltsWithEq(const Dict& ldict, const Dict& rdict, EqFunc eq)
 -@@ -223,6 +214,16 @@
 -     return result;
 - }
 -=20
 -+template<typename Dict> Dict
 -+getDictUpdatedElts(const Dict& ldict, const Dict& rdict)
 -+{
 -+#if defined(_MSC_VER) && (_MSC_VER < 1300)
 -+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<Dict::mapped_t=
 ype>());
 -+#else
 -+    return getDictUpdatedEltsWithEq(ldict, rdict, equal_to<typename Dict:=
 :mapped_type>());
 -+#endif
 -+}
 -+
 - template <typename Dict> Ice::StringSeq
 - getDictRemovedElts(const Dict& ldict, const Dict& rdict)
 - {
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp ./files/pat=
 ch-cpp-src-IceGrid-FileCache.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-FileCache.cpp	2012-09-23 16:45:=
 33.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-FileCache.cpp	2013-06-01 19:51:46.0000000=
 00 +0200
 @@ -1,20 +1,16 @@
 ---- 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
 -=20
 -         totalSize +=3D lineSize;
 -         lines.push_back(line);
 --#if defined(_MSC_VER) && (_MSC_VER < 1300)
 +--- cpp.orig/src/IceGrid/FileCache.cpp	2013-03-11 15:19:12.271195149 +0000
 ++++ cpp/src/IceGrid/FileCache.cpp	2013-06-01 17:47:48.636196265 +0000
 +@@ -195,11 +195,11 @@
 +         // Some eofbit cases will also set failbit. So first
 +         // check eof.
 +         //
  -        if(is.eof())
 -+       =20
  +        if(is.eof() || is.fail())
           {
               newOffset +=3D line.size();
           }
 -         else
 --#else
 --        if(!is.fail())
 --#endif
 +-        else if(!is.fail())
 ++        else
           {
               newOffset =3D is.tellg();
           }
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-Internal.ice ./files/patc=
 h-cpp-src-IceGrid-Internal.ice
 --- ../ice.orig/files/patch-cpp-src-IceGrid-Internal.ice	2012-07-14 15:54:4=
 8.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-Internal.ice	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,20 +0,0 @@
 ---- cpp.orig/src/IceGrid/Internal.ice	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceGrid/Internal.ice	2012-03-04 19:55:44.000000000 +0100
 -@@ -702,7 +702,7 @@
 -      *
 -      **/
 -     NodeSession* registerNode(InternalNodeInfo info, Node* prx, LoadInfo =
 loadInf)
 --        throws NodeActiveException;
 -+        throws NodeActiveException, PermissionDeniedException;
 -=20
 -     /**
 -      *
 -@@ -721,7 +721,7 @@
 -      *
 -      **/
 -     ReplicaSession* registerReplica(InternalReplicaInfo info, InternalReg=
 istry* prx)
 --        throws ReplicaActiveException;
 -+        throws ReplicaActiveException, PermissionDeniedException;
 -=20
 -     /**
 -      *
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp ./f=
 iles/patch-cpp-src-IceGrid-InternalRegistryI.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.cpp	2012-07-1=
 4 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-InternalRegistryI.cpp	1970-01-01 01:00:00=
 .000000000 +0100
 @@ -1,136 +0,0 @@
 ---- cpp.orig/src/IceGrid/InternalRegistryI.cpp	2011-06-15 21:43:59.0000000=
 00 +0200
 -+++ cpp/src/IceGrid/InternalRegistryI.cpp	2012-03-04 19:55:44.000000000 +0=
 100
 -@@ -19,6 +19,8 @@
 - #include <IceGrid/ReplicaSessionI.h>
 - #include <IceGrid/ReplicaSessionManager.h>
 - #include <IceGrid/FileCache.h>
 -+#include <IceSSL/IceSSL.h>
 -+#include <IceSSL/RFC2253.h>
 -=20
 - using namespace std;
 - using namespace IceGrid;
 -@@ -38,6 +40,8 @@
 -     Ice::PropertiesPtr properties =3D database->getCommunicator()->getPro=
 perties();
 -     _nodeSessionTimeout =3D properties->getPropertyAsIntWithDefault("IceG=
 rid.Registry.NodeSessionTimeout", 30);
 -     _replicaSessionTimeout =3D properties->getPropertyAsIntWithDefault("I=
 ceGrid.Registry.ReplicaSessionTimeout", 30);
 -+    _requireNodeCertCN =3D properties->getPropertyAsIntWithDefault("IceGr=
 id.Registry.RequireNodeCertCN", 0);
 -+    _requireReplicaCertCN =3D properties->getPropertyAsIntWithDefault("Ic=
 eGrid.Registry.RequireReplicaCertCN", 0);
 - }
 -=20
 - InternalRegistryI::~InternalRegistryI()
 -@@ -50,7 +54,56 @@
 -                                 const LoadInfo& load,=20
 -                                 const Ice::Current& current)
 - {
 --    const Ice::LoggerPtr logger =3D _database->getTraceLevels()->logger;
 -+    const TraceLevelsPtr traceLevels =3D _database->getTraceLevels();
 -+    const Ice::LoggerPtr logger =3D traceLevels->logger;
 -+    if(!info || !node)
 -+    {
 -+        return 0;
 -+    }
 -+
 -+    if(_requireNodeCertCN)
 -+    {
 -+        try
 -+        {
 -+            IceSSL::ConnectionInfoPtr sslConnInfo =3D IceSSL::ConnectionI=
 nfoPtr::dynamicCast(current.con->getInfo());
 -+            if(sslConnInfo)
 -+            {
 -+                if (sslConnInfo->certs.empty() ||
 -+                    !IceSSL::Certificate::decode(sslConnInfo->certs[0])->=
 getSubjectDN().match("CN=3D" + info->name))
 -+                {
 -+                    if(traceLevels->node > 0)
 -+                    {
 -+                        Ice::Trace out(logger, traceLevels->nodeCat);
 -+                        out << "certificate CN doesn't match node name `"=
  << info->name << "'";
 -+                    }
 -+                    throw PermissionDeniedException("certificate CN doesn=
 't match node name `" + info->name + "'");
 -+                }
 -+            }
 -+            else
 -+            {
 -+                if(traceLevels->node > 0)
 -+                {
 -+                    Ice::Trace out(logger, traceLevels->nodeCat);
 -+                    out << "node certificate for `" << info->name << "' i=
 s required to connect to this registry";
 -+                }
 -+                throw PermissionDeniedException("node certificate is requ=
 ired to connect to this registry");
 -+            }
 -+        }
 -+        catch(const PermissionDeniedException& ex)
 -+        {
 -+            throw ex;
 -+        }
 -+        catch(const IceUtil::Exception&)
 -+        {
 -+            if(traceLevels->node > 0)
 -+            {
 -+                Ice::Trace out(logger, traceLevels->nodeCat);
 -+                out << "unexpected exception while verifying certificate =
 for node `" << info->name << "'";
 -+            }
 -+            throw PermissionDeniedException("unable to verify certificate=
  for node `" + info->name + "'");
 -+        }
 -+    }
 -+=20
 -     try
 -     {
 -         NodeSessionIPtr session =3D new NodeSessionI(_database, node, inf=
 o, _nodeSessionTimeout, load);
 -@@ -68,7 +121,56 @@
 -                                    const InternalRegistryPrx& prx,
 -                                    const Ice::Current& current)
 - {
 --    const Ice::LoggerPtr logger =3D _database->getTraceLevels()->logger;
 -+    const TraceLevelsPtr traceLevels =3D _database->getTraceLevels();
 -+    const Ice::LoggerPtr logger =3D traceLevels->logger;
 -+    if(!info || !prx)
 -+    {
 -+        return 0;
 -+    }
 -+
 -+    if(_requireReplicaCertCN)
 -+    {
 -+        try
 -+        {
 -+            IceSSL::ConnectionInfoPtr sslConnInfo =3D IceSSL::ConnectionI=
 nfoPtr::dynamicCast(current.con->getInfo());
 -+            if(sslConnInfo)
 -+            {
 -+                if (sslConnInfo->certs.empty() ||
 -+                    !IceSSL::Certificate::decode(sslConnInfo->certs[0])->=
 getSubjectDN().match("CN=3D" + info->name))
 -+                {
 -+                    if(traceLevels->replica > 0)
 -+                    {
 -+                        Ice::Trace out(logger, traceLevels->replicaCat);
 -+                        out << "certificate CN doesn't match replica name=
  `" << info->name << "'";
 -+                    }
 -+                    throw PermissionDeniedException("certificate CN doesn=
 't match replica name `" + info->name + "'");
 -+                }
 -+            }
 -+            else
 -+            {
 -+                if(traceLevels->replica > 0)
 -+                {
 -+                    Ice::Trace out(logger, traceLevels->replicaCat);
 -+                    out << "replica certificate for `" << info->name << "=
 ' is required to connect to this registry";
 -+                }
 -+                throw PermissionDeniedException("replica certificate is r=
 equired to connect to this registry");
 -+            }
 -+        }
 -+        catch(const PermissionDeniedException& ex)
 -+        {
 -+            throw ex;
 -+        }
 -+        catch(const IceUtil::Exception&)
 -+        {
 -+            if(traceLevels->replica > 0)
 -+            {
 -+                Ice::Trace out(logger, traceLevels->replicaCat);
 -+                out << "unexpected exception while verifying certificate =
 for replica `" << info->name << "'";
 -+            }
 -+            throw PermissionDeniedException("unable to verify certificate=
  for replica `" + info->name + "'");
 -+        }
 -+    }
 -+   =20
 -     try
 -     {
 -         ReplicaSessionIPtr s =3D new ReplicaSessionI(_database, _wellKnow=
 nObjects, info, prx, _replicaSessionTimeout);
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.h ./fil=
 es/patch-cpp-src-IceGrid-InternalRegistryI.h
 --- ../ice.orig/files/patch-cpp-src-IceGrid-InternalRegistryI.h	2012-07-14 =
 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-InternalRegistryI.h	1970-01-01 01:00:00.0=
 00000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceGrid/InternalRegistryI.h	2011-06-15 21:43:59.000000000=
  +0200
 -+++ cpp/src/IceGrid/InternalRegistryI.h	2012-03-04 19:55:44.000000000 +0100
 -@@ -68,6 +68,8 @@
 -     ReplicaSessionManager& _session;
 -     int _nodeSessionTimeout;
 -     int _replicaSessionTimeout;
 -+    bool _requireNodeCertCN;
 -+    bool _requireReplicaCertCN;
 - };
 -    =20
 - };
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp ./=
 files/patch-cpp-src-IceGrid-NodeSessionManager.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-NodeSessionManager.cpp	2012-07-=
 14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-NodeSessionManager.cpp	1970-01-01 01:00:0=
 0.000000000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/src/IceGrid/NodeSessionManager.cpp	2011-06-15 21:43:59.000000=
 000 +0200
 -+++ cpp/src/IceGrid/NodeSessionManager.cpp	2012-03-04 19:55:44.000000000 +=
 0100
 -@@ -110,6 +110,14 @@
 -         }
 -         exception.reset(ex.ice_clone());
 -     }
 -+    catch(const PermissionDeniedException& ex)
 -+    {
 -+        if(traceLevels)
 -+        {=20
 -+            traceLevels->logger->error("connection to the the registry `"=
  + _name + "' was denied:\n" + ex.reason);
 -+        }
 -+        exception.reset(ex.ice_clone());
 -+    }
 -     catch(const Ice::Exception& ex)
 -     {
 -         exception.reset(ex.ice_clone());
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaCache.cpp ./files/=
 patch-cpp-src-IceGrid-ReplicaCache.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaCache.cpp	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-ReplicaCache.cpp	1970-01-01 01:00:00.0000=
 00000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceGrid/ReplicaCache.cpp	2011-06-15 21:43:59.000000000 +0=
 200
 -+++ cpp/src/IceGrid/ReplicaCache.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -40,7 +40,7 @@
 -     Lock sync(*this);
 -    =20
 -     ReplicaEntryPtr entry;
 --    while(entry =3D getImpl(name))
 -+    while((entry =3D getImpl(name)))
 -     {
 -         ReplicaSessionIPtr session =3D entry->getSession();
 -         if(session->isDestroyed())
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp=
  ./files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp
 --- ../ice.orig/files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp	2012-=
 07-14 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-ReplicaSessionManager.cpp	1970-01-01 01:0=
 0:00.000000000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/src/IceGrid/ReplicaSessionManager.cpp	2011-06-15 21:43:59.000=
 000000 +0200
 -+++ cpp/src/IceGrid/ReplicaSessionManager.cpp	2012-03-04 19:55:44.00000000=
 0 +0100
 -@@ -500,6 +500,14 @@
 -         }
 -         exception.reset(ex.ice_clone());
 -     }
 -+    catch(const PermissionDeniedException& ex)
 -+    {
 -+        if(_traceLevels)
 -+        {
 -+            _traceLevels->logger->error("connection to the the registry `=
 " + _name + "' was denied:\n" + ex.reason);
 -+        }
 -+        exception.reset(ex.ice_clone());
 -+    }
 -     catch(const Ice::Exception& ex)
 -     {
 -         exception.reset(ex.ice_clone());
 diff -ruN ../ice.orig/files/patch-cpp-src-IceGrid-SessionI.h ./files/patch-=
 cpp-src-IceGrid-SessionI.h
 --- ../ice.orig/files/patch-cpp-src-IceGrid-SessionI.h	2012-07-14 15:54:48.=
 000000000 +0200
 +++ ./files/patch-cpp-src-IceGrid-SessionI.h	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceGrid/SessionI.h	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceGrid/SessionI.h	2012-03-04 20:14:53.000000000 +0100
 -@@ -35,7 +35,7 @@
 - class SessionI;
 - typedef IceUtil::Handle<SessionI> SessionIPtr;
 -=20
 --class BaseSessionI : virtual Ice::Object, public IceUtil::Mutex
 -+class BaseSessionI : virtual public Ice::Object, public IceUtil::Mutex
 - {
 - public:
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-Instance.cpp ./files/patch=
 -cpp-src-IceSSL-Instance.cpp
 --- ../ice.orig/files/patch-cpp-src-IceSSL-Instance.cpp	2012-07-14 15:54:48=
 .000000000 +0200
 +++ ./files/patch-cpp-src-IceSSL-Instance.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceSSL/Instance.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceSSL/Instance.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -38,7 +38,7 @@
 - using namespace Ice;
 - using namespace IceSSL;
 -=20
 --IceUtil::Shared* IceInternal::upCast(IceSSL::Instance* p) { return p; }
 -+IceUtil::Shared* IceSSL::upCast(IceSSL::Instance* p) { return p; }
 -=20
 - namespace
 - {
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-InstanceF.h ./files/patch-=
 cpp-src-IceSSL-InstanceF.h
 --- ../ice.orig/files/patch-cpp-src-IceSSL-InstanceF.h	2012-07-14 15:54:48.=
 000000000 +0200
 +++ ./files/patch-cpp-src-IceSSL-InstanceF.h	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/src/IceSSL/InstanceF.h	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceSSL/InstanceF.h	2012-03-04 20:14:53.000000000 +0100
 -@@ -18,13 +18,13 @@
 - {
 -=20
 - class Instance;
 -+IceUtil::Shared* upCast(IceSSL::Instance*);
 -=20
 - }
 -=20
 - namespace IceInternal
 - {
 -=20
 --IceUtil::Shared* upCast(IceSSL::Instance*);
 -=20
 - }
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-TrustManager.cpp ./files/p=
 atch-cpp-src-IceSSL-TrustManager.cpp
 --- ../ice.orig/files/patch-cpp-src-IceSSL-TrustManager.cpp	2012-07-14 15:5=
 4:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceSSL-TrustManager.cpp	1970-01-01 01:00:00.00000=
 0000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceSSL/TrustManager.cpp	2011-06-15 21:43:59.000000000 +02=
 00
 -+++ cpp/src/IceSSL/TrustManager.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -20,7 +20,7 @@
 - using namespace std;
 - using namespace IceSSL;
 -=20
 --IceUtil::Shared* IceInternal::upCast(IceSSL::TrustManager* p) { return p;=
  }
 -+IceUtil::Shared* IceSSL::upCast(IceSSL::TrustManager* p) { return p; }
 -=20
 - TrustManager::TrustManager(const Ice::CommunicatorPtr& communicator) :
 -     _communicator(communicator)
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-TrustManagerF.h ./files/pa=
 tch-cpp-src-IceSSL-TrustManagerF.h
 --- ../ice.orig/files/patch-cpp-src-IceSSL-TrustManagerF.h	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-src-IceSSL-TrustManagerF.h	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/src/IceSSL/TrustManagerF.h	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceSSL/TrustManagerF.h	2012-03-04 20:14:53.000000000 +0100
 -@@ -18,13 +18,13 @@
 - {
 -=20
 - class TrustManager;
 -+IceUtil::Shared* upCast(IceSSL::TrustManager*);
 -=20
 - }
 -=20
 - namespace IceInternal
 - {
 -=20
 --IceUtil::Shared* upCast(IceSSL::TrustManager*);
 -=20
 - }
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-Util.cpp ./files/patch-cpp=
 -src-IceSSL-Util.cpp
 --- ../ice.orig/files/patch-cpp-src-IceSSL-Util.cpp	2012-07-14 15:54:48.000=
 000000 +0200
 +++ ./files/patch-cpp-src-IceSSL-Util.cpp	1970-01-01 01:00:00.000000000 +01=
 00
 @@ -1,11 +0,0 @@
 ---- cpp.orig/src/IceSSL/Util.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceSSL/Util.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -175,7 +175,7 @@
 -     return dh;
 - }
 -=20
 --IceUtil::Shared* IceInternal::upCast(IceSSL::DHParams* p) { return p; }
 -+IceUtil::Shared* IceSSL::upCast(IceSSL::DHParams* p) { return p; }
 -=20
 - IceSSL::DHParams::DHParams() :
 -     _dh512(0), _dh1024(0), _dh2048(0), _dh4096(0)
 diff -ruN ../ice.orig/files/patch-cpp-src-IceSSL-UtilF.h ./files/patch-cpp-=
 src-IceSSL-UtilF.h
 --- ../ice.orig/files/patch-cpp-src-IceSSL-UtilF.h	2012-07-14 15:54:48.0000=
 00000 +0200
 +++ ./files/patch-cpp-src-IceSSL-UtilF.h	1970-01-01 01:00:00.000000000 +0100
 @@ -1,17 +0,0 @@
 ---- cpp.orig/src/IceSSL/UtilF.h	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceSSL/UtilF.h	2012-03-04 20:14:53.000000000 +0100
 -@@ -21,13 +21,13 @@
 - {
 -=20
 - class DHParams;
 -+IceUtil::Shared* upCast(IceSSL::DHParams*);
 -=20
 - }
 -=20
 - namespace IceInternal
 - {
 -=20
 --IceUtil::Shared* upCast(IceSSL::DHParams*);
 -=20
 - }
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-IceStorm-NodeI.cpp ./files/patch-=
 cpp-src-IceStorm-NodeI.cpp
 --- ../ice.orig/files/patch-cpp-src-IceStorm-NodeI.cpp	2012-07-14 15:54:48.=
 000000000 +0200
 +++ ./files/patch-cpp-src-IceStorm-NodeI.cpp	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,14 +0,0 @@
 ---- cpp.orig/src/IceStorm/NodeI.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceStorm/NodeI.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -18,11 +18,6 @@
 - namespace
 - {
 -=20
 --bool operator=3D=3D(const GroupNodeInfo& info, int id)
 --{
 --    return info.id =3D=3D id;
 --}
 --
 - class CheckTask : public IceUtil::TimerTask
 - {
 -     const NodeIPtr _node;
 diff -ruN ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h ./files/patch-=
 cpp-src-IceStorm-Replica.h
 --- ../ice.orig/files/patch-cpp-src-IceStorm-Replica.h	2012-09-23 16:45:33.=
 000000000 +0200
 +++ ./files/patch-cpp-src-IceStorm-Replica.h	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,15 +0,0 @@
 ---- 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 =3D Ice::Ob=
 jectPrx());
 -     bool operator<(const GroupNodeInfo& rhs) const;
 -     bool operator=3D=3D(const GroupNodeInfo& rhs) const;
 --    const int id;
 --    const LogUpdate llu;
 --    const Ice::ObjectPrx observer;
 -+    int id;
 -+    LogUpdate llu;
 -+    Ice::ObjectPrx observer;
 - };
 -=20
 - class Replica : virtual public IceUtil::Shared
 diff -ruN ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp ./files/patch=
 -cpp-src-IceStorm-TopicI.cpp
 --- ../ice.orig/files/patch-cpp-src-IceStorm-TopicI.cpp	2012-09-23 16:45:33=
 .000000000 +0200
 +++ ./files/patch-cpp-src-IceStorm-TopicI.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,74 +0,0 @@
 ---- 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::Ob=
 jectPrx& obj)
 -         {
 -             try
 -             {
 --                DatabaseConnectionPtr connection =3D _databaseCache->getC=
 onnection();
 -+                DatabaseConnectionPtr connection =3D _databaseCache->newC=
 onnection();
 -                 TransactionHolder txn(connection);
 -=20
 -                 SubscriberRecordKey key;
 -@@ -703,7 +703,7 @@ TopicImpl::subscribe(const QoS& origQoS, const Ice::Ob=
 jectPrx& obj)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -788,7 +788,7 @@ TopicImpl::subscribeAndGetPublisher(const QoS& qos, co=
 nst Ice::ObjectPrx& obj)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -912,7 +912,7 @@ TopicImpl::link(const TopicPrx& topic, Ice::Int cost)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -1311,7 +1311,7 @@ TopicImpl::observerAddSubscriber(const LogUpdate& ll=
 u, const SubscriberRecord& r
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -1380,7 +1380,7 @@ TopicImpl::observerRemoveSubscriber(const LogUpdate&=
  llu, const Ice::IdentitySeq
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             for(Ice::IdentitySeq::const_iterator id =3D ids.begin(); id !=
 =3D ids.end(); ++id)
 -@@ -1456,7 +1456,7 @@ TopicImpl::destroyInternal(const LogUpdate& origLLU,=
  bool master)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             // Erase all subscriber records and the topic record.
 -@@ -1531,7 +1531,7 @@ TopicImpl::removeSubscribers(const Ice::IdentitySeq&=
  ids)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             for(Ice::IdentitySeq::const_iterator id =3D ids.begin(); id !=
 =3D ids.end(); ++id)
 diff -ruN ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp ./file=
 s/patch-cpp-src-IceStorm-TopicManagerI.cpp
 --- ../ice.orig/files/patch-cpp-src-IceStorm-TopicManagerI.cpp	2012-09-23 1=
 6:45:33.000000000 +0200
 +++ ./files/patch-cpp-src-IceStorm-TopicManagerI.cpp	1970-01-01 01:00:00.00=
 0000000 +0100
 @@ -1,47 +0,0 @@
 ---- 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 =3D _instance->nodeAdapter()->addWithUUID(_syncImpl);
 -         }
 -=20
 --        DatabaseConnectionPtr connection =3D _databaseCache->getConnectio=
 n();
 -+        DatabaseConnectionPtr connection =3D _databaseCache->newConnectio=
 n();
 -=20
 -         // Ensure that the llu counter is present in the log.
 -         LLUWrapperPtr lluWrapper =3D _databaseCache->getLLU(connection);
 -@@ -381,7 +381,7 @@ TopicManagerImpl::create(const string& name)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -486,7 +486,7 @@ TopicManagerImpl::observerInit(const LogUpdate& llu, c=
 onst TopicContentSeq& cont
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             LLUWrapperPtr lluWrapper =3D _databaseCache->getLLU(connectio=
 n);
 -@@ -590,7 +590,7 @@ TopicManagerImpl::observerCreateTopic(const LogUpdate&=
  llu, const string& name)
 -     {
 -         try
 -         {
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             SubscriberRecordKey key;
 -@@ -776,7 +776,7 @@ TopicManagerImpl::initMaster(const set<GroupNodeInfo>&=
  slaves, const LogUpdate&
 -         {
 -             content.clear();
 -=20
 --            DatabaseConnectionPtr connection =3D _databaseCache->getConne=
 ction();
 -+            DatabaseConnectionPtr connection =3D _databaseCache->newConne=
 ction();
 -             TransactionHolder txn(connection);
 -=20
 -             for(map<string, TopicImplPtr>::const_iterator p =3D _topics.b=
 egin(); p !=3D _topics.end(); ++p)
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-Cond.cpp ./files/patch-cp=
 p-src-IceUtil-Cond.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-Cond.cpp	2012-07-14 15:54:48.00=
 0000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-Cond.cpp	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,15 +0,0 @@
 ---- cpp.orig/src/IceUtil/Cond.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceUtil/Cond.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -330,8 +330,11 @@
 -=20
 - IceUtil::Cond::~Cond()
 - {
 -+#ifndef NDEBUG
 -     int rc =3D 0;
 --    rc =3D pthread_cond_destroy(&_cond);
 -+    rc =3D=20
 -+#endif
 -+    pthread_cond_destroy(&_cond);
 -     assert(rc =3D=3D 0);
 - }
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-CountDownLatch.cpp ./file=
 s/patch-cpp-src-IceUtil-CountDownLatch.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-CountDownLatch.cpp	2012-07-14 1=
 5:54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-CountDownLatch.cpp	1970-01-01 01:00:00.00=
 0000000 +0100
 @@ -1,21 +0,0 @@
 ---- cpp.orig/src/IceUtil/CountDownLatch.cpp	2011-06-15 21:43:59.000000000 =
 +0200
 -+++ cpp/src/IceUtil/CountDownLatch.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -44,10 +44,16 @@
 - #ifdef _WIN32
 -     CloseHandle(_event);
 - #else
 -+#ifndef NDEBUG
 -     int rc =3D 0;
 --    rc =3D pthread_mutex_destroy(&_mutex);
 -+    rc =3D=20
 -+#endif
 -+    pthread_mutex_destroy(&_mutex);
 -     assert(rc =3D=3D 0);
 --    rc =3D pthread_cond_destroy(&_cond);
 -+#ifndef NDEBUG
 -+    rc =3D=20
 -+#endif
 -+    pthread_cond_destroy(&_cond);
 -     assert(rc =3D=3D 0);
 - #endif
 - }
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp ./files/=
 patch-cpp-src-IceUtil-CtrlCHandler.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-CtrlCHandler.cpp	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-CtrlCHandler.cpp	1970-01-01 01:00:00.0000=
 00000 +0100
 @@ -1,49 +0,0 @@
 ---- cpp.orig/src/IceUtil/CtrlCHandler.cpp	2011-06-15 21:43:59.000000000 +0=
 200
 -+++ cpp/src/IceUtil/CtrlCHandler.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -219,29 +219,41 @@
 -         sigaddset(&ctrlCLikeSignals, SIGHUP);
 -         sigaddset(&ctrlCLikeSignals, SIGINT);
 -         sigaddset(&ctrlCLikeSignals, SIGTERM);
 --        int rc =3D pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
 -+#ifndef NDEBUG
 -+        int rc =3D=20
 -+#endif       =20
 -+        pthread_sigmask(SIG_BLOCK, &ctrlCLikeSignals, 0);
 -         assert(rc =3D=3D 0);
 -=20
 -         // Joinable thread
 --        rc =3D pthread_create(&_tid, 0, sigwaitThread, 0);
 -+#ifndef NDEBUG
 -+        rc =3D=20
 -+#endif
 -+        pthread_create(&_tid, 0, sigwaitThread, 0);
 -         assert(rc =3D=3D 0);
 -     }
 - }
 -=20
 - CtrlCHandler::~CtrlCHandler()
 - {
 --    int rc =3D pthread_cancel(_tid);
 -+#ifndef NDEBUG
 -+    int rc =3D=20
 -+#endif
 -+    pthread_cancel(_tid);
 -     assert(rc =3D=3D 0);
 - #if defined(__APPLE__)
 -     //
 -     // WORKAROUND: sigwait isn't a cancellation point on MacOS X, see
 -     // comment in sigwaitThread
 -     //
 --    rc =3D pthread_kill(_tid, SIGTERM);
 -+    pthread_kill(_tid, SIGTERM);
 -     //assert(rc =3D=3D 0); For some reaosns, this assert is sometime trig=
 gered
 - #endif
 -     void* status =3D 0;
 --    rc =3D pthread_join(_tid, &status);
 -+#ifndef NDEBUG
 -+    rc =3D=20
 -+#endif
 -+    pthread_join(_tid, &status);
 -     assert(rc =3D=3D 0);
 - #if !defined(__APPLE__)
 -     assert(status =3D=3D PTHREAD_CANCELED);
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-FileUtil.cpp ./files/patc=
 h-cpp-src-IceUtil-FileUtil.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-FileUtil.cpp	2012-07-14 15:54:4=
 8.000000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-FileUtil.cpp	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,13 +0,0 @@
 ---- cpp.orig/src/IceUtil/FileUtil.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceUtil/FileUtil.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -26,6 +26,10 @@
 - #  include <dir.h>
 - #endif
 -=20
 -+#ifdef __FreeBSD__
 -+#  include <unistd.h>
 -+#endif
 -+
 - using namespace std;
 -=20
 - //
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-RecMutex.cpp ./files/patc=
 h-cpp-src-IceUtil-RecMutex.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-RecMutex.cpp	2012-07-14 15:54:4=
 8.000000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-RecMutex.cpp	1970-01-01 01:00:00.00000000=
 0 +0100
 @@ -1,28 +0,0 @@
 ---- cpp.orig/src/IceUtil/RecMutex.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/IceUtil/RecMutex.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -148,8 +148,11 @@
 - IceUtil::RecMutex::~RecMutex()
 - {
 -     assert(_count =3D=3D 0);
 -+#ifndef NDEBUG
 -     int rc =3D 0;
 --    rc =3D pthread_mutex_destroy(&_mutex);
 -+    rc =3D=20
 -+#endif
 -+    pthread_mutex_destroy(&_mutex);
 -     assert(rc =3D=3D 0);
 - }
 -=20
 -@@ -196,8 +199,11 @@
 - {
 -     if(--_count =3D=3D 0)
 -     {
 -+#ifndef NDEBUG
 -         int rc =3D 0; // Prevent warnings when NDEBUG is defined.
 --        rc =3D pthread_mutex_unlock(&_mutex);
 -+        rc =3D=20
 -+#endif
 -+        pthread_mutex_unlock(&_mutex);
 -         assert(rc =3D=3D 0);
 -     }
 - }
 diff -ruN ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp ./files/patch-=
 cpp-src-IceUtil-Shared.cpp
 --- ../ice.orig/files/patch-cpp-src-IceUtil-Shared.cpp	2012-09-23 16:45:33.=
 000000000 +0200
 +++ ./files/patch-cpp-src-IceUtil-Shared.cpp	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,21 +0,0 @@
 ---- 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&=
 ) :
 - {
 - }
 -=20
 -+IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor() :
 -+    _ref(0),
 -+    _noDelete(false)
 -+{
 -+}
 -+
 -+IceUtil::SimpleSharedUnsafeDestructor::SimpleSharedUnsafeDestructor(const=
  SimpleSharedUnsafeDestructor&) :
 -+    _ref(0),
 -+    _noDelete(false)
 -+{
 -+}
 -+
 - IceUtil::Shared::Shared() :
 -     _ref(0),
 -     _noDelete(false)
 diff -ruN ../ice.orig/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp ./files/p=
 atch-cpp-src-Slice-CPlusPlusUtil.cpp
 --- ../ice.orig/files/patch-cpp-src-Slice-CPlusPlusUtil.cpp	2012-07-14 15:5=
 4:48.000000000 +0200
 +++ ./files/patch-cpp-src-Slice-CPlusPlusUtil.cpp	1970-01-01 01:00:00.00000=
 0000 +0100
 @@ -1,20 +0,0 @@
 ---- cpp.orig/src/Slice/CPlusPlusUtil.cpp	2011-06-15 21:43:59.000000000 +02=
 00
 -+++ cpp/src/Slice/CPlusPlusUtil.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -631,7 +631,7 @@
 -         string scope =3D fixKwd(cl->scope());
 -         if(marshal)
 -         {
 --            out << nl << stream << deref << "write(::Ice::ObjectPtr(::Ice=
 Internal::upCast(" << fixedParam=20
 -+            out << nl << stream << deref << "write(::Ice::ObjectPtr(" << =
 scope << "upCast(" << fixedParam=20
 -                 << ".get())));";
 -         }
 -         else
 -@@ -649,7 +649,7 @@
 -         string scope =3D fixKwd(px->_class()->scope());
 -         if(marshal)
 -         {
 --            out << nl << stream << deref << "write(::Ice::ObjectPrx(::Ice=
 Internal::upCast(" << fixedParam=20
 -+            out << nl << stream << deref << "write(::Ice::ObjectPrx(::Ice=
 Proxy" << scope << "upCast(" << fixedParam=20
 -                 << ".get())));";
 -         }
 -         else
 diff -ruN ../ice.orig/files/patch-cpp-src-Slice-FileTracker.cpp ./files/pat=
 ch-cpp-src-Slice-FileTracker.cpp
 --- ../ice.orig/files/patch-cpp-src-Slice-FileTracker.cpp	2012-07-14 15:54:=
 48.000000000 +0200
 +++ ./files/patch-cpp-src-Slice-FileTracker.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,13 +0,0 @@
 ---- cpp.orig/src/Slice/FileTracker.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/Slice/FileTracker.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -17,6 +17,10 @@
 - #   include <direct.h>
 - #endif
 -=20
 -+#ifdef __FreeBSD__
 -+#   include <unistd.h>
 -+#endif
 -+
 - using namespace std;
 -=20
 - Slice::FileException::FileException(const char* file, int line, const str=
 ing& r) :
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2cpp-Gen.cpp ./files/patch-c=
 pp-src-slice2cpp-Gen.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2cpp-Gen.cpp	2012-07-14 15:54:48.0=
 00000000 +0200
 +++ ./files/patch-cpp-src-slice2cpp-Gen.cpp	2013-05-21 02:46:05.000000000 +=
 0200
 @@ -1,111 +1,13 @@
 ---- cpp.orig/src/slice2cpp/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/slice2cpp/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -1944,8 +1944,10 @@
 +--- cpp.orig/src/slice2cpp/Gen.cpp	2013-03-11 15:19:46.000000000 +0000
 ++++ cpp/src/slice2cpp/Gen.cpp	2013-05-20 19:51:48.109197053 +0000
 +@@ -385,6 +385,10 @@
 +         H << "\n#include <Ice/Proxy.h>";
 +         H << "\n#include <Ice/OutgoingAsync.h>";
       }
 -=20
 -     string name =3D fixKwd(p->name());
 -+    string scoped =3D fixKwd(p->scoped());
 -=20
 -     H << sp << nl << "class " << name << ';';
 -+    H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IceProxy"=
  << scoped << "*);";
 - }
 -=20
 - Slice::Gen::ProxyVisitor::ProxyVisitor(Output& h, Output& c, const string=
 & dllExport) :
 -@@ -3691,10 +3693,22 @@
 - Slice::Gen::ObjectDeclVisitor::visitClassDecl(const ClassDeclPtr& p)
 - {
 -     string name =3D fixKwd(p->name());
 -+    string scoped =3D fixKwd(p->scoped());
 -=20
 -     H << sp << nl << "class " << name << ';';
 -     H << nl << "bool operator=3D=3D(const " << name << "&, const " << nam=
 e << "&);";
 -     H << nl << "bool operator<(const " << name << "&, const " << name << =
 "&);";
 -+
 -+    H << sp;
 -+
 -+    if(!p->isLocal())
 ++    else if(p->hasNonLocalClassDecls())
  +    {
 -+        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*=
 );";
 ++        H << "\n#include <Ice/Proxy.h>";
  +    }
 -+    else
 -+    {
 -+        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped =
 << "*);";
 -+    }
 - }
 -=20
 - void
 -@@ -4922,13 +4936,13 @@
 - {
 -     if((BuiltinPtr::dynamicCast(p) && BuiltinPtr::dynamicCast(p)->kind() =
 =3D=3D Builtin::KindObject)
 -        || ClassDeclPtr::dynamicCast(p))
 --    {
 --        C << nl << "if(" << prefix << name << ')';
 -+    {        C << nl << "if(" << prefix << name << ')';
 -         C << sb;
 -         ClassDeclPtr decl =3D ClassDeclPtr::dynamicCast(p);
 -         if(decl)
 -         {
 --            C << nl << "::IceInternal::upCast(" << prefix << name << ".ge=
 t())->__addObject(_c);";
 -+            string scope =3D fixKwd(decl->scope());
 -+            C << nl << scope << "upCast(" << prefix << name << ".get())->=
 __addObject(_c);";
 -         }
 -         else
 -         {
 -@@ -4991,9 +5005,10 @@
 -         ClassDeclPtr decl =3D ClassDeclPtr::dynamicCast(p);
 -         if(decl)
 -         {
 --            C << nl << "if(" << "::IceInternal::upCast(" << prefix << nam=
 e << ".get())->__usesClasses())";
 -+            string scope =3D fixKwd(decl->scope());
 -+            C << nl << "if(" << scope << "upCast(" << prefix << name << "=
 .get())->__usesClasses())";
 -             C << sb;
 --            C << nl << "::IceInternal::upCast(" << prefix << name << ".ge=
 t())->__decRefUnsafe();";
 -+            C << nl << scope << "upCast(" << prefix << name << ".get())->=
 __decRefUnsafe();";
 -             C << nl << prefix << name << ".__clearHandleUnsafe();";
  =20
 -         }
 -@@ -5629,40 +5644,30 @@
 - {
 -     string scoped =3D fixKwd(p->scoped());
 -=20
 --    H << sp;
 --
 --    if(!p->isLocal())
 --    {
 --        H << nl << _dllExport << "::Ice::Object* upCast(" << scoped << "*=
 );";
 --        H << nl << _dllExport << "::IceProxy::Ice::Object* upCast(::IcePr=
 oxy" << scoped << "*);";
 --    }
 --    else
 --    {
 --        H << nl << _dllExport << "::Ice::LocalObject* upCast(" << scoped =
 << "*);";
 --    }
 - }
 -=20
 - bool
 - Slice::Gen::IceInternalVisitor::visitClassDefStart(const ClassDefPtr& p)
 - {
 -     string scoped =3D fixKwd(p->scoped());
 -+    string scope =3D fixKwd(p->scope());
 -=20
 -     C << sp;
 -     if(!p->isLocal())
 +     if(p->hasNonLocalDataOnlyClasses() || p->hasNonLocalExceptions())
       {
 -         C << nl
 - 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
 --	  << "::Ice::Object* IceInternal::upCast(" << scoped << "* p) { return p=
 ; }";
 -+	  << "::Ice::Object* " << scope << "upCast(" << scoped << "* p) { return=
  p; }";
 -         C << nl
 - 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
 --	  << "::IceProxy::Ice::Object* IceInternal::upCast(::IceProxy" << scoped
 -+	  << "::IceProxy::Ice::Object* IceProxy" << scope << "upCast(::IceProxy"=
  << scoped
 -           << "* p) { return p; }";
 -     }
 -     else
 -     {
 -         C << nl
 - 	  << (_dllExport.empty() ? "" : "ICE_DECLSPEC_EXPORT ")
 --	  << "::Ice::LocalObject* IceInternal::upCast(" << scoped << "* p) { ret=
 urn p; }";
 -+	  << "::Ice::LocalObject* " << scope << "upCast(" << scoped << "* p) { r=
 eturn p; }";
 -     }
 -=20
 -     return true;
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp ./files/patch-=
 cpp-src-slice2cpp-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2cpp-Main.cpp	2012-09-23 16:45:33.=
 000000000 +0200
 +++ ./files/patch-cpp-src-slice2cpp-Main.cpp	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -31,13 +31,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -48,7 +48,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -294,7 +294,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2cs-Gen.cpp ./files/patch-cp=
 p-src-slice2cs-Gen.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2cs-Gen.cpp	2012-07-14 15:54:48.00=
 0000000 +0200
 +++ ./files/patch-cpp-src-slice2cs-Gen.cpp	1970-01-01 01:00:00.000000000 +0=
 100
 @@ -1,28 +0,0 @@
 ---- cpp.orig/src/slice2cs/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/slice2cs/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -1281,7 +1281,7 @@
 -         {
 -             _out << value << "F";
 -         }
 --        else if(ep =3D EnumPtr::dynamicCast(type))
 -+        else if((ep =3D EnumPtr::dynamicCast(type)))
 -         {
 -             string enumName =3D fixId(ep->scoped());
 -             string::size_type colon =3D value.rfind(':');
 -@@ -3914,16 +3914,6 @@
 -     ClassDefPtr cl =3D ClassDefPtr::dynamicCast(p->container());
 -     string name =3D fixId(p->name(), DotNet::ICloneable, true);
 -     vector<string> params =3D getParams(p);
 --    bool hasOutParams =3D false;
 --    ParamDeclList paramList =3D p->parameters();
 --    for(ParamDeclList::const_iterator pli =3D paramList.begin(); pli !=3D=
  paramList.end(); ++pli)
 --    {
 --        if((*pli)->isOutParam())
 --        {
 --            hasOutParams =3D true;
 --            break;
 --        }
 --    }
 -=20
 -     _out << sp;
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp ./files/patch-c=
 pp-src-slice2cs-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2cs-Main.cpp	2012-09-23 16:45:33.0=
 00000000 +0200
 +++ ./files/patch-cpp-src-slice2cs-Main.cpp	1970-01-01 01:00:00.000000000 +=
 0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -31,13 +31,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -48,7 +48,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -303,7 +303,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp ./files/pat=
 ch-cpp-src-slice2freeze-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2freeze-Main.cpp	2012-09-23 16:45:=
 33.000000000 +0200
 +++ ./files/patch-cpp-src-slice2freeze-Main.cpp	1970-01-01 01:00:00.0000000=
 00 +0100
 @@ -1,55 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -37,13 +37,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -56,7 +56,7 @@ string ICE_ENCODING_COMPARE =3D "Freeze::IceEncodingComp=
 are";
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -1995,7 +1995,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 -@@ -2042,7 +2042,7 @@ compile(int argc, char* argv[])
 -     u->destroy();
 -=20
 -     {
 --        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -         if(interrupted)
 -         {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp ./files/pa=
 tch-cpp-src-slice2freezej-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2freezej-Main.cpp	2012-09-23 16:45=
 :33.000000000 +0200
 +++ ./files/patch-cpp-src-slice2freezej-Main.cpp	1970-01-01 01:00:00.000000=
 000 +0100
 @@ -1,55 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -35,13 +35,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -52,7 +52,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -1828,7 +1828,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 -@@ -1923,7 +1923,7 @@ compile(int argc, char* argv[])
 -     u->destroy();
 -=20
 -     {
 --        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -         if(interrupted)
 -         {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp ./files/patch=
 -cpp-src-slice2html-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2html-Main.cpp	2012-09-23 16:45:33=
 .000000000 +0200
 +++ ./files/patch-cpp-src-slice2html-Main.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,55 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -33,13 +33,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -50,7 +50,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -254,7 +254,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 -@@ -296,7 +296,7 @@ compile(int argc, char* argv[])
 -     p->destroy();
 -=20
 -     {
 --        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+        IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -         if(interrupted)
 -         {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2java-Gen.cpp ./files/patch-=
 cpp-src-slice2java-Gen.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2java-Gen.cpp	2012-07-14 15:54:48.=
 000000000 +0200
 +++ ./files/patch-cpp-src-slice2java-Gen.cpp	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,20 +0,0 @@
 ---- cpp.orig/src/slice2java/Gen.cpp	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/src/slice2java/Gen.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -1246,7 +1246,7 @@
 -     {
 -         BuiltinPtr bp;
 -         EnumPtr ep;
 --        if(bp =3D BuiltinPtr::dynamicCast(type))
 -+        if((bp =3D BuiltinPtr::dynamicCast(type)))
 -         {
 -             switch(bp->kind())
 -             {
 -@@ -1349,7 +1349,7 @@
 -             }
 -=20
 -         }
 --        else if(ep =3D EnumPtr::dynamicCast(type))
 -+        else if((ep =3D EnumPtr::dynamicCast(type)))
 -         {
 -             string val =3D value;
 -             string::size_type pos =3D val.rfind(':');
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp ./files/patch=
 -cpp-src-slice2java-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2java-Main.cpp	2012-09-23 16:45:33=
 .000000000 +0200
 +++ ./files/patch-cpp-src-slice2java-Main.cpp	1970-01-01 01:00:00.000000000=
  +0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -32,13 +32,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -49,7 +49,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -356,7 +356,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp ./files/patch-=
 cpp-src-slice2php-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2php-Main.cpp	2012-09-23 16:45:33.=
 000000000 +0200
 +++ ./files/patch-cpp-src-slice2php-Main.cpp	1970-01-01 01:00:00.000000000 =
 +0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -1497,13 +1497,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -1514,7 +1514,7 @@ Init init;
 - static void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -1777,7 +1777,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp ./files/patch-c=
 pp-src-slice2py-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2py-Main.cpp	2012-09-23 16:45:33.0=
 00000000 +0200
 +++ ./files/patch-cpp-src-slice2py-Main.cpp	1970-01-01 01:00:00.000000000 +=
 0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -49,13 +49,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -66,7 +66,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -631,7 +631,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp ./files/patch-c=
 pp-src-slice2rb-Main.cpp
 --- ../ice.orig/files/patch-cpp-src-slice2rb-Main.cpp	2012-09-23 16:45:33.0=
 00000000 +0200
 +++ ./files/patch-cpp-src-slice2rb-Main.cpp	1970-01-01 01:00:00.000000000 +=
 0100
 @@ -1,46 +0,0 @@
 ---- 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
 - {
 -=20
 --IceUtil::Mutex* mutex =3D 0;
 -+IceUtil::Mutex* mtx =3D 0;
 - bool interrupted =3D false;
 -=20
 - class Init
 -@@ -48,13 +48,13 @@ public:
 -=20
 -     Init()
 -     {
 --        mutex =3D new IceUtil::Mutex;
 -+        mtx =3D new IceUtil::Mutex;
 -     }
 -=20
 -     ~Init()
 -     {
 --        delete mutex;
 --        mutex =3D 0;
 -+        delete mtx;
 -+        mtx =3D 0;
 -     }
 - };
 -=20
 -@@ -65,7 +65,7 @@ Init init;
 - void
 - interruptedCallback(int signal)
 - {
 --    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+    IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -     interrupted =3D true;
 - }
 -@@ -316,7 +316,7 @@ compile(int argc, char* argv[])
 -         }
 -=20
 -         {
 --            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mutex);
 -+            IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(mtx);
 -=20
 -             if(interrupted)
 -             {
 diff -ruN ../ice.orig/files/patch-cpp-test-Glacier2-ssl-Server.cpp ./files/=
 patch-cpp-test-Glacier2-ssl-Server.cpp
 --- ../ice.orig/files/patch-cpp-test-Glacier2-ssl-Server.cpp	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-test-Glacier2-ssl-Server.cpp	2013-05-20 01:06:16.0000=
 00000 +0200
 @@ -18,15 +18,6 @@
   }
  =20
   }
 -@@ -99,7 +105,7 @@
 -     }
 -=20
 -     virtual void
 --    ice_ping(const Ice::Current& current)
 -+    ice_ping(const Ice::Current& current) const
 -     {
 -         testContext(_ssl, current.ctx);
 -     }
  @@ -133,8 +139,11 @@
       {
           testContext(true, current.ctx);
 diff -ruN ../ice.orig/files/patch-cpp-test-Ice-background-EndpointI.h ./fil=
 es/patch-cpp-test-Ice-background-EndpointI.h
 --- ../ice.orig/files/patch-cpp-test-Ice-background-EndpointI.h	2012-07-14 =
 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-test-Ice-background-EndpointI.h	1970-01-01 01:00:00.0=
 00000000 +0100
 @@ -1,11 +0,0 @@
 ---- cpp.orig/test/Ice/background/EndpointI.h	2011-06-15 21:43:59.000000000=
  +0200
 -+++ cpp/test/Ice/background/EndpointI.h	2012-03-04 20:14:53.000000000 +0100
 -@@ -48,7 +48,7 @@
 -=20
 -     virtual Ice::Int hashInit() const;
 - #if !defined(_MSC_VER) || _MSC_VER > 1300
 --    using IceInternal::EndpointI::connectors;
 -+    using ::IceInternal::EndpointI::connectors;
 - #endif
 -    =20
 - private:
 diff -ruN ../ice.orig/files/patch-cpp-test-Ice-custom-AllTests.cpp ./files/=
 patch-cpp-test-Ice-custom-AllTests.cpp
 --- ../ice.orig/files/patch-cpp-test-Ice-custom-AllTests.cpp	2012-07-14 15:=
 54:48.000000000 +0200
 +++ ./files/patch-cpp-test-Ice-custom-AllTests.cpp	1970-01-01 01:00:00.0000=
 00000 +0100
 @@ -1,32 +0,0 @@
 ---- cpp.orig/test/Ice/custom/AllTests.cpp	2011-06-15 21:43:59.000000000 +0=
 200
 -+++ cpp/test/Ice/custom/AllTests.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -1384,7 +1384,8 @@
 -                        const ::Test::ClassStructSeq& seq,
 -                        const InParamPtr& cookie)
 -     {
 --        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in =3D getI=
 n(in, cookie);
 -+        pair< ::Test::ClassStructPtr, ::Test::ClassStructSeq> in;
 -+        in =3D getIn(in, cookie);
 -         test(ret =3D=3D in.first);
 -         test(cs1 =3D=3D in.first);
 -         test(seq =3D=3D in.second);
 -@@ -1432,7 +1433,8 @@
 -=20
 -     void throwExcept1(const Ice::AsyncResultPtr& result)
 -     {
 --        wstring in =3D getIn(in, InParamPtr::dynamicCast(result->getCooki=
 e()));
 -+        wstring in;
 -+        in =3D getIn(in, InParamPtr::dynamicCast(result->getCookie()));
 -         try
 -         {
 -             Test1::WstringClassPrx t =3D Test1::WstringClassPrx::unchecke=
 dCast(result->getProxy());
 -@@ -1451,7 +1453,8 @@
 -=20
 -     void throwExcept2(const Ice::AsyncResultPtr& result)
 -     {
 --        wstring in =3D getIn(in, InParamPtr::dynamicCast(result->getCooki=
 e()));
 -+        wstring in;
 -+        in =3D getIn(in, InParamPtr::dynamicCast(result->getCookie()));
 -         try
 -         {
 -             Test2::WstringClassPrx t =3D Test2::WstringClassPrx::unchecke=
 dCast(result->getProxy());
 diff -ruN ../ice.orig/files/patch-cpp-test-Ice-metrics-AllTests.cpp ./files=
 /patch-cpp-test-Ice-metrics-AllTests.cpp
 --- ../ice.orig/files/patch-cpp-test-Ice-metrics-AllTests.cpp	1970-01-01 01=
 :00:00.000000000 +0100
 +++ ./files/patch-cpp-test-Ice-metrics-AllTests.cpp	2013-05-20 04:20:07.000=
 000000 +0200
 @@ -0,0 +1,32 @@
 +--- cpp.orig/test/Ice/metrics/AllTests.cpp	2013-03-11 15:19:47.000000000 +=
 0000
 ++++ cpp/test/Ice/metrics/AllTests.cpp	2013-05-20 02:11:00.939194168 +0000
 +@@ -597,9 +597,12 @@
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "inco=
 ming", "false");
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "adap=
 terName", "");
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "conn=
 ectionId", "Con1");
 +-    testAttribute(clientMetrics, clientProps, update, "Connection", "loca=
 lHost", "127.0.0.1");
 ++    if (!inFreeBSDJail())
 ++    {
 ++      testAttribute(clientMetrics, clientProps, update, "Connection", "lo=
 calHost", "127.0.0.1");
 ++      testAttribute(clientMetrics, clientProps, update, "Connection", "re=
 moteHost", "127.0.0.1");
 ++    }
 +     //testAttribute(clientMetrics, clientProps, update, "Connection", "lo=
 calPort", "");
 +-    testAttribute(clientMetrics, clientProps, update, "Connection", "remo=
 teHost", "127.0.0.1");
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "remo=
 tePort", "12010");
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "mcas=
 tHost", "");
 +     testAttribute(clientMetrics, clientProps, update, "Connection", "mcas=
 tPort", "");
 +@@ -814,9 +817,12 @@
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "incomi=
 ng", "true", op);
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "adapte=
 rName", "TestAdapter", op);
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "connec=
 tionId", "", op);
 +-    testAttribute(serverMetrics, serverProps, update, "Dispatch", "localH=
 ost", "127.0.0.1", op);
 ++    if (!inFreeBSDJail())
 ++    {
 ++      testAttribute(serverMetrics, serverProps, update, "Dispatch", "loca=
 lHost", "127.0.0.1", op);
 ++      testAttribute(serverMetrics, serverProps, update, "Dispatch", "remo=
 teHost", "127.0.0.1", op);
 ++    }
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "localP=
 ort", "12010", op);
 +-    testAttribute(serverMetrics, serverProps, update, "Dispatch", "remote=
 Host", "127.0.0.1", op);
 +     //testAttribute(serverMetrics, serverProps, update, "Dispatch", "remo=
 tePort", "12010", op);
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "mcastH=
 ost", "", op);
 +     testAttribute(serverMetrics, serverProps, update, "Dispatch", "mcastP=
 ort", "", op);
 diff -ruN ../ice.orig/files/patch-cpp-test-Ice-properties-run.py ./files/pa=
 tch-cpp-test-Ice-properties-run.py
 --- ../ice.orig/files/patch-cpp-test-Ice-properties-run.py	2012-07-14 15:54=
 :48.000000000 +0200
 +++ ./files/patch-cpp-test-Ice-properties-run.py	2013-06-01 19:52:55.000000=
 000 +0200
 @@ -1,18 +1,29 @@
 ---- cpp.orig/test/Ice/properties/run.py	2011-06-15 21:43:59.000000000 +0200
 -+++ cpp/test/Ice/properties/run.py	2012-03-04 20:14:53.000000000 +0100
 -@@ -26,7 +26,7 @@
 +--- cpp.orig/test/Ice/properties/run.py	2013-03-11 15:19:47.000000000 +0000
 ++++ cpp/test/Ice/properties/run.py	2013-05-21 03:48:13.020195761 +0000
 +@@ -28,15 +28,15 @@
   #
 - # Write config
 - #
 --configPath =3D u"./config/=E4=B8=AD=E5=9B=BD_client.config"
 -+configPath =3D u"./config/=E4=B8=AD=E5=9B=BD_client.config".encode("utf-8=
 ")
 + if sys.version_info[0] =3D=3D 2:
 +     configPath =3D "./config/\xe4\xb8\xad\xe5\x9b\xbd_client.config".deco=
 de("utf-8")
 +-    TestUtil.createConfig(configPath,=20
 ++    TestUtil.createConfig(configPath.encode("utf-8"),=20
 +                           ["# Automatically generated by Ice test driver.=
 ",=20
 +                            "Ice.Trace.Protocol=3D1",
 +                            "Ice.Trace.Network=3D1",=20
 +                            "Ice.ProgramName=3DPropertiesClient",=20
 +-                           "Config.Path=3D./config/=E4=B8=AD=E5=9B=BD_cli=
 ent.config"])
 ++                           "Config.Path=3D" + configPath.encode("utf-8")])
 + else:
 +     configPath =3D "./config/\u4e2d\u56fd_client.config"
 +-    TestUtil.createConfig(configPath,=20
 ++    TestUtil.createConfig(configPath.encode("utf-8"),=20
 +                           ["# Automatically generated by Ice test driver.=
 ",=20
 +                            "Ice.Trace.Protocol=3D1",
 +                            "Ice.Trace.Network=3D1",=20
 +@@ -46,5 +46,5 @@
  =20
 - TestUtil.createConfig(configPath,=20
 -                       ["# Automatically generated by Ice test driver.",=20
 -@@ -38,4 +38,4 @@
   TestUtil.simpleTest(client)
  =20
 - if os.path.exists(configPath):
 +-if os.path.exists(configPath):
  -    os.remove(configPath)
 -\ No newline at end of file
 -+    os.remove(configPath)
 ++if os.path.exists(configPath.encode("utf-8")):
 ++    os.remove(configPath.encode("utf-8"))
 diff -ruN ../ice.orig/files/patch-cpp-test-IceUtil-unicode-Client.cpp ./fil=
 es/patch-cpp-test-IceUtil-unicode-Client.cpp
 --- ../ice.orig/files/patch-cpp-test-IceUtil-unicode-Client.cpp	2012-07-14 =
 15:54:48.000000000 +0200
 +++ ./files/patch-cpp-test-IceUtil-unicode-Client.cpp	1970-01-01 01:00:00.0=
 00000000 +0100
 @@ -1,13 +0,0 @@
 ---- cpp.orig/test/IceUtil/unicode/Client.cpp	2011-06-15 21:43:59.000000000=
  +0200
 -+++ cpp/test/IceUtil/unicode/Client.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -15,6 +15,10 @@
 - #   include <io.h>
 - #endif
 -=20
 -+#ifdef __FreeBSD__
 -+#   include <unistd.h>
 -+#endif
 -+
 - using namespace IceUtil;
 - using namespace std;
 -=20
 diff -ruN ../ice.orig/files/patch-cpp-test-Slice-keyword-Client.cpp ./files=
 /patch-cpp-test-Slice-keyword-Client.cpp
 --- ../ice.orig/files/patch-cpp-test-Slice-keyword-Client.cpp	2012-07-14 15=
 :54:48.000000000 +0200
 +++ ./files/patch-cpp-test-Slice-keyword-Client.cpp	1970-01-01 01:00:00.000=
 000000 +0100
 @@ -1,20 +0,0 @@
 ---- cpp.orig/test/Slice/keyword/Client.cpp	2011-06-15 21:43:59.000000000 +=
 0200
 -+++ cpp/test/Slice/keyword/Client.cpp	2012-03-04 20:14:53.000000000 +0100
 -@@ -73,6 +73,9 @@
 -     virtual void ice_response(Ice::Int)  {}
 -     virtual void ice_exception(const ::Ice::Exception&) {}
 - };
 -+
 -+template<typename T>
 -+void unused(T const &) { }
 -   =20
 - //
 - // This section of the test is present to ensure that the C++ types
 -@@ -86,6 +89,7 @@
 -=20
 -     _cpp_and::_cpp_auto b;
 -     b._cpp_default =3D 0;
 -+    unused(b);
 -=20
 -     _cpp_and::deletePtr c =3D new _cpp_and::_cpp_delete();
 -     c->_cpp_else =3D "";
 diff -ruN ../ice.orig/files/patch-scripts-TestUtil.py ./files/patch-scripts=
 -TestUtil.py
 --- ../ice.orig/files/patch-scripts-TestUtil.py	2012-07-14 15:54:48.0000000=
 00 +0200
 +++ ./files/patch-scripts-TestUtil.py	2013-05-21 02:45:33.000000000 +0200
 @@ -1,6 +1,6 @@
 ---- scripts.orig/TestUtil.py	2011-06-15 21:44:00.000000000 +0200
 -+++ scripts/TestUtil.py	2012-03-04 20:14:53.000000000 +0100
 -@@ -74,6 +74,25 @@
 +--- scripts.orig/TestUtil.py	2013-03-11 15:19:47.000000000 +0000
 ++++ scripts/TestUtil.py	2013-05-21 00:29:37.903194948 +0000
 +@@ -84,6 +84,25 @@
   def isLinux():
       return sys.platform.startswith("linux")
  =20
 @@ -26,19 +26,18 @@
   def getCppCompiler():
       compiler =3D ""
       if os.environ.get("CPP_COMPILER", "") !=3D "":
 -@@ -1590,7 +1609,15 @@
 -             if isDarwin() and "nodarwin" in config:
 -                 print "%s*** test not supported under Darwin%s" % (prefix=
 , suffix)
 +@@ -1846,6 +1865,14 @@
 +                 print("%s*** test not supported under Darwin%s" % (prefix=
 , suffix))
                   continue
 -+
 +=20
  +            if isFreeBSD() and "nofreebsd" in config:
 -+                print "%s*** test not supported under FreeBSD%s" % (prefi=
 x, suffix)
 ++                print("%s*** test not supported under FreeBSD%s" % (prefi=
 x, suffix))
  +                continue
 -            =20
 ++
  +            if isFreeBSDJail() and "nofreebsdjail" in config:
 -+                print "%s*** test not supported within a FreeBSD Jail%s" =
 % (prefix, suffix)
 ++                print("%s*** test not supported within a FreeBSD Jail%s" =
 % (prefix, suffix))
  +                continue
  +
               if not isWin32() and "win32only" in config:
 -                 print "%s*** test only supported under Win32%s" % (prefix=
 , suffix)
 +                 print("%s*** test only supported under Win32%s" % (prefix=
 , suffix))
                   continue
 diff -ruN ../ice.orig/pkg-message ./pkg-message
 --- ../ice.orig/pkg-message	1970-01-01 01:00:00.000000000 +0100
 +++ ./pkg-message	2013-05-20 18:43:50.000000000 +0200
 @@ -0,0 +1,14 @@
 +The default on-the-wire encoding for Ice changed in version 3.5 and IPv6
 +is now enabled by default. ABI versions are not compatible.
 +
 +For details on these and additional changes please read the upgrading
 +instructions available at
 +
 +	http://doc.zeroc.com/x/SQpN
 +
 +For on-the-wire background compatibility add
 +
 +	Ice.IPv6=3D0
 +	Ice.Default.EncodingVersion=3D1.0
 +
 +to your Ice application configuration.
 diff -ruN ../ice.orig/pkg-plist ./pkg-plist
 --- ../ice.orig/pkg-plist	2012-07-14 15:54:48.000000000 +0200
 +++ ./pkg-plist	2013-06-02 23:37:47.000000000 +0200
 @@ -41,12 +41,14 @@
  include/Freeze/TransactionalEvictor.h
  include/Glacier2/Application.h
  include/Glacier2/Glacier2.h
 +include/Glacier2/Metrics.h
  include/Glacier2/PermissionsVerifier.h
  include/Glacier2/PermissionsVerifierF.h
  include/Glacier2/Router.h
  include/Glacier2/RouterF.h
  include/Glacier2/SSLInfo.h
  include/Glacier2/Session.h
 +include/Glacier2/SessionHelper.h
  include/Ice/Application.h
  include/Ice/BasicStream.h
  include/Ice/Buffer.h
 @@ -77,6 +79,7 @@
  include/Ice/FacetMap.h
  include/Ice/FactoryTable.h
  include/Ice/FactoryTableInit.h
 +include/Ice/Format.h
  include/Ice/Functional.h
  include/Ice/GCCountMap.h
  include/Ice/GCShared.h
 @@ -91,6 +94,8 @@
  include/Ice/IncomingAsyncF.h
  include/Ice/Initialize.h
  include/Ice/InstanceF.h
 +include/Ice/Instrumentation.h
 +include/Ice/InstrumentationF.h
  include/Ice/LocalException.h
  include/Ice/LocalObject.h
  include/Ice/LocalObjectF.h
 @@ -99,6 +104,10 @@
  include/Ice/Logger.h
  include/Ice/LoggerF.h
  include/Ice/LoggerUtil.h
 +include/Ice/Metrics.h
 +include/Ice/MetricsAdminI.h
 +include/Ice/MetricsFunctional.h
 +include/Ice/MetricsObserverI.h
  include/Ice/Object.h
  include/Ice/ObjectAdapter.h
  include/Ice/ObjectAdapterF.h
 @@ -106,6 +115,8 @@
  include/Ice/ObjectF.h
  include/Ice/ObjectFactory.h
  include/Ice/ObjectFactoryF.h
 +include/Ice/ObjectFactoryManagerF.h
 +include/Ice/ObserverHelper.h
  include/Ice/Outgoing.h
  include/Ice/OutgoingAsync.h
  include/Ice/OutgoingAsyncF.h
 @@ -114,6 +125,7 @@
  include/Ice/Process.h
  include/Ice/ProcessF.h
  include/Ice/Properties.h
 +include/Ice/PropertiesAdmin.h
  include/Ice/PropertiesF.h
  include/Ice/Protocol.h
  include/Ice/ProtocolPluginFacade.h
 @@ -132,13 +144,17 @@
  include/Ice/Service.h
  include/Ice/SliceChecksumDict.h
  include/Ice/SliceChecksums.h
 +include/Ice/SlicedData.h
 +include/Ice/SlicedDataF.h
  include/Ice/Stats.h
  include/Ice/StatsF.h
  include/Ice/Stream.h
  include/Ice/StreamF.h
 +include/Ice/StreamHelpers.h
  include/Ice/StringConverter.h
  include/Ice/UndefSysMacros.h
  include/Ice/UserExceptionFactory.h
 +include/Ice/Version.h
  include/IceBox/IceBox.h
  include/IceGrid/Admin.h
  include/IceGrid/Descriptor.h
 @@ -160,6 +176,7 @@
  include/IceSSL/IceSSL.h
  include/IceSSL/Plugin.h
  include/IceStorm/IceStorm.h
 +include/IceStorm/Metrics.h
  include/IceUtil/AbstractMutex.h
  include/IceUtil/ArgVector.h
  include/IceUtil/Cache.h
 @@ -181,14 +198,15 @@
  include/IceUtil/MutexProtocol.h
  include/IceUtil/MutexPtrLock.h
  include/IceUtil/MutexPtrTryLock.h
 +include/IceUtil/Optional.h
  include/IceUtil/Options.h
  include/IceUtil/OutputUtil.h
 -include/IceUtil/RWRecMutex.h
  include/IceUtil/Random.h
  include/IceUtil/RecMutex.h
 +include/IceUtil/ScannerConfig.h
  include/IceUtil/ScopedArray.h
  include/IceUtil/Shared.h
 -include/IceUtil/StaticMutex.h
 +include/IceUtil/StopWatch.h
  include/IceUtil/StringUtil.h
  include/IceUtil/Thread.h
  include/IceUtil/ThreadException.h
 @@ -196,6 +214,7 @@
  include/IceUtil/Timer.h
  include/IceUtil/UUID.h
  include/IceUtil/Unicode.h
 +include/IceUtil/UniquePtr.h
  include/IceXML/Parser.h
  include/Slice/CPlusPlusUtil.h
  include/Slice/Checksum.h
 @@ -211,50 +230,50 @@
  include/Slice/Util.h
  lib/ImportKey.class
  lib/libFreeze.so
 -lib/libFreeze.so.3.4.2
 -lib/libFreeze.so.34
 +lib/libFreeze.so.3.5.0
 +lib/libFreeze.so.35
  lib/libGlacier2.so
 -lib/libGlacier2.so.3.4.2
 -lib/libGlacier2.so.34
 +lib/libGlacier2.so.3.5.0
 +lib/libGlacier2.so.35
  lib/libIce.so
 -lib/libIce.so.3.4.2
 -lib/libIce.so.34
 +lib/libIce.so.3.5.0
 +lib/libIce.so.35
  lib/libIceBox.so
 -lib/libIceBox.so.3.4.2
 -lib/libIceBox.so.34
 +lib/libIceBox.so.3.5.0
 +lib/libIceBox.so.35
  lib/libIceDB.so
 -lib/libIceDB.so.3.4.2
 -lib/libIceDB.so.34
 +lib/libIceDB.so.3.5.0
 +lib/libIceDB.so.35
  lib/libIceGrid.so
 -lib/libIceGrid.so.3.4.2
 -lib/libIceGrid.so.34
 +lib/libIceGrid.so.3.5.0
 +lib/libIceGrid.so.35
  lib/libIceGridFreezeDB.so
 -lib/libIceGridFreezeDB.so.3.4.2
 -lib/libIceGridFreezeDB.so.34
 +lib/libIceGridFreezeDB.so.3.5.0
 +lib/libIceGridFreezeDB.so.35
  lib/libIcePatch2.so
 -lib/libIcePatch2.so.3.4.2
 -lib/libIcePatch2.so.34
 +lib/libIcePatch2.so.3.5.0
 +lib/libIcePatch2.so.35
  lib/libIceSSL.so
 -lib/libIceSSL.so.3.4.2
 -lib/libIceSSL.so.34
 +lib/libIceSSL.so.3.5.0
 +lib/libIceSSL.so.35
  lib/libIceStorm.so
 -lib/libIceStorm.so.3.4.2
 -lib/libIceStorm.so.34
 +lib/libIceStorm.so.3.5.0
 +lib/libIceStorm.so.35
  lib/libIceStormFreezeDB.so
 -lib/libIceStormFreezeDB.so.3.4.2
 -lib/libIceStormFreezeDB.so.34
 +lib/libIceStormFreezeDB.so.3.5.0
 +lib/libIceStormFreezeDB.so.35
  lib/libIceStormService.so
 -lib/libIceStormService.so.3.4.2
 -lib/libIceStormService.so.34
 +lib/libIceStormService.so.3.5.0
 +lib/libIceStormService.so.35
  lib/libIceUtil.so
 -lib/libIceUtil.so.3.4.2
 -lib/libIceUtil.so.34
 +lib/libIceUtil.so.3.5.0
 +lib/libIceUtil.so.35
  lib/libIceXML.so
 -lib/libIceXML.so.3.4.2
 -lib/libIceXML.so.34
 +lib/libIceXML.so.3.5.0
 +lib/libIceXML.so.35
  lib/libSlice.so
 -lib/libSlice.so.3.4.2
 -lib/libSlice.so.34
 +lib/libSlice.so.3.5.0
 +lib/libSlice.so.35
  %%DATADIR%%/Freeze/BackgroundSaveEvictor.ice
  %%DATADIR%%/Freeze/CatalogData.ice
  %%DATADIR%%/Freeze/Connection.ice
 @@ -266,6 +285,7 @@
  %%DATADIR%%/Freeze/Exception.ice
  %%DATADIR%%/Freeze/Transaction.ice
  %%DATADIR%%/Freeze/TransactionalEvictor.ice
 +%%DATADIR%%/Glacier2/Metrics.ice
  %%DATADIR%%/Glacier2/PermissionsVerifier.ice
  %%DATADIR%%/Glacier2/PermissionsVerifierF.ice
  %%DATADIR%%/Glacier2/Router.ice
 @@ -286,11 +306,14 @@
  %%DATADIR%%/Ice/Identity.ice
  %%DATADIR%%/Ice/ImplicitContext.ice
  %%DATADIR%%/Ice/ImplicitContextF.ice
 +%%DATADIR%%/Ice/Instrumentation.ice
 +%%DATADIR%%/Ice/InstrumentationF.ice
  %%DATADIR%%/Ice/LocalException.ice
  %%DATADIR%%/Ice/Locator.ice
  %%DATADIR%%/Ice/LocatorF.ice
  %%DATADIR%%/Ice/Logger.ice
  %%DATADIR%%/Ice/LoggerF.ice
 +%%DATADIR%%/Ice/Metrics.ice
  %%DATADIR%%/Ice/ObjectAdapter.ice
  %%DATADIR%%/Ice/ObjectAdapterF.ice
  %%DATADIR%%/Ice/ObjectFactory.ice
 @@ -308,6 +331,7 @@
  %%DATADIR%%/Ice/SliceChecksumDict.ice
  %%DATADIR%%/Ice/Stats.ice
  %%DATADIR%%/Ice/StatsF.ice
 +%%DATADIR%%/Ice/Version.ice
  %%DATADIR%%/IceBox/IceBox.ice
  %%DATADIR%%/IceGrid/Admin.ice
  %%DATADIR%%/IceGrid/Descriptor.ice
 @@ -324,13 +348,16 @@
  %%DATADIR%%/IceSSL/ConnectionInfo.ice
  %%DATADIR%%/IceSSL/EndpointInfo.ice
  %%DATADIR%%/IceStorm/IceStorm.ice
 +%%DATADIR%%/IceStorm/Metrics.ice
  %%DATADIR%%/LICENSE
  %%DATADIR%%/config/convertssl.py
  %%DATADIR%%/config/icegrid-slice.3.1.ice.gz
  %%DATADIR%%/config/icegrid-slice.3.2.ice.gz
  %%DATADIR%%/config/icegrid-slice.3.3.ice.gz
 +%%DATADIR%%/config/icegrid-slice.3.5.ice.gz
  %%DATADIR%%/config/templates.xml
 -%%DATADIR%%/config/upgradeicegrid.py
 +%%DATADIR%%/config/upgradeicegrid33.py
 +%%DATADIR%%/config/upgradeicegrid35.py
  %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/BackgroundSaveEvictor.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/CatalogData.html
 @@ -351,7 +378,6 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/TransactionAlreadyInProgressExcep=
 tion.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Freeze/TransactionalEvictor.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2.html
 -%%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/Admin.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/CannotCreateSessionException.ht=
 ml
  %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/IdentitySet.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Glacier2/PermissionDeniedException.html
 @@ -389,6 +415,7 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/DNSException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/DatagramLimitException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EncapsulationException.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EncodingVersion.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Endpoint.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EndpointInfo.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/EndpointParseException.html
 @@ -407,6 +434,7 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/IllegalMessageSizeException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ImplicitContext.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/InitializationException.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Instrumentation.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/InvalidReplicaGroupIdException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Locator.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/LocatorRegistry.html
 @@ -432,6 +460,7 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/Properties.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/PropertiesAdmin.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProtocolException.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProtocolVersion.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProxyParseException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/ProxyUnmarshalException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/RequestFailedException.html
 @@ -461,6 +490,7 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/UnsupportedEncodingException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/UnsupportedProtocolException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/Ice/VersionMismatchException.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/Ice/VersionParseException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox/AlreadyStartedException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceBox/AlreadyStoppedException.html
 @@ -545,8 +575,20 @@
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/TemplateDescriptor.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/UserAccountMapper.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IceGrid/UserAccountNotFoundException.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/ConnectionMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/DispatchMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/InvocationMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/Metrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/MetricsAdmin.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/MetricsFailures.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/RemoteMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/SessionMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/SubscriberMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/ThreadMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/TopicMetrics.html
 +%%PORTDOCS%%%%DOCSDIR%%/reference/IceMX/UnknownMetricsView.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2.html
 -%%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/Admin.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileAccessException.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileInfo.html
  %%PORTDOCS%%%%DOCSDIR%%/reference/IcePatch2/FileServer.html
 @@ -589,6 +631,7 @@
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceStorm
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceSSL
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IcePatch2
 +%%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceMX
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceGrid
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/IceBox
  %%PORTDOCS%%@dirrm %%DOCSDIR%%/reference/Ice
 
 --MP_/Bhz6HmB4KT7_Ykb_loL/.fC--
Responsible-Changed-From-To: freebsd-ports-bugs->rm 
Responsible-Changed-By: rm 
Responsible-Changed-When: Sun Jun 16 21:20:29 UTC 2013 
Responsible-Changed-Why:  
I will take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=179233 
State-Changed-From-To: open->closed 
State-Changed-By: rm 
State-Changed-When: Mon Jun 17 11:52:34 UTC 2013 
State-Changed-Why:  
Committed, thank you! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=179233 
>Unformatted:
