Created attachment 174784 [details] Full build log of emulators/virtualbox-ose 5.1.6. $ uname -srm FreeBSD 10.3-RELEASE-p5 i386 emulators/virtualbox-ose 5.1.6 Building end with error: ================================== … kBuild: Compiling VBoxPython3_5m - /usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python/src/PyIInputStream.cpp /usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python/src/PyIID.cpp:187:2: error: cannot initialize a member subobject of type 'hashfunc' (aka 'Py_hash_t (*)(PyObject *)') with an lvalue of type 'long (PyObject *)': different return type ('Py_hash_t' (aka 'int') vs 'long') PyTypeMethod_hash, /* tp_hash */ ^~~~~~~~~~~~~~~~~ 1 error generated. kmk: *** [/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/obj/VBoxPython3_5m/src/PyIID.o] Error 1 The failing command: @c++ -c -O2 -g -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor -Wno-invalid-offsetof -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy -fvisibility-inlines-hidden -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fdiagnostics-show-option -Wno-delete-non-virtual-dtor -fPIC -Wno-write-strings -O -pthread -m32 -I/usr/local/include/python3.5m -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/build -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/ds -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/io -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/base -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/components -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/threads -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/proxy/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/xpcom/reflect/xptcall/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/client/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/shared/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/extensions/lock/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/extensions/transmngr/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/extensions/dconnect/src -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/ipc/ipcd/extensions/transmngr/common -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/bin/sdk/bindings/xpcom/include -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/bin/sdk/bindings/xpcom/include/nsprpub -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/bin/sdk/bindings/xpcom/include/string -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/bin/sdk/bindings/xpcom/include/xpcom -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/bin/sdk/bindings/xpcom/include/ipcd -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/obj/VBoxPython3_5m/dtrace -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/include -I/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DVBOX_WITH_REM -DVBOX_WITH_RAW_MODE -DRT_OS_FREEBSD -D__FREEBSD__ -DRT_ARCH_X86 -D__X86__ -DVBOX_WITH_DEBUGGER -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/usr/local/share/virtualbox-ose\" -DRTPATH_APP_PRIVATE_ARCH=\"/usr/local/lib/virtualbox\" -DRTPATH_SHARED_LIBS=\"/usr/local/lib/virtualbox\" -DRTPATH_APP_DOCS=\"/usr/local/share/doc/virtualbox-ose\" -DMOZILLA_CLIENT=1 -DNDEBUG=1 -D_IMPL_NS_COM -DXPCOM_DLL_BASE=\"VBoxXPCOM\" -DMOZ_DLL_SUFFIX=\".so\" -DIN_RING3 -DVBOX_USE_IPRT_IN_XPCOM -DMOZ_PRESERVE_PIC -D_IMPL_NS_COM -D_IMPL_NS_BASE -DEXPORT_XPTI_API -DEXPORT_XPT_API -DVBOX_PYXPCOM -DVBOX_WITH_XPCOM -DVBOX_PYXPCOM_VERSIONED -DOSTYPE=\"FreeBSD5+\" -DOSARCH=\"FreeBSD\" -DXP_UNIX=1 -DFREEBSD=1 -DHAVE_VISIBILITY_ATTRIBUTE=1 -Di386=1 -Wp,-MD,/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/obj/VBoxPython3_5m/src/PyIID.o.dep -Wp,-MT,/usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/obj/VBoxPython3_5m/src/PyIID.o -Wp,-MP -o /usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/out/freebsd.x86/release/obj/VBoxPython3_5m/src/PyIID.o /usr/obj/usr/ports/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python/src/PyIID.cpp kmk: *** Waiting for unfinished jobs.... kmk: *** Exiting with status 2 *** Error code 2 Stop. make[1]: stopped in /usr/ports/emulators/virtualbox-ose *** Error code 1 ================================== Build of version 5.1.4 work fine. File src/libs/xpcom18a4/python/src/PyIID.cpp not changed from 5.1.4 to 5.1.6. ================================== $ cat /var/db/ports/emulators_virtualbox-ose/options # This file is auto-generated by 'make config'. # Options for virtualbox-ose-5.1.4 _OPTIONS_READ=virtualbox-ose-5.1.4 _FILE_COMPLETE_OPTIONS_LIST=ALSA DBUS DEBUG GUESTADDITIONS MANUAL NLS PULSEAUDIO PYTHON R0LOGGING UDPTUNNEL VDE VNC VPX WEBSERVICE X11 QT4 QT5 OPTIONS_FILE_SET+=ALSA OPTIONS_FILE_UNSET+=DBUS OPTIONS_FILE_UNSET+=DEBUG OPTIONS_FILE_SET+=GUESTADDITIONS OPTIONS_FILE_UNSET+=MANUAL OPTIONS_FILE_SET+=NLS OPTIONS_FILE_UNSET+=PULSEAUDIO OPTIONS_FILE_SET+=PYTHON OPTIONS_FILE_UNSET+=R0LOGGING OPTIONS_FILE_SET+=UDPTUNNEL OPTIONS_FILE_SET+=VDE OPTIONS_FILE_SET+=VNC OPTIONS_FILE_SET+=VPX OPTIONS_FILE_SET+=WEBSERVICE OPTIONS_FILE_SET+=X11 OPTIONS_FILE_UNSET+=QT4 OPTIONS_FILE_SET+=QT5 ================================== Full build log in attach.
> OPTIONS_FILE_SET+=PYTHON Without python bindings (OPTIONS_FILE_UNSET+=PYTHON) was build fine.
Created attachment 174830 [details] Allow Python3 and use correct headers & libraries Please try this patch.
I tried the patch; it does not seem to change the error. /usr/tmp/.../hal/z/SRC/FreeBSD-ports/head/emulators/virtualbox-ose/work/VirtualBox-5.1.6/src/libs/xpcom18a4/python/src/PyIID.cpp:187:2: error: cannot initialize a member subobject of type 'hashfunc' (aka 'Py_hash_t (*)(PyObject *)') with an lvalue of type 'long (PyObject *)': different return type ('Py_hash_t' (aka 'int') vs 'long') PyTypeMethod_hash, /* tp_hash */ ^~~~~~~~~~~~~~~~~ 1 error generated.
> I tried the patch; it does not seem to change the error. Same here.
Created attachment 174850 [details] Add support for Python 3.3 and later I think this patch may work. Please let me know.
With 2nd patch build without errors.
This worked. Thank you. -- Martin
A commit references this bug: Author: jkim Date: Fri Sep 16 18:48:05 UTC 2016 New revision: 422262 URL: https://svnweb.freebsd.org/changeset/ports/422262 Log: Add support for Python 3.x. PR: 212691 Changes: head/emulators/virtualbox-ose/Makefile head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyIID.cpp head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_PyXPCOM.h head/emulators/virtualbox-ose/files/patch-src_libs_xpcom18a4_python_src_TypeObject.cpp head/emulators/virtualbox-ose/pkg-plist
Committed (r422262), thanks!