[MacPorts] #62548: icu +universal does not work on Big Sur x86_64 (was: Universal variant for icu, which many ports depend on, doesn't work)
MacPorts
noreply at macports.org
Wed Mar 24 22:57:04 UTC 2021
#62548: icu +universal does not work on Big Sur x86_64
------------------------+--------------------
Reporter: CharlesJS | Owner: (none)
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: icu |
------------------------+--------------------
Changes (by jmroot):
* port: => icu
Old description:
> Many ports depend on the `icu` port. Unfortunately, its universal build
> does not work.
>
> When trying to build a dependent port:
>
> ```
> $ sudo port install gnutls +universal
> Warning: The macOS 11.2 SDK does not appear to be installed. Ports may
> not build correctly.
> Warning: You can install it as part of the Xcode Command Line Tools
> package by running `xcode-select --install'.
> ---> Computing dependencies for gnutls
> Error: Cannot install libxslt for the archs 'arm64 x86_64' because
> Error: its dependency icu cannot build for the required archs.
> Error: Follow https://guide.macports.org/#project.tickets to report a
> bug.
> Error: Processing of port gnutls failed
> ```
>
> But:
>
> ```
> $ port variants icu
> icu has the variants:
> universal: Build for multiple architectures
> ```
>
> And yet:
> ```
> $ sudo port install icu +universal
> ---> Fetching archive for icu
> ---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2 from
> https://pek.cn.packages.macports.org/macports/packages/icu
> ---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2.rmd160 from
> https://pek.cn.packages.macports.org/macports/packages/icu
> ---> Installing icu @67.1_3
> ---> Activating icu @67.1_3
> ---> Cleaning icu
> ---> Updating database of binaries
> ---> Scanning binaries for linking errors
> ---> No broken files found.
> ---> No broken ports found.
>
> $ file /opt/local/lib/libicudata.dylib
> /opt/local/lib/libicudata.dylib: Mach-O 64-bit dynamically linked shared
> library x86_64
> ```
New description:
Many ports depend on the `icu` port. Unfortunately, its universal build
does not work.
When trying to build a dependent port:
{{{
$ sudo port install gnutls +universal
Warning: The macOS 11.2 SDK does not appear to be installed. Ports may not
build correctly.
Warning: You can install it as part of the Xcode Command Line Tools
package by running `xcode-select --install'.
---> Computing dependencies for gnutls
Error: Cannot install libxslt for the archs 'arm64 x86_64' because
Error: its dependency icu cannot build for the required archs.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port gnutls failed
}}}
But:
{{{
$ port variants icu
icu has the variants:
universal: Build for multiple architectures
}}}
And yet:
{{{
$ sudo port install icu +universal
---> Fetching archive for icu
---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2 from
https://pek.cn.packages.macports.org/macports/packages/icu
---> Attempting to fetch icu-67.1_3.darwin_20.x86_64.tbz2.rmd160 from
https://pek.cn.packages.macports.org/macports/packages/icu
---> Installing icu @67.1_3
---> Activating icu @67.1_3
---> Cleaning icu
---> Updating database of binaries
---> Scanning binaries for linking errors
---> No broken files found.
---> No broken ports found.
$ file /opt/local/lib/libicudata.dylib
/opt/local/lib/libicudata.dylib: Mach-O 64-bit dynamically linked shared
library x86_64
}}}
--
Comment:
The technical details are that icu apparently needs to run executables
that are built during the build process, and also can't be built with
multiple -arch flags at once, but needs to build each arch separately and
lipo them together. This means that it can be built +universal on Big Sur
on arm64 hardware but not on x86_64.
--
Ticket URL: <https://trac.macports.org/ticket/62548#comment:2>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list