diff --git a/ebz569853-1.patch b/ebz569853-1.patch deleted file mode 100644 index 37039cf..0000000 --- a/ebz569853-1.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 2684843e3d22bb177a6c6b21c3ee75f3bb3d250e Mon Sep 17 00:00:00 2001 -From: Simeon Andreev -Date: Mon, 21 Dec 2020 12:52:01 +0100 -Subject: Bug 569853 - jstack crashes Eclipse when running on Java 11 - -1) Always call DetachCurrentThread if AttachCurrentThreadAsDaemon was -called before, see -https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html#detaching_from_the_vm. - -2) Specify JNI 1.4 version in JNI_OnLoad, see -https://docs.oracle.com/en/java/javase/11/docs/specs/jni/invocation.html#jni_onload - -3) Added printf around attach/detach for easier debugging. - -4) Fixed build.sh to allow c99 standard for the for loop defined in -DEBUG_CALL_PRINTS and resolve compilation error below if -DEBUG_CALL_PRINTS is enabled: - -callback.c:1252:3: error: 'for' loop initial declarations are only -allowed in C99 mode - -Main change is 1), it is a workaround for jstack / JVM bug described in -https://bugzilla.redhat.com/show_bug.cgi?id=1897150 - -Change-Id: I3ba32d9bef217e5ffc76b8802e7e59de503a2161 ---- - .../Eclipse SWT/common/library/callback.c | 28 +++++++++------------- - .../Eclipse SWT/common/library/swt.c | 6 +---- - .../Eclipse SWT/common/library/swt.h | 1 - - 4 files changed, 13 insertions(+), 24 deletions(-) - -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -index 1e37e28810..0bd7b87a77 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -@@ -1298,24 +1298,15 @@ jlong callback(int index, ...) - } - #endif - --#ifdef JNI_VERSION_1_2 -- if (IS_JNI_1_2) { -- (*JVM)->GetEnv(JVM, (void **)&env, JNI_VERSION_1_2); -- } --#endif -- --#ifdef JNI_VERSION_1_4 -- if (env == NULL) { -- if (JNI_VERSION >= JNI_VERSION_1_4) { -- (*JVM)->AttachCurrentThreadAsDaemon(JVM, (void **)&env, NULL); -- } -- } -+(*JVM)->GetEnv(JVM, (void **)&env, JNI_VERSION_1_4); -+ -+if (env == NULL) { -+ (*JVM)->AttachCurrentThreadAsDaemon(JVM, (void **)&env, NULL); -+#ifdef DEBUG_CALL_PRINTS -+ fprintf(stderr, "SWT-JNI: AttachCurrentThreadAsDaemon\n"); - #endif -- -- if (env == NULL) { -- (*JVM)->AttachCurrentThread(JVM, (void **)&env, NULL); -- if (IS_JNI_1_2) detach = 1; -- } -+ detach = 1; -+} - - /* If the current thread is not attached to the VM, it is not possible to call into the VM */ - if (env == NULL) { -@@ -1391,6 +1382,9 @@ done: - - if (detach) { - (*JVM)->DetachCurrentThread(JVM); -+#ifdef DEBUG_CALL_PRINTS -+ fprintf(stderr, "SWT-JNI: DetachCurrentThread\n"); -+#endif - env = NULL; - } - -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.c b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.c -index e78a2e4811..483aae2d47 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.c -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.c -@@ -14,16 +14,12 @@ - - #include "swt.h" - --int IS_JNI_1_2 = 0; - JavaVM *JVM = NULL; - --#ifdef JNI_VERSION_1_2 - JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { -- IS_JNI_1_2 = 1; - JVM = vm; -- return JNI_VERSION_1_2; -+ return JNI_VERSION_1_4; - } --#endif - - void throwOutOfMemory(JNIEnv *env) { - jclass clazz = (*env)->FindClass(env, "java/lang/OutOfMemoryError"); -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.h b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.h -index fa228e9971..32f39f01bd 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.h -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/swt.h -@@ -29,7 +29,6 @@ - extern "C" { - #endif - --extern int IS_JNI_1_2; - extern JavaVM *JVM; - - /* #define DEBUG */ --- -cgit v1.2.1 - diff --git a/ebz569853-2.patch b/ebz569853-2.patch deleted file mode 100644 index 6a8f1f0..0000000 --- a/ebz569853-2.patch +++ /dev/null @@ -1,49 +0,0 @@ -From de8045341dd4eda05a98db2157ead188ab21a899 Mon Sep 17 00:00:00 2001 -From: Andrey Loskutov -Date: Tue, 22 Dec 2020 12:40:46 +0100 -Subject: Bug 569853 - reverted build file change causing crash on native - dialog - -Change on the build script was required to compile callback.c with -#define DEBUG_CALL_PRINTS for debug output. - -Turned out, this change compiles something that GTK code can't -understand & so it crashes with SIGSEGV on opening native file dialog. - -# Problematic frame: -# C [libglib-2.0.so.0+0x39757] g_path_is_absolute+0x7 - -Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) -j org.eclipse.swt.internal.gtk.GTK.gtk_file_chooser_set_current_folder(JJ)V+0 -j org.eclipse.swt.widgets.FileDialog.presetChooserDialog()V+599 -j org.eclipse.swt.widgets.FileDialog.openNativeChooserDialog()Ljava/lang/String;+104 -j org.eclipse.swt.widgets.FileDialog.open()Ljava/lang/String;+1 -j org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run()V+35 -j org.eclipse.ui.internal.ide.actions.OpenLocalFileAction.run(Lorg/eclipse/jface/action/IAction;)V+1 - -Change-Id: I225525d41c41ae90e9f8e30eb53baae18f527634 -Signed-off-by: Andrey Loskutov ---- - -diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -index 0bd7b87a77..df33e672e2 100644 ---- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -+++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/common/library/callback.c -@@ -1244,12 +1244,13 @@ - - #ifdef DEBUG_CALL_PRINTS - { -+ int i; - va_list vaCopy; - va_copy(vaCopy, vl); - - counter++; - fprintf(stderr, "SWT-JNI:%*scallback[%d](", counter, "", index); -- for (int i=0; i @@ -497,7 +497,6 @@ index 767a93df9..293525308 100644 + + + -+ + + + @@ -624,20 +623,6 @@ index 767a93df9..293525308 100644 - -- -- - diff --git a/eclipse-secondary-arches.patch b/eclipse-secondary-arches.patch index e5e2f35..50712db 100644 --- a/eclipse-secondary-arches.patch +++ b/eclipse-secondary-arches.patch @@ -19,7 +19,7 @@ index 7e1f520..734dd10 100644 id="org.eclipse.equinox.launcher.cocoa.macosx.x86_64" os="macosx" ws="cocoa" -@@ -480,6 +510,28 @@ +@@ -480,6 +510,17 @@ download-size="0" install-size="0" version="0.0.0" @@ -33,17 +33,6 @@ index 7e1f520..734dd10 100644 + arch="s390x" + download-size="0" + install-size="0" -+ version="0.0.0" -+ fragment="true" -+ unpack="false"/> -+ -+ @@ -70,7 +59,7 @@ index 7e1f520..734dd10 100644 --- a/eclipse.platform.swt.binaries/pom.xml 2017-04-05 01:57:59.142576722 +0100 +++ b/eclipse.platform.swt.binaries/pom.xml 2017-04-05 02:00:00.153247342 +0100 @@ -56,6 +56,7 @@ - bundles/org.eclipse.swt.cocoa.macosx.x86_64 + bundles/org.eclipse.swt.cocoa.macosx.arm64 bundles/org.eclipse.swt.gtk.linux.aarch64 bundles/org.eclipse.swt.gtk.linux.ppc64le + bundles/org.eclipse.swt.gtk.linux.s390x @@ -101,22 +90,11 @@ index 7e1f520..734dd10 100644 defaultOSArch="aarch64" --- a/rt.equinox.framework/pom.xml 2017-04-26 22:19:15.548461372 +0100 +++ b/rt.equinox.framework/pom.xml 2017-04-26 22:20:41.348571492 +0100 -@@ -77,6 +77,18 @@ - bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64 - - -+ -+ build-native-launchers-gtk.linux.s390x -+ -+ -+ native -+ gtk.linux.s390x -+ -+ -+ -+ bundles/org.eclipse.equinox.launcher.gtk.linux.s390x -+ -+ - +@@ -90,6 +90,7 @@ + bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64 + bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le + bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64 ++ bundles/org.eclipse.equinox.launcher.gtk.linux.s390x + bundles/org.eclipse.equinox.launcher.win32.win32.x86_64 - + bundles/org.eclipse.osgi.tests diff --git a/eclipse.spec b/eclipse.spec index 7fdb36b..ff0ef0c 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -3,18 +3,22 @@ # this is a way to bootstrap Eclipse on secondary archs. %bcond_with bootstrap +# Set this to not build JDT and PDE plugins +%bcond_without jdt_pde + Epoch: 1 %global eb_commit 83d8885ff232bbe9fc992c7f5583eba6c86fdaf6 -%global eclipse_rel %{version} -%global eclipse_tag R-%{eclipse_rel}-202012021800 +%global eclipse_rel %{version}RC2 +%global eclipse_tag S-%{eclipse_rel}-202103031800 %global _jetty_version 9.4.36 %global _lucene_version 8.6.3 %global _batik_version 1.13 %global _asm_version 8.0.1 +%global _junit5_version 5.7.1 -%global _emf_version 1:2.24.0 +%global _emf_version 1:2.25.0 %global _ecf_version 3.14.19 %ifarch s390x x86_64 aarch64 ppc64le @@ -53,7 +57,7 @@ Epoch: 1 Summary: An open, extensible IDE Name: eclipse -Version: 4.18 +Version: 4.19 Release: 3%{?dist} License: EPL-2.0 URL: https://www.eclipse.org/ @@ -124,10 +128,6 @@ Patch25: eclipse-patch-out-fileupload-dep.patch # Force a clean on the restart after p2 operations Patch26: force-clean-after-p2-operations.patch -# Upstream fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=569853 -Patch27: ebz569853-1.patch -Patch28: ebz569853-2.patch - # Upstream no longer supports non-64bit arches ExcludeArch: s390 %{arm} %{ix86} @@ -167,9 +167,9 @@ BuildRequires: jsch BuildRequires: apache-commons-logging BuildRequires: apache-commons-codec BuildRequires: apache-commons-jxpath -BuildRequires: osgi(org.apache.felix.gogo.shell) >= 1.1.0 -BuildRequires: osgi(org.apache.felix.gogo.command) >= 1.0.2 -BuildRequires: osgi(org.apache.felix.gogo.runtime) >= 1.1.0 +BuildRequires: osgi(org.apache.felix.gogo.shell) >= 1.1.4 +BuildRequires: osgi(org.apache.felix.gogo.command) >= 1.1.2 +BuildRequires: osgi(org.apache.felix.gogo.runtime) >= 1.1.4 BuildRequires: felix-scr >= 2.1.16-4 BuildRequires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} BuildRequires: osgi(org.eclipse.jetty.util.ajax) >= %{_jetty_version} @@ -183,12 +183,7 @@ BuildRequires: lucene-core >= %{_lucene_version} BuildRequires: lucene-analysis >= %{_lucene_version} BuildRequires: lucene-queryparser >= %{_lucene_version} BuildRequires: lucene-analyzers-smartcn >= %{_lucene_version} -BuildRequires: junit >= 4.12 -BuildRequires: junit5 >= 5.6.2 -BuildRequires: apiguardian -BuildRequires: hamcrest BuildRequires: sat4j -BuildRequires: objectweb-asm >= %{_asm_version} BuildRequires: sac BuildRequires: batik-css >= %{_batik_version} BuildRequires: batik-util >= %{_batik_version} @@ -212,12 +207,22 @@ BuildRequires: xz-java BuildRequires: osgi(osgi.annotation) BuildRequires: jna BuildRequires: jna-contrib -# Build deps that are excluded when bootstrapping -%if %{without bootstrap} -# For building docs and apitooling + +%if %{without bootstrap} && %{with jdt_pde} +# For building docs and apitooling there is a self-requirement +# So we avoid this requirement for bootstrapping or we are not building PDE BuildRequires: eclipse-pde %endif +%if %{with jdt_pde} +# For building JDT and PDE +BuildRequires: apiguardian +BuildRequires: hamcrest +BuildRequires: junit >= 4.12 +BuildRequires: junit5 >= %{_junit5_version} +BuildRequires: objectweb-asm >= %{_asm_version} +%endif + %description The Eclipse platform is designed for building integrated development environments (IDEs), server-side applications, desktop applications, and @@ -250,9 +255,9 @@ Requires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch Requires: apache-commons-logging Requires: apache-commons-codec Requires: apache-commons-jxpath -Requires: osgi(org.apache.felix.gogo.shell) >= 1.1.0 -Requires: osgi(org.apache.felix.gogo.command) >= 1.0.2 -Requires: osgi(org.apache.felix.gogo.runtime) >= 1.1.0 +Requires: osgi(org.apache.felix.gogo.shell) >= 1.1.4 +Requires: osgi(org.apache.felix.gogo.command) >= 1.1.2 +Requires: osgi(org.apache.felix.gogo.runtime) >= 1.1.4 Requires: felix-scr >= 2.1.16-4 Requires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} Requires: osgi(org.eclipse.jetty.util.ajax) >= %{_jetty_version} @@ -297,6 +302,7 @@ Obsoletes: %{name}-contributor-tools < 1:4.17-4 The Eclipse Platform is the base of all IDE plugins. This does not include the Java Development Tools or the Plugin Development Environment. +%if %{with jdt_pde} %package jdt Summary: Eclipse Java Development Tools BuildArch: noarch @@ -304,12 +310,9 @@ BuildArch: noarch Provides: %{name} = %{epoch}:%{version}-%{release} Requires: %{name}-platform = %{epoch}:%{version}-%{release} Requires: junit >= 4.12 -Requires: junit5 >= 5.6.2 +Requires: junit5 >= %{_junit5_version} Requires: osgi(org.hamcrest.core) -# Obsoletes added in F30 -Obsoletes: eclipse-recommenders <= 2.5.4-5 - %description jdt Eclipse Java Development Tools. This package is required to use Eclipse for developing software written in the Java programming language. @@ -324,6 +327,7 @@ Requires: objectweb-asm >= %{_asm_version} %description pde Eclipse Plugin Development Environment. This package is required for developing Eclipse plugins. +%endif %package p2-discovery Summary: Eclipse p2 Discovery @@ -380,14 +384,12 @@ rm -rf rt.equinox.binaries/org.eclipse.equinox.executable/{bin,contributed}/ %patch24 -p1 %patch25 %patch26 -p1 -%patch27 -p1 -%patch28 -p1 # Optional (unused) multipart support (see patch 25) rm rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/multipart/MultipartSupport{Impl,FactoryImpl,Part}.java # ASM still on 8 -sed -i -e 's/V16/V15/' -e 's/ASM9/ASM8/' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/src/main/java/org/eclipse/jdt/launching/internal/weaving/ClassfileTransformer.java eclipse.pde.ui/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java +sed -i -e 's/V17/V15/' -e 's/ASM9/ASM8/' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/src/main/java/org/eclipse/jdt/launching/internal/weaving/ClassfileTransformer.java eclipse.pde.ui/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java sed -i -e '/org.objectweb.asm/s/9\.0\.0/8.0.0/' eclipse.pde.ui/apitools/org.eclipse.pde.api.tools/META-INF/MANIFEST.MF sed -i -e 's/9\.0/8.0.1/' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml @@ -425,7 +427,6 @@ sed -i -e 's/9\.0/8.0.1/' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/ %pom_disable_module features/org.eclipse.equinox.p2.sdk rt.equinox.p2 %pom_disable_module features/org.eclipse.equinox.server.p2 rt.equinox.bundles %pom_disable_module features/org.eclipse.equinox.serverside.sdk rt.equinox.bundles -%pom_disable_module bundles/org.eclipse.equinox.p2.artifact.checksums.bouncycastle rt.equinox.p2 # Don't need annotations for obsolete JDKs %pom_disable_module org.eclipse.jdt.annotation_v1 eclipse.jdt.core @@ -443,7 +444,8 @@ sed -i -e 's/javax.annotation/%{_jakarta_annotations}/' -e 's/javax.servlet\([^. eclipse.platform.common/bundles/org.eclipse.*/pom.xml \ eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/platformOptions.txt \ eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml \ - rt.equinox.bundles/features/org.eclipse.equinox.server.{jetty,simple}/feature.xml + rt.equinox.bundles/features/org.eclipse.equinox.server.{jetty,simple}/feature.xml \ + eclipse.platform.runtime/bundles/org.eclipse.e4.core.di/META-INF/MANIFEST.MF # Fix requirement on junit 4 sed -i -e 's/4.13.0,5.0.0/4.12.0,5.0.0/' eclipse.jdt.ui/org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java @@ -493,76 +495,60 @@ done %pom_disable_module bundles/org.eclipse.equinox.servletbridge rt.equinox.bundles %pom_disable_module bundles/org.eclipse.equinox.servletbridge.template rt.equinox.bundles +%if %{without jdt_pde} +# Disable JDT and PDE bundles +%pom_disable_module eclipse.jdt/ +%pom_disable_module eclipse.jdt.core +%pom_disable_module eclipse.jdt.core.binaries +%pom_disable_module eclipse.jdt.debug +%pom_disable_module eclipse.jdt.ui +%pom_disable_module ant/org.eclipse.ant.launching eclipse.platform +%pom_disable_module ant/org.eclipse.ant.ui eclipse.platform +%pom_disable_module eclipse.pde.build +%pom_disable_module eclipse.pde.ui +%pom_disable_module features/org.eclipse.cvs-feature eclipse.platform.team +%pom_disable_module bundles/org.eclipse.cvs eclipse.platform.team +%pom_disable_module bundles/org.eclipse.team.cvs.core eclipse.platform.team +%pom_disable_module bundles/org.eclipse.team.cvs.ssh2 eclipse.platform.team +%pom_disable_module bundles/org.eclipse.team.cvs.ui eclipse.platform.team +%pom_disable_module bundles/org.eclipse.platform.doc.isv eclipse.platform.common +%pom_disable_module bundles/org.eclipse.jdt.doc.isv eclipse.platform.common +%pom_disable_module bundles/org.eclipse.pde.doc.user eclipse.platform.common +%pom_remove_plugin :target-platform-configuration eclipse.platform.releng/features/org.eclipse.platform-feature +%pom_xpath_remove "pom:configuration/pom:plugins" eclipse.platform.releng/features/org.eclipse.platform-feature +%pom_xpath_inject "pom:excludes" '' \ + eclipse.platform.releng/features/org.eclipse.platform-feature +%pom_xpath_inject "pom:excludes" '' \ + eclipse.platform.releng/features/org.eclipse.platform-feature +%pom_xpath_remove "feature/includes[@id='org.eclipse.jdt']" eclipse.platform.releng/features/org.eclipse.sdk/feature.xml +%pom_xpath_remove "feature/includes[@id='org.eclipse.jdt.source']" eclipse.platform.releng/features/org.eclipse.sdk/feature.xml +%pom_xpath_remove "feature/includes[@id='org.eclipse.pde']" eclipse.platform.releng/features/org.eclipse.sdk/feature.xml +%pom_xpath_remove "feature/includes[@id='org.eclipse.pde.source']" eclipse.platform.releng/features/org.eclipse.sdk/feature.xml +# But some bundles still need JDT annotations at compile time +%pom_xpath_inject "pom:modules" "eclipse.jdt.core/org.eclipse.jdt.annotation" +%endif + # Don't need enforcer on RPM builds %pom_remove_plugin :maven-enforcer-plugin eclipse-platform-parent +# And moditect is not present +%pom_remove_plugin :moditect-maven-plugin rt.equinox.framework/bundles/org.eclipse.osgi # This part generates secondary fragments using primary fragments +%pom_xpath_inject "pom:plugin[pom:artifactId='target-platform-configuration']/pom:configuration/pom:environments" \ + "linuxgtks390x" eclipse-platform-parent rm -rf eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.s390x rm -rf rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.s390x for dir in rt.equinox.binaries rt.equinox.framework/bundles eclipse.platform.swt.binaries/bundles ; do utils/ensure_arch.sh "$dir" x86_64 s390x done -# Remove platform-specific stuff that we don't care about to reduce build time -# (i.e., all bundles that are not applicable to the current build platform -- -# this reduces the build time on arm by around 20 minutes per architecture that -# we are not currently building) -TYCHO_ENV="linuxgtk%{eclipse_arch}" -%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse-platform-parent -%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse.platform.ui/bundles/org.eclipse.e4.ui.swt.gtk -for b in `ls eclipse.platform.swt.binaries/bundles | grep -P -e 'org.eclipse.swt\.(?!gtk\.linux.%{eclipse_arch}$)'` ; do - module=$(grep ">bundles/$b<" eclipse.platform.swt.binaries/pom.xml || :) - if [ -n "$module" ] ; then - %pom_disable_module bundles/$b eclipse.platform.swt.binaries - %pom_xpath_inject "pom:excludes" "" eclipse.platform.ui/features/org.eclipse.e4.rcp - fi -done -for b in `ls rt.equinox.framework/bundles | grep -P -e 'org.eclipse.equinox.launcher\.(?!gtk\.linux.%{eclipse_arch}$)'` ; do - module=$(grep ">bundles/$b<" rt.equinox.framework/pom.xml || :) - if [ -n "$module" ] ; then - %pom_disable_module bundles/$b rt.equinox.framework - %pom_xpath_remove -f "plugin[@id='$b']" rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml - fi -done -for b in `(cd rt.equinox.bundles/bundles && ls -d *{macosx,win32,linux}*) | grep -P -e 'org.eclipse.equinox.security\.(?!linux\.%{eclipse_arch}$)'` ; do - module=$(grep ">bundles/$b<" rt.equinox.bundles/pom.xml || :) - if [ -n "$module" ] ; then - %pom_disable_module bundles/$b rt.equinox.bundles - %pom_xpath_remove -f "plugin[@id='$b']" rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/feature.xml - fi -done -for b in `ls eclipse.platform.team/bundles/ | grep -P -e 'org.eclipse.core.net\.(?!linux.%{eclipse_arch}$)'` ; do - %pom_disable_module bundles/$b eclipse.platform.team -done -for b in `ls eclipse.platform.resources/bundles/ | grep -P -e 'org.eclipse.core.filesystem\.(?!linux\.%{eclipse_arch}$)'` ; do - module=$(grep ">bundles/$b<" eclipse.platform.resources/pom.xml || :) - if [ -n "$module" ] ; then - %pom_disable_module bundles/$b eclipse.platform.resources - fi -done -%pom_disable_module org.eclipse.jdt.launching.macosx eclipse.jdt.debug -%pom_disable_module org.eclipse.jdt.launching.ui.macosx eclipse.jdt.debug -%pom_disable_module bundles/org.eclipse.compare.win32 eclipse.platform.team -%pom_disable_module org.eclipse.e4.ui.workbench.renderers.swt.cocoa eclipse.platform.ui/bundles -%pom_disable_module org.eclipse.ui.cocoa eclipse.platform.ui/bundles -%pom_disable_module org.eclipse.ui.win32 eclipse.platform.ui/bundles -%pom_disable_module org.eclipse.e4.ui.swt.win32 eclipse.platform.ui/bundles -%pom_disable_module bundles/org.eclipse.core.resources.win32.x86_64 eclipse.platform.resources -%pom_disable_module bundles/org.eclipse.swt.browser.chromium eclipse.platform.swt -%pom_xpath_remove -f "plugin[@id='org.eclipse.swt.browser.chromium.gtk.linux.x86_64']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml -for f in eclipse.jdt/org.eclipse.jdt-feature/feature.xml \ - eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml \ - eclipse.platform.releng/features/org.eclipse.rcp/feature.xml \ - eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml ; do - %pom_xpath_remove -f "plugin[@os='macosx']" $f - %pom_xpath_remove -f "plugin[@os='win32']" $f - %pom_xpath_remove -f "plugin[@ws='win32']" $f - for arch in x86_64 aarch64 ppc64le s390x ; do - if [ "$arch" != "%{eclipse_arch}" ] ; then - %pom_xpath_remove -f "plugin[@arch='$arch']" $f - fi - done -done +# Materialise product only for the current architecture +%pom_add_plugin "org.eclipse.tycho:target-platform-configuration:\${tycho.version}" eclipse.platform.releng.tychoeclipsebuilder/platform/pom.xml \ + "linuxgtk%{eclipse_arch}" + +# Don't use strictBinIncludes due to missing natives for other platforms we don't build +%pom_xpath_inject "pom:plugin[pom:artifactId='tycho-packaging-plugin']/pom:configuration" \ + "false" eclipse-platform-parent # Fix javadoc generation relying on Windows version of SWT sed -i -e '/swt/s/swt.win32.win32.x86_64/swt.gtk.linux.%{eclipse_arch}/' eclipse.platform.common/bundles/org.eclipse*/*Options.txt @@ -571,6 +557,15 @@ sed -i -e '/swt/s/swt.win32.win32.x86_64/swt.gtk.linux.%{eclipse_arch}/' eclipse sed -i -e 's/JavaSE-1.7/JavaSE-1.8/' rt.equinox.framework/bundles/org.eclipse.osgi.{util,services}/META-INF/MANIFEST.MF \ rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/{build.properties,META-INF/MANIFEST.MF} +# Don't build chromium bundles +%pom_disable_module bundles/org.eclipse.swt.browser.chromium eclipse.platform.swt +%pom_disable_module bundles/org.eclipse.swt.browser.chromium.cocoa.macosx.x86_64 eclipse.platform.swt.binaries +%pom_disable_module bundles/org.eclipse.swt.browser.chromium.gtk.linux.x86_64 eclipse.platform.swt.binaries +%pom_disable_module bundles/org.eclipse.swt.browser.chromium.win32.win32.x86_64 eclipse.platform.swt.binaries +%pom_xpath_remove -f "plugin[@id='org.eclipse.swt.browser.chromium.gtk.linux.x86_64']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +%pom_xpath_remove -f "plugin[@id='org.eclipse.swt.browser.chromium.win32.win32.x86_64']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +%pom_xpath_remove -f "plugin[@id='org.eclipse.swt.browser.chromium.cocoa.macosx.x86_64']" eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml + # Disable contributor tools %pom_disable_module eclipse.platform.ui.tools %pom_disable_module features/org.eclipse.swt.tools.feature eclipse.platform.swt @@ -632,6 +627,8 @@ ln -s $(build-classpath osgi-annotation) rt.equinox.bundles/bundles/org.eclipse. # The order of these mvn_package calls is important %mvn_package "::pom::" __noinstall +%mvn_package "org.eclipse.jdt:*macosx" __noinstall +%if %{with jdt_pde} %mvn_package "::jar:sources{,-feature}:" sdk %mvn_package ":org.eclipse.jdt.doc.isv" sdk %mvn_package ":org.eclipse.platform.doc.isv" sdk @@ -647,6 +644,23 @@ ln -s $(build-classpath osgi-annotation) rt.equinox.bundles/bundles/org.eclipse. %mvn_package ":org.eclipse.pde.api.tools*" pde %mvn_package "org.eclipse.ui:org.eclipse.ui.trace" pde %mvn_package "org.eclipse.sdk{,.feature}:" sdk +%else +%mvn_package "::jar:sources{,-feature}:" __noinstall +%mvn_package ":org.eclipse.jdt.doc.isv" __noinstall +%mvn_package ":org.eclipse.platform.doc.isv" __noinstall +%mvn_package ":org.eclipse.equinox.executable" __noinstall +%mvn_package "org.eclipse.jdt{,.feature}:" __noinstall +%mvn_package ":org.eclipse.ant.{launching,ui}" __noinstall +%mvn_package "org.eclipse.debug:org.eclipse.unittest.ui" __noinstall +%mvn_package ":org.eclipse.equinox.p2.discovery.{feature,compatibility}" p2-discovery +%mvn_package ":org.eclipse.equinox.p2{,.ui}.discovery" p2-discovery +%mvn_package "org.eclipse.cvs{,.feature}:" cvs +%mvn_package "org.eclipse.team:org.eclipse.team.cvs*" cvs +%mvn_package "org.eclipse.pde{,.ui,.feature}:" pde +%mvn_package ":org.eclipse.pde.api.tools*" pde +%mvn_package "org.eclipse.ui:org.eclipse.ui.trace" pde +%mvn_package "org.eclipse.sdk{,.feature}:" __noinstall +%endif %mvn_package ":" __noinstall %build @@ -659,9 +673,6 @@ export M_ARCH="$LDFLAGS" #This is the lowest value where the build succeeds. 512m is not enough. export MAVEN_OPTS="-Dfile.encoding=UTF-8 -Xmx1024m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}" -# TODO: Fix bug in the tycho installation -xmvn -o install:install-file -Dtycho.mode=maven -Dfile=%{_javadir}/tycho/tycho-lib-detector.jar -DpomFile=%{_mavenpomdir}/tycho/tycho-lib-detector.pom - # Pre-build agent jar needed for AdvancedSourceLookupSupport (cd eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent && xmvn -e -o -B clean verify) mv eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/target/javaagent-shaded.jar \ @@ -670,7 +681,7 @@ mv eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/target/javaagent-shaded # Qualifier generated from last modification time of source tarball QUALIFIER=$(date -u -d"$(stat --format=%y %{SOURCE0})" +v%Y%m%d-%H%M) %mvn_build -j -f -- -e -DforceContextQualifier=$QUALIFIER -DaggregatorBuild=true \ -%if %{with bootstrap} +%if %{with bootstrap} || %{without jdt_pde} -P!api-generation,!build-docs \ %endif -Declipse.javadoc=%{_jvmdir}/java-11/bin/javadoc -Dnative=gtk.linux.%{eclipse_arch} \ @@ -754,8 +765,10 @@ desktop-file-validate $RPM_BUILD_ROOT/usr/share/applications/%{name}.desktop # Install appstream appdata install -m644 -D desktopintegration/eclipse.appdata.xml $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse.appdata.xml +%if %{with jdt_pde} install -m644 -D desktopintegration/eclipse-jdt.metainfo.xml $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse-jdt.metainfo.xml install -m644 -D desktopintegration/eclipse-pde.metainfo.xml $RPM_BUILD_ROOT%{_datadir}/appdata/eclipse-pde.metainfo.xml +%endif LOCAL_PWD=`pwd` #change the installation p2 files @@ -833,10 +846,6 @@ popd #fix so permissions find $RPM_BUILD_ROOT/%{_eclipsedir} -name *.so -exec chmod a+x {} \; -# Usage marker -install -d -m 755 %{buildroot}%{_eclipsedir}/.pkgs -echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} - %files swt -f .mfiles-swt %{_eclipsedir}/plugins/org.eclipse.swt_* %{_eclipsedir}/plugins/org.eclipse.swt.gtk.linux.* @@ -847,7 +856,6 @@ echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} %{_bindir}/eclipse %{_eclipsedir}/eclipse %{_eclipsedir}/.eclipseproduct -%{_eclipsedir}/.pkgs %config %{_eclipsedir}/eclipse.ini %config %{_sysconfdir}/eclipse.ini /usr/share/applications/* @@ -929,7 +937,6 @@ echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} %{_eclipsedir}/plugins/org.eclipse.equinox.common_* %{_eclipsedir}/plugins/org.eclipse.equinox.concurrent_* %{_eclipsedir}/plugins/org.eclipse.equinox.console_* -%{_eclipsedir}/plugins/org.eclipse.equinox.ds_* %{_eclipsedir}/plugins/org.eclipse.equinox.event_* %{_eclipsedir}/plugins/org.eclipse.equinox.frameworkadmin_* %{_eclipsedir}/plugins/org.eclipse.equinox.frameworkadmin.equinox_* @@ -1033,11 +1040,13 @@ echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} %{_javadir}/%{name}/core* %{_javadir}/%{name}/equinox* +%if %{with jdt_pde} %files jdt -f .mfiles-jdt %{_datadir}/appdata/eclipse-jdt.metainfo.xml %files pde -f .mfiles-pde -f .mfiles-cvs -f .mfiles-sdk %{_datadir}/appdata/eclipse-pde.metainfo.xml +%endif %files p2-discovery -f .mfiles-p2-discovery @@ -1048,6 +1057,20 @@ echo "%{version}-%{release}" > %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} %{_eclipsedir}/plugins/org.eclipse.osgi.util_* %changelog +* Thu Mar 11 2021 Mat Booth - 1:4.19-3 +- Avoid shipping macos-specific JDT bundles + +* Thu Mar 11 2021 Mat Booth - 1:4.19-2 +- Fix build on F33 + +* Thu Mar 11 2021 Mat Booth - 1:4.19-1 +- Update to 2021-03 release + +* Tue Mar 09 2021 Mat Booth - 1:4.18-4 +- Simplify platform-specific bundle disablement now that perf is less + of an issue (i.e. no 32bit arm) +- Allow building without JDT and PDE plugins for reduced dependency tree + * Wed Feb 3 2021 Mat Booth - 1:4.18-3 - Backport patch for jstack crash from ebz#569853 diff --git a/force-clean-after-p2-operations.patch b/force-clean-after-p2-operations.patch index 4b03d1f..16272d4 100644 --- a/force-clean-after-p2-operations.patch +++ b/force-clean-after-p2-operations.patch @@ -18,8 +18,8 @@ index 497e5d6fa..a118a0e4c 100644 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.equinox.launcher;singleton:=true --Bundle-Version: 1.6.0.qualifier -+Bundle-Version: 1.6.1.qualifier +-Bundle-Version: 1.6.100.qualifier ++Bundle-Version: 1.6.101.qualifier Main-Class: org.eclipse.equinox.launcher.Main Bundle-ClassPath: . Bundle-Vendor: %providerName @@ -31,8 +31,8 @@ index 43849b5b8..c5d2cdfea 100644 org.eclipse.equinox org.eclipse.equinox.launcher -- 1.6.0-SNAPSHOT -+ 1.6.1-SNAPSHOT +- 1.6.100-SNAPSHOT ++ 1.6.101-SNAPSHOT eclipse-plugin diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java diff --git a/sources b/sources index c30dab9..7f558ac 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (org.eclipse.linuxtools.eclipse-build-83d8885ff232bbe9fc992c7f5583eba6c86fdaf6.tar.xz) = ee1e0c9370e0c9d6bc4f3f300b7fc6a234bd4a8b251e801a2cd5844ad3ccf92b890140a01fd6323ab565e1b8354cfd9cfb80f749fb3edeeb8c2f3175097dd190 -SHA512 (eclipse-platform-sources-4.18.tar.xz) = 9ffe27a6e36e4666c0ba2a597ffce7419206f9b58cccd686b54bd5a68b6aa0e0385c941f4b7704ce06e5bdf71cd5e048ff672f6de503617e21e92873f3672ff3 +SHA512 (eclipse-platform-sources-4.19RC2.tar.xz) = 404651907bcc946c868864da917f059f05c16e1c6249d0a89a925d3a9df2461017bdfd610dd30ce2e4db7b16a7b4afa8479db9617649025ad057305cedda0db1