diff --git a/.gitignore b/.gitignore
index e69de29..3bfa8e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,8 @@
+/noarch
+/.build-*.log
+/*.src.rpm
+/ecj-*.pom
+/ecj-*/
+/ecjsrc-*.jar
+/java10api.jar
+/java14api.jar
diff --git a/.project b/.project
new file mode 100644
index 0000000..e1a6845
--- /dev/null
+++ b/.project
@@ -0,0 +1,18 @@
+
+
+ ecj
+
+
+
+
+
+ org.eclipse.linuxtools.rpm.rpmlint.rpmlintBuilder
+
+
+
+
+
+ org.eclipse.linuxtools.rpm.core.rpmnature
+ org.eclipse.linuxtools.rpm.rpmlint.rpmlintNature
+
+
diff --git a/MANIFEST.MF b/MANIFEST.MF
new file mode 100644
index 0000000..24d5726
--- /dev/null
+++ b/MANIFEST.MF
@@ -0,0 +1,28 @@
+Manifest-Version: 1.0
+Bundle-SymbolicName: org.eclipse.jdt.core.compiler.batch
+Export-Package: org.eclipse.jdt.core,org.eclipse.jdt.core.compiler,org
+ .eclipse.jdt.internal.antadapter;x-internal:=true,org.eclipse.jdt.int
+ ernal.compiler;x-internal:=true,org.eclipse.jdt.internal.compiler.apt
+ .dispatch;x-internal:=true,org.eclipse.jdt.internal.compiler.apt.mode
+ l;x-internal:=true,org.eclipse.jdt.internal.compiler.apt.util;x-inter
+ nal:=true,org.eclipse.jdt.internal.compiler.ast;x-internal:=true,org.
+ eclipse.jdt.internal.compiler.batch;x-internal:=true,org.eclipse.jdt.
+ internal.compiler.classfmt;x-internal:=true,org.eclipse.jdt.internal.
+ compiler.codegen;x-internal:=true,org.eclipse.jdt.internal.compiler.e
+ nv;x-internal:=true,org.eclipse.jdt.internal.compiler.flow;x-internal
+ :=true,org.eclipse.jdt.internal.compiler.impl;x-internal:=true,org.ec
+ lipse.jdt.internal.compiler.lookup;x-internal:=true,org.eclipse.jdt.i
+ nternal.compiler.parser;x-internal:=true,org.eclipse.jdt.internal.com
+ piler.parser.diagnose;x-internal:=true,org.eclipse.jdt.internal.compi
+ ler.problem;x-internal:=true,org.eclipse.jdt.internal.compiler.util;x
+ -internal:=true,org.eclipse.jdt.internal.compiler.tool;x-internal:=tr
+ ue
+Bundle-Name: Eclipse Compiler for Java(TM)
+Bundle-Version: 3.22.0.v20200530-2032
+Bundle-ClassPath: .
+Bundle-ManifestVersion: 2
+Bundle-Vendor: Eclipse.org
+Build-Jdk-Spec: 11
+Created-By: Maven Archiver 3.5.0
+Main-Class: org.eclipse.jdt.internal.compiler.batch.Main
+
diff --git a/ecj-rpmdebuginfo.patch b/ecj-rpmdebuginfo.patch
new file mode 100644
index 0000000..e2727a1
--- /dev/null
+++ b/ecj-rpmdebuginfo.patch
@@ -0,0 +1,39 @@
+### Eclipse Workspace Patch 1.0
+#P org.eclipse.jdt.core
+Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v
+retrieving revision 1.327
+diff -u -r1.327 Main.java
+--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 21 Apr 2008 15:00:59 -0000 1.327
++++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 20 Nov 2008 19:26:57 -0000
+@@ -2609,6 +2609,29 @@
+ this.options.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED);
+ }
+
++ {
++ // If we're building an RPM, force full debugging info to
++ // be generated, no matter what options have been passed
++ // by Ant. This is something of a kludge, but it is far
++ // better than the alternative, which is having class
++ // files with debug info mysteriously missing.
++
++ String RpmPackageName = System.getenv("RPM_PACKAGE_NAME");
++ String RpmArch = System.getenv("RPM_ARCH");
++ String RpmBuildRoot = System.getenv("RPM_BUILD_ROOT");
++ if (RpmPackageName != null && RpmArch != null && RpmBuildRoot != null) {
++ this.options.put(
++ CompilerOptions.OPTION_LocalVariableAttribute,
++ CompilerOptions.GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_LineNumberAttribute,
++ CompilerOptions.GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_SourceFileAttribute,
++ CompilerOptions.GENERATE);
++ }
++ }
++
+ this.logger.logCommandLineArguments(newCommandLineArgs);
+ this.logger.logOptions(this.options);
+
diff --git a/ecj.spec b/ecj.spec
new file mode 100644
index 0000000..d017036
--- /dev/null
+++ b/ecj.spec
@@ -0,0 +1,354 @@
+Epoch: 1
+
+%global qualifier R-4.16-202006040540
+
+Summary: Eclipse Compiler for Java
+Name: ecj
+Version: 4.16
+Release: 4%{?dist}
+URL: http://www.eclipse.org
+License: EPL-2.0
+
+Source0: http://download.eclipse.org/eclipse/downloads/drops4/%{qualifier}/ecjsrc-%{version}.jar
+Source1: https://repo1.maven.org/maven2/org/eclipse/jdt/ecj/3.22.0/ecj-3.22.0.pom
+# Extracted from https://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/%%{qualifier}/ecj-%%{version}.jar
+Source4: MANIFEST.MF
+# Java API stubs for newer JDKs to allow us to build on the system default JDK
+Source5: java14api.jar
+
+# Always generate debug info when building RPMs (Andrew Haley)
+Patch0: %{name}-rpmdebuginfo.patch
+
+# Include java API stubs in build
+Patch1: javaAPI.patch
+
+BuildArch: noarch
+
+BuildRequires: ant
+BuildRequires: javapackages-local
+
+# Build with Java 11 against bootclasspath of Java 8
+BuildRequires: java-11-openjdk-devel
+BuildRequires: java-1.8.0-openjdk-devel
+
+%description
+ECJ is the Java bytecode compiler of the Eclipse Platform. It is also known as
+the JDT Core batch compiler.
+
+%prep
+%setup -q -c
+%patch0 -p1
+%patch1
+
+sed -i -e 's|debuglevel=\"lines,source\"|debug=\"yes\"|g' build.xml
+
+cp %{SOURCE1} pom.xml
+mkdir -p scripts/binary/META-INF/
+cp %{SOURCE4} scripts/binary/META-INF/MANIFEST.MF
+rm ./META-INF/ECLIPSE_.{SF,RSA}
+
+# Aliases
+%mvn_alias org.eclipse.jdt:ecj org.eclipse.jdt:core org.eclipse.jdt.core.compiler:ecj \
+ org.eclipse.tycho:org.eclipse.jdt.core org.eclipse.tycho:org.eclipse.jdt.compiler.apt
+
+# Make Java API stubs available for other packages
+%mvn_artifact "org.eclipse:java14api:jar:14" %{SOURCE5}
+%mvn_alias "org.eclipse:java14api:jar:14" "org.eclipse:java10api:jar:10" "org.eclipse:java9api:jar:9"
+
+%build
+JAVA_HOME=%{_jvmdir}/java-11 ant -Djavaapi=%{SOURCE5}
+
+%install
+%mvn_artifact pom.xml ecj.jar
+%mvn_install
+
+# Install the ecj wrapper script
+%jpackage_script org.eclipse.jdt.internal.compiler.batch.Main '' '' ecj ecj true
+
+# Install manpage
+mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
+install -m 644 -p ecj.1 $RPM_BUILD_ROOT%{_mandir}/man1/ecj.1
+
+%files -f .mfiles
+%license about.html
+%{_bindir}/ecj
+%{_mandir}/man1/ecj*
+
+%changelog
+* Mon Jul 27 2020 Fedora Release Engineering - 1:4.16-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Fri Jul 10 2020 Jiri Vanek - 1:4.16-3
+- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
+
+* Fri Jun 19 2020 Mat Booth - 1:4.16-2
+- Restore compiler adaptor
+
+* Thu Jun 18 2020 Mat Booth - 1:4.16-1
+- Update to latest upstream release
+
+* Fri Mar 20 2020 Mat Booth - 1:4.15-1
+- Update to latest upstream release
+
+* Tue Jan 28 2020 Fedora Release Engineering - 1:4.14-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Mon Dec 16 2019 Mat Booth - 1:4.14-2
+- Remove upstream code-signatures
+
+* Fri Dec 13 2019 Mat Booth - 1:4.14-1
+- Update to latest upstream version
+
+* Wed Jul 24 2019 Fedora Release Engineering - 1:4.12-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Sat Jun 29 2019 Mat Booth - 1:4.12-1
+- Update to latest upstream release
+
+* Thu Mar 07 2019 Mat Booth - 1:4.11-0.1
+- Update to latest release candidate of 4.11
+
+* Thu Jan 31 2019 Fedora Release Engineering - 1:4.10-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Tue Dec 11 2018 Mat Booth - 1:4.10-1
+- Update to 2018-12 release
+
+* Wed Sep 12 2018 Mat Booth - 1:4.9-1
+- Update to latest release
+- Amend license tag
+
+* Thu Jul 12 2018 Fedora Release Engineering - 1:4.7.3a-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Mon Apr 09 2018 Mat Booth - 1:4.7.3a-1
+- Update to Oxygen.3a release for java 10 support
+- Break circular dep on JDT by providing the java API stubs in this package
+
+* Tue Mar 20 2018 Mat Booth - 1:4.7.3-1
+- Update to Oxygen.3
+
+* Wed Feb 07 2018 Fedora Release Engineering - 1:4.7.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Sep 21 2017 Mat Booth - 1:4.7.1-1
+- Update to Oxygen.1 release
+
+* Wed Jul 26 2017 Fedora Release Engineering - 1:4.6.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Jun 15 2017 Michael Simacek - 1:4.6.3-2
+- Update aliases for jetty
+
+* Wed Mar 29 2017 Mat Booth - 1:4.6.3-1
+- Update to Neon.3 release
+
+* Fri Feb 10 2017 Fedora Release Engineering - 1:4.6.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Jan 10 2017 Mat Booth - 1:4.6.2-1
+- Update to Neon.2 release
+
+* Fri Jul 01 2016 Mat Booth - 1:4.6-1
+- Update to Neon release
+
+* Tue Apr 26 2016 Mikolaj Izdebski - 4.5.2-3
+- Re-add alias for org.eclipse.jdt:core
+
+* Fri Apr 22 2016 Mat Booth - 1:4.5.2-2
+- Drop aliases that are now provided by eclipse-jdt
+
+* Mon Feb 29 2016 Mat Booth - 1:4.5.2-1
+- Update to Mars.2 release
+
+* Fri Feb 05 2016 Mat Booth - 1:4.5.1-3
+- Allow any compression man pages
+
+* Wed Feb 03 2016 Fedora Release Engineering - 1:4.5.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Tue Oct 06 2015 Mat Booth - 1:4.5.1-1
+- Update to Mars.1 release
+
+* Thu Jul 2 2015 Alexander Kurtakov 1:4.5-1
+- Update to upstream 4.5 release.
+
+* Wed Jun 17 2015 Fedora Release Engineering - 1:4.4.2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Mon Mar 30 2015 Mat Booth - 1:4.4.2-1
+- Update to 4.4.2.
+- Install with mvn_install
+- Add jetty.orbit alias
+- Add compiler.apt aliases
+- Drop ancient obsoletes/provides on eclipse-ecj
+- Use man page from upstream source
+
+* Thu Jan 8 2015 Alexander Kurtakov 1:4.4.1-1
+- Update to 4.4.1.
+
+* Thu Jul 3 2014 Alexander Kurtakov 1:4.4.0-1
+- Update to 4.4 final.
+- Drop gcj patches as gcj is not in Fedora anymore and ecj now requires 1.6.
+
+* Thu Jun 12 2014 Alexander Kurtakov 1:4.4.0-0.4.git20140430
+- Add additional depmap for maven.
+
+* Mon Jun 9 2014 Alexander Kurtakov 1:4.4.0-0.3.git20140430
+- Fix FTBFS.
+
+* Sat Jun 07 2014 Fedora Release Engineering - 1:4.4.0-0.2.git20140430
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu May 1 2014 Alexander Kurtakov 1:4.4.0-0.1.git20140430
+- Update to 4.4.0 I-build to make it cope with Java 8.
+
+* Mon Apr 14 2014 Mat Booth - 1:4.2.1-10
+- Drop gcj AOT-compilation support.
+- Obsolete -native sub-package.
+
+* Wed Oct 09 2013 gil cattaneo 1:4.2.1-9
+- enable build of org/eclipse/jdt/internal/compiler/[apt,tool]
+ (ant build mode only), required by querydsl
+- remove some rpmlint problems (invalid date)
+
+* Sat Aug 03 2013 Fedora Release Engineering - 1:4.2.1-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Tue May 21 2013 Jon VanAlten - 4.2.1-7
+- Add manpage for ecj executable
+- Resolves: rhbz#948442
+
+* Tue Apr 9 2013 Mikolaj Izdebski - 4.2.1-6
+- Add depmap for org.eclipse.jdt.core.compiler:ecj
+- Resolves: rhbz#949938
+
+* Wed Mar 06 2013 Karsten Hopp 1:4.2.1-5
+- add BR java-devel for !with_gcjbootstrap
+
+* Wed Feb 13 2013 Fedora Release Engineering - 1:4.2.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Oct 29 2012 Jon VanAlten 1:4.2.1-3
+- Patch GCCMain to avoid dummy symbols.
+
+* Wed Oct 10 2012 Krzysztof Daniel 1:4.2.1-2
+- Add depmap satysfying Tycho req.
+
+* Sun Jul 29 2012 Jon VanAlten 1:4.2.1-1
+- Update to 4.2.1 upstream version.
+
+* Wed Jul 18 2012 Fedora Release Engineering - 1:3.4.2-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed Apr 18 2012 Alexander Kurtakov 1:3.4.2-13
+- Add missing epoch to native subpackage requires.
+
+* Tue Apr 17 2012 Alexander Kurtakov 1:3.4.2-12
+- Separate gcj in subpackage.
+
+* Mon Jan 16 2012 Alexander Kurtakov 1:3.4.2-11
+- Patch pom file to better represent ecj and not jdt.core .
+- Guidelines fixes.
+
+* Fri Jan 13 2012 Fedora Release Engineering - 1:3.4.2-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Feb 08 2011 Fedora Release Engineering - 1:3.4.2-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Fri Nov 26 2010 Stanislav Ochotnicky - 1:3.4.2-8
+- Fix add_to_maven_depmap call (Resolves rhbz#655796)
+
+* Mon Dec 21 2009 Deepak Bhole - 1:3.4.2-7
+- Fix RHBZ# 490936. If CLASSPATH is not set, add . to default classpath.
+
+* Wed Sep 9 2009 Alexander Kurtakov 1:3.4.2-6
+- Add maven pom and depmaps.
+
+* Fri Jul 24 2009 Fedora Release Engineering - 1:3.4.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Wed Mar 11 2009 Deepak Bhole 1:3.4.2-4
+- Add patch to generate full debuginfo for ecj itself
+
+* Tue Mar 10 2009 Deepak Bhole 1:3.4.2-3
+- Add BR for aot-compile-rpm
+
+* Tue Mar 10 2009 Deepak Bhole 1:3.4.2-2
+- Add BR for ant
+
+* Fri Mar 6 2009 Andrew Overholt 1:3.4.2-1
+- 3.4.2
+
+* Tue Dec 9 2008 Andrew Overholt 1:3.4.1-1
+- 3.4.1
+- Don't conditionalize building of gcj AOT bits (we're only building
+ this for gcj and IcedTea bootstrapping).
+
+* Mon Jan 22 2007 Andrew Overholt 3.2.1-1
+- Add eclipse-ecj-gcj.patch.
+
+* Fri Jan 12 2007 Andrew Overholt 3.2.1-1
+- First version for Fedora 7.
+- Add BR: java-devel for jar.
+
+* Thu Nov 02 2006 Andrew Overholt 1:3.2.1-1jpp
+- First version for JPackage.
+
+* Mon Jul 24 2006 Andrew Overholt 1:3.2.0-1
+- Add versionless ecj.jar symlink in /usr/share/java.
+
+* Wed Jul 19 2006 Andrew Overholt 1:3.2.0-1
+- 3.2.0.
+
+* Fri Dec 09 2005 Jesse Keating
+- rebuilt
+
+* Mon Mar 07 2005 Andrew Overholt 1:3.1.0.M4.9
+- Don't build for ppc or ia64.
+
+* Sun Feb 20 2005 Andrew Overholt 1:3.1.0.M4.6
+- Upgrade back to 3.1M4.
+- Don't build for i386 and x86_64.
+- Provide eclipse-ecj until we can deprecate this package.
+
+* Fri Jan 14 2005 Andrew Overholt 3.1.0.M4.4
+- build for all but x86
+
+* Thu Jan 13 2005 Andrew Overholt 3.1.0.M4.3
+- build for ppc exclusively
+
+* Wed Jan 12 2005 Andrew Overholt 3.1.0.M4.2
+- Add RPM_OPT_FLAGS workaround.
+
+* Tue Jan 11 2005 Andrew Overholt 3.1.0.M4.1
+- New version.
+
+* Mon Sep 27 2004 Gary Benson 2.1.3-5
+- Rebuild with new katana.
+
+* Thu Jul 22 2004 Gary Benson 2.1.3-4
+- Build without bootstrap-ant.
+- Split out lib-org-eclipse-jdt-internal-compiler.so.
+
+* Tue Jul 6 2004 Gary Benson 2.1.3-3
+- Fix ecj-devel's dependencies.
+
+* Wed Jun 9 2004 Gary Benson 2.1.3-2
+- Work around an optimiser failure somewhere in ecj or gcj (#125613).
+
+* Fri May 28 2004 Gary Benson
+- Build with katana.
+
+* Mon May 24 2004 Gary Benson 2.1.3-1
+- Initial Red Hat Linux build.
+
+* Mon May 24 2004 Gary Benson
+- Upgraded to latest version.
+
+* Sun Jul 20 2003 Anthony Green
+- Add %%doc
+
+* Fri Jul 18 2003 Anthony Green
+- Initial RHUG build.
diff --git a/javaAPI.patch b/javaAPI.patch
new file mode 100644
index 0000000..f1209ac
--- /dev/null
+++ b/javaAPI.patch
@@ -0,0 +1,26 @@
+--- build.xml.orig 2018-03-20 15:15:57.063810672 +0000
++++ build.xml 2018-03-20 15:16:26.018700633 +0000
+@@ -18,16 +18,20 @@
+
+
+
++
++
++
++
+
+
+
+
+
+-
+-
++
+
+
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..e9c1fb2
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (ecjsrc-4.16.jar) = d835245bf5847ab0fb5412366e483a1951f8c4c7d415f5ee5a036ba4b44905e55b694551cef48511306173ed529f22c16af8c0a4cd560dd6742f08c5bf4d7959
+SHA512 (ecj-3.22.0.pom) = a6585521f9a7368574764ce668f5d4d10db2589136d4cf640c6736ebde216c7efd1b83b1d29156a3e1effa47523482bb0aeabbc2597abc96459529ff13a31835
+SHA512 (java14api.jar) = 0026513d7783924261b45d575831b562c2b17ba704f38864b385a636a2c348d8746936234a88dc6e04d5560659ca621333909248be92f59ab7d787b7ce4982aa