From 4cce2604f53246e27d7d67de23e9b481887445fa Mon Sep 17 00:00:00 2001 From: "Andreas K. Hüttel" Date: Sun, 6 Nov 2016 19:39:42 +0100 Subject: app-office/libreoffice: Backport icu-58 compatibility Package-Manager: portage-2.3.2 --- .../libreoffice/files/libreoffice-5.2-icu58.patch | 289 +++++++++++++++++++++ app-office/libreoffice/libreoffice-5.2.3.3.ebuild | 3 + app-office/libreoffice/libreoffice-5.2.9999.ebuild | 3 + 3 files changed, 295 insertions(+) create mode 100644 app-office/libreoffice/files/libreoffice-5.2-icu58.patch (limited to 'app-office') diff --git a/app-office/libreoffice/files/libreoffice-5.2-icu58.patch b/app-office/libreoffice/files/libreoffice-5.2-icu58.patch new file mode 100644 index 000000000000..57fe6dcbd00d --- /dev/null +++ b/app-office/libreoffice/files/libreoffice-5.2-icu58.patch @@ -0,0 +1,289 @@ +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 +--- + configure.ac | 2 +- + download.lst | 2 +- + external/icu/icu-ubsan.patch.0 | 11 ------ + external/icu/icu4c-warnings.patch | 12 ------ + .../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=57 ++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/download.lst ++++ b/download.lst +@@ -62,7 +62,7 @@ export HARFBUZZ_TARBALL := harfbuzz-1.3.2.tar.bz2 + export HSQLDB_TARBALL := 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip + export HUNSPELL_TARBALL := 33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz + export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz +-export ICU_TARBALL := 976734806026a4ef8bdd17937c8898b9-icu4c-57_1-src.tgz ++export ICU_TARBALL := 1901302aaff1c1633ef81862663d2917-icu4c-58_1-src.tgz + export JFREEREPORT_FLOW_ENGINE_TARBALL := ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip + export JFREEREPORT_FLUTE_TARBALL := d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip + export JFREEREPORT_LIBBASE_TARBALL := eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip +diff --git a/external/icu/icu-ubsan.patch.0 b/external/icu/icu-ubsan.patch.0 +index 6d1d3bc..8a47242 100644 +--- a/external/icu/icu-ubsan.patch.0 ++++ b/external/icu/icu-ubsan.patch.0 +@@ -151,14 +151,3 @@ + length(len), next(subNode) {} + virtual UBool operator==(const Node &other) const; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber); +---- source/common/unifiedcache.h +-+++ source/common/unifiedcache.h +-@@ -139,7 +139,7 @@ +- : CacheKey(other), fLoc(other.fLoc) { } +- virtual ~LocaleCacheKey() { } +- virtual int32_t hashCode() const { +-- return 37 *CacheKey::hashCode() + fLoc.hashCode(); +-+ return 37U *CacheKey::hashCode() + fLoc.hashCode(); +- } +- virtual UBool operator == (const CacheKeyBase &other) const { +- // reflexive +diff --git a/external/icu/icu4c-warnings.patch b/external/icu/icu4c-warnings.patch +index d146093..96608d7 100644 +--- a/external/icu/icu4c-warnings.patch ++++ b/external/icu/icu4c-warnings.patch +@@ -8,15 +8,3 @@ + } \ + } + +---- misc/icu/source/common/unicode/utypes.h +-+++ misc/build/icu/source/common/unicode/utypes.h +-@@ -399,7 +399,7 @@ +- * some Linux/Unix compilers have problems with defining global new/delete. +- * On Windows, it is _MSC_VER>=1200 for MSVC 6.0 and higher. +- */ +--#if defined(__cplusplus) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION)) +-+#if defined(__cplusplus) && U_DEBUG && U_OVERRIDE_CXX_ALLOCATION && defined (_MSC_VER) && (_MSC_VER>=1200) && !defined(U_STATIC_IMPLEMENTATION) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_IO_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION)) +- +- #ifndef U_HIDE_INTERNAL_API +- /** +- +diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx +index 3b0b227..76ae209 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 +@@ -291,6 +291,17 @@ + #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.10.2 + diff --git a/app-office/libreoffice/libreoffice-5.2.3.3.ebuild b/app-office/libreoffice/libreoffice-5.2.3.3.ebuild index 238d588b49d6..49e408104b58 100644 --- a/app-office/libreoffice/libreoffice-5.2.3.3.ebuild +++ b/app-office/libreoffice/libreoffice-5.2.3.3.ebuild @@ -240,6 +240,9 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} " PATCHES=( + # from master branch + "${FILESDIR}/${PN}-5.2-icu58.patch" + # not upstreamable stuff "${FILESDIR}/${PN}-5.2-system-pyuno.patch" ) diff --git a/app-office/libreoffice/libreoffice-5.2.9999.ebuild b/app-office/libreoffice/libreoffice-5.2.9999.ebuild index 238d588b49d6..49e408104b58 100644 --- a/app-office/libreoffice/libreoffice-5.2.9999.ebuild +++ b/app-office/libreoffice/libreoffice-5.2.9999.ebuild @@ -240,6 +240,9 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} " PATCHES=( + # from master branch + "${FILESDIR}/${PN}-5.2-icu58.patch" + # not upstreamable stuff "${FILESDIR}/${PN}-5.2-system-pyuno.patch" ) -- cgit v1.2.3-65-gdbad