site  contact  subhomenews

SeaMonkey 2.53.22 compiled with system ICU

November 18, 2025 — BarryK

I reported on adding support to compile SeaMonkey within woofQ2:

...problem though got a compile error when linking with the system libicu, so had to use SM's internal libicu.

Today, took another look at it. I was using a patch from the LFS guys:

https://www.linuxfromscratch.org/blfs/view/svn/xsoft/seamonkey.html

This is where compile stopped:

6:28.46 In file included from Unified_cpp_intl_lwbrk0.cpp:2:
6:28.46 /mnt/sdb2/build/woofq2/sandbox/compile/seamonkey/seamonkey-2.53.22/intl/lwbrk/LineBreaker.cpp:565:17: error: static assertion failed due to requirement 'U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass)': Gecko vs ICU LineBreak class mismatch
6:28.47 565 | static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass),
6:28.47 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I fixed it manually today, but have put a fix into woofq2/source/seamonkey/0prepare:

#20251118 try system icu again...
#problems with system icu. for now use sm internal icu, don't need these patches...
#(for i in {43..48}; do
# sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp || exit $?
#done)
#20251118 LFS patch is wrong. intl/lwbrk/LineBreaker.cpp the patch causes this line 562 and 563:
# /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER,CLASS_CHARACTER,CLASS_CHARACTER,CLASS_CHARACTER,CLASS_CHARACTER,CLASS_CHARACTER,CLASS_CHARACTER
#...one too many of those "CLASS_CHARACTER" items. try this:
for i in {43..47}; do sed '/ZWJ/s/$/,CLASS_CHARACTER/' -i intl/lwbrk/LineBreaker.cpp; done

...if I have understood it properly, just decreasing the range spec "43..48" to "43..47" should do it. Note that Debian Trixie has libicu version 76.

Good, the SM PET has reduced in size, from 76MB to 68MB.    

Tags: easy