Opened 3 months ago

Closed 3 months ago

Last modified 3 months ago

#70620 closed defect (fixed)

py*-pyqt6: Failed to Parse After Sync

Reported by: RobK88 Owned by: reneeotten (Renee Otten)
Priority: Normal Milestone:
Component: ports Version: 2.10.1
Keywords: highsierra Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: py-pyqt6

Description

After the last sync on my old MacBook Pro running High Sierra, I see:

sudo port -v selfupdate
....
Adding subport p5.30-parallel-forkmanager
Adding subport p5.34-parallel-forkmanager
Adding subport p5.32-parallel-forkmanager
Failed to parse file python/py-pyqt6/Portfile with subport 'py39-pyqt6': can't read "qt6.version": can't read "qt_info()": no such element in array
Failed to parse file python/py-pyqt6/Portfile with subport 'py310-pyqt6': can't read "qt6.version": can't read "qt_info()": no such element in array
Failed to parse file python/py-pyqt6/Portfile with subport 'py311-pyqt6': can't read "qt6.version": can't read "qt_info()": no such element in array
Failed to parse file python/py-pyqt6/Portfile with subport 'py312-pyqt6': can't read "qt6.version": can't read "qt_info()": no such element in array

Total number of ports parsed:	577 
Ports successfully parsed:	573 
Ports failed:			4 
Up-to-date ports skipped:	38939


The ports tree has been updated.

1 port is outdated. Run 'port outdated' for details.
To upgrade your installed ports, you should run
  port upgrade outdated
bash-3.2$

Change History (6)

comment:1 Changed 3 months ago by jmroot (Joshua Root)

Cc: reneeotten removed
Owner: set to reneeotten
Status: newassigned
Summary: Failed to Parse Files After Syncpy*-pyqt6: Failed to Parse After Sync

comment:2 Changed 3 months ago by jmroot (Joshua Root)

Cc: MarcusCalhoun-Lopez added

Looks like it's probably a qt6 portgroup issue.

comment:3 Changed 3 months ago by reneeotten (Renee Otten)

I guess the issue is in the qt6_info-1.0.tcl PortGroup, more precisely in this function:

 89 proc qt6::version {} {
 90     array set qt_info [list {*}${qt6::available_versions}]
 91     return [lindex $qt_info([option qt6.base]) 0]

It's due to the fact that on systems older than macOS 10.15 there is no version of Qt 6 that will work and thus ${qt6::available_versions} is probably empty and making an array and extracting a value doesn't work. Unfortunately, I cannot reproduce/troubleshoot this easily since I don't have an macOS version where this issue manifests itself and my Tcl knowledge isn't sufficient to easily see how/where to resolve this. So I don't think I'll make progress on this anytime soon - fortunately it isn't a fatal issue; the port just doesn't parse for you but it would never install anything on these old systems anyway.

Last edited 3 months ago by reneeotten (Renee Otten) (previous) (diff)

comment:4 Changed 3 months ago by jmroot (Joshua Root)

You should just need to add a check that the array element in question exists, i.e. [info exists qt_info([option qt6.base])], and do something reasonable like returning an empty list otherwise.

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

Resolution: fixed
Status: assignedclosed

In 89613f7c32763631c0ae86530f96ab73d9d16c6a/macports-ports (master):

qt6_info PG: fix qt.version for unsupported systems

Closes: #70620

comment:6 Changed 3 months ago by reneeotten (Renee Otten)

thanks Josh - hopefully fixed now!

Note: See TracTickets for help on using tickets.