Opened 7 years ago

Closed 7 years ago

#53200 closed defect (fixed)

py35-pyqt5 does not build with sip 4.19

Reported by: dmarteau (David Marteau) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mmoll@…, mkae (Marko Käning), jjstickel (Jonathan Stickel), michaelld (Michael Dickens), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: py-pyqt5

Description

py35-pyqt5 fail to build weth the following error:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe
-stdlib=libc++ -fno-exceptions -O2 -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer
/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -mmacosx-version-min=10.9 -Wall -W -fPIC 
-DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DQT_NO_DEBUG -DQT_PLUGIN -DQT_CORE_LIB -I. -I. -I/opt
/local/Library/Frameworks/Python.framework/Versions/3.5/include/python3.5m -I../qpy/QtCore -I/opt/local
/libexec/qt5/lib/QtCore.framework/Headers -I. -I/opt/local/libexec/qt5/mkspecs/macx-clang -F/opt/local
/libexec/qt5/lib -o qpycore_enums_flags.o ../qpy/QtCore/qpycore_enums_flags.cpp
../qpy/QtCore/qpycore_chimera.cpp:477:24: error: use of undeclared identifier 'pyqt5ClassTypeDef'
        _is_qflags = ((pyqt5ClassTypeDef *)_type)->flags & 0x01;
                       ^
../qpy/QtCore/qpycore_chimera.cpp:477:43: error: expected expression
        _is_qflags = ((pyqt5ClassTypeDef *)_type)->flags & 0x01;
                                          

The file sip.h that come with sip 4.19 does not contain the pyqt5ClassTypeDef definition: would it be the problem ?

OSX version: 10.9 (Maverick) XCode version: 6.2

Attachments (1)

main.log (1.7 MB) - added by jjstickel (Jonathan Stickel) 7 years ago.
build failure 17-01-05

Download all attachments as: .zip

Change History (18)

comment:1 Changed 7 years ago by mkae (Marko Käning)

Cc: mkae added

comment:2 Changed 7 years ago by mkae (Marko Käning)

Version: 2.3.5

comment:3 Changed 7 years ago by dmarteau (David Marteau)

pyqt5ClassTypeDef has been renamed to pyqt5ClassPluginDef:

see https://riverbankcomputing.com/hg/sip/diff/a0fcb2bc14ca/siplib/sip.h.in.in

comment:4 Changed 7 years ago by dmarteau (David Marteau)

Note that Reinstalling py-sip @4.18.1_0 fix the problem.

comment:5 Changed 7 years ago by jjstickel (Jonathan Stickel)

Cc: jjstickel added

comment:6 Changed 7 years ago by michaelld (Michael Dickens)

Guessing that this ticket is a duplicate of #53197, and thus it should be fixed now. Please do:

sudo port selfupdate

and verify that this is indeed the case.

comment:7 Changed 7 years ago by michaelld (Michael Dickens)

Cc: michaelld added

comment:8 Changed 7 years ago by jjstickel (Jonathan Stickel)

It looks like it proceeds further, but I still get errors (during build phase):

:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_sea.us.rsync.macports.org_release_tarballs_ports_python_py-pyqt5/py35-pyqt5/work/PyQt5_gpl-5.7.1/QtWebEngine/sipQtWebEngineQQuickWebEngineProfile.cpp:982:21: error: no member named 'clearHttpCache' in 'QQuickWebEngineProfile'
:info:build             sipCpp->clearHttpCache();
:info:build             ~~~~~~  ^
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_sea.us.rsync.macports.org_release_tarballs_ports_python_py-pyqt5/py35-pyqt5/work/PyQt5_gpl-5.7.1/QtWebEngine/sipQtWebEngineQQuickWebEngineProfile.cpp:1125:67: error: no member named 'NoCache' in 'QQuickWebEngineProfile'
:info:build     {sipName_NoCache, static_cast<int>( ::QQuickWebEngineProfile::NoCache), 1},
:info:build                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~^
:info:build 2 errors generated.

I am using the webengine variant (needed for py35-spyder-devel), so maybe that is why this wasn't caught with the referenced patch. Let me know if I should open a separate ticket for this case.

comment:9 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

clearHttpCache and NoCache were introduced in Qt 5.7, which is not yet port of MacPorts.
This would seem to be a different error.

comment:10 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: MarcusCalhoun-Lopez added

comment:11 in reply to:  9 Changed 7 years ago by jjstickel (Jonathan Stickel)

Replying to MarcusCalhoun-Lopez:

clearHttpCache and NoCache were introduced in Qt 5.7, which is not yet port of MacPorts.
This would seem to be a different error.

I don't understand all the details, but I think the "fix" discussed on #53197 was to update py-pyqt5 to 5.7, even though qt5 is still at 5.6. Looks like the doesn't quite work all the way.

comment:12 Changed 7 years ago by RJVB (René Bertin)

Jonathan, is what you report in comment:8 the only failure? If so, you should probably report it upstream, because PyQt 5.7 is supposed to build against Qt 5.6 and thus shouldn't use clearHttpCache() and NoCache() unconditionally.

Note however that it *is* possible to build QtWebEngine 5.7.1 against Qt 5.6. I've been using such a set-up for a while, and it works, probably because QWE's complexity is in the Chromium engine, not in the Qt wrapper around it.

comment:13 in reply to:  12 Changed 7 years ago by jjstickel (Jonathan Stickel)

Replying to RJVB:

Jonathan, is what you report in comment:8 the only failure?

Those are what I think are the only relevant errors. I'll attach the log.

I just need this as a dependency for Spyder. I don't have time or interest to report upstream, etc.

Changed 7 years ago by jjstickel (Jonathan Stickel)

Attachment: main.log added

build failure 17-01-05

comment:14 Changed 7 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

In f3a70bd9/macports-ports:

py-pyqt5: allow QtWebKit module to work with Qt 5.6

No revbump since port either builds successfully or not at all.
See #53200

comment:15 Changed 7 years ago by RJVB (René Bertin)

I have made upstream aware of the patch, thanks.

comment:16 Changed 7 years ago by jjstickel (Jonathan Stickel)

Works for me now, thanks.

comment:17 Changed 7 years ago by mamoll (Mark Moll)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.