Sync from SUSE:SLFO:Main icu revision e1a65922e1cf4edfcec59924a3a644c3
This commit is contained in:
commit
83ed356db7
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
4
baselibs.conf
Normal file
4
baselibs.conf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
libicu73
|
||||||
|
libicu-devel
|
||||||
|
requires -libicu-<targettype>
|
||||||
|
requires "libicu73-<targettype> = <version>"
|
33
icu-avoid-x87-excess-precision.diff
Normal file
33
icu-avoid-x87-excess-precision.diff
Normal 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
|
||||||
|
@@ -875,7 +875,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());
|
||||||
|
|
||||||
|
@@ -970,7 +971,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
64
icu-error-reporting.diff
Normal 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==nullptr) {
|
||||||
|
- 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==nullptr) {
|
||||||
|
- 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>
|
||||||
|
|
||||||
|
// The C99 standard suggested that C++ implementations not define PRId64 etc. constants
|
||||||
|
@@ -75,8 +77,8 @@ usrc_createWithoutHeader(const char *pat
|
||||||
|
if (f==nullptr) {
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
- "usrc_create(%s, %s): unable to create file\n",
|
||||||
|
- path!=nullptr ? path : "", filename);
|
||||||
|
+ "usrc_create(%s, %s): unable to create file: %s\n",
|
||||||
|
+ path!=nullptr ? path : "", filename, strerror(errno));
|
||||||
|
}
|
||||||
|
return f;
|
||||||
|
}
|
53
icu-fix-install-mode-files.diff
Normal file
53
icu-fix-install-mode-files.diff
Normal 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
|
||||||
|
@@ -178,16 +178,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)
|
1205
icu.changes
Normal file
1205
icu.changes
Normal file
File diff suppressed because it is too large
Load Diff
1314
icu.keyring
Normal file
1314
icu.keyring
Normal file
File diff suppressed because it is too large
Load Diff
265
icu.spec
Normal file
265
icu.spec
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
#
|
||||||
|
# spec file for package icu
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define lname libicu73
|
||||||
|
%define amajor 73
|
||||||
|
%define aversion 73
|
||||||
|
%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: 73.2
|
||||||
|
Release: 0
|
||||||
|
Summary: International Components for Unicode
|
||||||
|
License: ICU
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
URL: https://icu.unicode.org/
|
||||||
|
Source: https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-src.tgz
|
||||||
|
Source2: https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-src.tgz.asc
|
||||||
|
Source3: https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-docs.zip
|
||||||
|
Source4: https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-docs.zip.asc
|
||||||
|
Source5: %name.keyring
|
||||||
|
Source100: baselibs.conf
|
||||||
|
Patch4: icu-fix-install-mode-files.diff
|
||||||
|
Patch6: icu-error-reporting.diff
|
||||||
|
Patch7: icu-avoid-x87-excess-precision.diff
|
||||||
|
Patch8: locale.diff
|
||||||
|
Patch9: nan-undefined-conversion.patch
|
||||||
|
Patch10: icu4c-73_c-ICU-22512-Fix-broken-TestHebrewCalendarInTemporalLeapYear.patch
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: pkg-config
|
||||||
|
BuildRequires: python3-base
|
||||||
|
BuildRequires: unzip
|
||||||
|
Provides: bundled(timezone) = 2022e
|
||||||
|
|
||||||
|
%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
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%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
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%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
|
||||||
|
%autosetup -p1 -n icu
|
||||||
|
|
||||||
|
# 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/\\\" -fexcess-precision=fast"
|
||||||
|
export CFLAGS="$CXXFLAGS"
|
||||||
|
%configure \
|
||||||
|
--disable-static \
|
||||||
|
--enable-shared \
|
||||||
|
--disable-samples \
|
||||||
|
--with-data-packaging=archive
|
||||||
|
%make_build 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_install
|
||||||
|
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
|
||||||
|
ICU_DATA="%buildroot/%_datadir/icu/%version" make check %{?_smp_mflags} VERBOSE=1
|
||||||
|
|
||||||
|
%post -n %lname -p /sbin/ldconfig
|
||||||
|
%postun -n %lname -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%_bindir/derb
|
||||||
|
%_bindir/gen*
|
||||||
|
%_bindir/icuinfo
|
||||||
|
%_bindir/makeconv
|
||||||
|
%_bindir/pkgdata
|
||||||
|
%_bindir/uconv
|
||||||
|
%_bindir/icuexportdata
|
||||||
|
%_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
|
||||||
|
%_libdir/libicu*.so.*
|
||||||
|
|
||||||
|
%files -n libicu%aversion-bedata
|
||||||
|
%dir %_datadir/icu
|
||||||
|
%dir %_datadir/icu/%version
|
||||||
|
%_datadir/icu/%version/icudt%{amajor}b.dat
|
||||||
|
|
||||||
|
%files -n libicu%aversion-ledata
|
||||||
|
%dir %_datadir/icu
|
||||||
|
%dir %_datadir/icu/%version
|
||||||
|
%_datadir/icu/%version/icudt%{amajor}l.dat
|
||||||
|
|
||||||
|
%files -n libicu-devel
|
||||||
|
%_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
|
||||||
|
%dir %_docdir/%name/
|
||||||
|
%_docdir/%name/html/
|
||||||
|
|
||||||
|
%changelog
|
BIN
icu4c-73_2-docs.zip
(Stored with Git LFS)
Normal file
BIN
icu4c-73_2-docs.zip
(Stored with Git LFS)
Normal file
Binary file not shown.
14
icu4c-73_2-docs.zip.asc
Normal file
14
icu4c-73_2-docs.zip.asc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQGzBAABCgAdFiEEPaNTAafDMCV7h1V1QFj2dAbqpqsFAmSI4zYACgkQQFj2dAbq
|
||||||
|
pqvNbAwA1VRn+rZ7mqeLtCIcz/3FPbjvwcxaEZQwOzPD2MkCsn7E063sWnODTHz9
|
||||||
|
KAhTz513AQUgXr4xU+FFHD55SJq7JBu+gWjB+h6gi/ZmJCHJmZaWzkDzitARlYXP
|
||||||
|
7QVn7GYyimdZgMCZ1enrwrjLUumqILwK8GkKdp8KudbP+h9xq3pMOzcBi8Q7zLnM
|
||||||
|
PAt1vQFcqTcwmKCUlutyO0KUcsqBYqywVf29qP+zspKdK+sUJAIHG6n38yQb4Vif
|
||||||
|
/UoECKj3isI/8pOXUuAT9SLkBv9E0u4ATGoCLHczMA+MBvxCjnXXXWhSqz23L5cu
|
||||||
|
8XKBT/UJzxtWjqEmIv5irENkxHwnxzUApdrqTy9ftZ2ljWVVxbf06aaMabttzd2Q
|
||||||
|
GmtHHMUzTDz68ca20s+mCflJTAQxvwTEdlx3tAxzn7LQumd3cQyHyzSeKUv8RDTS
|
||||||
|
MNZZTybLw24aIqfgTtQANNkK0Ne/mf7QlOjiPaRmcx4id55ubbCLd06nbLZ4l6K3
|
||||||
|
5tja3wWM
|
||||||
|
=wUBf
|
||||||
|
-----END PGP SIGNATURE-----
|
BIN
icu4c-73_2-src.tgz
(Stored with Git LFS)
Normal file
BIN
icu4c-73_2-src.tgz
(Stored with Git LFS)
Normal file
Binary file not shown.
14
icu4c-73_2-src.tgz.asc
Normal file
14
icu4c-73_2-src.tgz.asc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQGzBAABCgAdFiEEPaNTAafDMCV7h1V1QFj2dAbqpqsFAmSI4zsACgkQQFj2dAbq
|
||||||
|
pqsKGwwAxpfoDLHqOZu6yRiEJhj5wZAA155ejz0Al3q5JlS8fCaMs/93OyGSwntJ
|
||||||
|
GG0BdntqfrXdQPXk1I4XW0fevVTIC7yUXA0SOnBL42s3KrteDWCNd/bfInIgpAq8
|
||||||
|
JjphOVYWxt5vG2dzSTs66dHEU4cBUHtzpb4xrcC8K4zKR+dOkxr0abrpSJOISZrP
|
||||||
|
56PJduW4Tk+SFklFrn2WkP3IIu9d92ajjJnj2bbRDsHvaW+AN7zWG0tzIKs+zkwM
|
||||||
|
GmvtDzyMSPDeKy1MDF6Pa6wStGuQpznsS9UyADjW00ozpzB7mhdDcWUSPfeItyaL
|
||||||
|
uDofHfEjk6jP4jfDXyvo0gHPPvtJQ9RQPb/+3ZlMqEGv/UVxfOyhrJdYhBmZ4a8a
|
||||||
|
A8g59sWB8O/bN23rwlJGvPmpqHHuB0H+spmrXhg77WkMdUFn9FthAmndlsVnuRK3
|
||||||
|
rWPNuQTvXLLK8UlNvcy0qU3IXE865XsH99S4zLJy9k3rHjrU0zvF8dRMVotLX0aS
|
||||||
|
PLV6lKmB
|
||||||
|
=LkuT
|
||||||
|
-----END PGP SIGNATURE-----
|
@ -0,0 +1,33 @@
|
|||||||
|
From b6b3e89231a623441940889b5badd90f74bdce2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Frank Tang <ftang@chromium.org>
|
||||||
|
Date: Mon, 18 Sep 2023 20:20:42 -0700
|
||||||
|
Subject: [PATCH] ICU-22512 Fix broken TestHebrewCalendarInTemporalLeapYear
|
||||||
|
|
||||||
|
Fix broken test mistakenly landed in
|
||||||
|
https://github.com/unicode-org/icu/pull/2274
|
||||||
|
|
||||||
|
Some important steps were missed in the last landing.
|
||||||
|
---
|
||||||
|
icu4c/source/test/intltest/caltest.cpp | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
Index: icu/source/test/intltest/caltest.cpp
|
||||||
|
===================================================================
|
||||||
|
--- icu.orig/source/test/intltest/caltest.cpp
|
||||||
|
+++ icu/source/test/intltest/caltest.cpp
|
||||||
|
@@ -3998,6 +3998,7 @@ void CalendarTest::TestHebrewCalendarInT
|
||||||
|
for (gc.set(startYear, UCAL_JANUARY, 1);
|
||||||
|
gc.get(UCAL_YEAR, status) <= stopYear;
|
||||||
|
gc.add(UCAL_DATE, incrementDays, status)) {
|
||||||
|
+ cal->setTime(gc.getTime(status), status);
|
||||||
|
if (failure(status, "add/get/set/getTime/setTime incorrect")) return;
|
||||||
|
|
||||||
|
int32_t cal_year = cal->get(UCAL_EXTENDED_YEAR, status);
|
||||||
|
@@ -4006,6 +4007,7 @@ void CalendarTest::TestHebrewCalendarInT
|
||||||
|
leapTest->set(UCAL_MONTH, 0);
|
||||||
|
leapTest->set(UCAL_DATE, 1);
|
||||||
|
// If 10 months after TISHRI is TAMUZ, then it is a leap year.
|
||||||
|
+ leapTest->add(UCAL_MONTH, 10, status);
|
||||||
|
hasLeapMonth = leapTest->get(UCAL_MONTH, status) == icu::HebrewCalendar::TAMUZ;
|
||||||
|
yearForHasLeapMonth = cal_year;
|
||||||
|
}
|
20
locale.diff
Normal file
20
locale.diff
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Execute POSIX behavior not just on Solaris but all POSIX platforms.
|
||||||
|
|
||||||
|
References: https://bugzilla.opensuse.org/1162882
|
||||||
|
---
|
||||||
|
source/common/putil.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: icu/source/common/putil.cpp
|
||||||
|
===================================================================
|
||||||
|
--- icu.orig/source/common/putil.cpp
|
||||||
|
+++ icu/source/common/putil.cpp
|
||||||
|
@@ -1616,7 +1616,7 @@ static const char *uprv_getPOSIXIDForCat
|
||||||
|
/* Solaris speaks POSIX - See IEEE Std 1003.1-2008
|
||||||
|
* This is needed to properly handle empty env. variables
|
||||||
|
*/
|
||||||
|
-#if U_PLATFORM == U_PF_SOLARIS
|
||||||
|
+#if U_PLATFORM_IMPLEMENTS_POSIX
|
||||||
|
if ((posixID == 0) || (posixID[0] == '\0')) {
|
||||||
|
posixID = getenv(category == LC_MESSAGES ? "LC_MESSAGES" : "LC_CTYPE");
|
||||||
|
if ((posixID == 0) || (posixID[0] == '\0')) {
|
22
nan-undefined-conversion.patch
Normal file
22
nan-undefined-conversion.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From 29f1188d191a7a75ac7ffa4bfa390f625da39c53 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andreas Schwab <schwab@suse.de>
|
||||||
|
Date: Tue, 11 May 2021 19:04:24 +0200
|
||||||
|
Subject: [PATCH] ICU-21613 Fix undefined behaviour in
|
||||||
|
ComplexUnitsConverter::applyRounder
|
||||||
|
|
||||||
|
Index: icu/source/i18n/units_complexconverter.cpp
|
||||||
|
===================================================================
|
||||||
|
--- icu.orig/source/i18n/units_complexconverter.cpp
|
||||||
|
+++ icu/source/i18n/units_complexconverter.cpp
|
||||||
|
@@ -242,6 +242,11 @@ void ComplexUnitsConverter::applyRounder
|
||||||
|
}
|
||||||
|
quantity = decimalQuantity.toDouble();
|
||||||
|
|
||||||
|
+ if (uprv_isNaN(quantity) || uprv_isInfinite(quantity)) {
|
||||||
|
+ // Do nothing for non-finite values, since conversion to int64_t is undefined
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
int32_t lastIndex = unitsConverters_.length() - 1;
|
||||||
|
if (lastIndex == 0) {
|
||||||
|
// Only one element, no need to bubble up the carry
|
Loading…
Reference in New Issue
Block a user