From 41d3ee08cdd7c133a6df1d5f3833c1944873f527 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Wed, 15 Sep 2021 10:57:01 +0100 Subject: [PATCH] Update to latest upstream release Drop build requirement on Java 8, ecj now requires Java 11 --- .gitignore | 1 + ...1-Always-generate-bytecode-debuginfo.patch | 28 +++++++---- 0002-Fix-build-from-source.patch | 31 ++++++++++++ MANIFEST.MF | 47 +++++++++-------- ecj.spec | 50 +++++++++---------- javaAPI.patch | 26 ---------- sources | 6 +-- 7 files changed, 100 insertions(+), 89 deletions(-) rename ecj-rpmdebuginfo.patch => 0001-Always-generate-bytecode-debuginfo.patch (61%) create mode 100644 0002-Fix-build-from-source.patch delete mode 100644 javaAPI.patch diff --git a/.gitignore b/.gitignore index adf22ea..98ac024 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /java10api.jar /java14api.jar /javax15api.jar +/javax16api.jar diff --git a/ecj-rpmdebuginfo.patch b/0001-Always-generate-bytecode-debuginfo.patch similarity index 61% rename from ecj-rpmdebuginfo.patch rename to 0001-Always-generate-bytecode-debuginfo.patch index e2727a1..6bc2c92 100644 --- a/ecj-rpmdebuginfo.patch +++ b/0001-Always-generate-bytecode-debuginfo.patch @@ -1,13 +1,18 @@ -### 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 @@ +From e7ff390ef777bd818ccc6e6f8f3a56f36020abfe Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Wed, 15 Sep 2021 10:21:53 +0100 +Subject: [PATCH 1/2] Always generate bytecode debuginfo + +When ecj is used to build RPMs +--- + .../jdt/internal/compiler/batch/Main.java | 23 +++++++++++++++++++ + 1 file changed, 23 insertions(+) + +diff --git a/org/eclipse/jdt/internal/compiler/batch/Main.java b/org/eclipse/jdt/internal/compiler/batch/Main.java +index f77372d..73a0d24 100644 +--- a/org/eclipse/jdt/internal/compiler/batch/Main.java ++++ b/org/eclipse/jdt/internal/compiler/batch/Main.java +@@ -3109,6 +3109,29 @@ public void configure(String[] argv) { this.options.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED); } @@ -37,3 +42,6 @@ diff -u -r1.327 Main.java this.logger.logCommandLineArguments(newCommandLineArgs); this.logger.logOptions(this.options); +-- +2.31.1 + diff --git a/0002-Fix-build-from-source.patch b/0002-Fix-build-from-source.patch new file mode 100644 index 0000000..cdb3b68 --- /dev/null +++ b/0002-Fix-build-from-source.patch @@ -0,0 +1,31 @@ +From f0d18d7027330806097b6f6c221c0a6008f8c503 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Wed, 15 Sep 2021 10:15:08 +0100 +Subject: [PATCH 2/2] Fix build from source + +--- + build.xml | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/build.xml b/build.xml +index 229bec2..797f7fa 100644 +--- a/build.xml ++++ b/build.xml +@@ -24,10 +24,10 @@ + + + +- ++ debuglevel="lines,vars,source" ++ debug="true" ++ release="11"> ++ + + + +-- +2.31.1 + diff --git a/MANIFEST.MF b/MANIFEST.MF index 6876a76..09a02a7 100644 --- a/MANIFEST.MF +++ b/MANIFEST.MF @@ -1,28 +1,27 @@ 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.25.0.v20210223-0522 -Bundle-ClassPath: . -Bundle-ManifestVersion: 2 -Bundle-Vendor: Eclipse.org -Build-Jdk-Spec: 11 Created-By: Maven Archiver 3.5.0 +Build-Jdk-Spec: 11 Main-Class: org.eclipse.jdt.internal.compiler.batch.Main +Bundle-ManifestVersion: 2 +Bundle-Name: Eclipse Compiler for Java(TM) +Bundle-SymbolicName: org.eclipse.jdt.core.compiler.batch +Bundle-Version: 3.27.0.v20210823-1758 +Bundle-ClassPath: . +Bundle-Vendor: Eclipse.org +Export-Package: org.eclipse.jdt.core,org.eclipse.jdt.core.compiler,org.e + clipse.jdt.internal.antadapter;x-internal:=true,org.eclipse.jdt.interna + l.compiler;x-internal:=true,org.eclipse.jdt.internal.compiler.apt.dispa + tch;x-internal:=true,org.eclipse.jdt.internal.compiler.apt.model;x-inte + rnal:=true,org.eclipse.jdt.internal.compiler.apt.util;x-internal:=true, + org.eclipse.jdt.internal.compiler.ast;x-internal:=true,org.eclipse.jdt. + internal.compiler.batch;x-internal:=true,org.eclipse.jdt.internal.compi + ler.classfmt;x-internal:=true,org.eclipse.jdt.internal.compiler.codegen + ;x-internal:=true,org.eclipse.jdt.internal.compiler.env;x-internal:=tru + e,org.eclipse.jdt.internal.compiler.flow;x-internal:=true,org.eclipse.j + dt.internal.compiler.impl;x-internal:=true,org.eclipse.jdt.internal.com + piler.lookup;x-internal:=true,org.eclipse.jdt.internal.compiler.parser; + x-internal:=true,org.eclipse.jdt.internal.compiler.parser.diagnose;x-in + ternal:=true,org.eclipse.jdt.internal.compiler.problem;x-internal:=true + ,org.eclipse.jdt.internal.compiler.util;x-internal:=true,org.eclipse.jd + t.internal.compiler.tool;x-internal:=true diff --git a/ecj.spec b/ecj.spec index 5a835f0..6dfb331 100644 --- a/ecj.spec +++ b/ecj.spec @@ -1,65 +1,59 @@ Epoch: 1 -%global qualifier R-4.19-202103031800 +%global eclipse_ver 4.21 +%global bundle_ver 3.27.0 +%global jar_ver %{eclipse_ver}RC2a +%global drop S-%{jar_ver}-202109060500 Summary: Eclipse Compiler for Java Name: ecj -Version: 4.19 -Release: 3%{?dist} +Version: %{eclipse_ver} +Release: 1%{?dist} URL: https://www.eclipse.org License: EPL-2.0 -Source0: https://download.eclipse.org/eclipse/downloads/drops4/%{qualifier}/ecjsrc-%{version}.jar -Source1: https://repo1.maven.org/maven2/org/eclipse/jdt/ecj/3.25.0/ecj-3.25.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 -# Fetched from https://github.com/eclipse/eclipse.jdt.core/blob/R4_18/org.eclipse.jdt.compiler.tool/lib/javax15api.jar -Source5: https://github.com/eclipse/eclipse.jdt.core/blob/R4_18/org.eclipse.jdt.compiler.tool/lib/javax15api.jar +Source0: https://download.eclipse.org/eclipse/downloads/drops4/%{drop}/ecjsrc-%{jar_ver}.jar +Source1: https://repo1.maven.org/maven2/org/eclipse/jdt/ecj/%{bundle_ver}/ecj-%{bundle_ver}.pom +# The ecj build does not generate a proper manifest, so use the one from the binary distribution +# Extracted from: https://download.eclipse.org/eclipse/downloads/drops4/%%{drop}/ecj-%%{jar_ver}.jar +Source2: MANIFEST.MF +# Provide API stubs for newer JDKs to allow us to build on the system default JDK where those APIs are not present +# Fetched from: https://git.eclipse.org/c/jdt/eclipse.jdt.core.git/plain/org.eclipse.jdt.compiler.tool/lib/javax16api.jar?h=S4_21_0_RC2a +Source3: javax16api.jar # Always generate debug info when building RPMs (Andrew Haley) -Patch0: %{name}-rpmdebuginfo.patch +Patch0: 0001-Always-generate-bytecode-debuginfo.patch -# Include java API stubs in build -Patch1: javaAPI.patch +# Include java API stubs in build and fix misc other incorrect build flags +Patch1: 0002-Fix-build-from-source.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 +%autosetup -p1 -c -n %{name}-%{eclipse_ver} 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 +cp %{SOURCE2} 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:javax15api:jar:15" %{SOURCE5} - %build -%if 0%{?rhel} export JAVA_HOME=/usr/lib/jvm/java-11 -%endif -ant -Djavaapi=%{SOURCE5} +ant -Djavaapi=%{SOURCE3} %install %mvn_artifact pom.xml ecj.jar @@ -78,6 +72,10 @@ install -m 644 -p ecj.1 $RPM_BUILD_ROOT%{_mandir}/man1/ecj.1 %{_mandir}/man1/ecj* %changelog +* Wed Sep 15 2021 Mat Booth - 1:4.21-1 +- Update to latest upstream release +- Drop build requirement on Java 8, ecj now requires Java 11 + * Wed Aug 25 2021 Stefan Bluhm - 1:4.19-3 - Added RHEL8 build. diff --git a/javaAPI.patch b/javaAPI.patch deleted file mode 100644 index f1209ac..0000000 --- a/javaAPI.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- 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 index b70c86f..b6984ba 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (ecj-3.25.0.pom) = 38e527bb473dc5dba50cecb1e6f75f64b2a12c14bcfed018b2c76be8c0d45c9f9221bdb7291a071726f6239f2ae8c0eedb1b37e98c54d1e8e0ac495818fb49b3 -SHA512 (ecjsrc-4.19.jar) = 250afeb3a2997cab506f0e7c84410556222446064335e635ed32477e093761f4be422b767bce5085d2b04e34ac4d3fa743cf4be9d1b50b318556b0aa797ed000 -SHA512 (javax15api.jar) = c1b16bff598301fa94cb50068350e006a249b5c71185c02113049af7c7b2afb298ef8651263221ed64a3282a0b515ab99cdd0fc44f94f606e9d859616ec2ef6b +SHA512 (ecj-3.27.0.pom) = 675ab0f5f9a5bb7cc7feb47d98de4623d19a57a89b89d8191e6f7f0e524aae423a7f7fead380b0a58bafab439295ce01eeb442823033d415ac890f6b3ea070a2 +SHA512 (ecjsrc-4.21RC2a.jar) = ab940d18f1d5fcbeef3b903a7d719ce6b1dd900d87be08f7a916d6a7d65d8b83b44332dea1642c8d75e2baac3ba8dc27faef659e365cee5f500db99aa9675ce7 +SHA512 (javax16api.jar) = 20bed38ea93b7cb91783333dce0023ce86e4d82a8b88950e3abced0ff6c3e086f3b13c25d6ae1674c8ddb8099be3925c7636ef262171b65e035088f61f5306b0