diff --git a/.xerces-j2.metadata b/.xerces-j2.metadata new file mode 100644 index 0000000..8094b9f --- /dev/null +++ b/.xerces-j2.metadata @@ -0,0 +1 @@ +c57f0251ce9246c6026aa9f92241f37108f7141f SOURCES/Xerces-J-src.2.11.0.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/ExperimentalTaglet.java b/SOURCES/ExperimentalTaglet.java new file mode 100644 index 0000000..d3350fc --- /dev/null +++ b/SOURCES/ExperimentalTaglet.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.xerces.util; + +import java.util.Map; + +import com.sun.javadoc.Tag; +import com.sun.tools.doclets.Taglet; + +/** + * This class provides support for a 'xerces.experimental' tag + * in javadoc comments. The tag creates a warning in the generated + * html for users. + * + * @author Ankit Pasricha, IBM + */ +public class ExperimentalTaglet implements Taglet { + + private static final String NAME = "xerces.experimental"; + private static final String HEADER = "EXPERIMENTAL:"; + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inConstructor() + */ + public boolean inConstructor() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inField() + */ + public boolean inField() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inMethod() + */ + public boolean inMethod() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inOverview() + */ + public boolean inOverview() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inPackage() + */ + public boolean inPackage() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inType() + */ + public boolean inType() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#isInlineTag() + */ + public boolean isInlineTag() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#getName() + */ + public String getName() { + return NAME; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag) + */ + public String toString(Tag arg0) { + return "

" + HEADER + "

" + + "This class should not be considered stable. It is likely to be altered or replaced in the future.
" + + "" + arg0.text() + "
\n"; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag[]) + */ + public String toString(Tag[] tags) { + if (tags.length == 0) { + return null; + } + String result = "\n

" + HEADER + "

"; + result += "This class should not be considered stable. It is likely to be altered or replaced in the future."; + result += ""; + for (int i = 0; i < tags.length; i++) { + result += "
"; + result += tags[i].text(); + } + return result + "
\n"; + } + + /** + * Register this Taglet. + * @param tagletMap the map to register this tag to. + */ + public static void register(Map tagletMap) { + ExperimentalTaglet tag = new ExperimentalTaglet(); + Taglet t = (Taglet) tagletMap.get(tag.getName()); + if (t != null) { + tagletMap.remove(tag.getName()); + } + tagletMap.put(tag.getName(), tag); + } + +} diff --git a/SOURCES/InternalTaglet.java b/SOURCES/InternalTaglet.java new file mode 100644 index 0000000..54a5ca7 --- /dev/null +++ b/SOURCES/InternalTaglet.java @@ -0,0 +1,131 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.xerces.util; + +import java.util.Map; + +import com.sun.javadoc.Tag; +import com.sun.tools.doclets.Taglet; + +/** + * This class provides support for a 'xerces.internal' tag + * in javadoc comments. The tag creates a warning in the generated + * html for users. + * + * @author Ankit Pasricha, IBM + */ +public class InternalTaglet implements Taglet { + + private static final String NAME = "xerces.internal"; + private static final String HEADER = "INTERNAL:"; + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inConstructor() + */ + public boolean inConstructor() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inField() + */ + public boolean inField() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inMethod() + */ + public boolean inMethod() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inOverview() + */ + public boolean inOverview() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inPackage() + */ + public boolean inPackage() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#inType() + */ + public boolean inType() { + return true; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#isInlineTag() + */ + public boolean isInlineTag() { + return false; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#getName() + */ + public String getName() { + return NAME; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag) + */ + public String toString(Tag arg0) { + return "

" + HEADER + "

" + + "Usage of this class is not supported. It may be altered or removed at any time.
" + + "" + arg0.text() + "
\n"; + } + + /* (non-Javadoc) + * @see com.sun.tools.doclets.Taglet#toString(com.sun.javadoc.Tag[]) + */ + public String toString(Tag[] tags) { + if (tags.length == 0) { + return null; + } + String result = "\n

" + HEADER + "

"; + result += "Usage of this class is not supported. It may be altered or removed at any time."; + result += ""; + for (int i = 0; i < tags.length; i++) { + result += "
"; + result += tags[i].text(); + } + return result + "
\n"; + } + + /** + * Register this Taglet. + * @param tagletMap the map to register this tag to. + */ + public static void register(Map tagletMap) { + InternalTaglet tag = new InternalTaglet(); + Taglet t = (Taglet) tagletMap.get(tag.getName()); + if (t != null) { + tagletMap.remove(tag.getName()); + } + tagletMap.put(tag.getName(), tag); + } + +} diff --git a/SOURCES/XJavac.java b/SOURCES/XJavac.java new file mode 100644 index 0000000..72d10d7 --- /dev/null +++ b/SOURCES/XJavac.java @@ -0,0 +1,151 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (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 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.xerces.util; + +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.types.Path; +import org.apache.tools.ant.util.JavaEnvUtils; +import org.apache.tools.ant.taskdefs.Javac; + +import java.lang.StringBuffer; +import java.util.Properties; +import java.util.Locale; + +/** + * The implementation of the javac compiler for JDK 1.4 and above + * + * The purpose of this task is to diagnose whether we're + * running on a 1.4 or above JVM; if we are, to + * set up the bootclasspath such that the build will + * succeed; if we aren't, then invoke the Javac12 + * task. + * + * @author Neil Graham, IBM + */ +public class XJavac extends Javac { + + /** + * Run the compilation. + * + * @exception BuildException if the compilation has problems. + */ + public void execute() throws BuildException { + if(isJDK14OrHigher()) { + // maybe the right one; check vendor: + // by checking system properties: + Properties props = null; + try { + props = System.getProperties(); + } catch (Exception e) { + throw new BuildException("unable to determine java vendor because could not access system properties!"); + } + // this is supposed to be provided by all JVM's from time immemorial + String vendor = ((String)props.get("java.vendor")).toUpperCase(Locale.ENGLISH); + if (vendor.indexOf("IBM") >= 0) { + // we're on an IBM 1.4 or higher; fiddle with the bootclasspath. + setBootclasspath(createIBMJDKBootclasspath()); + } + // need to do special things for Sun too and also + // for Apple, HP, FreeBSD, SableVM, Kaffe and Blackdown: a Linux port of Sun Java + else if( (vendor.indexOf("SUN") >= 0) || + (vendor.indexOf("BLACKDOWN") >= 0) || + (vendor.indexOf("APPLE") >= 0) || + (vendor.indexOf("HEWLETT-PACKARD") >= 0) || + (vendor.indexOf("KAFFE") >= 0) || + (vendor.indexOf("SABLE") >= 0) || + (vendor.indexOf("FREEBSD") >= 0)) { + // we're on an SUN 1.4 or higher; fiddle with the bootclasspath. + // since we can't eviscerate XML-related info here, + // we must use the classpath + Path bcp = createBootclasspath(); + Path clPath = getClasspath(); + bcp.append(clPath); + String currBCP = (String)props.get("sun.boot.class.path"); + Path currBCPath = new Path(null); + currBCPath.createPathElement().setPath(currBCP); + bcp.append(currBCPath); + setBootclasspath(bcp); + } + } + // now just do the normal thing: + 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/java.util.jar:"); + bcp.createPathElement().setPath(bcpMember.toString()); + bcpMember.replace(javaHome.length(), bcpMember.length(), "/lib/rt.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 + * JDK 1.4 we check whether we're on a future JDK by checking + * that we're not on JDKs 1.0, 1.1, 1.2 or 1.3. This check by + * exclusion should future proof this task from new versions of + * Ant which are aware of higher JDK versions. + * + * @return true if the JDK version is 1.4 or higher. + */ + private boolean isJDK14OrHigher() { + final String version = JavaEnvUtils.getJavaVersion(); + return version.equals(JavaEnvUtils.JAVA_1_4) || + (!version.equals(JavaEnvUtils.JAVA_1_3) && + !version.equals(JavaEnvUtils.JAVA_1_2) && + !version.equals(JavaEnvUtils.JAVA_1_1) && + !version.equals(JavaEnvUtils.JAVA_1_0)); + } +} diff --git a/SOURCES/xerces-j2-build.patch b/SOURCES/xerces-j2-build.patch new file mode 100644 index 0000000..dde254c --- /dev/null +++ b/SOURCES/xerces-j2-build.patch @@ -0,0 +1,72 @@ +--- build.xml.orig 2010-11-26 20:42:11.000000000 +0000 ++++ build.xml 2010-12-11 19:20:35.913500731 +0000 +@@ -108,7 +108,6 @@ + + + +- + + + +@@ -247,30 +246,6 @@ + + +- +- +- +- +- + + +@@ -1231,30 +1206,6 @@ + + +- +- +- +- +- + + + diff --git a/SOURCES/xerces-j2-constants.1 b/SOURCES/xerces-j2-constants.1 new file mode 100644 index 0000000..86c7e54 --- /dev/null +++ b/SOURCES/xerces-j2-constants.1 @@ -0,0 +1,12 @@ +.TH XERCES-J2-CONSTANTS 1 "08 April 2013" "xerces-2.11.0" "User commands" + +.SH NAME +xerces-j2-constants \- display constants used by Xerces2 Java Parser + +.SH SYNOPSIS +.BR xerces-j2-constants + +.SH DESCRIPTION + +Xerces-J2-Constants dumps common constants used by Xerces2 Java Parser +to standard output. diff --git a/SOURCES/xerces-j2-constants.sh b/SOURCES/xerces-j2-constants.sh new file mode 100644 index 0000000..e722360 --- /dev/null +++ b/SOURCES/xerces-j2-constants.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Xerces-J2 constants script +# JPackage Project (http://www.jpackage.org/) +# $Id: xerces-j2-constants.sh,v 1.3 2005/05/26 14:21:22 gbenson Exp $ + +# Source functions library +. /usr/share/java-utils/java-functions + +# Configuration +MAIN_CLASS=org.apache.xerces.impl.Constants + +# Set parameters +set_jvm +export CLASSPATH=$(build-classpath xerces-j2) +set_flags $BASE_FLAGS +set_options $BASE_OPTIONS + +# Let's start +run "$@" diff --git a/SOURCES/xerces-j2-manifest.patch b/SOURCES/xerces-j2-manifest.patch new file mode 100644 index 0000000..524e8ec --- /dev/null +++ b/SOURCES/xerces-j2-manifest.patch @@ -0,0 +1,17 @@ +--- src/manifest.xerces.orig 2010-11-26 22:42:07.000000000 +0200 ++++ src/manifest.xerces 2012-12-17 11:11:52.200392844 +0200 +@@ -1,5 +1,14 @@ + Manifest-Version: 1.0 + Created-By: @java.version@ (@java.vendor@) ++Bundle-RequiredExecutionEnvironment: J2SE-1.5 ++Bundle-SymbolicName: org.apache.xerces ++Bundle-ManifestVersion: 2 ++Bundle-Name: @impl.name@ ++Bundle-Localization: plugin ++Bundle-Version: @impl.version@ ++Bundle-Vendor: Apache Software Foundation ++Require-Bundle: system.bundle,javax.xml;visibility:=reexport, org.apache.xml.resolver;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,org.apache.xml.serializer;bundle-version="[2.7.1,3.0.0)" ++Export-Package: META-INF.services;version="@impl.version@",org.apache.html.dom;version="@impl.version@",org.apache.wml;version="@impl.version@",org.apache.wml.dom;version="@impl.version@",org.apache.xerces.dom;version="@impl.version@",org.apache.xerces.dom.events;version="@impl.version@",org.apache.xerces.dom3.as;version="@impl.version@",org.apache.xerces.impl;version="@impl.version@",org.apache.xerces.impl.dtd;version="@impl.version@",org.apache.xerces.impl.dtd.models;version="@impl.version@",org.apache.xerces.impl.dv;version="@impl.version@",org.apache.xerces.impl.dv.dtd;version="@impl.version@",org.apache.xerces.impl.dv.util;version="@impl.version@",org.apache.xerces.impl.dv.xs;version="@impl.version@",org.apache.xerces.impl.io;version="@impl.version@",org.apache.xerces.impl.msg;version="@impl.version@",org.apache.xerces.impl.validation;version="@impl.version@",org.apache.xerces.impl.xpath;version="@impl.version@",org.apache.xerces.impl.xpath.regex;version="@impl.version@",org.apache.xerces.impl.xs;version="@impl.version@",org.apache.xerces.impl.xs.identity;version="@impl.version@",org.apache.xerces.impl.xs.models;version="@impl.version@",org.apache.xerces.impl.xs.opti;version="@impl.version@",org.apache.xerces.impl.xs.traversers;version="@impl.version@",org.apache.xerces.impl.xs.util;version="@impl.version@",org.apache.xerces.jaxp;version="@impl.version@",org.apache.xerces.jaxp.datatype;version="@impl.version@",org.apache.xerces.jaxp.validation;version="@impl.version@",org.apache.xerces.parsers;version="@impl.version@",org.apache.xerces.stax;version="@impl.version@",org.apache.xerces.stax.events;version="@impl.version@",org.apache.xerces.util;version="@impl.version@",org.apache.xerces.xinclude;version="@impl.version@",org.apache.xerces.xni;version="@impl.version@",org.apache.xerces.xni.grammars;version="@impl.version@",org.apache.xerces.xni.parser;version="@impl.version@",org.apache.xerces.xpointer;version="@impl.version@",org.apache.xerces.xs;version="@impl.version@",org.apache.xerces.xs.datatypes;version="@impl.version@",org.apache.xml.serialize;version="@impl.version@",org.w3c.dom.html;version="@impl.version@" + + Name: org/apache/xerces/impl/Version.class + Comment: @impl.name@ diff --git a/SOURCES/xerces-j2-pom.xml b/SOURCES/xerces-j2-pom.xml new file mode 100644 index 0000000..e4a3c72 --- /dev/null +++ b/SOURCES/xerces-j2-pom.xml @@ -0,0 +1,48 @@ + + + + 4.0.0 + + org.apache + apache + 4 + + + xerces + xercesImpl + 2.11.0 + Xerces2 Java Parser + + 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. + + + http://xerces.apache.org/xerces2-j + + + + xml-apis + xml-apis + 1.4.01 + + + + xml-resolver + xml-resolver + 1.2 + true + + + + + + + src + + + \ No newline at end of file diff --git a/SOURCES/xerces-j2-version.1 b/SOURCES/xerces-j2-version.1 new file mode 100644 index 0000000..bccee19 --- /dev/null +++ b/SOURCES/xerces-j2-version.1 @@ -0,0 +1,12 @@ +.TH XERCES-J2-VERSION 1 "08 April 2013" "xerces-2.11.0" "User commands" + +.SH NAME +xerces-j2-version \- display version of Xerces2 Java Parser + +.SH SYNOPSIS +.BR xerces-j2-version + +.SH DESCRIPTION + +Xerces-J2-Version prints version of Xerces2 Java Parser to standard +output. diff --git a/SOURCES/xerces-j2-version.sh b/SOURCES/xerces-j2-version.sh new file mode 100644 index 0000000..bd5e7c2 --- /dev/null +++ b/SOURCES/xerces-j2-version.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# +# Xerces-J2 version script +# JPackage Project (http://www.jpackage.org/) +# $Id: xerces-j2-version.sh,v 1.3 2005/05/26 14:21:22 gbenson Exp $ + +# Source functions library +. /usr/share/java-utils/java-functions + +# Configuration +MAIN_CLASS=org.apache.xerces.impl.Version + +# Set parameters +set_jvm +export CLASSPATH=$(build-classpath xerces-j2) +set_flags $BASE_FLAGS +set_options $BASE_OPTIONS + +# Let's start +run "$@" diff --git a/SPECS/xerces-j2.spec b/SPECS/xerces-j2.spec new file mode 100644 index 0000000..5376e88 --- /dev/null +++ b/SPECS/xerces-j2.spec @@ -0,0 +1,459 @@ +%global cvs_version 2_11_0 + +%define __requires_exclude system.bundle + +Name: xerces-j2 +Version: 2.11.0 +Release: 15%{?dist} +Summary: Java XML parser +Group: Development/Libraries +License: ASL 2.0 +URL: http://xerces.apache.org/xerces2-j/ + +Source0: http://mirror.ox.ac.uk/sites/rsync.apache.org/xerces/j/source/Xerces-J-src.%{version}.tar.gz +Source1: %{name}-version.sh +Source2: %{name}-constants.sh +Source11: %{name}-version.1 +Source12: %{name}-constants.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 + +# Custom doclet tags used in javadocs +Source5: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/ExperimentalTaglet.java +Source6: https://svn.apache.org/repos/asf/xerces/java/tags/Xerces-J_%{cvs_version}/tools/src/InternalTaglet.java + +Source7: %{name}-pom.xml + +# Patch the build so that it doesn't try to use bundled xml-commons source +Patch0: %{name}-build.patch + +# Patch the manifest so that it includes OSGi stuff +Patch1: %{name}-manifest.patch + +BuildArch: noarch + +BuildRequires: java-devel >= 1:1.6.0 +BuildRequires: jpackage-utils +BuildRequires: xalan-j2 >= 2.7.1 +BuildRequires: xml-commons-apis >= 1.4.01 +BuildRequires: xml-commons-resolver >= 1.2 +BuildRequires: ant +BuildRequires: jaxp_parser_impl +BuildRequires: dejavu-sans-fonts +Requires: java +Requires: jpackage-utils +Requires: xalan-j2 >= 2.7.1 +Requires: xml-commons-apis >= 1.4.01 +Requires: xml-commons-resolver >= 1.2 + +Provides: jaxp_parser_impl = 1.4 +Provides: %{name}-scripts = %{version}-%{release} +Obsoletes: %{name}-scripts < 2.11.0-6 + +Requires(post): chkconfig jaxp_parser_impl +Requires(preun): chkconfig jaxp_parser_impl + +# This documentation is provided by xml-commons-apis +Obsoletes: %{name}-javadoc-apis < %{version}-%{release} + +# http://mail-archives.apache.org/mod_mbox/xerces-j-dev/201008.mbox/%3COF8D7E2F83.0271A181-ON8525777F.00528302-8525777F.0054BBE0@ca.ibm.com%3E +Obsoletes: %{name}-manual < %{version}-%{release} + +%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. + +Xerces2 is a fully conforming XML Schema processor. For more information, +refer to the XML Schema page. + +Xerces2 also provides a complete implementation of the Document Object Model +Level 3 Core and Load/Save W3C Recommendations and provides a complete +implementation of the XML Inclusions (XInclude) W3C Recommendation. It also +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 name spaces 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 +Summary: Javadocs for %{name} +Group: Documentation +Requires: jpackage-utils + +# Consolidating all javadocs into one package +Obsoletes: %{name}-javadoc-impl < %{version}-%{release} +Obsoletes: %{name}-javadoc-xs < %{version}-%{release} +Obsoletes: %{name}-javadoc-xni < %{version}-%{release} +Obsoletes: %{name}-javadoc-other < %{version}-%{release} + +%description javadoc +This package contains the API documentation for %{name}. + +%package demo +Summary: Demonstrations and samples for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description demo +%{summary}. + +%prep +%setup -q -n xerces-%{cvs_version} +%patch0 -p0 -b .orig +%patch1 -p0 -b .orig + +# Copy the custom ant tasks into place +mkdir -p tools/org/apache/xerces/util +mkdir -p tools/bin +cp -a %{SOURCE3} %{SOURCE5} %{SOURCE6} tools/org/apache/xerces/util + +# Make sure upstream hasn't sneaked in any jars we don't know about +find -name '*.class' -exec rm -f '{}' \; +find -name '*.jar' -exec rm -f '{}' \; + +sed -i 's/\r//' LICENSE README NOTICE + +%build +pushd tools + +# Build custom ant tasks +javac -classpath $(build-classpath ant) org/apache/xerces/util/XJavac.java +jar cf bin/xjavac.jar org/apache/xerces/util/XJavac.class + +# Build custom doc taglets +javac -classpath /usr/lib/jvm/java/lib/tools.jar org/apache/xerces/util/*Taglet.java +jar cf bin/xerces2taglets.jar org/apache/xerces/util/*Taglet.class + +ln -sf $(build-classpath xalan-j2) 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.endorsed.dirs=$(pwd)/tools -Djava.awt.headless=true -Dbuild.sysclasspath=first -Ddisconnected=true" +ant -Djavac.source=1.5 -Djavac.target=1.5 \ + -Dbuild.compiler=modern \ + clean jars javadocs + +%install +# jars +install -pD -T build/xercesImpl.jar %{buildroot}%{_javadir}/%{name}.jar + +# 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 + +# 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 %{SOURCE11} %{buildroot}%{_mandir}/man1 +install -p -m 644 %{SOURCE12} %{buildroot}%{_mandir}/man1 + +# demo +install -pD -T build/xercesSamples.jar %{buildroot}%{_datadir}/%{name}/%{name}-samples.jar +cp -pr data %{buildroot}%{_datadir}/%{name} + +# Pom +install -pD -T -m 644 %{SOURCE7} %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom + +# Depmap with legacy depmaps for compatability +%add_maven_depmap JPP-%{name}.pom %{name}.jar -a "xerces:xerces" -a "xerces:xmlParserAPIs" + +# jaxp_parser_impl ghost symlink +ln -s %{_sysconfdir}/alternatives \ + %{buildroot}%{_javadir}/jaxp_parser_impl.jar + +%post +update-alternatives --install %{_javadir}/jaxp_parser_impl.jar \ + jaxp_parser_impl %{_javadir}/%{name}.jar 40 + +%preun +{ + [ $1 = 0 ] || exit 0 + update-alternatives --remove jaxp_parser_impl %{_javadir}/%{name}.jar +} >/dev/null 2>&1 || : + +%files +%doc LICENSE NOTICE README +%{_mavendepmapfragdir}/* +%{_mavenpomdir}/* +%{_javadir}/%{name}* +%{_bindir}/* +%{_mandir}/*/* +%ghost %{_javadir}/jaxp_parser_impl.jar + +%files javadoc +%{_javadocdir}/%{name}/impl +%{_javadocdir}/%{name}/xs +%{_javadocdir}/%{name}/xni +%{_javadocdir}/%{name}/other + +%files demo +%defattr(-,root,root,-) +%{_datadir}/%{name} + +%changelog +* Fri Jun 28 2013 Mikolaj Izdebski - 2.11.0-15 +- Rebuild to regenerate API documentation +- Resolves: CVE-2013-1571 + +* Mon May 20 2013 Krzysztof Daniel 2.11.0-13 +- Add reexoport to javax.xml. + +* Mon Apr 8 2013 Mikolaj Izdebski - 2.11.0-13 +- Add manual pages + +* Fri Feb 15 2013 Fedora Release Engineering - 2.11.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Dec 17 2012 Alexander Kurtakov 2.11.0-11 +- Really restore dependencies. + +* Tue Dec 11 2012 Krzysztof Daniel 2.11.0-10 +- Restored dependencies to system.bundle and javax.xml. + +* Tue Sep 25 2012 Krzysztof Daniel 2.11.0-9 +- Remove javax.xml from required bundles. They are provided by JVM. + +* Sun Jul 22 2012 Fedora Release Engineering - 2.11.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Apr 18 2012 Krzysztof Daniel 2.11.0-7 +- Updated OSGi MANIFEST.MF to import javax.xml + +* Thu Mar 08 2012 Andrew Overholt - 2.11.0-6 +- Remove system.bundle OSGi requirement from MANIFEST.MF +- Fold -scripts sub-package into main + +* Tue Mar 06 2012 Marek Goldmann - 2.11.0-5 +- Use non-versioned jar name, RHBZ#800463 +- Cleanup in spec file to follow new guidelines +- Consolidated javadocs packages +- Removed manual subpackage because of stylebook issues, see comment on obsolete + +* Sat Jan 14 2012 Fedora Release Engineering - 2.11.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Feb 07 2011 Fedora Release Engineering - 2.11.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 13 2010 Mat Booth 2.11.0-2 +- Install maven pom and depmap. + +* Sat Dec 11 2010 Mat Booth - 2.11.0-1 +- Update to latest upstream version. +- Provide JAXP 1.4. +- Fix some minor rpmlint warnings. +- Add dep on xalan-j2. +- Fix javadoc taglets. + +* Sat Jun 12 2010 Mat Booth - 2.9.0-4 +- Fix broken links in manual and fix javadoc requires. +- Build 1.5 bytecode instead of 1.6, for compatibility. + +* Fri Jan 22 2010 Andrew Overholt - 2.9.0-3 +- Fix unversioned Provides for jaxp_parser_impl (make it 1.3). + +* Thu Jan 14 2010 Mat Booth - 2.9.0-2 +- Add a build dep on a font package because the JDK is missing a dependency + to function correctly in headless mode. See RHBZ #478480 and #521523. +- Fix groups. + +* Tue Jan 5 2010 Mat Booth - 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 - 0:2.7.1-12.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Feb 26 2009 Fedora Release Engineering - 0:2.7.1-11.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 30 2009 Alexander Kurtakov 0:2.7.1-10.3 +- Add osgi manifest. + +* Thu Jul 10 2008 Tom "spot" Callaway - 0:2.7.1-10.2 +- drop repotag +- fix license tag + +* Tue Feb 19 2008 Fedora Release Engineering - 0:2.7.1-10jpp.1 +- Autorebuild for GCC 4.3 + +* Wed Mar 28 2007 Matt Wringe 0:2.7.1-9jpp.1 +- Update with newest jpp version +- Clean up spec file for Fedora Review + +* Sun Aug 13 2006 Warren Togami 0:2.7.1-7jpp.2 +- fix typo in preun req + +* Sat Aug 12 2006 Matt Wringe 0:2.7.1-7jpp.1 +- Merge with upstream version + +* Sat Aug 12 2006 Matt Wringe 0:2.7.1-7jpp +- Add conditional native compiling +- Add missing requires for javadocs +- Add missing requires for post and preun +- Update version to 7jpp at Fedora's request + +* Sat Jul 22 2006 Jakub Jelinek - 0:2.7.1-6jpp_9fc +- Rebuilt + +* Wed Jul 12 2006 Jesse Keating - 0:2.7.1-6jpp_8fc +- rebuild + +* Thu Mar 30 2006 Fernando Nasser 0:2.7.1-3jpp +- Add missing BR for xml-stylebook + +* Wed Mar 22 2006 Ralph Apel 0:2.7.1-2jpp +- First JPP-1.7 release +- use tools subdir and give it as java.endorsed.dirs (for java-1.4.2-bea e.g.) + +* Mon Mar 6 2006 Jeremy Katz - 0:2.7.1-6jpp_7fc +- stop scriptlet spew + +* Wed Feb 22 2006 Rafael Schloming - 0:2.7.1-6jpp_6fc +- Updated to 2.7.1 + +* Fri Feb 10 2006 Jesse Keating - 0:2.6.2-6jpp_5fc +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 0:2.6.2-6jpp_4fc +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Feb 2 2006 Archit Shah 0:2.6.2-6jpp_3fc +- build xerces without using native code + +* Mon Jan 9 2006 Archit Shah 0:2.6.2-6jpp_2fc +- rebuilt for new gcj + +* Wed Dec 21 2005 Jesse Keating 0:2.6.2-6jpp_1fc +- rebuilt for new gcj + +* Tue Dec 13 2005 Jesse Keating +- rebuilt for new gcj + +* Fri Oct 07 2005 Ralph Apel 0:2.7.1-1jpp +- Upgrade to 2.7.1 + +* Thu Jul 21 2005 Ralph Apel 0:2.6.2-7jpp +- Include target jars-dom3 +- Create new subpackage dom3 + +* Mon Jul 18 2005 Gary Benson 0:2.6.2-5jpp_2fc +- Build on ia64, ppc64, s390 and s390x. +- Switch to aot-compile-rpm (also BC-compiles samples). + +* Wed Jul 13 2005 Gary Benson 0:2.6.2-6jpp +- Build with Sun JDK (from ). + +* Wed Jun 15 2005 Gary Benson 0:2.6.2-5jpp_1fc +- Upgrade to 2.6.2-5jpp. + +* Tue Jun 14 2005 Gary Benson 0:2.6.2-5jpp +- Remove the tools tarball, and build xjavac from source. +- Patch xjavac to fix the classpath under libgcj too. + +* Fri Jun 10 2005 Gary Benson 0:2.6.2-4jpp_8fc +- Remove the tools tarball, and build xjavac from source. +- Replace classpath workaround to xjavac task and use + xml-commons classes again (#152255). + +* Thu May 26 2005 Gary Benson 0:2.6.2-4jpp_7fc +- Rearrange how BC-compiled stuff is built and installed. + +* Mon May 23 2005 Gary Benson 0:2.6.2-4jpp_6fc +- Add alpha to the list of build architectures (#157522). +- Use absolute paths for rebuild-gcj-db. + +* Thu May 5 2005 Gary Benson 0:2.6.2-4jpp_5fc +- Add dependencies for %%post and %%postun scriptlets (#156901). + +* Fri Apr 29 2005 Gary Benson 0:2.6.2-4jpp_4fc +- BC-compile. + +* Thu Apr 28 2005 Gary Benson 0:2.6.2-4jpp_3fc +- Revert xjavac classpath workaround, and patch to use libgcj's + classes instead of those in xml-commons (#152255). + +* Thu Apr 21 2005 Gary Benson 0:2.6.2-4jpp_2fc +- Add classpath workaround to xjavac task (#152255). + +* Wed Jan 12 2005 Gary Benson 0:2.6.2-4jpp_1fc +- Reenable building of classes that require javax.swing (#130006). +- Sync with RHAPS. + +* Mon Nov 15 2004 Fernando Nasser 0:2.6.2-4jpp_1rh +- Merge with upstream for 2.6.2 upgrade + +* Thu Nov 4 2004 Gary Benson 0:2.6.2-2jpp_5fc +- Build into Fedora. + +* Thu Oct 28 2004 Gary Benson 0:2.6.2-2jpp_4fc +- Bootstrap into Fedora. + +* Fri Oct 1 2004 Andrew Overholt 0:2.6.2-2jpp_4rh +- add coreutils BuildRequires + +* Thu Sep 30 2004 Andrew Overholt 0:2.6.2-2jpp_3rh +- Remove xml-commons-resolver as a Requires + +* Thu Aug 26 2004 Ralph Apel 0:2.6.2-4jpp +- Build with ant-1.6.2 +- Dropped jikes requirement, built for 1.4.2 + +* Wed Jun 23 2004 Kaj J. Niemi 0:2.6.2-3jpp +- Updated Patch #0 to fix breakage using BEA 1.4.2 SDK, new patch + from and . + +* Mon Jun 21 2004 Vivek Lakshmanan 0:2.6.2-2jpp_2rh +- Added new Source1 URL and added new %%setup to expand it under the + expanded result of Source0. +- Updated Patch0 to fix version discrepancies. +- Added build requirement for xml-commons-apis + +* Mon Jun 14 2004 Matt Wringe 0:2.6.2-2jpp_1rh +- Update to 2.6.2 +- made patch names comformant + +* Mon Mar 29 2004 Kaj J. Niemi 0:2.6.2-2jpp +- Rebuilt with jikes 1.18 for java 1.3.1_11 + +* Fri Mar 26 2004 Frank Ch. Eigler 0:2.6.1-1jpp_2rh +- add RHUG upgrade cleanup + +* Tue Mar 23 2004 Kaj J. Niemi 0:2.6.2-1jpp +- 2.6.2 + +* Thu Mar 11 2004 Frank Ch. Eigler 0:2.6.1-1jpp_1rh +- RH vacuuming +- remove jikes dependency +- add nonjikes-cast.patch