diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..be28d45
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/Xerces-J-src.2.12.0.tar.gz
diff --git a/.xerces-j2.metadata b/.xerces-j2.metadata
new file mode 100644
index 0000000..34e6bb9
--- /dev/null
+++ b/.xerces-j2.metadata
@@ -0,0 +1 @@
+474275833fe481c1da2461d6b2bb6bd3304dee7e SOURCES/Xerces-J-src.2.12.0.tar.gz
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/getContentDocument.patch b/SOURCES/getContentDocument.patch
new file mode 100644
index 0000000..06f443c
--- /dev/null
+++ b/SOURCES/getContentDocument.patch
@@ -0,0 +1,84 @@
+From: Markus Koschany <apo@debian.org>
+Date: Sat, 12 May 2018 22:12:44 +0200
+Subject: getContentDocument
+
+Fix FTBFS with Java10 due to missing method getContentDocument.
+
+Forwarded: no
+---
+ src/org/apache/html/dom/HTMLFrameElementImpl.java  | 7 +++++++
+ src/org/apache/html/dom/HTMLIFrameElementImpl.java | 5 +++++
+ src/org/apache/html/dom/HTMLObjectElementImpl.java | 5 +++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/src/org/apache/html/dom/HTMLFrameElementImpl.java b/src/org/apache/html/dom/HTMLFrameElementImpl.java
+index 18ab953..e90a592 100644
+--- a/src/org/apache/html/dom/HTMLFrameElementImpl.java
++++ b/src/org/apache/html/dom/HTMLFrameElementImpl.java
+@@ -17,6 +17,8 @@
+ package org.apache.html.dom;
+ 
+ import org.w3c.dom.html.HTMLFrameElement;
++import org.w3c.dom.Document;
++
+ 
+ /**
+  * @xerces.internal
+@@ -127,6 +129,11 @@ public class HTMLFrameElementImpl
+         setAttribute( "src", src );
+     }
+ 
++    public Document getContentDocument()
++    {
++        return null;
++    }
++
+     
+     /**
+      * Constructor requires owner document.
+diff --git a/src/org/apache/html/dom/HTMLIFrameElementImpl.java b/src/org/apache/html/dom/HTMLIFrameElementImpl.java
+index c326557..287ba9e 100644
+--- a/src/org/apache/html/dom/HTMLIFrameElementImpl.java
++++ b/src/org/apache/html/dom/HTMLIFrameElementImpl.java
+@@ -17,6 +17,7 @@
+ package org.apache.html.dom;
+ 
+ import org.w3c.dom.html.HTMLIFrameElement;
++import org.w3c.dom.Document;
+ 
+ /**
+  * @xerces.internal
+@@ -150,6 +151,10 @@ public class HTMLIFrameElementImpl
+         setAttribute( "width", width );
+     }
+ 
++    public Document getContentDocument()
++    {
++        return null;
++    }
+     
+     /**
+      * Constructor requires owner document.
+diff --git a/src/org/apache/html/dom/HTMLObjectElementImpl.java b/src/org/apache/html/dom/HTMLObjectElementImpl.java
+index b065e69..cd27fc8 100644
+--- a/src/org/apache/html/dom/HTMLObjectElementImpl.java
++++ b/src/org/apache/html/dom/HTMLObjectElementImpl.java
+@@ -17,6 +17,7 @@
+ package org.apache.html.dom;
+ 
+ import org.w3c.dom.html.HTMLObjectElement;
++import org.w3c.dom.Document;
+ 
+ /**
+  * @xerces.internal
+@@ -239,6 +240,10 @@ public class HTMLObjectElementImpl
+         setAttribute( "width", width );
+     }
+ 
++    public Document getContentDocument()
++    {
++        return null;
++    }
+     
+     
+     /**
diff --git a/SOURCES/xerces-j2-build.patch b/SOURCES/xerces-j2-build.patch
new file mode 100644
index 0000000..7e7caaf
--- /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 @@
+     <property name="distsrc.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
+     <property name="disttools.dir" value="${build.dir}/tools"/>
+     <property name="distbin.dir" value="${build.dir}/${parser.shortname}-${parser_version}"/>
+-    <property name='src.apis.zip' value="${tools.dir}/xml-commons-external-src.zip"/>
+ 
+     <filter token="year" value="${year}"/>
+     <filter token="version" value="${parser.Version}"/>
+@@ -247,30 +246,6 @@
+     <copy file="${src.dir}/org/apache/xerces/impl/xpath/regex/message.properties"
+       tofile="${build.src}/org/apache/xerces/impl/xpath/regex/message_en.properties"/>
+ 
+-    <!-- now deal with API's:  -->
+-    <unzip src="${src.apis.zip}" dest="${build.src}">
+-        <patternset
+-            includes="org/xml/sax/** 
+-                javax/xml/**
+-                javax/xml/datatype/**
+-                javax/xml/namespace/**
+-                javax/xml/parsers/**
+-                javax/xml/stream/**
+-                javax/xml/transform/**
+-                javax/xml/validation/**
+-                javax/xml/xpath/**
+-                org/w3c/dom/*
+-                org/w3c/dom/bootstrap/**
+-                org/w3c/dom/events/**
+-                org/w3c/dom/html/**
+-                org/w3c/dom/ls/**
+-                org/w3c/dom/ranges/**
+-                org/w3c/dom/traversal/**
+-                org/w3c/dom/views/**
+-                org/w3c/dom/xpath/**"
+-        />
+-    </unzip>
+-    
+     <!-- substitute tokens as needed -->
+     <replace file="${build.dir}/src/org/apache/xerces/impl/Version.java" 
+              token="@@VERSION@@" value="${parser.Name} ${parser.Version}"/>
+@@ -1232,30 +1207,6 @@
+     <!-- HACK: Remove reference to XML11Configurable from SAX parser -->
+     <replace file="${build.dir}/src/org/apache/xerces/parsers/AbstractSAXParser.java"
+              token="return (fConfiguration instanceof XML11Configurable);" value="return false;"/>
+- 
+-    <!-- now deal with API's:  -->
+-    <unzip src="${src.apis.zip}" dest="${build.src}">
+-        <patternset
+-            includes="org/xml/sax/** 
+-                javax/xml/**
+-                javax/xml/datatype/**
+-                javax/xml/namespace/**
+-                javax/xml/parsers/**
+-                javax/xml/stream/**
+-                javax/xml/transform/**
+-                javax/xml/validation/**
+-                javax/xml/xpath/**
+-                org/w3c/dom/*
+-                org/w3c/dom/bootstrap/**
+-                org/w3c/dom/events/**
+-                org/w3c/dom/html/**
+-                org/w3c/dom/ls/**
+-                org/w3c/dom/ranges/**
+-                org/w3c/dom/traversal/**
+-                org/w3c/dom/views/**
+-                org/w3c/dom/xpath/**"
+-        />
+-    </unzip>
+ 
+ 
+     <!-- substitute tokens as needed -->
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..413fa8b
--- /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/
+ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project 
+  xmlns="http://maven.apache.org/POM/4.0.0" 
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>4</version>
+
+  </parent>
+  <groupId>xerces</groupId>
+  <artifactId>xercesImpl</artifactId>
+  <version>2.11.0</version>
+  <name>Xerces2 Java Parser</name>
+  <description>
+    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.
+  </description>
+
+  <url>http://xerces.apache.org/xerces2-j</url>
+
+  <dependencies>
+    <dependency>
+      <groupId>xml-apis</groupId>
+      <artifactId>xml-apis</artifactId>
+      <version>1.4.01</version>
+
+    </dependency>
+    <dependency>
+      <groupId>xml-resolver</groupId>
+      <artifactId>xml-resolver</artifactId>
+      <version>1.2</version>
+      <optional>true</optional>
+    </dependency>
+
+  </dependencies>
+
+
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+  </build>
+
+</project>
\ 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..34e9ca1
--- /dev/null
+++ b/SPECS/xerces-j2.spec
@@ -0,0 +1,478 @@
+%global cvs_version 2_12_0
+
+%define __requires_exclude system.bundle
+
+Name:          xerces-j2
+Version:       2.12.0
+Release:       4%{?dist}
+Summary:       Java XML parser
+# Most of the source is ASL 2.0
+# W3C licensed files:
+# src/org/apache/xerces/dom3/as
+# src/org/w3c/dom/html/HTMLDOMImplementation.java
+License:       ASL 2.0 and W3C
+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
+
+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
+
+# Fix FTBFS with Java10 due to missing method getContentDocument
+Patch2:        https://sources.debian.org/data/main/libx/libxerces2-java/2.12.0-1/debian/patches/getContentDocument.patch
+
+BuildArch:     noarch
+
+BuildRequires: javapackages-local
+BuildRequires: ant
+BuildRequires: apache-parent
+BuildRequires: xalan-j2 >= 2.7.1
+BuildRequires: xml-commons-apis >= 1.4.01
+BuildRequires: xml-commons-resolver >= 1.2
+
+Requires:      xalan-j2 >= 2.7.1
+Requires:      xml-commons-apis >= 1.4.01
+Requires:      xml-commons-resolver >= 1.2
+# Explicit javapackages-tools requires since scripts use
+# /usr/share/java-utils/java-functions
+Requires:      javapackages-tools
+
+Provides:      jaxp_parser_impl = 1.4
+Provides:      %{name}-scripts = %{version}-%{release}
+
+
+# This documentation is provided by xml-commons-apis
+
+# http://mail-archives.apache.org/mod_mbox/xerces-j-dev/201008.mbox/%3COF8D7E2F83.0271A181-ON8525777F.00528302-8525777F.0054BBE0@ca.ibm.com%3E
+
+%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        demo
+Summary:        Demonstrations and samples for %{name}
+Requires:       %{name} = %{version}-%{release}
+
+%description    demo
+%{summary}.
+
+%prep
+%setup -q -n xerces-%{cvs_version}
+%patch0 -p0 -b .orig
+%patch1 -p0 -b .orig
+%patch2 -p1
+
+# Copy the custom ant tasks into place
+mkdir -p tools/org/apache/xerces/util
+mkdir -p tools/bin
+cp -a %{SOURCE3} 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
+
+# legacy aliases for compatability
+%mvn_alias : xerces:xerces xerces:xmlParserAPIs apache:xerces-j2
+%mvn_file : %{name} jaxp_parser_impl
+
+%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
+
+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
+ln -sf $(build-classpath xerces-j2) x.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
+
+%mvn_artifact %{SOURCE7} build/xercesImpl.jar
+
+%install
+%mvn_install
+
+# 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}
+
+%post
+# alternatives suppoort removed in f26
+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 -f .mfiles
+%doc LICENSE NOTICE README
+%{_bindir}/*
+%{_mandir}/*/*
+
+%files demo
+%{_datadir}/%{name}
+
+%changelog
+* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.12.0-4
+- Mass rebuild for javapackages-tools 201902
+
+* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.12.0-3
+- Mass rebuild for javapackages-tools 201901
+
+* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.12.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Nov 19 2018 Marian Koncek <mkoncek@redhat.com> - 2.12.0-1
+- Update to upstream version 2.12.0
+
+* Fri Aug 03 2018 Michael Simacek <msimacek@redhat.com> - 2.11.0-34
+- Fix license tag to include W3C
+
+* Wed Aug 01 2018 Severin Gehwolf <sgehwolf@redhat.com> - 2.11.0-33
+- Add requirement on javapackages-tools since scripts use
+  java-functions.
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-32
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-31
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Sat Sep 23 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.11.0-30
+- Remove unneeded dependency on dejavu-sans-fonts
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-29
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Wed Mar 08 2017 Michael Simacek <msimacek@redhat.com> - 2.11.0-28
+- Fix missing jaxp_parser_impl symlink after upgrade
+
+* Thu Feb 23 2017 Michael Simacek <msimacek@redhat.com> - 2.11.0-27
+- Remove alternatives, there is no other provider
+- Specfile cleanup
+
+* Thu Feb 23 2017 Michael Simacek <msimacek@redhat.com> - 2.11.0-26
+- Install with XMvn
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-25
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.0-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-23
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Wed Sep 10 2014 Mat Booth <mat.booth@redhat.com> - 2.11.0-22
+- Add patch for CVE-2013-4002, rhbz #1140031
+- Fix ownership of javadoc directory
+
+* Mon Aug 11 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.11.0-21
+- Workaround regression in %%add_maven_depmap -a parameter handling
+
+* Mon Aug 11 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.11.0-20
+- Add alias for apache:xerces-j2
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 29 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.11.0-18
+- Use .mfiles generated during build
+
+* Tue Mar 04 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 2.11.0-17
+- Use Requires: java-headless rebuild (#1067528)
+
+* Tue Aug 6 2013 Krzysztof Daniel <kdaniel@redhat.com> 2.11.0-16
+- Fix FTBFS.
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon May 20 2013 Krzysztof Daniel <kdaniel@redhat.com> 2.11.0-13
+- Add reexoport to javax.xml.
+
+* Mon Apr  8 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.11.0-13
+- Add manual pages
+
+* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Dec 17 2012 Alexander Kurtakov <akurtako@redhat.com> 2.11.0-11
+- Really restore dependencies.
+
+* Tue Dec 11 2012 Krzysztof Daniel <kdaniel@redhat.com> 2.11.0-10
+- Restored dependencies to system.bundle and javax.xml.
+
+* Tue Sep 25 2012 Krzysztof Daniel <kdaniel@redhat.com> 2.11.0-9
+- Remove javax.xml from required bundles. They are provided by JVM.
+
+* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Apr 18 2012 Krzysztof Daniel <kdaniel@redhat.com> 2.11.0-7
+- Updated OSGi MANIFEST.MF to import javax.xml
+
+* Thu Mar 08 2012 Andrew Overholt <overholt@redhat.com> - 2.11.0-6
+- Remove system.bundle OSGi requirement from MANIFEST.MF
+- Fold -scripts sub-package into main
+
+* Tue Mar 06 2012 Marek Goldmann <mgoldman@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 2.11.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.11.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Dec 13 2010 Mat Booth <fedora@matbooth.co.uk> 2.11.0-2
+- Install maven pom and depmap.
+
+* Sat Dec 11 2010 Mat Booth <fedora@matbooth.co.uk> - 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 <fedora@matbooth.co.uk> - 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 <overholt@redhat.com> - 2.9.0-3
+- Fix unversioned Provides for jaxp_parser_impl (make it 1.3).
+
+* Thu Jan 14 2010 Mat Booth <fedora@matbooth.co.uk> - 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 <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
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:2.7.1-11.3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Fri Jan 30 2009 Alexander Kurtakov <akurtako@redhat.com> 0:2.7.1-10.3
+- Add osgi manifest.
+
+* Thu Jul 10 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0:2.7.1-10.2
+- drop repotag
+- fix license tag
+
+* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0:2.7.1-10jpp.1
+- Autorebuild for GCC 4.3
+
+* Wed Mar 28 2007 Matt Wringe <mwringe@redhat.com> 0:2.7.1-9jpp.1
+- Update with newest jpp version
+- Clean up spec file for Fedora Review
+
+* Sun Aug 13 2006 Warren Togami <wtogami@redhat.com> 0:2.7.1-7jpp.2
+- fix typo in preun req
+
+* Sat Aug 12 2006 Matt Wringe <mwringe at redhat.com> 0:2.7.1-7jpp.1
+- Merge with upstream version
+
+* Sat Aug 12 2006 Matt Wringe <mwringe at redhat.com> 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 <jakub@redhat.com> - 0:2.7.1-6jpp_9fc
+- Rebuilt
+
+* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0:2.7.1-6jpp_8fc
+- rebuild
+
+* Thu Mar 30 2006 Fernando Nasser <fnasser@redhat.com> 0:2.7.1-3jpp
+- Add missing BR for xml-stylebook
+
+* Wed Mar 22 2006 Ralph Apel <r.apel at r-apel.de> 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 <katzj@redhat.com> - 0:2.7.1-6jpp_7fc
+- stop scriptlet spew
+
+* Wed Feb 22 2006 Rafael Schloming <rafaels@redhat.com> - 0:2.7.1-6jpp_6fc
+- Updated to 2.7.1
+
+* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 0:2.6.2-6jpp_5fc
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 0:2.6.2-6jpp_4fc
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Thu Feb  2 2006 Archit Shah <ashah@redhat.com> 0:2.6.2-6jpp_3fc
+- build xerces without using native code
+
+* Mon Jan  9 2006 Archit Shah <ashah@redhat.com> 0:2.6.2-6jpp_2fc
+- rebuilt for new gcj
+
+* Wed Dec 21 2005 Jesse Keating <jkeating@redhat.com> 0:2.6.2-6jpp_1fc
+- rebuilt for new gcj
+
+* Tue Dec 13 2005 Jesse Keating <jkeating@redhat.com>
+- rebuilt for new gcj
+
+* Fri Oct 07 2005 Ralph Apel <r.apel at r-apel.de> 0:2.7.1-1jpp
+- Upgrade to 2.7.1
+
+* Thu Jul 21 2005 Ralph Apel <r.apel at r-apel.de> 0:2.6.2-7jpp
+- Include target jars-dom3
+- Create new subpackage dom3
+
+* Mon Jul 18 2005 Gary Benson <gbenson at redhat.com> 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 <gbenson at redhat.com> 0:2.6.2-6jpp
+- Build with Sun JDK (from <gareth.armstrong at hp.com>).
+
+* Wed Jun 15 2005 Gary Benson <gbenson at redhat.com> 0:2.6.2-5jpp_1fc
+- Upgrade to 2.6.2-5jpp.
+
+* Tue Jun 14 2005 Gary Benson <gbenson at redhat.com> 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 <gbenson@redhat.com> 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 <gbenson@redhat.com> 0:2.6.2-4jpp_7fc
+- Rearrange how BC-compiled stuff is built and installed.
+
+* Mon May 23 2005 Gary Benson <gbenson@redhat.com> 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 <gbenson@redhat.com> 0:2.6.2-4jpp_5fc
+- Add dependencies for %%post and %%postun scriptlets (#156901).
+
+* Fri Apr 29 2005 Gary Benson <gbenson@redhat.com> 0:2.6.2-4jpp_4fc
+- BC-compile.
+
+* Thu Apr 28 2005 Gary Benson <gbenson@redhat.com> 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 <gbenson@redhat.com> 0:2.6.2-4jpp_2fc
+- Add classpath workaround to xjavac task (#152255).
+
+* Wed Jan 12 2005 Gary Benson <gbenson@redhat.com> 0:2.6.2-4jpp_1fc
+- Reenable building of classes that require javax.swing (#130006).
+- Sync with RHAPS.
+
+* Mon Nov 15 2004 Fernando Nasser <fnasser@redhat.com>  0:2.6.2-4jpp_1rh
+- Merge with upstream for 2.6.2 upgrade
+
+* Thu Nov  4 2004 Gary Benson <gbenson@redhat.com> 0:2.6.2-2jpp_5fc
+- Build into Fedora.
+
+* Thu Oct 28 2004 Gary Benson <gbenson@redhat.com> 0:2.6.2-2jpp_4fc
+- Bootstrap into Fedora.
+
+* Fri Oct 1 2004 Andrew Overholt <overholt@redhat.com> 0:2.6.2-2jpp_4rh
+- add coreutils BuildRequires
+
+* Thu Sep 30 2004 Andrew Overholt <overholt@redhat.com> 0:2.6.2-2jpp_3rh
+- Remove xml-commons-resolver as a Requires
+
+* Thu Aug 26 2004 Ralph Apel <r.apel at r-apel.de> 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 <kajtzu@fi.basen.net> 0:2.6.2-3jpp
+- Updated Patch #0 to fix breakage using BEA 1.4.2 SDK, new patch
+  from <mwringe@redhat.com> and <vivekl@redhat.com>.
+
+* Mon Jun 21 2004 Vivek Lakshmanan <vivekl@redhat.com> 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 <mwringe@redhat.com> 0:2.6.2-2jpp_1rh
+- Update to 2.6.2
+- made patch names comformant
+
+* Mon Mar 29 2004 Kaj J. Niemi <kajtzu@fi.basen.net> 0:2.6.2-2jpp
+- Rebuilt with jikes 1.18 for java 1.3.1_11
+
+* Fri Mar 26 2004 Frank Ch. Eigler <fche@redhat.com> 0:2.6.1-1jpp_2rh
+- add RHUG upgrade cleanup
+
+* Tue Mar 23 2004 Kaj J. Niemi <kajtzu@fi.basen.net> 0:2.6.2-1jpp
+- 2.6.2
+
+* Thu Mar 11 2004 Frank Ch. Eigler <fche@redhat.com> 0:2.6.1-1jpp_1rh
+- RH vacuuming
+- remove jikes dependency
+- add nonjikes-cast.patch