Opened 5 months ago
Closed 5 months ago
#20568 closed enhancement (fixed)
icu4c-76.1
Reported by: | Bruce Dubbs | Owned by: | Douglas R. Reno |
---|---|---|---|
Priority: | normal | Milestone: | 12.3 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description ¶
New major version.
Change History (33)
comment:1 by , 5 months ago
follow-up: 30 comment:2 by , 5 months ago
It also fixes the test failure in libical (the sed in libical is still needed though).
follow-ups: 7 12 comment:3 by , 5 months ago
spidermonkey needs an adaption:
sed 's/icu-i18n/icu-uc &/' -i js/moz.configure
(It seems because icu_76::UnicodeSet::~UnicodeSet
etc. are in libicuuc.so.76
but the counterparts like icu_75::UnicodeSet::~UnicodeSet
were in libicui18n.so.75
.)
comment:5 by , 5 months ago
Replying to Xi Ruoyao:
158 (!) failures in spidermonkey.
And 6 failures in spidermonkey jit tests (all in "timezone.js").
follow-up: 19 comment:6 by , 5 months ago
webkitgtk needs to be adapted:
sed '/U_SHOW_CPLUSPLUS_API/a#define U_SHOW_CPLUSPLUS_HEADER_API 0' -i Source/WTF/wtf/Platform.h
comment:7 by , 5 months ago
Replying to Xi Ruoyao:
spidermonkey needs an adaption:
sed 's/icu-i18n/icu-uc &/' -i js/moz.configure(It seems because
icu_76::UnicodeSet::~UnicodeSet
etc. are inlibicuuc.so.76
but the counterparts likeicu_75::UnicodeSet::~UnicodeSet
were inlibicui18n.so.75
.)
Likewise for evolution-data-server:
sed '/pkg_check_modules/s/icu-i18n/& icu-uc/' -i CMakeLists.txt
follow-up: 9 comment:8 by , 5 months ago
In icu-i18n.pc there is a change from Requires: icu-uc to Requires.private: icu-uc and I suppose there is some argument that should be reverted, rather than fixing it in every dependent place. I have done that at least temporarily to fix the one case I observed in node.js and plan to see what other distros decide to do.
follow-up: 10 comment:9 by , 5 months ago
Replying to martyj19:
In icu-i18n.pc there is a change from Requires: icu-uc to Requires.private: icu-uc and I suppose there is some argument that should be reverted, rather than fixing it in every dependent place. I have done that at least temporarily to fix the one case I observed in node.js and plan to see what other distros decide to do.
The change is quite deliberate and logical: https://unicode-org.atlassian.net/browse/ICU-22610, thus I cannot see why it'll be reverted.
The logic is to allow downstream to avoid -licuuc etc. if not necessary. If they really need -licuuc they should announce it explicitly, i.e. using something like my sed.
Unnecessary -l options are always considered harmful esp. after xz incident. And they hurts LFS more than "major" distros because the "majors" patch Binutils to make --as-needed the default for ld while we don't.
comment:10 by , 5 months ago
Replying to Xi Ruoyao:
Replying to martyj19:
In icu-i18n.pc there is a change from Requires: icu-uc to Requires.private: icu-uc and I suppose there is some argument that should be reverted, rather than fixing it in every dependent place. I have done that at least temporarily to fix the one case I observed in node.js and plan to see what other distros decide to do.
The change is quite deliberate and logical: https://unicode-org.atlassian.net/browse/ICU-22610, thus I cannot see why it'll be reverted.
The logic is to allow downstream to avoid -licuuc etc. if not necessary. If they really need -licuuc they should announce it explicitly, i.e. using something like my sed.
Unnecessary -l options are always considered harmful esp. after xz incident. And they hurts LFS more than "major" distros because the "majors" patch Binutils to make --as-needed the default for ld while we don't.
Thank you for the commentary on binutils. I hadn't known about that and I agree a revert is unlikely. I do note there is no mention of this change in the ICU release notes even though it creates unplanned work for other projects.
I find it an unfortunate aspect of open source that a project can create an unbounded amount of unplanned work for distro packagers and dependent project maintainers with no prior notice. A few projects are repeat offenders with respect to that.
I don't see an obvious reason why node.js didn't work already because it appears to mention icuuc and that will need to be looked at.
follow-up: 29 comment:11 by , 5 months ago
For node.js
sed '/pkgicu/s/icu-i18n/& icu-uc/' -i configure.py
works for me.
comment:12 by , 5 months ago
Replying to Xi Ruoyao:
spidermonkey needs an adaption:
sed 's/icu-i18n/icu-uc &/' -i js/moz.configure(It seems because
icu_76::UnicodeSet::~UnicodeSet
etc. are inlibicuuc.so.76
but the counterparts likeicu_75::UnicodeSet::~UnicodeSet
were inlibicui18n.so.75
.)
Firefox needs it too.
follow-ups: 14 17 comment:13 by , 5 months ago
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] 481 | ((startIndex >> 8) & 0xFF), | ~~~~~~~~~~~~~~~~~~~^~~~~~~ In file included from /usr/include/unicode/utrans.h:23, from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:44: /usr/include/unicode/uset.h:1655:10: error: 'u16string_view' in namespace 'std' does not name a type 1655 | std::u16string_view operator*() const { | ^~~~~~~~~~~~~~ /usr/include/unicode/uset.h:1763:5: error: 'UnicodeString' does not name a type 1763 | UnicodeString operator*() const { | ^~~~~~~~~~~~~ In file included from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:46: /usr/include/unicode/ucol.h:1553:37: error: 'ConvertibleToU16StringView' was not declared in this scope 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:65: error: template argument 1 is invalid 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1553:25: error: '<expression error>' in namespace 'std' does not name a type 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:67: error: expected '>' before '&&' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~ /usr/include/unicode/ucol.h:1553:100: error: expected unqualified-id before '>' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1571:16: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1571:35: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:16: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:33: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:10: error: 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' cannot be overloaded with 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~ /usr/include/unicode/ucol.h:1571:10: note: previous declaration 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1575:32: error: request for member 'getBuffer' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/unicode/ucol.h:1575:50: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1576:32: error: request for member 'getBuffer' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1576:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1576:50: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1585:21: error: request for member 'data' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1585:33: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1586:21: error: request for member 'data' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1586:33: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~~~ make[5]: *** [make.rules:102: /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/temp/Release/common/unicode_util.o] Error 1 make[4]: *** [Makefile:187: master_process] Error 2 make[3]: *** [Makefile:66: firebird] Error 2 make[2]: *** [Makefile:6: firebird] Error 2 make[1]: *** [/tmp/build/libreoffice-24.8.2.1/external/firebird/ExternalProject_firebird.mk:30: /tmp/build/libreoffice-24.8.2.1/workdir/ExternalProject/firebird/build] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:294: build] Error 2
Disable firebird with: --disable-firebird-sdbc
comment:14 by , 5 months ago
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] 481 | ((startIndex >> 8) & 0xFF), | ~~~~~~~~~~~~~~~~~~~^~~~~~~ In file included from /usr/include/unicode/utrans.h:23, from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:44: /usr/include/unicode/uset.h:1655:10: error: 'u16string_view' in namespace 'std' does not name a type 1655 | std::u16string_view operator*() const { | ^~~~~~~~~~~~~~
/* snip */
I guess this is the same issue as WebKitGTK encounters. See https://unicode-org.atlassian.net/browse/ICU-22954.
comment:16 by , 5 months ago
Firefox and Spidermonkey were fixed at abc56ebd7727d163bb61384de9127ba34727a079
follow-up: 18 comment:17 by , 5 months ago
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] 481 | ((startIndex >> 8) & 0xFF), | ~~~~~~~~~~~~~~~~~~~^~~~~~~ In file included from /usr/include/unicode/utrans.h:23, from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:44: /usr/include/unicode/uset.h:1655:10: error: 'u16string_view' in namespace 'std' does not name a type 1655 | std::u16string_view operator*() const { | ^~~~~~~~~~~~~~ /usr/include/unicode/uset.h:1763:5: error: 'UnicodeString' does not name a type 1763 | UnicodeString operator*() const { | ^~~~~~~~~~~~~ In file included from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:46: /usr/include/unicode/ucol.h:1553:37: error: 'ConvertibleToU16StringView' was not declared in this scope 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:65: error: template argument 1 is invalid 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1553:25: error: '<expression error>' in namespace 'std' does not name a type 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:67: error: expected '>' before '&&' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~ /usr/include/unicode/ucol.h:1553:100: error: expected unqualified-id before '>' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1571:16: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1571:35: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:16: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:33: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:10: error: 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' cannot be overloaded with 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~ /usr/include/unicode/ucol.h:1571:10: note: previous declaration 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1575:32: error: request for member 'getBuffer' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/unicode/ucol.h:1575:50: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1576:32: error: request for member 'getBuffer' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1576:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1576:50: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1585:21: error: request for member 'data' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1585:33: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1586:21: error: request for member 'data' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1586:33: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~~~ make[5]: *** [make.rules:102: /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/temp/Release/common/unicode_util.o] Error 1 make[4]: *** [Makefile:187: master_process] Error 2 make[3]: *** [Makefile:66: firebird] Error 2 make[2]: *** [Makefile:6: firebird] Error 2 make[1]: *** [/tmp/build/libreoffice-24.8.2.1/external/firebird/ExternalProject_firebird.mk:30: /tmp/build/libreoffice-24.8.2.1/workdir/ExternalProject/firebird/build] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:294: build] Error 2Disable firebird with: --disable-firebird-sdbc
I've got a patch that I'm going to test for this that also includes a buildfix for libcdr with icu-76. Going to be a little bit before I get there though as I have a couple other issues that I need to take care of
follow-up: 20 comment:18 by , 5 months ago
Replying to Douglas R. Reno:
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] 481 | ((startIndex >> 8) & 0xFF), | ~~~~~~~~~~~~~~~~~~~^~~~~~~ In file included from /usr/include/unicode/utrans.h:23, from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:44: /usr/include/unicode/uset.h:1655:10: error: 'u16string_view' in namespace 'std' does not name a type 1655 | std::u16string_view operator*() const { | ^~~~~~~~~~~~~~ /usr/include/unicode/uset.h:1763:5: error: 'UnicodeString' does not name a type 1763 | UnicodeString operator*() const { | ^~~~~~~~~~~~~ In file included from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:46: /usr/include/unicode/ucol.h:1553:37: error: 'ConvertibleToU16StringView' was not declared in this scope 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:65: error: template argument 1 is invalid 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1553:25: error: '<expression error>' in namespace 'std' does not name a type 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:67: error: expected '>' before '&&' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~ /usr/include/unicode/ucol.h:1553:100: error: expected unqualified-id before '>' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1571:16: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1571:35: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:16: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:33: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:10: error: 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' cannot be overloaded with 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~ /usr/include/unicode/ucol.h:1571:10: note: previous declaration 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1575:32: error: request for member 'getBuffer' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/unicode/ucol.h:1575:50: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1576:32: error: request for member 'getBuffer' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1576:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1576:50: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1585:21: error: request for member 'data' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1585:33: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1586:21: error: request for member 'data' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1586:33: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~~~ make[5]: *** [make.rules:102: /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/temp/Release/common/unicode_util.o] Error 1 make[4]: *** [Makefile:187: master_process] Error 2 make[3]: *** [Makefile:66: firebird] Error 2 make[2]: *** [Makefile:6: firebird] Error 2 make[1]: *** [/tmp/build/libreoffice-24.8.2.1/external/firebird/ExternalProject_firebird.mk:30: /tmp/build/libreoffice-24.8.2.1/workdir/ExternalProject/firebird/build] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:294: build] Error 2Disable firebird with: --disable-firebird-sdbc
I've got a patch that I'm going to test for this that also includes a buildfix for libcdr with icu-76. Going to be a little bit before I get there though as I have a couple other issues that I need to take care of
I can test the patch if you post it. I didn't see a build failure with libcdr?
follow-up: 26 comment:19 by , 5 months ago
Replying to Xi Ruoyao:
webkitgtk needs to be adapted:
sed '/U_SHOW_CPLUSPLUS_API/a#define U_SHOW_CPLUSPLUS_HEADER_API 0' -i Source/WTF/wtf/Platform.h
WebKitGTK fixed at 1b39e5ae6e017ff5eee5d9a1c0b6ac4854889516
follow-up: 21 comment:20 by , 5 months ago
Replying to Joe Locash:
Replying to Douglas R. Reno:
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] 481 | ((startIndex >> 8) & 0xFF), | ~~~~~~~~~~~~~~~~~~~^~~~~~~ In file included from /usr/include/unicode/utrans.h:23, from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:44: /usr/include/unicode/uset.h:1655:10: error: 'u16string_view' in namespace 'std' does not name a type 1655 | std::u16string_view operator*() const { | ^~~~~~~~~~~~~~ /usr/include/unicode/uset.h:1763:5: error: 'UnicodeString' does not name a type 1763 | UnicodeString operator*() const { | ^~~~~~~~~~~~~ In file included from /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:46: /usr/include/unicode/ucol.h:1553:37: error: 'ConvertibleToU16StringView' was not declared in this scope 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:65: error: template argument 1 is invalid 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1553:25: error: '<expression error>' in namespace 'std' does not name a type 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1553:67: error: expected '>' before '&&' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^~ /usr/include/unicode/ucol.h:1553:100: error: expected unqualified-id before '>' token 1553 | typename = std::enable_if_t<ConvertibleToU16StringView<T> && ConvertibleToU16StringView<U>>> | ^ /usr/include/unicode/ucol.h:1571:16: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1571:35: error: 'UnicodeString' has not been declared 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:16: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:33: error: 'StringPiece' has not been declared 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~~~~~~~ /usr/include/unicode/ucol.h:1580:10: error: 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' cannot be overloaded with 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1580 | bool match(StringPiece lhs, StringPiece rhs) const { | ^~~~~ /usr/include/unicode/ucol.h:1571:10: note: previous declaration 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const' 1571 | bool match(UnicodeString lhs, UnicodeString rhs) const { | ^~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1575:32: error: request for member 'getBuffer' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1575:17: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/unicode/ucol.h:1575:50: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1575 | toUCharPtr(lhs.getBuffer()), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1576:32: error: request for member 'getBuffer' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~ /usr/include/unicode/ucol.h:1576:17: error: there are no arguments to 'toUCharPtr' that depend on a template parameter, so a declaration of 'toUCharPtr' must be available [-fpermissive] 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~~~~~ /usr/include/unicode/ucol.h:1576:50: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1576 | toUCharPtr(rhs.getBuffer()), rhs.length()), | ^~~~~~ /usr/include/unicode/ucol.h: In member function 'bool icu::header::collator::internal::Predicate<Compare, result>::match(int, int) const': /usr/include/unicode/ucol.h:1585:21: error: request for member 'data' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1585:33: error: request for member 'length' in 'lhs', which is of non-class type 'int' 1585 | lhs.data(), lhs.length(), | ^~~~~~ /usr/include/unicode/ucol.h:1586:21: error: request for member 'data' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~ /usr/include/unicode/ucol.h:1586:33: error: request for member 'length' in 'rhs', which is of non-class type 'int' 1586 | rhs.data(), rhs.length(), | ^~~~~~ make[5]: *** [make.rules:102: /tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/temp/Release/common/unicode_util.o] Error 1 make[4]: *** [Makefile:187: master_process] Error 2 make[3]: *** [Makefile:66: firebird] Error 2 make[2]: *** [Makefile:6: firebird] Error 2 make[1]: *** [/tmp/build/libreoffice-24.8.2.1/external/firebird/ExternalProject_firebird.mk:30: /tmp/build/libreoffice-24.8.2.1/workdir/ExternalProject/firebird/build] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:294: build] Error 2Disable firebird with: --disable-firebird-sdbc
I've got a patch that I'm going to test for this that also includes a buildfix for libcdr with icu-76. Going to be a little bit before I get there though as I have a couple other issues that I need to take care of
I can test the patch if you post it. I didn't see a build failure with libcdr?
I'll attach it to the ticket after this comment. Let me know what you get :)
by , 5 months ago
Attachment: | libreoffice-icu76-fixes-1.patch added |
---|
follow-up: 28 comment:21 by , 5 months ago
Replying to Douglas R. Reno:
Replying to Joe Locash:
Replying to Douglas R. Reno:
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] <SNIP>I've got a patch that I'm going to test for this that also includes a buildfix for libcdr with icu-76. Going to be a little bit before I get there though as I have a couple other issues that I need to take care of
I can test the patch if you post it. I didn't see a build failure with libcdr?
I'll attach it to the ticket after this comment. Let me know what you get :)
Builds fine with your patch.
comment:22 by , 5 months ago
Awesome, thank you! I'll contribute this upstream later as well, with the exception of the libcdr portion this was just something I came up with while I was bored waiting on something else to run.
comment:23 by , 5 months ago
evolution-data-server fixed at ecf96132a70ca55d3647c8b56b2cb05e457059d4
follow-up: 25 comment:24 by , 5 months ago
I definitely wasn't expecting xfsprogs to have problems:
Building scrub [LD] xfs_scrub /usr/bin/ld: unicrash.o: undefined reference to symbol 'uiter_setString_76' /usr/bin/ld: /lib/libicuuc.so.76: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [../include/buildrules:65: xfs_scrub] Error 1 make[1]: *** [include/buildrules:36: scrub] Error 2 make: *** [Makefile:84: default] Error 2 renodr [ /sources/xfsprogs-6.11.0/xfsprogs-6.11.0 ]$
Going to go find a fix and put it into the book.
comment:25 by , 5 months ago
Replying to Douglas R. Reno:
I definitely wasn't expecting xfsprogs to have problems:
Building scrub [LD] xfs_scrub /usr/bin/ld: unicrash.o: undefined reference to symbol 'uiter_setString_76' /usr/bin/ld: /lib/libicuuc.so.76: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [../include/buildrules:65: xfs_scrub] Error 1 make[1]: *** [include/buildrules:36: scrub] Error 2 make: *** [Makefile:84: default] Error 2 renodr [ /sources/xfsprogs-6.11.0/xfsprogs-6.11.0 ]$Going to go find a fix and put it into the book.
xfsprogs fixed at a1f54add56ec4e2453aa37899abb5fbacba80dfa
comment:26 by , 5 months ago
Replying to Douglas R. Reno:
Replying to Xi Ruoyao:
webkitgtk needs to be adapted:
sed '/U_SHOW_CPLUSPLUS_API/a#define U_SHOW_CPLUSPLUS_HEADER_API 0' -i Source/WTF/wtf/Platform.hWebKitGTK fixed at 1b39e5ae6e017ff5eee5d9a1c0b6ac4854889516
The sed command wasn't correct and I've just fixed it at e913053502bf20192505e11f777154bbfb4bfa37.
comment:27 by , 5 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:28 by , 5 months ago
Replying to Joe Locash:
Replying to Douglas R. Reno:
Replying to Joe Locash:
Replying to Douglas R. Reno:
Replying to Joe Locash:
I see a build failure in libreoffice when it builds firebird:
/tmp/build/libreoffice-24.8.2.1/workdir/UnpackedTarball/firebird/src/common/StatementMetadata.cpp:481:44: warning: narrowing conversion of '((startIndex >> 8) & 255)' from 'unsigned int' to 'UCHAR' {aka 'unsigned char'} [-Wnarrowing] <SNIP>I've got a patch that I'm going to test for this that also includes a buildfix for libcdr with icu-76. Going to be a little bit before I get there though as I have a couple other issues that I need to take care of
I can test the patch if you post it. I didn't see a build failure with libcdr?
I'll attach it to the ticket after this comment. Let me know what you get :)
Builds fine with your patch.
libreoffice fixed at d537d2302c252483c9abd235ed72de76f891598a
comment:29 by , 5 months ago
Replying to Xi Ruoyao:
For node.js
sed '/pkgicu/s/icu-i18n/& icu-uc/' -i configure.pyworks for me.
comment:30 by , 5 months ago
Replying to Xi Ruoyao:
It also fixes the test failure in libical (the sed in libical is still needed though).
comment:31 by , 5 months ago
Replying to Xi Ruoyao:
158 (!) failures in spidermonkey.
This (and the JIT tests) have had their text updated at aeb01ecb266225960fe759efeaef5e307d23c082
comment:32 by , 5 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
ICU fixed at ce1b0ceb2bde038d2f7c857bef131f86778903c1
This version fixes an issue with the tests that crops up when you use Python 3.13 with ICU 75:
ICU 76.1 works well though on this new VM.