Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Sep 2016 18:48:04 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r422262 - in head/emulators/virtualbox-ose: . files
Message-ID:  <201609161848.u8GIm4us057238@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Fri Sep 16 18:48:04 2016
New Revision: 422262
URL: https://svnweb.freebsd.org/changeset/ports/422262

Log:
  Add support for Python 3.x.
  
  PR:		212691

Added:
  head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyIID.cpp   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyXPCOM.h   (contents, props changed)
  head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_TypeObject.cpp   (contents, props changed)
Modified:
  head/emulators/virtualbox-ose/Makefile
  head/emulators/virtualbox-ose/pkg-plist

Modified: head/emulators/virtualbox-ose/Makefile
==============================================================================
--- head/emulators/virtualbox-ose/Makefile	Fri Sep 16 18:23:05 2016	(r422261)
+++ head/emulators/virtualbox-ose/Makefile	Fri Sep 16 18:48:04 2016	(r422262)
@@ -121,7 +121,7 @@ ENV=
 
 PLIST_SUB+=	GUEST_VER=${PORTVERSION} \
 		PYTHON_VER=${PYTHON_VER} \
-		PYTHON_VERU=${PYTHON_VER:S/./_/} \
+		PYTHON_VERU=${PYTHON_VER:S/./_/}${PYTHON_ABIVER} \
 		VBOXGROUP=${VBOXGROUP}
 SUB_LIST+=	VBOXDIR=${VBOX_DIR} \
 		VBOXGROUP=${VBOXGROUP} \
@@ -163,7 +163,7 @@ USE_TEX=	dvipsk:build formats:build
 .endif
 
 .if ${PORT_OPTIONS:MPYTHON}
-USES+=		python:2
+USES+=		python
 USE_PYTHON=	distutils noegginfo
 PYDISTUTILS_PKGNAME=	vboxapi
 PYDISTUTILS_PKGVERSION=	1.0
@@ -236,6 +236,14 @@ EXTRA_PATCHES+=	${PATCHDIR}/extrapatch-C
 		${PATCHDIR}/extrapatch-src-recompiler-Makefile.kmk
 .endif
 
+.if ${PYTHON_MAJOR_VER} >= 3
+PLIST_SUB+=	PYTHON_PYCDIR=/__pycache__/ \
+		PYTHON_PYCEXT=.cpython-${PYTHON_SUFFIX}.pyc
+.else
+PLIST_SUB+=	PYTHON_PYCDIR=/ \
+		PYTHON_PYCEXT=.pyc
+.endif
+
 .if ${SSL_DEFAULT} != base
 CONFIGURE_ARGS+=	--with-openssl-dir="${OPENSSLBASE}"
 .endif
@@ -320,6 +328,7 @@ post-patch:
 	    ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
 	@${REINPLACE_CMD} \
 	    -e 's|\$$KBUILDDIR_BIN/kmk_sed|${LOCALBASE}/bin/kmk_sed|g' \
+	    -e 's|SUPPYTHONLIBS=.*|SUPPYTHONLIBS="${PYTHON_VERSION}${PYTHON_ABIVER}"|' \
 	    ${WRKSRC}/configure
 .if empty(ICONV_LIB)
 	@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.kmk \
@@ -329,6 +338,9 @@ post-patch:
 	@${REINPLACE_CMD} -e 's|/usr/local/lib/virtualbox|${VBOX_DIR}|' \
 	    -e 's|/usr/local|${PREFIX}|' \
 	    ${WRKSRC}/src/VBox/Installer/freebsd/VBox.sh
+	@${REINPLACE_CMD} \
+	    -e 's|^versions =.*|versions = ["${PYTHON_VER}${PYTHON_ABIVER}"]|' \
+	    ${WRKSRC}/src/libs/xpcom18a4/python/gen_python_deps.py
 
 do-build:
 	cd ${WRKSRC} && ${SH} -c '. ${WRKSRC}/env.sh && \

Added: head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyIID.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyIID.cpp	Fri Sep 16 18:48:04 2016	(r422262)
@@ -0,0 +1,23 @@
+--- src/libs/xpcom18a4/python/src/PyIID.cpp.orig	2016-09-12 16:20:10 UTC
++++ src/libs/xpcom18a4/python/src/PyIID.cpp
+@@ -318,12 +318,20 @@ Py_nsIID::PyTypeMethod_str(PyObject *sel
+ 	return ret;
+ }
+ 
++#if PY_VERSION_HEX < 0x03020000
+ /* static */long
++#else
++/* static */Py_hash_t
++#endif
+ Py_nsIID::PyTypeMethod_hash(PyObject *self)
+ {
+ 	const nsIID &iid = ((Py_nsIID *)self)->m_iid;
+ 
++#if PY_VERSION_HEX < 0x03020000
+ 	long ret = iid.m0 + iid.m1 + iid.m2;
++#else
++	Py_hash_t ret = iid.m0 + iid.m1 + iid.m2;
++#endif
+ 	for (int i=0;i<7;i++)
+ 		ret += iid.m3[i];
+ 	if ( ret == -1 )

Added: head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyXPCOM.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyXPCOM.h	Fri Sep 16 18:48:04 2016	(r422262)
@@ -0,0 +1,26 @@
+--- src/libs/xpcom18a4/python/src/PyXPCOM.h.orig	2016-09-12 16:20:10 UTC
++++ src/libs/xpcom18a4/python/src/PyXPCOM.h
+@@ -286,7 +286,11 @@ public:
+ 	static int Py_setattr(PyObject *op, char *name, PyObject *v);
+ 	static int Py_cmp(PyObject *ob1, PyObject *ob2);
+ 	static PyObject *Py_richcmp(PyObject *ob1, PyObject *ob2, int op);
++#if PY_VERSION_HEX < 0x03020000
+ 	static long Py_hash(PyObject *self);
++#else
++	static Py_hash_t Py_hash(PyObject *self);
++#endif
+ };
+ 
+ //////////////////////////////////////////////////////////////////////////
+@@ -442,7 +446,11 @@ public:
+ #endif
+ 	static PyObject *PyTypeMethod_richcompare(PyObject *self, PyObject *ob, int op);
+ 	static PyObject *PyTypeMethod_repr(PyObject *self);
++#if PY_VERSION_HEX < 0x03020000
+ 	static long PyTypeMethod_hash(PyObject *self);
++#else
++	static Py_hash_t PyTypeMethod_hash(PyObject *self);
++#endif
+ 	static PyObject *PyTypeMethod_str(PyObject *self);
+ 	static void PyTypeMethod_dealloc(PyObject *self);
+ 	static NS_EXPORT_STATIC_MEMBER_(PyTypeObject) type;

Added: head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_TypeObject.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_TypeObject.cpp	Fri Sep 16 18:48:04 2016	(r422262)
@@ -0,0 +1,24 @@
+--- src/libs/xpcom18a4/python/src/TypeObject.cpp.orig	2016-09-12 16:20:11 UTC
++++ src/libs/xpcom18a4/python/src/TypeObject.cpp
+@@ -155,13 +155,21 @@ PyXPCOM_TypeObject::Py_richcmp(PyObject 
+ }
+ 
+ // @pymethod int|Py_nsISupports|__hash__|Implement a hash-code for the XPCOM object using XPCOM identity rules.
++#if PY_VERSION_HEX < 0x03020000
+ /*static*/long PyXPCOM_TypeObject::Py_hash(PyObject *self)
++#else
++/*static*/Py_hash_t PyXPCOM_TypeObject::Py_hash(PyObject *self)
++#endif
+ {
+ 	// We always return the value of the nsISupports *.
+ 	nsISupports *pUnkThis;
+ 	if (!Py_nsISupports::InterfaceFromPyObject(self, NS_GET_IID(nsISupports), &pUnkThis, PR_FALSE))
+ 		return -1;
++#if PY_VERSION_HEX < 0x03020000
+ 	long ret = _Py_HashPointer(pUnkThis);
++#else
++	Py_hash_t ret = _Py_HashPointer(pUnkThis);
++#endif
+ 	pUnkThis->Release();
+ 	return ret;
+ }

Modified: head/emulators/virtualbox-ose/pkg-plist
==============================================================================
--- head/emulators/virtualbox-ose/pkg-plist	Fri Sep 16 18:23:05 2016	(r422261)
+++ head/emulators/virtualbox-ose/pkg-plist	Fri Sep 16 18:48:04 2016	(r422262)
@@ -335,39 +335,39 @@ include/virtualbox/xpcom/xptcstubsdef.in
 include/virtualbox/xpcom/xptinfo.h
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi-1.0-py%%PYTHON_VER%%.egg-info
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/VirtualBox_constants.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/%%PYTHON_PYCDIR%%VirtualBox_constants%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/__init__.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/__init__.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/vboxapi/%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/__init__.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/__init__.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/components.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/components.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/%%PYTHON_PYCDIR%%components%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/file.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/file.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/%%PYTHON_PYCDIR%%file%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/nsError.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/nsError.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%nsError%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/primitives.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/primitives.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%primitives%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/vboxxpcom.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%vboxxpcom%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpcom_consts.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpcom_consts%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpt.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/xpt.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom%%PYTHON_PYCDIR%%xpt%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client/__init__.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/client%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/__init__.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%__init__%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/enumerator.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%enumerator%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/factory.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/factory.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%factory%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/loader.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/loader.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%loader%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/module.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/module.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%module%%PYTHON_PYCEXT%%
 %%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/policy.py
-%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server/policy.pyc
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/xpcom/server%%PYTHON_PYCDIR%%policy%%PYTHON_PYCEXT%%
 %%QT%%lib/virtualbox/DbgPlugInDiggers.so
 lib/virtualbox/VBox.sh
 lib/virtualbox/VBoxAuth.so



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