Index: head/devel/ice/Makefile =================================================================== --- head/devel/ice/Makefile (revision 459706) +++ head/devel/ice/Makefile (revision 459707) @@ -1,130 +1,129 @@ # Created by: Stefan Ehmann # $FreeBSD$ PORTNAME= Ice -PORTVERSION= 3.6.3 -PORTREVISION= 3 +PORTVERSION= 3.6.4 DISTVERSIONPREFIX= v CATEGORIES= devel MAINTAINER= freebsd@grem.de COMMENT= Modern alternative to object middleware such as CORBA/COM/DCOM/COM+ LICENSE= GPLv2 SLAVE_PORT?= no MAKE_JOBS_UNSAFE= yes .if ${SLAVE_PORT} == "no" LIB_DEPENDS= libexpat.so:textproc/expat2 \ libmcpp.so:devel/mcpp USES+= ssl .else LIB_VRS= ${PORTVERSION:R:S|.||g} LIB_DEPENDS+= libIce.so.${LIB_VRS}:devel/ice PLIST_SUB+= LIB_VERSION="${PORTVERSION}" LIB_VRS="${LIB_VRS}" .endif OPTIONS_DEFINE?= DEBUG TEST .include USES+= iconv gmake .if ${PORT_OPTIONS:MTEST} && ${SLAVE_PORT} == "no" USES+= python:build BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}passlib>0:security/py-passlib .endif USES+= bdb:5 INVALID_BDB_VER= 48 6 USE_LDCONFIG= yes BUILD_WRKSRC?= ${WRKSRC}/cpp INSTALL_WRKSRC?= ${WRKSRC}/cpp USE_GITHUB= yes GH_ACCOUNT= zeroc-ice GH_PROJECT= ice CFLAGS+= -ftemplate-depth-128 -fPIC -DPIC -Wall -D_REENTRANT -I${LOCALBASE}/include .if !${PORT_OPTIONS:MDEBUG} CFLAGS+= -DNDEBUG .endif .if ((${ARCH} != i386) && (${ARCH} != powerpc)) MAKE_ENV+= LP64=yes .endif .if !${PORT_OPTIONS:MTEST} MAKE_ENV+= NOTESTS=yes .endif .if ${SLAVE_PORT} == "no" MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/cpp/lib:$$LD_LIBRARY_PATH .endif .include .if ${PREFIX} != ${LOCALBASE} PYSITEDIR= ${PREFIX}${PYTHON_SITELIBDIR:S|^${LOCALBASE}||} .else PYSITEDIR= ${PYTHON_SITELIBDIR} .endif .if ${PORT_OPTIONS:MNAMESPACES} MAKE_ARGS+= USE_NAMESPACES=yes PLIST_SUB+= NAMESPACES="" PLIST_SUB+= NONAMESPACES="@comment " .else PLIST_SUB+= NAMESPACES="@comment " PLIST_SUB+= NONAMESPACES="" .endif post-patch: @${SED} 's|%%PREFIX%%|${STAGEDIR}${PREFIX}|g; \ s|%%DATADIR%%|${STAGEDIR}${DATADIR}|g; \ s|%%DOCSDIR%%|${STAGEDIR}${DOCSDIR}|g; \ s|%%ICONV_LIB%%|${ICONV_LIB}|g; \ s|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \ s|%%INSTALL_DATA%%|${INSTALL_DATA}|g; \ s|%%OPENSSLLIB%%|${OPENSSLLIB}|g; \ s|%%OPENSSLINC%%|${OPENSSLINC}|g; \ s|%%OPENSSLRPATH%%|${OPENSSLRPATH}|g;' \ ${FILESDIR}/Make.rules.FreeBSD > ${WRKSRC}/cpp/config/Make.rules.FreeBSD @${REINPLACE_CMD} 's|%%BDB_LIB_CXX_NAME%%|${BDB_LIB_CXX_NAME}|g; \ s|%%BDB_LIB_DIR%%|${BDB_LIB_DIR}|g; \ s|%%BDB_INCLUDE_DIR%%|${BDB_INCLUDE_DIR}|g; \ s|%%OPENSSLLIB%%|${OPENSSLLIB}|g; \ s|%%OPENSSLINC%%|${OPENSSLINC}|g; \ s|%%OPENSSLRPATH%%|${OPENSSLRPATH}|g; \ /install_docdir/d' \ ${WRKSRC}/cpp/config/Make.rules @${REINPLACE_CMD} 's|%%OPENSSLBASE%%|${OPENSSLBASE}|g;' \ ${WRKSRC}/cpp/test/IceSSL/configuration/run.py @${REINPLACE_CMD} '/install_configdir/d' \ ${WRKSRC}/cpp/config/Make.rules @${REINPLACE_CMD} '/LICENSE/s/prefix/install_slicedir/; \ s|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g;' \ ${WRKSRC}/config/Make.common.rules @${REINPLACE_CMD} 's|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \ s|%%INSTALL_DATA%%|${INSTALL_DATA}|g; \ s|%%ICONV_LIB%%|${ICONV_LIB}|g; \ s|%%PYTHON_CMD%%|${PYTHON_CMD}|g; \ s|%%PYTHON_SITELIBDIR%%|${STAGEDIR}${PYSITEDIR}|g; \ s|%%PREFIX%%|${PREFIX}|g; \ s|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/python/config/Make.rules @${REINPLACE_CMD} 's|%%INSTALL_PROGRAM%%|${INSTALL_PROGRAM}|g; \ s|%%INSTALL_DATA%%|${INSTALL_DATA}|g; \ s|%%PREFIX%%|${PREFIX}|g; \ s|%%LOCALBASE%%|${LOCALBASE}|g;' ${WRKSRC}/php/config/Make.rules.php do-test-TEST-on: @cd ${BUILD_WRKSRC} && ${PYTHON_CMD} ./allTests.py .if ${SLAVE_PORT} == "no" post-install: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so.* .endif .include Index: head/devel/ice/distinfo =================================================================== --- head/devel/ice/distinfo (revision 459706) +++ head/devel/ice/distinfo (revision 459707) @@ -1,3 +1,3 @@ -TIMESTAMP = 1483464992 -SHA256 (zeroc-ice-ice-v3.6.3_GH0.tar.gz) = 82ff74e6d24d9fa396dbb4d9697dc183b17bc9c3f6f076fecdc05632be80a2dc -SIZE (zeroc-ice-ice-v3.6.3_GH0.tar.gz) = 5512741 +TIMESTAMP = 1505206779 +SHA256 (zeroc-ice-ice-v3.6.4_GH0.tar.gz) = 4f5cc5e09586eab7de7745bbdc5fbf383c59f8fdc561264d4010bba19afdde2a +SIZE (zeroc-ice-ice-v3.6.4_GH0.tar.gz) = 5523841 Index: head/devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp =================================================================== --- head/devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp (revision 459706) +++ head/devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp (nonexistent) @@ -1,11 +0,0 @@ ---- cpp/src/IceUtil/Cond.cpp.orig 2016-10-12 00:34:17.622732906 +0200 -+++ cpp/src/IceUtil/Cond.cpp 2016-10-12 00:34:40.133725906 +0200 -@@ -332,7 +332,7 @@ - throw ThreadSyscallException(__FILE__, __LINE__, rc); - } - --#if !defined(__hppa) && !defined(__APPLE__) && !defined(__FreeBSD__) -+#if !defined(__hppa) && !defined(__APPLE__) - rc = pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); - if(rc != 0) - { Property changes on: head/devel/ice/files/patch-cpp-src-IceUtil-Cond.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/ice/files/patch-cpp-src-IceSSL-Util.cpp =================================================================== --- head/devel/ice/files/patch-cpp-src-IceSSL-Util.cpp (revision 459706) +++ head/devel/ice/files/patch-cpp-src-IceSSL-Util.cpp (nonexistent) @@ -1,29 +0,0 @@ ---- cpp/src/IceSSL/Util.cpp~ 2016-10-05 16:59:08.000000000 +0200 -+++ cpp/src/IceSSL/Util.cpp 2016-10-12 01:55:08.517427902 +0200 -@@ -110,7 +110,7 @@ - { - - # ifndef OPENSSL_NO_DH --# if OPENSSL_VERSION_NUMBER < 0x10100000L -+# if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - - // The following arrays are predefined Diffie Hellman group parameters. - // These are known strong primes, distributed with the OpenSSL library -@@ -338,7 +338,7 @@ - // - // Convert a predefined parameter set into a DH value. - // --# if OPENSSL_VERSION_NUMBER >= 0x10100000L -+# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - static DH* - convertDH(const unsigned char* buf, int len) - { -@@ -428,7 +428,7 @@ - // No match found. Use one of the predefined parameter sets instead. - // - IceUtil::Mutex::Lock sync(*this); --# if OPENSSL_VERSION_NUMBER >= 0x10100000L -+# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - if(keyLength >= 4096) - { - if(!_dh4096) Property changes on: head/devel/ice/files/patch-cpp-src-IceSSL-Util.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/ice/files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp =================================================================== --- head/devel/ice/files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp (revision 459706) +++ head/devel/ice/files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp (nonexistent) @@ -1,84 +0,0 @@ ---- cpp/src/IceSSL/OpenSSLEngine.cpp.orig 2016-10-05 16:59:08.000000000 +0200 -+++ cpp/src/IceSSL/OpenSSLEngine.cpp 2016-10-12 01:59:40.150375902 +0200 -@@ -43,7 +43,7 @@ - int instanceCount = 0; - bool initOpenSSL = false; - --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - IceUtil::Mutex* locks = 0; - #endif - -@@ -62,7 +62,7 @@ - // OpenSSL 1.1.0 introduces a new thread API and removes - // the need to use a custom thread callback. - // --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - CRYPTO_set_locking_callback(0); - CRYPTO_set_id_callback(0); - -@@ -87,7 +87,7 @@ - // OpenSSL 1.1.0 introduces a new thread API and removes - // the need to use a custom thread callback. - // --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - // - // OpenSSL mutex callback. - // -@@ -158,7 +158,7 @@ - DH* - IceSSL_opensslDHCallback(SSL* ssl, int /*isExport*/, int keyLength) - { --# if OPENSSL_VERSION_NUMBER >= 0x10100000L -+# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - SSL_CTX* ctx = SSL_get_SSL_CTX(ssl); - # else - SSL_CTX* ctx = ssl->ctx; -@@ -219,7 +219,7 @@ - // - // OpenSSL 1.1.0 remove the need for library initialization and cleanup. - // --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - // - // Create the mutexes and set the callbacks. - // -@@ -292,7 +292,9 @@ - string entropyDaemon = properties->getProperty("IceSSL.EntropyDaemon"); - if(!entropyDaemon.empty()) - { -+# ifndef OPENSSL_NO_EGD - if(RAND_egd(entropyDaemon.c_str()) <= 0) -+# endif - { - throw PluginInitializationException(__FILE__, __LINE__, - "IceSSL: EGD failure using file " + entropyDaemon); -@@ -326,7 +328,7 @@ - // - // OpenSSL 1.1.0 remove the need for library initialization and cleanup. - // --#if OPENSSL_VERSION_NUMBER < 0x10100000L -+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) - // - // Clean up OpenSSL resources. - // -@@ -399,7 +401,7 @@ - "IceSSL: unable to create SSL context:\n" + sslErrors()); - } - --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - int securityLevel = properties->getPropertyAsIntWithDefault(propPrefix + "SecurityLevel", -1); - if(securityLevel != -1) - { -@@ -954,7 +956,7 @@ - SSL_METHOD* - OpenSSLEngine::getMethod(int /*protocols*/) - { --#if OPENSSL_VERSION_NUMBER >= 0x10100000L -+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) - SSL_METHOD* meth = const_cast(TLS_method()); - #else - // Property changes on: head/devel/ice/files/patch-cpp-src-IceSSL-OpenSSLEngine.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp =================================================================== --- head/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp (revision 459706) +++ head/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp (nonexistent) @@ -1,35 +0,0 @@ ---- cpp/src/IceGrid/ServerI.cpp.orig 2016-11-15 12:22:54.201742997 +0100 -+++ cpp/src/IceGrid/ServerI.cpp 2017-09-07 12:48:01.409625996 +0100 -@@ -341,7 +341,22 @@ - { - assert(_p->first.find("config_") == 0); - const string service = _p->first.substr(7); -- facet = "IceBox.Service." + service + ".Properties"; -+ bool useSharedCommunicator = false; -+ for (PropertyDescriptorSeq::const_iterator d = _properties.at("config").begin(); d != _properties.at("config").end(); ++d) -+ { -+ if (d->name == "IceBox.UseSharedCommunicator." + service) -+ { -+ useSharedCommunicator = (atoi(d->value.c_str()) > 0); -+ } -+ } -+ if (useSharedCommunicator) -+ { -+ facet = "IceBox.SharedCommunicator.Properties"; -+ } -+ else -+ { -+ facet = "IceBox.Service." + service + ".Properties"; -+ } - if(_traceLevels->server > 1) - { - const string id = _server->getId(); -@@ -1232,7 +1232,7 @@ ServerI::load(const AMD_Node_loadServerPtr& amdCB, const InternalServerDescripto - updateRevision(desc->uuid, desc->revision); - } - -- if(!_desc) -+ if(!_desc || (_load && descriptorUpdated(_load->getInternalServerDescriptor(), _desc))) - { - _load->addCallback(amdCB); - return 0; Property changes on: head/devel/ice/files/patch-cpp-src-IceGrid-ServerI.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/ice/files/patch-python-modules-IcePy-Operation.cpp =================================================================== --- head/devel/ice/files/patch-python-modules-IcePy-Operation.cpp (revision 459706) +++ head/devel/ice/files/patch-python-modules-IcePy-Operation.cpp (nonexistent) @@ -1,186 +0,0 @@ ---- python/modules/IcePy/Operation.cpp.orig 2017-01-29 22:23:51.186130998 +0100 -+++ python/modules/IcePy/Operation.cpp 2017-01-29 22:24:55.929130998 +0100 -@@ -1682,11 +1682,11 @@ - } - else - { -- if(PyTuple_SET_ITEM(results.get(), info->pos, Unset) < 0) -+ if(PyTuple_SetItem(results.get(), info->pos, Unset) < 0) - { - return 0; - } -- Py_INCREF(Unset); // PyTuple_SET_ITEM steals a reference. -+ Py_INCREF(Unset); // PyTuple_SetItem steals a reference. - } - } - -@@ -2546,7 +2546,7 @@ - throwPythonException(); - } - -- if(PyTuple_SET_ITEM(result.get(), 0, ok ? incTrue() : incFalse()) < 0) -+ if(PyTuple_SetItem(result.get(), 0, ok ? incTrue() : incFalse()) < 0) - { - throwPythonException(); - } -@@ -2586,11 +2586,11 @@ - } - #endif - -- if(PyTuple_SET_ITEM(result.get(), 1, op.get()) < 0) -+ if(PyTuple_SetItem(result.get(), 1, op.get()) < 0) - { - throwPythonException(); - } -- op.release(); // PyTuple_SET_ITEM steals a reference. -+ op.release(); // PyTuple_SetItem steals a reference. - - return result.release(); - } -@@ -2827,7 +2827,7 @@ - return 0; - } - -- if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0) -+ if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0) - { - return 0; - } -@@ -2867,11 +2867,11 @@ - memcpy(buf, results.first, sz); - #endif - -- if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0) -+ if(PyTuple_SetItem(args.get(), 1, op.get()) < 0) - { - return 0; - } -- op.release(); // PyTuple_SET_ITEM steals a reference. -+ op.release(); // PyTuple_SetItem steals a reference. - - return args.release(); - } -@@ -2910,7 +2910,7 @@ - return; - } - -- if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0) -+ if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0) - { - assert(PyErr_Occurred()); - PyErr_Print(); -@@ -2958,13 +2958,13 @@ - memcpy(buf, results.first, sz); - #endif - -- if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0) -+ if(PyTuple_SetItem(args.get(), 1, op.get()) < 0) - { - assert(PyErr_Occurred()); - PyErr_Print(); - return; - } -- op.release(); // PyTuple_SET_ITEM steals a reference. -+ op.release(); // PyTuple_SetItem steals a reference. - - PyObjectHandle tmp = PyObject_Call(_response, args.get(), 0); - if(PyErr_Occurred()) -@@ -3126,7 +3126,7 @@ - return; - } - -- if(PyTuple_SET_ITEM(args.get(), 0, ok ? incTrue() : incFalse()) < 0) -+ if(PyTuple_SetItem(args.get(), 0, ok ? incTrue() : incFalse()) < 0) - { - assert(PyErr_Occurred()); - PyErr_Print(); -@@ -3174,13 +3174,13 @@ - memcpy(buf, results.first, sz); - #endif - -- if(PyTuple_SET_ITEM(args.get(), 1, op.get()) < 0) -+ if(PyTuple_SetItem(args.get(), 1, op.get()) < 0) - { - assert(PyErr_Occurred()); - PyErr_Print(); - return; - } -- op.release(); // PyTuple_SET_ITEM steals a reference. -+ op.release(); // PyTuple_SetItem steals a reference. - - const string methodName = "ice_response"; - if(!PyObject_HasAttrString(_callback, STRCAST(methodName.c_str()))) -@@ -3302,11 +3302,11 @@ - } - else - { -- if(PyTuple_SET_ITEM(args.get(), info->pos + offset, Unset) < 0) -+ if(PyTuple_SetItem(args.get(), info->pos + offset, Unset) < 0) - { - throwPythonException(); - } -- Py_INCREF(Unset); // PyTuple_SET_ITEM steals a reference. -+ Py_INCREF(Unset); // PyTuple_SetItem steals a reference. - } - } - -@@ -3329,11 +3329,11 @@ - // Create an object to represent Ice::Current. We need to append this to the argument tuple. - // - PyObjectHandle curr = createCurrent(current); -- if(PyTuple_SET_ITEM(args.get(), PyTuple_GET_SIZE(args.get()) - 1, curr.get()) < 0) -+ if(PyTuple_SetItem(args.get(), PyTuple_GET_SIZE(args.get()) - 1, curr.get()) < 0) - { - throwPythonException(); - } -- curr.release(); // PyTuple_SET_ITEM steals a reference. -+ curr.release(); // PyTuple_SetItem steals a reference. - - if(_op->amd) - { -@@ -3347,7 +3347,7 @@ - } - obj->upcall = new UpcallPtr(this); - obj->encoding = current.encoding; -- if(PyTuple_SET_ITEM(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SET_ITEM steals a reference. -+ if(PyTuple_SetItem(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SetItem steals a reference. - { - Py_DECREF(obj); - throwPythonException(); -@@ -3698,23 +3698,23 @@ - } - #endif - -- if(PyTuple_SET_ITEM(args.get(), start, ip.get()) < 0) -+ if(PyTuple_SetItem(args.get(), start, ip.get()) < 0) - { - throwPythonException(); - } - ++start; -- ip.release(); // PyTuple_SET_ITEM steals a reference. -+ ip.release(); // PyTuple_SetItem steals a reference. - - // - // Create an object to represent Ice::Current. We need to append - // this to the argument tuple. - // - PyObjectHandle curr = createCurrent(current); -- if(PyTuple_SET_ITEM(args.get(), start, curr.get()) < 0) -+ if(PyTuple_SetItem(args.get(), start, curr.get()) < 0) - { - throwPythonException(); - } -- curr.release(); // PyTuple_SET_ITEM steals a reference. -+ curr.release(); // PyTuple_SetItem steals a reference. - - string dispatchName = "ice_invoke"; - if(_amd) -@@ -3730,7 +3730,7 @@ - } - obj->upcall = new UpcallPtr(this); - obj->encoding = current.encoding; -- if(PyTuple_SET_ITEM(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SET_ITEM steals a reference. -+ if(PyTuple_SetItem(args.get(), 0, (PyObject*)obj) < 0) // PyTuple_SetItem steals a reference. - { - Py_DECREF(obj); - throwPythonException(); Property changes on: head/devel/ice/files/patch-python-modules-IcePy-Operation.cpp ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/ice/files/Make.rules.FreeBSD =================================================================== --- head/devel/ice/files/Make.rules.FreeBSD (revision 459706) +++ head/devel/ice/files/Make.rules.FreeBSD (revision 459707) @@ -1,24 +1,26 @@ mkshlib = $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4) +mkplugin = $(CXX) -shared $(LDFLAGS) -o $(1) $(3) $(4) + BASELIBS = -lIceUtil -pthread -L$(LOCALBASE)/lib %%ICONV_LIB%% LIBS = -lIce $(BASELIBS) CRYPT_OS_LIBS = -lcrypt ICEUTIL_OS_LIBS = -pthread $(OPENSSL_RPATH_LINK) -L%%OPENSSLLIB%% -lcrypto ICEUTIL_FLAGS += $(OPENSSL_FLAGS) PLATFORM_HAS_READLINE := yes cpp11libdirsuffix = 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) override DESTDIR = rpathlink = -Wl,-rpath,$(1) Index: head/devel/ice/files/patch-cpp-test-IceSSL-configuration-AllTests.cpp =================================================================== --- head/devel/ice/files/patch-cpp-test-IceSSL-configuration-AllTests.cpp (revision 459706) +++ head/devel/ice/files/patch-cpp-test-IceSSL-configuration-AllTests.cpp (revision 459707) @@ -1,22 +1,31 @@ --- cpp/test/IceSSL/configuration/AllTests.cpp.orig 2016-10-05 16:59:08.000000000 +0200 +++ cpp/test/IceSSL/configuration/AllTests.cpp 2016-10-12 01:57:47.897380902 +0200 @@ -27,7 +27,7 @@ // // With OpenSSL 1.1.0 we need to set SECLEVEL=0 to allow ADH ciphers // -# if OPENSSL_VERSION_NUMBER >= 0x10100000L +# if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) const string anonCiphers = "ADH:@SECLEVEL=0"; # else const string anonCiphers = "ADH"; +@@ -2048,7 +2048,7 @@ + // + // No DSA support in Secure Transport / AIX 7.1 / SChannel + // +-#if !defined(ICE_USE_SECURE_TRANSPORT) && !defined(_AIX) && !defined(ICE_USE_SCHANNEL) ++#if !defined(ICE_USE_SECURE_TRANSPORT) && !defined(_AIX) && !defined(ICE_USE_SCHANNEL) && !defined(LIBRESSL_VERSION_NUMBER) + { + // + // DSA PEM keys are not supported with SChannel. Since Windows 10 @@ -3215,9 +3215,7 @@ #endif } -#ifndef _AIX - // On AIX 6.1, the default root certificates don't validate demo.zeroc.com - +#if 0 // we don't want to talk to zeroc while building cout << "testing system CAs... " << flush; { InitializationData initData; Index: head/devel/ice/files/patch-php-config-Make.rules.php =================================================================== --- head/devel/ice/files/patch-php-config-Make.rules.php (revision 459706) +++ head/devel/ice/files/patch-php-config-Make.rules.php (revision 459707) @@ -1,28 +1,28 @@ ---- php/config/Make.rules.php.orig 2015-06-23 15:30:20.000000000 +0000 -+++ php/config/Make.rules.php 2015-06-27 19:48:31.900063596 +0000 -@@ -108,13 +108,8 @@ +--- php/config/Make.rules.php.orig 2017-09-13 13:20:00.000000000 +0200 ++++ php/config/Make.rules.php 2017-09-13 13:20:00.000000000 +0200 +@@ -81,13 +81,8 @@ ifeq ($(findstring /php/test/,$(abspath $(MAKEFILE_LIST))),) + $(error $(PHP_CONFIG) not found review your PHP installation and ensure $(PHP_CONFIG) is in your PATH) + endif - libdir = $(top_srcdir)/lib +- ifndef usr_dir_install +- install_phpdir = $(prefix)/php +- install_libdir = $(prefix)/php +- else +- install_phpdir = $(prefix)/share/php +- install_libdir = $(shell $(PHP_CONFIG) --extension-dir) +- endif ++ install_phpdir = $(prefix)/share/pear ++ install_libdir = $(prefix)/lib/php/$(PHP_EXT_DIR) + endif --ifndef usr_dir_install -- install_phpdir = $(prefix)/php -- install_libdir = $(prefix)/php --else -- install_phpdir = $(prefix)/share/php -- install_libdir = $(shell $(PHP_CONFIG) --extension-dir) --endif -+install_phpdir = $(prefix)/share/pear -+install_libdir = $(prefix)/lib/php/$(PHP_EXT_DIR) - ifdef ice_src_dist - RPATH_DIR = $(LOADER_PATH)/../../cpp/$(libsubdir) -@@ -172,7 +167,8 @@ +@@ -145,7 +140,8 @@ else endif ifeq ($(installphplib),) - installphplib = $(INSTALL) $(1) $(2); \ + installphplib = mkdir -p $(2) ; \ + $(INSTALL) $(1) $(2); \ chmod a+rx $(2)/$(notdir $(1)) endif Index: head/devel/ice/files/patch-scripts-TestUtil.py =================================================================== --- head/devel/ice/files/patch-scripts-TestUtil.py (revision 459706) +++ head/devel/ice/files/patch-scripts-TestUtil.py (revision 459707) @@ -1,61 +1,70 @@ --- scripts/TestUtil.py.orig 2016-10-05 16:59:08.000000000 +0200 +++ scripts/TestUtil.py 2016-10-11 23:30:25.933993909 +0200 @@ -145,6 +145,25 @@ def iceUseOpenSSL(): return any(sys.platform.startswith(p) for p in ["linux", "freebsd"]) +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 getCppCompiler(): compiler = "" if os.environ.get("CPP_COMPILER", "") != "": @@ -340,7 +359,7 @@ print("uname failed:\n" + p.stdout.read().strip()) sys.exit(1) line = p.stdout.readline().decode('UTF-8').strip() - if line == "x86_64" and os.environ.get("LP64", "") != "no": + if line in ["x86_64", "amd64"] and os.environ.get("LP64", "") != "no": x64 = True elif line == "armv7l": armv7l = True +@@ -879,7 +898,7 @@ + os.remove(filePath) + passwords = open(filePath, "a") + +- command = '"%s" "%s"' % (sys.executable, ++ command = '"%s" "%s" 2>/dev/null' % (sys.executable, + os.path.abspath(os.path.join(os.path.dirname(__file__), "icehashpassword.py"))) + + # @@ -2013,7 +2032,7 @@ addLdPath(getCppLibDir(lang), env) elif isAIX(): addLdPath(getCppLibDir(lang), env) - elif lang in ["python", "ruby", "php", "js", "objective-c"]: + elif lang in ["cpp", "python", "ruby", "php", "js", "objective-c"]: # C++ binaries use rpath $ORIGIN or similar to find the Ice libraries addLdPath(getCppLibDir(lang), env) @@ -2366,6 +2385,14 @@ print("%s*** test not supported under Yocto%s" % (prefix, suffix)) continue + if isFreeBSD() and "nofreebsd" in config: + print("%s*** test not supported under FreeBSD%s" % (prefix, suffix)) + continue + + if isFreeBSDJail() and "nofreebsdjail" in config: + print("%s*** test not supported within a FreeBSD Jail%s" % (prefix, suffix)) + continue + if not isWin32() and "win32only" in config: print("%s*** test only supported under Win32%s" % (prefix, suffix)) continue Index: head/devel/ice/pkg-plist =================================================================== --- head/devel/ice/pkg-plist (revision 459706) +++ head/devel/ice/pkg-plist (revision 459707) @@ -1,394 +1,394 @@ bin/dumpdb bin/glacier2router bin/icebox bin/iceboxadmin bin/icegridadmin bin/icegriddb bin/icegridnode bin/icegridregistry bin/icepatch2calc bin/icepatch2client bin/icepatch2server bin/icestormadmin bin/icestormdb bin/icestormmigrate bin/slice2cpp bin/slice2cs bin/slice2freeze bin/slice2freezej bin/slice2html bin/slice2java bin/slice2js bin/slice2php bin/slice2py bin/transformdb include/Freeze/BackgroundSaveEvictor.h include/Freeze/Catalog.h include/Freeze/CatalogData.h include/Freeze/CatalogIndexList.h include/Freeze/Connection.h include/Freeze/ConnectionF.h include/Freeze/DB.h include/Freeze/Evictor.h include/Freeze/EvictorF.h include/Freeze/EvictorStorage.h include/Freeze/Exception.h include/Freeze/Freeze.h include/Freeze/Index.h include/Freeze/Initialize.h include/Freeze/Map.h include/Freeze/Transaction.h include/Freeze/TransactionHolder.h include/Freeze/TransactionalEvictor.h include/Glacier2/Application.h include/Glacier2/Config.h include/Glacier2/Glacier2.h include/Glacier2/Metrics.h include/Glacier2/NullPermissionsVerifier.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/ACMF.h include/Ice/Application.h include/Ice/AsyncResult.h include/Ice/AsyncResultF.h include/Ice/BasicStream.h include/Ice/BatchRequestInterceptor.h include/Ice/BatchRequestQueueF.h include/Ice/Buffer.h include/Ice/BuiltinSequences.h include/Ice/Communicator.h include/Ice/CommunicatorAsync.h include/Ice/CommunicatorF.h include/Ice/Config.h include/Ice/Connection.h include/Ice/ConnectionAsync.h include/Ice/ConnectionF.h include/Ice/ConnectionFactoryF.h include/Ice/ConnectionIF.h include/Ice/Current.h include/Ice/DefaultObjectFactory.h include/Ice/DeprecatedStringConverter.h include/Ice/DispatchInterceptor.h include/Ice/Dispatcher.h include/Ice/DynamicLibrary.h include/Ice/DynamicLibraryF.h include/Ice/Endpoint.h include/Ice/EndpointF.h include/Ice/EndpointTypes.h include/Ice/Exception.h include/Ice/FacetMap.h include/Ice/FactoryTable.h include/Ice/FactoryTableInit.h include/Ice/Format.h include/Ice/Functional.h include/Ice/GCObject.h include/Ice/Handle.h include/Ice/Ice.h include/Ice/Identity.h include/Ice/ImplicitContext.h include/Ice/ImplicitContextF.h include/Ice/Incoming.h include/Ice/IncomingAsync.h 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 include/Ice/Locator.h include/Ice/LocatorF.h 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/NativePropertiesAdmin.h include/Ice/Object.h include/Ice/ObjectAdapter.h include/Ice/ObjectAdapterF.h include/Ice/ObjectAdapterFactoryF.h 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 include/Ice/Plugin.h include/Ice/PluginF.h 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/Proxy.h include/Ice/ProxyF.h include/Ice/ProxyFactoryF.h include/Ice/ProxyHandle.h include/Ice/ReferenceF.h include/Ice/RegisterPlugins.h include/Ice/RemoteLogger.h include/Ice/RequestHandlerF.h include/Ice/ResponseHandlerF.h include/Ice/Router.h include/Ice/RouterF.h include/Ice/ServantLocator.h include/Ice/ServantLocatorF.h include/Ice/ServantManagerF.h include/Ice/Service.h include/Ice/SliceChecksumDict.h include/Ice/SliceChecksums.h include/Ice/SlicedData.h include/Ice/SlicedDataF.h include/Ice/Stream.h include/Ice/StreamF.h include/Ice/StreamHelpers.h include/Ice/ThreadPoolF.h include/Ice/UserExceptionFactory.h include/Ice/Version.h include/IceBox/Config.h include/IceBox/IceBox.h include/IceGrid/Admin.h include/IceGrid/Config.h include/IceGrid/Descriptor.h include/IceGrid/Exception.h include/IceGrid/FileParser.h include/IceGrid/IceGrid.h include/IceGrid/Locator.h include/IceGrid/Observer.h include/IceGrid/PluginFacade.h include/IceGrid/Query.h include/IceGrid/Registry.h include/IceGrid/ReplicaGroupFilter.h include/IceGrid/Session.h include/IceGrid/UserAccountMapper.h include/IcePatch2/ClientUtil.h include/IcePatch2/Config.h include/IcePatch2/FileInfo.h include/IcePatch2/FileServer.h include/IcePatch2/IcePatch2.h include/IceSSL/Config.h include/IceSSL/ConnectionInfo.h include/IceSSL/EndpointInfo.h include/IceSSL/IceSSL.h include/IceSSL/Plugin.h include/IceStorm/Config.h include/IceStorm/IceStorm.h include/IceStorm/Metrics.h include/IceUtil/AbstractMutex.h include/IceUtil/Atomic.h include/IceUtil/Cache.h include/IceUtil/Cond.h include/IceUtil/Config.h include/IceUtil/CountDownLatch.h include/IceUtil/CtrlCHandler.h include/IceUtil/DisableWarnings.h include/IceUtil/Exception.h include/IceUtil/Functional.h include/IceUtil/Handle.h include/IceUtil/IceUtil.h include/IceUtil/IconvStringConverter.h include/IceUtil/InputUtil.h include/IceUtil/Iterator.h include/IceUtil/Lock.h include/IceUtil/Monitor.h include/IceUtil/Mutex.h 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/PopDisableWarnings.h include/IceUtil/PushDisableWarnings.h include/IceUtil/Random.h include/IceUtil/RecMutex.h include/IceUtil/SHA1.h include/IceUtil/ScannerConfig.h include/IceUtil/ScopedArray.h include/IceUtil/Shared.h include/IceUtil/StringConverter.h include/IceUtil/StringUtil.h include/IceUtil/Thread.h include/IceUtil/ThreadException.h include/IceUtil/Time.h include/IceUtil/Timer.h include/IceUtil/UUID.h include/IceUtil/UndefSysMacros.h include/IceUtil/UniquePtr.h include/Slice/CPlusPlusUtil.h include/Slice/Checksum.h include/Slice/CsUtil.h include/Slice/DotNetNames.h include/Slice/FileTracker.h include/Slice/JavaUtil.h include/Slice/ObjCUtil.h include/Slice/PHPUtil.h include/Slice/Parser.h include/Slice/Preprocessor.h include/Slice/PythonUtil.h include/Slice/RubyUtil.h include/Slice/Util.h lib/libFreeze.so -lib/libFreeze.so.3.6.3 +lib/libFreeze.so.3.6.4 lib/libFreeze.so.36 lib/libGlacier2.so -lib/libGlacier2.so.3.6.3 +lib/libGlacier2.so.3.6.4 lib/libGlacier2.so.36 lib/libGlacier2CryptPermissionsVerifier.so -lib/libGlacier2CryptPermissionsVerifier.so.3.6.3 +lib/libGlacier2CryptPermissionsVerifier.so.3.6.4 lib/libGlacier2CryptPermissionsVerifier.so.36 lib/libIce.so -lib/libIce.so.3.6.3 +lib/libIce.so.3.6.4 lib/libIce.so.36 lib/libIceBox.so -lib/libIceBox.so.3.6.3 +lib/libIceBox.so.3.6.4 lib/libIceBox.so.36 lib/libIceDiscovery.so -lib/libIceDiscovery.so.3.6.3 +lib/libIceDiscovery.so.3.6.4 lib/libIceDiscovery.so.36 lib/libIceGrid.so -lib/libIceGrid.so.3.6.3 +lib/libIceGrid.so.3.6.4 lib/libIceGrid.so.36 lib/libIceLocatorDiscovery.so -lib/libIceLocatorDiscovery.so.3.6.3 +lib/libIceLocatorDiscovery.so.3.6.4 lib/libIceLocatorDiscovery.so.36 lib/libIcePatch2.so -lib/libIcePatch2.so.3.6.3 +lib/libIcePatch2.so.3.6.4 lib/libIcePatch2.so.36 lib/libIceSSL.so -lib/libIceSSL.so.3.6.3 +lib/libIceSSL.so.3.6.4 lib/libIceSSL.so.36 lib/libIceStorm.so -lib/libIceStorm.so.3.6.3 +lib/libIceStorm.so.3.6.4 lib/libIceStorm.so.36 lib/libIceStormService.so -lib/libIceStormService.so.3.6.3 +lib/libIceStormService.so.3.6.4 lib/libIceStormService.so.36 lib/libIceUtil.so -lib/libIceUtil.so.3.6.3 +lib/libIceUtil.so.3.6.4 lib/libIceUtil.so.36 lib/libIceXML.so -lib/libIceXML.so.3.6.3 +lib/libIceXML.so.3.6.4 lib/libIceXML.so.36 lib/libSlice.so -lib/libSlice.so.3.6.3 +lib/libSlice.so.3.6.4 lib/libSlice.so.36 man/man1/dumpdb.1.gz man/man1/glacier2router.1.gz man/man1/icebox.1.gz man/man1/iceboxadmin.1.gz man/man1/icegridadmin.1.gz man/man1/icegriddb.1.gz man/man1/icegridnode.1.gz man/man1/icegridregistry.1.gz man/man1/icepatch2calc.1.gz man/man1/icepatch2client.1.gz man/man1/icepatch2server.1.gz man/man1/icestormadmin.1.gz man/man1/icestormdb.1.gz man/man1/icestormmigrate.1.gz man/man1/slice2cpp.1.gz man/man1/slice2cs.1.gz man/man1/slice2freeze.1.gz man/man1/slice2freezej.1.gz man/man1/slice2html.1.gz man/man1/slice2java.1.gz man/man1/slice2js.1.gz man/man1/slice2php.1.gz man/man1/slice2py.1.gz man/man1/transformdb.1.gz %%DATADIR%%/Freeze/BackgroundSaveEvictor.ice %%DATADIR%%/Freeze/CatalogData.ice %%DATADIR%%/Freeze/Connection.ice %%DATADIR%%/Freeze/ConnectionF.ice %%DATADIR%%/Freeze/DB.ice %%DATADIR%%/Freeze/Evictor.ice %%DATADIR%%/Freeze/EvictorF.ice %%DATADIR%%/Freeze/EvictorStorage.ice %%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 %%DATADIR%%/Glacier2/RouterF.ice %%DATADIR%%/Glacier2/SSLInfo.ice %%DATADIR%%/Glacier2/Session.ice %%DATADIR%%/ICE_LICENSE %%DATADIR%%/Ice/BuiltinSequences.ice %%DATADIR%%/Ice/Communicator.ice %%DATADIR%%/Ice/CommunicatorF.ice %%DATADIR%%/Ice/Connection.ice %%DATADIR%%/Ice/ConnectionF.ice %%DATADIR%%/Ice/Current.ice %%DATADIR%%/Ice/Endpoint.ice %%DATADIR%%/Ice/EndpointF.ice %%DATADIR%%/Ice/EndpointTypes.ice %%DATADIR%%/Ice/FacetMap.ice %%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 %%DATADIR%%/Ice/ObjectFactoryF.ice %%DATADIR%%/Ice/Plugin.ice %%DATADIR%%/Ice/PluginF.ice %%DATADIR%%/Ice/Process.ice %%DATADIR%%/Ice/ProcessF.ice %%DATADIR%%/Ice/Properties.ice %%DATADIR%%/Ice/PropertiesAdmin.ice %%DATADIR%%/Ice/PropertiesF.ice %%DATADIR%%/Ice/RemoteLogger.ice %%DATADIR%%/Ice/Router.ice %%DATADIR%%/Ice/RouterF.ice %%DATADIR%%/Ice/ServantLocator.ice %%DATADIR%%/Ice/ServantLocatorF.ice %%DATADIR%%/Ice/SliceChecksumDict.ice %%DATADIR%%/Ice/Version.ice %%DATADIR%%/IceBox/IceBox.ice %%DATADIR%%/IceDiscovery/IceDiscovery.ice %%DATADIR%%/IceGrid/Admin.ice %%DATADIR%%/IceGrid/Descriptor.ice %%DATADIR%%/IceGrid/Exception.ice %%DATADIR%%/IceGrid/FileParser.ice %%DATADIR%%/IceGrid/Locator.ice %%DATADIR%%/IceGrid/Observer.ice %%DATADIR%%/IceGrid/PluginFacade.ice %%DATADIR%%/IceGrid/Query.ice %%DATADIR%%/IceGrid/Registry.ice %%DATADIR%%/IceGrid/Session.ice %%DATADIR%%/IceGrid/UserAccountMapper.ice %%DATADIR%%/IceLocatorDiscovery/IceLocatorDiscovery.ice %%DATADIR%%/IcePatch2/FileInfo.ice %%DATADIR%%/IcePatch2/FileServer.ice %%DATADIR%%/IceSSL/ConnectionInfo.ice %%DATADIR%%/IceSSL/EndpointInfo.ice %%DATADIR%%/IceStorm/IceStorm.ice %%DATADIR%%/IceStorm/Metrics.ice %%DATADIR%%/LICENSE %%DATADIR%%/config/icegrid-slice.3.5.ice.gz %%DATADIR%%/config/icegrid-slice.3.6.ice.gz %%DATADIR%%/config/templates.xml %%DATADIR%%/config/upgradeicegrid36.py