Bug 274317 - devel/icu: update to 74.1
Summary: devel/icu: update to 74.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: FreeBSD Office Team
URL: https://icu.unicode.org/download/74
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-06 22:00 UTC by Jan Beich
Modified: 2023-11-22 15:57 UTC (History)
5 users (show)

See Also:
fluffy: maintainer-feedback+
jbeich: exp-run-


Attachments
v0 (RC1) (2.41 KB, patch)
2023-10-06 22:00 UTC, Jan Beich
no flags Details | Diff
v1 (apply via "git am") (12.41 KB, patch)
2023-10-28 13:28 UTC, Jan Beich
no flags Details | Diff
v1.1 (apply via "git am") (16.65 KB, patch)
2023-10-28 14:10 UTC, Jan Beich
no flags Details | Diff
v1.2 (apply via "git am") (15.81 KB, patch)
2023-11-07 18:24 UTC, Jan Beich
no flags Details | Diff
v1.3 (apply via "git am") (19.78 KB, patch)
2023-11-17 10:38 UTC, Jan Beich
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer freebsd_triage 2023-10-06 22:00:54 UTC
Created attachment 245471 [details]
v0 (RC1)
Comment 2 Jan Beich freebsd_committer freebsd_triage 2023-10-28 13:28:49 UTC
Created attachment 245941 [details]
v1 (apply via "git am")

- Update to the actual 74.1 release (download artifacts N/A atm)
- Unbreak Firefox via https://bugzilla.mozilla.org/show_bug.cgi?id=1859752
- Chromium and LibreOffice need help (or wait for upstream) to handle https://github.com/unicode-org/icu/commit/2e45e6ec0e84
Comment 3 Jan Beich freebsd_committer freebsd_triage 2023-10-28 13:52:15 UTC
U_LB_COUNT was previously bumped in bug 218788. Can someone check Chromium upstream to find a bug/review tracking ICU 74 or one that included ICU 59 (not necessarily 59) that adjusted to line breaks? Otherwise, it's not obvious how to fix build or how long to wait.

See also how Firefox adjusted for new line breaks:
https://hg.mozilla.org/mozilla-central/rev/c17531742f63 (ICU 59)
https://hg.mozilla.org/try/rev/d5f3b0c4f08a (ICU 74)
Comment 4 Jan Beich freebsd_committer freebsd_triage 2023-10-28 14:10:49 UTC
Created attachment 245945 [details]
v1.1 (apply via "git am")

- Revert ports 55b20cdeb656 in Chromium ports (build untested)
Comment 5 Jan Beich freebsd_committer freebsd_triage 2023-10-28 15:44:49 UTC
editors/libreoffice is still broken. I need help finding upstream fix or using bundled ICU 73 (--without-system-icu).
Comment 6 Dima Panov freebsd_committer freebsd_triage 2023-10-28 18:12:56 UTC
(In reply to Jan Beich from comment #5)
Libreoffice upstream still not ported ti ICU 7.4 yet :( Only 7.2 is supported
Comment 7 Jan Beich freebsd_committer freebsd_triage 2023-11-07 18:24:36 UTC
Created attachment 246185 [details]
v1.2 (apply via "git am")

- Apply OpenBSD fixes for Iridium and LibreOffice
- Drop no longer necessary workarounds for Chromium, see ports c3bf61f97f55
- Rebase Firefox fix against mozilla-central (autoland) version

(In reply to Dima Panov from comment #6)
I was expecting you to contact upstream, not state the obvious. Besides, LibreOffice uses ICU 73 (not ICU 72) as can be seen from my failed attempt to use --without-system-icu:

gmake[2]: *** No rule to make target '/portdistfiles/libreoffice/icu4c-73_2-src.tgz',
needed by '/wrkdirs/usr/ports/editors/libreoffice/work/libreoffice-7.6.2.1/workdir/UnpackedTarget/icu4c-73_2-src.tgz'.  Stop.
Comment 8 Jan Beich freebsd_committer freebsd_triage 2023-11-07 19:02:32 UTC
(In reply to Jan Beich from comment #7)
> I was expecting you to contact upstream, not state the obvious.

For tracking to avoid being blocked idefinitely. Otherwise, my wording is a bit too negative.

LibreOffice is a big and old project, so navigating upstream venues are hard. I've only found https://gerrit.libreoffice.org/c/core/+/158749 but it doesn't have the fix yet thus using OpenBSD workaround atm.
Comment 10 Jan Beich freebsd_committer freebsd_triage 2023-11-17 10:38:14 UTC
Created attachment 246370 [details]
v1.3 (apply via "git am")

- Copy chromium fixes to electron2[4-6]
- Drop bogus thunderbird fix due to USE_MOZILLA=-icu
Comment 11 Antoine Brodin freebsd_committer freebsd_triage 2023-11-17 10:39:57 UTC
(In reply to Jan Beich from comment #10)
It would be nice if you could test those 2 ports yourself (or the maintainer)
Comment 12 Jan Beich freebsd_committer freebsd_triage 2023-11-17 11:16:02 UTC
(In reply to Antoine Brodin from comment #11)
Let's crowdsource testing by landing. Building locally *without* bumping PORTREVISION in consumers would be a massive waste of time.

Note, devel/electron25 passes "make patch" while bustage in non-chromium parts is unlikely. According to the exp-run here only 1 port outside of major browsers broke.
Comment 13 commit-hook freebsd_committer freebsd_triage 2023-11-17 11:50:48 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e55b80195e2af4bd63088de216ccd3e23be81c1f

commit e55b80195e2af4bd63088de216ccd3e23be81c1f
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-10-05 20:43:38 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-11-17 11:46:00 +0000

    devel/icu: update to 74.1

    Changes:        https://github.com/unicode-org/icu/releases/tag/release-74-1
    Reported by:    GitHub (watch releases)
    PR:             274317
    Exp-run by:     antoine (incomplete)
    Approved by:    fluffy

 archivers/unarchiver/Makefile                      |  2 +-
 audio/musicpd/Makefile                             |  1 +
 audio/ncmpcpp/Makefile                             |  2 +-
 audio/strawberry/Makefile                          |  1 +
 converters/simdutf/Makefile                        |  1 +
 databases/couchdb3/Makefile                        |  1 +
 databases/evolution-data-server/Makefile           |  2 +-
 databases/firebird30-server/Makefile               |  2 +-
 databases/firebird40-server/Makefile               |  2 +-
 databases/kbibtex/Makefile                         |  2 +-
 databases/kdb/Makefile                             |  2 +-
 databases/mongodb60/Makefile                       |  1 +
 databases/mysql80-client/Makefile                  |  2 +-
 databases/mysql80-server/Makefile                  |  2 +-
 databases/postgresql11-server/Makefile             |  2 +-
 databases/postgresql12-server/Makefile             |  2 +-
 databases/postgresql13-server/Makefile             |  2 +-
 databases/postgresql14-server/Makefile             |  2 +-
 databases/postgresql15-server/Makefile             |  2 +-
 databases/postgresql16-server/Makefile             |  2 +-
 databases/sqlite3/Makefile                         |  1 +
 databases/tarantool/Makefile                       |  1 +
 databases/xtrabackup8/Makefile                     |  2 +-
 deskutils/calibre/Makefile                         |  1 +
 deskutils/peaclock/Makefile                        |  2 +-
 devel/R-cran-rJava/Makefile                        |  2 +-
 devel/boost-libs/Makefile                          |  2 +-
 devel/dee/Makefile                                 |  2 +-
 devel/electron24/Makefile                          |  1 +
 ...er_platform_text_text__break__iterator.cc (new) | 13 +++++++
 devel/electron25/Makefile                          |  1 +
 ...er_platform_text_text__break__iterator.cc (new) | 13 +++++++
 devel/electron26/Makefile                          |  1 +
 ...er_platform_text_text__break__iterator.cc (new) | 13 +++++++
 devel/fbthrift/Makefile                            |  1 +
 devel/folly/Makefile                               |  1 +
 devel/icu-le-hb/Makefile                           |  2 +-
 devel/icu/Makefile                                 |  2 +-
 devel/icu/distinfo                                 |  6 ++--
 devel/icu/pkg-plist                                |  2 ++
 devel/libical/Makefile                             |  2 +-
 devel/libkiwix/Makefile                            |  1 +
 devel/libphonenumber/Makefile                      |  1 +
 devel/libzim/Makefile                              |  1 +
 devel/mongo-c-driver/Makefile                      |  1 +
 devel/objecthash/Makefile                          |  2 +-
 devel/php80-intl/Makefile                          |  1 +
 devel/php81-intl/Makefile                          |  2 +-
 devel/php82-intl/Makefile                          |  2 +-
 devel/php83-intl/Makefile                          |  2 +-
 devel/py-pyicu/Makefile                            |  1 +
 devel/qt5-core/Makefile                            |  1 +
 devel/qt6-5compat/Makefile                         |  1 +
 devel/qt6-base/Makefile                            |  1 +
 devel/qt6-tools/Makefile                           |  1 +
 devel/tclxml/Makefile                              |  2 +-
 devel/ticcutils/Makefile                           |  2 +-
 dns/libpsl/Makefile                                |  2 +-
 editors/gnome-text-editor/Makefile                 |  2 +-
 editors/libreoffice/Makefile                       |  2 +-
 ...8npool_source_breakiterator_data_line_txt (new) | 16 +++++++++
 editors/poedit/Makefile                            |  2 +-
 editors/vscode/Makefile                            |  2 +-
 finance/gnucash/Makefile                           |  2 +-
 games/0ad/Makefile                                 |  2 +-
 games/an/Makefile                                  |  2 +-
 games/easyrpg-player/Makefile                      |  1 +
 games/exult-devel/Makefile                         |  2 +-
 games/freeciv/Makefile                             |  1 +
 games/liblcf/Makefile                              |  1 +
 games/libretro-play/Makefile                       |  2 +-
 games/openmw/Makefile                              |  2 +-
 games/openrct2/Makefile                            |  1 +
 games/openttd/Makefile                             |  2 +-
 games/wesnoth/Makefile                             |  1 +
 games/widelands/Makefile                           |  2 +-
 graphics/cfdg/Makefile                             |  2 +-
 graphics/darktable/Makefile                        |  2 +-
 graphics/dcmtk/Makefile                            |  2 +-
 graphics/drawio/Makefile                           |  1 +
 graphics/epsonscan2/Makefile                       |  2 +-
 graphics/imv/Makefile                              |  1 +
 graphics/libcdr01/Makefile                         |  2 +-
 graphics/libfreehand/Makefile                      |  2 +-
 graphics/libzmf/Makefile                           |  2 +-
 graphics/maim/Makefile                             |  2 +-
 graphics/mapnik/Makefile                           |  2 +-
 graphics/openfx-arena/Makefile                     |  2 +-
 graphics/osg/Makefile                              |  2 +-
 graphics/qt6-3d/Makefile                           |  1 +
 graphics/qt6-imageformats/Makefile                 |  1 +
 graphics/qt6-svg/Makefile                          |  2 +-
 graphics/qt6-wayland/Makefile                      |  2 +-
 graphics/tesseract/Makefile                        |  1 +
 irc/znc-push/Makefile                              |  2 +-
 irc/znc/Makefile                                   |  2 +-
 java/openjfx14/Makefile                            |  2 +-
 lang/gnustep-base/Makefile                         |  1 +
 lang/hermes/Makefile                               |  2 +-
 lang/parrot/Makefile                               |  2 +-
 lang/spidermonkey102/Makefile                      |  2 +-
 lang/spidermonkey78/Makefile                       |  2 +-
 lang/spidermonkey91/Makefile                       |  2 +-
 lang/urweb/Makefile                                |  2 +-
 lang/v8-beta/Makefile                              |  2 +-
 lang/v8/Makefile                                   |  2 +-
 lang/zig/Makefile                                  |  2 +-
 mail/cyrus-imapd30/Makefile                        |  2 +-
 mail/cyrus-imapd32/Makefile                        |  2 +-
 mail/cyrus-imapd34/Makefile                        |  2 +-
 mail/cyrus-imapd36/Makefile                        |  2 +-
 mail/cyrus-imapd38/Makefile                        |  2 +-
 mail/dovecot-fts-flatcurve/Makefile                |  2 +-
 mail/dovecot-fts-xapian/Makefile                   |  2 +-
 mail/dovecot/Makefile                              |  1 +
 mail/evolution-ews/Makefile                        |  2 +-
 mail/evolution/Makefile                            |  2 +-
 mail/exim/Makefile                                 |  2 +-
 mail/geary/Makefile                                |  2 +-
 mail/libvmime/Makefile                             |  2 +-
 mail/postfix-current/Makefile                      |  1 +
 mail/postfix/Makefile                              |  2 +-
 mail/rspamd-devel/Makefile                         |  1 +
 mail/rspamd/Makefile                               |  1 +
 mail/sendmail-devel/Makefile                       |  2 +-
 mail/sendmail/Makefile                             |  2 +-
 math/R/Makefile                                    |  1 +
 math/libqalculate/Makefile                         |  1 +
 math/py-rpy2/Makefile                              |  1 +
 math/sage/Makefile                                 |  2 +-
 math/timbl/Makefile                                |  1 +
 misc/sword/Makefile                                |  2 +-
 misc/xiphos/Makefile                               |  2 +-
 multimedia/aegisub/Makefile                        |  2 +-
 multimedia/subtitlecomposer/Makefile               |  1 +
 net-im/dino/Makefile                               |  1 +
 net-im/prosody/Makefile                            |  1 +
 net-im/signal-desktop/Makefile                     |  1 +
 net-p2p/sonarr-devel/Makefile                      |  1 +
 net/fb303/Makefile                                 |  1 +
 net/freerdp/Makefile                               |  2 +-
 net/mvfst/Makefile                                 |  1 +
 net/openldap25-server/Makefile                     |  2 +-
 net/openldap26-server/Makefile                     |  2 +-
 net/qt6-networkauth/Makefile                       |  1 +
 net/samba413/Makefile                              |  2 +-
 net/samba416/Makefile                              |  1 +
 net/tinyfugue-devel/Makefile                       |  2 +-
 net/wangle/Makefile                                |  1 +
 net/yaz/Makefile                                   |  2 +-
 net/zebra-server/Makefile                          |  2 +-
 news/tin/Makefile                                  |  2 +-
 print/harfbuzz-icu/Makefile                        |  2 +-
 print/libmspub01/Makefile                          |  2 +-
 print/miktex/Makefile                              |  2 +-
 print/scribus-devel/Makefile                       |  3 +-
 print/tex-xetex/Makefile                           |  2 +-
 print/texlive-base/Makefile                        |  2 +-
 science/afni/Makefile                              |  1 +
 science/dakota/Makefile                            |  2 +-
 science/orthanc-dicomweb/Makefile                  |  2 +-
 science/orthanc-webviewer/Makefile                 |  2 +-
 science/orthanc/Makefile                           |  2 +-
 science/paraview/Makefile                          |  1 +
 science/py-tensorflow/Makefile                     |  2 +-
 security/bitwarden-cli/Makefile                    |  1 +
 security/fizz/Makefile                             |  1 +
 sysutils/calamares/Makefile                        |  2 +-
 sysutils/darling-dmg/Makefile                      |  2 +-
 sysutils/fsearch/Makefile                          |  1 +
 sysutils/gdisk/Makefile                            |  2 +-
 sysutils/ltfs/Makefile                             |  1 +
 sysutils/tracker-miners/Makefile                   |  2 +-
 sysutils/tracker/Makefile                          |  2 +-
 sysutils/tracker3/Makefile                         |  1 +
 textproc/R-cran-stringi/Makefile                   |  1 +
 textproc/apertium/Makefile                         |  2 +-
 textproc/cg3/Makefile                              |  2 +-
 textproc/dwdiff/Makefile                           |  2 +-
 textproc/enchant2/Makefile                         |  2 +-
 textproc/gitlab-elasticsearch-indexer/Makefile     |  1 +
 textproc/gspell/Makefile                           |  2 +-
 textproc/libe-book/Makefile                        |  2 +-
 textproc/libfolia/Makefile                         |  1 +
 textproc/libqxp/Makefile                           |  2 +-
 textproc/libvisio01/Makefile                       |  2 +-
 textproc/libxml2/Makefile                          |  2 +-
 textproc/logseq/Makefile                           |  3 +-
 textproc/lttoolbox/Makefile                        |  2 +-
 textproc/lua-icu-utils/Makefile                    |  2 +-
 textproc/nuspell/Makefile                          |  1 +
 textproc/obsidian/Makefile                         |  1 +
 textproc/qstardict/Makefile                        |  1 +
 textproc/raptor2/Makefile                          |  2 +-
 textproc/rubygem-charlock_holmes/Makefile          |  2 +-
 textproc/ucto/Makefile                             |  1 +
 textproc/zorba/Makefile                            |  2 +-
 www/chromium/Makefile                              |  1 +
 www/envoy/Makefile                                 |  1 +
 www/epiphany/Makefile                              |  2 +-
 www/firefox-esr/Makefile                           |  1 +
 www/firefox-esr/files/patch-bug1859752 (new)       | 42 ++++++++++++++++++++++
 www/firefox/Makefile                               |  2 +-
 www/firefox/files/patch-bug1859752 (new)           | 42 ++++++++++++++++++++++
 www/iridium/Makefile                               |  1 +
 ...er_platform_text_text__break__iterator.cc (new) | 13 +++++++
 www/librewolf/Makefile                             |  2 +-
 www/librewolf/files/patch-bug1859752 (new)         | 42 ++++++++++++++++++++++
 www/node16/Makefile                                |  2 +-
 www/node18/Makefile                                |  1 +
 www/node20/Makefile                                |  1 +
 www/node21/Makefile                                |  1 +
 www/onlyoffice-documentserver/Makefile             |  1 +
 www/pecl-http/Makefile                             |  1 +
 www/proxygen/Makefile                              |  1 +
 www/qt5-webkit/Makefile                            |  2 +-
 www/tor-browser/Makefile                           |  1 +
 www/tor-browser/files/patch-bug1859752 (new)       | 42 ++++++++++++++++++++++
 www/ungoogled-chromium/Makefile                    |  1 +
 ...renderer_platform_text_text__break__iterator.cc |  7 ++--
 www/vieb/Makefile                                  |  1 +
 www/webkit2-gtk3/Makefile                          |  2 +-
 www/webkit2-gtk4/Makefile                          |  2 +-
 x11-toolkits/gnustep-gui/Makefile                  |  2 +-
 x11-toolkits/plasma5-kdeplasma-addons/Makefile     |  1 +
 x11-toolkits/qt6-declarative/Makefile              |  1 +
 x11-toolkits/qt6-quick3d/Makefile                  |  1 +
 x11-toolkits/qt6-quicktimeline/Makefile            |  1 +
 x11-toolkits/qt6-shadertools/Makefile              |  1 +
 x11-toolkits/tepl6/Makefile                        |  2 +-
 x11-toolkits/vte3/Makefile                         |  2 +-
 x11/gnome-console/Makefile                         |  2 +-
 x11/gnome-shell/Makefile                           |  2 +-
 x11/konsole/Makefile                               |  1 +
 x11/plasma5-plasma-workspace/Makefile              |  2 +-
 x11/slop/Makefile                                  |  2 +-
 236 files changed, 467 insertions(+), 149 deletions(-)
Comment 15 Snake Doc 2023-11-22 15:19:09 UTC
ungoogled-chromium-119.0.6045.123 is failing to start after upgrading icu to v74.1,1:

$ ungoogled-chromium 
ld-elf.so.1: Shared object "libicui18n.so.73" not found, required by "ungoogled-chromium"

Interestingly, and possible related, it seems that ungoogled-chromium dropped off of the 'latest' repo (http://pkg.FreeBSD.org/FreeBSD:13:amd64/latest) and therefore isn't available when attempting to install it via pkg.
Comment 16 Jan Beich freebsd_committer freebsd_triage 2023-11-22 15:38:33 UTC
(In reply to Snake Doc from comment #15)
> ld-elf.so.1: Shared object "libicui18n.so.73" not found, required by "ungoogled-chromium"

This is why www/ungoogled-chromium had PORTREVISION bumped during update. Partial upgrades are not supported. If you want to use ungoogled-chromium build it locally or downgrade icu to 73 (and everything that depends on it) via /var/cache/pkg until the official package builds fine. Another option is upgrading to an unaffected FreeBSD version like 14.0-RELEASE.

I can't fix intermittent/hardware/poudriere.conf issues like this:
https://pkg-status.freebsd.org/beefy16/data/132amd64-default/59c33e144842/logs/errors/ungoogled-chromium-119.0.6045.123_1.log
https://pkg-status.freebsd.org/beefy16/data/132amd64-default/5b346a1c0cc2/logs/errors/ungoogled-chromium-119.0.6045.123_1.log

Ironically, www/chromium built fine. I wonder if it's in some kind of allow-list to hog more resources than other ports.
Comment 17 Jan Beich freebsd_committer freebsd_triage 2023-11-22 15:57:26 UTC
To work around ABI (SONAME) version at the cost of runtime instability use libmap.conf(5) e.g.,

$ cat >>/etc/libmap.conf
libicuuc.so.73 libicuuc.so.74
libicui18n.so.73 libicui18n.so.74
libicudata.so.73 libicudata.so.74