Skip site navigation (1)Skip section navigation (2)
Date:      14 Sep 2012 17:40:11 -0000
From:      Michael Gmelin <freebsd@grem.de>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/171645: [PATCH] devel/py-ice: Allow building using Clang, general overhaul
Message-ID:  <20120914174011.44579.qmail@mail.grem.de>
Resent-Message-ID: <201209141750.q8EHoABc063923@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         171645
>Category:       ports
>Synopsis:       [PATCH] devel/py-ice: Allow building using Clang, general overhaul
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 14 17:50:10 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Michael Gmelin
>Release:        FreeBSD 9.1-RC1 amd64
>Organization:
Grem Equity GmbH
>Environment:
System: FreeBSD clangcompile 9.1-RC1 FreeBSD 9.1-RC1 #1 r240177: Fri Sep  7 14:37:21 UTC 2012
>Description:

Fixes and enhancements:
- The port didn't respect CC, CXX, CXX, therefore building with Clang
  wasn't possible, use Make.rules.FreeBSD from devel/ice, so they work
  the same (also include a sed command form devel/ice). This way they
  should build using exactly the same settings on the same machine
- Make the port use new style options/option dialog. Note that the
  OPTIONSFILE directive is absolutely necessary to make this work, to
  work around a bug in the ports infrastructure
  As part of this the indentation level of Makefile increased, which
  makes the change look bigger than it actually is
- Patches to make Ice python unit tests work correctly, including a
  workaround so they also work when run in a jail
  (see also http://www.zeroc.com/forums/patches/5815-improvements-python-unit-tests-fix-encoding-freebsd-jail-support.html)
- Make the port run python unit tests by default (can be disabled
  using the TESTS option from the menu)
- Remove unnecessary -g flag when building a debug version (ports does
  this anyway, so you would end up using -g -g)
- Silence post-patch commands, as those look really scary (to the user
  they appear as part of the patch phase of the build)
- Compile and install .pyc and .pyo files (using python's compileall.py).
  That's the way most major python ports do it these days.
- Since so many parts of the port had been touched already, I also
  renamed the patches to comply to the naming conventions in the
  Porter's Handbook
  (http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/makefile-distfiles.html#PORTING-PATCHFILES)

I hope this all makes sense, please contact me in case of questions.

Added file(s):
- files/Make.rules.FreeBSD
- files/patch-config-Make.common.rules
- files/patch-py-config-Make.rules
- files/patch-py-python-Makefile
- files/patch-py-test-Ice-info-AllTests.py
- files/patch-py-test-Ice-properties-run.py

Removed file(s):
- files/patch-config+Make.common.rules
- files/patch-cpp+config+Make.rules.FreeBSD
- files/patch-py+config+Make.rules
- files/patch-py+python+Makefile

Generated with FreeBSD Port Tools 0.99_6 (mode: change, diff: suffix)
>How-To-Repeat:
Set CXX=clang++ in make.conf. Try to build. Gcc will be used.

>Fix:
Apply patch.

--- py27-Ice-3.4.2_3.patch begins here ---
diff -ruN --exclude=CVS ../py-ice.orig/Makefile ./Makefile
--- ../py-ice.orig/Makefile	2012-08-22 17:18:15.000000000 +0200
+++ ./Makefile	2012-09-12 02:37:38.254057273 +0200
@@ -5,56 +5,69 @@
 # $FreeBSD: ports/devel/py-ice/Makefile,v 1.20 2012/08/22 15:18:15 jgh Exp $
 #
 
-PORTNAME=	Ice
-PORTVERSION=	3.4.2
-PORTREVISION=	2
-CATEGORIES=	devel python
-MASTER_SITES=	http://download.zeroc.com/Ice/3.4/ \
-		http://www.dirk.sh/dirk/Ice/
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-
-MAINTAINER=	tonymaher@optusnet.com.au
-COMMENT=	An Ice (Internet Communications Engine) language mapping for Python
-
-BUILD_DEPENDS=	mcpp:${PORTSDIR}/devel/mcpp
-LIB_DEPENDS=	Ice.${LIB_VRS}:${PORTSDIR}/devel/ice
-
-USE_GMAKE=	yes
-USE_PYTHON=	yes
-BUILD_WRKSRC=	${WRKSRC}/py
-INSTALL_WRKSRC=	${WRKSRC}/py
-
-LIB_VRS=	${PORTVERSION:S|.||g:C|2$||}
-PLIST_SUB=	LIB_VERSION="${PORTVERSION}" LIB_VRS="${LIB_VRS}"
-MAKE_ENV=	ICE_HOME="${LOCALBASE}/share/Ice"
-
-CFLAGS+=	-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS}
-.if defined(DEBUG)
-CFLAGS+=	-g
-.else
-CFLAGS+=	-DNDEBUG
+PORTNAME=		Ice
+PORTVERSION=		3.4.2
+PORTREVISION=		3
+CATEGORIES=		devel python
+MASTER_SITES=		http://download.zeroc.com/Ice/3.4/ \
+			http://www.dirk.sh/dirk/Ice/
+PKGNAMEPREFIX=		${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=		tonymaher@optusnet.com.au
+COMMENT=		An Ice (Internet Communications Engine) language mapping for Python
+
+BUILD_DEPENDS=		mcpp:${PORTSDIR}/devel/mcpp
+LIB_DEPENDS=		Ice.${LIB_VRS}:${PORTSDIR}/devel/ice
+
+USE_GMAKE=		yes
+USE_PYTHON=		yes
+BUILD_WRKSRC=		${WRKSRC}/py
+INSTALL_WRKSRC=		${WRKSRC}/py
+
+LIB_VRS=		${PORTVERSION:S|.||g:C|2$||}
+PLIST_SUB=		LIB_VERSION="${PORTVERSION}" LIB_VRS="${LIB_VRS}"
+MAKE_ENV=		ICE_HOME="${LOCALBASE}/share/Ice"
+
+OPTIONS_DEFINE=		DEBUG DOCS TESTS
+OPTIONS_DEFAULT=	TESTS
+TESTS_DESC=		Run tests
+
+# bypass infrastructure bug (taken from www/py-django)
+OPTIONSFILE=		${PORT_DBDIR}/py-${PORTNAME}/options
+
+.include <bsd.port.options.mk>
+
+CFLAGS+=		-ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT ${PTHREAD_CFLAGS}
+.if !${PORT_OPTIONS:MDEBUG}
+CFLAGS+=		-DNDEBUG
 .endif
 
-.include <bsd.port.pre.mk>
 .if ${ARCH} == "ia64"
-BROKEN=		does not compile on ia64
+BROKEN=			does not compile on ia64
 .endif
 
 .if ((${ARCH} != i386) && (${ARCH} != powerpc))
-MAKE_ENV=	LP64=yes
+MAKE_ENV=		LP64=yes
 .endif
 
-.if empty(PORT_OPTIONS:MDOCS)
-MAKE_ENV+=	NOPORTDOCS=yes
+.if !${PORT_OPTIONS:MDOCS}
+MAKE_ENV+=		NOPORTDOCS=yes
 .endif
 
 post-patch:
-	${REINPLACE_CMD} 's|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \
+	@${SED} 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g; \
+		s|%%PREFIX%%|${PREFIX}|g; \
+		s|%%DATADIR%%|${DATADIR}|g; \
+		s|%%DOCSDIR%%|${DOCSDIR}|g; \
+		s|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \
+		s|%%INSTALL_DATA%%|${INSTALL_DATA}|g' \
+		${FILESDIR}/Make.rules.FreeBSD > ${WRKSRC}/cpp/config/Make.rules.FreeBSD
+	@${REINPLACE_CMD} 's|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \
 		s|%%INSTALL_DATA%%|${INSTALL_DATA}|g; \
 		s|%%PYTHON_SITELIBDIR%%|${PYTHON_SITELIBDIR}|g; \
 		s|%%PREFIX%%|${PREFIX}|g ; \
 		s|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/py/config/Make.rules
-	${REINPLACE_CMD} 's|.(ice_dir).slice|${DATADIR}|g; \
+	@${REINPLACE_CMD} 's|.(ice_dir).slice|${DATADIR}|g; \
 		s|.(prefix).slice|${DATADIR}|g; \
 		s|.(prefix).[ICE_]*LICENSE|${DATADIR}/LICENSE|g;' \
 		${WRKSRC}/py/config/Make.rules.mak \
@@ -64,4 +77,17 @@
 post-install:
 	${ECHO} "Ice" > ${PYTHON_SITELIBDIR}/Ice.pth
 
-.include <bsd.port.post.mk>
+.if ${PORT_OPTIONS:MTESTS}
+TEST_CMD=		@cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py
+.endif
+
+post-build:
+	@${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py ${WRKSRC}/py/python
+	@${PYTHON_CMD} -O ${PYTHON_LIBDIR}/compileall.py ${WRKSRC}/py/python
+.if ${PORT_OPTIONS:MTESTS}
+	${TEST_CMD}
+regression-test test: build
+	${TEST_CMD}
+.endif
+
+.include <bsd.port.mk>
diff -ruN --exclude=CVS ../py-ice.orig/files/Make.rules.FreeBSD ./files/Make.rules.FreeBSD
--- ../py-ice.orig/files/Make.rules.FreeBSD	1970-01-01 01:00:00.000000000 +0100
+++ ./files/Make.rules.FreeBSD	2012-09-11 20:00:05.000000000 +0200
@@ -0,0 +1,21 @@
+mkshlib                 = $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4)
+
+BASELIBS		= -lIceUtil %%PTHREAD_LIBS%% -L$(LOCALBASE)/lib -liconv
+LIBS			= -lIce $(BASELIBS) 
+
+ICEUTIL_OS_LIBS         = %%PTHREAD_LIBS%%
+
+PLATFORM_HAS_READLINE   := yes
+
+export LD_LIBRARY_PATH	:= $(libdir):$(LD_LIBRARY_PATH)
+
+lp64suffix		=
+create_runpath_symlink	= no
+prefix			= %%PREFIX%%
+install_slicedir	= %%DATADIR%%
+install_configdir	= %%DATADIR%%/config
+install_docdir		= %%DOCSDIR%%
+EXPAT_HOME		= $(LOCALBASE)
+INSTALL			= %%INSTALL_DATA%%
+INSTALL_PROGRAM		= %%INSTALL_PROGRAM%%
+MCPP_HOME		= $(LOCALBASE)
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-config+Make.common.rules ./files/patch-config+Make.common.rules
--- ../py-ice.orig/files/patch-config+Make.common.rules	2010-08-15 14:04:13.000000000 +0200
+++ ./files/patch-config+Make.common.rules	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
---- config/Make.common.rules.orig	2010-07-11 13:40:06.000000000 +1000
-+++ config/Make.common.rules	2010-07-11 13:40:43.000000000 +1000
-@@ -19,7 +19,7 @@
- SHORT_VERSION           = 3.4
- SOVERSION		= 34
- 
--INSTALL			= cp -fp
-+INSTALL			= install
- INSTALL_PROGRAM		= ${INSTALL}
- INSTALL_LIBRARY		= ${INSTALL}
- INSTALL_DATA		= ${INSTALL}
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-config-Make.common.rules ./files/patch-config-Make.common.rules
--- ../py-ice.orig/files/patch-config-Make.common.rules	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-config-Make.common.rules	2010-08-15 14:04:13.000000000 +0200
@@ -0,0 +1,11 @@
+--- config/Make.common.rules.orig	2010-07-11 13:40:06.000000000 +1000
++++ config/Make.common.rules	2010-07-11 13:40:43.000000000 +1000
+@@ -19,7 +19,7 @@
+ SHORT_VERSION           = 3.4
+ SOVERSION		= 34
+ 
+-INSTALL			= cp -fp
++INSTALL			= install
+ INSTALL_PROGRAM		= ${INSTALL}
+ INSTALL_LIBRARY		= ${INSTALL}
+ INSTALL_DATA		= ${INSTALL}
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-cpp+config+Make.rules.FreeBSD ./files/patch-cpp+config+Make.rules.FreeBSD
--- ../py-ice.orig/files/patch-cpp+config+Make.rules.FreeBSD	2010-08-15 14:04:13.000000000 +0200
+++ ./files/patch-cpp+config+Make.rules.FreeBSD	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
---- cpp/config/Make.rules.FreeBSD.orig	2010-07-11 11:00:46.000000000 +1000
-+++ cpp/config/Make.rules.FreeBSD	2010-07-11 11:07:28.000000000 +1000
-@@ -27,7 +27,7 @@
- endif
- 
- ifeq ($(OPTIMIZE),yes)
--    CXXFLAGS		+= -O3 -DNDEBUG
-+    CXXFLAGS		+= -O2 -DNDEBUG
- else
-     CXXFLAGS		+= -g
- endif
-@@ -37,15 +37,15 @@
- #
- CXXLIBS			=
- 
--mkshlib			= $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4) -lc_r
-+mkshlib			= $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4)
- 
- mklib			= ar cr $(1) $(2)
- 
--BASELIBS		= -lIceUtil -lc_r
-+BASELIBS		= -lIceUtil %%PTHREAD_LIBS%%
- LIBS			= -lIce $(BASELIBS)
- 
- ICEUTIL_OS_LIBS		= 
--ICE_OS_LIBS		= 
-+ICE_OS_LIBS		= %%PTHREAD_LIBS%%
- 
- PLATFORM_HAS_READLINE	= yes
- 
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py+config+Make.rules ./files/patch-py+config+Make.rules
--- ../py-ice.orig/files/patch-py+config+Make.rules	2010-08-15 14:04:13.000000000 +0200
+++ ./files/patch-py+config+Make.rules	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
---- py/config/Make.rules.orig	2010-07-11 11:13:30.000000000 +1000
-+++ py/config/Make.rules	2010-07-11 11:18:09.000000000 +1000
-@@ -12,7 +12,8 @@
- # if it does not exist.
- #
- 
--prefix			?= /opt/Ice-$(VERSION)
-+ICE_HOME		= %%LOCALBASE%%
-+prefix			?= %%PREFIX%%
- 
- #
- # The "root directory" for runpath embedded in executables. Can be unset
-@@ -80,8 +81,8 @@
- endif
- 
- libdir			= $(top_srcdir)/python
--install_pythondir	= $(prefix)/python
--install_libdir		= $(prefix)/python
-+install_pythondir	= %%PYTHON_SITELIBDIR%%/Ice
-+install_libdir		= %%PYTHON_SITELIBDIR%%/Ice
- 
- #
- # Platform specific definitions
-@@ -105,7 +106,7 @@
-     ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
-     ICE_FLAGS	= -I$(ice_dir)/include
- endif
--ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
-+ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil -liconv
- 
- ifneq ($(embedded_runpath_prefix),)
-    runpath_libdir	:= $(embedded_runpath_prefix)/$(libsubdir)
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py+python+Makefile ./files/patch-py+python+Makefile
--- ../py-ice.orig/files/patch-py+python+Makefile	2010-08-15 14:04:13.000000000 +0200
+++ ./files/patch-py+python+Makefile	1970-01-01 01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
---- py/python/Makefile.orig	2010-07-11 13:05:38.000000000 +1000
-+++ py/python/Makefile	2010-07-11 13:09:09.000000000 +1000
-@@ -121,7 +121,8 @@
- 	$(INSTALL_DATA) *.py $(install_pythondir)
- 	@for i in $(PACKAGES) ; \
- 	do \
--	    $(INSTALL_DATA) -r $$i $(install_pythondir) ; \
-+	    $(INSTALL_DATA) -d $(install_pythondir)/$$i ; \
-+	    $(INSTALL_DATA) $$i/*.py $(install_pythondir)/$$i ; \
- 	done
- 
- depend::  $(ICE_SLICE) $(GLACIER2_SLICE) $(ICEBOX_SLICE) $(ICEGRID_SLICE) $(ICEPATCH2_SLICE) $(ICESTORM_SLICE)
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py-config-Make.rules ./files/patch-py-config-Make.rules
--- ../py-ice.orig/files/patch-py-config-Make.rules	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-py-config-Make.rules	2010-08-15 14:04:13.000000000 +0200
@@ -0,0 +1,32 @@
+--- py/config/Make.rules.orig	2010-07-11 11:13:30.000000000 +1000
++++ py/config/Make.rules	2010-07-11 11:18:09.000000000 +1000
+@@ -12,7 +12,8 @@
+ # if it does not exist.
+ #
+ 
+-prefix			?= /opt/Ice-$(VERSION)
++ICE_HOME		= %%LOCALBASE%%
++prefix			?= %%PREFIX%%
+ 
+ #
+ # The "root directory" for runpath embedded in executables. Can be unset
+@@ -80,8 +81,8 @@
+ endif
+ 
+ libdir			= $(top_srcdir)/python
+-install_pythondir	= $(prefix)/python
+-install_libdir		= $(prefix)/python
++install_pythondir	= %%PYTHON_SITELIBDIR%%/Ice
++install_libdir		= %%PYTHON_SITELIBDIR%%/Ice
+ 
+ #
+ # Platform specific definitions
+@@ -105,7 +106,7 @@
+     ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
+     ICE_FLAGS	= -I$(ice_dir)/include
+ endif
+-ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
++ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil -liconv
+ 
+ ifneq ($(embedded_runpath_prefix),)
+    runpath_libdir	:= $(embedded_runpath_prefix)/$(libsubdir)
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py-python-Makefile ./files/patch-py-python-Makefile
--- ../py-ice.orig/files/patch-py-python-Makefile	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-py-python-Makefile	2012-09-11 23:05:59.000000000 +0200
@@ -0,0 +1,16 @@
+--- py/python/Makefile.orig	2010-07-11 13:05:38.000000000 +1000
++++ py/python/Makefile	2012-09-11 00:09:09.000000000 +2000
+@@ -118,10 +118,11 @@
+ 
+ install:: $(ALL_SRCS)
+ 	@echo "Installing generated code"
+-	$(INSTALL_DATA) *.py $(install_pythondir)
++	$(INSTALL_DATA) *.py* $(install_pythondir)
+ 	@for i in $(PACKAGES) ; \
+ 	do \
+-	    $(INSTALL_DATA) -r $$i $(install_pythondir) ; \
++	    $(INSTALL_DATA) -d $(install_pythondir)/$$i ; \
++	    $(INSTALL_DATA) $$i/*.py* $(install_pythondir)/$$i ; \
+ 	done
+ 
+ depend::  $(ICE_SLICE) $(GLACIER2_SLICE) $(ICEBOX_SLICE) $(ICEGRID_SLICE) $(ICEPATCH2_SLICE) $(ICESTORM_SLICE)
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py-test-Ice-info-AllTests.py ./files/patch-py-test-Ice-info-AllTests.py
--- ../py-ice.orig/files/patch-py-test-Ice-info-AllTests.py	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-py-test-Ice-info-AllTests.py	2012-09-11 21:23:47.000000000 +0200
@@ -0,0 +1,79 @@
+--- py/test/Ice/info/AllTests.py.orig	2011-06-15 19:44:00.000000000 +0000
++++ py/test/Ice/info/AllTests.py	2012-09-11 19:18:30.188273390 +0000
+@@ -7,12 +7,31 @@
+ #
+ # **********************************************************************
+ 
+-import Ice, Test, threading
++import Ice, Test, threading, sys, subprocess
+ 
+ def test(b):
+     if not b:
+         raise RuntimeError('test assertion failed')
+ 
++def isFreeBSD():
++    return sys.platform.startswith("freebsd")
++
++def sysctl(key):
++    p = subprocess.Popen("sysctl "+key, shell=1, stdout=subprocess.PIPE)
++    try:
++        result = p.communicate()[0].strip().split()[1]
++    except IndexError:
++        return 0    
++    if sys.version_info >= (3,):
++        result = str(result, sys.stdout.encoding)
++    try:
++        return int(result)
++    except ValueError:
++        return result
++
++def isFreeBSDJail():
++    return isFreeBSD() and sysctl("security.jail.jailed")
++
+ def allTests(communicator, collocated):
+     print "testing proxy endpoint information...",
+ 
+@@ -64,12 +83,12 @@
+ 
+     ipEndpoint = endpoints[0].getInfo()
+     test(ipEndpoint.type() == Ice.TCPEndpointType or ipEndpoint.type() == 2)
+-    test(ipEndpoint.host == defaultHost)
++    test(ipEndpoint.host == defaultHost or isFreeBSDJail())
+     test(ipEndpoint.port > 0)
+     test(ipEndpoint.timeout == 15000)
+ 
+     udpEndpoint = endpoints[1].getInfo()
+-    test(udpEndpoint.host == defaultHost)
++    test(udpEndpoint.host == defaultHost or isFreeBSDJail())
+     test(udpEndpoint.datagram())
+     test(udpEndpoint.port > 0)
+ 
+@@ -104,7 +123,7 @@
+     ipinfo = base.ice_getConnection().getEndpoint().getInfo()
+     test(ipinfo.port == 12010)
+     test(not ipinfo.compress)
+-    test(ipinfo.host == defaultHost)
++    test(ipinfo.host == defaultHost or isFreeBSDJail())
+ 
+     ctx = testIntf.getEndpointInfoAsContext()
+     test(ctx["host"] == ipinfo.host)
+@@ -114,7 +133,7 @@
+ 
+     udp = base.ice_datagram().ice_getConnection().getEndpoint().getInfo()
+     test(udp.port == 12010)
+-    test(udp.host == defaultHost)
++    test(udp.host == defaultHost or isFreeBSDJail())
+ 
+     print "ok"
+ 
+@@ -124,8 +143,8 @@
+     test(not info.incoming)
+     test(len(info.adapterName) == 0)
+     test(info.remotePort == 12010)
+-    test(info.remoteAddress == defaultHost)
+-    test(info.localAddress == defaultHost)
++    test(info.remoteAddress == defaultHost or isFreeBSDJail())
++    test(info.localAddress == defaultHost or isFreeBSDJail())
+ 
+     ctx = testIntf.getConnectionInfoAsContext()
+     test(ctx["incoming"] == "true")
diff -ruN --exclude=CVS ../py-ice.orig/files/patch-py-test-Ice-properties-run.py ./files/patch-py-test-Ice-properties-run.py
--- ../py-ice.orig/files/patch-py-test-Ice-properties-run.py	1970-01-01 01:00:00.000000000 +0100
+++ ./files/patch-py-test-Ice-properties-run.py	2012-09-11 21:07:04.000000000 +0200
@@ -0,0 +1,19 @@
+--- py/test/Ice/properties/run.py.orig	2011-06-15 19:44:00.000000000 +0000
++++ py/test/Ice/properties/run.py	2012-09-11 19:05:41.531273236 +0000
+@@ -24,14 +24,14 @@
+ #
+ # Write config
+ #
+-configPath = u"./config/中国_client.config"
++configPath = u"./config/中国_client.config".encode("utf-8")
+ 
+ TestUtil.createConfig(configPath, 
+                       ["# Automatically generated by Ice test driver.", 
+                        "Ice.Trace.Protocol=1",
+                        "Ice.Trace.Network=1", 
+                        "Ice.ProgramName=PropertiesClient", 
+-                       "Config.Path=./config/中国_client.config"])
++                       "Config.Path="+configPath])
+ 
+ TestUtil.simpleTest()
+ 
diff -ruN --exclude=CVS ../py-ice.orig/pkg-plist ./pkg-plist
--- ../py-ice.orig/pkg-plist	2012-08-21 21:29:17.000000000 +0200
+++ ./pkg-plist	2012-09-11 23:15:48.000000000 +0200
@@ -1,64 +1,186 @@
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifierF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifierF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifierF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifier_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifier_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_PermissionsVerifier_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_RouterF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_RouterF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_RouterF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_Router_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_Router_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_Router_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_SSLInfo_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_SSLInfo_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_SSLInfo_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2_Session_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_Session_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2_Session_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Glacier2.py
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Glacier2.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.py
+%%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceBox_IceBox_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceBox_IceBox_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceBox_IceBox_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Admin_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Admin_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Admin_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Descriptor_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Descriptor_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Descriptor_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Exception_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Exception_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Exception_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_FileParser_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_FileParser_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_FileParser_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Locator_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Locator_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Locator_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Observer_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Observer_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Observer_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Query_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Query_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Query_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Registry_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Registry_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Registry_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_Session_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Session_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_Session_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceGrid_UserAccountMapper_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_UserAccountMapper_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceGrid_UserAccountMapper_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.py
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileInfo_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileInfo_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileInfo_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileServer_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileServer_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IcePatch2_FileServer_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.py
+%%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IceStorm_IceStorm_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/IceStorm_IceStorm_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/IceStorm_IceStorm_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_BuiltinSequences_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_BuiltinSequences_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_BuiltinSequences_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_CommunicatorF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_CommunicatorF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_CommunicatorF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Communicator_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Communicator_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Communicator_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ConnectionF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ConnectionF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ConnectionF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Connection_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Connection_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Connection_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Current_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Current_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Current_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Endpoint_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Endpoint_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Endpoint_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointTypes_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointTypes_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_EndpointTypes_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_FacetMap_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_FacetMap_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_FacetMap_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Identity_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Identity_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Identity_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContextF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContextF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContextF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContext_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContext_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ImplicitContext_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_LocalException_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LocalException_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LocalException_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_LocatorF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LocatorF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LocatorF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Locator_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Locator_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Locator_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_LoggerF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LoggerF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_LoggerF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Logger_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Logger_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Logger_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapterF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapterF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapterF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapter_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapter_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectAdapter_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactoryF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactoryF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactoryF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactory_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactory_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ObjectFactory_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_PluginF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_PluginF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_PluginF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Plugin_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Plugin_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Plugin_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ProcessF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ProcessF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ProcessF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Process_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Process_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Process_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_PropertiesF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_PropertiesF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_PropertiesF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Properties_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Properties_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Properties_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_RouterF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_RouterF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_RouterF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Router_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Router_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Router_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocatorF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocatorF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocatorF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocator_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocator_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_ServantLocator_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_SliceChecksumDict_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_SliceChecksumDict_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_SliceChecksumDict_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_StatsF_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_StatsF_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_StatsF_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/Ice_Stats_ice.py
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Stats_ice.pyc
+%%PYTHON_SITELIBDIR%%/Ice/Ice_Stats_ice.pyo
 %%PYTHON_SITELIBDIR%%/Ice/IcePy.so
 %%PYTHON_SITELIBDIR%%/Ice/IcePy.so.%%LIB_VERSION%%
 %%PYTHON_SITELIBDIR%%/Ice/IcePy.so.%%LIB_VRS%%
@@ -172,13 +294,23 @@
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/Ice_StatsF_ice.pyo
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/Ice_Stats_ice.pyo
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/Glacier2/__init__.py
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/Glacier2/__init__.pyc
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/Glacier2/__init__.pyo
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/Glacier2
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.py
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.pyc
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceBox/__init__.pyo
 @dirrmtry %%PYTHON_SITELIBDIR%%/Ice/IceBox
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.py
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.pyc
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceGrid/__init__.pyo
 @dirrmtry %%PYTHON_SITELIBDIR%%/Ice/IceGrid
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.py
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.pyc
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IcePatch2/__init__.pyo
 @dirrmtry %%PYTHON_SITELIBDIR%%/Ice/IcePatch2
 @rmtry %%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.py
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.pyc
+@rmtry %%PYTHON_SITELIBDIR%%/Ice/IceStorm/__init__.pyo
 @dirrmtry %%PYTHON_SITELIBDIR%%/Ice/IceStorm
 @dirrmtry %%PYTHON_SITELIBDIR%%/Ice
--- py27-Ice-3.4.2_3.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



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