xerces-j2/xerces-j2.spec
Fridrich Strba 712803529d Accepting request 953790 from home:david.anes:branches:Java:packages
- Update to 2.12.2 [bsc#1195108, CVE-2022-23437]:
  * This release is a bug fix release. It fixes few bugs which were 
    present in Xerces-J 2.12.1 and also includes a few other minor 
    enhancements.
    + Implemented a fix, that solves rarely occurring XML parsing 
      performance issue.
    + Improved compliance, of XPath 2.0 processor's regex 
      implementation (that's used within XML Schema 1.1 
      implementation).
    + XML Schema validation error message improvements, when XML 
      attributes are validated.
    + Improved the JAXP SourceValidator sample, related to XML 
      Schema 1.1 assertion evaluations on list types.	
    + Solved an XML Schema implementation issue, where 
      combination of restrictions 'length' and 'minLength' was
      leading to error.
    + Made minor, improvements to few XML Schema 1.1 validation 
      error messages.
    + Fixed a rarely occurring issue during XML Schema 1.1 
      xs:assert evaluation, where adjacent text values within
      XML instance document, were resulting in more than one
      adjacent XPath 2.0 text nodes.
    + Upgraded the minimum, Java requirement to use XercesJ to
      Java version 1.7.
    + Upgraded XalanJ serializer dependency to version 2.7.2
      from 2.7.1, which is required by XercesJ.
    + Re-built, "XML Commons External" and "XML Commons 
      Resolver" codebases (which are dependencies for XercesJ) 
      using Java 1.7.

OBS-URL: https://build.opensuse.org/request/show/953790
OBS-URL: https://build.opensuse.org/package/show/Java:packages/xerces-j2?expand=0&rev=72
2022-02-11 16:13:59 +00:00

171 lines
5.8 KiB
RPMSpec

#
# spec file for package xerces-j2
#
# Copyright (c) 2022 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/
#
%global cvs_version 2_12_2
%define __requires_exclude system.bundle
Name: xerces-j2
Version: 2.12.2
Release: 0
Summary: Java XML parser
License: Apache-2.0 AND W3C
Group: Development/Libraries/Java
URL: https://xerces.apache.org/xerces2-j/
Source0: https://dlcdn.apache.org//xerces/j/source/Xerces-J-src.%{version}.tar.gz
Source1: %{name}-version.sh
Source2: %{name}-constants.sh
Source3: %{name}-version.1
Source4: %{name}-constants.1
Source5: https://repo.maven.apache.org/maven2/xerces/xercesImpl/%{version}/xercesImpl-%{version}.pom
# Patch the build so that it doesn't try to use bundled xml-commons source
# Also remove the use of the special taglets and xjavac task
Patch0: %{name}-build.patch
Patch1: %{name}-manifest.patch
BuildRequires: ant
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: java-devel
BuildRequires: javapackages-local
BuildRequires: xalan-j2 >= 2.7.1
BuildRequires: xml-commons-apis >= 1.4.01
BuildRequires: xml-commons-resolver >= 1.2
#!BuildIgnore: xerces-j2 osgi(org.apache.xerces) jaxp_parser_impl
# Explicit javapackages-tools requires since scripts use
# /usr/share/java-utils/java-functions
Requires: javapackages-tools
Requires: xalan-j2 >= 2.7.1
Requires: xml-commons-apis >= 1.4.01
Requires: xml-commons-resolver >= 1.2
Provides: %{name}-scripts = %{version}-%{release}
Provides: jaxp_parser_impl = 1.4
Obsoletes: %{name}-scripts < %{version}-%{release}
BuildArch: noarch
%description
Xerces2 is an XML parser in the Apache Xerces family. This version is the
reference implementation of the Xerces Native Interface (XNI), a modular
framework for building parser components and configurations.
Xerces2 implements the Document Object Model Level 3 Core and Load/Save W3C
Recommendations, the XML Inclusions (XInclude) W3C Recommendation, and supports
OASIS XML Catalogs v1.1. It can parse documents conforming to the XML 1.1
Recommendation, except that it does not yet provide an option to enable
normalization checking as described in section 2.13 of this specification. It
handles name spaces according to the XML Namespaces 1.1 Recommendation, and
serializes XML 1.1 documents if the DOM level 3 load/save APIs are in use.
%package javadoc
Summary: Javadocs for %{name}
Group: Documentation/HTML
%description javadoc
This package contains the API documentation for %{name}.
%package demo
Summary: Demonstrations and samples for %{name}
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
%description demo
%{summary}.
%prep
%setup -q -n xerces-%{cvs_version}
find "(" -name "*.class" -o -name "*.jar" ")" -delete
find -type f -exec dos2unix {} \;
%patch0 -p1
%patch1
%build
mkdir -p tools
pushd tools
ln -sf $(build-classpath xalan-j2-serializer) serializer.jar
ln -sf $(build-classpath xml-commons-apis) xml-apis.jar
ln -sf $(build-classpath xml-commons-resolver) resolver.jar
popd
# Build everything
export ANT_OPTS="-Xmx256m -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true"
ant -Djavac.source=1.6 -Djavac.target=1.6 \
-Dbuild.compiler=modern \
clean jars javadocs
%install
# jar
install -dm 755 %{buildroot}%{_javadir}
install -pm 644 build/xercesImpl.jar %{buildroot}%{_javadir}/%{name}.jar
(cd %{buildroot}%{_javadir} && ln -s %{name}.jar jaxp_parser_impl.jar)
# pom
install -dm 755 %{buildroot}%{_mavenpomdir}
install -pm 644 %{SOURCE5} %{buildroot}%{_mavenpomdir}/%{name}.pom
%add_maven_depmap %{name}.pom %{name}.jar -a xerces:xerces,xerces:xmlParserAPIs,apache:xerces-j2
# javadoc
mkdir -p %{buildroot}%{_javadocdir}/%{name}
mkdir -p %{buildroot}%{_javadocdir}/%{name}/impl
mkdir -p %{buildroot}%{_javadocdir}/%{name}/xs
mkdir -p %{buildroot}%{_javadocdir}/%{name}/xni
mkdir -p %{buildroot}%{_javadocdir}/%{name}/other
cp -pr build/docs/javadocs/xerces2/* %{buildroot}%{_javadocdir}/%{name}/impl
cp -pr build/docs/javadocs/api/* %{buildroot}%{_javadocdir}/%{name}/xs
cp -pr build/docs/javadocs/xni/* %{buildroot}%{_javadocdir}/%{name}/xni
cp -pr build/docs/javadocs/other/* %{buildroot}%{_javadocdir}/%{name}/other
%fdupes -s %{buildroot}%{_javadocdir}
# scripts
install -pD -m755 -T %{SOURCE1} %{buildroot}%{_bindir}/%{name}-version
install -pD -m755 -T %{SOURCE2} %{buildroot}%{_bindir}/%{name}-constants
# manual pages
install -d -m 755 %{buildroot}%{_mandir}/man1
install -p -m 644 %{SOURCE3} %{buildroot}%{_mandir}/man1
install -p -m 644 %{SOURCE4} %{buildroot}%{_mandir}/man1
# demo
install -pD -T build/xercesSamples.jar %{buildroot}%{_datadir}/%{name}/%{name}-samples.jar
cp -pr data %{buildroot}%{_datadir}/%{name}
%post
update-alternatives --remove jaxp_parser_impl %{_javadir}/%{name}.jar >/dev/null 2>&1 || :
# it deletes the link, set it up again
ln -sf %{name}.jar %{_javadir}/jaxp_parser_impl.jar
%files
%license LICENSE
%doc NOTICE README
%{_bindir}/*
%{_javadir}/*
%{_mandir}/*/*
%{_mavenpomdir}/*
%if %{defined _maven_repository}
%{_mavendepmapfragdir}/%{name}
%else
%{_datadir}/maven-metadata/%{name}.xml*
%endif
%files javadoc
%{_javadocdir}/%{name}
%files demo
%{_datadir}/%{name}
%changelog