Opened 12 months ago
Last modified 7 months ago
#68685 reopened defect
cyrus-sasl2: Missing universal variant — at Version 1
Reported by: | simpplrjay | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | ||
Port: | cyrus-sasl2 |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
It's trying to install for x86
Error: Cannot install kdepimlibs4 for the arch 'x86_64' because Error: its dependency cyrus-sasl2 is only installed for the arch 'arm64' Error: and does not have a universal variant. Error: Unable to execute port: architecture mismatch ---> Some of the ports you installed have notes: db48 has the following notes: The Java and Tcl bindings are now provided by the db48-java and db48-tcl subports.
Change History (1)
comment:1 Changed 12 months ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|---|
Port: | cyrus-sasl2 added; kdepimlibs4 removed |
Summary: | Cannot install kdepimlibs4 - Ventura 13.6 (arm) → cyrus-sasl2: Missing universal variant |
Note: See
TracTickets for help on using
tickets.
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:
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 ofarm64 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 runport 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.