Bug 270817 - www/chromium: needs help to cope with icu-73.1
Summary: www/chromium: needs help to cope with icu-73.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: Robert Nagy
URL:
Keywords:
Depends on:
Blocks: 270422
  Show dependency treegraph
 
Reported: 2023-04-13 16:23 UTC by david
Modified: 2024-11-25 07:50 UTC (History)
6 users (show)

See Also:
bugzilla: maintainer-feedback? (chromium)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description david 2023-04-13 16:23:37 UTC
Failure first seen under poudriere(-devel); reproduced with portmaster.  Machine running poudriere was:

FreeBSD freebeast.catwhisker.org 12.4-STABLE FreeBSD 12.4-STABLE #206 stable/12-n236099-59f3510ea793: Mon Apr 10 10:33:35 UTC 2023 root@freebeast.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/GENERIC
amd64 1204500 1204500

Machine running portmaster was:
FreeBSD localhost 12.4-STABLE FreeBSD 12.4-STABLE #1380 stable/12-n236099-59f3510ea793: Mon Apr 10 10:33:57 UTC 2023     root@g1-97.catwhisker.org:/common/S1/obj/usr/src/amd64.amd64/sys/CANARY  amd64 1204500 1204500

In each case, the ports tree was main-n615777-7e591c4f2380.

In each case, devel/icu had been updated from icu-72.1,1 to icu-73.1,1 (earlier the same day).

Email thread starts with the message at https://lists.freebsd.org/archives/freebsd-ports/2023-April/003708.html

As dim@ pointed out, the errors are:
TEM_NATIVE_UTF8 -DUSE_SYMBOLIZE -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DUSE_SYSTEM_LIBEVENT=1 -DGLOG_EXPORT= -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-5615-1679995307-0baae343d55c36a01b20eb4c600fca3ba7e0825e.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare -Wexit-time-destructors -Wglobal-constructors -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include -I/usr/local/include -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../base/time/time_now_posix.cc -o obj/base/base/time_now_posix.o
[ 25% 13516/53765] c++ -MMD -MF obj/base/base/time_exploded_icu.o.d -DBASE_IMPLEMENTATION -DIS_RAW_PTR_IMPL -DSYSTEM_NATIVE_UTF8 -DUSE_SYMBOLIZE -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DUSE_SYSTEM_LIBEVENT=1 -DGLOG_EXPORT= -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-5615-1679995307-0baae343d55c36a01b20eb4c600fca3ba7e0825e.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare -Wexit-time-destructors -Wglobal-constructors -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include -I/usr/local/include -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../base/time/time_exploded_icu.cc -o obj/base/base/time_exploded_icu.o
FAILED: obj/base/base/time_exploded_icu.o
c++ -MMD -MF obj/base/base/time_exploded_icu.o.d -DBASE_IMPLEMENTATION -DIS_RAW_PTR_IMPL -DSYSTEM_NATIVE_UTF8 -DUSE_SYMBOLIZE -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DOFFICIAL_BUILD -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DNO_UNWIND_TABLES -D_GNU_SOURCE -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56 -DUSE_SYSTEM_LIBEVENT=1 -DGLOG_EXPORT= -DUSING_SYSTEM_ICU=1 -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_IMPORT=U_EXPORT -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -Igen/shim_headers/libevent_shim -Igen/shim_headers/icui18n_shim -Igen/shim_headers/icuuc_shim -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Wall -Wextra -Wimplicit-fallthrough -Wextra-semi -Wunreachable-code-aggressive -Wthread-safety -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wloop-analysis -Wno-unneeded-internal-declaration -Wenum-compare-conditional -Wno-ignored-pragma-optimize -Wshadow -fno-delete-null-pointer-checks -fno-ident -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -fno-unwind-tables -fno-asynchronous-unwind-tables -fPIC -pthread -fcolor-diagnostics -fmerge-all-constants -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes -ftrivial-auto-var-init=pattern -fno-omit-frame-pointer -g0 -fprofile-use=../../chrome/build/pgo_profiles/chrome-linux-5615-1679995307-0baae343d55c36a01b20eb4c600fca3ba7e0825e.profdata -Wno-profile-instr-unprofiled -Wno-profile-instr-out-of-date -Wno-backend-plugin -fvisibility=hidden -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wshorten-64-to-32 -Wimplicit-int-conversion -Wsign-compare -Wsign-conversion -Wtautological-unsigned-zero-compare -Wexit-time-destructors -Wglobal-constructors -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -O2 -fdata-sections -ffunction-sections -fno-unique-section-names -DPROTOBUF_ALLOW_DEPRECATED=1 -I/usr/local/include -I/usr/local/include -std=c++20 -Wno-trigraphs -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -c ../../base/time/time_exploded_icu.cc -o obj/base/base/time_exploded_icu.o
In file included from ../../base/time/time_exploded_icu.cc:14:
../../third_party/icu/source/common/unicode/locid.h:297:27: error: expected ';' at end of declaration list
    Locale(Locale&& other) U_NOEXCEPT;
                          ^
                          ;
../../third_party/icu/source/common/unicode/locid.h:323:38: error: expected ';' at end of declaration list
    Locale& operator=(Locale&& other) U_NOEXCEPT;
                                     ^
                                     ;
2 errors generated.


In checking the installed locid.h on the systems in question, I find:
localhost(12.4-S)[4] pkg which /usr/local/include/unicode/locid.h
/usr/local/include/unicode/locid.h was installed by package icu-73.1,1
localhost(12.4-S)[5] grep -n U_NOEXCEPT !$
grep -n U_NOEXCEPT /usr/local/include/unicode/locid.h
localhost(12.4-S)[6] echo $?
1
localhost(12.4-S)[7]

While on a system that is still using icu-72.1:
albert(12.4-S)[2] pkg which /usr/local/include/unicode/locid.h
/usr/local/include/unicode/locid.h was installed by package icu-72.1,1
albert(12.4-S)[3] grep -n U_NOEXCEPT !$
grep -n U_NOEXCEPT /usr/local/include/unicode/locid.h
297:    Locale(Locale&& other) U_NOEXCEPT;
323:    Locale& operator=(Locale&& other) U_NOEXCEPT;
albert(12.4-S)[4]

And in checking the ports "work" subdirectory after the portmaster attempt failed, I find:
localhost(12.4-S)[7] grep -n U_NOEXCEPT `find /usr/ports/www/chromium/work/ -name locid.h`
/usr/ports/www/chromium/work/chromium-112.0.5615.49/third_party/icu/source/common/unicode/locid.h:297:    Locale(Locale&& other) U_NOEXCEPT;
/usr/ports/www/chromium/work/chromium-112.0.5615.49/third_party/icu/source/common/unicode/locid.h:323:    Locale& operator=(Locale&& other) U_NOEXCEPT;
localhost(12.4-S)[8]


So it looks to me as if the distfiles used for the FreeBSD www/chromium port include icu-72.1 versions of at least one file; this would seem to be problematic for a system that has and uses icu-73.1.
Comment 1 Robert Nagy 2023-04-13 16:57:13 UTC
I am looking into it.
Comment 2 iron.udjin 2023-04-13 19:09:23 UTC
The same on 13.2-STABLE and 13.2-RELEASE with poudriere-3.3.7_1.
Comment 3 Robert Nagy 2023-04-13 19:42:31 UTC
https://reviews.freebsd.org/D39564 should fix it.
Comment 4 fgorter 2023-04-13 21:22:19 UTC
devel/electron22 can use this exact same fix.

Getting build errors like:

                                                    ;
../../third_party/icu/source/i18n/unicode/dtitvfmt.h:95:57: error: expected ';' at end of declaration list
    UnicodeString toTempString(UErrorCode& status) const U_OVERRIDE;
                                                        ^
                                                        ;
../../third_party/icu/source/i18n/unicode/dtitvfmt.h:98:75: error: expected ';' at end of declaration list
    Appendable &appendTo(Appendable& appendable, UErrorCode& status) const U_OVERRIDE;
                                                                          ^
                                                                          ;
../../third_party/icu/source/i18n/unicode/dtitvfmt.h:101:82: error: expected ';' at end of declaration list
    UBool nextPosition(ConstrainedFieldPosition& cfpos, UErrorCode& status) const U_OVERRIDE;


Currently trying to compile electron22-22.3.5_1 from source.
Comment 5 fgorter 2023-04-13 21:29:17 UTC
To add to the relevance of being a similar error as with Chrome/Iridium/Ungoogled etc, more errors from electron22-22.3.5_1 building from source:

In file included from ../../base/i18n/timezone.cc:10:
../../third_party/icu/source/common/unicode/unistr.h:1909:48: error: expected ';' at end of declaration list
  UnicodeString &operator=(UnicodeString &&src) U_NOEXCEPT;
                                               ^
                                               ;
../../third_party/icu/source/common/unicode/unistr.h:1916:34: error: expected ';' at end of declaration list
  void swap(UnicodeString &other) U_NOEXCEPT;
                                 ^
                                 ;
../../third_party/icu/source/common/unicode/unistr.h:1925:45: error: expected ';' at end of declaration list
  swap(UnicodeString &s1, UnicodeString &s2) U_NOEXCEPT {


Seems to be identical issue with ICU not playing nice with the build environment.
Comment 6 david 2023-04-13 22:49:21 UTC
(In reply to Robert Nagy from comment #3)
Works for me, as noted in the review above (for www/chromium).  Thank you!
Comment 7 commit-hook freebsd_committer freebsd_triage 2023-04-14 09:20:00 UTC
A commit in branch main references this bug:

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

commit f5487f8d23309891b6faacaa9eb517f97ece429d
Author:     Robert Nagy <rnagy@FreeBSD.org>
AuthorDate: 2023-04-13 19:36:28 +0000
Commit:     Robert Nagy <rnagy@FreeBSD.org>
CommitDate: 2023-04-14 09:19:33 +0000

    www/{*chromium,iridium}: unbreak build with icu 73

    PR:             270817
    Approved by:    rene (mentor)

 .../files/patch-build_linux_unbundle_icu.gn (new)      | 18 ++++++++++++++++++
 .../files/patch-build_linux_unbundle_icu.gn (new)      | 18 ++++++++++++++++++
 .../files/patch-build_linux_unbundle_icu.gn (new)      | 18 ++++++++++++++++++
 3 files changed, 54 insertions(+)