Opened 20 months ago

Last modified 20 months ago

#67146 assigned defect

qt4-mac fails to install during rev-upgrade which was triggered by a successful xhost install

Reported by: kwolcott Owned by: michaelld (Michael Dickens)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: qt4-mac

Description

I've encountered this error several times recently. I thought it was time to create a bug report about it.

After successfully (?) running a self-update and source install of any ports listed from port outdated, I frequently get a warning that qt4-mac needs to be rebuilt. Doing so fails. I have a compressed log file. I'm on a Mac with M1 (Ventura 13.2.1).

Attachments (2)

qt4-mac_main.log.xz (35.3 KB) - added by kwolcott 20 months ago.
Things_depending_on_qt4-mac.log (16.1 KB) - added by kwolcott 20 months ago.
port -qv installed rdepof:qt4-mac | grep -Ev "'noarch'" > Things_depending_on_qt4-mac.log

Download all attachments as: .zip

Change History (5)

Changed 20 months ago by kwolcott

Attachment: qt4-mac_main.log.xz added

comment:1 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: michaelld removed
Keywords: install rev-upgrade removed
Owner: set to michaelld
Status: newassigned

Yes, rev-upgrade runs after any successful port install or upgrade.

The qt4-mac Port specifies (via its inclusion of the qt4-1.0 portgroup, which contains a supported_archs directive) that it does not support arm64, so the port will build for x86_64 on your Apple Silicon Mac, and all of its dependencies must be installed universal to accommodate that. MacPorts should have done that automatically but that doesn't seem to have happened because the errors in the log begin with:

ld: warning: ignoring file /opt/local/lib/libssl.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file /opt/local/lib/libcrypto.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
  "_ASN1_INTEGER_get", referenced from:
      q_ASN1_INTEGER_get(asn1_string_st*) in qsslsocket_openssl_symbols.o
     (maybe you meant: q_ASN1_INTEGER_get(asn1_string_st*))

You can get a list of ports that are a dependency of qt4-mac that are architecture-specific (i.e. are not "noarch") by running this command:

port -qv installed rdepof:qt4-mac | grep -Ev "'noarch'"

What does it show? I'm curious to see what it tells us about the openssl ports, because the error message is happening because those openssl libraries are not installed universal, but that shouldn't be possible.

Changed 20 months ago by kwolcott

port -qv installed rdepof:qt4-mac | grep -Ev "'noarch'" > Things_depending_on_qt4-mac.log

comment:2 Changed 20 months ago by ryandesign (Ryan Carsten Schmidt)

Indeed:

  openssl3 @3.1.0_0+universal requested_variants='+universal' platform='darwin 22' archs='arm64 x86_64' date='2023-03-14T19:57:10-0700'
  openssl3 @3.1.0_1 (active) requested_variants='' platform='darwin 22' archs='arm64' date='2023-03-23T16:28:28-0700'

Reinstall openssl3 with the +universal variant:

sudo port -n upgrade --enforce-variants openssl3 +universal
Version 0, edited 20 months ago by ryandesign (Ryan Carsten Schmidt) (next)

comment:3 Changed 20 months ago by kwolcott

Success :-)

Note: See TracTickets for help on using tickets.