Initialize for icu

This commit is contained in:
zyppe 2024-02-20 14:19:27 +08:00
commit 3fe77eba91
14 changed files with 1831 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
icu4c-65_1-docs.zip
icu4c-65_1-src.tgz

2
.icu.metadata Normal file
View file

@ -0,0 +1,2 @@
6e289911ef8ab7b844b3d32f99a1431aa7603ca91c33918a651a68b298cf5cff icu4c-65_1-docs.zip
464b490066cdf671a15d9d58423ea9e0dd4f1d60af6fa6db06446ab687930767 icu4c-65_1-src.tgz

4
baselibs.conf Normal file
View file

@ -0,0 +1,4 @@
libicu-suse65_1
libicu-devel
requires -libicu-<targettype>
requires "libicu-suse65_1-<targettype> = <version>"

50
icu-CVE-2020-21913.patch Normal file
View file

@ -0,0 +1,50 @@
diff -Nura icu/source/tools/pkgdata/pkgdata.cpp icu_new/source/tools/pkgdata/pkgdata.cpp
--- icu/source/tools/pkgdata/pkgdata.cpp 2022-08-20 22:18:49.345665213 +0800
+++ icu_new/source/tools/pkgdata/pkgdata.cpp 2022-08-20 23:26:24.629294322 +0800
@@ -66,6 +66,8 @@
#endif
+using icu::LocalMemory;
+
static void loadLists(UPKGOptions *o, UErrorCode *status);
static int32_t pkg_executeOptions(UPKGOptions *o);
@@ -1527,9 +1529,7 @@
static int32_t pkg_createWithAssemblyCode(const char *targetDir, const char mode, const char *gencFilePath) {
char tempObjectFile[SMALL_BUFFER_MAX_SIZE] = "";
- char *cmd;
int32_t result = 0;
-
int32_t length = 0;
/* Remove the ending .s and replace it with .o for the new object file. */
@@ -1539,22 +1539,21 @@
length = static_cast<int32_t>(uprv_strlen(pkgDataFlags[COMPILER]) + uprv_strlen(pkgDataFlags[LIBFLAGS])
+ uprv_strlen(tempObjectFile) + uprv_strlen(gencFilePath) + BUFFER_PADDING_SIZE);
- cmd = (char *)uprv_malloc(sizeof(char) * length);
- if (cmd == NULL) {
+ LocalMemory<char> cmd((char *)uprv_malloc(sizeof(char) * length));
+ if (cmd.isNull()) {
return -1;
}
/* Generate the object file. */
- sprintf(cmd, "%s %s -o %s %s",
+ sprintf(cmd.getAlias(), "%s %s -o %s %s",
pkgDataFlags[COMPILER],
pkgDataFlags[LIBFLAGS],
tempObjectFile,
gencFilePath);
- result = runCommand(cmd);
- uprv_free(cmd);
+ result = runCommand(cmd.getAlias());
if (result != 0) {
- fprintf(stderr, "Error creating with assembly code. Failed command: %s\n", cmd);
+ fprintf(stderr, "Error creating with assembly code. Failed command: %s\n", cmd.getAlias());
return result;
}

View file

@ -0,0 +1,33 @@
From: rguenther@suse.com
References: http://bugzilla.opensuse.org/1030253
Avoid FixedPrecision::initVisibleDigits failure on i586 with GCC 7.
---
source/test/intltest/dcfmapts.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: icu/source/test/intltest/dcfmapts.cpp
===================================================================
--- icu.orig/source/test/intltest/dcfmapts.cpp
+++ icu/source/test/intltest/dcfmapts.cpp
@@ -869,7 +869,8 @@ void IntlTestDecimalFormatAPI::TestFixed
ASSERT_EQUAL(22, fd.getPluralOperand(PLURAL_OPERAND_V));
ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_F));
ASSERT_EQUAL(1234567890123456789LL, fd.getPluralOperand(PLURAL_OPERAND_T));
- ASSERT_EQUAL(345678901234567890LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ volatile double xxa = fd.getPluralOperand(PLURAL_OPERAND_I);
+ ASSERT_EQUAL(345678901234567890LL, xxa);
ASSERT_EQUAL(FALSE, fd.hasIntegerValue());
ASSERT_EQUAL(FALSE, fd.isNegative());
@@ -964,7 +965,8 @@ void IntlTestDecimalFormatAPI::TestFixed
ASSERT_EQUAL(0, fd.getPluralOperand(PLURAL_OPERAND_T));
// note: going through DigitList path to FixedDecimal, which is trimming
// int64_t fields to 18 digits. See ticket Ticket #10374
- ASSERT_EQUAL(223372036854775807LL, fd.getPluralOperand(PLURAL_OPERAND_I));
+ volatile double xxb = fd.getPluralOperand(PLURAL_OPERAND_I);
+ ASSERT_EQUAL(223372036854775807LL, xxb);
ASSERT_EQUAL(TRUE, fd.hasIntegerValue());
ASSERT_EQUAL(FALSE, fd.isNegative());

64
icu-error-reporting.diff Normal file
View file

@ -0,0 +1,64 @@
Date: 2014-08-13 15:39:48.523887951 +0200
From: Jan Engelhardt <jengelh@inai.de>
Error messages are totally useless without the actual error cause!
---
source/tools/toolutil/package.cpp | 5 +++--
source/tools/toolutil/writesrc.cpp | 6 ++++--
2 files changed, 7 insertions(+), 4 deletions(-)
Index: icu/source/tools/toolutil/package.cpp
===================================================================
--- icu.orig/source/tools/toolutil/package.cpp
+++ icu/source/tools/toolutil/package.cpp
@@ -35,6 +35,7 @@
#include "package.h"
#include "cmemory.h"
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -748,7 +749,7 @@ Package::writePackage(const char *filena
// create the file and write its contents
file=fopen(filename, "wb");
if(file==NULL) {
- fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+ fprintf(stderr, "icupkg: unable to create file \"%s\": %s\n", filename, strerror(errno));
exit(U_FILE_ACCESS_ERROR);
}
@@ -1169,7 +1170,7 @@ Package::extractItem(const char *filesPa
makeFullFilenameAndDirs(filesPath, outName, filename, (int32_t)sizeof(filename));
file=fopen(filename, "wb");
if(file==NULL) {
- fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+ fprintf(stderr, "icupkg: unable to create file \"%s\": %s\n", filename, strerror(errno));
exit(U_FILE_ACCESS_ERROR);
}
fileLength=(int32_t)fwrite(pItem->data, 1, pItem->length, file);
Index: icu/source/tools/toolutil/writesrc.cpp
===================================================================
--- icu.orig/source/tools/toolutil/writesrc.cpp
+++ icu/source/tools/toolutil/writesrc.cpp
@@ -18,7 +18,9 @@
* Helper functions for writing source code for data.
*/
+#include <errno.h>
#include <stdio.h>
+#include <string.h>
#include <time.h>
#include "unicode/utypes.h"
#include "unicode/putil.h"
@@ -64,8 +66,8 @@ usrc_createWithHeader(const char *path,
} else {
fprintf(
stderr,
- "usrc_create(%s, %s): unable to create file\n",
- path!=NULL ? path : "", filename);
+ "usrc_create(%s, %s): unable to create file: %s\n",
+ path!=NULL ? path : "", filename, strerror(errno));
}
return f;
}

View file

@ -0,0 +1,53 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-06-28 12:54:31.002040372 +0200
build: fix abort of install procedure with packaging=files
When ./configure --with-data-packaging=files, make install aborts
because the previous developer did not test it with a normal
user account/DESTDIR install.
make[1]: Entering directory `/home/abuild/rpmbuild/BUILD/icu/source/data'
LD_LIBRARY_PATH=../stubdata:../tools/ctestfw:../lib:$LD_LIBRARY_PATH ../bin/pkgdata -O ../data/icupkg.inc -q -c -s /home/abuild/rpmbuild/BUILD/icu/source/data/out/build/icudt51l -d ./out -e icudt51 -T ./out/tmp -p icudt51l -m files -r 51.2 ./out/tmp/icudata.lst
/bin/sh ../mkinstalldirs /home/abuild/rpmbuild/BUILDROOT/icu-51.2-0.x86_64/usr/share/icu/51.2
mkdir /home/abuild/rpmbuild/BUILDROOT/icu-51.2-0.x86_64/usr/share/icu
mkdir /home/abuild/rpmbuild/BUILDROOT/icu-51.2-0.x86_64/usr/share/icu/51.2
/bin/sh ../mkinstalldirs /usr/share/icu/51.2/icudt51l
mkdir /usr/share/icu
mkdir: cannot create directory '/usr/share/icu': Permission denied
---
source/data/Makefile.in | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
Index: icu/source/data/Makefile.in
===================================================================
--- icu.orig/source/data/Makefile.in
+++ icu/source/data/Makefile.in
@@ -200,16 +200,16 @@ endif
install-local: $(PKGDATA_LIST) ./icupkg.inc packagedata $(OS390INSTALL)
$(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(ICUPKGDATA_DIR)
ifeq ($(PKGDATA_MODE),files)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(CURR_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(LANG_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(REGION_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(ZONE_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(UNIT_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(BREAK_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(COLLATION_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(RBNF_TREE)
- $(MKINSTALLDIRS) $(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(TRANSLIT_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(CURR_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(LANG_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(REGION_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(ZONE_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(UNIT_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(BREAK_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(COLLATION_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(RBNF_TREE)
+ $(MKINSTALLDIRS) $(DESTDIR)$(ICUPKGDATA_DIR)/$(ICUDATA_NAME)/$(TRANSLIT_TREE)
endif
ifneq ($(ENABLE_STATIC),)
ifeq ($(PKGDATA_MODE),dll)

40
icu-susevers.diff Normal file
View file

@ -0,0 +1,40 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2018-06-04 09:47:12.535168981 +0200
References: http://bugzilla.suse.com/show_bug.cgi?id=1095425
Because of bug #1095425, IS_UTF8=0 is wanted. Since that changes the C++ABI of
class UnicodeString, the library would become incompatible to a default build
that 3rd party programs might expect, and so we need to change the SO
identifier to something unique.
---
source/common/unicode/platform.h | 2 +-
source/icudefs.mk.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Index: icu/source/common/unicode/platform.h
===================================================================
--- icu.orig/source/common/unicode/platform.h
+++ icu/source/common/unicode/platform.h
@@ -649,7 +649,7 @@ namespace std {
/* Use the predefined value. */
#elif U_PLATFORM_IS_LINUX_BASED || U_PLATFORM_IS_DARWIN_BASED || \
U_PLATFORM == U_PF_EMSCRIPTEN
-# define U_CHARSET_IS_UTF8 1
+# define U_CHARSET_IS_UTF8 0
#else
# define U_CHARSET_IS_UTF8 0
#endif
Index: icu/source/icudefs.mk.in
===================================================================
--- icu.orig/source/icudefs.mk.in
+++ icu/source/icudefs.mk.in
@@ -44,7 +44,7 @@ PACKAGE_ICU_URL = "http://icu-project.or
PACKAGE = @PACKAGE@
VERSION = @VERSION@
UNICODE_VERSION = @UNICODE_VERSION@
-SO_TARGET_VERSION = @LIB_VERSION@
+SO_TARGET_VERSION = suse@LIB_VERSION@
SO_TARGET_VERSION_MAJOR = @LIB_VERSION_MAJOR@
# The ICU data external name is usually icudata; the entry point name is

199
icu-versioning.diff Normal file
View file

@ -0,0 +1,199 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-06-11 03:36:48.480850779 +0200
References: http://bugzilla.novell.com/824262
Directions: drop patch if unable to forward-port
ICU sometimes changes their ABI without updating the SO numbers. They
did that before, and they did it again with 51.1->51.2. In part, this
is owed to how C++ is compiled on the contemporary implementations.
Thus, we will use the full version as the SO identifier in openSUSE.
Details:
U_ICU_VERSION_SHORT was (example) "51" before when there was a
libicui18n.so.51. Now, since there is a libicui18n.so.51.2, we need to
change U_ICU_VERSION_SHORT. But the define's documentation says
"without dots", and I do not know how much downstream code depends on
the non-dot feature, if at all. Anyhow, to bypass this question to
which we have no definite answer, U_ICU_VERSION_SHORT is instead simply
defined to "51_2" and we "fix" (read like: hack) it with symlinks.
However, the ICU source also uses U_ICU_VERSION_SHORT to construct the
path to its data files. However, as there is no "icudt51_2l.dat", but
only a "icudt51l.dat", U_ICU_VERSION_MAJOR_STR is introduced for
ICU-internal use, so that I do not have to edit more dirty Makefiles to
produce a "icudt51_2l.dat" instead. In fact, placing the version number
in "icudt51l" seems redundant, since that file is in a version-specific
directory anyway (/usr/share/icu/51.2/) — another point where ICU
development seems to not pay enough attention.
---
source/common/icuplug.cpp | 2 +-
source/common/unicode/utypes.h | 4 ++--
source/common/unicode/uvernum.h | 7 +++++--
source/config/mh-linux | 2 +-
source/config/pkgdataMakefile.in | 1 +
source/data/pkgdataMakefile.in | 1 +
source/extra/uconv/pkgdataMakefile.in | 1 +
source/icudefs.mk.in | 1 +
source/test/testdata/pkgdataMakefile.in | 1 +
source/tools/pkgdata/pkgdata.cpp | 4 ++--
10 files changed, 16 insertions(+), 8 deletions(-)
Index: icu/source/common/icuplug.cpp
===================================================================
--- icu.orig/source/common/icuplug.cpp
+++ icu/source/common/icuplug.cpp
@@ -760,7 +760,7 @@ uplug_init(UErrorCode *status) {
pluginFile.append(plugin_dir, *status);
pluginFile.append(U_FILE_SEP_STRING, -1, *status);
pluginFile.append("icuplugins", -1, *status);
- pluginFile.append(U_ICU_VERSION_SHORT, -1, *status);
+ pluginFile.append(U_ICU_VERSION_MAJOR_STR, -1, *status);
pluginFile.append(".txt", -1, *status);
#endif
Index: icu/source/common/unicode/utypes.h
===================================================================
--- icu.orig/source/common/unicode/utypes.h
+++ icu/source/common/unicode/utypes.h
@@ -136,9 +136,9 @@
* ICU 1.8.x on EBCDIC, etc..
* @stable ICU 2.0
*/
-#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER
+#define U_ICUDATA_NAME "icudt" U_ICU_VERSION_MAJOR_STR U_ICUDATA_TYPE_LETTER
#ifndef U_HIDE_INTERNAL_API
-#define U_USRDATA_NAME "usrdt" U_ICU_VERSION_SHORT U_ICUDATA_TYPE_LETTER /**< @internal */
+#define U_USRDATA_NAME "usrdt" U_ICU_VERSION_MAJOR_STR U_ICUDATA_TYPE_LETTER /**< @internal */
#define U_USE_USRDATA 0 /**< @internal */
#endif /* U_HIDE_INTERNAL_API */
Index: icu/source/common/unicode/uvernum.h
===================================================================
--- icu.orig/source/common/unicode/uvernum.h
+++ icu/source/common/unicode/uvernum.h
@@ -61,6 +61,7 @@
* @stable ICU 2.4
*/
#define U_ICU_VERSION_MAJOR_NUM 65
+#define U_ICU_VERSION_MAJOR_STR "65"
/** The current ICU minor version as an integer.
* This value will change in the subsequent releases of ICU
@@ -86,7 +87,9 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SUFFIX _65
+#define ___icu_version_expand(major, minor) _ ## major ## _ ## minor
+#define ___icu_version_glue(major, minor) ___icu_version_expand(major, minor)
+#define U_ICU_VERSION_SUFFIX ___icu_version_glue(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
/**
* \def U_DEF2_ICU_ENTRY_POINT_RENAME
@@ -152,7 +155,7 @@
*
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SHORT "65"
+#define U_ICU_VERSION_SHORT "65_1"
#ifndef U_HIDE_INTERNAL_API
/** Data version in ICU4C.
Index: icu/source/config/mh-linux
===================================================================
--- icu.orig/source/config/mh-linux
+++ icu/source/config/mh-linux
@@ -27,7 +27,7 @@ LDFLAGSICUDT=-nodefaultlibs -nostdlib
## Compiler switch to embed a library name
# The initial tab in the next line is to prevent icu-config from reading it.
- LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
+ LD_SONAME = -Wl,-soname -Wl,$(notdir $(FULL_SO_TARGET))
#SH# # We can't depend on MIDDLE_SO_TARGET being set.
#SH# LD_SONAME=
Index: icu/source/config/pkgdataMakefile.in
===================================================================
--- icu.orig/source/config/pkgdataMakefile.in
+++ icu/source/config/pkgdataMakefile.in
@@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
OUTPUTFILE=pkgdata.inc
MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
PKGDATA_TRAILING_SPACE=" "
all : clean
Index: icu/source/data/pkgdataMakefile.in
===================================================================
--- icu.orig/source/data/pkgdataMakefile.in
+++ icu/source/data/pkgdataMakefile.in
@@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
OUTPUTFILE=icupkg.inc
MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
PKGDATA_TRAILING_SPACE=" "
all : clean
Index: icu/source/extra/uconv/pkgdataMakefile.in
===================================================================
--- icu.orig/source/extra/uconv/pkgdataMakefile.in
+++ icu/source/extra/uconv/pkgdataMakefile.in
@@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
OUTPUTFILE=pkgdata.inc
MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
PKGDATA_TRAILING_SPACE=" "
all : clean
Index: icu/source/icudefs.mk.in
===================================================================
--- icu.orig/source/icudefs.mk.in
+++ icu/source/icudefs.mk.in
@@ -202,6 +202,7 @@ LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
# Versioned target for a shared library.
FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
+FULL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
SHARED_OBJECT = $(FINAL_SO_TARGET)
Index: icu/source/test/testdata/pkgdataMakefile.in
===================================================================
--- icu.orig/source/test/testdata/pkgdataMakefile.in
+++ icu/source/test/testdata/pkgdataMakefile.in
@@ -16,6 +16,7 @@ include $(top_builddir)/icudefs.mk
OUTPUTFILE=pkgdata.inc
MIDDLE_SO_TARGET=
+FULL_SO_TARGET=
PKGDATA_TRAILING_SPACE=" "
all : clean
Index: icu/source/tools/pkgdata/pkgdata.cpp
===================================================================
--- icu.orig/source/tools/pkgdata/pkgdata.cpp
+++ icu/source/tools/pkgdata/pkgdata.cpp
@@ -1379,7 +1379,7 @@ static int32_t pkg_generateLibraryFile(c
length = static_cast<int32_t>(uprv_strlen(pkgDataFlags[GENLIB]) + uprv_strlen(pkgDataFlags[LDICUDTFLAGS]) +
((uprv_strlen(targetDir) + uprv_strlen(libFileNames[LIB_FILE_VERSION_TMP])) * 2) +
uprv_strlen(objectFile) + uprv_strlen(pkgDataFlags[LD_SONAME]) +
- uprv_strlen(pkgDataFlags[LD_SONAME][0] == 0 ? "" : libFileNames[LIB_FILE_VERSION_MAJOR]) +
+ uprv_strlen(pkgDataFlags[LD_SONAME][0] == 0 ? "" : libFileNames[LIB_FILE_VERSION]) +
uprv_strlen(pkgDataFlags[RPATH_FLAGS]) + uprv_strlen(pkgDataFlags[BIR_FLAGS]) + BUFFER_PADDING_SIZE);
#if U_PLATFORM == U_PF_CYGWIN
length += static_cast<int32_t>(uprv_strlen(targetDir) + uprv_strlen(libFileNames[LIB_FILE_CYGWIN_VERSION]));
@@ -1426,7 +1426,7 @@ static int32_t pkg_generateLibraryFile(c
#endif
objectFile,
pkgDataFlags[LD_SONAME],
- pkgDataFlags[LD_SONAME][0] == 0 ? "" : libFileNames[LIB_FILE_VERSION_MAJOR],
+ pkgDataFlags[LD_SONAME][0] == 0 ? "" : libFileNames[LIB_FILE_VERSION],
pkgDataFlags[RPATH_FLAGS],
pkgDataFlags[BIR_FLAGS]);

710
icu.changes Normal file
View file

@ -0,0 +1,710 @@
* Fri Aug 12 2022 qzhao@suse.com
- Backport icu-CVE-2020-21913.patch: backport commit 727505bdd
from upstream, use LocalMemory for cmd to prevent use after free
(bsc#1193951 CVE-2020-21913).
* Sun May 31 2020 qzhao@suse.com
- Add the provides for libicu to Make .Net core can install
successfully. (bsc#1167603, bsc#1161007)
* Sat Oct 5 2019 jengelh@inai.de
- Update to release 65.1 (jsc#SLE-11118).
* Updated to CLDR 36 locale data with many additions and
corrections, and some new measurement units.
* The Java LocaleMatcher API is improved, and ported to C++.
- Drop 075cefb2e21f57f4cac1bc2868e93dd1b8c077cc.patch
(merged)
* Wed Aug 21 2019 kukuk@suse.de
- Remove old obsoletes/provides for migration from very old
products, as they break our shared library policy (bsc#1146907).
* Tue May 14 2019 idonmez@suse.com
- Add 075cefb2e21f57f4cac1bc2868e93dd1b8c077cc.patch to fix a
regression with the C.UTF-8 locale
https://unicode-org.atlassian.net/browse/ICU-20575
* Thu Apr 18 2019 jengelh@inai.de
- Update to new upstream release 64.2
* This maintenance update for ICU 64 includes draft Unicode
12.1 update, CLDR 35.1 locale data and support for the new
Japanese era Reiwa (令和). (boo#1112183, bnc#1103893,
FATE#325570, bnc#1103893, fate#325570, fate#325419)
* Mon Apr 1 2019 jengelh@inai.de
- Update to new upstream release 64.1
* Updates to Unicode 12 and to CLDR 35 locale data with many
additions and corrections, and some new languages. ICU adds a
data filtering/subsetting mechanism, improved formatting API,
and a C++ LocaleBuilder.
- New python3 dependency to build intermediate file
test/testdata/rules.mk.
* Wed Oct 17 2018 idonmez@suse.com
- Update to new upstream release 63.1
* CLDR 34
+ Segmentation rules and emoji sort order adjusted for
Unicode 11
+ Somali and Javanese data now up to moderate level
(document content)
+ Tongan, Konkani, Maori, Dzongkha, Tatar, Kurdish (ku),
and Xhosa data now up to basic level
+ Many data additions and corrections in many other
languages
+ The following languages have been added to ICU: Sindhi,
Maori, Turkmen, Javanese, Interlingua, Kurdish (ku), Xhosa
* New currency: Venezuela's Bolívar Soberano (VES)
* New Japanese calendar era from 2019: CLDR and ICU include
data for testing that can be enabled.
(ICU #12973, CLDR #10750)
* To enable CLDR new Japanese era placeholder name, set
environment variable (and Java system property for ICU4J)
ICU_ENABLE_TENTATIVE_ERA=true.
* New API for number and currency range formatting
(class NumberRangeFormatter, #11276)
* Support for additional Unicode properties:
Indic_Positional_Category & Indic_Syllabic_Category (#8966)
and Vertical_Orientation (#12850)
* New API for code point maps and tries, mapping Unicode
code points (U+0000..U+10FFFF) to integer values. (#13530)
* Java classes CodePointMap, CodePointTrie, MutableCodePointTrie
* C types UCPMap, UCPTrie, UMutableCPTrie
* New API for getting a UnicodeSet per binary property and a code
point map per enumerated/int-value property. (#20086)
* Full conformance with UAX #14 Line Breaking
(required BreakIterator feature work). (#7270)
* C++ Locale class
+ Additional functions forLanguageTag()/toLanguageTag(),
and functions that are easier and safer to use by using
StringPiece and ByteSink rather than raw buffers. (#13417)
+ Move semantics. (#13645)
* Various Out-Of-Memory (OOM) issues have been fixed.
- Refresh icu-versioning.diff
* Sun Jul 29 2018 jengelh@inai.de
- Update to new upstream release 62.1
* Unicode 11: 684 new characters, including 7 new scripts,
Mtavruli Georgian capital letters, 5 new Han characters, and
66 new emoji characters.
* CLDR 33.1
* Under-the-hood overhaul of number parsing. Behavior is mostly
compatible with previous versions, but there are some known
differences.
- Remove xlocale.patch (code to patch is gone),
icu-number-grouping.diff (merged upstream)
* Mon Jun 4 2018 jengelh@inai.de
- Add icu-susevers.diff and disable UTF-8 assumption
[boo#1095425]
* Wed Apr 4 2018 jengelh@inai.de
- Update to new upstream release 61.1
* ICU 61 upgrades to CLDR 33 locale data.
- Add icu-number-grouping.diff
* Tue Dec 26 2017 jengelh@inai.de
- Drop dangling symlinks /usr/lib64/icu/*.inc
* Thu Dec 14 2017 jengelh@inai.de
- Update to new upstream release 60.2
* ICU 60 provides full support for the Unicode 10.0 release
with many new characters and many property improvements.
Locale data is updated to CLDR 32, which adds several
languages and data improvements. A new number formatting API
has been added.
* Wed Aug 2 2017 jengelh@inai.de
- refresh icu-avoid-x87-excess-precision.diff with p1
* Wed Jul 5 2017 schwab@suse.de
- xlocale.patch: don't use obsolete <xlocale.h>
* Wed May 17 2017 rguenther@suse.com
- Add icu-avoid-x87-excess-precision.diff to avoid
FixedPrecision::initVisibleDigits failure on i586 with GCC 7.
(bnc#1030253)
* Thu Apr 27 2017 jengelh@inai.de
- Update to new upstream release 59.1
* Emoji 5.0 data
* CLDR 31.0.1
* * GMT and UTC are no longer unified, and CLDR provides
distinct UTC display names, avoiding confusion with standard
(winter) time in Britain.
* New case mapping API (C++ & Java classes CaseMap) supports
styled text
* ICU4C now uses and requires C++11 language features and
libraries.
* ICU4C has also moved to char16_t as the type for UTF-16. This
is a breaking change. Please see the detail section below.
* Sat Dec 10 2016 idonmez@suse.com
- Update to new upstream release 58.2
* CLDR 30.0.3:
+ Fix incorrect data for number of Cantonese speakers in China.
+ Hani_Latn transform was not updated with Unihan 9.0 kMandarin
readings.
* Time zone database version 2016j
* #12815 uspoof_getSkeleton sets backwards-incompatible illegal
argument exception
* #12825 uspoof_check goes into an "infinite loop" when U+30FB
is in an input string
* #12832 GreekUpper::toUpper skips the final character on a
non-terminated UTF-8 string
* #12849 u_strToTitle returns incorrect length if destination
is NULL
* Fri Oct 21 2016 jengelh@inai.de
- Update to new upstream release 58.1
* CLDR 30.0.2: For details of the many changes in CLDR, see
CLDR 30. Some things to note:
* For some combinations of numbering system (arab, arabext, latn)
and/or locale (ar, fa, he), there were changes to the
bidirectional control characters used with certain symbols
(percent, minus, plus), and changes to number patterns (currency
and/or percent, including addition of bidirectional control
characters in some cases).
* Thhe bidirectional controls used for such purposes include U+061C
ARABIC LETTER MARK (ALM), which requires use of the bidirectional
algorithm from Unicode 6.3 or later.
* The time separator for Norwegian locales (nb, nn) was changed to
be ':' throughout.
* Unicode 9.0: Version 9.0 adds exactly 7,500 characters, for a
total of 128,172 characters. These additions include six new
scripts, 19 symbols for the new 4K TV standard, and 72 new
emoji characters.
* Draft Emoji 4.0 data
* Emoji updates for word & line breaking
* UBiDiTransform/BidiTransform API for convenient transformation of
text between different Bidi layouts.
* MeasureFormat API for measurement unit display names
* Most COUNT and LIMIT enum constants have been deprecated
* SpoofChecker: Handling of "whole script confusables" has been
removed from ICU, in accordance with its removal from UTS #39
Version 9.0.0 and the removal of the corresponding Unicode data
file.
* Greek uppercasing ("el" locale ID) removes most diacritics.
* More robust locale data loading across ICU implementation code.
* Reduced heap memory usage in DateTimePatternGenerator
* Fri Mar 25 2016 jengelh@inai.de
- Update to new upstream release 57.1
* CLDR 29 support
* Grapheme/word/line breaking for emoji sequences, based on
Unicode 9 proposed rules.
* Four new Unicode emoji properties
* DateFormat day period formatting of "noon", "at night", etc. via
new pattern characters b & B, and DateTimePatternGenerator
support of C for selecting the customary form.
* RelativeDateTimeFormatter: Simpler formatting API.
* New simple & fast SimpleFormatter class for a trivial subset of
MessageFormat as used in CLDR data.
* Fri Oct 9 2015 jengelh@inai.de
- Update to new upstream release 56.1
* CLDR 28: For details of the many changes in CLDR, see CLDR 28.
* Unicode data updated to Unicode 8.0: 41 new emoji characters,
5,771 new ideographs for Chinese/Japanese/Korean, 6 new scripts,
improved character properties data, etc.
* ICU data size reduced by about 7.2%% (1.8MB) via sharing string
values across resource bundles.
* DateIntervalFormat now handles intervals with seconds, and sets
FieldPosition more consistently.
* DateFormat::createInstanceForSkeleton() caches DateFormat
patterns rather than DateTimePatternGenerator instances, for
better performance (for cache hits) and lower heap memory
consumption.
* StringSearch (based on collation) defaults to matches on
normalization boundaries rather than grapheme cluster boundaries,
which yields more matches on Indic text.
* RuleBasedNumberFormat (spelled-out numbers) now handles
infinity, NaN.
* Most of the old Normalizer/unorm.h had been replaced by
(and reimplemented via) Normalizer2, and is now deprecated.
* COLON has been withdrawn as a date pattern character
corresponding to the date field [UDAT_]TIME_SEPARATOR_FIELD;
there is currently no pattern character corresponding to that
field.
* Support for locale key "cf" to specify currency format style,
and interaction with NumberFormat values for UNumberFormatStyle.
- Drop icu-remove-datetime.patch (merged upstream)
* Tue Apr 28 2015 tchvatal@suse.com
- Update baselibs.conf
* Tue Apr 28 2015 tchvatal@suse.com
- Version bump to latest release 55.1:
* support of CLDR 27 (with a major cleanup of region locales, among many
other improvements), formatting for scientific notation ("1.2 × 10³")
* update to Unicode 7.0 data for spoof-checking
* Various performance enhancements
* Full upstream changelog:
http://site.icu-project.org/download/55
- Refresh the soname versioning patch:
* icu-versioning.diff
* Sat Oct 11 2014 jengelh@inai.de
- Update to new upstream release 54.1
* Unicode 7.0: Unicode 7.0 adds a total of 2,834 characters,
encompassing 23 new scripts, two currency symbols (manat &
ruble), many new pictographic and geometric symbols, and
character additions to many existing scripts.
* CLDR 26: 77 languages with 100%% modern coverage, more & improved
data, many more measurement units.
- Remove icu-rpmlint.diff (solved differently upstream),
icu-fix-tests-depending-on-date.patch (solved differently
upstream, also take note of
http://bugs.icu-project.org/trac/ticket/10937 it may need to be
reinstated)
* Mon Sep 8 2014 schwab@suse.de
- Add m68k to the list of big endian archs
* Wed Aug 13 2014 jengelh@inai.de
- Build both B and L-type endianess variants of icudt53.dat so that
icu-data really is arch-independent again
- Add icu-error-reporting.diff
* Tue Jul 29 2014 coolo@suse.com
- add baselibs.conf as source
* Mon Jun 16 2014 coolo@suse.com
- add icu-fix-tests-depending-on-date.patch to fix build
see http://sourceforge.net/p/icu/mailman/message/32443311/
* Tue Jun 3 2014 tchvatal@suse.com
- Ensure we escape the find %%f properly.
* Tue Jun 3 2014 tchvatal@suse.com
- Version bump to 53.1:
* Data from the CLDR 25 release: Many bug fixes
* Time zone data: 2014b, including post CLDR 25 time zone data
update to CLDR.
* U+20BD Ruble Sign added (from Unicode 7.0, otherwise ICU 53
still uses Unicode 6.3)
* Collation code re-implemented
* ICU4C now requires compilers with C99 support
* Updated Spoof Checker for Unicode Security Standard version
6.3. (#10706)
* many more see http://site.icu-project.org/download/53
* Tue Jun 3 2014 tchvatal@suse.com
- Clean up with spec-cleaner and remove some obsolete provide/obsolete
- Use official download tarballs instead of repacks
* Mon Apr 7 2014 schwab@suse.de
- Use a glob to avoid architecture dependent file list
* Fri Mar 7 2014 ro@suse.de
- s390 is big endian as well
* Tue Nov 12 2013 jengelh@inai.de
- Update to new upstream release 52.1
* Unicode 6.3: New bidi control codes, new Bidi_Class property
values, two new bidi "bracket" properties; for other property
value changes see the UAX #44 summary.
* CLDR 24: Improved coverage for top 70+ languages, fractional
plural rules and forms, many new measurement units, major
simplification of collation rule syntax, preliminary version of
European Ordering Rules, new relative fields.
* New API for converting between Windows time zone ID and IANA tz
database ID.
* Implement support for plurals that depend on displayed fractional
values
* Mon Jul 29 2013 dvaleev@suse.com
- make filelist depend on architecture
icudt51b.dat - on BigEndian platforms
icudt51l.dat - on LittleEndian
* Tue Jul 23 2013 jengelh@inai.de
- Add missing symlinks and update description in icu-versioning.diff
* Sun Jul 14 2013 jengelh@inai.de
- Change icu-versioning.diff: Resolve libqt4 emitting a warning
that it cannot dlopen libicui18n.so
- Build I18N data as a plain file rather than as an arch-dependent
huge shared library
- Add icu-fix-install-mode-files.diff
* Sat Jun 15 2013 jengelh@inai.de
- Add icu-versioning.diff:
Treat each minor release as a new SONAME (bnc#824262)
* Wed Jun 5 2013 jengelh@inai.de
- Update to new upstream release 51.2
* Common Locale Data Repository (CLDR) 23.1
* Time zone database version 2013c
* Security fixes for font layout and glyph table errors. NOTE:
Applications must implement
LEFontInstance::getFontTable(LETag, size_t &length) in their
LEFontInstance subclasses, so that ICU can properly bounds-check
font tables.
* Mon May 6 2013 jengelh@inai.de
- Update RPM group, description, URL
* Tue Mar 26 2013 jengelh@inai.de
- Update to new upstream release 51
* Collation tailorings put native script first;
non-Gregorian calendar formats are more consistent;
* Date format/parse now supports CLDR short weekday names
* Support DisplayContext for date formatting, locale display names
* Support new timezone pattern characters in LDML spec
* Support for “dangi” Korean luni-solar calendar
* Add CompactDecimalFormat and TerritoryContainment APIs
* ICU50 regression fix: Affixes set with e.g.
DecimalFormat::setPositivePrefix were ignored for parse
* ICU50 regression fix: UNUM_PARSE_INT_ONLY no longer handled
grouping separator
- Recompress to xz to save space
* Fri Jan 25 2013 cfarrell@suse.com
- license update: X11
official spdx.org license list now contains an entry for X11
* Sat Jan 19 2013 idonmez@suse.com
- Update to version 50.1.2
* Fix an ABI regression introduced in 50.1, icu bug#9826
* Wed Nov 14 2012 jengelh@inai.de
- Update to new upstream release 50
* Unicode 6.2: Turkish Lira Sign, improved word & line segmentation
(BreakIterator) for symbols
* CLDR 22.1: Data coverage & quality improved across all major
languages; new short width type for weekday names; new zhuyin
(Bopomofo) collation for Chinese; improved data for
CompactDecimalFormat & RBNF
* Time zone data: 2012h
* Ordinal-number support in MessageFormat & PluralRules
* Deprecate setLocale(locale) in PluralFormat
* Dictionary-based break iterators (word segmentation)
* Wed Jul 11 2012 jengelh@inai.de
- Remove SuSEconfig.icu; only run the link updater on icu updates
(FATE#313539)
* Wed Jun 13 2012 cfarrell@suse.com
- license update: SUSE-XFree86-1.0
The license (as stated in the license.html page) is not upstream at
http://www.spdx.org/licenses yet - thus, use this version (with SUSE-
proprietary prefix until the license goes upstream)
* Tue Apr 10 2012 cfarrell@suse.com
- license update: MIT and SUSE-Public-Domain
This is _not_ IBM Public License code.
* Tue Apr 3 2012 jengelh@medozas.de
- Update to new upstream release 49.1:
* Unicode 6.1: New scripts & blocks; changes to grapheme break &
line break property values; some characters change from symbol to
Po or No; etc.
* CLDR 21.0.1: Changes in segmentation data to match Unicode 6.1;
new structures for support of Chinese calendar, for
context-dependent capitalization, for gender of lists of people,
for ordinal categories, and for multiple number systems per
locale; deprecation of "commonlyUsed" element in timezone names;
removal of "whole-locale" aliases; major cleanups of timezone
names, delimiter data, abbreviated number data.
* Support for ISO 4217 numeric currency code
* See http://site.icu-project.org/download/49 for more
* Sat Feb 25 2012 jengelh@medozas.de
- Use shlib policy for icu package
- Use proper data directory in CXXFLAGS
* Wed Jan 18 2012 vuntz@opensuse.org
- Update to version 4.8.1.1:
+ Time zone database version 2011k
+ Several bug fixes.
- Changes from version 4.8.1:
+ Common Locale Data Repository (CLDR) 2.0.1
+ Time zone database version 2011h
+ Several bug fixes.
- Changes from version 4.8.0:
+ Common Changes:
- CLDR 2.0: The CLDR 2.0 release contains numerous improvements
and bug fixes approved by the CLDR committee, including much
additional data for many languages.
- Explicit parent locale support in data imported from CLDR
- MessageFormat and related classes (choice/plural/select) have
been reimplemented, with several improvements and some
incompatible changes.
- Extended PluralFormat pattern syntax supports explicit-value
forms and offsets.
- Utility APIs in PluralRules (get some/all/unique keyword
values)
- Time zone API to return a list of available canonical system
time zone IDs
- Time zone API to return a region
- Collation: Full implementation & public API for script
reordering
- Dictionary-type trie
- GB18030-2005 update
+ ICU4C Specific Changes:
- Alphabetic Index support ported from ICU4J
- X11 Compound Text encoding support ported from ICU4J
- Appendable interface
- Add unzip BuildRequires to handle .zip source file.
- Change the way we unpack the docs zip file: we need to create the
html subdirectory first, so we don't unpack via %%setup but with
an explicit call to unzip.
* Sat Dec 24 2011 vuntz@opensuse.org
- Remove call to suse_update_config, and stop removing
config.cache.
* Thu Dec 22 2011 vuntz@opensuse.org
- Add automake BuildRequires that was implicit before, to fix
build.
* Wed Oct 12 2011 vuntz@opensuse.org
- Drop pkgdata.diff: everything leads me to think this is not
needed anymore. Debian doesn't ship this patch with its 4.4
version of ICU. This patch was just a workaround in the first
place anyway.
* Tue Oct 11 2011 dmueller@suse.de
- Disable "make check" when run under qemu.
* Tue Aug 2 2011 idonmez@novell.com
- Enable strict-aliasing again since the code seems to be fixed.
- Enable make check inside %%check.
- Cleanup the spec file with spec-cleaner.
* Thu May 5 2011 vuntz@opensuse.org
- Update to version 4.6.1:
+ Common Locale Data Repository (CLDR) 1.9.1
+ Update timezone data support to Olson 2011c
+ Fix: UCOL_RUNTIME_VERSION should be updated for 4.6
+ Fix: Collation Reordering Use Of USCRIPT_UNKNOWN
+ Fix: Can't find Hangul with search coll (usearch doesn't handle
CE iter behavior)
+ Fix: ULocale#toLanguageTag() should not supply "und" as
language when the locale has only private use
+ Fix: USpoof uses NFKD, should be NFD
+ ICU4C-specific bug fixes, including:
- ICU misparses numbers in scientific notation
- detect out of memory issue for Hashtable in low memory
situations
- Changes from version 4.6.0:
+ Unicode 6.0:
- Supports final version of Unicode 6.0
- New UCA data for collation/sorting, with refinements from
CLDR; this data is revamped for more effective use of
collation weights, and noncharacters are now handled
- Support for 2,088 new characters, including the new emoji and
Indian Rupee sign
- Fully updated properties
+ CLDR 1.9:
- Supports final version of CLDR 1.9
- The CLDR release contains numerous improvements and bug fixes
approved by the CLDR committee, mainly in the areas of
collation sequences, transliteration, and available date
formats.
+ Support for UTS #46 Unicode IDNA Compatibility Processing.
+ Alternate number symbols based on numbering system.
+ Compact collation tailoring syntax for reduced memory and disk
footprint.
+ New collation [import] rule for reduced footprint and improved
maintenance.
+ Fast string BiDi direction detection.
+ ICU4C-specific changes:
- ICU 4.6 requires compiler RTTI to be turned on. Please see
the ICU4C readme for more details.
- pkg-config files for a standard way of linking against ICU.
- Promotion to @draft (from @internal) for most regex functions
that provide access via UText.
- Regex support for a "find progress" callback.
- Enhance regex APIs to support full 64-bit offsets and
indices.
- New regex API to set match and start position independently.
- Update icu-remove-datetime.patch to apply without fuzz.
- Rebase icu44-rpmlint.diff.
- Add pkg-config BuildRequires to automatically get
pkgconfig()-style Provides.
* Fri Jan 14 2011 vuntz@opensuse.org
- Update to version 4.4.2:
+ Common Changes:
- Update LMBCS mapping table
- Time zone data 2010l
+ ICU4C Specific Changes:
- Fix: Difference between Java and C implementation with
exponent characters
- Fix: u_fflush (and thus u_fclose) not flushing stateful
converter
- Fix: unum_parseInt64 is not giving proper error
- Fix: Missing header files in Windows build
* Thu Jul 8 2010 jengelh@medozas.de
- Update to version 4.4.1
+ Common Changes
- Common Locale Data Repository (CLDR) 1.8.1
- Enabled non-Gregorian calendars in DateIntervalFormat
- Changes from version 4.4:
+ Common Changes
- Unicode 5.2 support.
- CLDR 1.8 data - over 22%% more data, with many new locales.
- Normalizer2 - for fast, flexible normalization, paving the
way for UTS #46 support of international domain names.
- Optimized resource bundle format to reduce the ICU resource
bundle installation footprint.
- Hebrew calendar month numbering improvement.
- Finer granular ICU locale resource data packaging.
- SelectFormat - for selecting a translation by a keyword among
multiple alternatives when formatting messages.
- Flexible hour pattern handling in DateFormatPatternGenerator.
- Updated LMBCS converter implementation.
- EBCDIC converter enhancement for supporting various SI/SO
codes used by non-IBM mainframes.
- 64bit time zone transition data support.
+ ICU4C Specific Changes
- Regular Expressions support UText - allowing regular
expressions to work on large or discontiguous text
(Technology Preview).
- DecimalFormat support for big decimal numbers.
- ICU Plug-ins - for packaging a specific ICU servce as plug-in
and calling different versions of plug-ins in a same
environment (Technology Preview).
- C++ public smart pointers.
- Java modified UTF-8 support.
- Improved UnicodeString substring operations.
- New usearch options to control matching of collation elements
- Use %%_smp_mflags
- Add icu44-rpmlint.diff to fix some build errors.
- Add pkgdata.diff to help build on some architecture, see
http://bugs.icu-project.org/trac/ticket/6969#comment:19.
* Tue Apr 20 2010 crrodriguez@opensuse.org
- In JeOS, libicu is installed by default but it should
require timezone package to fullfill all dependencies.
* Tue May 26 2009 vuntz@novell.com
- Drop icu4c-3_6-src-setBreakType-public.diff: it's not needed
anymore for OOo.
* Sat May 23 2009 vuntz@novell.com
- Update to 4.2:
+ Locale Data: ICU uses and supports data from Common Locale Data
Repository (CLDR) 1.7 , which includes data for 146 languages,
159 territories, 468 locales- 21%% more locale data than the
previous release.
+ Number system support and the number keyword.
+ Number system override in DateFormat.
+ Numerics used by Hebrew Calendar date in Hebrew locale.
+ BCP47 (language tag) / Locale transformation.
+ BCP47 mapping of LDML keywords.
+ Encoding selector: Return a list of charsets that can handle
the input text.
+ Simple duration: Implementation of CLDR duration format.
+ Available/Preferred keywords for a locale (Calendar, Collation,
and Currency).
+ StringPrep standard profiles: RFC3491 NAMEPREP, RFC3530 NFS4,
RFC3722 iSCSI, RFC3920 NodePrep/ResourcePrep, RFC4011 MIB,
RFC4013 SASLprep, RFC4505 trace and RFC4518 LDAPprep.
+ Miscellaneous Arabic shaping enhancements.
+ UTF-8 friendly internal data structure for Unicode data lookup.
+ API to get CLDR version used by ICU.
+ ISCII charset converter updates (added Gurumukhi, other
updates).
+ Performance improvements in Time Zone Name format/parse, and in
DateIntervalFormat construction.
- Remove AutoReqProv: it's default now.
- Drop icu-gcc44.patch: fixed upstream.
- Do not package packaging doc in libicu-doc.
* Fri Mar 27 2009 vuntz@novell.com
- Add icu-remove-datetime.patch to be more build-compare friendly.
* Mon Mar 2 2009 crrodriguez@suse.de
- fix build with GCC 4.4
- remove static libraries
* Wed Dec 10 2008 olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
* Thu Oct 30 2008 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Sat Sep 13 2008 vuntz@novell.com
- Merge with openSUSE:Factory. Redo the patch tags that were done
by jpr@novell.com
* Fri Sep 5 2008 maw@suse.de
- Update to version 4.0:
(All of the bug numbers listed are against
http://bugs.icu-project.org/trac)
+ Update to Unicode 5.1 (#5696)
+ Locale Data: ICU uses and supports data from Common Locale Data
Repository (CLDR) 1.6, which includes many improvements in
quality and quantity of data
+ Add/removeLikelySubtags (#6124)
+ Charset converter file size improvement (#5987)
+ Date Interval Formatting (#6157) Note: Calendar type supported
by this feature is Gregorian only in this release
+ Improved Plural support
+ Additional calendars: Chinese (#4081) and Coptic/Ethiopic
(#4571)
+ Security fixes for CVE-2007-4770, CVE-2007-4771, and
CVE-2008-1036.
- Drop libicu-regex.patch, which has been upstreamed.
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
* Wed Feb 13 2008 maw@suse.de
- Update to version 3.8:
+ Locale Data: ICU uses and supports data from Common Locale Data
Repository (CLDR) 1.5.0.1, which includes many improvements in
quality and quantity of data.
+ Rule Based Time Zone: This set of classes provides the ability
to read and write time zone data in RFC2445 VTIMEZONE format.
This also provides access Olson timezone transitions.
+ Timezone Formatting: This has changed to give more human
readable results.
+ Relative Date/Time Formatting: A draft of the relative date/time
format class has been added. This functionality can be accessed
through the DateFormat::createDateInstance or DateFormat.getInstance
factory method. It provides the ability to format localized dates
in terms of "yesterday", "today" and "tomorrow", instead of a
specific only date or time.
+ Demonstrations and Tools
* ICU Data Library Customizer: This new online tool provides an
easier way customize ICU's data.
* ICU4J Demonstrations: These will demonstrate some features of
ICU4J, like calendars, transliteration, and several other
features.
+ Flexible Date/Time Formatting: A draft of flexible date/time
format generator has been added. This allows multiple date and
time format patterns to be generated that are valid for specific
locales. This funtionality can be accessed through the
DateTimePatternGenerator API.
+ Time Zones: The default time zone is detected more accurately
on Unix machines.
+ Additional Calendars
* @calendar=taiwan: This calendar is a variant of the Gregorian
calendar used in Taiwan.
* @calendar=indian: This is the Indian national calendar.
* @calendar=persian: This is the Persian calendar. It is also
known as the Jalāli Calendar. It is used in several Arabic
countries.
+ UnicodeSet
* The Freezable design pattern is now supported, which can
improve performance for the contains() and span() methods
on frozen UnicodeSet objects.
* A span function was added for iterating through strings.
* The containsAll(string) and containsNone(string) now support
set strings, instead of only codepoints.
+ Performance
* Charset conversion performance has been enhanced. The
amount of improvement varies depending on the converter
being used and platform being used.
* Rule based transliterator construction performance has been
improved.
- s#%%run_ldconfig#/sbin/ldconfig# in libicu's %%post and %%postun
- add libicu-regex.patch (bnc#354372).
* Thu Feb 7 2008 pmladek@suse.cz
- made RuleBasedBreakIterator::setBreakType method pubclic; it was requested by
OpenOffice_org >= 2.3.1, see http://bugs.icu-project.org/trac/ticket/5498
* Wed Jul 25 2007 pmladek@suse.cz
- Updated to version 3.6
* supports Unicode 5.0
* supports data from Common Locale Data Repository (CLDR) 1.4
* charset detection framework was added
* font layout engine has support added for Tibetan, Sinhala and Old Hangul
* BiDi algorithm was enhanced to be more flexible and efficient
* new icupkg tool provides an easier way to manage ICU's data library
* time zone data is modularized to allow easier building and updating of
the data
* BreakIterator uses UText for abstract text processing
* 64-bit indexing is now used to allow access to larger chunks of text
* added API for read-only locking for security and robustness
* lots performance improvements
* Mon Feb 13 2006 olh@suse.de
- mark libraries as executable to extract debuginfo
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Wed Aug 3 2005 sbrabec@suse.cz
- Updated to version 3.4.
* Mon Mar 28 2005 gekker@suse.de
- Move icu-config to libicu-devel package (8030).
* Mon Jan 10 2005 sbrabec@suse.cz
- Updated to version 3.2 (#49578).
Updated by Robert Schiele <rschiele@uni-mannheim.de>.
- Added -fno-strict-aliasing.
* Fri Nov 19 2004 ro@suse.de
- ignore return-code from strip call
* Tue May 25 2004 clahey@suse.de
- Removed --with-data-packaging=files. Fixes gtk-sharp compilation.
* Mon May 24 2004 clahey@suse.de
- Updated to 2.6.2.
* Wed Mar 31 2004 mfabian@suse.de
- Bugzilla #37029: "strip --strip-debug" static libraries to save
space on the CDs.
* Fri Jan 23 2004 uli@suse.de
- removed --disable-rpath; it is unnecessary and breaks the
icu-config script
* Sat Jan 10 2004 adrian@suse.de
- add %%run_ldconfig
* Tue Sep 23 2003 mfabian@suse.de
- Bugzilla #31665: "SuSEconfig.icu is not lib64 clean" fixed.
* Mon Aug 18 2003 mfabian@suse.de
- update to 2.6.
* Mon Jun 16 2003 mfabian@suse.de
- fix "directory not owned by any package".
* Fri May 16 2003 mfabian@suse.de
- fix file list, remove CVS directories.
* Wed Sep 11 2002 mfabian@suse.de
- /usr/sbin/gencnval is now in /usr/bin/gencnval.
Fix SuSEconfig.icu accordingly.
* Fri Aug 16 2002 mfabian@suse.de
- update to 2.2
* Sun Aug 11 2002 mfabian@suse.de
- add Provides: libicu17 to libicu21 subpackage
(to trigger the selection of the new package during update.)
* Fri Aug 9 2002 mfabian@suse.de
- update to 2.1
* Tue Mar 12 2002 mfabian@suse.de
- use %%{_libdir}
* Tue Mar 12 2002 kukuk@suse.de
- Fix most wrong directories in filelist
* Mon Feb 11 2002 ro@suse.de
- tar option for bz2 is "j"
* Wed Mar 7 2001 mfabian@suse.de
- new package: icu 1.7
- package names as described in PACKAGING

349
icu.keyring Normal file
View file

@ -0,0 +1,349 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFZIiQoBEADCWPLK62Qyz2AkaXLY8N2SSv4iFL3SMdJW6JAlb4ELrO67w81L
GliVieSnu+vq0kU1xOhuB2Jrsy8g7MuMZ2Dy+/ySVPmgK3EllNqan3OdSPzg6tk6
x1kG/DOCDqbu9d8y5i9CoW+h4hYGd+NFFu/Vs0osKyNV2O8+XPJe+26ihwCALnz5
VKeSmZeSyf/FjIyYvEPFhk3LESJuCJzoGKdcoQlSKUy39kBy0+yYvzr4e6mUnicO
InppVgeon4lWxytHVVfaVGnvp5A72q718xHaFrfhDGrb6CPh8pzwlKcsic6fV5UH
oxSdXfxu7KBUOyY28kEBAzRx/qAmX5O4jr1FZxsWMG75X7AxOiH/33NdE6flGpId
JQvk4AOT/mG0mmLce3NU39FQBR+jZtASdeHFeyCflcUdUOYzLSeq1HVj8FbUAExM
sjAzvXcNZURM42iDLrcp1sc1Z/4PIEJy9pFnm0tlda70CQKU5Fzf6lj0WxNgCuyH
gs7SaRepSlFydAPafQ7Qe4oC7fwrkazqNEf/NAEWanONB+fsDU4vWHwT9xy7Sz+m
wpnwwUgjUMjT01Itnf9HpgRCc+VVTG4EE0L01zPb7bOdYVhc8QIXbR9g7lzdjw2q
yGh/IOvrU48BEQW8iv7NLjWCOpZpGfgD78GZy7Eod8O5IF9J4ZkvT1RebQARAQAB
tCRGcmVkcmlrIFJvdWJlcnQgPHJvdWJlcnRAZ29vZ2xlLmNvbT6IXgQQEQgABgUC
VlLOagAKCRDBkcHuDe0z6kKfAPwIfmy5ZTkyAbT3c6xsAhL14KPYgrGVLRWy+niK
m3+ATwD7B5TqgHT9pCEHvzN8xthIxYxFHahqe+b/PeUEvhtpkPuIXgQQEQgABgUC
VlVmNgAKCRAhbX6S62GBnrVjAP9r92ru0lzxBPiVTJfUdLI7BaLkSRzvLxPomlbo
x+0FQAEAv7hhYHviW5WRBuXHIv/CQRssuxse/ZxUEd8ibyyz9NGIXgQQEQgABgUC
Vl63GgAKCRAcLJ0qdWTcnyvJAP9zpjevsS/CeXBAm4/aA21BlRxMxu5ayvWs701+
XkOQxgD+Kx8RRTvVM9Gju1XIsdPzbYelpkaZuWI18nFz7rnJIGeIXgQQEQgABgUC
VmDKAgAKCRCkKJjHS/FV2yS1AP9+iz/HwRNIOLuHmWhWUkU6EksKrZk5DqjDIjgZ
HW6izAEAn3wEe5lrzUzZDFFxzcJj5mDRXgcLfrFYmyDhT0nimM+InAQTAQgABgUC
VkiKJgAKCRDESri4UDJ9+a9LA/4tWMpIORjCYM4ymxepz7NOrFbIpTRxUf9PnBq8
2faj7tXkgtoqj2sKQ5Gudmq/tDtboltF2dyLg086gPcAKwiwJ1rfyWtu8Ue5xqHE
VlerY150C7NlUNmYUuI08MmlAEByL00Ub89u1CdFsTBrAsYEHVJXOZdbJpC1ukHi
bHKG+IkBHAQQAQoABgUCVl7q3wAKCRBHGeT8HhbJMImECACnRNM01tl+Iiuv3Ek5
CpFrqF04t5qsrr1GJZ0xyiYF8ekrz5yhcUgi5S1UEDQxnPV2YjvYMU7uAg9+tAw1
Nuqp9VF3O3gpIgNFOrEwSe8h5tPwTYlkGV/FTjfSksbTI6TJ4sQ/IqHp5Qm3MuXE
EfroRXU7SCeKh33LeCjHleJl6FXGwiGD6nuUrgFD8i+rvszpKA9Yh5bahZbn1wrc
lTEsPZFFNIaAURkm/p8mNuKz7sDNqmyocAtxb9keXh9lJyzWhOUe0m+R9M8ju+H8
SGCNVO+lZN4axMojL0+QBKq4vNJF1ojvvSylgV3tIA6g7Kfi6shgaE/U3YzmdiEM
aTqwiQIcBBABAgAGBQJWXszMAAoJEESE9VUtHou0DNgQAJBLjQkZjXKAmbIejdID
XuUXVPIfs9Yj8Gddmt9PQJ1G0WdT+jChs5jXp1NBdIJzP0B31XDVIWOfhDXcRmnS
dbTllBgPPhSMPpgkKAZ8L6/IDOVXWnnDZjk791v5WGIDWUtVhTEjDFLZ3CL0Wcyk
6aApPzsDSrf9vH+71KQbkxDUesp8aUBU4spFBPVWsvT+ZFzQcB6iNrqzDHIu1qw1
q6idaWuEkaFVloj3qhnBKufxx0ivS+CUaIzbO3Gbq+9FmajTKXcFeUMv3Ua7/bfE
+rQIVf7G9m5fHm1yZm+/1Fh3IPBEf9ES16bg9N+IcJokuzw+pTQz2IvoaiQuZPz6
j/VmSMUb/KHDMbJ60LuqKRZHZmy7344V4EkBFJsrJXFMfEGwmXjdIUPsxUhSq0Dm
RAD8z3ytdAsREsdoddXKk6/snQ18IeqzxNCrzIhC0OjqszFttj/dnb7n9dGSuJL1
sAH4oyyOH+mPCc2841Dpybvwlm4n2rhhYDSWuI4iMRwWhzKx8RigFk1CQvoXRqdT
Vsg3Zy6430iOLOoWs2tohn2sSvoyflo01U9xNq2Kw6q/L8/7kYmFqP6HXtWjU6dC
EJFmc826Zx3kiNWvANbOp5pvvKK3gm1Rv+xNh/FPFAIwYbD70y3GwB5HgHrvu6Q4
RKCwUlMZp6VWyWCT5bKvdBQ8iQIcBBABCAAGBQJWXy8IAAoJEGxlgOd711bEolwP
/ROlu9gf+af7rEoVgHvgVJWJjaetXHiydL/+vBojBi+h7EyOTOdur/T2VF9HyJPF
jsy18VV3grK85YZBV1BdlidfEPDcUuCzNrZA2y4SDQvpIcQEggkd2TnbKRjhczHQ
RHu2CFsTo0Nl1VowrLVI7e7rpt4Ih2yeVLtiiBZkekPOHrAKhZXlErOIZL9eWm8m
z8mcRlaI0BxXJO0F5uStYAP//6fEU+zNePzwkRx26Iz1qTyJ3ZQB6ZxYoKFqR4Xp
C98Rv+cSHyUny0UJRrM3Y63PpOpW0sUMRxXR6k8PpJAClSfOMW0L/b+mrBQmV1Ph
lbmWZ8Np4pxLxPXr2xieKqSev6QTqYPleH3y0Oc7MYciZP6hTxPM2TFRfrsJYWEh
0zgLZUs9OlYqGnI3hrHhkeXnbQQ3pOD8YGTifkHAiImB1yOMCxqIB7HtRE1gNC/V
cBKBsbSUqLDACrXimNf0zz4cRaSm4bFnDllvfI0BrYDeqvWidzAMsV4DFI8G9xUA
bC6qt9Rg/bxOFFP7yfD08Nvxjog6oDtFlTAo30zpwWyGSJjXBFbpN9qUUANUzG2d
cWs0KIj+gdHcuXcmyvptGfHsuD4312T35jTA1w//N6OOBZ4N+Tv2OHSj4DdREQAO
sNebJu1PuF8fB8kXSVxpgXTSsl+LZr/iFxvP8ydBWs6ziQIcBBABCAAGBQJWZqgb
AAoJEH9hdWF3l492718P/Aq8dtvyWFE7Zm09VUKZbadh9mEc28MxjZKruM326jp/
TpxM3sAGlemlvqN22ZyKofuhhVV2gE+QEWhh3dflZ7OYiR+2UY8hBGOUoBhAX3fu
lpdxZm2DIsJusxcPngeowHm0EF6+CxYX0FAhxGbodVezNxEo05SSTIGRuqyJa8vI
VzuKGio5lR/uFd+XSa+NZK1f6kRpVmF08F2N4cGPFqUCTppO+eXseXxN8Zg65mLI
z7jcEHeIHpkAo2pysaK+u9uc2EQ8YvJxdq3pqUEPSFagU0C5mC8YMnjt8LOpZU5v
ggCUM1Z9z0Jjexd6/ndTKjVw0Z4N0pMxmyz0XS8NPTfNqYa9u32csmq7TIxVL4EP
TSOkSjUnGAbH7nzR+43Ajc+8wObJKGey42padYAmXPs8BteG8H67jt2+xwzPORJ1
P7k7i8aK7pfji45qJxTL6lLAA9V3PXLhOgAX6w8J8h2brt3wjDBYNgKacza2j6CM
2Ua1sZrSHFDxWwPjv7bHJgj1hEBQwbG+6bBlkqq8DO1UHOLLoN3sW6yl63F+jwZR
Gijssocd/ew5HdR/Weo5H/K4+5XbgADWUK8ZJxOFvTscdS9cQVmDfh0YezL0Otrb
qMHnuOQ5FobhHpRuklisxEtXMcM0a2XEkkxZ5LwuZC8lTZh3s8YroUf6OyInSOs5
iQIcBBABCAAGBQJXBLX7AAoJEEdxIXHy7WL7CEsP/0QyXwVhS5UHOq4jVnTe+2Nf
2BbBb4qg3GvCMVL8ZGpVbKZS58J1fveTGaXjiHoBO272W8/B36+nO4PR7Uz5AXlM
vpIPVbOvPwCHmjWwq6Wx0x+vcA9X72fTrbGTYVvJrTKwspO6Ba4Wct0FD3Gs0VsX
JR3sNud0lhx9GOlFkxSsRS9bBshEZJr76yIp++r4jiDCEuZ8VMFtLzQEGRY9DN9f
8seXBD/m/R3dFY4NAk0WXMmP/H21Yn7/oEqZIM4PRb3xaUC1eQvMT1UtPzscPduI
D49+kOYWvyZmm5Qn9+p6Twvy8qAKh3VQh7HKQRl2FqKgdaTWJr71Iowiv9eDpCNU
XiEXZC7dlS63twssn9aunUfPD89ImtKtfULK2rXG/BHPUI7XFJ7MllT1P66KkikH
/6Y27ugXjD7DRfEm1OJy73Q1vtdIxMqNhbc1U/BpY/IJcFQ9m4bH6E4VgjqIpoBd
AZOsCYA+dJ9MP47LAt86aI+Ea2aE9oUKA29HpnN7Ci5Gh6L+Jjf04ZrrE2+8vz3X
VaHejfUoGP6dPPh6VI86g3r+a1YtqZYZwRt/IochTHP1HxLTbrXng0N8ukrX1CgI
RueNaQGpZ0XVsPPC0xfbhbSPHqp+kO2rnTOLh8gN0ZuDZwHd0UYxsZd2SPoywvAh
QeKte0lGYfwvC9NHi1QIiQIcBBIBCgAGBQJWUOxRAAoJEIDYiyLUMwMxjpIQAKKL
r5TTwCG3j94sN2NzNcs6U34Y5YXACVmlmxG0HqJOUbio7IytwwHEP+YgF/wTF0TK
EBPzuuvlg60yiO65zrK+QYTClFuT5NodkKNPOy6VXsqL9njPBbDTW/chfWdrewK5
tW5Ddhkma5GhEtNRwHOpHwjpt0CZV+1OTPM/tt+jFk5zEVXUphNRgi2upPcbxGI2
bpEVsuXjUgJmcQqxl64OECnPGpzxxobRFqzuRzQUoU2s2jOaKghI7Ma9WLfW7j6d
J/T1D3dlV+2+ysYHimA7ZMFz4+3qrJLNT2mwWUK27U97Ifgz4wkemq9Z0d/gAxNI
OJJu2zVmVtuSVY9HsbMvL7hidDFkljwk2lTu0bDhRwqQ2Wiqh/Ca7YySvJJiyTCE
Cc3xMnsJ5+ntGSREsk6XFRKT2qCXddccfMpfTw1P++V9bUY7Nbs8eM59JPl60/hE
w5DiUHuLFukbYAW7KQBF/9elxO4B4haZ8PoZ9mVvEj9+c8hEQEBWbx27t7Ahifkv
rDy1JCUszAnkEsIg9hk/hFfCBfE+t2ap6j7jl6pcnAGYS2WmxbUUOfko3VbPVqVI
Fz0lSfvcQJpkL2vrTHlH++g/YnwseALIQ91IBMq/LHd4uixaYyC0PT/u5jExnJ2O
I9adEFSBRelzo/NC//Y1RhVZCsE2o5pJkQwVOxoUiQIcBBMBCAAGBQJWXY6aAAoJ
EJwYe6KbIVf4fjoP/iWGzELg5ymLiJ4PRiCjTsF4RI8DHW1edGP6NumjLyRHgt52
GZMgVNuVRmT5nag1V0NGbaha1kBExoZLhQ2So1C8hth4sKJA3gfw/cP0ugggFEhE
+/+w6AkTxs28oyH1p1FbWQn/GTyTtnKarLxWzbSFvrWuaYS28fnxIY0E24/T1/Qb
YZsmBDJeZbuMpaDlIox0hS5KDt8o/++q1F5hTayON7MzPnCAwxC7TR1XCzXzlAME
N2quE0y2nztfU539KW44iHbq8LPZLx2rw9kTjp6oIzFl+Grs4h8ZQdor86f1OrwY
esB65VrQ1ljvKJomdVeP/p/NFLcDAoKZLDyoZ/cFYstOBRwUQjfDVE08DN0+qith
HKNQi/FaK8pPkHL2ZLWSfw6NQpiGSLNlGqXVUt0Oeme/vshynUYbbQcws3PlRh9W
+RvMk1+x6fmmtshUzdmhO/RCzsKpGiqWN1ki5y3Skt29DBpDMIozT4ItkPRs0dJ+
4YxpJXJ7GaLJ4GtZUgDAI0xsSbx/n7OCCNbzo+R49fm8RnbNa+hOiHs9SO+M2WRT
hxX0d4Yda+4dtf7DJFjj/bOOP00RF+z4OK8sMJe4i9kN+VVn3s72pp6xZ/7Gw+Wg
4o+3I6PQDPbRhNUzPiSRFIUaE6zCBIhzNnJrQQk0Hlco64n1t4VZL+DnGEKbiQIc
BBMBCgAGBQJWUx/xAAoJEG39Ks4hG6rQOGsP/2E5PUOKDKQP0871XZcghtRA17AG
iNcxzliNO8u+yBnHHXQ7pPoLM8M309H+YNSnSm0B8QHD02upvSPTr1iYA4BdZTwv
KaIf/f4+q1nU5JeQAdnU7bbQNLhCqFUIc/qQKN47jdWmelGXp0WuYFw1Nm6VZ4B1
wK9+piCF1/BchpdQZaXMyiZo7fzlqTwvgwGh8jQKJQQiHiaS5kk33p8ZnxY0anWN
3DxUyAHz5TaiJf3MOny5aYkJgRSFiuX1wqjIuXMTtSrhbJaiCFGvfClzuB4q6/XC
4O610dKztHSqit2BM6Rfxq/zD+R5eFkZWw4dRPD1uzbqckltOyMKt1kjRiGPoq7W
yqA37GLOcxcVQBa7/8us34qY4VdRqiIHdy6OsyxnrNWWC67zEo33rXhiH52f/iUm
8Yd3Ccf73HAGTK6YRUDnHmw2LGrNSa9jMNnLa9NpC/dyf3uHxhzBCRt911drGPeS
+VSCrlKuvfrhrgJ96lBaPvRHNYXeVt8OkGrvmxzdHZ6AJmOTLXM8apMnF61WX2/y
V1MTmHG7Wgco3FX0j7oS6g0CYdsz1Frb8XXTcPUfQGqneqJTIwFfIav1tToV5bIE
fjj2xL14RHDDCbWwrRjSiGe3GzVYt/EgvqxV7L4Jq7Fz5Cidqrn7uoOmdMP91FIF
qKLfw3mXO4KEjqLdiQIcBBMBCgAGBQJWUyYEAAoJEERFxmX/rZrg0NIP/R5eG16k
LGofi+zSojLHd2rwLXBsqHXg4oGnmdOYHOZIksBz14tytElgM1p4RU2RMy4BhyCz
EZuRBnKeSmsXfjGBUpes7h0BtQljLx2nRSnSWpbTKdmZ4OHVM7dDrYBvHRxz00Qm
F+XexCJ0Ach6epv5DO5EUEEsT/4RYL6IkDg3ln1WRJmNu7M7YOEjxS4NLoGZjYLB
jHk2vEaK0jlLWS/vnrFpnSUEkh2SlqtiCzMgXzkVbrJDvQCaZvRJTggygLckNvyw
A0DitEpviP01yFkJqXi+tItyJO6e0JrO6mfRyFZX5KzMqS6Y5+UV+zhdiiAodk6+
bOBB01xsmrpeVEGg5uWalusUQV3dCMBwGkYrTCc/32EAnl91ei2U/aDPgtWdVKhP
s+9CpeBbrsK42ErC3kdOQe6Gml5L5IipPbl1rjLed1VeQ4dAUG4odyFQGRScTIBr
djzvxPDu0/HA+Ts7LuYOziHsPmyr9FduArLcF6vnZBg/O2cGtcMVOVGOhSGjYjqA
vbZsYU5TWgNWpnEXJn/o7DOot7RIC3/xkQf0847U+S+do45P0C7BCPmT2eZz33Ph
+WS76NFMgvH0GPCBkeeT66xW3BgFyvdRbmx6BDYlzM9cu7MmQfbMLQvMlM9pwejC
YmhAKRGbyAGXyrCToU1WHk39uJB6rpLIhb6HiQIcBBMBCgAGBQJXXCHxAAoJEC3/
Umuxf3bG9zMQAIFgyOuQmEY/qLrEEcXL223tRWSWPhvQbGzzFBdC0pXnhLE5JU+p
kCPnz9PNO25cO2ayS5p8Phwu2d7npzwHcjju1hzFVPEOjjtyKSaUsRe77CI7R0Cs
9egNxm+VV7kzjpYVgPlON85qN6UvgLNVmB3SGRAC9CcsWgtiUJT4PqtUtUvG3e4q
DQcfTFhF9+pE91mgKtCFUOXYj/HJS0oEpY+8SzML+lNxE7VSBGCYmDeWgX0m5hpt
1wDblTKHCR5m0XKtVmTnLcNQIx/Vc7yJ6hAo5eUHkCxQCe4uWNGD7HNz5Xzxfe9g
QUDv7ruxbOW9dALqLckQFJxdiIJAi/RGlUey+GXfxjJjYv9QWZLiAyrDEr1hq3aO
vdkkG9KidclMv4dSPDU/CUnZlvxUps4z2eJHmYw6pwHJpb5Bq/eQAcx9fPPrrdmn
KkaduYM5dEe4F6Zyg6iLY5Q65waRwY4qqc3DwsvViqGTwsBcFkeRc6FMdmflumHS
EM5BYVT/6aire3SUog7D427BkzklLsTOi/XtySiPb2Js2uwQ4V7ijamytvTqQ8oE
4MUxuJLPxb7sSPjiWW+1HkXQcc+4y4xHSOnHv8L4IIWNMs2ebY6GcqYznUaQKhYT
OCgigPDye8/B/IEUYqgI0MX5+jcP2AqYANodemClOGmbuQ9D4P/0L/3piQIzBBAB
CAAdFiEEgnMgy16EfJFs9J0GFHRzgC819ssFAluYUDMACgkQFHRzgC819stElw/8
CLu7/bqPadPO4ZBEi0/m7zAE1lA6BsmyKa5heGQy7Z3Ddh5L0+DHofELx43zcPmK
ccrr2wzgrBje1LZrW8y6A93lapnDbCZCXQYapgKGxs9h9s72v6E5OCObXDfLDPf7
nfECDBDz61shYKqhY9t2iVU2rBTTQsfjz/MfVIr5dPIGKVn2vtc7UJCO55YAieDP
ParADRYUun6pklSmATzJPWUqOPwcGUjTbJp5YK726FJYGDUm/3G7yzGNN5Ev3KSJ
4fbOeo2Zl/2dRF1YM2eabN/FmNDyvHSDrbAPmvnE0uUqHWVVciznNMdzsf4lNgPa
zju8Fsxo8c/t/oRK5OL6QcXqYJaNjuU91l5wB872Ij/xSOmEJHfcNDmsI+RJfEIr
ImvFrI47H0MR5J/PqX9/RL+KsZofgkuXEg+bYsPeHAkmz/3AReNrQAWRk/uJjlp4
pumivrFAjfXYByrz2io7RrUv6gZcvIUnBYp5//tWBUiP9JE1zWcH5rpQLGfNsTJ1
p0w7g+aJpMQzq0MOJjmz3Q1DOvHz/BXsFwqFh4l2lSDHv/u3b9SVO3+oHW3uNJaJ
Gck2wP4mnwg055zb3TMsx2sFCIuJzgYZwgS1UNXE3OEP/IqWCFXeV7IVF20cIwuf
xire/AnfCaOhAjLbvBnLknt26zlX3vpVLu/cOU/3S6SJAjMEEAEIAB0WIQS89N5E
SMccRpAFF5KM6bSnLGziQgUCW5hQiQAKCRCM6bSnLGziQvduD/9RWpjQsjI9QuBY
qe657SXYVZKtenfSap0auMiN38TyNUS+3NMBsmui7koIGTPJh0yBkb5LHaJ/Ezy9
1PlSX6/fgmRCEWWDks4wqQy/8xXOrmefVW+b0ufsbwsSJJv3tjXcPKBuKzBh24Bd
d0/ug97MpsjfGB+l0AX9fnwr9wRUxT/mE+e2OWhxREdIISYQzHDpH9bEoCb/9Vsq
qkjdFBp0cX9lJN2P+kCbc3d2P+5RwgSHYS3n2UBxTBzOdZ1YJMkfxHSujA7EGUuU
CVl2Z85KoDMkWXtdPkEjRQElBrE0B9GSi3hRAZL9a7e398LmuHn0Hwawv9a5mgJQ
uG3OCfv7XgFS7RPexrStijIxu15NDpUlzvj+gNc7eiwrF3+7UsWDCAIYTSDAQSbe
ZMBVtl/Fwi7IPjobP7qoiiOsuXcny8luIMkumi97rn+7PAtK8RqCV7xiSLPQcDTI
XFFlDG3XB3ZsvHb7iflGnTzZ+8BD2JnH1pgBkbqk7Pxagq7aMGlUMaG+wQJ+9Zza
UPRo/9y328DpKI0vHttJwQOqZZReitNmvneeYRSMiMS71R+5XZp5DnLVky/oDmq4
0UvV/RoOQkB59gbrrRpzuoZLvNqrohdLnVmmDE2DuDRln/figvPFRKfICLhfSX8W
equUrXXsnuyjepXv6uKWBBaiPLKOKokCNwQTAQgAIQUCVkiJOQIbAwULCQgHAwUV
CgkICwUWAgMBAAIeAQIXgAAKCRCbQysn0bog1/9/D/9v85LFP9lZnLH+ATktJW0z
I64NU/j2AaxnF0XJoPKaw1BDjwzKGyxIBzZbyJgqOpreg9n40zrOb/SGrc7jjNQe
nPn2rBBbUKD/Y7FOff8tEFe1ct4s9Z9erAY2dYi+vJU1rKp30kDJkY55/LFyXQN0
fHE8e6eTWBPasp+VkfSvr/J1g8D6XxtJ27vC62NSYqNRpWV9CVhcV+Vau9onfJOP
CBwhu/u6SKUgWpNDrdUw2EqWYKzxW5qUe6Dzy4fP1dz6rwkZ8R4C2Mg0l/1yycAL
GM895R7InlheXJ5OXYVXIAq7puDi4c/jlU1JlU498kWWrYm1ApJ5OvkCSv9DU3x+
NytoTRiVCj5PgedGZI6mX2FsH1tCgXetABnrCE7z+EuD/QwBjT2MoXL69sKzf+Ax
pwdGd/1edqtrLs/UhFhwQwQXwE5g0NDOmGfFsESTper2jihXlhyGjrEkHyP0HYzY
7e+ET6n+RO9LgGpf/4EAqEve6xf93ZKXbLE2QjuvX6ZaEGMnKlqRANju4j5oaKUE
rmcvSt+SW0qalcjWZqJotbxldp6QUGrg+EJyPIOkJERCP1XFoLGJkIyFD1zaeyuy
bLWw5C8lHbLJojATkGZxRKyoyUPd8HDtepUxP+ZEGr3V1GV4apwYGOxWaz1gcRCb
XvMqAIMeChsm2IIuSMv0z7QmRnJlZHJpayBSb3ViZXJ0IDxmcmVkcmlrQHJvdWJl
cnQubmFtZT6IXgQQEQgABgUCVlLOagAKCRDBkcHuDe0z6ir2AP9hWrHSo0u+yIiq
SSEIr4HghcWHJF3ttXGrZuoGBiPxIAD/aMSfkJlVxR1mKRHgJFgQmjCfhfLerjKS
jdr1tjAFRwKIXgQQEQgABgUCVlVmNgAKCRAhbX6S62GBnpMGAP9LIKe7erZFcV0m
mQS47eaLHPIDqKqhmi2vxACMzQpxdAEAvDOyxvQK9eTOOgNJn+vttoiHGgiPcTgi
BTajTAZt+J6IXgQQEQgABgUCVl63FwAKCRAcLJ0qdWTcn/x1AQCGniZ2uVrrslqz
CsUtQg9lUSfz6YTgoADt6P2Iczgt8wD/W3nXb2ER++MlGsRtwmvtc0oTlro3kkAa
SgweG1d/2aGIXgQQEQgABgUCVmDKAgAKCRCkKJjHS/FV2/FyAP977D4KLKBG0kYX
rvZRL1axQvvtiwOk6eBftNcqjTqKYAD+JOHnWPXAZdO9d1VyIB5xTVtgY+gbuJig
BCcox4titDqInAQTAQgABgUCVkiKJgAKCRDESri4UDJ9+W7UA/4tc2jI30WpII9s
3vJ4E3C7L9B1lOZKualiH3SXDYPhtRxKZAU2A6RREHeNDs3rwBHs5EfqQmy+uRuh
w2KAVDWif2yQgXWF9AeVpbtqIpwOmUVu9A5R3/8RnfR7F5X04oSYlubME8TP8YlZ
Uvart9on63D+EtxNtYSIvexSG4H44IkBHAQQAQoABgUCVl7q3wAKCRBHGeT8HhbJ
MLYEB/9WQR9/MKz+Qo663/N5dBSJpcTC9u5EBQUPhJl1xPwwtl5A4JRxOnCDjPjw
dCG6fpgjfuxd0kuJFkHvsMC8VoGlqJ9D82Zm7iB22VOyIHlLKbt6ufeOWEam1Quj
uyum7GYqH2noDkngiZpF74niOWjKKiZgT+0UInwsVwox/uTcCzITTWSFByrHDQ3/
AHMiTK5ZKHHhOsLR2I+6oDva2qv0qnH/A76Q56nMTnQ2hySG4gNjpO/Dj8Ee9Tcq
FALQv0sIS8wYgC4iuqBiLWld5pDL2UV8OecVXoUqNTTXZEUvw43oEVr38ZtoTGfs
Fd10vpRijA7B6lJDA0SBVy+dDmVAiQIcBBABAgAGBQJWXszMAAoJEESE9VUtHou0
QiUQALrhhTxmMx7ZKvvYB06m/Cb1PKxhn9xCUXQyCvuRNQmv0GXavWU7nC1bvzt2
+3nbMboD343l1SvzNRzvSHCZg9NM50d9y9GMDWX2liB015coM6hmZMdU5SGYvqe+
HLpyq2XEArE5ndhsFbRb3UtZZXIwCwSbEOohk5cgIkz861UbBfMbRpk8cVV6I8Uv
SYuHKysclVq3+I9SgfMIbPOfNG9T1C6/u+Q0qEIuFlbyKGu2o3EOCvMbfoCYcjVL
ObvJRKI2GtfE0M57GBbPKSoXbAT5WMytC9ql2kxl/B+fD1Owq7n88rkgC4VeUltm
YGh8pdQ6G/hkpLQEUjbnveQRHRbrAniZBaz6Ujen90Q6ISbzuDZuZBSyXsIXqf2A
LbY6ynbSjyluzXkofQg459s+FkMlypnOJMdMrrJtMsJyLucD3tY1G45epLtBYQhZ
erife644yxf5K07a4iqs2F/Zj+hqdcXEPV71MKuE15gZS7h3/QEEKnNHvzOSQkv6
KgDIfCT9IJtD0QG7UVoMvQZUFHQeQN49bXUjML6c7mhNAgGCDAeI6s5KzW3wwYSv
SCtF2liy1WR10loXVXIO3flu9G/OzxMjdgIPLobq+7Hv3NaxPiHwfmhmONTXuWOT
7qRvIAd+dYnBW87D++jj7tSS3XNltsGEoErI4xznUQcVBbSdiQIcBBABCAAGBQJW
Xy8IAAoJEGxlgOd711bEQGgP/2fWIl1n2P1ULqjQ7kVP/ZGkR6ek6shjRJ7KUgeL
wLlRlrkFULWo4tFW7u7KWpLywxv48Fsd++e1eY05X2ub92PJfYngxXUC60lI6k2L
wZChlx5q1gw7I/Y9zzdrTXOsAuKrnBjOypLjB6PIpH76FrIpPrMd8uUmT8GHoUHd
QJ+F46kDQytiGJ1W6WW49+MYs9xImioTC21oEl7LRYVyMT6BDnmSQgzN6pzyg0u/
pZGsg0P1lfrONVpGTdzeLLR5yEQ5dN794ZLF6b+0NLhtxmLxCg2QNWwXxoI5K82i
3NyW6ELTjeqYJv45C8dhqK7mpvpvzvfIJUV1TvcThQGH1L5sT9DQSzaHLqBtWaUE
GrGJhvaWuQusKymNYd2Apuv/O1Oyzy3ZH5Cbkh+aOTGrFZCJzfyM+so6pHQ/jyuJ
PyZ67BCqRt68e7yNe7Ak8Rk33frqAA5VwGsfMcDU33lcUYWqttCPn6th/Gfa559/
QRwqfdnAyov0OFRzyjRLj0ICYOVXU/5c732mY2pBPIcpuSlCqPwKzUe+s8Kg+o9Q
4Jg6S+7hHe2tStgc4yQuJ5xxY3yYpzf3p6LFnYCoWFBhOrE+oIKWw1RUAsbo6YAV
Z+l3PY7IXZLD9+2K64aEQ4lONJxsZibDONnDya9O2WQIIcdVA3BhNnMNqYZ0tIV+
bJJ8iQIcBBABCAAGBQJWZqgbAAoJEH9hdWF3l492yUgQAItCwFFzlXSwJ6HLUSMh
UWm4cTKCKSssCG7hO4b0TqNIW7xXnGSZPYiCMr4aGUdRzRRimznWGFoOpm5eqtir
pldzstEPdcnXkK+7NYMnKHbCd61IL0BonYgtQmo01sXIUtLdpayk2Jx00PZoU12/
gedvFZvjGWr2o6r/IEA7JdgGRdV3xvaOh5HBlx7x4q1gtDLHnWWlV7yn6hUjTdyW
AWU+ASqFDJNyPE2ntmxzlShBBFI3tTaxsYP8ayHNP+1AMXHL25WZHns4uFfSjTLg
19/w8nVRMEy9TPP5m2K6GG8Uda4TnRFpUz+J1izS7Dphwrr0X8MImvr6zBSWwQVl
n4f0iZUiQZz/p+raniCCgpe3gGGC3DkXgzu1O2THYD6hq+X2XWkevqyLs33cCKK4
ykFscrJIAxnls6EhbtSlXcjktPnNI242uRxnMk0DxPvEXS7i45NIp/cZ9cjIbizn
x+pse6ZQPHvMacVOQZ1YHbiOgSYVeHKkYYec5fO3Yc0YdBFenMRBeV3UtoJo/GsO
zmhW2/3Wu+YURn093kRZCIg8TCshZr6cIFG5M5BRVPvPGVYjPfO5qftoLkr7xECq
iG2vKjlbo4DUi9hAWLoNx6Vko7CzEujM+h17BzL8fCHVx+sabeJzhRJjiZiUYC4r
QBcKSCeEeVmF0k7Qv1Pr/f13iQIcBBABCAAGBQJXBLX7AAoJEEdxIXHy7WL7HA8P
+wURDC0m6fDhenBVndP+H495BGI02qvmXbFfMKfZROjsa8qAg9YhNoTqkDmlgKsd
4yPMf3mhCX6mbR8cLTZ3QkpmuWVszCi/IbySOXCRkSDYixf9OFdcqoVrLjrCMzWQ
sr/JUAUBGwfMwebmJm6H+Gsi1vmc/Z8r4PX+k/BwbfIidcdc25sDPZggi6ZPg2LQ
0QmAjF62MB61e38ZFl/Cop5vaa0ifHLajLLvmte1yCQqd35YLFisyCTx6IGqmVh8
kSd7ridGsM2edpP/3SyKd+tBJXKkYU9iAPLBXXHeghJUW3uWZh5E1PJWMIdOOle2
9d95LrCgiL3dcFYKjDwczfmHe/NUC/QZMYCurWtcZcP6vPw/WclG7wbutXl/nu0K
0qTcshaaDqUkU35GzXFCGBVKbAkVRXnW78POzxVwuHN1A0jJFPA5B5SkqtS7H4z2
hYxidbn7Vjj1/79pdgf2xGJ7tKKyyUw/OmJ2oByFsYw8ntVqXUC5B3dLLQl+zoad
0A9rvJoudsVPhk0oEDmsph6JijMdGJTqLgV6iXXm0PLrPwJla6VrXDs1T7WCvFuq
Z+Et5P0umAtr/2R04BZHRKc9RX6NelgJt/sW6QBKpo4etkC1s9itlLAXmRX87K6R
gRtu4z0mEBGb737HrbYh+BzqXINIswaoqPlXciGJotueiQIcBBIBCgAGBQJWUOxR
AAoJEIDYiyLUMwMxn3MP/RbzPh5bqP+gUAqmYtqcCxOa+GZooS5kPoZD9SBz9sWV
HfN9PLYzUoDTXt72lOGjwpNkibVx6XhDyH7+Nsf/8mRHKJbqaBymSuMc0Bw24xb0
i34fI0EpTdYeN2aXi4Zg19DWvz4K602424fYz0NIa1V4d/8OkyhYOqjlt8voG6QS
W67rq4tpYXg6OidTithg5WcDQwLFpA0Nw3LMfkfi7ZpjVzNjVtCZr+bE4kADvuge
SKHe6EWoV6ZuCdhm8XS+1mBO/9Xc216Mb3L8ZGsahbgvfQZHQpe3y99TwT2QV4y0
5YxlBRiMof45WwTKqI+VoUr950pFdifBQsHCrkh9MeNLRO+v/XBwiqR65fVrfY8l
FisvxWhYR2HOlswqT0oLVQYhRWSTCBa867PxK/KO7GiiUk5z3o4PYpbHRq071Q0b
8Sw4e3tLQliiDaDJxRR1u+qdr/oMFIjaU6a+jMv3jP5UfGbxarDDvnsTiPIVWy05
e922xB5HaE1ukYKr/QoagVKtig82NX/TWk9O1xS79Wfnqg9I2sENdAjLBvB1z6Bf
LfeVUGifYI0oIlzndKtLlQDDi1IcUaAaQjoACp8daji2Co41B0bZ+zabp4fyOwKI
xp+ilyKh68c8hZvj2hWHcRckeURT0Q8jTmuRBxixZb4AK1McA2cXvklsxJhsXWmQ
iQIcBBMBCAAGBQJWXY6UAAoJEJwYe6KbIVf4E28P/0AAki0xctJ18S4wNULCwZep
JgmOorXYhjVN5KPfL8LQiut7MUCUewZVNibP3+lFTgLzytmucH8/5oUXHezgowXO
X8+BI7llqH5gumD7Mk7KQJMzRXQIlo9tDof+xI020ElG9kdhd9cveKVlQiNYj4cG
LGk+vc3OkB+xecRuWEqbmT0LJi1+dGBprLe84eKC+qOnRjYjKSs85hKiovNP+Ref
Pe00p/wBSc/MDImp7UjIWkUdGWG9fq/Q5GzsJI0nU4DGP/+dGRBdlTg0qxpGZ0C5
5igVQtyym728iVh3r4Qrvkr7HD8MAKE7eHgYriIPtB9amOFkBnTk0oa5qUHemzEQ
Gnf3u3Tunc7SZt6JO95nbiEgNEWwfYQ4H+Y5xdFZCHnpUNSJdXxn4sFGafjSF1W5
i7iYhpX8c2JI+hvQ1og0R+2A83NqYo/W6Q8fdS6eSHLgb4x0M49VAk7eWf1FHDRt
K3cVKixuhIW94lWunJRclLyOj+z+cLNnZMz97c4oExSoCPKuCKPBGZZiK0NYTLl+
Avezw+TDxic8+3GYnb4OSyAQAoOToy3WVBobsQD14yyw2sB81CtdxCStqXtkxy3q
Zt310IRcAE2J+nwznc2SMIX9PjUo/cYCrln6KPg+dcf5Lbpn93iQS0+FhGnuHEnd
WuObKPSQXM1TY+EK7PLOiQIcBBMBCgAGBQJWUx/xAAoJEG39Ks4hG6rQaPAP/il6
zHLcQ66pucQKoQVZIYPIt+hfNyj2U3DW3uf4rntD20h81UGSZYhYLTNNeEiHvtwL
YhRL5aBbp3gbFeg9P90IeUAaf1SvLAjKeSRSs+b36QlYhnZoFO4lbtYwR8KgKGC4
u+Bc3afcGppHsbAu4iZqkXBGfLBYqC+PPhp/alJkW3cR+rXtsNoBD9u3TKNKZSUA
BKchA//G5u8Omj4pAJPf8hlDgbEjGp9HxUVu5I42u6pnan0Slmugp8RXWFrjWh6M
ULphoCS0YajpWVni8oVfRN5mt7FGqnhq+lLnbTCq1Hy3J0wpPIjx/djmF1VAebgN
ilrxhbkzUMjLvaJodG3IeWy1k4ZcUroJ8NDcT6EIP8kEiu8NLGLjQUR3aFuVsnCY
kP2uUT7DWjlcWBvCUUOJajqMNt5lkkTgceY95wln+KfCD4Nnr7E/qjOCXxGa4s+U
uDQjhXotQufC9S8f+0K6M4zzTplxn+14rQG9DYjHeiFEAdFWXS01reYD6NFudptM
o0WIavVVlGIcW8C22lZ/RF8Eu6+hl5Byiu0h/ubJm4/2jqG67QfxdZT815PPJKUD
/SrTjQUGqn5qXDe/raz5vGNjPX9fOISpPbalZU3MWmDnOT9ssWp/ONaZbeDrjLn8
UDtv06AftSi1SLs1p2OctovGIMXxV8Ulr3gbXJpEiQIcBBMBCgAGBQJWUyYEAAoJ
EERFxmX/rZrgymQP/2WNkpHtOQcoFu2h8TVmWbXX11YhRnGc50U6y2S2DthySzyK
c/aHZaG9l3jBOI4hepq6zEIIZKe+Z6hh2Pfb7k6JSRJWI5wKVOV1oUef8IIwwFpi
/t+guuJV/gfXoWssN0idExMfMwSu7eR2fwG3y7Aprre+gxjxzSzICX4uul7D2la2
soIO/NNVwzRU+UdlNE/YI8ux8wAtpITO6ju8z9bQf99bTawr8g5PQWkD83Wg+vaz
OgX+jSXI6QrG39DpmjbBJRrjGlnazpDHxaMVtw+ZBU596Xy3aqjFrU9jRx7P7iA5
rvQUXUl2jxmPqTwf08kkhLdqXjGtbfn5FQMy8tzne38qMhGzGkNo4ttjMqzqL4n1
Fs7DFBqcrxV7Jz/iNeYK2MZTtc4SWcVo5T0nMUxsvtZkgjx21L0MRffugG7qBBDM
h1tV0OONbeCazbs6FUXJaIdOs9Bf2x5M1Nj0QNUZ7LHfNKB8rP4SI5WwA6Oyu2P+
mfVl8/wfKnWjUmQSpy5PjBOzgwIo2TfFaCemwCuHhRDHQcf2GYctMJMX2ldTkNaS
yxN8Q/7sPgHZrhOSeoTNVvHSUZrS4i+9Jp5DP9zOjrvrSvT48jbDoWyj9ivLEX7p
u8pNwy1CpiMzXl0kmSg7OvfQ3lJ9rElQulSnyZxIOomRBZ1oVaZ6MHL9rQUFiQIc
BBMBCgAGBQJXXCHxAAoJEC3/Umuxf3bGoY4QAI3PoTZ2Upr2vdu29XLRlTxEoGol
8uRTsKues8GLR0kd+dIqFUdscUEQKUmWCnMFPTpf9V8+hH1UP6Z7K+EFLpQKGy8R
VijaSoR8wCB6HDlGsp1UyZtAJyw/gLOCGAOAeOub5ghMWOJA4Bo0SrlHP4ZP2I/+
pj7cU09HXvgn2wzb4o/9Sf1laNOKSpI2jyeA/X14oyrlYGY0Yp3j9jazJ76nRexE
agjjhadCEyMhYQ5PLnga0N0gyomS1H08EjvxzDAWNIudeJGQxcczvn9saKzgqTuU
hImIkssXNvn0y0Iu4NqWfTwBsA/11SGw2c+lvtpNN7HAcdSo/A/6fVI3o1hci67L
0oocdf6WS+2WTKrKz28/VpMc70rqT+auM+tGR2CPLHsBtXFm8P9v0D49FnSrq2FV
oLBxU5fjqL0j02wPfDQKhpYJAGr1Ly1MgXXq4JEUbKo9yy61PukA7H0dWcSDGeFk
tJyZjHhh59xtsJFXtuf7M+flGztnJi6JoBbM1WCYl9BMiDwJOiXSEZ30m4LZ3E97
C0NWMFiR9RQ+fEoyGrHrm0pWpass4+nqwpi++Rdhi2fqSMD4UwHkRNndFQt8p0Ho
NDTwnkXDGcLxwFnHlbpRgbTws9PKJ2GPkCzbcerhe9qk+ClvauCwGfIyEPqrDzOa
Jn4vFxWfqxxX9SF/iQIzBBABCAAdFiEEgnMgy16EfJFs9J0GFHRzgC819ssFAluY
UDIACgkQFHRzgC819stBhQ/9HnvHvOM+SPXmo0tdDMDokOw2kuD8svJSEYDeWPw5
EycNl/KTRWE0Kf8QsnprNSRL/L/XcD1ad4I7KjX6BDUcyG0ieqKp1/hBVeT0ulMl
yMLw4Ovei9anIwqm23FWhx/NTUq3nbAK8Cqs2Vwc8Xp6B1gUwbFXx/OIdF4L2oif
GcUCmr/5kcsaZ/DBoylQO5D9RuHOiH1SGlsy3OHO48txPLe24f7kmgw1yryLBLBn
q+VTNvXzDQVQOayJYBZMq6Iv5eQd59PZNsoxo7qL2M8Frj9dkXvP9N9r+mwiigIb
bPunm62kkDndwaOD4G9vRcCjaTiW4nT6L8eKAvRvBhEDkF6aBfSU4ijSELaWSGOJ
apz9Tjl4gsOIMvfh33z75BLxP4TC3bKKiWgw7E0hfEiqz8mpAFnb/F2F8VxogX21
IInUSWCVwORhvTedwlyvkwX+73izYkoACnHV88RVL6sMg3V30BBNU2xm9LTMqR/M
ZZ136/MVcoO3/HFwhs2uGNz9E+Jc8TqvfmqWf4UNPgItVu8jlVi7avfoxim3JccS
DpSqFykZAgT1ynREUDfGYdvWVxIjNiChm971sUX45i5tdgJtJja9nkjam5qZSTG6
gIunmSjNdsbgKreIfePDY8xL+wimE8N/zhO3ROtUjcbPteiGf5CtKPngnGMe5KP0
lIiJAjMEEAEIAB0WIQS89N5ESMccRpAFF5KM6bSnLGziQgUCW5hQggAKCRCM6bSn
LGziQuiwEADIKESjHEPtnQsc5x1XcQs68be19xZBMhX2vKD05GocKdRRbyZ7nmbZ
0uA47kB9olg1Un5dl5XsSvQIh0Od+Bqygj8SNE5f+QQolEiCBFwR/8MigszYZOsy
0VoDpjiUcJj4VR2HR+dv29QX7nXhe8UX5bMQv38Z1CVIqLA4mtjRTrvj0A33UYph
bjRopZEfOQ75a91zaatSCkldjdsJYozElaq9WkA977ciIR1+xVzLoMCQ/JKRB8KZ
ZeupfdPcnBU/Ctfw+RFuNiTpTTsCStduIlXB2nUMiXLL421H9cyiJQvYv6i5a2bJ
2OesydN52mw0uQaBZBibmofOql5cC0MmTxbO5iOItsdhGAYfOD6rJ3cpDQgxOV32
3MHqrt79gy1MJcGxdA8iRJCLSBhiPuP7/lA3I6PTobWkr9KfP26TWILngvGDcMcd
FKDiJ1WxvYiVfaDWiVyDv76cq+o+9fySwLLlkd6Zbpct/EjtDDkJXnBRzYLQ+74A
cWYM6/crgUo9L537QH/3nNBMEMTZv2E33sSdJaJK+1f0Oc5kzIAQ7B10RHJCf6bx
MttdxLCjdqLnPhVQFj+v/aDK74r4vZYWGkZ1bmQiGA2Ow1jCIoP4/l7DcWnc9m2o
1rF6pwZE0gQbLzWRDKLFElkAlGPf7cS1YpBJpau9Xps4yatrSOxgMIkCOgQTAQgA
JAIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAUCVkiJYAIZAQAKCRCbQysn0bog
1wbtD/wME4lvhG5e/sKH0UM1AiRmfCwp3zGJFPoEjNIfI+b1+CzA/a9IB/8oqtsd
ylc8ofxAE6U21jtIR189DloDc5sYSzZU23+h7hU3sV7CKTXxh7R6+V611IvM2xy2
n5SNIP35NViYfpIxz2Nu6fQM9x2qkP7O1yYmaIOfYrwvklxEeylX65JD1vSic8wP
GzuYBjXE+JFdYphYR+VBp1+n1wG2dpN5Y+0HTydgGNQVrbWjv+qgrpiz3WmylI+8
MxwlvQY11xh2VvOOVa9W4kGUjZ2HBdqT0xVqlmtPWHQgVr/89LtEd3sVoNqozj6V
WY0MyQCrowkxcu1VmZN3rYOFIPok9elCoTf7pEX1Js5r7KqbYNhWlSkyrZqeu3cF
BeritkrcyCYH4jL5zJYMs6q6RHC/Uoh/s0URxfJt3xPpiSqAxYRq8L8bhMJngB8f
vz5pW//+0cezYGHgKFMkm2uqwrqERzL+he9njQueCtTIUdNzhbDEhl3Pi3YCgYbj
MMfXF4h/OWoGfNiGd5+0AfwOHKmaaLkRNDKv8Efacz0WA07EF3Y8FbCluYsBKWNB
BI1tg4avUnzL70H8bIU93XI7haNtxdoBm4XtTBijro3DFus/A2rII8wE1z3uEZkv
Bo0WjSiAL/aOuV5LkI2hu8IuPqWWNlcTUIVtyd0AAcwuKef0cLkCDQRWSImZARAA
u7SbU8wL6kklMdeduxVd2sUxdtc81WoT3+//CVWuFS68pdWtBWQu92rdFzdjiIFV
tgVMYfjZzRBai8Z4MsYiG28bC+vRUY2dL1ai6wdaf/2LIybKOGFMDA5i67nPsK63
HZO0LPemmMsybkNYfegS0WciCGpi/ItJbqGIMI+BElcXutNdXVouNgAZJyg2QiNK
Njcs5s1sWY6V4zFlEqxF/l/DxCtCz9TDnSJwaZVINtXelVUK8vjnyKWaEjYI3BDe
TU6J/HANpUp0XBjsgIi7yzfQWGqK9UYo7HVDFzFFM54XHsCdLPiP3wF4igXuto/x
Pnhp3cFNMsrobjBjsCrxJUpBwfXle4dpnmNlyvhTsODOqyhDYaQYvOPe7/a7T2iC
tD2NxHwuyBkppZTYU/LXGW9ot0aCUmW7d4WAigzyIpAZObiJF/o+VnxEnh32UHjs
10UtLY88D8wcTdNSixbP+I/aYlup14fbTDmwbGu2OQeopjdTG0piBsUCff7boT+7
wHCYCsk5egW2LiJcdqPX9VDjNHROYliktSuWgjZaGHUi9VqwHZEW+cn1IoCNsltd
LM/FEf7IuaJtHDYtPM9M+CqcfhptnY8UW3kbL5AduWpSVGZ378irLnRV50MIendq
7Vtbr4XnV5OphXXHld6OdpPkUWi0bjgOEP18osTt0pkAEQEAAYkCHwQYAQgACQUC
VkiJmQIbDAAKCRCbQysn0bog16r6EACR1BNADVJnpOhjanm/jIlr9R5h8SfRhwQQ
b+fC1iIi1NkNnkJoSPwCVFPLqKX502puvV1jHUZmE8FAsml8X1wDhn2KzW8U3r6U
qisr3SroPJzYF8KqhXk7TmAg1Xjx7b3CKTUWt6K0NkJqf8n+V3cpKTiqkk+cSaXr
a3sPnhXln4ZaNkZQcGIcbKs9dUraCpAskuSBFf3su38x9+RUtHXZ6EMFAydwbgC1
y6DhcmPi0+y00jLn3+ovsZxqHc3vANVmL0Q9llejFzNdgQRqi6HX+VavpZvv267l
HfsjWH7S3p13XzVMtMvki2AWigytir/5XqseSMtnuqGpWHNMMxsL7S/+xdD5prFc
VFKKsjJbnxBDtXkvYc0Q4DaWRN4UNpb1qxTKtG/z0vSfy740j4mwkJzT7UJrer79
5c7w0Aek/w9aR1UFS9esQA1Hlx/teSzT2sREIxAiIEGGDK8RmlyKs30139EsYyRj
j4WwwQmBB/RVxEYTJvoVgLo4K1mNyD0UrpfmTYoz9FwAkAHPuyCrbJpO4/cBcC2V
kKQvFcpZqrIdPYfQuGjXOYVOsBIA0QzTSYajSea3Q0EHpQjik9IBoaMXGUDDv/ll
y+pCKlNXKyPo7jBoadSKAZdKnQRNGR+mVEHxsP3mzKswAR95d6Ux2SxuFVV2+9rK
PE6VogAHAw==
=CVqI
-----END PGP PUBLIC KEY BLOCK-----

293
icu.spec Normal file
View file

@ -0,0 +1,293 @@
#
# spec file for package icu
#
# Copyright (c) 2022-2023 ZhuningOS
#
%define lname libicu-suse65_1
%define amajor 65
%define aversion 65_1
%ifarch %armb hppa mips mips64 ppc ppc64 %sparc s390 s390x m68k
%define be_platform 1
%else
%define be_platform 0
%endif
# icu-versioning.diff needs update for new Version too
Name: icu
Version: 65.1
Release: 150200.4.8.1
Summary: International Components for Unicode
License: ICU
Group: Development/Libraries/C and C++
URL: http://icu-project.org/
#Git-Clone: https://github.com/unicode-org/icu.git
Source: https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz
Source2: https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz.asc
Source3: https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-docs.zip
Source4: https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-docs.zip.asc
Source5: %name.keyring
Source100: baselibs.conf
Patch2: icu-versioning.diff
Patch3: icu-susevers.diff
Patch4: icu-fix-install-mode-files.diff
Patch6: icu-error-reporting.diff
Patch7: icu-avoid-x87-excess-precision.diff
# PATCH-FIX-UPSTREAM icu-CVE-2020-21913.patch bsc#1193951 CVE-2020-21913 qzhao@suse.com -- Backport commit 727505bdd from upstream, use LocalMemory for cmd to prevent use after free.
Patch8: icu-CVE-2020-21913.patch
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkg-config
BuildRequires: python3-base
BuildRequires: unzip
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
ICU is a set of C and C++ libraries that provide extensive Unicode and locale
support, such as calendar, conversions for many character sets, language
sensitive collation, date and time formatting, support for many locales,
message catalogs and resources, message formatting, normalization, number and
currency formatting, time zone support, transliteration, and word, line, and
sentence breaking.
This subpackage contains the runtime programs for interacting with ICU.
%package -n %lname
Summary: International Components for Unicode
Group: System/Libraries
Requires: timezone
Provides: libicu = %version
%if %be_platform
Requires: libicu%aversion-bedata = %version
%else
Requires: libicu%aversion-ledata = %version
%endif
%description -n %lname
ICU is a set of C and C++ libraries that provide extensive Unicode
and locale support.
This package contains the runtime libraries for ICU.
%package -n libicu%aversion-bedata
Summary: Rule databases and tables for ICU
Group: System/Libraries
%if 0%{?suse_version} >= 1210
BuildArch: noarch
%endif
%description -n libicu%aversion-bedata
ICU is a set of C and C++ libraries that provide extensive Unicode
and locale support.
ICU makes use of a wide variety of data tables to provide many of its
services: converter mapping tables, collation rules, transliteration
rules, break iterator rules and dictionaries.
This subpackage contains these data tables, in big-endian format.
%package -n libicu%aversion-ledata
Summary: Rule databases and tables for ICU
Group: System/Libraries
%if 0%{?suse_version} >= 1210
BuildArch: noarch
%endif
%description -n libicu%aversion-ledata
ICU is a set of C and C++ libraries that provide extensive Unicode
and locale support.
ICU makes use of a wide variety of data tables to provide many of its
services: converter mapping tables, collation rules, transliteration
rules, break iterator rules and dictionaries.
This subpackage contains these data tables, in little-endian format.
%package -n libicu-devel
Summary: Development files for the ICU library
Group: Development/Libraries/C and C++
Requires: %lname = %version
%description -n libicu-devel
ICU is a set of C and C++ libraries that provide extensive Unicode
and locale support.
This package contains the headers for ICU.
%package -n libicu-doc
Summary: Documentation for the ICU library
Group: Documentation/HTML
%description -n libicu-doc
ICU is a set of C and C++ libraries that provide extensive Unicode
and locale support.
This package contains the HTML documentation.
%prep
%setup -qn icu
%autopatch -p1
# docs are special
mkdir html
pushd html/
unzip %SOURCE3
popd
%build
cd source
mkdir -p data/out/tmp # build procedure forgets to do this on its own
export CXXFLAGS="%optflags -DICU_DATA_DIR=\\\"%_datadir/icu/%version/\\\""
export CFLAGS="$CXXFLAGS"
%configure \
--disable-static \
--enable-shared \
--disable-samples \
--with-data-packaging=archive
make %{?_smp_mflags} VERBOSE=1
# Build the other endianess, too.
pushd data/
%if %be_platform
cp in/icudt%{amajor}l.dat out/
%else
LD_LIBRARY_PATH="../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH" \
../bin/icupkg -tb in/icudt%{amajor}l.dat out/icudt%{amajor}b.dat
! cmp in/icudt%{amajor}l.dat out/icudt%{amajor}b.dat
%endif
popd
%install
mkdir -p "%buildroot/%_docdir/%name"
cp -a html "%buildroot/%_docdir/%name/"
cp -a license.html readme.html "%buildroot/%_docdir/%name/"
find . -name CVS -type d -exec rm -Rf "{}" "+"
cd source
make DESTDIR="%buildroot" install %{?_smp_mflags}
cp data/out/icudt*.dat "%buildroot/%_datadir/icu/%version/"
#
# ICU's "pkgdata" utility is really fragile, so icu-versioning.diff
# does as few actions as possible, but that means we need some additional
# cleanup in the spec file now.
#
pushd "%buildroot/%_libdir/"
for i in *.so.[0-9]*; do
echo "Looking at $i"
if [ "${i##*.so.}" != "%version" ]; then
rm -fv "$i"
continue
fi
# Because U_ICU_VERSION_SHORT is "51_2" and not "51.2",
# create some symlinks.
ln -s "$i" "${i%%%version}%aversion"
done
popd
# /usr/lib/rpm/elfdeps requires +x bit and not all files had it at one point.
# - OpenBSD for example is known to have patched their libtool program
# to kill the x bit on install :(
chmod a+rx "%buildroot/%_libdir"/lib*.so.*
# install uncompiled source data:
mkdir -p "%buildroot/%_datadir/icu/%version/unidata"
install -m 644 data/unidata/*.txt "%buildroot/%_datadir/icu/%version/unidata"
ln -s unidata/UnicodeData.txt "%buildroot/%_datadir/icu/%version/"
rm "%buildroot/%_datadir/icu/%version/install-sh"
# Seems unused
rm -Rf "%buildroot/%_datadir/icu/%version/unidata/" \
"%buildroot/%_datadir/icu/%version/UnicodeData.txt" \
"%buildroot/%_libdir/icu/current" \
"%buildroot/%_libdir/icu/Makefile.inc" \
"%buildroot/%_libdir/icu/pkgdata.inc"
%fdupes %buildroot/%_prefix
%check
# s390x see: https://ssl.icu-project.org/trac/ticket/13095
cd source
%if !0%{?qemu_user_space_build:1}
# Checks disabled in qemu because of races happening when we emulate
# multi-threaded programs, and some check tests atomic instructions in
# multi-threaded icu invocations
ICU_DATA="%buildroot/%_datadir/icu/%version" make check %{?_smp_mflags} VERBOSE=1
%endif
%post
# This should be run by whatever owns /usr/lib64/icu -
# the (main) package in this case
if test -d "%_libdir/icu"; then
current=$(cd "%_libdir/icu/"; find [0-9]* -maxdepth 1 -type d -printf '%%f\n' |
sort -V | tail -n1)
if test -n "$current"; then
rm -f "%_libdir/icu/current"
ln -sv "$current" "%_libdir/icu/current"
fi
fi
%postun
if test -d "%_libdir/icu"; then
current=$(cd "%_libdir/icu/"; find [0-9]* -maxdepth 1 -type d -printf '%%f\n' |
sort -V | tail -n1)
if test -n "$current"; then
rm -f "%_libdir/icu/current"
ln -sv "$current" "%_libdir/icu/current"
fi
fi
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%files
%defattr(-,root,root)
%_bindir/derb
%_bindir/gen*
%_bindir/icuinfo
%_bindir/makeconv
%_bindir/pkgdata
%_bindir/uconv
%_sbindir/*
%_mandir/man*/*
%dir %_datadir/icu
%dir %_datadir/icu/%version
%_datadir/icu/%version/LICENSE
%dir %_docdir/%name/
%_docdir/%name/license.html
%_docdir/%name/readme.html
%files -n %lname
%defattr(-, root, root)
%_libdir/libicu*.so.*
%files -n libicu%aversion-bedata
%defattr(-,root,root)
%dir %_datadir/icu
%dir %_datadir/icu/%version
%_datadir/icu/%version/icudt%{amajor}b.dat
%files -n libicu%aversion-ledata
%defattr(-,root,root)
%dir %_datadir/icu
%dir %_datadir/icu/%version
%_datadir/icu/%version/icudt%{amajor}l.dat
%files -n libicu-devel
%defattr(-, root, root)
%_libdir/libicu*.so
%_includedir/unicode/
%dir %_libdir/icu/
%dir %_libdir/icu/%version/
%_libdir/icu/%version/Makefile.inc
%_libdir/icu/%version/pkgdata.inc
%_libdir/pkgconfig/icu-*.pc
%_bindir/icu-config
%dir %_datadir/icu/
%dir %_datadir/icu/%version/
%_datadir/icu/%version/mkinstalldirs
%_datadir/icu/%version/config/
%files -n libicu-doc
%defattr(-,root,root)
%dir %_docdir/%name/
%_docdir/%name/html/
%changelog

16
icu4c-65_1-docs.zip.asc Normal file
View file

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE/6kSmhgNdlt6W+ocm0MrJ9G6INcFAl2V4RoACgkQm0MrJ9G6
INfBjg//Z2sbPGKo5l9UNCTZavLDAb2pvfnHVDOQwWTzQVI+rZSv1SW0qFNdqst7
P+TO9zqMBKEhR9whxIuSJ9rMeZYAk0952ozoZ9fY3+Z7g5rO33JMHOxS+4KDyMiS
eQMjHdBvWZgHL1Ay9OmvN4mQdpFfXI8JxRJ4FHThla6LVTFh9s2BeYcd69/0PCBP
0ZYpKDbNKXtJZK/i00pBgt4TBHxNYs/TFMVu/u+5PXHkBOZ56VRi2xOll2cgjRD0
+7AMH51xeU45gYurCxjvSDk8MkGaUB00p3ECUvJPT4K+WkRKZSV2HE7Phcm3b2NJ
+Tq8MmZrVoRz1pvbUiL+C882ZVL5Qf35QpQDZP+Ejhu1KLOQENQyRLYfaN13PlV6
VJwd9uKk9+Hudt7FaG21d6wfhEvTm8KveTSyd1UxXCFJ1kcSRT3Jp2BOh5p8f9gx
fe4HzrS4eBlZv66GWwCIp/mE5z6bKnyFjcHVrLyq2m7Gd0iQDN/7HjrZgqSHalqL
Klt6mVKoUNP6WbDYubgN5o7W1A3GmtkMQ+lkgA6CJ05oRkgKanygAuAPo9Hpxopq
lOnE3zVqN7E78TahY1c1iTcKuv17+v7JSdQlDwwCUWVwRpY9LcHA8TkGi5mUTFQF
0NE9z5ZQJxBCDQkfg3z0nZTnuAvYrbAIW0iTgrOmWJVXHgsdqJY=
=CT5k
-----END PGP SIGNATURE-----

16
icu4c-65_1-src.tgz.asc Normal file
View file

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE/6kSmhgNdlt6W+ocm0MrJ9G6INcFAl2V4RoACgkQm0MrJ9G6
INcgcw//abOY3mQFVKXmJAPnyrzS3J0gixdyogAitP1znxiHn28AtnMISza3dBuu
DmGqreJGBAizLyIk7gcltDWzTAfvPPAYaXt16Mvs/Emu6ZBCt26ssalPm0xRC6uy
u89x/iJoP3CvBb6YbFFAgw8C55qSa98bTLKvAELltFXYbVNOMh9ryVpWGqJdNRas
4OBjW8CMeLQdXoKoQQMltchlaB2jXLRSdp7tCuYYeY+eRBsDQjyhrjkuEeCnPYaC
dn8lj10SvsEmLXlZyGUw+6rNhRp+K/KsEhQG6ZcIuabwuUQggdDd1KlbPkMJNRFS
ZvtfMVdTtBEVF4Cue51Bz5l2ekFbYNwzStXlQUr1DryYFV0P8o+7ZelE272G81cm
+0B3IZY+JY6z5dMp0OJnqShZX3GKB8sw0yTGrQO5+QIaCDaf1xt7i0Vn5ReYHhTb
9wy6bZe/L39sb3umZv0nVpB65nnMLKTQztmmkbtf4e7+dKM1+D3UEbT2MMLrgcBh
HmzQDtP7CSlWMlDApPHPLFVNHRaRuEpNGrQkoUKoppCFlHcPeSP/kZFrCiybukHA
C+JJ49NbigddmbEmikvYq7YqTYn3hl1/nfM5O/5hMu23zKqLVmNEMqrVdeKxAzWL
K9OjJHUD2ZkH2NDH+vvlvZu+/xbmnn+At21IV06MmkvsiXQqwgo=
=TeIy
-----END PGP SIGNATURE-----