Opened 16 months ago
Closed 15 months ago
#18799 closed defect (fixed)
Fixes for packages affected by icu-74.1
Reported by: | Bruce Dubbs | Owned by: | blfs-book |
---|---|---|---|
Priority: | normal | Milestone: | 12.1 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description (last modified by )
Several packages will need updates for icu-74.1.
Current known packages are:
libreoffice(done at 00b933f310)qtwebengine(done at c51bc3f4d9)spidermonkeyfirefoxthunderbirdcontinue using shipped ICUseamonkey(r12.0-591-g7be485e948)- others TBD
Change History (23)
comment:1 by , 16 months ago
follow-up: 3 comment:2 by , 16 months ago
Description: | modified (diff) |
---|
Firefox:
/home/xry111/sources/12.1/firefox-115.4.0/intl/lwbrk/LineBreaker.cpp:439:17: error: static assertion failed due to requirement 'U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass)': Gecko vs ICU LineBreak class mismatch
comment:3 by , 16 months ago
Description: | modified (diff) |
---|
Replying to Xi Ruoyao:
Firefox:
/home/xry111/sources/12.1/firefox-115.4.0/intl/lwbrk/LineBreaker.cpp:439:17: error: static assertion failed due to requirement 'U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass)': Gecko vs ICU LineBreak class mismatch
Done at r12.0-533-g2281985533.
follow-up: 7 comment:4 by , 16 months ago
Description: | modified (diff) |
---|
Thunderbird needs the same workaround as Firefox, done at r12.0-536-g4ae4523d55.
comment:5 by , 16 months ago
Type: | enhancement → defect |
---|
comment:6 by , 15 months ago
Description: | modified (diff) |
---|
follow-up: 8 comment:7 by , 15 months ago
Description: | modified (diff) |
---|
Replying to Xi Ruoyao:
Thunderbird needs the same workaround as Firefox, done at r12.0-536-g4ae4523d55.
Reverted because the BLFS book does not use system ICU. The issue preventing us from using the system ICU is still not fixed in ICU 74.
comment:8 by , 15 months ago
Replying to Xi Ruoyao:
Replying to Xi Ruoyao:
Thunderbird needs the same workaround as Firefox, done at r12.0-536-g4ae4523d55.
Reverted because the BLFS book does not use system ICU. The issue preventing us from using the system ICU is still not fixed in ICU 74.
Thunderbird and Firefox patch their internal copy of ICU:
The patch is intl/icu-patches/bug-1790071-ICU-22132-standardize-vtzone-output.diff in both the Firefox and Thunderbird source trees.
For my builds I patch ICU and have FF/TB use the system ICU.
The patch still applies to ICU-74.1.
comment:9 by , 15 months ago
It looks like this is the patch:
diff --git a/icu4c/source/i18n/vtzone.cpp b/icu4c/source/i18n/vtzone.cpp index 3035106701..5e738e11fa 100644 --- a/icu4c/source/i18n/vtzone.cpp +++ b/icu4c/source/i18n/vtzone.cpp @@ -1735,14 +1735,14 @@ VTimeZone::write(VTZWriter& writer, UErrorCode& status) const { } } } else { - UnicodeString icutzprop; - UVector customProps(nullptr, uhash_compareUnicodeString, status); + UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status); if (olsonzid.length() > 0 && icutzver.length() > 0) { - icutzprop.append(olsonzid); - icutzprop.append(u'['); - icutzprop.append(icutzver); - icutzprop.append(u']'); - customProps.addElement(&icutzprop, status); + LocalPointer<UnicodeString> icutzprop(new UnicodeString(ICU_TZINFO_PROP), status); + icutzprop->append(olsonzid); + icutzprop->append(u'['); + icutzprop->append(icutzver); + icutzprop->append(u']'); + customProps.adoptElement(icutzprop.orphan(), status); } writeZone(writer, *tz, &customProps, status); }
comment:10 by , 15 months ago
I don't like the idea using Mozilla's patch which not approved by the ICU developers. We all know that Mozilla has a bad tendency to randomly hack upstream packages and cover up real issues... (LLVM 16 nightmare.)
follow-up: 12 comment:11 by , 15 months ago
Except for spidermonkey and qtwebengine the packages in the desription are end packages. Why not just have them use their internal copy of ICU and there's no need to fix?
follow-up: 13 comment:12 by , 15 months ago
Replying to Joe Locash:
Except for spidermonkey and qtwebengine the packages in the desription are end packages. Why not just have them use their internal copy of ICU and there's no need to fix?
Because we know how to fix them, and they are end packages so in the worst case (the fix is wrong) we'll not blow up other packages. So why not saving some SBUs?
comment:13 by , 15 months ago
Replying to Xi Ruoyao:
Replying to Joe Locash:
Except for spidermonkey and qtwebengine the packages in the desription are end packages. Why not just have them use their internal copy of ICU and there's no need to fix?
Because we know how to fix them
If we cannot figure out a fix we'll use the internal copy of ICU as the last resort.
comment:14 by , 15 months ago
qtwebengine:
sed 's/^#define BA_LB_COUNT.*$/#define BA_LB_COUNT 40/' \ -i src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
Not sure if this is the "correct" fix.
follow-up: 16 comment:15 by , 15 months ago
libreoffice: https://gerrit.libreoffice.org/c/core/+/158749, but it seems failing the CI.
follow-up: 18 comment:16 by , 15 months ago
Replying to Xi Ruoyao:
libreoffice: https://gerrit.libreoffice.org/c/core/+/158749, but it seems failing the CI.
Looks like they still have:
CustomTarget/i18npool/breakiterator/line.brk createRuleBasedBreakIterator: ICU Error "U_BRK_UNRECOGNIZED_OPTION" at line 17, column 14 make[1]: *** [/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/i18npool/CustomTarget_breakiterator.mk:92: /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_gcc_release_64/workdir/CustomTarget/i18npool/breakiterator/line.brk] Error 12
comment:17 by , 15 months ago
Description: | modified (diff) |
---|
comment:18 by , 15 months ago
Replying to pierre:
Replying to Xi Ruoyao:
libreoffice: https://gerrit.libreoffice.org/c/core/+/158749, but it seems failing the CI.
Looks like they still have:
CustomTarget/i18npool/breakiterator/line.brk createRuleBasedBreakIterator: ICU Error "U_BRK_UNRECOGNIZED_OPTION" at line 17, column 14
This is because there is an obsolete, now removed, option (!!LBCMNoChain
) in the file 18npool/source/breakiterator/data/line.txt. The build can be made to pass with:
sed -e /LBCM/d -i i18npool/source/breakiterator/data/line.txt
Note that The commit referenced above is not necessary for the build. It just adds an option for CJK languages, that I am unable to test!
comment:19 by , 15 months ago
Blessings upon pierre for finding the spot that needed to be changed. I confirm that removing !!LBCMNoChain solves libreoffice.
comment:20 by , 15 months ago
SeaMonkey is slightly different from Firefox:
(for i in {43..47}; do sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $? done)
comment:21 by , 15 months ago
Description: | modified (diff) |
---|
comment:22 by , 15 months ago
Description: | modified (diff) |
---|
comment:23 by , 15 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
All issues appear to be fixed. Closing.
SpiderMonkey test suite statistics updated at r12.0-529-ga192a33046. No runtime issues observed with gnome and polkit.