[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