Since r281375 building WebKit with ICU 60.2 causes this build failure: [364/6028] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o /usr/lib/ccache/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -IJavaScriptCore/Headers -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IJavaScriptCore/DerivedSources -IJavaScriptCore/DerivedSources/inspector -IJavaScriptCore/DerivedSources/runtime -IJavaScriptCore/DerivedSources/yarr -I../../Source/JavaScriptCore/API/glib -IJavaScriptCoreGLib/DerivedSources/jsc -IJavaScriptCoreGLib/Headers -I../../Source/JavaScriptCore/inspector/remote/glib -IWTF/Headers -Ibmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-attributes -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -fPIC -ffp-contract=off -std=c++1z -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/__/__/JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp.o -c JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp In file included from ../../Source/JavaScriptCore/runtime/IntlCache.cpp:27:0, from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp:7: ../../Source/JavaScriptCore/runtime/IntlCache.h:42:89: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> getFieldDisplayName(const CString& locale, UDateTimePatternField, UDateTimePGDisplayWidth, UErrorCode&); ^~~~~~~~~~~~~~~~~~~~~~~ In file included from JavaScriptCore/DerivedSources/unified-sources/UnifiedSource-f2e18ffc-13.cpp:7:0: ../../Source/JavaScriptCore/runtime/IntlCache.cpp:56:102: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> IntlCache::getFieldDisplayName(const CString& locale, UDateTimePatternField field, UDateTimePGDisplayWidth width, UErrorCode& status) ^~~~~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/runtime/IntlCache.cpp: In member function ‘WTF::Vector<char16_t, 32> JSC::IntlCache::getFieldDisplayName(const WTF::CString&, UDateTimePatternField, int, UErrorCode&)’: ../../Source/JavaScriptCore/runtime/IntlCache.cpp:62:42: error: ‘udatpg_getFieldDisplayName’ was not declared in this scope status = callBufferProducingFunction(udatpg_getFieldDisplayName, sharedGenerator, field, width, buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../../Source/JavaScriptCore/runtime/IntlCache.cpp:62:42: note: suggested alternative: ‘getFieldDisplayName’ status = callBufferProducingFunction(udatpg_getFieldDisplayName, sharedGenerator, field, width, buffer); ^~~~~~~~~~~~~~~~~~~~~~~~~~ getFieldDisplayName [365/6028] Building CXX object Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o FAILED: Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o /usr/lib/ccache/c++ -DBUILDING_GTK__=1 -DBUILDING_JavaScriptCore -DBUILDING_WITH_CMAKE=1 -DGETTEXT_PACKAGE=\"WebKit2GTK-4.0\" -DHAVE_CONFIG_H=1 -DJSC_COMPILATION -DJSC_GLIB_API_ENABLED -DJavaScriptCore_EXPORTS -DSTATICALLY_LINKED_WITH_WTF -DSTATICALLY_LINKED_WITH_bmalloc -DWEBKITGTK_API_VERSION_STRING=\"4.0\" -IJavaScriptCore/Headers -I. -I../../Source/JavaScriptCore -I../../Source/JavaScriptCore/API -I../../Source/JavaScriptCore/assembler -I../../Source/JavaScriptCore/b3 -I../../Source/JavaScriptCore/b3/air -I../../Source/JavaScriptCore/bindings -I../../Source/JavaScriptCore/builtins -I../../Source/JavaScriptCore/bytecode -I../../Source/JavaScriptCore/bytecompiler -I../../Source/JavaScriptCore/dfg -I../../Source/JavaScriptCore/disassembler -I../../Source/JavaScriptCore/disassembler/ARM64 -I../../Source/JavaScriptCore/disassembler/udis86 -I../../Source/JavaScriptCore/domjit -I../../Source/JavaScriptCore/ftl -I../../Source/JavaScriptCore/heap -I../../Source/JavaScriptCore/debugger -I../../Source/JavaScriptCore/inspector -I../../Source/JavaScriptCore/inspector/agents -I../../Source/JavaScriptCore/inspector/augmentable -I../../Source/JavaScriptCore/inspector/remote -I../../Source/JavaScriptCore/interpreter -I../../Source/JavaScriptCore/jit -I../../Source/JavaScriptCore/llint -I../../Source/JavaScriptCore/parser -I../../Source/JavaScriptCore/profiler -I../../Source/JavaScriptCore/runtime -I../../Source/JavaScriptCore/tools -I../../Source/JavaScriptCore/wasm -I../../Source/JavaScriptCore/wasm/js -I../../Source/JavaScriptCore/yarr -IJavaScriptCore/DerivedSources -IJavaScriptCore/DerivedSources/inspector -IJavaScriptCore/DerivedSources/runtime -IJavaScriptCore/DerivedSources/yarr -I../../Source/JavaScriptCore/API/glib -IJavaScriptCoreGLib/DerivedSources/jsc -IJavaScriptCoreGLib/Headers -I../../Source/JavaScriptCore/inspector/remote/glib -IWTF/Headers -Ibmalloc/Headers -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=always -Wextra -Wall -Wno-expansion-to-defined -Wno-attributes -Wno-noexcept-type -Wno-psabi -Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-tautological-compare -fno-strict-aliasing -fno-exceptions -fno-rtti -O3 -DNDEBUG -fPIC -ffp-contract=off -std=c++1z -MD -MT Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o -MF Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o.d -o Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/runtime/IntlDateTimeFormat.cpp.o -c ../../Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp In file included from ../../Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:30:0: ../../Source/JavaScriptCore/runtime/IntlCache.h:42:89: error: ‘UDateTimePGDisplayWidth’ has not been declared Vector<UChar, 32> getFieldDisplayName(const CString& locale, UDateTimePatternField, UDateTimePGDisplayWidth, UErrorCode&); ^~~~~~~~~~~~~~~~~~~~~~~ ninja: build stopped: subcommand failed. From https://build.webkit.org/#/builders/71/builds/214
Requiring ICU 61.2 seems OK according to https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy because Ubuntu-18.04 ships ICU 60.2 but it has passed more than a year since Ubuntu-20.04 has been out and Debian-10 ships ICU 63.
Created attachment 436621 [details] Patch
Created attachment 436625 [details] Patch
Comment on attachment 436625 [details] Patch r=me
Committed r281708 (241054@main): <https://commits.webkit.org/241054@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 436625 [details].
(In reply to Carlos Alberto Lopez Perez from comment #1) > Requiring ICU 61.2 seems OK according to > https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy because > Ubuntu-18.04 ships ICU 60.2 but it has passed more than a year since > Ubuntu-20.04 has been out and Debian-10 ships ICU 63. I was wondering when this would happen. I had been hoping to keep updating WebKitGTK in RHEL 8 for five years, but knew it likely wouldn't be possible due to the three-year upstream policy. (We have ICU 60.3.) Will continue to update to latest 2.32.x for as long as it's still supported.