icu4c 75.1
Created with brew bump-formula-pr.
Major changes
This release introduces C++17 minimum which impacts various dependents.
Versioning attempt
As reference:
- Previous bump - #153108
- CI runtime: https://github.com/Homebrew/homebrew-core/actions/runs/8007761525/usage (2d 6h Intel macOS, 1d 17hr Linux)
May try versioning approach and test largest dep group to see if it improves anything.
EDIT: The largest connected deps group means at least 42 formulae need to be migrated on macOS (more if including Linux due to libxml2 and other common dependencies).
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. To keep this pull request open, add a help wanted or in progress label.
harfbuzz not happy:
In file included from ../src/hb-icu.cc:39:
In file included from /opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/unorm2.h:35:
In file included from /opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uset.h:36:
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/localpointer.h:561:26: error: 'auto' not allowed in template parameter until C++17
template <typename Type, auto closeFunction>
^~~~
In file included from ../src/hb-icu.cc:39:
In file included from /opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/unorm2.h:35:
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uset.h:358:53: error: value of type 'void (USet *)' is not implicitly convertible to 'int'
U_DEFINE_LOCAL_OPEN_POINTER(LocalUSetPointer, USet, uset_close);
^~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/urename.h:1753:20: note: expanded from macro 'uset_close'
#define uset_close U_ICU_ENTRY_POINT_RENAME(uset_close)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:123:47: note: expanded from macro 'U_ICU_ENTRY_POINT_RENAME'
# define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_ICU_VERSION_SUFFIX)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:122:51: note: expanded from macro 'U_DEF2_ICU_ENTRY_POINT_RENAME'
# define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:121:50: note: expanded from macro 'U_DEF_ICU_ENTRY_POINT_RENAME'
# define U_DEF_ICU_ENTRY_POINT_RENAME(x,y) x ## y
^~~~~~
<scratch space>:71:1: note: expanded from here
uset_close_75
^~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/localpointer.h:551:68: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
using LocalPointerClassName = internal::LocalOpenPointer<Type, closeFunction>
^~~~~~~~~~~~~
In file included from ../src/hb-icu.cc:39:
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/unorm2.h:286:69: error: value of type 'void (UNormalizer2 *)' is not implicitly convertible to 'int'
U_DEFINE_LOCAL_OPEN_POINTER(LocalUNormalizer2Pointer, UNormalizer2, unorm2_close);
^~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/urename.h:1257:22: note: expanded from macro 'unorm2_close'
#define unorm2_close U_ICU_ENTRY_POINT_RENAME(unorm2_close)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:123:47: note: expanded from macro 'U_ICU_ENTRY_POINT_RENAME'
# define U_ICU_ENTRY_POINT_RENAME(x) U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_ICU_VERSION_SUFFIX)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:122:51: note: expanded from macro 'U_DEF2_ICU_ENTRY_POINT_RENAME'
# define U_DEF2_ICU_ENTRY_POINT_RENAME(x,y) U_DEF_ICU_ENTRY_POINT_RENAME(x,y)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/uvernum.h:121:50: note: expanded from macro 'U_DEF_ICU_ENTRY_POINT_RENAME'
# define U_DEF_ICU_ENTRY_POINT_RENAME(x,y) x ## y
^~~~~~
<scratch space>:141:1: note: expanded from here
unorm2_close_75
^~~~~~~~~~~~~~~
/opt/homebrew/Cellar/icu4c@75/75.1/include/unicode/localpointer.h:551:68: note: expanded from macro 'U_DEFINE_LOCAL_OPEN_POINTER'
using LocalPointerClassName = internal::LocalOpenPointer<Type, closeFunction>
^~~~~~~~~~~~~
3 errors generated.
See https://github.com/harfbuzz/harfbuzz/issues/4671 and https://cgit.freebsd.org/ports/commit/?id=4816cd49210c3c1413219b8884a17655cf4be340
Sounds like the ICU's minimum C++ standard is now C++17. Can try to force it, but may cause problems with dependents.
Okay, let's give this another run with the conflicts fixed.
Will start working on this again soon. Need to get dotnet@6 (#180575) and qt (#180185) fixes in.
Blocked by yaz checksum change - https://github.com/Homebrew/homebrew-core/pull/182130
Will try to finish https://github.com/Homebrew/brew/pull/18229 before continuing this.
Going to actually fix main keg-only failure due to libpsl with #192894.
:shipit: @carlocab has requested bottles to be published to this PR.
This might be the wrong PR/commit to comment on but Homebrew's recent renaming of "icu4c" to "icu4c@75" breaks libraries like github.com/mattn/go-sqlite3 (repro with: go build -tags sqlite_icu) that rely on the previous icu4c library location /usr/local/opt/icu4c or /opt/homebrew/opt/icu4c.
Are there any plans to reintroduce an icu4c formula that has the name "icu4c" (the same as it used to be) or are there suggestions for how non-brew managed libs/programs that depend on icu4c should handle this change?
Another issue here is that the pkg-config for icu4c is in a non-standard location which makes switching to pkg-config a big difficult (since uses would need to update the PKG_CONFIG_PATH env var for it to work).
Also, thank you for all of your work on Homebrew!
This might be the wrong PR/commit to comment on but Homebrew's recent renaming of "icu4c" to "icu4c@75" breaks libraries like github.com/mattn/go-sqlite3 (repro with:
go build -tags sqlite_icu) that rely on the previous icu4c library location/usr/local/opt/icu4cor/opt/homebrew/opt/icu4c.
It should be available, but may not have gotten auto-upgraded since there wasn't a revision bump.
A workaround for now is brew reinstall icu4c.
Given ICU 76 is almost ready, can add a revision bump when migrating icu4c alias to icu4c@76.
Thank you for the very quick response and brew reinstall icu4 works!