Accepting request 1146470 from Java:packages
Restore possibility to run with java 8 OBS-URL: https://build.opensuse.org/request/show/1146470 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ecj?expand=0&rev=34
This commit is contained in:
commit
5aa8d87782
168
ecj-java8compat.patch
Normal file
168
ecj-java8compat.patch
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
--- ecj-old/build.xml 2022-03-08 08:19:52.000000000 +0100
|
||||||
|
+++ ecj-new/build.xml 2024-02-13 04:59:44.328387227 +0100
|
||||||
|
@@ -25,9 +25,9 @@
|
||||||
|
|
||||||
|
<javac srcdir="${basedir}" destdir="${output}"
|
||||||
|
debuglevel="lines,source"
|
||||||
|
- debug="true"
|
||||||
|
- release="11">
|
||||||
|
- <compilerarg line="-Xlint:none --patch-module java.compiler=javax17api.jar"/>
|
||||||
|
+ debug="true" encoding="utf-8"
|
||||||
|
+ source="8" target="8">
|
||||||
|
+ <compilerarg line="-Xlint:none" value="-Xbootclasspath/p:javax17api.jar"/>
|
||||||
|
</javac>
|
||||||
|
|
||||||
|
<delete file="${basedir}/META-INF/MANIFEST.MF" failonerror="false"/>
|
||||||
|
--- ecj-old/org/eclipse/jdt/internal/compiler/apt/util/EclipseFileManager.java 2022-03-08 08:19:50.000000000 +0100
|
||||||
|
+++ ecj-new/org/eclipse/jdt/internal/compiler/apt/util/EclipseFileManager.java 2024-02-13 02:40:37.158638361 +0100
|
||||||
|
@@ -1281,7 +1281,7 @@
|
||||||
|
private Iterable<? extends File> getFiles(final Iterable<? extends Path> paths) {
|
||||||
|
if (paths == null)
|
||||||
|
return null;
|
||||||
|
- return () -> new Iterator<>() {
|
||||||
|
+ return () -> new Iterator<File>() {
|
||||||
|
Iterator<? extends Path> original = paths.iterator();
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
@@ -1296,7 +1296,7 @@
|
||||||
|
private Iterable<? extends Path> getPaths(final Iterable<? extends File> files) {
|
||||||
|
if (files == null)
|
||||||
|
return null;
|
||||||
|
- return () -> new Iterator<>() {
|
||||||
|
+ return () -> new Iterator<Path>() {
|
||||||
|
Iterator<? extends File> original = files.iterator();
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
--- ecj-old/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 2022-03-08 08:19:50.000000000 +0100
|
||||||
|
+++ ecj-new/org/eclipse/jdt/internal/compiler/lookup/SourceTypeBinding.java 2024-02-13 02:32:54.251379205 +0100
|
||||||
|
@@ -3319,7 +3319,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// sort them in according to their own indexes
|
||||||
|
- Arrays.sort(bindings, new Comparator<>() {
|
||||||
|
+ Arrays.sort(bindings, new Comparator<SyntheticMethodBinding>() {
|
||||||
|
@Override
|
||||||
|
public int compare(SyntheticMethodBinding o1, SyntheticMethodBinding o2) {
|
||||||
|
return o1.index - o2.index;
|
||||||
|
diff -urEbwB ecj-old/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java ecj-new/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java
|
||||||
|
--- ecj-old/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java 2022-03-08 08:19:50.000000000 +0100
|
||||||
|
+++ ecj-new/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java 2024-02-13 02:38:57.913975827 +0100
|
||||||
|
@@ -239,7 +239,7 @@
|
||||||
|
DiagnosticListener<? super JavaFileObject> diagListener = EclipseCompilerImpl.this.diagnosticListener;
|
||||||
|
Diagnostic<JavaFileObject> diagnostic = null;
|
||||||
|
if (diagListener != null) {
|
||||||
|
- diagnostic = new Diagnostic<>() {
|
||||||
|
+ diagnostic = new Diagnostic<JavaFileObject>() {
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
return Integer.toString(problemId);
|
||||||
|
@@ -316,7 +316,7 @@
|
||||||
|
DiagnosticListener<? super JavaFileObject> diagListener = EclipseCompilerImpl.this.diagnosticListener;
|
||||||
|
Diagnostic<JavaFileObject> diagnostic = null;
|
||||||
|
if (diagListener != null) {
|
||||||
|
- diagnostic = new Diagnostic<>() {
|
||||||
|
+ diagnostic = new Diagnostic<JavaFileObject>() {
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
return Integer.toString(problemId);
|
||||||
|
@@ -797,7 +797,7 @@
|
||||||
|
Iterator iterator = this.extraProblems.iterator(); iterator.hasNext(); ) {
|
||||||
|
final CategorizedProblem problem = (CategorizedProblem) iterator.next();
|
||||||
|
if (this.diagnosticListener != null && !isIgnored(problem)) {
|
||||||
|
- Diagnostic<JavaFileObject> diagnostic = new Diagnostic<>() {
|
||||||
|
+ Diagnostic<JavaFileObject> diagnostic = new Diagnostic<JavaFileObject>() {
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
return null;
|
||||||
|
diff -urEbwB ecj-old/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java ecj-new/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java
|
||||||
|
--- ecj-old/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java 2022-03-08 08:19:50.000000000 +0100
|
||||||
|
+++ ecj-new/org/eclipse/jdt/internal/compiler/tool/EclipseFileManager.java 2024-02-13 02:41:33.840827055 +0100
|
||||||
|
@@ -1310,7 +1310,7 @@
|
||||||
|
private Iterable<? extends File> getFiles(final Iterable<? extends Path> paths) {
|
||||||
|
if (paths == null)
|
||||||
|
return null;
|
||||||
|
- return () -> new Iterator<>() {
|
||||||
|
+ return () -> new Iterator<File>() {
|
||||||
|
Iterator<? extends Path> original = paths.iterator();
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
@@ -1325,7 +1325,7 @@
|
||||||
|
private Iterable<? extends Path> getPaths(final Iterable<? extends File> files) {
|
||||||
|
if (files == null)
|
||||||
|
return null;
|
||||||
|
- return () -> new Iterator<>() {
|
||||||
|
+ return () -> new Iterator<Path>() {
|
||||||
|
Iterator<? extends File> original = files.iterator();
|
||||||
|
@Override
|
||||||
|
public boolean hasNext() {
|
||||||
|
--- ecj-old/org/eclipse/jdt/internal/compiler/util/Util.java 2022-03-08 08:19:52.000000000 +0100
|
||||||
|
+++ ecj-new/org/eclipse/jdt/internal/compiler/util/Util.java 2024-02-13 04:59:18.222252584 +0100
|
||||||
|
@@ -234,6 +234,7 @@
|
||||||
|
String displayString(Object o);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ private static final int DEFAULT_READING_SIZE = 8192;
|
||||||
|
private static final int DEFAULT_WRITING_SIZE = 1024;
|
||||||
|
public final static String UTF_8 = "UTF-8"; //$NON-NLS-1$
|
||||||
|
public static final String LINE_SEPARATOR = System.getProperty("line.separator"); //$NON-NLS-1$
|
||||||
|
@@ -469,7 +470,41 @@
|
||||||
|
* @throws IOException if a problem occurred reading the stream.
|
||||||
|
*/
|
||||||
|
public static byte[] getInputStreamAsByteArray(InputStream input) throws IOException {
|
||||||
|
- return input.readAllBytes(); // will have even slighly better performance as of JDK17+ see JDK-8264777
|
||||||
|
+ byte[] contents = new byte[0];
|
||||||
|
+ int contentsLength = 0;
|
||||||
|
+ int amountRead = -1;
|
||||||
|
+ do {
|
||||||
|
+ int amountRequested = Math.max(input.available(), DEFAULT_READING_SIZE); // read at least 8K
|
||||||
|
+
|
||||||
|
+ // resize contents if needed
|
||||||
|
+ if (contentsLength + amountRequested > contents.length) {
|
||||||
|
+ System.arraycopy(
|
||||||
|
+ contents,
|
||||||
|
+ 0,
|
||||||
|
+ contents = new byte[contentsLength + amountRequested],
|
||||||
|
+ 0,
|
||||||
|
+ contentsLength);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // read as many bytes as possible
|
||||||
|
+ amountRead = input.read(contents, contentsLength, amountRequested);
|
||||||
|
+
|
||||||
|
+ if (amountRead > 0) {
|
||||||
|
+ // remember length of contents
|
||||||
|
+ contentsLength += amountRead;
|
||||||
|
+ }
|
||||||
|
+ } while (amountRead != -1);
|
||||||
|
+
|
||||||
|
+ // resize contents if necessary
|
||||||
|
+ if (contentsLength < contents.length) {
|
||||||
|
+ System.arraycopy(
|
||||||
|
+ contents,
|
||||||
|
+ 0,
|
||||||
|
+ contents = new byte[contentsLength],
|
||||||
|
+ 0,
|
||||||
|
+ contentsLength);
|
||||||
|
+ }
|
||||||
|
+ return contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -479,7 +514,16 @@
|
||||||
|
* @throws IOException if a problem occurred reading the stream.
|
||||||
|
*/
|
||||||
|
public static byte[] readNBytes(InputStream input, int byteLength) throws IOException {
|
||||||
|
- return input.readNBytes(byteLength);
|
||||||
|
+ byte[] contents = new byte[byteLength];
|
||||||
|
+ int len = 0;
|
||||||
|
+ int readSize = 0;
|
||||||
|
+ while ((readSize != -1) && (len != byteLength)) {
|
||||||
|
+ // See PR 1FMS89U
|
||||||
|
+ // We record first the read size. In this case len is the actual read size.
|
||||||
|
+ len += readSize;
|
||||||
|
+ readSize = input.read(contents, len, byteLength - len);
|
||||||
|
+ }
|
||||||
|
+ return contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<String, byte[]> bomByEncoding = new HashMap<String, byte[]>();
|
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 13 01:50:04 UTC 2024 - Fridrich Strba <fstrba@suse.com>
|
||||||
|
|
||||||
|
- Added patch:
|
||||||
|
* ecj-java8compat.patch
|
||||||
|
+ Allow building ecj with language levels 8 (bsc#1219862)
|
||||||
|
- Distribute the bundled javax17api.jar under maven coordinate of
|
||||||
|
org.eclipse:javax17api:17, so that it can be used if needed
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Aug 21 11:46:03 UTC 2023 - Fridrich Strba <fstrba@suse.com>
|
Mon Aug 21 11:46:03 UTC 2023 - Fridrich Strba <fstrba@suse.com>
|
||||||
|
|
||||||
|
6
ecj.spec
6
ecj.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package ecj
|
# spec file for package ecj
|
||||||
#
|
#
|
||||||
# Copyright (c) 2023 SUSE LLC
|
# Copyright (c) 2024 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -32,6 +32,7 @@ Source1: https://repo1.maven.org/maven2/org/eclipse/jdt/ecj/%{bundle_ver}
|
|||||||
# Extracted from https://download.eclipse.org/eclipse/downloads/drops4/%%{drop}/ecj-%%{jar_ver}.jar
|
# Extracted from https://download.eclipse.org/eclipse/downloads/drops4/%%{drop}/ecj-%%{jar_ver}.jar
|
||||||
Source2: MANIFEST.MF
|
Source2: MANIFEST.MF
|
||||||
Patch0: ecj-rpmdebuginfo.patch
|
Patch0: ecj-rpmdebuginfo.patch
|
||||||
|
Patch1: ecj-java8compat.patch
|
||||||
BuildRequires: ant
|
BuildRequires: ant
|
||||||
BuildRequires: java-devel >= 11
|
BuildRequires: java-devel >= 11
|
||||||
BuildRequires: javapackages-local >= 6
|
BuildRequires: javapackages-local >= 6
|
||||||
@ -45,6 +46,7 @@ the JDT Core batch compiler.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -c
|
%setup -q -c
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
# Specify encoding
|
# Specify encoding
|
||||||
sed -i -e '/compilerarg/s/Xlint:none/Xlint:none -encoding cp1252/' build.xml
|
sed -i -e '/compilerarg/s/Xlint:none/Xlint:none -encoding cp1252/' build.xml
|
||||||
@ -59,11 +61,13 @@ cp %{SOURCE2} scripts/binary/META-INF/MANIFEST.MF
|
|||||||
# jar
|
# jar
|
||||||
install -dm 0755 %{buildroot}%{_javadir}/%{name}
|
install -dm 0755 %{buildroot}%{_javadir}/%{name}
|
||||||
install -pm 0644 ecj.jar %{buildroot}%{_javadir}/%{name}/ecj.jar
|
install -pm 0644 ecj.jar %{buildroot}%{_javadir}/%{name}/ecj.jar
|
||||||
|
install -pm 0644 javax17api.jar %{buildroot}%{_javadir}/%{name}/javax17api.jar
|
||||||
|
|
||||||
# pom
|
# pom
|
||||||
install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name}
|
install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name}
|
||||||
%{mvn_install_pom} %{SOURCE1} %{buildroot}%{_mavenpomdir}/%{name}/ecj.pom
|
%{mvn_install_pom} %{SOURCE1} %{buildroot}%{_mavenpomdir}/%{name}/ecj.pom
|
||||||
%add_maven_depmap %{name}/ecj.pom %{name}/ecj.jar -a "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"
|
%add_maven_depmap %{name}/ecj.pom %{name}/ecj.jar -a "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"
|
||||||
|
%add_maven_depmap org.eclipse:javax17api:17 %{name}/javax17api.jar -a "org.eclipse:java9api,org.eclipse:java10api:org.eclipse:java15api"
|
||||||
|
|
||||||
# Install the ecj wrapper script
|
# Install the ecj wrapper script
|
||||||
%jpackage_script org.eclipse.jdt.internal.compiler.batch.Main '' '' ecj ecj true
|
%jpackage_script org.eclipse.jdt.internal.compiler.batch.Main '' '' ecj ecj true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user