Opened 9 months ago

Closed 7 months ago

#68073 closed defect (fixed)

py311-pyqt5 +webkit: fail to build on arm64

Reported by: nilason (Nicklas Larsson) Owned by: reneeotten (Renee Otten)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: py-pyqt5

Description

Building py311-pyqt5 +webkit: fails to build on macOS 12.6.6 with Xcode 14.2.

Extract of log:

sudo port -vst install py311-pyqt5 +webkit                                                                                                                                           
--->  Computing dependencies for py311-pyqt5.
--->  Fetching distfiles for py311-pyqt5
--->  Verifying checksums for py311-pyqt5
--->  Checksumming PyQt5-5.15.9.tar.gz
--->  Extracting py311-pyqt5
--->  Extracting PyQt5-5.15.9.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pyqt5/py311-pyqt5/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/py-pyqt5/PyQt5-5.15.9.tar.gz' | /usr/bin/tar -xf - 
--->  Applying patches to py311-pyqt5
--->  Applying patch-project.py.diff
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pyqt5/py311-pyqt5/work/PyQt5-5.15.9" && /usr/bin/patch -p0 < '/opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/python/py-pyqt5/files/patch-project.py.diff'
patching file project.py
Hunk #1 succeeded at 215 (offset 5 lines).
--->  Patching project.py: s|@PYVER@|311|g
--->  Configuring py311-pyqt5
--->  Building py311-pyqt5
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_python_py-pyqt5/py311-pyqt5/work/PyQt5-5.15.9" && sip-build-3.11 --qmake /opt/local/libexec/qt5/bin/qmake --verbose --confirm-license --dbus=/opt/local/Library/Frameworks/Python.framework/Versions/3.11/include/python3.11/dbus-1.0 --disable QtWebKit --disable QtWebKitWidgets 
Querying qmake about your Qt installation...
/opt/local/libexec/qt5/bin/qmake -query
This is the GPL version of PyQt 5.15.9 (licensed under the GNU General Public License) for Python 3.11.5 on darwin.
Found the license file 'pyqt-gpl.sip'.
Checking to see if the QtCore bindings can be built...
/opt/local/libexec/qt5/bin/qmake QtCore.pro
Project ERROR: Could not resolve SDK Path for 'macosx12.3' using --show-sdk-path
Checking to see if the QtNetwork bindings can be built...
/opt/local/libexec/qt5/bin/qmake QtNetwork.pro
Project ERROR: Could not resolve SDK Path for 'macosx12.3' using --show-sdk-path
Checking to see if the QtGui bindings can be built...
/opt/local/libexec/qt5/bin/qmake QtGui.pro
Project ERROR: Could not resolve SDK Path for 'macosx12.3' using --show-sdk-path
...

Attachments (1)

main.log (294.1 KB) - added by nilason (Nicklas Larsson) 9 months ago.
main log file

Download all attachments as: .zip

Change History (6)

Changed 9 months ago by nilason (Nicklas Larsson)

Attachment: main.log added

main log file

comment:1 Changed 8 months ago by reneeotten (Renee Otten)

Cc: reneeotten removed
Owner: set to reneeotten
Status: newassigned

that's an error we've seen before but typically these are "resolved" or at least circumvented by adding use_xcode yes to the Portfile, which is already the case for py-pyqt5. That port builds on all buildbots so if that doesn't work for your system now there must be something specific with that. Can you confirm that the py311-pyqt5 port without the +qtwekbit build from source correctly on your system? If that's the case, then it would suggest that the issue is somewhere in the variant - but to be honest I doubt that is the case. It's more likely that there is some mismatch of the supported XCode version for your system and the one you have currently installed, in which case I cannot help (regardless I don't have an arm64 machine so if the issue is specific to that architecture, then you'll be on your own as well).

comment:2 Changed 8 months ago by nilason (Nicklas Larsson)

Somewhere the 12.3 is "burnt in", but I cannot find where. With a symlink hack I managed to build both py311-pyqt5 and py311-pyqt5 +webkit:

# not working

xcrun --sdk macosx12.3  --show-sdk-path                                                                    
2023-09-07 21:05:40.583 xcodebuild[95935:5927376] Writing error result bundle to /var/folders/41/b45_b8253jn3rxtr4cd0bd7c0000gn/T/ResultBundle_2023-07-09_21-05-0040.xcresult
xcodebuild: error: SDK "macosx12.3" cannot be located.
2023-09-07 21:05:41.978 xcodebuild[95937:5927390] Writing error result bundle to /var/folders/41/b45_b8253jn3rxtr4cd0bd7c0000gn/T/ResultBundle_2023-07-09_21-05-0041.xcresult
xcodebuild: error: SDK "macosx12.3" cannot be located.
xcrun: error: unable to lookup item 'Path' in SDK 'macosx12.3'

sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk
ls -l /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs 
total 0
drwxr-xr-x  7 root  wheel  224 Feb 10  2023 MacOSX.sdk
lrwxr-xr-x  1 root  wheel   55 Sep  7 21:06 MacOSX12.3.sdk -> /Library/Developer/CommandLineTools/SDKs/MacOSX12.3.sdk
lrwxr-xr-x  1 root  wheel   10 Feb 10  2023 MacOSX13.1.sdk -> MacOSX.sdk
lrwxr-xr-x  1 root  wheel   10 Feb 10  2023 MacOSX13.sdk -> MacOSX.sdk
xcrun --sdk macosx12.3  --show-sdk-path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk

# working

But PyQt5.QtWebKit seems to not be installed, because of unmatched "-append" and "-delete" in Portfile:

...
    build.args-append \
                   ...
                    --disable QtWebKit \
                    --disable QtWebKitWidgets

...
    variant webkit description {Build QtWebKit module} {
        qt5.depends_component   qtwebkit
        build.args-delete       --disable=QtWebKit \
                                --disable=QtWebKitWidgets
    }
....

Changing the latter to:

        build.args-delete       --disable QtWebKit --disable QtWebKitWidgets

works.

The question is, why is +webkit not default variant?

comment:3 in reply to:  2 Changed 8 months ago by reneeotten (Renee Otten)

Replying to nilason:

The question is, why is +webkit not default variant?

because webkit isn't used for several other ports and there is no need to pull in that dependency without any reason (and as far as I know it's deprecated in newer versions, and it apparently doesn't build on newer systems).

comment:4 Changed 8 months ago by nilason (Nicklas Larsson)

In 71923ff08cdba50c0aeb264828e2d77d5de59dfd/macports-ports (master):

py-pyqt5: fix +webkit variant

The build.args-delete args must match the build.args-append args.
The qtwebkit component was added but QtWebKit and QtWebKitWidgets
remained disabled.
See: #68073

comment:5 Changed 7 months ago by reneeotten (Renee Otten)

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