[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