diff --git a/adaptx-0.9.13-build-xml.patch b/adaptx-0.9.13-build-xml.patch
new file mode 100644
index 0000000..58b316d
--- /dev/null
+++ b/adaptx-0.9.13-build-xml.patch
@@ -0,0 +1,11 @@
+--- src/build.xml.orig 2007-04-18 17:10:00.000000000 -0400
++++ src/build.xml 2007-04-18 17:37:22.000000000 -0400
+@@ -121,7 +121,7 @@
+
+
++ packagenames="org.exolab.adaptx.*" source="1.4"/>
+
+
+
diff --git a/adaptx-0.9.13-missingstubs.patch b/adaptx-0.9.13-missingstubs.patch
new file mode 100644
index 0000000..43218e2
--- /dev/null
+++ b/adaptx-0.9.13-missingstubs.patch
@@ -0,0 +1,16 @@
+--- ./src/main/org/exolab/adaptx/jaxp/transform/TransformerFactoryImpl.java.sav 2006-07-19 14:06:26.000000000 -0400
++++ ./src/main/org/exolab/adaptx/jaxp/transform/TransformerFactoryImpl.java 2006-07-19 14:07:13.000000000 -0400
+@@ -193,6 +193,13 @@
+ return false;
+ } //-- getFeature
+
++ // DOM Level 3 stub
++ public void setFeature(String name, boolean value)
++ throws TransformerConfigurationException
++ {
++ throw new RuntimeException("not implemented");
++ }
++
+ /**
+ * Get the object that is used by default during the transformation
+ * to resolve URIs used in document(), xsl:import, or xsl:include.
diff --git a/adaptx-0.9.13-no-enum-as-identifier.patch b/adaptx-0.9.13-no-enum-as-identifier.patch
new file mode 100644
index 0000000..453e230
--- /dev/null
+++ b/adaptx-0.9.13-no-enum-as-identifier.patch
@@ -0,0 +1,142 @@
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/IdentityTransformer.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/IdentityTransformer.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/IdentityTransformer.java.BAD 2007-10-17 13:48:06.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/IdentityTransformer.java 2007-10-17 13:48:25.000000000 -0400
+@@ -424,9 +424,9 @@ public class IdentityTransformer
+ }
+ else {
+ _outputProperties = new Properties();
+- Enumeration enum = properties.keys();
+- while (enum.hasMoreElements()) {
+- String name = (String)enum.nextElement();
++ Enumeration MyEnum = properties.keys();
++ while (MyEnum.hasMoreElements()) {
++ String name = (String)MyEnum.nextElement();
+ String value = properties.getProperty(name);
+ _outputProperties.setProperty(name, value);
+ }
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/TransformerImpl.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/TransformerImpl.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/TransformerImpl.java.BAD 2007-10-17 13:48:46.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/jaxp/transform/TransformerImpl.java 2007-10-17 13:49:15.000000000 -0400
+@@ -454,9 +454,9 @@ public class TransformerImpl
+ else {
+ _outputProperties = new Properties();
+ XSLOutput output = new XSLOutput();
+- Enumeration enum = properties.keys();
+- while (enum.hasMoreElements()) {
+- String name = (String)enum.nextElement();
++ Enumeration MyEnum = properties.keys();
++ while (MyEnum.hasMoreElements()) {
++ String name = (String)MyEnum.nextElement();
+ String value = properties.getProperty(name);
+ _outputProperties.setProperty(name, value);
+ try {
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTProcessor.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTProcessor.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTProcessor.java.BAD 2007-10-17 13:50:28.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTProcessor.java 2007-10-17 13:50:49.000000000 -0400
+@@ -1266,9 +1266,9 @@ public class XSLTProcessor
+ * @param ruleProcessor the RuleProcessor to copy parameters to
+ **/
+ private void copyParams(RuleProcessor ruleProcessor) {
+- Enumeration enum = params.keys();
+- while (enum.hasMoreElements()) {
+- String name = (String)enum.nextElement();
++ Enumeration MyEnum = params.keys();
++ while (MyEnum.hasMoreElements()) {
++ String name = (String)MyEnum.nextElement();
+ ruleProcessor.setParameter(name, params.getProperty(name));
+ }
+ } //-- copyParams
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTStylesheet.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTStylesheet.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTStylesheet.java.BAD 2007-10-17 13:50:56.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/XSLTStylesheet.java 2007-10-17 13:52:01.000000000 -0400
+@@ -569,10 +569,10 @@ public class XSLTStylesheet extends XSLO
+ if (namespace == null) return null;
+ String qns = (String) quotedns.get(namespace);
+ if (qns != null) {
+- Enumeration enum = namespaces.keys();
++ Enumeration MyEnum = namespaces.keys();
+ String key;
+- while (enum.hasMoreElements()) {
+- key = (String)enum.nextElement();
++ while (MyEnum.hasMoreElements()) {
++ key = (String)MyEnum.nextElement();
+ if (qns.equals(namespaces.get(key)))
+ return key;
+ }
+@@ -1094,16 +1094,16 @@ public class XSLTStylesheet extends XSLO
+
+ // combine global variables and parameters
+ try {
+- Enumeration enum = xsl.getVariables();
+- while (enum.hasMoreElements()) {
+- Variable v = (Variable) enum.nextElement();
++ Enumeration MyEnum = xsl.getVariables();
++ while (MyEnum.hasMoreElements()) {
++ Variable v = (Variable) MyEnum.nextElement();
+ Variable tmp = getVariable(v.getName());
+ if (tmp != null) variables.remove(tmp);
+ addVariable(v, true);
+ }
+- enum = xsl.getParameters();
+- while (enum.hasMoreElements()) {
+- Param p = (Param) enum.nextElement();
++ MyEnum = xsl.getParameters();
++ while (MyEnum.hasMoreElements()) {
++ Param p = (Param) MyEnum.nextElement();
+ Param tmp = getParameter(p.getName());
+ if (tmp != null) parameters.remove(tmp);
+ addParam(p);
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/RuleProcessor.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/RuleProcessor.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/RuleProcessor.java.BAD 2007-10-17 13:49:26.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/RuleProcessor.java 2007-10-17 13:50:20.000000000 -0400
+@@ -262,7 +262,7 @@ public class RuleProcessor extends Error
+
+ ResultFormatter rf = ps.getResultFormatter();
+
+- Enumeration enum = null;
++ Enumeration MyEnum = null;
+ //-- copy top-level declared namespaces
+ /*
+ Hashtable namespaces = stylesheet.getNamespaces();
+@@ -304,9 +304,9 @@ public class RuleProcessor extends Error
+
+ // Process top-level parameters
+ ScopedVariableSet vars = ps.getVariables();
+- enum = stylesheet.getParameters();
+- while (enum.hasMoreElements()) {
+- Param param = (Param)enum.nextElement();
++ MyEnum = stylesheet.getParameters();
++ while (MyEnum.hasMoreElements()) {
++ Param param = (Param)MyEnum.nextElement();
+ //-- first check passed in parameters
+ String value = getParameter(param.getName());
+ if (value != null) {
+@@ -322,9 +322,9 @@ public class RuleProcessor extends Error
+ }
+
+ //-- Process top-level variables
+- enum = stylesheet.getVariables();
+- while (enum.hasMoreElements()) {
+- Variable variable = (Variable)enum.nextElement();
++ MyEnum = stylesheet.getVariables();
++ while (MyEnum.hasMoreElements()) {
++ Variable variable = (Variable)MyEnum.nextElement();
+ XPathResult value = processVariable(variable, ps);
+ if (value != null) {
+ vars.setVariable(variable.getName(), value);
+diff -up adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/handlers/ResultHandlerAdapter2.java.BAD adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/handlers/ResultHandlerAdapter2.java
+--- adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/handlers/ResultHandlerAdapter2.java.BAD 2007-10-17 13:52:09.000000000 -0400
++++ adaptx-0.9.14-src/src/main/org/exolab/adaptx/xslt/handlers/ResultHandlerAdapter2.java 2007-10-17 13:52:24.000000000 -0400
+@@ -200,9 +200,9 @@ public class ResultHandlerAdapter2 imple
+ _handler.endElement(uri, name, name);
+ }
+
+- Enumeration enum = _namespaces.getLocalNamespacePrefixes();
+- while (enum.hasMoreElements()) {
+- _handler.endPrefixMapping((String)enum.nextElement());
++ Enumeration MyEnum = _namespaces.getLocalNamespacePrefixes();
++ while (MyEnum.hasMoreElements()) {
++ _handler.endPrefixMapping((String)MyEnum.nextElement());
+ }
+ _namespaces = _namespaces.getParent();
+
diff --git a/adaptx-0.9.13-xsl.patch b/adaptx-0.9.13-xsl.patch
new file mode 100644
index 0000000..60183dc
--- /dev/null
+++ b/adaptx-0.9.13-xsl.patch
@@ -0,0 +1,45 @@
+--- src/doc/style/exolab.xsl.sav 2006-06-19 18:25:07.000000000 +0200
++++ src/doc/style/exolab.xsl 2006-06-19 18:28:57.000000000 +0200
+@@ -1,5 +1,5 @@
+
+-
++
+
+
+
+--- src/doc/style/keywords.xsl.sav 2006-06-19 18:30:23.000000000 +0200
++++ src/doc/style/keywords.xsl 2006-06-19 18:30:38.000000000 +0200
+@@ -1,5 +1,5 @@
+
+-
++
+
+
+ Keywords
+--- src/doc/style/leftNav.xsl.sav 2006-06-19 18:31:37.000000000 +0200
++++ src/doc/style/leftNav.xsl 2006-06-19 18:31:51.000000000 +0200
+@@ -1,5 +1,5 @@
+
+-
++
+
+
+
+--- src/doc/style/topNav.xsl.sav 2006-06-19 18:33:16.000000000 +0200
++++ src/doc/style/topNav.xsl 2006-06-19 18:33:32.000000000 +0200
+@@ -1,5 +1,5 @@
+
+-
++
+
+
+
+--- src/doc/style/searchForm.xsl.sav 2006-06-19 18:32:38.000000000 +0200
++++ src/doc/style/searchForm.xsl 2006-06-19 18:32:53.000000000 +0200
+@@ -1,5 +1,5 @@
+
+-
++
+
+
+
diff --git a/adaptx.spec b/adaptx.spec
new file mode 100644
index 0000000..f7d3621
--- /dev/null
+++ b/adaptx.spec
@@ -0,0 +1,214 @@
+# Copyright (c) 2000-2005, JPackage Project
+# 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
+
+%define gcj_support %{?_with_gcj_support:1}%{!?_with_gcj_support:%{?_without_gcj_support:0}%{!?_without_gcj_support:%{?_gcj_support:%{_gcj_support}}%{!?_gcj_support:0}}}
+
+Name: adaptx
+Version: 0.9.13
+Release: 4jpp.3%{?dist}
+Summary: AdaptX XSLT processor and XPath engine
+License: BSD
+Group: Applications/Text
+# svn export http://svn.codehaus.org/castor/adaptx/tags/0.9.13/ adaptx-0.9.13-src
+# tar cjf adaptx-0.9.13-src.tar.bz2 adaptx-0.9.13-src
+Source0: %{name}-%{version}-src.tar.bz2
+
+Patch0: %{name}-%{version}-xsl.patch
+Patch1: %{name}-%{version}-missingstubs.patch
+Patch2: %{name}-%{version}-build-xml.patch
+Patch3: adaptx-0.9.13-no-enum-as-identifier.patch
+Url: http://castor.codehaus.org/
+BuildRequires: ant >= 0:1.6
+BuildRequires: jpackage-utils >= 0:1.6
+BuildRequires: log4j
+BuildRequires: xml-commons-apis
+BuildRequires: xerces-j2
+Requires: log4j
+Requires: xml-commons-apis
+Requires: xerces-j2
+Requires(pre): jpackage-utils
+Requires(postun): jpackage-utils
+%if ! %{gcj_support}
+BuildArch: noarch
+%endif
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%if %{gcj_support}
+BuildRequires: java-gcj-compat-devel
+Requires(post): java-gcj-compat
+Requires(postun): java-gcj-compat
+%endif
+
+%description
+Adaptx is an XSLT processor and XPath engine.
+
+%package javadoc
+Group: Documentation
+Summary: Javadoc for %{name}
+Requires(post): /bin/rm,/bin/ln
+Requires(postun): /bin/rm
+
+%description javadoc
+Javadoc for %{name}.
+
+%package doc
+Summary: Documentation for %{name}
+Group: Documentation
+
+%description doc
+Documentation for %{name}.
+
+%prep
+%setup -q -n %{name}-%{version}-src
+# remove CVS internal files
+for dir in `find . -type d -name CVS`; do rm -rf $dir; done
+# remove all binary libs
+for j in $(find . -name "*.jar"); do
+ mv $j $j.no
+done
+
+%patch0
+%patch1
+%patch2
+%patch3 -p1
+
+%build
+perl -p -i -e 's|classic|modern|' src/build.xml
+export CLASSPATH=$(build-classpath xml-commons-apis log4j xerces-j2)
+ant -buildfile src/build.xml jar javadoc
+CLASSPATH=$CLASSPATH:dist/adaptx_%{version}.jar
+ant -buildfile src/build.xml doc
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+# jar
+install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
+install -m 644 dist/%{name}_%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
+(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} ${jar/-%{version}/}; done)
+# javadoc
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+cp -pr build/doc/javadoc/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
+rm -rf build/doc/javadoc
+
+%if %{gcj_support}
+%{_bindir}/aot-compile-rpm
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post javadoc
+rm -f %{_javadocdir}/%{name}
+ln -s %{name}-%{version} %{_javadocdir}/%{name}
+
+%postun javadoc
+if [ "$1" = "0" ]; then
+ rm -f %{_javadocdir}/%{name}
+fi
+
+%post
+%if %{gcj_support}
+if [ -x %{_bindir}/rebuild-gcj-db ]
+then
+ %{_bindir}/rebuild-gcj-db
+fi
+%endif
+
+%postun
+%if %{gcj_support}
+if [ -x %{_bindir}/rebuild-gcj-db ]
+then
+ %{_bindir}/rebuild-gcj-db
+fi
+%endif
+
+%files
+%defattr(0664,root,root,0755)
+%doc src/etc/{CHANGELOG,contributors.html,LICENSE}
+%{_javadir}/*
+
+%if %{gcj_support}
+%attr(-,root,root) %{_libdir}/gcj/%{name}
+%endif
+
+%files javadoc
+%defattr(0664,root,root,0755)
+%{_javadocdir}/%{name}-%{version}
+
+%files doc
+%defattr(0664,root,root,0755)
+%doc build/doc/*
+
+%changelog
+* Wed Oct 17 2007 Tom "spot" Callaway 0.9.13-4jpp.3
+- enum is a reserved keyword now, fix javadoc by not naming variables "enum"
+
+* Wed Apr 18 2007 Permaine Cheung 0.9.13-4jpp.2
+- Fixed the building of javadoc
+
+* Wed Jan 31 2007 Deepak Bhole 0.9.13-4jpp.1
+- Fixed issues raised by rpmlint
+
+* Thu Aug 03 2006 Deepak Bhole 0:0.9.13-3jpp.1
+- Added missing requirements.
+
+* Sun Jul 23 2006 Deepak Bhole 0:0.9.13-2jpp_3fc
+- Adding missing dependency
+
+* Sat Jul 22 2006 Jakub Jelinek - 0:0.9.13-2jpp_2fc
+- Rebuilt
+
+* Wed Jul 19 2006 Deepak Bhole 0:0.9.13-2jpp_1fc
+- Add conditional native compiling.
+
+* Mon Jun 19 2006 Ralph Apel 0:0.9.13-1jpp
+- Upgrade to 0.9.13
+
+* Thu Aug 19 2004 Ralph Apel 0:0.9.6-2jpp
+- Build with ant-1.6.2
+- Set xmlns in **/*.xsl
+
+* Tue Sep 09 2003 David Walluck 0:0.9.6-1jpp
+- 0.9.6
+- Nicolas wrote the last changelog entry, not me
+- adaptx requires itself to build, so I added '--without-external' in case you need or
+ wish to use the included jar, but it defaults to '--with-external' (e.g., it defaults
+ to using the external jpackage version of the jar).
+- use the modern, not the classic, compiler
+- BuildRequires: xml-commons-apis for doc target
+
+* Fri May 16 2003 Nicolas Mailhot 0:0.9.5-2jpp
+- do not self-require for build :)
+
+* Sat May 10 2003 David Walluck 0:0.9.5-1jpp
+- release
diff --git a/dead.package b/dead.package
deleted file mode 100644
index b8c7442..0000000
--- a/dead.package
+++ /dev/null
@@ -1 +0,0 @@
-This package was retired on 2012-02-06 due to lack of a maintainer.
diff --git a/sources b/sources
new file mode 100644
index 0000000..de7cd43
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a8990dd15db443266ffceb3646de26b6 adaptx-0.9.13-src.tar.bz2