Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Jun 2013 10:00:01 GMT
From:      Michael Gmelin <freebsd@grem.de>
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/179233: [MAINTAINER] devel/ice: update to 3.5.0
Message-ID:  <201306131000.r5DA01wg063948@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/179233; it has been noted by GNATS.

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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306131000.r5DA01wg063948>