prepare for build with ICU 60.1

This commit is contained in:
Eike Rathke 2017-11-22 19:53:32 +01:00
parent 3e1122a0e1
commit 4f6763820f
2 changed files with 167 additions and 1 deletions

View File

@ -0,0 +1,162 @@
From 9206a08ada00e8762c4a634f242bd566028964bb Mon Sep 17 00:00:00 2001
Message-Id: <9206a08ada00e8762c4a634f242bd566028964bb.1511376335.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Fri, 17 Nov 2017 11:03:45 +0100
Subject: [PATCH] Upgrade to ICU 60.1
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
This is a multi-part message in MIME format.
--------------erAck-patch-parts
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
Partially extracted and adjusted from
Change-Id: I6d90f51ee88c4e1005edbaa93d23cfb94cb2acfb
Reviewed-on: https://gerrit.libreoffice.org/44871
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
---
external/firebird/ExternalProject_firebird.mk | 6 +
.../source/breakiterator/breakiterator_unicode.cxx | 21 +++
i18nutil/source/utility/unicode.cxx | 11 ++
include/svx/strings.hrc | 7 +
svx/source/dialog/charmap.cxx | 23 +++
--------------erAck-patch-parts
Content-Type: text/x-patch; name="0001-Upgrade-to-ICU-60.1.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Upgrade-to-ICU-60.1.patch"
diff -ru orig.libreoffice-6.0.0.0.alpha1/external/firebird/ExternalProject_firebird.mk libreoffice-6.0.0.0.alpha1/external/firebird/ExternalProject_firebird.mk
--- a/external/firebird/ExternalProject_firebird.mk 2017-10-19 23:52:58.000000000 +0200
+++ b/external/firebird/ExternalProject_firebird.mk 2017-11-22 20:28:58.340429178 +0100
@@ -26,6 +26,10 @@
INVOKE_FPA:="CPU=\$$(EMPTY) $${FB_CPU_ARG}"
endif
+ifeq ($(COM_IS_CLANG),TRUE)
+firebird_NO_CXX11_NARROWING := -Wno-c++11-narrowing
+endif
+
MAKE_PRE=$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,icu)/source/lib) LC_ALL=C
MAKE_POST=$(if $(filter MACOSX,$(OS)),&& $(PERL) \
@@ -70,6 +74,8 @@
$(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \
-L$(call gb_UnpackedTarball_get_dir,libtommath) \
) \
+ $(CXXFLAGS_CXX11) \
+ $(firebird_NO_CXX11_NARROWING) \
" \
&& export LDFLAGS=" \
$(if $(SYSTEM_ICU),$(ICU_LIBS), \
diff -ru orig.libreoffice-6.0.0.0.alpha1/i18npool/source/breakiterator/breakiterator_unicode.cxx libreoffice-6.0.0.0.alpha1/i18npool/source/breakiterator/breakiterator_unicode.cxx
--- a/i18npool/source/breakiterator/breakiterator_unicode.cxx 2017-10-19 23:52:58.000000000 +0200
+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx 2017-11-22 20:28:58.341429176 +0100
@@ -544,6 +544,27 @@
} else { //word boundary break
lbr.breakIndex = pLineBI->preceding(nStartPos);
lbr.breakType = BreakType::WORDBOUNDARY;
+
+ // Special case for Slash U+002F SOLIDUS in URI and path names.
+ // TR14 defines that as SY: Symbols Allowing Break After (A).
+ // This is unwanted in paths, see also i#17155
+ if (lbr.breakIndex > 0 && Text[lbr.breakIndex-1] == '/')
+ {
+ // Look backward and take any whitespace before as a break
+ // opportunity. This also glues something like "w/o".
+ // Avoid an overly long path and break it as was indicated.
+ // Overly long here is arbitrarily defined.
+ const sal_Int32 nOverlyLong = 66;
+ sal_Int32 nPos = lbr.breakIndex - 1;
+ while (nPos > 0 && lbr.breakIndex - nPos < nOverlyLong)
+ {
+ if (u_isWhitespace(Text.iterateCodePoints( &nPos, -1)))
+ {
+ lbr.breakIndex = nPos + 1;
+ break;
+ }
+ }
+ }
}
#define WJ 0x2060 // Word Joiner
diff -ru orig.libreoffice-6.0.0.0.alpha1/i18nutil/source/utility/unicode.cxx libreoffice-6.0.0.0.alpha1/i18nutil/source/utility/unicode.cxx
--- a/i18nutil/source/utility/unicode.cxx 2017-10-19 23:52:58.000000000 +0200
+++ b/i18nutil/source/utility/unicode.cxx 2017-11-22 20:28:58.342429173 +0100
@@ -716,6 +716,17 @@
sRet = "mis"; // Zsye - Emoji variant
break;
#endif
+#if (U_ICU_VERSION_MAJOR_NUM >= 60)
+ case USCRIPT_MASARAM_GONDI:
+ sRet = "gon-Gonm"; // macro language code, could be wsg,esg,gno
+ break;
+ case USCRIPT_SOYOMBO:
+ sRet = "mn-Soyo"; // abugida to write Mongolian, also Tibetan and Sanskrit
+ break;
+ case USCRIPT_ZANABAZAR_SQUARE:
+ sRet = "mn-Zanb"; // abugida to write Mongolian
+ break;
+#endif
}
return sRet;
}
diff -ru orig.libreoffice-6.0.0.0.alpha1/include/svx/strings.hrc libreoffice-6.0.0.0.alpha1/include/svx/strings.hrc
--- a/include/svx/strings.hrc 2017-10-19 23:52:58.000000000 +0200
+++ b/include/svx/strings.hrc 2017-11-22 20:28:58.343429171 +0100
@@ -1588,6 +1588,13 @@
#define RID_SUBSETSTR_OSAGE NC_("RID_SUBSETMAP", "Osage")
#define RID_SUBSETSTR_TANGUT NC_("RID_SUBSETMAP", "Tangut")
#define RID_SUBSETSTR_TANGUT_COMPONENTS NC_("RID_SUBSETMAP", "Tangut Components")
+#define RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F NC_("RID_SUBSETMAP", "CJK Unified Ideographs Extension F")
+#define RID_SUBSETSTR_KANA_EXTENDED_A NC_("RID_SUBSETMAP", "Kana Extended-A")
+#define RID_SUBSETSTR_MASARAM_GONDI NC_("RID_SUBSETMAP", "Masaram Gondi")
+#define RID_SUBSETSTR_NUSHU NC_("RID_SUBSETMAP", "Nushu")
+#define RID_SUBSETSTR_SOYOMBO NC_("RID_SUBSETMAP", "Soyombo")
+#define RID_SUBSETSTR_SYRIAC_SUPPLEMENT NC_("RID_SUBSETMAP", "Syriac Supplement")
+#define RID_SUBSETSTR_ZANABAZAR_SQUARE NC_("RID_SUBSETMAP", "Zanabazar Square")
#endif
diff -ru orig.libreoffice-6.0.0.0.alpha1/svx/source/dialog/charmap.cxx libreoffice-6.0.0.0.alpha1/svx/source/dialog/charmap.cxx
--- a/svx/source/dialog/charmap.cxx 2017-10-19 23:52:58.000000000 +0200
+++ b/svx/source/dialog/charmap.cxx 2017-11-22 20:28:58.343429171 +0100
@@ -1832,6 +1832,29 @@
aAllSubsets.emplace_back( 0x18800, 0x18AFF, SvxResId(RID_SUBSETSTR_TANGUT_COMPONENTS) );
break;
#endif
+#if (U_ICU_VERSION_MAJOR_NUM >= 60)
+ case UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F:
+ aAllSubsets.emplace_back( 0x2CEB0, 0x2EBE0, SvxResId(RID_SUBSETSTR_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F) );
+ break;
+ case UBLOCK_KANA_EXTENDED_A:
+ aAllSubsets.emplace_back( 0x1B100, 0x1B12F, SvxResId(RID_SUBSETSTR_KANA_EXTENDED_A) );
+ break;
+ case UBLOCK_MASARAM_GONDI:
+ aAllSubsets.emplace_back( 0x11D00, 0x11D5F, SvxResId(RID_SUBSETSTR_MASARAM_GONDI) );
+ break;
+ case UBLOCK_NUSHU:
+ aAllSubsets.emplace_back( 0x1B170, 0x1B2FF, SvxResId(RID_SUBSETSTR_NUSHU) );
+ break;
+ case UBLOCK_SOYOMBO:
+ aAllSubsets.emplace_back( 0x11A50, 0x11AAF, SvxResId(RID_SUBSETSTR_SOYOMBO) );
+ break;
+ case UBLOCK_SYRIAC_SUPPLEMENT:
+ aAllSubsets.emplace_back( 0x0860, 0x086f, SvxResId(RID_SUBSETSTR_SYRIAC_SUPPLEMENT) );
+ break;
+ case UBLOCK_ZANABAZAR_SQUARE:
+ aAllSubsets.emplace_back( 0x11A00, 0x11A4F, SvxResId(RID_SUBSETSTR_ZANABAZAR_SQUARE) );
+ break;
+#endif
}
--------------erAck-patch-parts--

View File

@ -57,7 +57,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: %{libo_version}.0
Release: 3%{?libo_prerelease}%{?dist}
Release: 4%{?libo_prerelease}%{?dist}
License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0
URL: http://www.libreoffice.org/
@ -280,6 +280,7 @@ Patch7: 0001-remove-GetSwapFloat-nonsense-from-all-3-EMF-readers.patch
Patch8: 0001-Make-testUtf8StringLiterals-work-when-char-is-unsign.patch
Patch9: 0001-Updated-liborcus-to-0.13.1.patch
Patch10: 0001-We-now-require-orcus-0.13-to-build.patch
Patch11: 0001-prepare-for-build-with-ICU-60.1.patch
%if 0%{?rhel}
# not upstreamed
@ -2265,6 +2266,9 @@ done
%{_includedir}/LibreOfficeKit
%changelog
* Wed Nov 22 2017 Eike Rathke <erack@redhat.com> - 1:6.0.0.0-4.alpha1
- prepare for build with ICU 60.1
* Mon Nov 20 2017 David Tardon <dtardon@redhat.com> - 1:6.0.0.0-3.alpha1
- rebuild for liborcus 0.13.1