Opened 4 years ago

Closed 4 years ago

Last modified 3 years ago

#60627 closed defect (fixed)

py38-pyqt5: error: object of type 'QSGGeometry' cannot be assigned because its copy assignment operator is implicitly deleted

Reported by: dajare (David) Owned by: reneeotten (Renee Otten)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: michaelld (Michael Dickens), MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), dajare (David)
Port: py-pyqt5

Description

"Command execution failed". The latter part of the log file reads:

:info:build Exit code: 2
:error:build Failed to build py38-pyqt5: command execution failed
:debug:build Error code: CHILDSTATUS 8413 2
:debug:build Backtrace: command execution failed
:debug:build     while executing
:debug:build "system {*}$notty {*}$nice $fullcmdstring"
:debug:build     invoked from within
:debug:build "command_exec build"
:debug:build     (procedure "portbuild::build_main" line 8)
:debug:build     invoked from within
:debug:build "$procedure $targetname"
:error:build See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pyqt5/py38-pyqt5/main.log for details.

I am attempting to install "treeline". This is the first time I have used MacPorts.

MacPorts v. 2.6.2; OS Mojave 10.14.6.

Attachments (1)

py38-pyqt5_main-log.zip (40.0 KB) - added by dajare (David) 4 years ago.
py38-pyqt5/main.log

Download all attachments as: .zip

Change History (22)

comment:1 Changed 4 years ago by mf2k (Frank Schima)

In the future, please fill in the Port field with the port that fails to build

comment:2 Changed 4 years ago by mf2k (Frank Schima)

Port: py-pyqt5 added; treeline removed
Summary: py38-pyqt5 - build failurepy38-pyqt5: build failure

comment:3 Changed 4 years ago by mf2k (Frank Schima)

Resolution: invalid
Status: newclosed

Please attach the main.log file after cleaning the port (sudo port clean py38-pyqt5) and re-open the ticket. Without this log, we cannot diagnose the problem.

Last edited 4 years ago by mf2k (Frank Schima) (previous) (diff)

comment:4 in reply to:  3 Changed 4 years ago by dajare (David)

Replying to mf2k:

Please attach the main.log file after cleaning the port (sudo port clean py38-pyqt5) and re-open the ticket. Without this log, we cannot diagnose the problem.

Thanks for the guidance. I've cleaned, attempted to install again, and attach the main.log file, zipped as its 1.0Mb. Hope I've done this right.

Changed 4 years ago by dajare (David)

Attachment: py38-pyqt5_main-log.zip added

py38-pyqt5/main.log

comment:5 Changed 4 years ago by dajare (David)

Resolution: invalid
Status: closedreopened

comment:6 Changed 4 years ago by mf2k (Frank Schima)

The error appears to be:

:info:build /Library/Developer/CommandLineTools/usr/bin/clang++ -c -pipe -stdlib=libc++ -Os -std=gnu++11  -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.14 -fno-exceptions -Wall -Wextra -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public -DPy_LIMITED_API=0x03040000 -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I. -I/opt/local/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8 -I../qpy/QtQuick -I/opt/local/libexec/qt5/lib/QtQuick.framework/Headers -I/opt/local/libexec/qt5/lib/QtGui.framework/Headers -I/opt/local/libexec/qt5/lib/QtQmlModels.framework/Headers -I/opt/local/libexec/qt5/lib/QtQml.framework/Headers -I/opt/local/libexec/qt5/lib/QtNetwork.framework/Headers -I/opt/local/libexec/qt5/lib/QtCore.framework/Headers -I. -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/AGL.framework/Headers -I/opt/local/libexec/qt5/mkspecs/macx-clang -F/opt/local/libexec/qt5/lib -o sipQtQuickQSGGeometryColoredPoint2D.o sipQtQuickQSGGeometryColoredPoint2D.cpp
:info:build /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pyqt5/py38-pyqt5/work/PyQt5-5.14.2/QtQuick/sipQtQuickQSGGeometry.cpp:940:59: error: object of type 'QSGGeometry' cannot be assigned because its copy assignment operator is implicitly deleted
:info:build     reinterpret_cast< ::QSGGeometry *>(sipDst)[sipDstIdx] = *reinterpret_cast< ::QSGGeometry *>(sipSrc);
:info:build                                                           ^
:info:build /opt/local/libexec/qt5/lib/QtQuick.framework/Headers/qsggeometry.h:211:25: note: copy assignment operator of 'QSGGeometry' is implicitly deleted because field 'm_attributes' is of reference type 'const QSGGeometry::AttributeSet &'
:info:build     const AttributeSet &m_attributes;
:info:build                         ^
:info:build 1 error generated.

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

The issue here is that the new py-sip isn't compatible with this py-pyqt5. There is an updated py-pyqt5 that I'd guess is compatible; it claims to add compatibility with the current Qt 5.15.0 release. Here's a link to the announcement with download info: https://riverbankcomputing.com/news/PyQt_v5.15.0_Released .

Last edited 4 years ago by michaelld (Michael Dickens) (previous) (diff)

comment:8 Changed 4 years ago by michaelld (Michael Dickens)

Or it might be that PyQt5 now requires its own SIP module; here's that announcement: https://riverbankcomputing.com/news/PyQt5-sip_v12.8.0_Released

comment:9 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: py38-pyqt5: build failurepy38-pyqt5: error: object of type 'QSGGeometry' cannot be assigned because its copy assignment operator is implicitly deleted

comment:10 Changed 4 years ago by reneeotten (Renee Otten)

I can look into updating the py-pyqt5 port, but in the past we typically would hold off until the qt5 is updated.

comment:11 Changed 4 years ago by michaelld (Michael Dickens)

I believe PyQt5 is backward compatible, so updating it now should be safe both for current Qt5 as well as the new Qt 5.15.

comment:12 Changed 4 years ago by mf2k (Frank Schima)

Cc: michaelld added

comment:13 Changed 4 years ago by mf2k (Frank Schima)

@michaelld: Can you please update this soon? This port currently cannot be installed at all. Otherwise I think we need to revert py-sip.

comment:14 in reply to:  13 Changed 4 years ago by reneeotten (Renee Otten)

Owner: set to reneeotten
Status: reopenedaccepted

Replying to mf2k:

@michaelld: Can you please update this soon? This port currently cannot be installed at all. Otherwise I think we need to revert py-sip.

I will take a look at it now and put up a PR if it works. But please note that this port is openmaintainer so if you want something to be done quickly, you can always do it yourself.

comment:15 Changed 4 years ago by reneeotten (Renee Otten)

Cc: MarcusCalhoun-Lopez added

so, just a simple update of the versions does allow me to build py38-pyqt5, py38-pyqt5-chart but not py38-pyqt5-webengine.

The latter fails with:

QtWebEngineWidgets/sipQtWebEngineWidgetsQWebEngineCertificateError.cpp:372:99: error: no member named 'CertificateKnownInterceptionBlocked' in 'QWebEngineCertificateError'

which is because QWebEngineCertificateError::CertificateKnownInterceptionBlocked is added in Qt 5.15.0.

So this will require an update of the Qt5 port first, before we can update py-pyqt5 and its subports. Before someone asks: I don't think we should update py-pyqt5 and keep the subports at an older version, that sounds like asking for trouble down the line.

Last edited 4 years ago by reneeotten (Renee Otten) (previous) (diff)

comment:16 Changed 4 years ago by mf2k (Frank Schima)

@reneeotten: Thank you for looking into this. It's not clear to me what needs to happen now. Hopefully michaelld and MarcusCalhoun-Lopez can figure it out!

comment:17 Changed 4 years ago by dajare (David)

Cc: dajare added

comment:18 Changed 4 years ago by reneeotten (Renee Otten)

the mailinglist suggest there is a patch to fix building of the latest PyQtWebengine with Qt 5.14.x - I'll try the patch and see if that indeed works.

comment:19 Changed 4 years ago by reneeotten (Renee Otten)

Resolution: fixed
Status: acceptedclosed

In 7fa9969863632abbcc242635ac9cec0bb48a864b/macports-ports (master):

py-pyqt5-[webengine|chart]: update to 5.15.0

  • refresh patches
  • add patch to allow building of QtWebEngine with Qt 5.14

Closes: #60627

comment:20 Changed 4 years ago by dajare (David)

OP here. Even after a "clean" and then re-install, I got an error on py38-pyqt5. So I "uninstall[ed] installed" as a 2.4.1 of the MacPorts guide, and tried again. And ... success! Thanks so much for attending to this bug so swiftly and successfully.

comment:21 Changed 3 years ago by klcooksey (Kathy Cooksey)

Linking this with Ticket 62009, comment3: I'm having issues with py37-pyqt5 on OSX 10.10.5. Does the fix reference in comment19 here apply to pre-py39-pyqt5 (which my Macports is the most recent and default installation when py-pyqt5 is requested). Mahalo.

Note: See TracTickets for help on using tickets.