Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#65751 closed defect (fixed)

qt5-qtbase: Unable to open port: can't read "qt_qmake_spec": no such variable

Reported by: mf2k (Frank Schima) Owned by: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Priority: Normal Milestone:
Component: ports Version: 2.7.99
Keywords: Cc: mascguy (Christopher Nielsen), chrstphrchvz (Christopher Chavez)
Port: qt5-qtbase

Description

$ port info qt5-qtbase
Error: Unable to open port: can't read "qt_qmake_spec": no such variable

Change History (16)

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

Hard to tell what's going on here. Is it a problem with the huge Portfile or the qt5 portgroup?

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

Version: 2.7.99

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Works fine for me, on 10.15. Which macOS release are you testing on Frank?

comment:4 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:5 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: chrstphrchvz added

Adding @chrstphrchvz as well

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

Monterey 12.5.

comment:7 in reply to:  6 Changed 2 years ago by mascguy (Christopher Nielsen)

In addition to 10.15, just tested on Big Sur and Monterey. And both of the latter are fine too.

Do you have any local portfile modifications in play? I'd also be interested in the output from port -d info qt5-qtbase, as that might help pinpoint where the failure is occurring.

Big Sur:

$ sw_vers
ProductName:	macOS
ProductVersion:	11.6.8
BuildVersion:	20G730

$ port info qt5-qtbase
qt5-qtbase @5.15.5 (aqua)
Variants:             debug, examples, [+]openssl, tests, universal

Description:          Tools and Module(s) for Qt Tool Kit 5: Qt Core, Qt GUI, Qt Network, Qt SQL, Qt Test, Qt Widgets,
                      Qt Concurrent, Qt D-Bus, Qt OpenGL, Qt Platform Headers, Qt Print Support, and Qt XML
Homepage:             https://www.qt.io

Extract Dependencies: xz
Build Dependencies:   pkgconfig, gawk
Library Dependencies: zlib, libpng, libjpeg-turbo, freetype, dbus, glib2, icu, pcre2, harfbuzz, double-conversion, zstd,
                      openssl
Conflicts with:       qt3, qt3-mac, qt56-qtbase, qt511-qtbase, qt53-qtbase, qt57-qtbase, qt58-qtbase, qt513-qtbase,
                      qt55-qtbase, qt59-qtbase
Platforms:            macosx
License:              (LGPL-3 or GPL-3 or OpenSSLException)
Maintainers:          Email: mcalhoun@macports.org, GitHub: MarcusCalhoun-Lopez
                      Policy: openmaintainer

Monterey:

$ sw_vers
ProductName:	macOS
ProductVersion:	12.5.1
BuildVersion:	21G83

$ port info qt5-qtbase
qt5-qtbase @5.15.5 (aqua)
Variants:             debug, examples, [+]openssl, tests, universal

Description:          Tools and Module(s) for Qt Tool Kit 5: Qt Core, Qt GUI, Qt Network, Qt SQL, Qt Test, Qt Widgets,
                      Qt Concurrent, Qt D-Bus, Qt OpenGL, Qt Platform Headers, Qt Print Support, and Qt XML
Homepage:             https://www.qt.io

Extract Dependencies: xz
Build Dependencies:   pkgconfig, gawk
Library Dependencies: zlib, libpng, libjpeg-turbo, freetype, dbus, glib2, icu, pcre2, harfbuzz, double-conversion, zstd,
                      openssl
Conflicts with:       qt3, qt3-mac, qt56-qtbase, qt511-qtbase, qt53-qtbase, qt57-qtbase, qt58-qtbase, qt513-qtbase,
                      qt55-qtbase, qt59-qtbase
Platforms:            macosx
License:              (LGPL-3 or GPL-3 or OpenSSLException)
Maintainers:          Email: mcalhoun@macports.org, GitHub: MarcusCalhoun-Lopez
                      Policy: openmaintainer

comment:8 Changed 2 years ago by chrstphrchvz (Christopher Chavez)

I have not reproduced this issue on macOS 10.15 or 12. I haven’t spotted somewhere qt_qmake_spec might not be set in the relevant portfiles/portgroups.

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

I'm running the latest base from Github. Maybe that's related?

comment:10 in reply to:  9 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to mf2k:

I'm running the latest base from Github. Maybe that's related?

Can you attach the complete output from port -d info qt5-qtbase? If there is an issue with base, @jmroot will probably want that for review...

comment:11 Changed 2 years ago by jmroot (Joshua Root)

DEBUG: can't read "qt_qmake_spec": no such variable
    while executing
"configure.args-append "-platform ${qt_qmake_spec}""
    ("uplevel" body line 270)
    invoked from within
"uplevel 1 $body"
    (procedure "subport" line 9)
    invoked from within
"subport ${name}-${module} {

        if { ${module} ne "qtwebengine" } {
            distname ${module}-${middle_name}-src-${version}
            if {..."
    ("foreach" body line 6)
    invoked from within
"foreach {module module_info} [array get modules] {

    set revision_string [string trim [lindex ${module_info} 7]]
    set revision_string [string ra..."
    (file "Portfile" line 963)
    invoked from within
"source Portfile"
    invoked from within
"$workername eval {source Portfile}"
DEBUG: can't read "qt_qmake_spec": no such variable
    while executing
"error $result"
    (procedure "mportopen" line 53)
    invoked from within
"mportopen $porturl [array get options] [array get merged_variations]"
Error: Unable to open port: can't read "qt_qmake_spec": no such variable

comment:12 Changed 2 years ago by jmroot (Joshua Root)

Looks like it's relying on being able to source the portgroup twice, once with a magic variable set and once without, and get different results each time. That's pretty broken.

comment:13 in reply to:  12 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to jmroot:

Looks like it's relying on being able to source the portgroup twice, once with a magic variable set and once without, and get different results each time. That's pretty broken.

Ah, yep. And the recent change to base - whereby a pg isn't included multiple times - prevents that from working. (Though I fully support that behavior change though, and glad that you added it!)

comment:14 Changed 2 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

In 1719a40fce26c09ed29c4ecda3fca6b2fd1bc7a7/macports-ports (master):

qt5 pg: don't rely on multiple inclusion

Split out two new portgroups that can be included instead of the
previous method of setting just_want_qt5_version_info or
just_want_qt5_variables.

Fixes: #65751

comment:15 Changed 2 years ago by chrstphrchvz (Christopher Chavez)

Is qt6 affected by a similar issue?

comment:16 in reply to:  15 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to chrstphrchvz:

Is qt6 affected by a similar issue?

Yep, and Josh fixed via the following commit:

https://github.com/macports/macports-ports/commit/b0fe9a49e8b4945bc45d6b3360a781b7851f4dc1

Note: See TracTickets for help on using tickets.