- Update to 2.9.0: This is the version Eclipse expects, previously the OSGi

manifest was lying about its version :-o
- Enable manual sub-package now xml-stylebook is in Fedora.
- Drop GCJ support.
- Minor changes to spec to make it more conforming to the guidelines.
- Drop the libgcj patch, we don't seem to need it anymore.
- Add the OSGi manifest as part of the build instead of the install.
- Fix packaging bug RHBZ #472646.
This commit is contained in:
mbooth 2010-01-05 18:41:32 +00:00
parent 528058a2ac
commit 42ee3c5aa2
7 changed files with 239 additions and 364 deletions

View File

@ -1 +1 @@
Xerces-J-src.2.7.1.tar.gz Xerces-J-src.2.9.0.tar.gz

View File

@ -1,9 +1,10 @@
/* /*
* Copyright 2001-2005 The Apache Software Foundation. * Licensed to the Apache Software Foundation (ASF) under one or more
* * contributor license agreements. See the NOTICE file distributed with
* Licensed under the Apache License, Version 2.0 (the "License"); * this work for additional information regarding copyright ownership.
* you may not use this file except in compliance with the License. * The ASF licenses this file to You under the Apache License, Version 2.0
* You may obtain a copy of the License at * (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
@ -27,17 +28,16 @@ import java.util.Properties;
import java.util.Locale; import java.util.Locale;
/** /**
* The implementation of the javac compiler for IBM JDK 1.4 * The implementation of the javac compiler for JDK 1.4 and above
* *
* The purpose of this task is to diagnose whether we're * The purpose of this task is to diagnose whether we're
* running on an IBM 1.4 JVM; if we are, to * running on a 1.4 or above JVM; if we are, to
* set up the bootclasspath such that the build will * set up the bootclasspath such that the build will
* succeed; if we aren't, then invoke the Javac12 * succeed; if we aren't, then invoke the Javac12
* task. * task.
* *
* @author Neil Graham, IBM * @author Neil Graham, IBM
*/ */
public class XJavac extends Javac { public class XJavac extends Javac {
/** /**
@ -57,48 +57,19 @@ public class XJavac extends Javac {
} }
// this is supposed to be provided by all JVM's from time immemorial // this is supposed to be provided by all JVM's from time immemorial
String vendor = ((String)props.get("java.vendor")).toUpperCase(Locale.ENGLISH); String vendor = ((String)props.get("java.vendor")).toUpperCase(Locale.ENGLISH);
if(vendor.indexOf("IBM") >= 0){ if (vendor.indexOf("IBM") >= 0) {
// we're on an IBM 1.4; fiddle with the bootclasspath. // we're on an IBM 1.4 or higher; fiddle with the bootclasspath.
Path bcp = createBootclasspath(); setBootclasspath(createIBMJDKBootclasspath());
String javaHome = System.getProperty("java.home");
StringBuffer bcpMember = new StringBuffer();
bcpMember.append(javaHome).append("/lib/charsets.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/core.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/graphics.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/javaws.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/jaws.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/security.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/server.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/JawBridge.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/gskikm.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ibmjceprovider.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/indicim.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/jaccess.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ldapsec.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/oldcertpath.jar");
bcp.createPathElement().setPath(bcpMember.toString());
setBootclasspath(bcp);
} }
// need to do special things for Sun too and also // need to do special things for Sun too and also
// for Apple, HP and Blackdown: a Linux port of Sun Java // for Apple, HP, SableVM, Kaffe and Blackdown: a Linux port of Sun Java
else if( (vendor.indexOf("SUN") >= 0) || else if( (vendor.indexOf("SUN") >= 0) ||
(vendor.indexOf("BLACKDOWN") >= 0) || (vendor.indexOf("BLACKDOWN") >= 0) ||
(vendor.indexOf("APPLE") >= 0) || (vendor.indexOf("APPLE") >= 0) ||
(vendor.indexOf("HEWLETT-PACKARD") >= 0)) { (vendor.indexOf("HEWLETT-PACKARD") >= 0) ||
// we're on an SUN 1.4; fiddle with the bootclasspath. (vendor.indexOf("KAFFE") >= 0) ||
(vendor.indexOf("SABLE") >= 0)) {
// we're on an SUN 1.4 or higher; fiddle with the bootclasspath.
// since we can't eviscerate XML-related info here, // since we can't eviscerate XML-related info here,
// we must use the classpath // we must use the classpath
Path bcp = createBootclasspath(); Path bcp = createBootclasspath();
@ -115,6 +86,46 @@ public class XJavac extends Javac {
super.execute(); super.execute();
} }
/**
* Creates bootclasspath for IBM JDK 1.4 and above.
*/
private Path createIBMJDKBootclasspath() {
Path bcp = createBootclasspath();
String javaHome = System.getProperty("java.home");
StringBuffer bcpMember = new StringBuffer();
bcpMember.append(javaHome).append("/lib/charsets.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/core.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/vm.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/graphics.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/javaws.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/jaws.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/security.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/server.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/JawBridge.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/gskikm.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ibmjceprovider.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/indicim.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/jaccess.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/ldapsec.jar:");
bcp.createPathElement().setPath(bcpMember.toString());
bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/ext/oldcertpath.jar");
bcp.createPathElement().setPath(bcpMember.toString());
return bcp;
}
/** /**
* Checks whether the JDK version is 1.4 or higher. If it's not * Checks whether the JDK version is 1.4 or higher. If it's not
* JDK 1.4 we check whether we're on a future JDK by checking * JDK 1.4 we check whether we're on a future JDK by checking

View File

@ -1 +1 @@
487701cad13bcf87cec21ed2d782ca45 Xerces-J-src.2.7.1.tar.gz bd43e57ec7105acc9f13072e0208d445 Xerces-J-src.2.9.0.tar.gz

View File

@ -2,10 +2,10 @@ Manifest-Version: 1.0
Bundle-RequiredExecutionEnvironment: J2SE-1.2 Bundle-RequiredExecutionEnvironment: J2SE-1.2
Bundle-SymbolicName: org.apache.xerces Bundle-SymbolicName: org.apache.xerces
Bundle-ManifestVersion: 2 Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name.0 Bundle-Name: Apache Xerces-J
Bundle-Localization: plugin Bundle-Localization: plugin
Bundle-Version: 2.9.0.v200909240008 Bundle-Version: 2.9.0.v200909240008
Bundle-Vendor: %Bundle-Vendor.0 Bundle-Vendor: Apache Software Foundation
Require-Bundle: system.bundle,javax.xml;bundle-version="[1.3.4,2.0.0)" Require-Bundle: system.bundle,javax.xml;bundle-version="[1.3.4,2.0.0)"
;visibility:=reexport,org.apache.xml.resolver;bundle-version="[1.2.0, ;visibility:=reexport,org.apache.xml.resolver;bundle-version="[1.2.0,
2.0.0)";visibility:=reexport,org.apache.xml.serializer;bundle-version 2.0.0)";visibility:=reexport,org.apache.xml.serializer;bundle-version

View File

@ -1,25 +1,6 @@
--- build.xml.orig 2005-07-26 16:09:07.000000000 -0400 --- build.xml 2006-11-22 23:37:02.000000000 +0000
+++ build.xml 2006-08-11 17:57:09.000000000 -0400 +++ build.xml 2010-01-05 12:54:48.867006272 +0000
@@ -19,7 +19,8 @@ @@ -101,7 +101,6 @@
<project default="usage" basedir=".">
<!-- enable compilation under IBM JDK 1.4 -->
- <taskdef name="xjavac" classname="org.apache.xerces.util.XJavac"/>
+ <taskdef name="xjavac" classname="org.apache.xerces.util.XJavac"
+ classpath="./tools/bin/xjavac.jar"/>
<!-- Allow properties following these statements to be overridden -->
<!-- Note that all of these don't have to exist. They've just been defined
@@ -69,7 +70,7 @@
<property name="packages" value="org.*"/>
<property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
- <property name="doc.generator.package" value="${tools.dir}/stylebook-1.0-b2.jar"/>
+ <property name="doc.generator.package" value="./tools/stylebook-1.0-b2.jar"/>
<property name="build.dir" value="./build"/>
<property name="build.src" value="${build.dir}/src"/>
@@ -83,7 +84,6 @@
<property name="distsrc.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/> <property name="distsrc.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
<property name="disttools.dir" value="${build.dir}/tools"/> <property name="disttools.dir" value="${build.dir}/tools"/>
<property name="distbin.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/> <property name="distbin.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
@ -27,23 +8,23 @@
<filter token="year" value="${year}"/> <filter token="year" value="${year}"/>
<filter token="version" value="${parser.Version}"/> <filter token="version" value="${parser.Version}"/>
@@ -195,27 +195,6 @@ @@ -214,28 +213,6 @@
javax.xml.parsers.ConvertToURI.java">
</fileset> </fileset>
</copy> </copy>
-
- <!-- now deal with API's: --> - <!-- now deal with API's: -->
- <unzip src="${src.apis.zip}" dest="${build.src}"> - <unzip src="${src.apis.zip}" dest="${build.src}">
- <patternset - <patternset
- includes="org/xml/sax/** - includes="org/xml/sax/**
- javax/xml/** - javax/xml/**
- javax/xml/datatype/** - javax/xml/datatype/**
- javax/xml/namespace/** - javax/xml/namespace/**
- javax/xml/parsers/** - javax/xml/parsers/**
- javax/xml/transform/** - javax/xml/transform/**
- javax/xml/validation/** - javax/xml/validation/**
- javax/xml/xpath/** - javax/xml/xpath/**
- org/w3c/dom/* - org/w3c/dom/*
- org/w3c/dom/bootstrap/**
- org/w3c/dom/events/** - org/w3c/dom/events/**
- org/w3c/dom/html/** - org/w3c/dom/html/**
- org/w3c/dom/ls/** - org/w3c/dom/ls/**
@ -52,31 +33,11 @@
- org/w3c/dom/xpath/**" - org/w3c/dom/xpath/**"
- /> - />
- </unzip> - </unzip>
-
<!-- substitute tokens as needed --> <!-- substitute tokens as needed -->
<replace file="${build.dir}/src/org/apache/xerces/impl/Version.java" <replace file="${build.dir}/src/org/apache/xerces/impl/Version.java"
@@ -311,7 +290,7 @@ token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
</copy> @@ -1181,28 +1158,6 @@
<xjavac srcdir="${build.tests}"
destdir="${build.dest}"
- classpath="${tools.dir}/${jar.apis}:${build.dir}/classes:./tools/junit.jar"
+ classpath="${tools.dir}/${jar.apis}:${build.dir}/classes:${tools.dir}/junit.jar"
debug="${debug}"
includeAntRuntime="false"
includeJavaRuntime="true"/>
@@ -354,9 +333,10 @@
<target name="docs" depends="prepare, prepare-docs">
<echo message="Building docs for ${parser.Name} ${parser.Version} ..." />
<java fork="yes"
- classpath="${java.class.path}:${doc.generator.package}:./tools/xalan.jar"
+ classpath="${java.class.path}:${doc.generator.package}:${tools.dir}/xalan.jar"
classname="${doc.generator}"
failOnError="yes">
+ <jvmarg value="-Djava.awt.headless=true"/>
<arg value="targetDirectory=${build.docs}"/>
<arg value="${build.dir}/xdocs/docs-book.xml"/>
<arg value="${build.dir}/xdocs/style"/>
@@ -997,20 +977,6 @@
<replace file="${build.dir}/src/org/apache/xerces/parsers/AbstractSAXParser.java" <replace file="${build.dir}/src/org/apache/xerces/parsers/AbstractSAXParser.java"
token="return (fConfiguration instanceof XML11Configurable);" value="return false;"/> token="return (fConfiguration instanceof XML11Configurable);" value="return false;"/>
@ -84,16 +45,24 @@
- <unzip src="${src.apis.zip}" dest="${build.src}"> - <unzip src="${src.apis.zip}" dest="${build.src}">
- <patternset - <patternset
- includes="org/xml/sax/** - includes="org/xml/sax/**
- javax/xml/**
- javax/xml/datatype/**
- javax/xml/namespace/**
- javax/xml/parsers/** - javax/xml/parsers/**
- javax/xml/transform/**
- javax/xml/validation/**
- javax/xml/xpath/**
- org/w3c/dom/* - org/w3c/dom/*
- org/w3c/dom/bootstrap/**
- org/w3c/dom/events/** - org/w3c/dom/events/**
- org/w3c/dom/html/** - org/w3c/dom/html/**
- org/w3c/dom/ls/**
- org/w3c/dom/ranges/** - org/w3c/dom/ranges/**
- org/w3c/dom/traversal/**" - org/w3c/dom/traversal/**
- org/w3c/dom/xpath/**"
- /> - />
- </unzip> - </unzip>
- -
-
<!-- substitute tokens as needed --> <!-- substitute tokens as needed -->
<replace file="${build.dir}/src/org/apache/xerces/impl/Version.java" <replace file="${build.dir}/src/org/apache/xerces/impl/Version.java"
token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>

View File

@ -1,17 +0,0 @@
Also apply the xjavac classpath hack when running under libgcj.
http://issues.apache.org/bugzilla/show_bug.cgi?id=34551
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=152255
--- tools/org/apache/xerces/util/XJavac.java~ 2005-06-10 10:18:47 +0100
+++ tools/org/apache/xerces/util/XJavac.java 2005-06-10 11:14:35 +0100
@@ -97,7 +97,8 @@
else if( (vendor.indexOf("SUN") >= 0) ||
(vendor.indexOf("BLACKDOWN") >= 0) ||
(vendor.indexOf("APPLE") >= 0) ||
- (vendor.indexOf("HEWLETT-PACKARD") >= 0)) {
+ (vendor.indexOf("HEWLETT-PACKARD") >= 0) ||
+ (vendor.indexOf("FREE SOFTWARE FOUNDATION") >= 0)) {
// we're on an SUN 1.4; fiddle with the bootclasspath.
// since we can't eviscerate XML-related info here,
// we must use the classpath

View File

@ -1,108 +1,78 @@
# Copyright (c) 2000-2005, JPackage Project %global cvs_version 2_9_0
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
# distribution.
# 3. Neither the name of the JPackage Project nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#%define _with_gcj_support 1 Name: xerces-j2
Version: 2.9.0
Release: 1%{?dist}
Summary: Java XML parser
Group: Development/Libraries/Java
License: ASL 2.0
URL: http://xerces.apache.org/xerces2-j/
%define gcj_support %{?_with_gcj_support:1}%{!?_with_gcj_support:%{?_without_gcj_support:0}%{!?_without_gcj_support:%{?_gcj_support:%{_gcj_support}}%{!?_gcj_support:0}}} Source0: http://archive.apache.org/dist/xml/xerces-j/source/Xerces-J-src.%{version}.tar.gz
%define bootstrap %{?_with_bootstrap:1}%{!?_with_bootstrap:%{?_without_bootstrap:0}%{!?_without_bootstrap:%{?_bootstrap:%{_bootstrap}}%{!?_bootstrap:0}}} Source1: %{name}-version.sh
Source2: %{name}-constants.sh
%define cvs_version 2_7_1 # Custom javac ant task used by the build
Source3: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/XJavac.java
Name: xerces-j2 # Upstream's build doesn't generate an OSGi manifest
Version: 2.7.1 Source4: %{name}-MANIFEST.MF
Release: 12.3%{?dist}
Epoch: 0 # Patch the build so that it doesn't try to use bundled xml-commons source
Summary: Java XML parser Patch0: %{name}-build.patch
License: ASL 2.0
URL: http://xerces.apache.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Group: Text Processing/Markup/XML
Source0: http://archive.apache.org/dist/xml/xerces-j/Xerces-J-src.2.7.1.tar.gz BuildArch: noarch
Source1: %{name}-version.sh
Source2: %{name}-constants.sh BuildRequires: java-devel
Source3: XJavac.java BuildRequires: jpackage-utils
Source4: %{name}-MANIFEST.MF BuildRequires: xml-commons-apis >= 1.3
Patch0: %{name}-build.patch BuildRequires: xml-commons-resolver >= 1.1
Patch1: %{name}-libgcj.patch BuildRequires: ant
Obsoletes: xerces-j2-dom3 < %{epoch}:%{version}-%{release} BuildRequires: xalan-j2
Provides: jaxp_parser_impl BuildRequires: xml-stylebook
Provides: xerces-j2-dom3 = %{epoch}:%{version}-%{release} BuildRequires: jaxp_parser_impl
Requires: xml-commons-apis >= 0:1.3 Requires: java
Requires: xml-commons-resolver >= 1.1 Requires: jpackage-utils
BuildRequires: java-devel Requires: xml-commons-apis >= 1.3
BuildRequires: ant >= 0:1.6 Requires: xml-commons-resolver >= 1.1
BuildRequires: jpackage-utils >= 0:1.6
BuildRequires: jaxp_parser_impl Provides: jaxp_parser_impl
BuildRequires: xml-commons-resolver >= 0:1.1 Requires(post): chkconfig jaxp_parser_impl
BuildRequires: xml-commons-apis >= 0:1.3
%if ! %{bootstrap}
# xml-stylebook is not in Fedora yet
#BuildRequires: xml-stylebook
BuildRequires: xalan-j2
%endif
Requires(post): chkconfig jaxp_parser_impl
Requires(preun): chkconfig jaxp_parser_impl Requires(preun): chkconfig jaxp_parser_impl
%if ! %{gcj_support}
BuildArch: noarch
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if %{gcj_support}
BuildRequires: java-devel-gcj >= 1.5.0
Requires(post): java-gcj >= 1.5.0
Requires(postun): java-gcj >= 1.5.0
%endif
%description %description
Welcome to the future! Xerces2 is the next generation of high Welcome to the future! Xerces2 is the next generation of high performance,
performance, fully compliant XML parsers in the Apache Xerces family. fully compliant XML parsers in the Apache Xerces family. This new version of
This new version of Xerces introduces the Xerces Native Interface (XNI), Xerces introduces the Xerces Native Interface (XNI), a complete framework for
a complete framework for building parser components and configurations building parser components and configurations that is extremely modular and
that is extremely modular and easy to program. easy to program.
The Apache Xerces2 parser is the reference implementation of XNI but The Apache Xerces2 parser is the reference implementation of XNI but other
other parser components, configurations, and parsers can be written parser components, configurations, and parsers can be written using the Xerces
using the Xerces Native Interface. For complete design and Native Interface. For complete design and implementation documents, refer to
implementation documents, refer to the XNI Manual. the XNI Manual.
Xerces 2 is a fully conforming XML Schema processor. For more Xerces2 is a fully conforming XML Schema processor. For more information,
information, refer to the XML Schema page. refer to the XML Schema page.
Xerces 2 also provides a partial implementation of Document Object Model Xerces2 also provides a complete implementation of the Document Object Model
Level 3 Core, Load and Save and Abstract Schemas [deprecated] Working Level 3 Core and Load/Save W3C Recommendations and provides a complete
Drafts. For more information, refer to the DOM Level 3 Implementation implementation of the XML Inclusions (XInclude) W3C Recommendation. It also
page. provides support for OASIS XML Catalogs v1.1.
Xerces2 is able to parse documents written according 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
also handles namespaces according to the XML Namespaces 1.1 Recommendation,
and will correctly serialize XML 1.1 documents if the DOM level 3 load/save
APIs are in use.
%package javadoc-impl %package javadoc-impl
Summary: Javadoc for %{name} implementation Summary: Javadoc for %{name} implementation
Group: Development/Documentation Group: Development/Documentation
Requires: %{name} = %{version}-%{release}
%description javadoc-impl %description javadoc-impl
Javadoc for %{name} implementation. Javadoc for %{name} implementation.
@ -110,8 +80,7 @@ Javadoc for %{name} implementation.
%package javadoc-apis %package javadoc-apis
Summary: Javadoc for %{name} apis Summary: Javadoc for %{name} apis
Group: Development/Documentation Group: Development/Documentation
Obsoletes: xerces-j2-dom3-javadoc < %{epoch}:%{release}-%{version} Requires: %{name} = %{version}-%{release}
Provides: xerces-j2-dom3-javadoc = %{epoch}:%{release}-%{version}
%description javadoc-apis %description javadoc-apis
Javadoc for %{name} apis. Javadoc for %{name} apis.
@ -119,6 +88,7 @@ Javadoc for %{name} apis.
%package javadoc-xni %package javadoc-xni
Summary: Javadoc for %{name} xni Summary: Javadoc for %{name} xni
Group: Development/Documentation Group: Development/Documentation
Requires: %{name} = %{version}-%{release}
%description javadoc-xni %description javadoc-xni
Javadoc for %{name} xni. Javadoc for %{name} xni.
@ -126,23 +96,23 @@ Javadoc for %{name} xni.
%package javadoc-other %package javadoc-other
Summary: Javadoc for other %{name} components Summary: Javadoc for other %{name} components
Group: Development/Documentation Group: Development/Documentation
Requires: %{name} = %{version}-%{release}
%description javadoc-other %description javadoc-other
Javadoc for other %{name} components. Javadoc for other %{name} components.
%if ! %{gcj_support}
%package manual %package manual
Summary: Documents for %{name} Summary: Manual for %{name}
Group: Development/Documentation Group: Development/Documentation
Requires: %{name} = %{version}-%{release}
%description manual %description manual
%{summary}. Manual for %{name}.
%endif
%package demo %package demo
Summary: Demo for %{name} Summary: Demo for %{name}
Group: Development/Testing Group: Development/Testing
Requires: %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{version}-%{release}
%description demo %description demo
Demonstrations and samples for %{name}. Demonstrations and samples for %{name}.
@ -150,230 +120,172 @@ Demonstrations and samples for %{name}.
%package scripts %package scripts
Summary: Additional utility scripts for %{name} Summary: Additional utility scripts for %{name}
Group: Text Processing/Markup/XML Group: Text Processing/Markup/XML
Requires: %{name} = %{epoch}:%{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: jpackage-utils >= 0:1.6
%description scripts %description scripts
Additional utility scripts for %{name}. Additional utility scripts for %{name}.
%prep %prep
%setup -q -n xerces-%{cvs_version} %setup -q -n xerces-%{cvs_version}
%patch0 -b .build %patch0
# Copy the custom ant tasks into place
mkdir -p tools/org/apache/xerces/util mkdir -p tools/org/apache/xerces/util
cp -a %{SOURCE3} tools/org/apache/xerces/util cp -a %{SOURCE3} tools/org/apache/xerces/util
%patch1 -p0 -b .libgcj
%{__sed} -i 's/\r//' NOTICE # Make sure upstream hasn't sneaked in any jars we don't know about
JARS=""
for j in `find -name "*.jar"`; do
if [ ! -L $j ]; then
JARS="$JARS $j"
fi
done
if [ ! -z "$JARS" ]; then
echo "These jars should be deleted and symlinked to system jars: $JARS"
exit 1
fi
%build %build
# Build custom ant tasks and jar repository needed for main build
pushd tools pushd tools
javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java
mkdir bin && jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class mkdir bin && jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class
ln -sf $(build-classpath xml-commons-apis) . ln -sf $(build-classpath xml-commons-apis) .
ln -sf $(build-classpath xml-commons-resolver) . ln -sf $(build-classpath xml-commons-resolver) .
%if ! %{bootstrap} ln -sf $(build-classpath xml-stylebook) .
# Fedora does not have xml-stylebook yet ln -sf $(build-classpath xalan-j2) .
#ln -sf $(build-classpath xml-stylebook) .
ln -sf $(build-classpath xalan-j2) xalan.jar
%endif
popd popd
#%if ! %{gcj_support} # Build everything
# Fedora does not have xml-stylebook yet
#export CLASSPATH=$(build-classpath xml-stylebook):tools/bin/xjavac.jar:build/xercesImpl.jar
export CLASSPATH=tools/bin/xjavac.jar:build/xercesImpl.jar export CLASSPATH=tools/bin/xjavac.jar:build/xercesImpl.jar
export ANT_OPTS="-Xmx256m -Djava.endorsed.dirs=$(pwd)/tools -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true" export ANT_OPTS="-Xmx256m -Djava.endorsed.dirs=$(pwd)/tools -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true"
#%endif
%if %{bootstrap}
ant \
-Dbuild.compiler=modern \
-Dtools.dir=%{_javadir} \
-Djar.apis=xml-commons-apis.jar \
-Djar.resolver=xml-commons-resolver.jar \
clean jars javadocs
%else
%if ! %{gcj_support}
ant \ ant \
-Dbuild.compiler=modern \ -Dbuild.compiler=modern \
-Djar.apis=xml-commons-apis.jar \ -Djar.apis=xml-commons-apis.jar \
-Djar.resolver=xml-commons-resolver.jar \ -Djar.resolver=xml-commons-resolver.jar \
# -Ddoc.generator.package=./tools/xml-stylebook.jar \ -Djar.serializer=xalan-j2.jar \
clean jars javadocs docs sampjar -Ddoc.generator.package=tools/xml-stylebook.jar \
%else clean jars javadocs docs
ant \
-Dbuild.compiler=modern \
-Djar.apis=xml-commons-apis.jar \
-Djar.resolver=xml-commons-resolver.jar \
clean jars javadocs
%endif
%endif
%install # Inject OSGi manifest
rm -rf $RPM_BUILD_ROOT
# inject OSGi manifests
mkdir -p META-INF mkdir -p META-INF
cp -p %{SOURCE4} META-INF/MANIFEST.MF cp -p %{SOURCE4} META-INF/MANIFEST.MF
touch META-INF/MANIFEST.MF touch META-INF/MANIFEST.MF
zip -u build/xercesImpl.jar META-INF/MANIFEST.MF zip -u build/xercesImpl.jar META-INF/MANIFEST.MF
%install
rm -rf %{buildroot}
# jars # jars
mkdir -p $RPM_BUILD_ROOT%{_javadir} install -pD -T build/xercesImpl.jar %{buildroot}%{_javadir}/%{name}-%{version}.jar
cp -p build/xercesImpl.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar (cd %{buildroot}%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *.jar; do ln -sf ${jar} dom3-${jar}; done)
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
# javadoc # javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl-%{version} mkdir -p %{buildroot}%{_javadocdir}/%{name}-impl-%{version}
cp -pr build/docs/javadocs/xerces2/* \ cp -pr build/docs/javadocs/xerces2/* %{buildroot}%{_javadocdir}/%{name}-impl-%{version}
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl-%{version} (cd %{buildroot}%{_javadocdir} && ln -sf %{name}-impl-%{version} %{name}-impl)
ln -s %{name}-impl-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-impl
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis-%{version} mkdir -p %{buildroot}%{_javadocdir}/%{name}-apis-%{version}
cp -pr build/docs/javadocs/api/* \ cp -pr build/docs/javadocs/api/* %{buildroot}%{_javadocdir}/%{name}-apis-%{version}
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis-%{version} (cd %{buildroot}%{_javadocdir} && ln -sf %{name}-apis-%{version} %{name}-apis)
ln -s %{name}-apis-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-apis
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni-%{version} mkdir -p %{buildroot}%{_javadocdir}/%{name}-xni-%{version}
cp -pr build/docs/javadocs/xni/* \ cp -pr build/docs/javadocs/xni/* %{buildroot}%{_javadocdir}/%{name}-xni-%{version}
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni-%{version} (cd %{buildroot}%{_javadocdir} && ln -sf %{name}-xni-%{version} %{name}-xni)
ln -s %{name}-xni-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-xni
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-other-%{version} mkdir -p %{buildroot}%{_javadocdir}/%{name}-other-%{version}
cp -pr build/docs/javadocs/other/* \ cp -pr build/docs/javadocs/other/* %{buildroot}%{_javadocdir}/%{name}-other-%{version}
$RPM_BUILD_ROOT%{_javadocdir}/%{name}-other-%{version} (cd %{buildroot}%{_javadocdir} && ln -sf %{name}-other-%{version} %{name}-other)
ln -s %{name}-other-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}-other
rm -rf build/docs/javadocs rm -rf build/docs/javadocs
# manual # manual
%if ! %{gcj_support} && ! %{bootstrap} mkdir -p %{buildroot}%{_docdir}/%{name}-%{version}/manual
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} cp -pr build/docs/* %{buildroot}%{_docdir}/%{name}-%{version}/manual
cp -pr build/docs/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p ISSUES $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p LICENSE* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p NOTICE $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p README $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p STATUS $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
cp -p TODO $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
%endif # other docs
cp -p LICENSE README NOTICE %{buildroot}%{_docdir}/%{name}-%{version}
# scripts # scripts
mkdir -p $RPM_BUILD_ROOT%{_bindir} mkdir -p %{buildroot}%{_bindir}
cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}-version cp -p %{SOURCE1} %{buildroot}%{_bindir}/%{name}-version
cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}-constants cp -p %{SOURCE2} %{buildroot}%{_bindir}/%{name}-constants
chmod 755 %{buildroot}%{_bindir}/*
# demo # demo
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name} install -pD -T build/xercesSamples.jar %{buildroot}%{_datadir}/%{name}/%{name}-samples.jar
cp -p build/xercesSamples.jar \ cp -pr data %{buildroot}%{_datadir}/%{name}
$RPM_BUILD_ROOT%{_datadir}/%{name}/%{name}-samples.jar
cp -pr data $RPM_BUILD_ROOT%{_datadir}/%{name}
# jaxp_parser_impl ghost symlink # jaxp_parser_impl ghost symlink
ln -s %{_sysconfdir}/alternatives \ ln -s %{_sysconfdir}/alternatives \
$RPM_BUILD_ROOT%{_javadir}/jaxp_parser_impl.jar %{buildroot}%{_javadir}/jaxp_parser_impl.jar
%if %{gcj_support}
%{_bindir}/aot-compile-rpm
%endif
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf %{buildroot}
%post %post
update-alternatives --install %{_javadir}/jaxp_parser_impl.jar \ update-alternatives --install %{_javadir}/jaxp_parser_impl.jar \
jaxp_parser_impl %{_javadir}/%{name}.jar 40 jaxp_parser_impl %{_javadir}/%{name}.jar 40
%if %{gcj_support}
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%preun %preun
{ {
[ $1 = 0 ] || exit 0 [ $1 = 0 ] || exit 0
update-alternatives --remove jaxp_parser_impl %{_javadir}/%{name}.jar update-alternatives --remove jaxp_parser_impl %{_javadir}/%{name}.jar
} >/dev/null 2>&1 || : } >/dev/null 2>&1 || :
%if %{gcj_support}
%postun
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%if %{gcj_support}
%post demo
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%if %{gcj_support}
%postun demo
if [ -x %{_bindir}/rebuild-gcj-db ]
then
%{_bindir}/rebuild-gcj-db
fi
%endif
%files %files
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc [A-Z]* %dir %{_docdir}/%{name}-%{version}
%{_javadir}/%{name}*.jar %doc %{_docdir}/%{name}-%{version}/LICENSE
%{_javadir}/dom3-%{name}*.jar %doc %{_docdir}/%{name}-%{version}/NOTICE
%doc %{_docdir}/%{name}-%{version}/README
%{_javadir}/%{name}*
%ghost %{_javadir}/jaxp_parser_impl.jar %ghost %{_javadir}/jaxp_parser_impl.jar
%if %{gcj_support}
%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-%{version}.jar.*
%endif
%files javadoc-impl %files javadoc-impl
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}-impl-%{version} %{_javadocdir}/%{name}-impl-%{version}
%doc %{_javadocdir}/%{name}-impl %{_javadocdir}/%{name}-impl
%files javadoc-apis %files javadoc-apis
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}-apis-%{version} %{_javadocdir}/%{name}-apis-%{version}
%doc %{_javadocdir}/%{name}-apis %{_javadocdir}/%{name}-apis
%files javadoc-other %files javadoc-other
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}-other-%{version} %{_javadocdir}/%{name}-other-%{version}
%doc %{_javadocdir}/%{name}-other %{_javadocdir}/%{name}-other
%files javadoc-xni %files javadoc-xni
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc %{_javadocdir}/%{name}-xni-%{version} %{_javadocdir}/%{name}-xni-%{version}
%doc %{_javadocdir}/%{name}-xni %{_javadocdir}/%{name}-xni
%if ! %{gcj_support}
%files manual %files manual
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%doc %{_docdir}/%{name}-%{version}/[a-z]* %dir %{_docdir}/%{name}-%{version}
%endif %{_docdir}/%{name}-%{version}/manual
%files demo %files demo
%defattr(0644,root,root,0755) %defattr(-,root,root,-)
%{_datadir}/%{name} %{_datadir}/%{name}
%if %{gcj_support}
%attr(-,root,root) %{_libdir}/gcj/%{name}/%{name}-samples.jar.*
%endif
%files scripts %files scripts
%defattr(0755,root,root,0755) %defattr(-,root,root,-)
%{_bindir}/* %{_bindir}/*
%changelog %changelog
* Tue Jan 5 2010 Mat Booth <fedora@matbooth.co.uk> - 2.9.0-1
- Update to 2.9.0: This is the version Eclipse expects, previously the OSGi
manifest was lying about its version :-o
- Enable manual sub-package now xml-stylebook is in Fedora.
- Drop GCJ support.
- Minor changes to spec to make it more conforming to the guidelines.
- Drop the libgcj patch, we don't seem to need it anymore.
- Add the OSGi manifest as part of the build instead of the install.
- Fix packaging bug RHBZ #472646.
* Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.7.1-12.3 * Mon Jul 27 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.7.1-12.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
@ -383,7 +295,7 @@ fi
* Fri Jan 30 2009 Alexander Kurtakov <akurtako@redhat.com> 0:2.7.1-10.3 * Fri Jan 30 2009 Alexander Kurtakov <akurtako@redhat.com> 0:2.7.1-10.3
- Add osgi manifest. - Add osgi manifest.
* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0:2.7.1-10.2 * Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0:2.7.1-10.212.3
- drop repotag - drop repotag
- fix license tag - fix license tag