File xerces-j2.spec of Package xerces-j2

#
# spec file for package xerces-j2
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#

# norootforbuild


Name:           xerces-j2
%define name		xerces-j2
%define version	2.8.1
%define cvs_version	2_8_1
%define release		3jpp
%define section		free
Version:        2.8.1
Release:        250
Summary:        Java XML parser
License:        Apache Software License ..
Url:            http://xml.apache.org/xerces2-j/
Group:          Development/Libraries/Java
Source0:        Xerces-J-src.%{version}.tar.bz2
Source1:        %{name}-version.sh
Source2:        %{name}-constants.sh
Source3:        Xerces-J-tools.%{version}.tar.bz2
Patch1:         java150_build.patch
Patch2:         %{name}-%{version}_new_unsupported_dom_methods.patch
#PATCH-FIX-UPSTREAM bnc#530717
#http://svn.apache.org/viewvc?view=rev&revision=787352
Patch3:         xerces-j2-parsing.patch
Provides:       jaxp_parser_impl
PreReq:         update-alternatives /bin/ln
# some build requirements removed to enable jpackage bootstrap. this is
# the first package built, and we use the libraries in the tools subdir
# for it.
BuildRequires:  java-1_5_0-gcj-compat-devel
#!BuildIgnore:  java-1_6_0-openjdk java-1_6_0-openjdk-devel
BuildRequires:  antlr-bootstrap
#!BuildIgnore:  antlr antlr-java
BuildRequires:  jpackage-utils
BuildRequires:  unzip
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.



%package        javadoc-impl
License:        Apache Software License ..
Summary:        Javadoc for xerces-j2 implementation
Group:          Development/Libraries/Java
PreReq:         coreutils

%description    javadoc-impl
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains the javadoc documentation for the Xerces2
implementation.



%package        javadoc-apis
License:        Apache Software License ..
Summary:        Javadoc for xerces-j2 apis
Group:          Development/Libraries/Java
PreReq:         coreutils

%description    javadoc-apis
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains the javadoc documentation for the Xerces2 APIs.



%package        javadoc-dom3
License:        Apache Software License ..
Summary:        Javadoc for xerces-j2 DOM3
Group:          Development/Libraries/Java
PreReq:         coreutils

%description    javadoc-dom3
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains the javadoc documentation for Xerces2 DOM3.



%package        javadoc-xni
License:        Apache Software License ..
Summary:        Javadoc for xerces-j2 XNI
Group:          Development/Libraries/Java
PreReq:         coreutils

%description    javadoc-xni
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains the javadoc documentation for Xerces2 XNI.



%package        javadoc-other
License:        Apache Software License ..
Summary:        Javadoc for other xerces-j2 components
Group:          Development/Libraries/Java
PreReq:         coreutils

%description    javadoc-other
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains the javadoc documentation for other components of
Xerces2.



%package        demo
License:        Apache Software License ..
Summary:        Demonstration and sample files for xerces-j2
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}

%description    demo
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains demonstration and sample files for Xerces2.



%package        scripts
License:        Apache Software License ..
Summary:        Additional utility scripts for xerces-j2
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}
Requires:       jpackage-utils >= 1.5

%description    scripts
Welcome to the future! Xerces2 is the next generation of high
performance, fully compliant XML parsers in the Apache Xerces family.
This new version of Xerces introduces the Xerces Native Interface
(XNI), a complete framework for building parser components and
configurations that is extremely modular and easy to program.

The Apache Xerces2 parser is the reference implementation of XNI but
other parser components, configurations, and parsers can be written
using the Xerces Native Interface. For complete design and
implementation documents, refer to the XNI Manual.

Xerces 2 is a fully conforming XML Schema processor. For more
information, refer to the XML Schema page.

Xerces 2 also provides a partial implementation of Document Object
Model Level 3 Core, Load and Save and Abstract Schemas [deprecated]
Working Drafts. For more information, refer to the DOM Level 3
Implementation page.

This package contains additional utility scripts for Xerces2.



%package        xml-resolver
License:        Apache Software License ..
Summary:        Resolver subproject of xml-commons
Group:          Development/Libraries/Java
Requires:       jpackage-utils >= 1.5
Provides:       xml-commons-resolver
PreReq:         update-alternatives

%description    xml-resolver 
xml-commons is focused on common code and guidelines for xml projects.
The first focus will be to organize and have common packaging for the
various externally-defined standards code relating to XML - things like
the DOM, SAX, and JAXP interfaces.

This package contains the resolver subproject of xml-commons.



%package        xml-apis
License:        Apache Software License ..
Summary:        APIs subproject of xml-commons
Group:          Development/Libraries/Java
Requires:       jpackage-utils >= 1.5
Provides:       xml-commons-apis
PreReq:         update-alternatives

%description    xml-apis 
xml-commons is focused on common code and guidelines for xml projects.
Its first focus will be to organize and have common packaging for the
various externally-defined standards code relating to XML - things like
the DOM, SAX, and JAXP interfaces. As the xml-commons community forms,
we also hope to serve as a holding area for other common xml-related
utilities and code, and to help promulgate common packaging, testing,
documentation, and other guidelines across all xml.apache.org
subprojects.

This package contains the APIs subproject of xml-commons.



%prep
%setup -q -n xerces-%{cvs_version}
%setup -q -T -a 3 -D -n xerces-%{cvs_version}
%setup -T -D -n xerces-%{cvs_version}
%patch1 -p1
%patch2 -p1
%patch3 -p1 -b .parsing

%build
## this uses the ant.jar provided by the xerces packages. Tough luck,
# jpackage bootstrap has to start somewhere. It is not installed,
# though.
export GC_MAXIMUM_HEAP_SIZE="134217728"
export CLASSPATH=$CLASSPATH:`build-classpath antlr-bootstrap`
sh build.sh jars
sh build.sh javadocs

%install
# jars
mkdir -p $RPM_BUILD_ROOT%{_javadir}
cp -p build/xercesImpl.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
cp -p build/resolver.jar   $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}-xml-resolver.jar
cp -p build/xml-apis.jar   $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}-xml-apis.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
# javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl-%{version}
cp -pr build/docs/javadocs/xerces2/* \
  $RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl-%{version}
ln -s %{name}-impl-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis-%{version}
cp -pr build/docs/javadocs/api/* \
  $RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis-%{version}
ln -s %{name}-apis-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni-%{version}
cp -pr build/docs/javadocs/xni/* \
  $RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni-%{version}
ln -s %{name}-xni-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-dom-%{version}
cp -pr build/docs/javadocs/xerces2/org/apache/xerces/dom/* \
  $RPM_BUILD_ROOT%{_javadocdir}/%{name}-dom-%{version}
ln -s %{name}-dom-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-dom
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-other-%{version}
cp -pr build/docs/javadocs/other/* \
  $RPM_BUILD_ROOT%{_javadocdir}/%{name}-other-%{version}
ln -s %{name}-other-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-other
rm -rf build/docs/javadocs
# scripts
mkdir -p $RPM_BUILD_ROOT%{_bindir}
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}-version
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}-constants
# demo
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -p build/xercesSamples.jar \
  $RPM_BUILD_ROOT%{_datadir}/%{name}/%{name}-samples.jar
cp -pr data $RPM_BUILD_ROOT%{_datadir}/%{name}
# jaxp_parser_impl ghost symlink
ln -s %{_sysconfdir}/alternatives \
  $RPM_BUILD_ROOT%{_javadir}/jaxp_parser_impl.jar
# xml-apis ghost symlink
ln -s %{_sysconfdir}/alternatives \
  $RPM_BUILD_ROOT%{_javadir}/xml-commons-apis.jar
# xml-resolver ghost symlink
ln -s %{_sysconfdir}/alternatives \
  $RPM_BUILD_ROOT%{_javadir}/xml-commons-resolver.jar

%clean
rm -rf $RPM_BUILD_ROOT

%post
/usr/sbin/update-alternatives --install %{_javadir}/jaxp_parser_impl.jar jaxp_parser_impl  %{_javadir}/%{name}.jar 23
/usr/sbin/update-alternatives --auto jaxp_parser_impl

%post xml-apis
/usr/sbin/update-alternatives --install %{_javadir}/xml-commons-apis.jar         xml-commons-apis          %{_javadir}/%{name}-xml-apis.jar 1
/usr/sbin/update-alternatives --auto xml-commons-apis

%post xml-resolver
/usr/sbin/update-alternatives --install %{_javadir}/xml-commons-resolver.jar     xml-commons-resolver      %{_javadir}/%{name}-xml-resolver.jar 1
/usr/sbin/update-alternatives --auto xml-commons-resolver

%preun
{
  [ $1 = 0 ] || exit 0
  /usr/sbin/update-alternatives --remove jaxp_parser_impl        %{_javadir}/%{name}.jar
} >/dev/null 2>&1 || :

%preun xml-apis
{
  [ $1 = 0 ] || exit 0
  /usr/sbin/update-alternatives --remove xml-commons-apis        %{_javadir}/%{name}-xml-apis.jar
} >/dev/null 2>&1 || :

%preun xml-resolver
{
  [ $1 = 0 ] || exit 0
  /usr/sbin/update-alternatives --remove xml-commons-resolver    %{_javadir}/%{name}-xml-commons-resolver.jar
} >/dev/null 2>&1 || :

%files
%defattr(0644,root,root,0755)
%doc LICENSE README ISSUES STATUS TODO
%{_javadir}/%{name}-%{version}.jar
%{_javadir}/%{name}.jar
%ghost %{_javadir}/jaxp_parser_impl.jar

%files xml-apis
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-%{version}-xml-apis.jar
%{_javadir}/%{name}-xml-apis.jar
%ghost %{_javadir}/xml-commons-apis.jar

%files xml-resolver
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-%{version}-xml-resolver.jar
%{_javadir}/%{name}-xml-resolver.jar
%ghost %{_javadir}/xml-commons-resolver.jar

%files javadoc-impl
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-impl-%{version}
%doc %{_javadocdir}/%{name}-impl

%files javadoc-apis
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-apis-%{version}
%doc %{_javadocdir}/%{name}-apis

%files javadoc-dom3
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-dom-%{version}
%doc %{_javadocdir}/%{name}-dom

%files javadoc-other
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-other-%{version}
%doc %{_javadocdir}/%{name}-other

%files javadoc-xni
%defattr(0644,root,root,0755)
%doc %{_javadocdir}/%{name}-xni-%{version}
%doc %{_javadocdir}/%{name}-xni

%files demo
%defattr(0644,root,root,0755)
%{_datadir}/%{name}

%files scripts
%defattr(0755,root,root,0755)
%{_bindir}/*

%changelog
openSUSE Build Service is sponsored by