diff --git a/xom-1.2.10-src.tar.gz b/xom-1.2.10-src.tar.gz
new file mode 100644
index 0000000..2e1d4f4
Binary files /dev/null and b/xom-1.2.10-src.tar.gz differ
diff --git a/xom-build.patch b/xom-build.patch
new file mode 100644
index 0000000..29482b5
--- /dev/null
+++ b/xom-build.patch
@@ -0,0 +1,139 @@
+diff --git a/build.xml b/build.xml
+index afe9c1f..23f2797 100644
+--- a/build.xml
++++ b/build.xml
+@@ -68,11 +68,11 @@ subject line. The XOM home page is http://www.xom.nu/
+
+
+
+-
+
+
+
+
++
+
+
+
+@@ -107,7 +107,7 @@ subject line. The XOM home page is http://www.xom.nu/
+
+
+
+-
++
+
+
+
+@@ -115,7 +115,7 @@ subject line. The XOM home page is http://www.xom.nu/
+
+
+
+-
++
+
+
+
+@@ -214,15 +214,15 @@ XOM Build file
+
+
+
+-
+
+
+@@ -270,8 +270,8 @@ XOM Build file
+ debug="${debug}"
+ optimize="${optimize}"
+ deprecation="${deprecation}"
+- target="1.2"
+- source="1.3"
++ target="1.5"
++ source="1.5"
+ encoding="UTF-8"
+ failonerror="false"
+ includeAntRuntime="false">
+@@ -330,13 +330,7 @@ XOM Build file
+ compress="yes"
+ includes="nu/xom/* nu/xom/xslt/* nu/xom/xinclude/* nu/xom/converters/* nu/xom/canonical/* nu/xom/tests/XOMTestCase.class"
+ excludes="nu/xom/samples/* nu/xom/benchmarks/* nu/xom/pantry/* nu/xom/tools/*">
+-
+-
+-
+
+-
+-
+
+
+
+@@ -512,8 +506,8 @@ XOM Build file
+ debug="${debug}"
+ optimize="${optimize}"
+ deprecation="${deprecation}"
+- target="1.2"
+- source="1.3"
++ target="1.5"
++ source="1.5"
+ encoding="UTF-8"
+ includeAntRuntime="false"
+ includes="nu/xom/tools/*">
+@@ -840,7 +834,7 @@ location="${dist.dir}/maven1/xom-maven-${version}.jar" />
+
+-
++
+
+
+
+@@ -862,14 +856,14 @@ location="${dist.dir}/maven1/xom-maven-${version}.jar" />
+
+
+
+-
++
+
+
+
+
+-
+-
+-
+-
+
+
+
diff --git a/xom.spec b/xom.spec
new file mode 100644
index 0000000..6cd4f9a
--- /dev/null
+++ b/xom.spec
@@ -0,0 +1,115 @@
+%define with_dom4j %{?_with_dom4j:1}%{!?_with_dom4j:0}
+%define without_dom4j %{!?_with_dom4j:1}%{?_with_dom4j:0}
+Summary: XML Object Model
+Name: xom
+Version: 1.2.10
+Release: 1
+Epoch: 0
+License: LGPLv2
+URL: http://www.xom.nu
+Source0: http://www.cafeconleche.org/XOM/%{name}-%{version}-src.tar.gz
+Patch0: %{name}-build.patch
+BuildRequires: ant >= 0:1.6 javapackages-local javapackages-tools jarjar jaxen junit xalan-j2
+BuildRequires: xerces-j2
+%if %{with_dom4j}
+BuildRequires: dom4j
+%endif
+BuildRequires: xml-commons-apis tagsoup java-devel xml-commons-resolver servlet
+Requires: jaxen xalan-j2 xerces-j2 xml-commons-apis
+BuildArch: noarch
+%description
+XOM is a new XML object model. It is an open source (LGPL),
+tree-based API for processing XML with Java that strives
+for correctness, simplicity, and performance, in that order.
+XOM is designed to be easy to learn and easy to use. It
+works very straight-forwardly, and has a very shallow
+learning curve. Assuming you're already familiar with XML,
+you should be able to get up and running with XOM very quickly.
+
+%package javadoc
+Summary: API documentation for %{name}
+%description javadoc
+This package provides %{summary}.
+
+%package demo
+Summary: Samples for %{name}
+Requires: %{name} = %{version}-%{release}
+%description demo
+This package provides %{summary}.
+
+%prep
+%setup -q -n XOM
+find \( -name '*.jar' -or -name '*.class' \) -delete
+%patch0 -p1
+for s in src/nu/xom/tests/BuilderTest.java\
+ src/nu/xom/tests/SerializerTest.java;do
+ native2ascii -encoding UTF8 ${s} ${s}
+done
+sed -i 's/\r//g' LICENSE.txt
+sed -i "s,59 Temple Place,51 Franklin Street,;s,Suite 330,Fifth Floor,;s,02111-1307,02110-1301," $(find -name "*.java") \
+ LICENSE.txt lgpl.txt
+
+%build
+mkdir -p lib
+pushd lib
+ln -sf $(build-classpath junit) junit.jar
+ln -sf $(build-classpath xerces-j2) dtd-xercesImpl.jar
+ln -sf $(build-classpath xalan-j2) xalan.jar
+ln -sf $(build-classpath xml-commons-apis) xmlParserAPIs.jar
+ln -sf $(build-classpath jaxen) jaxen.jar
+while IFS=':' read -ra JARJAR_JARS; do
+ for j in "${JARJAR_JARS[@]}";do
+ ln -sf $j $(basename $j .jar)-1.0.jar
+ done
+done <<<$(build-classpath jarjar)
+popd
+mkdir -p lib2
+pushd lib2
+ln -sf $(build-classpath tagsoup) tagsoup-1.2.jar
+ln -sf $(build-classpath xml-commons-resolver) resolver.jar
+%if %{with_dom4j}
+ln -sf $(build-classpath dom4j) dom4j.jar
+%endif
+ln -sf $(build-classpath servlet) servlet.jar
+popd
+ant -v compile15 jar samples betterdoc maven2
+pushd build/apidocs
+for f in `find -name \*.css -o -name \*.html`; do
+ sed -i 's/\r//g' $f
+done
+popd
+mv build/maven2/project.xml build/maven2/pom.xml
+%pom_add_dep jaxen:jaxen build/maven2/pom.xml
+%mvn_artifact build/maven2/pom.xml build/%{name}-%{version}.jar
+%mvn_alias xom:xom com.io7m.xom:xom
+
+%install
+%mvn_install
+ln -s xom/%{name}.jar %{buildroot}%{_javadir}/%{name}.jar
+install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
+cp -pr build/apidocs/* %{buildroot}%{_javadocdir}/%{name}
+install -d -m 755 %{buildroot}%{_datadir}/%{name}
+install -m 644 build/xom-samples.jar %{buildroot}%{_datadir}/%{name}
+install -d -m 755 %{buildroot}%{_mavenpomdir}
+ln -s xom/xom.pom %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
+
+%files -f .mfiles
+%doc README.txt
+%doc LICENSE.txt
+%doc Todo.txt
+%doc lgpl.txt
+%{_javadir}/%{name}.jar
+%{_mavenpomdir}/JPP-%{name}.pom
+
+%files javadoc
+%{_javadocdir}/%{name}
+%doc LICENSE.txt
+%doc lgpl.txt
+
+%files demo
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/xom-samples.jar
+
+%changelog
+* Thu Jul 23 2020 Jeffery.Gao - 1.2.10-1
+- Package init
diff --git a/xom.yaml b/xom.yaml
new file mode 100644
index 0000000..00bbaf0
--- /dev/null
+++ b/xom.yaml
@@ -0,0 +1,4 @@
+version_control: NA
+src_repo: NA
+tag_prefix: NA
+seperator: NA