From 2b67b6b7fbda9a60a09f5e2ac15150953cc80250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 6 Dec 2016 14:38:45 +0100 Subject: [PATCH] libreoffice: fix build for icu 58 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Müller --- .../files/0004-upgrade-to-ICU-58.patch | 246 ++++++++++++++++++ .../libreoffice/libreoffice.inc | 1 + 2 files changed, 247 insertions(+) create mode 100644 recipes-libreoffice/libreoffice/files/0004-upgrade-to-ICU-58.patch diff --git a/recipes-libreoffice/libreoffice/files/0004-upgrade-to-ICU-58.patch b/recipes-libreoffice/libreoffice/files/0004-upgrade-to-ICU-58.patch new file mode 100644 index 0000000..0084172 --- /dev/null +++ b/recipes-libreoffice/libreoffice/files/0004-upgrade-to-ICU-58.patch @@ -0,0 +1,246 @@ +From 3e42714c76b1347babfdea0564009d8d82a83af4 Mon Sep 17 00:00:00 2001 +From: Eike Rathke +Date: Wed, 2 Nov 2016 13:07:48 +0100 +Subject: [PATCH] upgrade to ICU 58 + +Change-Id: I4a992447df65b337721a2a2627d974172a14cba5 +Reviewed-on: https://gerrit.libreoffice.org/30487 +Reviewed-by: Eike Rathke +Tested-by: Eike Rathke + +Upstream-Status: Backport +--- + configure.ac | 2 +- + .../source/breakiterator/breakiterator_unicode.cxx | 12 ++++++ + i18nutil/source/utility/unicode.cxx | 26 +++++++++++++ + include/svx/ucsubset.hrc | 11 ++++++ + svx/source/dialog/charmap.cxx | 35 +++++++++++++++++ + svx/source/dialog/ucsubset.src | 44 ++++++++++++++++++++++ + 9 files changed, 130 insertions(+), 25 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f06ef8e..66a11a9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -9136,7 +9136,7 @@ SYSTEM_GENBRK= + SYSTEM_GENCCODE= + SYSTEM_GENCMN= + +-ICU_MAJOR=54 ++ICU_MAJOR=58 + ICU_MINOR=1 + ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE" + ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE" +diff --git a/download.lst b/download.lst +index 4571338..0770a4d 100644 +--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx ++++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx +@@ -63,10 +63,13 @@ BreakIterator_Unicode::~BreakIterator_Unicode() + class OOoRuleBasedBreakIterator : public RuleBasedBreakIterator + { + public: ++#if (U_ICU_VERSION_MAJOR_NUM < 58) ++ // RuleBasedBreakIterator::setBreakType() is private as of ICU 58. + inline void publicSetBreakType(int32_t type) + { + setBreakType(type); + }; ++#endif + OOoRuleBasedBreakIterator(UDataMemory* image, + UErrorCode &status) + : RuleBasedBreakIterator(image, status) +@@ -142,12 +145,21 @@ void SAL_CALL BreakIterator_Unicode::loadICUBreakIterator(const css::lang::Local + } + } + if (rbi) { ++#if (U_ICU_VERSION_MAJOR_NUM < 58) ++ // ICU 58 made RuleBasedBreakIterator::setBreakType() private ++ // instead of protected, so the old workaround of ++ // https://ssl.icu-project.org/trac/ticket/5498 ++ // doesn't work anymore. However, they also claim to have fixed ++ // the cause that an initial fBreakType==-1 would lead to an ++ // endless loop under some circumstances. ++ // Let's see ... + switch (rBreakType) { + case LOAD_CHARACTER_BREAKITERATOR: rbi->publicSetBreakType(UBRK_CHARACTER); break; + case LOAD_WORD_BREAKITERATOR: rbi->publicSetBreakType(UBRK_WORD); break; + case LOAD_SENTENCE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_SENTENCE); break; + case LOAD_LINE_BREAKITERATOR: rbi->publicSetBreakType(UBRK_LINE); break; + } ++#endif + icuBI->aBreakIterator = rbi; + } + } +diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx +index bb82bbf..984c5f7 100644 +--- a/i18nutil/source/utility/unicode.cxx ++++ b/i18nutil/source/utility/unicode.cxx +@@ -957,6 +957,32 @@ OString SAL_CALL unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript) + sRet = "sa-Sidd"; + break; + #endif ++#if (U_ICU_VERSION_MAJOR_NUM >= 58) ++ case USCRIPT_ADLAM: ++ sRet = "mis"; // Adlm - Adlam for Fulani, no language code ++ break; ++ case USCRIPT_BHAIKSUKI: ++ sRet = "mis"; // Bhks - Bhaiksuki for some Buddhist texts, no language code ++ break; ++ case USCRIPT_MARCHEN: ++ sRet = "bo-Marc"; ++ break; ++ case USCRIPT_NEWA: ++ sRet = "new-Newa"; ++ break; ++ case USCRIPT_OSAGE: ++ sRet = "osa-Osge"; ++ break; ++ case USCRIPT_HAN_WITH_BOPOMOFO: ++ sRet = "mis"; // Hanb - Han with Bopomofo, zh-Hanb ? ++ break; ++ case USCRIPT_JAMO: ++ sRet = "mis"; // Jamo - Jamo subset of Hangul, ko-Jamo ? ++ break; ++ case USCRIPT_SYMBOLS_EMOJI: ++ sRet = "mis"; // Zsye - Emoji variant ++ break; ++#endif + } + return sRet; + } +diff --git a/include/svx/ucsubset.hrc b/include/svx/ucsubset.hrc +index adf1cf6..1157a7e 100644 +--- a/include/svx/ucsubset.hrc ++++ b/include/svx/ucsubset.hrc +@@ -281,6 +281,27 @@ + #define RID_SUBSETSTR_SUPPLEMENTAL_ARROWS_C (RID_SUBSET_START + 253) + #define RID_SUBSETSTR_TIRHUTA (RID_SUBSET_START + 254) + #define RID_SUBSETSTR_WARANG_CITI (RID_SUBSET_START + 255) ++#define RID_SUBSETSTR_AHOM (RID_SUBSET_START + 256) ++#define RID_SUBSETSTR_ANATOLIAN_HIEROGLYPHS (RID_SUBSET_START + 257) ++#define RID_SUBSETSTR_CHEROKEE_SUPPLEMENT (RID_SUBSET_START + 258) ++#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E (RID_SUBSET_START + 259) ++#define RID_SUBSETSTR_EARLY_DYNASTIC_CUNEIFORM (RID_SUBSET_START + 260) ++#define RID_SUBSETSTR_HATRAN (RID_SUBSET_START + 261) ++#define RID_SUBSETSTR_MULTANI (RID_SUBSET_START + 262) ++#define RID_SUBSETSTR_OLD_HUNGARIAN (RID_SUBSET_START + 263) ++#define RID_SUBSETSTR_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS (RID_SUBSET_START + 264) ++#define RID_SUBSETSTR_SUTTON_SIGNWRITING (RID_SUBSET_START + 265) ++#define RID_SUBSETSTR_ADLAM (RID_SUBSET_START + 266) ++#define RID_SUBSETSTR_BHAIKSUKI (RID_SUBSET_START + 267) ++#define RID_SUBSETSTR_CYRILLIC_EXTENDED_C (RID_SUBSET_START + 268) ++#define RID_SUBSETSTR_GLAGOLITIC_SUPPLEMENT (RID_SUBSET_START + 269) ++#define RID_SUBSETSTR_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION (RID_SUBSET_START + 270) ++#define RID_SUBSETSTR_MARCHEN (RID_SUBSET_START + 271) ++#define RID_SUBSETSTR_MONGOLIAN_SUPPLEMENT (RID_SUBSET_START + 272) ++#define RID_SUBSETSTR_NEWA (RID_SUBSET_START + 273) ++#define RID_SUBSETSTR_OSAGE (RID_SUBSET_START + 274) ++#define RID_SUBSETSTR_TANGUT (RID_SUBSET_START + 275) ++#define RID_SUBSETSTR_TANGUT_COMPONENTS (RID_SUBSET_START + 276) + + // RID_SUBSET_END (RID_SUBSET_START + 299) + +diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx +index bcc7cef..ff201a6 100644 +--- a/svx/source/dialog/charmap.cxx ++++ b/svx/source/dialog/charmap.cxx +@@ -1594,6 +1594,41 @@ void SubsetMap::InitList() + aAllSubsets.push_back( Subset( 0x1D800, 0x1DAAF, RID_SUBSETSTR_SUTTON_SIGNWRITING ) ); + break; + #endif ++#if (U_ICU_VERSION_MAJOR_NUM >= 58) ++ case UBLOCK_ADLAM: ++ aAllSubsets.push_back( Subset( 0x1E900, 0x1E95F, RID_SUBSETSTR_ADLAM ) ); ++ break; ++ case UBLOCK_BHAIKSUKI: ++ aAllSubsets.push_back( Subset( 0x11C00, 0x11C6F, RID_SUBSETSTR_BHAIKSUKI ) ); ++ break; ++ case UBLOCK_CYRILLIC_EXTENDED_C: ++ aAllSubsets.push_back( Subset( 0x1C80, 0x1C8F, RID_SUBSETSTR_CYRILLIC_EXTENDED_C ) ); ++ break; ++ case UBLOCK_GLAGOLITIC_SUPPLEMENT: ++ aAllSubsets.push_back( Subset( 0x1E000, 0x1E02F, RID_SUBSETSTR_GLAGOLITIC_SUPPLEMENT ) ); ++ break; ++ case UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION: ++ aAllSubsets.push_back( Subset( 0x16FE0, 0x16FFF, RID_SUBSETSTR_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION ) ); ++ break; ++ case UBLOCK_MARCHEN: ++ aAllSubsets.push_back( Subset( 0x11C70, 0x11CBF, RID_SUBSETSTR_MARCHEN ) ); ++ break; ++ case UBLOCK_MONGOLIAN_SUPPLEMENT: ++ aAllSubsets.push_back( Subset( 0x11660, 0x1167F, RID_SUBSETSTR_MONGOLIAN_SUPPLEMENT ) ); ++ break; ++ case UBLOCK_NEWA: ++ aAllSubsets.push_back( Subset( 0x11400, 0x1147F, RID_SUBSETSTR_NEWA ) ); ++ break; ++ case UBLOCK_OSAGE: ++ aAllSubsets.push_back( Subset( 0x104B0, 0x104FF, RID_SUBSETSTR_OSAGE ) ); ++ break; ++ case UBLOCK_TANGUT: ++ aAllSubsets.push_back( Subset( 0x17000, 0x187FF, RID_SUBSETSTR_TANGUT ) ); ++ break; ++ case UBLOCK_TANGUT_COMPONENTS: ++ aAllSubsets.push_back( Subset( 0x18800, 0x18AFF, RID_SUBSETSTR_TANGUT_COMPONENTS ) ); ++ break; ++#endif + + } + +diff --git a/svx/source/dialog/ucsubset.src b/svx/source/dialog/ucsubset.src +index 06630cc..a7765c3 100644 +--- a/svx/source/dialog/ucsubset.src ++++ b/svx/source/dialog/ucsubset.src +@@ -1079,6 +1079,50 @@ Resource RID_SUBSETMAP + { + Text [ en-US ] = "Sutton Signwriting"; + }; ++ String RID_SUBSETSTR_ADLAM ++ { ++ Text [ en-US ] = "Adlam"; ++ }; ++ String RID_SUBSETSTR_BHAIKSUKI ++ { ++ Text [ en-US ] = "Bhaiksuki"; ++ }; ++ String RID_SUBSETSTR_CYRILLIC_EXTENDED_C ++ { ++ Text [ en-US ] = "Cyrillic Extended-C"; ++ }; ++ String RID_SUBSETSTR_GLAGOLITIC_SUPPLEMENT ++ { ++ Text [ en-US ] = "Glagolitic Supplement"; ++ }; ++ String RID_SUBSETSTR_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION ++ { ++ Text [ en-US ] = "Ideographic Symbols and Punctuation"; ++ }; ++ String RID_SUBSETSTR_MARCHEN ++ { ++ Text [ en-US ] = "Marchen"; ++ }; ++ String RID_SUBSETSTR_MONGOLIAN_SUPPLEMENT ++ { ++ Text [ en-US ] = "Mongolian Supplement"; ++ }; ++ String RID_SUBSETSTR_NEWA ++ { ++ Text [ en-US ] = "Newa"; ++ }; ++ String RID_SUBSETSTR_OSAGE ++ { ++ Text [ en-US ] = "Osage"; ++ }; ++ String RID_SUBSETSTR_TANGUT ++ { ++ Text [ en-US ] = "Tangut"; ++ }; ++ String RID_SUBSETSTR_TANGUT_COMPONENTS ++ { ++ Text [ en-US ] = "Tangut Components"; ++ }; + }; + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +-- +2.7.4 + diff --git a/recipes-libreoffice/libreoffice/libreoffice.inc b/recipes-libreoffice/libreoffice/libreoffice.inc index d34b58f..bf7db24 100644 --- a/recipes-libreoffice/libreoffice/libreoffice.inc +++ b/recipes-libreoffice/libreoffice/libreoffice.inc @@ -13,6 +13,7 @@ SRC_URI += " \ file://0001-update-ax_boost-scripts-to-fix-configure-with-system.patch \ file://0002-fix-gcc-build-error.patch \ file://0003-Werror-shift-negative-value-GCC-6.patch \ + file://0004-upgrade-to-ICU-58.patch \ " SRCREV_unoconv = "260b815bf2c57118df439f381974f3f0987222a1"