Bug 212691 - emulators/virtualbox-ose 5.1.6 build error: PyIID.cpp:187:2: error: cannot initialize a member subobject of type 'hashfunc'
Summary: emulators/virtualbox-ose 5.1.6 build error: PyIID.cpp:187:2: error: cannot in...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: i386 Any
: --- Affects Only Me
Assignee: Jung-uk Kim
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-14 17:26 UTC by Vladimir Druzenko
Modified: 2016-09-16 18:51 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (vbox)


Attachments
Full build log of emulators/virtualbox-ose 5.1.6. (811.77 KB, text/x-log)
2016-09-14 17:26 UTC, Vladimir Druzenko
no flags Details
Allow Python3 and use correct headers & libraries (810 bytes, patch)
2016-09-16 13:05 UTC, Jung-uk Kim
no flags Details | Diff
Add support for Python 3.3 and later (5.49 KB, patch)
2016-09-16 16:47 UTC, Jung-uk Kim
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Druzenko freebsd_committer freebsd_triage 2016-09-14 17:26:08 UTC
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.
Comment 1 Vladimir Druzenko freebsd_committer freebsd_triage 2016-09-16 07:28:29 UTC
> OPTIONS_FILE_SET+=PYTHON

Without python bindings (OPTIONS_FILE_UNSET+=PYTHON) was build fine.
Comment 2 Jung-uk Kim freebsd_committer freebsd_triage 2016-09-16 13:05:55 UTC
Created attachment 174830 [details]
Allow Python3 and use correct headers & libraries

Please try this patch.
Comment 3 Martin Birgmeier 2016-09-16 15:26:02 UTC
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.
Comment 4 Vladimir Druzenko freebsd_committer freebsd_triage 2016-09-16 16:33:20 UTC
> I tried the patch; it does not seem to change the error.
Same here.
Comment 5 Jung-uk Kim freebsd_committer freebsd_triage 2016-09-16 16:47:27 UTC
Created attachment 174850 [details]
Add support for Python 3.3 and later

I think this patch may work.  Please let me know.
Comment 6 Vladimir Druzenko freebsd_committer freebsd_triage 2016-09-16 18:38:40 UTC
With 2nd patch build without errors.
Comment 7 Martin Birgmeier 2016-09-16 18:39:52 UTC
This worked. Thank you.

-- Martin
Comment 8 commit-hook freebsd_committer freebsd_triage 2016-09-16 18:48:08 UTC
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
Comment 9 Jung-uk Kim freebsd_committer freebsd_triage 2016-09-16 18:51:59 UTC
Committed (r422262), thanks!