Changes between Initial Version and Version 1 of Ticket #68685


Ignore:
Timestamp:
Nov 13, 2023, 4:09:37 AM (6 months ago)
Author:
ryandesign (Ryan Carsten Schmidt)
Comment:

Yes, MacPorts is trying to install kdepimlibs4 for x86_64 because, like all software depending on qt4-mac, kdepimlibs4 cannot be compiled for arm64. Therefore, MacPorts must install its dependencies universal first.

It's failing because it claims cyrus-sasl2 doesn't have a universal variant, which is surprising because the cyrus-sasl2 Portfile includes the muniversal portgroup so clearly it was intended for it to have a universal variant. There's even a ten-year-old ticket about a problem using cyrus-sasl2's universal variant so it existed at one point.

On my Monterey x86_64 machine, debug output says:

DEBUG: muniversal: < 2 archs supported, not adding universal variant

but I'm not sure why it would say that. The universal_archs in my macports.conf, and I suspect in yours as well, is commented out and therefore set to the default value of arm64 x86_64 which by my count is not less than two. Maybe on my system the muniversal portgroup is concluding that an x86_64 machine cannot run arm64 software (the ability to run the compiled software is sometimes a prerequisite to be able to build it) and is therefore removing the arm64 architecture from the list, leaving just one. But since you have cyrus-sasl2 installed for arm64, I assume you are on an arm64 machine, which can run x86_64 software, so the muniversal portgroup should not have reached that conclusion on your system. Just to make sure, can you run port variants cyrus-sasl2 and see if universal is among those listed? If not, we need to figure out what has gone wrong in the Portfile or portgroup programming.

I see that the cyrus-sasl2 Portfile includes the muniversal portgroup before the legacysupport portgroup whereas we usually include portgroups alphabetically. Sometimes portgroups don't work right when included in the wrong order. The legacysupport portgroup in particular contains code that will complain if it is included after the makefile portgroup because that combination in that order is known to cause problems so we probably need to change the order. However, changing the order does not cause the missing variant to appear for me so something else is also wrong.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #68685

    • Property Port cyrus-sasl2 added; kdepimlibs4 removed
    • Property Summary changed from Cannot install kdepimlibs4 - Ventura 13.6 (arm) to cyrus-sasl2: Missing universal variant
  • Ticket #68685 – Description

    initial v1  
    11It's trying to install for x86
    22
     3{{{
    34Error: Cannot install kdepimlibs4 for the arch 'x86_64' because
    45Error: its dependency cyrus-sasl2 is only installed for the arch 'arm64'
     
    910    The Java and Tcl bindings are now provided by the db48-java and
    1011    db48-tcl subports.
     12}}}