On Jan 11, 2021, at 19:38, Craig Treleaven wrote:

> A user with a new Apple Silicon-based Mac had a go at building mythtv.28.  It 
> failed thusly:
> 
> --->  Computing dependencies for mythtv.28
> Error: Cannot install mythtv-core.28 for the arch 'x86_64' because
> Error: its dependency logrotate does not build for the required arch by
> default
> 
> https://trac.macports.org/ticket/62027
> 
> Given Rosetta2 on these systems, isn’t this a bogus error?  On M1 Macs, we 
> might warn that a dependency is being built for an arch different from that 
> of the main target but why should it be a fatal error?
> 
> What was done during the PPC to Intel transition? Did we try to force all 
> deps of a port to build with the same arch?

MacPorts 2.6.4 is supposed to support all possible arch demotions. On arm64, 
you're supposed to be able to run x86_64. On x86_64, you're supposed to be able 
to run i386. On i386, you're supposed to be able to run ppc. Some of this was 
already in place before, and it was enhanced for 2.6.4 in this commit:

https://github.com/macports/macports-base/commit/94f428eda6bd58b57c670c20fb2362ad7012310a

See this ticket:

https://trac.macports.org/ticket/61430

Installing a port for a demoted architecture would require its dependencies to 
be installed universal. MacPorts is trying to install the dependencies 
universal and is failing on logrotate because it does not have a universal 
variant. The solution is to add a universal variant to logrotate. Alternately, 
if logrotate does not install any libraries (and it looks like it does not), 
add "installs_libs no" to the logrotate portfile so that MacPorts knows it does 
not need to check its architecture. Or if logrotate does install libraries but 
whichever one of mythtv.28's dependencies depends on logrotate (looks like it's 
mythtv-core.28) doesn't link with any of its libraries, add 
"depends_skip_archcheck logrotate" to mythtv-core.28.

Reply via email to