[MacPorts] #68685: cyrus-sasl2: Missing universal variant (was: Cannot install kdepimlibs4 - Ventura 13.6 (arm))
MacPorts
noreply at macports.org
Mon Nov 13 04:09:37 UTC 2023
#68685: cyrus-sasl2: Missing universal variant
--------------------------+--------------------
Reporter: simpplrjay | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: cyrus-sasl2 |
--------------------------+--------------------
Changes (by ryandesign):
* port: kdepimlibs4 => cyrus-sasl2
Old description:
> 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.
New description:
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.
}}}
--
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 [ticket:41872 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.
--
Ticket URL: <https://trac.macports.org/ticket/68685#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list