Sync from SUSE:SLFO:Main icu4j revision dcf2b9116e1b2c9e71b8edc62ab5777f

This commit is contained in:
Adrian Schröter 2024-05-03 13:41:03 +02:00
commit 087ac18813
9 changed files with 5128 additions and 0 deletions

23
.gitattributes vendored Normal file
View 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

4392
icu4j-70.1-java8compat.patch Normal file

File diff suppressed because it is too large Load Diff

BIN
icu4j-73_1.tgz (Stored with Git LFS) Normal file

Binary file not shown.

26
icu4j-detectjava21.patch Normal file
View File

@ -0,0 +1,26 @@
--- a/build.xml 2023-04-13 18:15:08.000000000 +0200
+++ b/build.xml 2023-09-21 08:36:23.783902985 +0200
@@ -134,6 +134,14 @@
<matches string="${java.version}" pattern="^19((-.|\.\d).*)?"/>
</condition>
+ <condition property="is.java20">
+ <matches string="${java.version}" pattern="^20((-.|\.\d).*)?"/>
+ </condition>
+
+ <condition property="is.java21">
+ <matches string="${java.version}" pattern="^21((-.|\.\d).*)?"/>
+ </condition>
+
<condition property="is.java9.plus">
<or>
<isset property="is.java9"/>
@@ -147,6 +155,8 @@
<isset property="is.java17"/>
<isset property="is.java18"/>
<isset property="is.java19"/>
+ <isset property="is.java20"/>
+ <isset property="is.java21"/>
</or>
</condition>

31
icu4j-javadoc.patch Normal file
View File

@ -0,0 +1,31 @@
--- a/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatter.java 2021-04-07 16:50:27.000000000 -0600
+++ b/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatter.java 2021-08-24 09:51:20.411499180 -0600
@@ -20,7 +20,7 @@ import com.ibm.icu.util.ULocale;
* .locale(ULocale.UK)
* .formatRange(750, 1.2)
* .toString();
- * // => "750 m - 1.2 km"
+ * // &rarr; "750 m - 1.2 km"
* </pre>
* <p>
* Like NumberFormatter, NumberRangeFormatter instances (i.e., LocalizedNumberRangeFormatter
--- a/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java 2021-08-24 09:24:05.359581150 -0600
+++ b/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java 2021-08-24 09:54:31.851818377 -0600
@@ -129,7 +129,7 @@ import com.ibm.icu.util.ULocale;
* SpoofChecker sc = new SpoofChecker.Builder()
* .setAllowedChars(SpoofChecker.RECOMMENDED.cloneAsThawed().addAll(SpoofChecker.INCLUSION))
* .setRestrictionLevel(SpoofChecker.RestrictionLevel.MODERATELY_RESTRICTIVE)
- * .setChecks(SpoofChecker.ALL_CHECKS &~ SpoofChecker.CONFUSABLE)
+ * .setChecks(SpoofChecker.ALL_CHECKS &amp;~ SpoofChecker.CONFUSABLE)
* .build();
* boolean result = sc.failsChecks("pаypаl"); // with Cyrillic 'а' characters
* System.out.println(result); // true
@@ -150,7 +150,7 @@ import com.ibm.icu.util.ULocale;
* SpoofChecker sc = new SpoofChecker.Builder()
* .setAllowedChars(SpoofChecker.RECOMMENDED.cloneAsThawed().addAll(SpoofChecker.INCLUSION))
* .setRestrictionLevel(SpoofChecker.RestrictionLevel.MODERATELY_RESTRICTIVE)
- * .setChecks(SpoofChecker.ALL_CHECKS &~ SpoofChecker.CONFUSABLE)
+ * .setChecks(SpoofChecker.ALL_CHECKS &amp;~ SpoofChecker.CONFUSABLE)
* .build();
* SpoofChecker.CheckResult checkResult = new SpoofChecker.CheckResult();
* boolean result = sc.failsChecks("pаypаl", checkResult);

79
icu4j-jdk10plus.patch Normal file
View File

@ -0,0 +1,79 @@
diff -up SRC/build.xml.p00 SRC/build.xml
--- SRC/build.xml.p00 2023-04-20 11:16:32.762221158 +0300
+++ SRC/build.xml 2023-04-20 11:24:00.668073471 +0300
@@ -462,7 +462,7 @@
</patternset>
<!-- meta build targets -->
- <target name="all" depends="info, main, tests, build-tools, tools, demos, samples, perf-tests, jar, docs" description="Build all primary targets"/>
+ <target name="all" depends="info, main, tests, tools, demos, samples, perf-tests, jar, docs" description="Build all primary targets"/>
<target name="main" depends="info, core, collate, charset, currdata, langdata, regiondata, translit, localespi" description="Build ICU4J runtime library classes"/>
<target name="tests" depends="info, core-tests, charset-tests, collate-tests, packaging-tests, translit-tests, localespi-tests" description="Build ICU4J test classes"/>
@@ -1312,7 +1312,7 @@
</target>
<!-- doc targets -->
- <target name="docs" depends="info, build-tools, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
+ <target name="docs" depends="info, _checkJCite, _docsWithJCite, _docsWithoutJCite" description="Build API documents"/>
<target name="docsStrict" description="Build API documents with all doclint check enabled">
<condition property="doclint.option" value="-Xdoclint:all">
@@ -1356,7 +1356,7 @@
docencoding="UTF-8"
charset="UTF-8"
bottom="${icu4j.api.doc.copyright.footer}"
- additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
+ additionalparam="${doclint.option} -breakiterator -use -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
link="${icu4j.api.doc.jdk.link}"
source="${javac.source}"
stylesheetfile="${docs.style.sheet}"
@@ -1393,7 +1393,7 @@
docencoding="UTF-8"
charset="UTF-8"
bottom="${icu4j.api.doc.copyright.footer}"
- additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet"
+ additionalparam="${doclint.option} -breakiterator -use"
link="${icu4j.api.doc.jdk.link}"
source="${javac.source}"
failonerror="true">
@@ -1439,7 +1439,7 @@
docencoding="UTF-8"
charset="UTF-8"
bottom="${icu4j.api.doc.copyright.footer}"
- additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
+ additionalparam="${doclint.option} -breakiterator -use -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
link="${icu4j.api.doc.jdk.link}"
source="${javac.source}"
stylesheetfile="${docs.style.sheet}"
@@ -1479,7 +1479,7 @@
docencoding="UTF-8"
charset="UTF-8"
bottom="${icu4j.api.doc.copyright.footer}"
- additionalparam="${doclint.option} -breakiterator -use -tagletpath ${icu4j.build-tools.jar}${path.separator}${jcite.libs} -taglet com.ibm.icu.dev.tool.docs.ICUTaglet -taglet ch.arrenbrecht.jcite.JCiteTaglet -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
+ additionalparam="${doclint.option} -breakiterator -use -J-Djcitesourcepath=${jcite.addl.src} -J-Dfile.encoding=UTF-8"
link="${icu4j.api.doc.jdk.link}"
source="${javac.source}"
stylesheetfile="${docs.style.sheet}"
@@ -1664,7 +1664,6 @@
<packageset dir="${icu4j.charset.dir}/src">
<include name="com/ibm/icu/charset/**"/>
</packageset>
- <doclet name="com.ibm.icu.dev.tool.docs.CheckTags" path="${icu4j.build-tools.jar}"/>
</javadoc>
</target>
@@ -1690,13 +1689,6 @@
<packageset dir="${icu4j.translit.dir}/src">
<include name="com/ibm/icu/text/**"/>
</packageset>
- <doclet name="com.ibm.icu.dev.tool.docs.GatherAPIData" path="${icu4j.build-tools.jar}">
- <param name="-name" value="ICU4J ${icu4j.impl.version}"/>
- <param name="-output" value="${out.dir}/icu4j${api.report.version}.api3"/>
- <param name="-internal"/>
- <param name="-version"/>
- <param name="-gzip"/>
- </doclet>
</javadoc>
</target>

359
icu4j.changes Normal file
View File

@ -0,0 +1,359 @@
-------------------------------------------------------------------
Thu Sep 21 06:30:35 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* icu4j-detectjava21.patch
+ detect java 20 and 21 when running ant
-------------------------------------------------------------------
Thu Apr 20 08:33:20 UTC 2023 - Anton Shvetz <shvetz.anton@gmail.com>
- Upgrade to version 73.1
* Updates to CLDR 43 locale data with various additions and
corrections.
* Improves Japanese and Korean short-text line breaking, reduces
C++ memory use in date formatting, and promotes the Java person
name formatter from tech preview to draft.
* ICU 73 and CLDR 43 are minor releases, mostly focused on bug
fixes and small enhancements. (The fall CLDR/ICU releases will
update to Unicode 15.1 which is planned for September.)
* Updates to the time zone data version 2023c (2023-mar). Note
that pre-1970 data for a number of time zones has been removed,
as has been the case in the upstream tzdata release since
2021b.
* For details, please see https://icu.unicode.org/download/73.
- Upgrade to version 72.1
* Updates to Unicode 15, and to CLDR 42 locale data with various
additions and corrections.
* ICU 72 and CLDR 42 are major releases, including a new version
of Unicode and major locale data improvements.
* Adds two technology preview implementations based on draft
Unicode specifications:
+ Formatting of peoples names in multiple languages (CLDR
background on why this feature is being added and what it does)
+ An enhanced version of message formatting
* This release also updates to the time zone data version 2022e
(2022-oct). Note that pre-1970 data for a number of time zones
has been removed, as has been the case in the upstream tzdata
release since 2021b.
* For details, please see https://icu.unicode.org/download/72.
- Update patch:
* icu4j-jdk10plus.patch
-------------------------------------------------------------------
Fri Apr 29 11:55:45 UTC 2022 - Anton Shvetz <shvetz.anton@gmail.com>
- Upgrade to version 71.1
* Updates to CLDR 41 locale data with various additions and
corrections.
* Adds phrase-based line breaking for Japanese. Existing line
breaking methods follow standards and conventions for body text
but do not work well for short Japanese text, such as in titles
and headings. This new feature is optimized for these use
cases.
* Adds support for Hindi written in Latin letters (hi_Latn). The
CLDR data for this increasingly popular locale has been
significantly revised and expanded. Note that based on user
expectations, hi_Latn incorporates a large amount of English,
and can also be referred to as “Hinglish”.
* ICU 71 and CLDR 41 are minor releases, mostly focused on bug
fixes and small enhancements.
* Updates to the time zone data version 2022a. Note that pre-1970
data for a number of time zones has been removed, as has been
the case in the upstream tzdata release since 2021b.
- Remove obsolete stuff from spec file
- Reformat the changes file to fit to 67 chars width
-------------------------------------------------------------------
Thu Mar 24 14:17:28 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Upgrade to verison 70.1
- Modified patches:
* icu4j-66.1-java8compat.patch -> icu4j-70.1-java8compat.patch
* icu4j-jdk10plus.patch
+ rediff to changed context
* improve-osgi-manifest.patch
+ replace also DATAVERSION token during the build
- Added patch:
* icu4j-javadoc.patch
+ fix invalid html entities
-------------------------------------------------------------------
Thu Apr 23 08:32:58 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
- Update to version 67.1
* Unicode 13 (ICU-20893, same as in ICU 66)
+ Total of 5930 new characters
+ 4 new scripts
+ 55 new emoji characters, plus additional new sequences
+ New CJK extension, first characters in plane 3: U+30000..U+3134A
* CLDR 37
+ New language at Modern coverage: Nigerian Pidgin
+ New languages at Basic coverage: Fulah (Adlam), Maithili,
Manipuri, Santali, Sindhi (Devanagari), Sundanese
+ Region containment: EU no longer includes GB
+ Unicode 13 root collation data and Chinese data for collation
and transliteration
* DateTimePatternGenerator now obeys the "hc" preference in the
locale identifier (ICU-20442)
* Various other improvements for ECMA-402 conformance
* Number skeletons have a new "concise" form that can be used in
MessageFormat strings (ICU-20418)
* Currency formatting options for formal and other currency
display name variants (ICU-20854)
* ListFormatter: new public API to select the style & type
(ICU-12863)
* ListFormatter now selects the proper “and”/“or” form for
Spanish & Hebrew (ICU-21016)
* Locale ID canonicalization upgraded to implement the complete
CLDR spec (ICU-20834, ICU-20272)
* LocaleMatcher: New option to ignore one-way matches
(ICU-20936), and other tweaks to the code (ICU-20916,
ICU-20917) and data (from CLDR)
* acceptLanguage() reimplemented via LocaleMatcher (ICU-20700)
* Data build tool: tzdbNames.res moved from the "zone_tree"
category to the "zone_supplemental" category (ICU-21073)
-------------------------------------------------------------------
Thu Apr 2 08:32:08 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Version update to 66.1
- Changed patches:
* icu4j-jdk10plus.patch
* improve-osgi-manifest.patch
* icu4j-63.1-java8compat.patch -> icu4j-66.1-java8compat.patch
+ rediff to changed context
-------------------------------------------------------------------
Fri Jan 24 10:56:12 UTC 2020 - Fridrich Strba <fstrba@suse.com>
- Remove build-dependency on java-javadoc, since it is not
necessary with this version.
-------------------------------------------------------------------
Wed Feb 13 12:42:12 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* icu4j-63.1-java8compat.patch
+ Prevent use of Jdk >= 9 functions
- Clean up the file and sanitize osgi bundle versions
-------------------------------------------------------------------
Tue Nov 27 12:56:30 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- Distribute also the charset and localespi jars along with their
pom files.
- Install the jars also to %{_javadir}%{name} directory for
compatibility reasons.
-------------------------------------------------------------------
Fri Nov 23 16:03:18 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* improve-osgi-manifest.patch
-------------------------------------------------------------------
Thu Nov 22 12:23:04 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- Version update to 63.1
* updates to CLDR 34 locale data with many additions and
corrections, and some new languages.
* adds API for number and currency range formatting, and API for
additional Unicode properties and for constructing custom
properties.
* includex data for testing readiness for the upcoming Japanese
calendar era.
-------------------------------------------------------------------
Fri Dec 22 13:11:47 UTC 2017 - fstrba@suse.com
- Version update to 60.2
* jdk9 upstream fixes
- Obsoleted patches:
* icu4j-jdk9.patch
- Obsoleted by upstream fixes
* icu4j-taglet.patch
- Obsoleted by removal of the old style taglet removal
- Added patch:
* icu4j-jdk10plus.patch
- Fix build with jdk10 and possibly later jdks
- Don't build the ICUTaglet, since it depends on removed APIs
-------------------------------------------------------------------
Fri Sep 29 06:29:50 UTC 2017 - fstrba@suse.com
- Don't condition the maven defines on release version, but on
_maven_repository being defined
-------------------------------------------------------------------
Mon Sep 18 10:17:38 UTC 2017 - fstrba@suse.com
- Added patches:
* icu4j-taglet.patch
+ implement com.sun.tools.doclets.Taglet interface instead of
the deprecated
com.sun.tools.doclets.internal.toolkit.taglets.Taglet
+ Fixes java.lang.ClassCastException with jdk9
* icu4j-jdk9.patch
+ Extend the jdk9 test, so that it accepts versions that start
with 9
+ Make source, target and encoding consistent all over the
build
- Specify source and target level 1.6 in order to allow building
with jdk9
-------------------------------------------------------------------
Fri May 19 10:40:23 UTC 2017 - tchvatal@suse.com
- Version update to 58.1:
* Changes to keep in line with regular icu release
- Obsoleted patch:
* java8-compatibility.patch
-------------------------------------------------------------------
Mon Mar 20 15:13:38 UTC 2017 - sknorr@suse.com
- Needed as a dependency for FOP 2.1 (fate#322405)
- Switch between maven-metadata/maven-fragments as appropriate
for SLE/openSUSE (fate#322405)
-------------------------------------------------------------------
Tue Jul 28 10:56:40 UTC 2015 - tchvatal@suse.com
- Version bump to 55.1:
* various bugfixes to match up regular icu-c
- Add patch to build with jdk8:
* java8-compatibility.patch
-------------------------------------------------------------------
Wed Mar 18 09:46:08 UTC 2015 - tchvatal@suse.com
- Fix build with new javapackages-tools
-------------------------------------------------------------------
Tue Jan 20 16:00:47 UTC 2015 - p.drouand@gmail.com
- Update to version 54.1.1
* CLDR 26
* Unicode 7.0
* many more units
* Unihan in root collation
* new RBNF PluralFormat syntax
* dictionary-based break iterator for Burmese
* tech preview of FilteredBreakIterator using ULI break data
-------------------------------------------------------------------
Fri Jul 18 07:41:29 UTC 2014 - tchvatal@suse.com
- Version bump to 52.1:
* Match the 52.1 icu release.
-------------------------------------------------------------------
Fri Jun 27 13:55:19 UTC 2014 - tchvatal@suse.com
- No need to depend on java-javadoc solves build for SLE11.
- Tidy a bit with spec-cleaner
-------------------------------------------------------------------
Mon Sep 9 11:05:44 UTC 2013 - tchvatal@suse.com
- Move from jpackage-utils to javapackage-tools
-------------------------------------------------------------------
Sat Feb 2 15:42:06 UTC 2013 - p.drouand@gmail.com
- Update to version 50.1:
* Common Changes
- 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 (#9132)
- Deprecate setLocale(locale) in PluralFormat (#9249)
- Dictionary-based break iterators (word segmentation):
* Support Chinese & Japanese, use more compact dictionary
format, port all but Khmer support to Java (#9353)
* Update Khmer dictionary (#9311)
- Change Java util.ListFormat to text.ListFormatter and other
updates, use CLDR data (#9369, #9420), port to C++ (#7168)
- Add updated IBM-eucJP and IBM-5233 converter (#9262, #9259)
* ICU4C Specific Changes
- Improve number formatting performance (#9258)
- C++ GenderInfo: Effective combined gender of a list of
people's genders (#9598) (ported from Java)
- Thread safety support cannot be removed (see the Readme)
- Default compilers: Clang is now used if available (see the
Readme)
- C++ Collator API cleanup (#9346, #9406, #9460),
subclassing-API-breaking changes (see the Readme)
- Add option to genrb tool for writing java resource bundle
files (#9271)
- Time zone format APIs (#9338)
* ICU4J Specific Changes
- class DictionaryBasedBreakIterator was removed as part of the
improvements for dictionary-based break iteration; see the
note in the readme
- Dangi (Korean Lunisolar) calendar (#9255)
- Remove external manifest file: icu4j has moved to the IBM api
- Add with_ecplise macros; working on it
-------------------------------------------------------------------
Wed Nov 28 08:50:17 UTC 2012 - p.drouand@gmail.com
- Update to 4.8.1.1 :
* 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
(#8031)
* MessageFormat and related classes (choice/plural/select) have
been reimplemented, with several improvements and some
incompatible changes. See the detail section below.
* Extended PluralFormat pattern syntax supports explicit-value
forms and offsets. (#7858)
* Utility APIs in PluralRules (get some/all/unique keyword
values)
* Time zone API to return a list of available canonical system
time zone IDs (#8278)
* Time zone API to return a region (#8279)
* Collation: Full implementation & public API for script
reordering
* Dictionary-type trie (#8167)
* GB18030-2005 update (#8274)
* Alphabetic Index support ported from ICU4J (#7538)
* X11 Compound Text encoding support ported from ICU4J (#7959)
* Appendable interface (#8314)
* Technology Preview: APIs for region information. The new class
com.ibm.icu.util.Region provides mapping across different
region/territory codes and containment relationship. (#8347)
* JDK Locale conversion to support JDK 7 new Locale fields
(#8078)
* Technology Preview: TimeZoneFormat and TimeZoneNames. New
classes designed for supporting CLDR time zone display name
algorithm and data through public APIs. (#8342)
* Known Issues
+ #8535 & #8537 (C only) Prebuilt binaries are usable on MinGW
but the MinGW build is broken
+ #8571 (C only) U_HIDE_DRAFT_API does not operate on the
correct set of APIs; might also affect U_HIDE_DEPRECATED_API,
U_HIDE_INTERNAL_API and U_HIDE_SYSTEM_API
- Deleted files :
* icu4j-4.4.2.pom : Now icu4j is enterly based on IBM Api
-------------------------------------------------------------------
Tue Jun 12 13:48:26 UTC 2012 - mvyskocil@suse.cz
- update to 4.4.2.2 (sync with Fedora)
* CLDR 1.8
* Unicode 5.2
* compact resource bundle
* Java 5 syntax
-------------------------------------------------------------------
Tue Jun 2 15:17:28 CEST 2009 - mvyskocil@suse.cz
- Initial SUSE packaging of icu4j (from jpackage5.0)

168
icu4j.spec Normal file
View File

@ -0,0 +1,168 @@
#
# spec file for package icu4j
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2000-2007, JPackage Project
#
# 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/
#
%global majorver 73
%global minorver 1
Name: icu4j
Version: %{majorver}.%{minorver}
Release: 0
Summary: International Components for Unicode for Java
# ICU itself is now covered by Unicode license, but still has contributed
# components covered by MIT and BSD licenses
# Data from the Timezone Database is Public Domain
License: BSD-3-Clause AND MIT AND Unicode AND SUSE-Public-Domain
Group: Development/Libraries/Java
URL: http://site.icu-project.org/
Source0: https://github.com/unicode-org/icu/releases/download/release-%{majorver}-%{minorver}/%{name}-%{majorver}_%{minorver}.tgz
Patch0: icu4j-jdk10plus.patch
# Add better OSGi metadata to core jar
Patch1: improve-osgi-manifest.patch
Patch2: icu4j-70.1-java8compat.patch
Patch3: icu4j-javadoc.patch
Patch4: icu4j-detectjava21.patch
BuildRequires: ant
BuildRequires: fdupes
BuildRequires: java-devel
BuildRequires: javapackages-local
BuildArch: noarch
%description
The International Components for Unicode (ICU) library provides robust and
full-featured Unicode services on a wide variety of platforms. ICU supports
the most current version of the Unicode standard, and provides support for
supplementary characters (needed for GB 18030 repertoire support).
Java provides a very strong foundation for global programs, and IBM and the
ICU team played a key role in providing globalization technology into Sun's
Java. But because of its long release schedule, Java cannot always keep
up-to-date with evolving standards. The ICU team continues to extend Java's
Unicode and internationalization support, focusing on improving
performance, keeping current with the Unicode standard, and providing
richer APIs, while remaining as compatible as possible with the original
Java text and internationalization API design.
%package charset
Summary: Charset converter library of %{name}
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
%description charset
Charset converter library of %{name}.
%package localespi
Summary: Locale SPI library of %{name}
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
%description localespi
Locale SPI library of %{name}.
%package javadoc
Summary: Javadoc for %{name}
Group: Documentation/HTML
%description javadoc
API documentation for %{name}.
%prep
%setup -q -c
%patch0 -p1
%patch1
%patch2 -p1
%patch3 -p1
%patch4 -p1
sed -i 's/\r//' APIChangeReport.html
sed -i 's/\r//' readme.html
sed -i "s/ .*bootclasspath=.*//g" build.xml
sed -i "s:%{_prefix}/lib:%{_libdir}:g" build.xml
rm tools/build/src/com/ibm/icu/dev/tool/docs/ICUTaglet*
# The versions in build.properties were not updated since some time
rm build.properties
#echo "api.doc.version=%%{version}" >> build.properties
echo "maven.pom.ver=%{version}" >> build.properties
#echo "release.file.ver=%%{majorver}_%%{minorver}" >> build.properties
#echo "api.report.version=%%{majorver}" >> build.properties
#echo "api.report.prev.version=%%{oldmajorver}" >> build.properties
echo "jar.spec.version=%{majorver}" >> build.properties
echo "jar.impl.version=%{version}" >> build.properties
echo "jar.impl.version.string=%{version}.0" >> build.properties
# Missing dep on pl.pragmatists:JUnitParams for tests, so delete tests that
# requires it for now
sed -i -e '/pl.pragmatists/d' ivy.xml
rm main/tests/core/src/com/ibm/icu/dev/test/format/DataDrivenFormatTest.java
rm main/tests/core/src/com/ibm/icu/dev/test/calendar/DataDrivenCalendarTest.java
rm main/tests/core/src/com/ibm/icu/dev/test/serializable/CompatibilityTest.java
rm main/tests/core/src/com/ibm/icu/dev/test/serializable/CoverageTest.java
rm main/tests/core/src/com/ibm/icu/dev/test/util/LocaleMatcherTest.java
rm main/tests/charset/src/com/ibm/icu/dev/test/charset/TestConversion.java
rm main/tests/translit/src/com/ibm/icu/dev/test/translit/TransliteratorDisorderedMarksTest.java
%build
%ant \
-Djavac.source=1.8 -Djavac.target=1.8 \
-Ddoclint.option='-Xdoclint:none' \
-Dicu4j.api.doc.jdk.link= \
jar docs
for jar in icu4j icu4j-charset icu4j-localespi ; do
sed -i -e 's/@POMVERSION@/%{version}/' maven/$jar/pom.xml
done
%install
# jars
mkdir -p %{buildroot}%{_javadir}/%{name}
cp -ap %{name}*.jar %{buildroot}%{_javadir}/
for jar in icu4j icu4j-charset icu4j-localespi ; do
ln -sf %{_javadir}/${jar}.jar %{buildroot}%{_javadir}/%{name}/${jar}.jar
done
# javadoc
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -pr doc/* %{buildroot}%{_javadocdir}/%{name}
%fdupes -s %{buildroot}%{_javadocdir}/%{name}
# maven stuff
install -d -m 755 %{buildroot}%{_mavenpomdir}
for jar in icu4j icu4j-charset icu4j-localespi ; do
sed -i -e 's/@POMVERSION@/%{version}/' maven/$jar/pom.xml
cp maven/$jar/pom.xml %{buildroot}%{_mavenpomdir}/JPP-$jar.pom
done
%add_maven_depmap JPP-icu4j.pom icu4j.jar
%add_maven_depmap JPP-icu4j-charset.pom icu4j-charset.jar -f charset
%add_maven_depmap JPP-icu4j-localespi.pom icu4j-localespi.jar -f localespi
%files -f .mfiles
%dir %{_javadir}/%{name}
%doc readme.html APIChangeReport.html
%{_javadir}/%{name}/%{name}.jar
%files charset -f .mfiles-charset
%{_javadir}/%{name}/%{name}-charset.jar
%files localespi -f .mfiles-localespi
%{_javadir}/%{name}/%{name}-localespi.jar
%files javadoc
%{_javadocdir}/%{name}
%changelog

View File

@ -0,0 +1,47 @@
--- build.xml 2022-03-20 01:20:17.315792163 +0100
+++ build.xml 2022-03-20 01:20:55.698993273 +0100
@@ -745,6 +745,7 @@
<filterset>
<filter token="SPECVERSION" value="${jar.spec.version}"/>
<filter token="IMPLVERSION" value="${jar.impl.version}"/>
+ <filter token="DATAVERSION" value="${icu4j.data.version}"/>
<filter token="COPYRIGHT" value="${jar.copyright.info}"/>
<filter token="EXECENV" value="${jar.exec.env}"/>
</filterset>
--- main/shared/build/common-targets.xml 2021-10-28 08:02:09.000000000 +0200
+++ main/shared/build/common-targets.xml 2022-03-20 01:20:55.698993273 +0100
@@ -75,6 +75,7 @@
<filterset>
<filter token="SPECVERSION" value="${jar.spec.version}"/>
<filter token="IMPLVERSION" value="${jar.impl.version}"/>
+ <filter token="DATAVERSION" value="${icu4j.data.version}"/>
<filter token="COPYRIGHT" value="${jar.copyright.info}"/>
<filter token="EXECENV" value="${jar.exec.env}"/>
</filterset>
--- manifest.stub 2021-10-28 08:02:10.000000000 +0200
+++ manifest.stub 2022-03-20 01:20:55.698993273 +0100
@@ -15,5 +15,23 @@
Bundle-Copyright: @COPYRIGHT@
Bundle-RequiredExecutionEnvironment: @EXECENV@
Main-Class: com.ibm.icu.util.VersionInfo
-Export-Package: com.ibm.icu.lang,com.ibm.icu.math,com.ibm.icu.number,com.ibm.icu.text,com.ibm.icu.util
+Export-Package: com.ibm.icu.lang;base=true;full=true;version="@IMPLVERSION@",
+ com.ibm.icu.math;base=true;full=true;version="@IMPLVERSION@",
+ com.ibm.icu.number;base=true;full=true;version="@IMPLVERSION@",
+ com.ibm.icu.text;base=true;full=true;version="@IMPLVERSION@",
+ com.ibm.icu.util;base=true;full=true;version="@IMPLVERSION@",
+ com.ibm.icu.impl;x-internal:=true,
+ com.ibm.icu.impl.data;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.brkitr;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.coll;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.curr;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.lang;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.rbnf;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.region;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.translit;x-internal:=true,
+ com.ibm.icu.impl.data.icudt@DATAVERSION@b.zone;x-internal:=true,
+ com.ibm.icu.impl.duration;x-internal:=true,
+ com.ibm.icu.impl.locale;x-internal:=true
+Bundle-ActivationPolicy: lazy
Automatic-Module-Name: com.ibm.icu