icu4j/icu4j.spec

169 lines
6.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package icu4j
#
# Copyright (c) 2024 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 >= 6
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
%patch -P 0 -p1
%patch -P 1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -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
%{mvn_install_pom} 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