homebrew-core icon indicating copy to clipboard operation
homebrew-core copied to clipboard

icu4c 71.1

Open SMillerDev opened this issue 3 years ago • 19 comments

  • [x] Have you followed the guidelines for contributing?
  • [x] Have you ensured that your commits follow the commit style guide?
  • [x] Have you checked that there aren't other open pull requests for the same formula update/change?
  • [ ] Have you built your formula locally with brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • [ ] Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • [ ] Does your build pass brew audit --strict <formula> (after doing brew install --build-from-source <formula>)? If this is a new formula, does it pass brew audit --new <formula>?

SMillerDev avatar Apr 08 '22 08:04 SMillerDev

Looks like there's no ICU-specific concerns here, just some build issues with Xcode 13.3. I've already fixed all of them in my local branch.

As per last time, I will not be revision bumping texlive in this pull request.

Just a few things to clean up:

  • MPD requires upstreaming a patch first - I'll do that soon.
  • Ideally we'd also sort out the Qt5 issue described in #98765 but this is not a blocker - just nice to avoid two revision bumps.
  • Decide on a merge technique - do we try the code-owners method I suggested previously?

Bo98 avatar Apr 10 '22 15:04 Bo98

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

github-actions[bot] avatar May 02 '22 00:05 github-actions[bot]

This is waiting for a solution on how we built Qt5 on macOS 12.3+. I think that's the only blocker left (+ my previous comment)

Bo98 avatar Jun 11 '22 22:06 Bo98

qt@5 was updated to 5.15.5 in #103229

yurikoles avatar Jun 24 '22 17:06 yurikoles

12-arm64:

Error: 8 failed steps!
brew install --verbose --build-bottle couchdb
brew install --verbose --build-bottle mysql
brew test --verbose node@12
brew install --verbose --build-bottle percona-xtrabackup
brew bottle --verbose --json postgresql --only-json-tab
brew audit qt@5 --git --skip-style
brew install --verbose --build-bottle swift
brew install --verbose --build-bottle vte3

11-arm64:

Error: 6 failed steps!
brew install --verbose --build-bottle couchdb
brew install --verbose --build-bottle mysql
brew install --verbose --build-bottle percona-xtrabackup
brew bottle --verbose --json postgresql --only-json-tab
brew audit qt@5 --git --skip-style
brew install --verbose --build-bottle vte3

Also lots of linkage failures, etc, for dependents. We can ignore node@12. The qt@5 audit failure is

  qt@5:
    * revisions should only increment by 1

carlocab avatar Jul 04 '22 03:07 carlocab

Hmm seems this has regressed over time rather than improved.

couchdb looks like a pre-existing erlang version problem. We should try fix that in a separate PR (so we can test easier if it works), merge that (or cherry-pick it back here) and try again here when done.

mysql apparently just refuses to build now if Homebrew boost is installed which is bizarre and we'll need to sort that out by whatever means/hacks necessary (not conflicts_with).

percona-xtrabackup conflict with percona-server yet again... I'll look into how that's happened but we may need to test that scenario more often.

postgresql is a brew bottle bug. I think we have a workaround in some versioned PostgreSQL formula but we should probably fix it properly.

swift - I'll look into this since I've been maintaining this formula.

vte3 - need to cherry-pick #98909 instead of revision bumping. I forgot to fixup and merge that PR a few weeks ago - sorry!

Bo98 avatar Jul 04 '22 04:07 Bo98

Also lots of linkage failures, etc, for dependents.

Looks like some commits went missing in the rebase (--empty=ask helps but even then you need to be careful). I probably still have them locally so I should have a list of missing ones. Or check https://github.com/Homebrew/homebrew-core/commits/a50b12692cae71ce74ab945594aa9d00e726dca7 I guesss.

Bo98 avatar Jul 04 '22 04:07 Bo98

Let's not cherry pick any fixes into this PR, that only delays them. If we need a fix for something we have a better chance in a new PR.

SMillerDev avatar Jul 04 '22 05:07 SMillerDev

I suggest dropping ICU support from [email protected] (probably in a separate PR) to avoid having to rev bump it with every icu4c update.

carlocab avatar Jul 19 '22 15:07 carlocab

Monterey ARM failures:

Error: 8 failed steps!
brew test --verbose libxml2
brew bottle --verbose --json postgresql --only-json-tab
brew install --verbose --build-bottle couchdb
brew install --verbose --build-bottle gspell
brew test --verbose node@12
brew install --verbose --build-bottle tepl
brew install --verbose --build-bottle tracker
brew install --verbose --build-bottle vte3

Summary of unique failures:

  • [x] libxml2 -- I think https://github.com/Homebrew/brew/pull/13533 may have broke libxml2 as brew doesn't always pick a specific Python when multiple Python are in build environment (e.g. In other PRs, I think I've seen macOS prioritize [email protected] while Linux prioritize [email protected]).
  • [ ] postgresql -- PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/ is getting burned into binaries maybe due to CONFIGURE_ARGS macro used in src/common/config_info.c
  • [ ] couchdb -- we've seen this failure happen sporadically. As mentioned in #105876, it failed in 25.0.1 attempt, but went away in 25.0.2 attempt, and now returned in 25.0.3 attempt. No idea at this point, but thinking some issue with rebar v2 and Erlang 25, so maybe a temporary workaround of erlang@24 may work.
  • [ ] node@12 -- same issue seen in node@14 where the particular old copy of gyp-mac-tool has a #!/usr/bin/env python. In node@14, I went with a test-only PATH workaround (#104172), though wasn't sure if an env-script would have been better.

Following are all due to glib/glib-utils split. Needs depends_on "glib-utils" => :build to use glib-mkenums:

  • [x] gspell -- Interestingly, configure detects that it is missing (checking for glib-mkenums... no), but build doesn't fail until it tries to run $(GLIB_MKENUMS) --template ...
  • [x] tepl
  • [x] tracker
  • [x] vte

cho-m avatar Jul 26 '22 03:07 cho-m

I'll start working on those. I'd argue however that those do not need to delay this merge since they're unrelated to icu4c.

SMillerDev avatar Jul 26 '22 07:07 SMillerDev

I'd argue however that those do not need to delay this merge since they're unrelated to icu4c.

Normally I'd agree but merging this will break the bottles for those formulae, so we have to fix at least the ones modified in this PR.

carlocab avatar Jul 26 '22 12:07 carlocab

I merged #106485 in the meantime, since this doesn't look ready to merge.

carlocab avatar Jul 26 '22 15:07 carlocab

  • Fixes for gspell, tepl, tracker, vte3 in #106768
  • Workaround for couchdb in #106767
  • node@10 will be dropped on Monterey due to Python 2 requirement, but it has been over a year since deprecation date so not too important.
  • [ ] This leaves postgresql and node@12 to avoid dropping bottles on Monterey. Probably better to do quick fix before next run.
  • [ ] New build failure for mysql (also merge conflict). May be due to boost in build environment WITH_ICU=system is not compatible with Homebrew boost. If it still fails with latest version, may need to see if possible to avoid boost detection or just fix linkage in separate PR.
  • [ ] Linux had some other linkage failures in previous run https://github.com/Homebrew/homebrew-core/runs/7495559761?check_suite_focus=true
    • poac
      Full linkage --test poac output
        Missing libraries:
          unexpected (libicudata.so.70)
      
    • unar
      Full linkage --test unar output
        Missing libraries:
          unexpected (libicuuc.so.70)
      

cho-m avatar Jul 28 '22 18:07 cho-m

mysql build checks for Homebrew installation of boost and doesn't seem to provide a way around https://github.com/mysql/mysql-server/blob/mysql-8.0.30/CMakeLists.txt#L1930-L1935

IF(APPLE)
  GET_FILENAME_COMPONENT(HOMEBREW_BASE ${HOMEBREW_HOME} DIRECTORY)
  IF(EXISTS ${HOMEBREW_BASE}/include/boost)
    FOREACH(SYSTEM_LIB ICU LIBEVENT LZ4 PROTOBUF ZSTD FIDO)
      IF(WITH_${SYSTEM_LIB} STREQUAL "system")
        MESSAGE(FATAL_ERROR

May be easier to leave broken linkage and fix afterward in PR without boost.

Would be nicer to improve build scripts to avoid failing if boost was installed.

cho-m avatar Jul 29 '22 09:07 cho-m

Or would be useful to have a

conflicts_with "boost" => :build

maybe. But I guess it's not too common. We could unlink boost manually in the formula...

carlocab avatar Jul 29 '22 09:07 carlocab

For other issues outside of mysql:

  • [x] node@12 - #106879
  • [ ] postgresql - this seems to be related to the strings - option. Part of line is missing from output when reading all bytes rather than default looking in sections https://github.com/Homebrew/brew/blob/master/Library/Homebrew/keg_relocate.rb#L330
    ❯ strings bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
    'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
    'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/12'
    
    ❯ strings - bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
    'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
    'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/
    

cho-m avatar Jul 29 '22 21:07 cho-m

llvm now has linkage with icu4c on Linux now that libxml2 depends on icu4c, which is a pretty huge nightmare.

I'm probably going to disable libxml2 in llvm at the next rebuild.

carlocab avatar Aug 02 '22 06:08 carlocab

Rebase necessary for: mysql, r, freeciv, libphonenumber

iMichka avatar Aug 09 '22 20:08 iMichka

Since this PR already requires a rebase I'm going to merge https://github.com/Homebrew/homebrew-core/pull/107797 with conflicting mapnik

UPD: Done!

bayandin avatar Aug 12 '22 08:08 bayandin

ARM Monterey failures:

Error: 10 failed steps!
brew install --verbose --build-bottle spidermonkey
brew bottle --verbose --json postgresql --only-json-tab
brew install --build-from-source spidermonkey
brew install --only-dependencies --verbose --build-bottle couchdb
brew install --verbose --build-bottle couchdb
brew install --verbose --build-bottle mysql
brew install --verbose --build-bottle node@12
brew install --verbose --build-bottle percona-server
brew install --verbose --build-bottle percona-xtrabackup
brew install --verbose --build-bottle widelands

Similar on ARM Big Sur, minus widelands. node@12 is expected on Monterey, but not sure about Big Sur -- fix at #108269.

spidermonkey seems to be a Python issue, as it's trying to install stuff directly into HOMEBREW_PREFIX. I think @cho-m had a look at this, but not sure if there's a solution. This causes the dependent couchdb to fail.

postgresql hardcodes PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/. Not sure why this hasn't come up before, but we may be able to get away with unsetting PKG_CONFIG_LIBDIR.

chakra fails with (edit: this is a warning and can be ignored.)

  CMake Error at CMakeLists.txt:47 (message):
    Couldn't detect target processor, try `--arch` argument with build.sh

mysql is upset that boost is available on the system while building. I suggest adding conflicts_with that we can remove once this PR is merged.

percona-server, and percona-xtrabackup have the same problem as mysql.

widelands can't find python on Monterey. Can probably be fixed by passing PYTHON_EXECUTABLE to cmake.

carlocab avatar Aug 17 '22 13:08 carlocab

This should help with mysql, and percona-{server,xtrabackup}: https://github.com/Homebrew/homebrew-test-bot/pull/820

Not sure how to fix chakra and spidermonkey.

carlocab avatar Aug 17 '22 13:08 carlocab

spidermonkey seems to be a Python issue, as it's trying to install stuff directly into HOMEBREW_PREFIX. I think @cho-m had a look at this, but not sure if there's a solution. This causes the dependent couchdb to fail.

I'll take another look. I think an older distutils via ENV["SETUPTOOLS_USE_DISTUTILS"] = "stdlib" should work around issue. May be due to the new code that we had to patch running brew command since it is bypassing distutils.cfg and injecting Homebrew's prefix.


postgresql hardcodes PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/. Not sure why this hasn't come up before, but we may be able to get away with unsetting PKG_CONFIG_LIBDIR.

My previous comment applies here for strings - output getting truncated in https://github.com/Homebrew/brew/blob/master/Library/Homebrew/keg_relocate.rb#L330

❯ strings bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/12'

❯ strings - bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/

cho-m avatar Aug 17 '22 15:08 cho-m

My previous comment applies here for strings - output getting truncated in https://github.com/Homebrew/brew/blob/master/Library/Homebrew/keg_relocate.rb#L330

❯ strings bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/Homebrew/os/mac/pkgconfig/12'

❯ strings - bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/opt/homebrew/opt/icu4c/lib/pkgconfig:/opt/homebrew/opt/[email protected]/lib/pkgconfig:/opt/homebrew/opt/krb5/lib/pkgconfig:/opt/homebrew/opt/lz4/lib/pkgconfig:/opt/homebrew/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/opt/homebrew/Library/

Weird. Doesn't happen for me:

❯ strings - bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/[email protected]/lib/pkgconfig:/usr/local/opt/krb5/lib/pkgconfig:/usr/local/opt/lz4/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/12'

carlocab avatar Aug 17 '22 15:08 carlocab

Weird. Doesn't happen for me:

❯ strings - bin/postgres | rg PKG_CONFIG | tr ' ' '\n' | rg PKG_CONFIG
'PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/[email protected]/lib/pkgconfig:/usr/local/opt/krb5/lib/pkgconfig:/usr/local/opt/lz4/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig'
'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/12'

I think it happens with particular bottles, like the ones created in this PR. Didn't seem to happen when we built postgresql in isolation (e.g. #108093). May need to look further into binaries to see what is happening.

cho-m avatar Aug 17 '22 16:08 cho-m

Linux build failures:

  • qt - somehow ran out of space. didn't happen in previous runs:
    2022-08-17T16:21:56.9258911Z Error: An exception occurred within a child process:
    2022-08-17T16:21:56.9259333Z   Errno::ENOSPC: No space left on device @ fptr_finalize_flush - /github/home/bottles/logs/qt/05.cmake
    
  • webkitgtk - looking for gobject-introspection. Maybe from dropping runtime dependency on harfbuzz:
    --   No package 'gobject-introspection-1.0' found
    CMake Error at Source/cmake/OptionsGTK.cmake:328 (message):
      GObjectIntrospection is needed for ENABLE_INTROSPECTION.
    

cho-m avatar Aug 18 '22 02:08 cho-m

On ARM:

couchdb failed the linkage test because it linked with openssl@3 for some reason. Probably has a $HOMEBREW_PREFIX/opt/openssl hardcoded somewhere. We can probably fix it after if Intel macOS goes well.

texlive also failed the linkage test, but that's expected.

carlocab avatar Sep 01 '22 05:09 carlocab

Also only on ARM Big Sur:

  qt@5:
    * Files were found with references to the Homebrew shims directory.
      The offending files are:
        mkspecs/qmodule.pri
  Error: 1 problem in 1 formula detected

Not sure why that didn't happen on Monterey.

carlocab avatar Sep 01 '22 05:09 carlocab

postgresql@10 failed to build on Linux. Probably shouldn't block this.

  deparse.o: file not recognized: File truncated
  collect2: error: ld returned 1 exit status
  ../../src/Makefile.shlib:309: recipe for target 'postgres_fdw.so' failed
  make[1]: *** [postgres_fdw.so] Error 1

carlocab avatar Sep 01 '22 13:09 carlocab

postgresql@10 failed to build on Linux. Probably shouldn't block this.

  deparse.o: file not recognized: File truncated
  collect2: error: ld returned 1 exit status
  ../../src/Makefile.shlib:309: recipe for target 'postgres_fdw.so' failed
  make[1]: *** [postgres_fdw.so] Error 1

It looks like a race condition, and definitely unrelated, so it should not be a blocker.

danielnachun avatar Sep 01 '22 16:09 danielnachun