From 0f5e1ffc70d60692e259ff7d500fc732c137a83b Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Oct 28 2020 06:21:58 +0000 Subject: import eclipse-4.16-7.module+el8.4.0+8501+766a6595 --- diff --git a/.eclipse.metadata b/.eclipse.metadata new file mode 100644 index 0000000..f0183ad --- /dev/null +++ b/.eclipse.metadata @@ -0,0 +1,2 @@ +d16ce0f61de3c9005e2cad8715d4518d99d4f1b0 SOURCES/eclipse-platform-sources-4.16.tar.xz +8af7a2c8c65958c39370e6ad00540331cbaac181 SOURCES/org.eclipse.linuxtools.eclipse-build-b056b40d26d052b788b790f27ead774ff804ab55.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2b4e626 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/eclipse-platform-sources-4.16.tar.xz +SOURCES/org.eclipse.linuxtools.eclipse-build-b056b40d26d052b788b790f27ead774ff804ab55.tar.xz diff --git a/SOURCES/0001-Avoid-limitation-with-older-shade-plug-in-versions-w.patch b/SOURCES/0001-Avoid-limitation-with-older-shade-plug-in-versions-w.patch new file mode 100644 index 0000000..9ae9983 --- /dev/null +++ b/SOURCES/0001-Avoid-limitation-with-older-shade-plug-in-versions-w.patch @@ -0,0 +1,32 @@ +From d39c125a6030c88920f188345fee1d624ac4afe1 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Tue, 12 Mar 2019 12:58:38 +0000 +Subject: [PATCH 1/4] Avoid limitation with older shade plug-in versions where + it cannot deal with Java 9-style module-info files + +--- + .../org.eclipse.jdt.launching.javaagent/pom.xml | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml b/eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml +index 8d32e4fa5..dd76e096a 100644 +--- a/eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml ++++ b/eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml +@@ -77,6 +77,14 @@ + + + javaagent-shaded ++ ++ ++ *:* ++ ++ **/module-info.class ++ ++ ++ + + + +-- +2.26.2 + diff --git a/SOURCES/0002-Allow-bootstrapping-against-OSGi-Core-R6.patch b/SOURCES/0002-Allow-bootstrapping-against-OSGi-Core-R6.patch new file mode 100644 index 0000000..7a4041d --- /dev/null +++ b/SOURCES/0002-Allow-bootstrapping-against-OSGi-Core-R6.patch @@ -0,0 +1,31 @@ +From 006d5e833eae44aab2514918acfe20f8ab3992d2 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Tue, 12 Mar 2019 15:12:37 +0000 +Subject: [PATCH 2/4] Allow bootstrapping against OSGi Core R6 + +--- + .../http/servlet/internal/HttpServiceRuntimeImpl.java | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java b/rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java +index 8d07030b8..530f5bb11 100644 +--- a/rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java ++++ b/rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/src/org/eclipse/equinox/http/servlet/internal/HttpServiceRuntimeImpl.java +@@ -1341,8 +1341,12 @@ public class HttpServiceRuntimeImpl + @Override + public Void call() { + try { +- Dictionary properties = getHsrRegistration().getReference().getProperties(); +- properties.put(Constants.SERVICE_CHANGECOUNT, getServiceChangecount()); ++ Dictionary properties = new Hashtable(); ++ String[] keys = getHsrRegistration().getReference().getPropertyKeys(); ++ for (String key : keys) { ++ properties.put(key, getHsrRegistration().getReference().getProperty(key)); ++ } ++ properties.put("service.changecount", getServiceChangecount()); + getHsrRegistration().setProperties(properties); + return null; + } +-- +2.26.2 + diff --git a/SOURCES/0004-Add-parent-pom-for-old-tycho-pomless.patch b/SOURCES/0004-Add-parent-pom-for-old-tycho-pomless.patch new file mode 100644 index 0000000..8e57dfd --- /dev/null +++ b/SOURCES/0004-Add-parent-pom-for-old-tycho-pomless.patch @@ -0,0 +1,31 @@ +From 1373863303582bd46daea47db219506c0fbebcee Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Wed, 13 May 2020 15:24:34 +0100 +Subject: [PATCH 4/4] Add parent pom for old tycho-pomless + +--- + eclipse.platform.resources/bundles/pom.xml | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100644 eclipse.platform.resources/bundles/pom.xml + +diff --git a/eclipse.platform.resources/bundles/pom.xml b/eclipse.platform.resources/bundles/pom.xml +new file mode 100644 +index 000000000..44a2f411b +--- /dev/null ++++ b/eclipse.platform.resources/bundles/pom.xml +@@ -0,0 +1,12 @@ ++ ++ 4.0.0 ++ ++ eclipse.platform.resources ++ eclipse.platform.resources ++ 4.16.0-SNAPSHOT ++ .. ++ ++ eclipse.platform.resources ++ eclipse.platform.resources-bundles ++ pom ++ +-- +2.26.2 + diff --git a/SOURCES/eclipse-debug-symbols.patch b/SOURCES/eclipse-debug-symbols.patch new file mode 100644 index 0000000..9d9d63d --- /dev/null +++ b/SOURCES/eclipse-debug-symbols.patch @@ -0,0 +1,38 @@ +--- eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh.orig 2018-08-19 12:37:52.764590467 +0100 ++++ eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh 2018-08-19 12:38:15.032503913 +0100 +@@ -74,7 +74,8 @@ + + MAKE_TYPE=make + +-export CFLAGS='-O -Wall -fPIC' ++export CFLAGS='-O -g -Wall -fPIC' ++export NO_STRIP=1 + + # Determine which OS we are on + if [ "${OS}" = "" ]; then +--- rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak.orig 2019-03-20 10:22:21.420240101 +0000 ++++ rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak 2019-03-20 10:53:53.375471427 +0000 +@@ -82,7 +82,7 @@ + -DPIXBUF_LIB="\"libgdk_pixbuf-2.0.so.0\"" -DGOBJ_LIB="\"libgobject-2.0.so.0\"" \ + -DGIO_LIB="\"libgio-2.0.so.0\"" -DGLIB_LIB="\"libglib-2.0.so.0\"" + LFLAGS = ${M_ARCH} -shared -fpic -Wl,--export-dynamic +-CFLAGS = ${M_CFLAGS} ${M_ARCH} -g -s -Wall\ ++CFLAGS = ${M_CFLAGS} ${M_ARCH} -g -Wall\ + -fpic \ + -DLINUX \ + -DDEFAULT_OS="\"$(DEFAULT_OS)\"" \ +--- eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/linux/makefile.orig 2019-03-20 09:49:40.694899138 +0000 ++++ eclipse.platform.team/bundles/org.eclipse.core.net/natives/unix/linux/makefile 2019-03-20 10:20:21.704664294 +0000 +@@ -25,10 +25,10 @@ + OS_TYPE = linux + JDK_INCLUDE = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${OS_TYPE} + INCLUDE = `pkg-config --cflags gio-2.0` +-COMPILER_FLAGS = -O0 -fPIC -g3 -Wall -c -fmessage-length=0 ${TARGET_ENVIRONMENT} ++COMPILER_FLAGS = $(CFLAGS) -fPIC -c ${TARGET_ENVIRONMENT} + + LIBS := `pkg-config --libs gio-2.0` +-LINKER_FLAGS= ${TARGET_ENVIRONMENT} ++LINKER_FLAGS = $(LDFLAGS) ${TARGET_ENVIRONMENT} + + all: link + diff --git a/SOURCES/eclipse-disable-droplets-in-dropins.patch b/SOURCES/eclipse-disable-droplets-in-dropins.patch new file mode 100644 index 0000000..9c78052 --- /dev/null +++ b/SOURCES/eclipse-disable-droplets-in-dropins.patch @@ -0,0 +1,47 @@ +From edd5a395dd96699f91c463c0e0409a7488814775 Mon Sep 17 00:00:00 2001 +From: Roland Grunberg +Date: Tue, 16 Aug 2016 17:51:46 -0400 +Subject: [PATCH] Skip loading droplets in the configuration during + reconciliation. + +The reconciler attempts to load droplets as extended locations, which +seems to be an expensive operation. Avoid doing this for the sake of +efficiency. + +Change-Id: Iaf07aacb2d7eaabf3730654e757e69d22f0bc4ab +--- + .../internal/p2/reconciler/dropins/PlatformXmlListener.java | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java +index 802ee1b..74023fe 100644 +--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java ++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java +@@ -172,11 +172,24 @@ public class PlatformXmlListener extends DirectoryChangeListener { + * Ensure that we have a repository for each site in the given configuration. + */ + protected void synchronizeConfiguration(Configuration config) { ++ String fragments = System.getProperty("p2.fragments"); + List sites = config.getSites(); + Set newRepos = new LinkedHashSet<>(); + Set toBeRemoved = new HashSet<>(); + for (Site site : sites) { + String siteURL = site.getUrl(); ++ if (fragments != null) { ++ String[] rootPaths = fragments.split(","); ++ boolean skip = false; ++ for (String path : rootPaths) { ++ if (siteURL.startsWith("file:" + path)) { ++ skip = true; ++ } ++ } ++ if (skip) { ++ continue; ++ } ++ } + IMetadataRepository match = getMatchingRepo(Activator.getRepositories(), siteURL); + if (match == null) { + try { +-- +2.7.4 + diff --git a/SOURCES/eclipse-disable-uses-constraints.patch b/SOURCES/eclipse-disable-uses-constraints.patch new file mode 100644 index 0000000..43278ee --- /dev/null +++ b/SOURCES/eclipse-disable-uses-constraints.patch @@ -0,0 +1,28 @@ +From 889543269853e12925ef00a6e76c3dd85ce5b915 Mon Sep 17 00:00:00 2001 +From: Roland Grunberg +Date: Tue, 25 Oct 2016 16:48:28 -0400 +Subject: [PATCH] Disable uses by default (osgi.resolver.usesMode=ignore). + set. + +--- + .../felix/src/org/apache/felix/resolver/ResolverImpl.java | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java +index ded683f..7216865 100755 +--- rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java ++++ rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java +@@ -1234,7 +1234,9 @@ public class ResolverImpl implements Resolver + { + public void run() + { +- computeUses(session, allWireCandidates, allPackages, resource); ++ if (! "ignore".equals(System.getProperty("osgi.resolver.usesMode"))) { ++ computeUses(session, allWireCandidates, allPackages, resource); ++ } + } + }); + } +-- +2.7.4 + diff --git a/SOURCES/eclipse-feature-plugins-to-category-ius.patch b/SOURCES/eclipse-feature-plugins-to-category-ius.patch new file mode 100644 index 0000000..5e797f8 --- /dev/null +++ b/SOURCES/eclipse-feature-plugins-to-category-ius.patch @@ -0,0 +1,814 @@ +From 6dd34f0b0365e0529f3852c688bfd99519f035d1 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Thu, 6 Dec 2018 11:38:58 +0000 +Subject: [PATCH] IU inclusion changes: + +* Change features bundling third-party modules to feature requirements +* Make some IU name changes to accommodate for distro-specific packaging +--- + .../org.eclipse.jdt-feature/feature.xml | 114 ++----------- + .../org.eclipse.pde-feature/feature.xml | 16 +- + .../bundles/org.eclipse.jdt.doc.isv/pom.xml | 2 +- + .../bundles/org.eclipse.pde.doc.user/pom.xml | 2 +- + .../org.eclipse.platform.doc.isv/pom.xml | 10 +- + .../org.eclipse.help-feature/feature.xml | 130 +++------------ + .../org.eclipse.platform-feature/feature.xml | 18 +-- + .../org.eclipse.sdk.tests/feature.xml | 58 ++----- + .../org.eclipse.test-feature/feature.xml | 56 +------ + .../org.eclipse.tips.feature/feature.xml | 11 +- + .../features/org.eclipse.e4.rcp/feature.xml | 150 ++---------------- + 11 files changed, 87 insertions(+), 480 deletions(-) + +diff --git a/eclipse.jdt/org.eclipse.jdt-feature/feature.xml b/eclipse.jdt/org.eclipse.jdt-feature/feature.xml +index e12ef6a13..6deae2a13 100644 +--- a/eclipse.jdt/org.eclipse.jdt-feature/feature.xml ++++ b/eclipse.jdt/org.eclipse.jdt-feature/feature.xml +@@ -19,6 +19,23 @@ + %license + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ ++ + + + + +- +- +- +- + + + eclipse-plugin +- javax.annotation ++ javax.annotation + 0.0.0 + + + eclipse-plugin +- javax.el ++ javax.el-api + 0.0.0 + + +@@ -93,7 +93,7 @@ + + + eclipse-plugin +- javax.servlet ++ javax.servlet-api + 0.0.0 + + +@@ -118,7 +118,7 @@ + + + eclipse-plugin +- org.apache.jasper.glassfish ++ org.glassfish.web.javax.servlet.jsp + 0.0.0 + + +diff --git a/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml b/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml +index 79fa77d7e..5f3d6f6d0 100644 +--- a/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml ++++ b/eclipse.platform.releng/features/org.eclipse.help-feature/feature.xml +@@ -21,69 +21,6 @@ + %license + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +diff --git a/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml b/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml +index 94f21e6f8..694d49dc1 100644 +--- a/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml ++++ b/eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml +@@ -19,6 +19,11 @@ + %license + + ++ ++ ++ ++ ++ + +@@ -32,12 +37,6 @@ + id="org.eclipse.help" + version="0.0.0"/> + +- +- + + +- +- + + ++ ++ ++ ++ ++ ++ ++ ++ ++ + +@@ -427,20 +436,6 @@ + install-size="0" + version="0.0.0"/> + +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- + + ++ ++ ++ ++ ++ ++ ++ ++ + + +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- + +diff --git a/eclipse.platform.ua/org.eclipse.tips.feature/feature.xml b/eclipse.platform.ua/org.eclipse.tips.feature/feature.xml +index b8f52fe1a..a1d866a52 100644 +--- a/eclipse.platform.ua/org.eclipse.tips.feature/feature.xml ++++ b/eclipse.platform.ua/org.eclipse.tips.feature/feature.xml +@@ -32,6 +32,10 @@ + %license + + ++ ++ ++ ++ + + +- +- + +diff --git a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +index 0ce4361be..ac28b73c2 100644 +--- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml ++++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +@@ -22,6 +22,23 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- + + +- +- + + +- +- + + +- +- +- +- +- +- + + +- +- + allIUs = getAllIUsFromRepos(); ++ HashSet removedFromAllIUs = new HashSet(); + for (Iterator iter = allIUs.iterator(); iter.hasNext();) { + final IInstallableUnit iu = iter.next(); + IInstallableUnit existing = profileIUs.get(iu); +@@ -573,6 +574,7 @@ + // (and more expensive) way to find this out is to do an IU profile property query. + if (two == null) { + // the IU is already installed so don't mark it as a dropin now - see bug 404619. ++ removedFromAllIUs.add(iu); + iter.remove(); + continue; + } +@@ -614,7 +616,7 @@ + } + // if the IU from the profile is in the "all available" list, then it is already added + // otherwise if it isn't in the repo then we have to remove it from the profile. +- if (!all.contains(iu)) ++ if (!all.contains(iu) && !removedFromAllIUs.contains(iu)) + toRemove.add(iu); + } + +@@ -787,7 +789,8 @@ + if (!installerPlanStatus.isOK()) + return installerPlanStatus; + +- applyConfiguration(true); ++ if (isReconciliationApplicationRunning()) ++ applyConfiguration(true); + } + return engine.perform(plan, phaseSet, monitor); + } +--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java.orig 2019-09-13 14:42:54.512346840 +0100 ++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java 2019-09-13 14:43:12.003296065 +0100 +@@ -158,8 +158,7 @@ + + @Override + public boolean performCancel() { +- String[] buttons = new String[] { IDialogConstants.YES_LABEL, ProvUIMessages.MigrationPage_LATER_BUTTON, +- IDialogConstants.NO_LABEL }; ++ String[] buttons = new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL }; + MessageDialog dialog = new MessageDialog(getShell(), ProvUIMessages.MigrationPage_CONFIRMATION_TITLE, null, + ProvUIMessages.MigrationPage_CONFIRMATION_DIALOG, MessageDialog.QUESTION, buttons, 2); + diff --git a/SOURCES/eclipse-fix-tests.patch b/SOURCES/eclipse-fix-tests.patch new file mode 100644 index 0000000..620831f --- /dev/null +++ b/SOURCES/eclipse-fix-tests.patch @@ -0,0 +1,280 @@ +--- eclipse.pde.ui/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java.orig 2016-04-19 20:07:36.947017206 +0100 ++++ eclipse.pde.ui/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/target/MinimalTargetDefinitionPersistenceTests.java 2016-04-19 20:09:59.166077383 +0100 +@@ -80,7 +80,7 @@ + */ + protected IPath getJdtFeatureLocation() { + IPath path = new Path(TargetPlatform.getDefaultLocation()); +- path = path.append("features"); ++ path = path.append("droplets").append("eclipse-jdt").append("features"); + File dir = path.toFile(); + assertTrue("Missing features directory", dir.exists() && !dir.isFile()); + String[] files = dir.list(); +diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java +index f1f38f0..f9111e6 100644 +--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java ++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java +@@ -246,7 +246,7 @@ + if (parent != null) { + File[] children = parent.listFiles((FileFilter) pathname -> { + String name = pathname.getName(); +- return name.startsWith("eclipse-platform-"); ++ return name.startsWith("eclipse-SDK-"); + }); + if (children != null && children.length == 1) + file = children[0]; +diff --git eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties +index 376daa6..1742a8d 100644 +--- eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties ++++ eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties +@@ -17,6 +17,7 @@ bin.includes = .,\ + resources/,\ + lib/ + src.includes = about.html +-jars.compile.order = . ++jars.compile.order = .,\ ++ lib/annotations.jar + source.. = src/ +-output.. = bin/ ++source.lib/annotations.jar = src/ +diff --git eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties +index f34ae40..0f9877d 100644 +--- eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties ++++ eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties +@@ -24,4 +24,6 @@ bin.includes = plugin.xml,\ + plugin.properties + src.includes = about.html + src.excludes = src-resources/ +-jars.compile.order = aptext.jar,apt.jar,. ++jars.compile.order = aptext.jar,apt.jar,.,\ ++ resources/question.jar ++source.resources/question.jar = src-resources/ +diff --git eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties +index bc8963d..fbe4da3 100644 +--- eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties ++++ eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties +@@ -28,3 +28,6 @@ + src.includes = about.html + compilerArg=-proc:none + jars.extra.classpath = lib/java14api.jar ++source.lib/apttestprocessors.jar = processors/ ++jars.compile.order = lib/apttestprocessors.jar,\ ++ . +--- eclipse.platform/ant/org.eclipse.ant.tests.ui/build.properties.orig 2016-03-24 14:25:47.076289150 +0000 ++++ eclipse.platform/ant/org.eclipse.ant.tests.ui/build.properties 2016-03-24 14:26:39.528660802 +0000 +@@ -28,6 +28,8 @@ + Ant Tests/ + + source.lib/antUITestsSupport.jar = test support/ +-jars.compile.order=anttestsui.jar,lib/antUITestsSupport.jar ++source.testbuildfiles/antUITestsSupport.jar = test support/ ++jars.compile.order=anttestsui.jar,lib/antUITestsSupport.jar,testbuildfiles/antUITestsSupport.jar + output.lib/antUITestsSupport.jar = test_support_bin/ ++output.testbuildfiles/antUITestsSupport.jar = test_support_bin/ + output.anttestsui.jar = bin/ +--- eclipse.jdt.ui/org.eclipse.jdt.ui.tests/build.properties.orig 2016-03-25 15:09:40.557786910 +0000 ++++ eclipse.jdt.ui/org.eclipse.jdt.ui.tests/build.properties 2016-03-25 15:12:08.476059326 +0000 +@@ -25,3 +25,5 @@ + leaks/,\ + performance/ + javacWarnings..=-raw,-unchecked ++source.testresources/nls.jar = nls/ ++jars.compile.order = .,testresources/nls.jar +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ eclipse.jdt.ui/org.eclipse.jdt.ui.tests/nls/pkg/Client.java 2004-11-12 14:37:36.000000000 +0000 +@@ -0,0 +1,25 @@ ++/******************************************************************************* ++ * Copyright (c) 2000, 2004 IBM Corporation and others. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Common Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/cpl-v10.html ++ * ++ * Contributors: ++ * IBM Corporation - initial API and implementation ++ *******************************************************************************/ ++package pkg; ++ ++public class Client { ++ ++ public String s; ++ ++ { ++ s= Messages.getString("test"); ++ s= Messages.getString("test_undefined"); ++ s= Messages.getString("duplicate"); ++ s= Messages.getString("test.long.key"); ++ s= Messages.getString("SearchResultView.removed_resource"); ++ } ++ ++} +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ eclipse.jdt.ui/org.eclipse.jdt.ui.tests/nls/pkg/Messages.java 2004-11-12 14:37:28.000000000 +0000 +@@ -0,0 +1,58 @@ ++/******************************************************************************* ++ * Copyright (c) 2000, 2004 IBM Corporation and others. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Common Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/cpl-v10.html ++ * ++ * Contributors: ++ * IBM Corporation - initial API and implementation ++ *******************************************************************************/ ++package pkg; ++ ++import java.text.MessageFormat; ++import java.util.MissingResourceException; ++import java.util.ResourceBundle; ++ ++public class Messages extends Object { ++ private static final String RESOURCE_BUNDLE = Messages.class.getName(); ++ private static ResourceBundle fgResourceBundle = ResourceBundle.getBundle(RESOURCE_BUNDLE); ++ ++ private Messages() {} ++ ++ /** ++ * Gets a string from the resource bundle and formats it with the argument ++ * ++ * @param key the string used to get the bundle value, must not be null ++ */ ++ public static String getFormattedString(String key, Object arg) { ++ String format = null; ++ ++ try { ++ format = fgResourceBundle.getString(key); ++ } catch (MissingResourceException e) { ++ return "!" + key + "!"; //$NON-NLS-2$ //$NON-NLS-1$ ++ } ++ ++ if (arg == null) { ++ arg = ""; //$NON-NLS-1$ ++ } ++ ++ return MessageFormat.format(format, new Object[] { arg }); ++ } ++ ++ /** ++ * Gets a string from the resource bundle and formats it with arguments ++ */ ++ public static String getFormattedString(String key, String[] args) { ++ return MessageFormat.format(fgResourceBundle.getString(key), args); ++ } ++ ++ public static String getString(String key) { ++ try { ++ return fgResourceBundle.getString(key); ++ } catch (MissingResourceException e) { ++ return "!" + key + "!"; //$NON-NLS-2$ //$NON-NLS-1$ ++ } ++ } ++} +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ eclipse.jdt.ui/org.eclipse.jdt.ui.tests/nls/pkg/Messages.properties 2004-11-12 14:38:06.000000000 +0000 +@@ -0,0 +1,15 @@ ++############################################################################### ++# Copyright (c) 2000, 2004 IBM Corporation and others. ++# All rights reserved. This program and the accompanying materials ++# are made available under the terms of the Common Public License v1.0 ++# which accompanies this distribution, and is available at ++# http://www.eclipse.org/legal/cpl-v10.html ++# ++# Contributors: ++# IBM Corporation - initial API and implementation ++############################################################################### ++test= Hello World ++duplicate= Duplicate 1 ++test.long.key= Hello World Long ++duplicate= Duplicate 2 ++SearchResultView.removed_resource= +--- eclipse.platform/ant/org.eclipse.ant.tests.core/build.properties.orig 2017-03-03 14:20:53.868573338 +0000 ++++ eclipse.platform/ant/org.eclipse.ant.tests.core/build.properties 2017-03-06 14:26:42.382365639 +0000 +@@ -26,6 +26,8 @@ + source.anttestscore.jar = test plugin/,\ + tests/ + source.lib/antTestsSupport.jar = test support/ +-jars.compile.order=anttestscore.jar,lib/antTestsSupport.jar ++source.testlib/classpathOrdering1.jar = testlib_src/classpathOrdering1/ ++source.testlib/classpathOrdering2.jar = testlib_src/classpathOrdering2/ ++jars.compile.order=anttestscore.jar,lib/antTestsSupport.jar,testlib/classpathOrdering1.jar,testlib/classpathOrdering2.jar + output.lib/antTestsSupport.jar = test_support_bin/ + output.anttestscore.jar = bin/ +--- /dev/null 2017-02-12 18:27:14.283389371 +0000 ++++ eclipse.platform/ant/org.eclipse.ant.tests.core/testlib_src/classpathOrdering1/ClasspathOrdering.java 2017-03-06 14:28:57.742879825 +0000 +@@ -0,0 +1,10 @@ ++import java.io.PrintStream; ++ ++public class ClasspathOrdering ++{ ++ public static void main(String[] args) ++ { ++ System.out.println("classpathOrdering1"); ++ } ++} ++ +--- /dev/null 2017-02-12 18:27:14.283389371 +0000 ++++ eclipse.platform/ant/org.eclipse.ant.tests.core/testlib_src/classpathOrdering2/ClasspathOrdering.java 2017-03-06 14:29:45.759352762 +0000 +@@ -0,0 +1,10 @@ ++import java.io.PrintStream; ++ ++public class ClasspathOrdering ++{ ++ public static void main(String[] args) ++ { ++ System.out.println("classpathOrdering2"); ++ } ++} ++ +--- eclipse.pde.build/org.eclipse.pde.build.tests/test.xml.orig 2017-04-28 11:49:47.046123546 +0100 ++++ eclipse.pde.build/org.eclipse.pde.build.tests/test.xml 2017-04-28 12:05:11.947521737 +0100 +@@ -159,13 +159,6 @@ + id="org.eclipse.jdt.source.feature.group" + version="" /> + +- +- +- + + ${tycho.surefire.argLine} + +- ++ ++ ++ org.eclipse.tycho ++ target-platform-configuration ++ ++ ++ ++ ++ eclipse-plugin ++ org.eclipse.jdt.annotation ++ 0.0.0 ++ ++ ++ ++ ++ + + + +--- eclipse.jdt.debug/org.eclipse.jdt.debug.ui/build.properties.orig 2019-12-19 05:19:24.194321737 +0000 ++++ eclipse.jdt.debug/org.eclipse.jdt.debug.ui/build.properties 2019-12-19 05:20:03.702264652 +0000 +@@ -21,6 +21,9 @@ + + src.includes = about.html,\ + schema/ ++source.snippetsupport.jar=Snippet Support/ + source.. = ui/ + output.. = bin/ ++output.snippetsupport.jar = snippet_bin/ + javacWarnings..=-unavoidableGenericProblems ++javacWarnings.snippersupport.jar=-unavoidableGenericProblems diff --git a/SOURCES/eclipse-hide-droplets-from-install-wizard.patch b/SOURCES/eclipse-hide-droplets-from-install-wizard.patch new file mode 100644 index 0000000..729b2ae --- /dev/null +++ b/SOURCES/eclipse-hide-droplets-from-install-wizard.patch @@ -0,0 +1,69 @@ +From a23545ef5b4cbb94ff048fda2839ba08c3593d50 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Thu, 3 May 2018 15:58:49 +0100 +Subject: [PATCH] Bug 534326 - Awkward p2 UI when many droplets are installed + Filter out software site locations where we know that they are p2 droplets in + places we show the list to the user. Change-Id: + I12364223850862783cb7cffd32fb7428fbf6b270 Signed-off-by: Mat Booth + + +--- + .../p2/ui/dialogs/RepositorySelectionGroup.java | 13 +++++++++++++ + .../equinox/p2/ui/RepositoryManipulationPage.java | 15 ++++++++++++++- + 2 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java +index d07be5d43..c666f8fdc 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/RepositorySelectionGroup.java +@@ -303,6 +303,19 @@ public class RepositorySelectionGroup { + void fillRepoCombo(final String selection) { + RepositoryTracker tracker = ui.getRepositoryTracker(); + URI[] sites = tracker.getKnownRepositories(ui.getSession()); ++ // Filter out sites that are actually installed p2 droplets ++ String fragments = System.getProperty("p2.fragments"); //$NON-NLS-1$ ++ ArrayList filteredSites = new ArrayList<>(Arrays.asList(sites)); ++ if (fragments != null) { ++ for (String root : fragments.split(",")) { //$NON-NLS-1$ ++ for (URI uri : sites) { ++ if (uri.getPath() != null && uri.getPath().startsWith(root)) { ++ filteredSites.remove(uri); ++ } ++ } ++ } ++ } ++ sites = filteredSites.toArray(new URI[0]); + boolean hasLocalSites = getLocalSites().length > 0; + final String[] items; + if (hasLocalSites) { +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java +index 78fb5398e..b8e724b66 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RepositoryManipulationPage.java +@@ -133,9 +133,22 @@ public class RepositoryManipulationPage extends PreferencePage implements IWorkb + if (cachedElements == null) { + Object[] children = super.fetchChildren(o, monitor); + cachedElements = new Hashtable<>(children.length); ++ String fragments = System.getProperty("p2.fragments"); //$NON-NLS-1$ + for (Object element : children) { + if (element instanceof MetadataRepositoryElement) { +- put((MetadataRepositoryElement) element); ++ // Filter out locations that are actually installed p2 droplets ++ if (fragments != null) { ++ boolean isDroplet = false; ++ for (String root : fragments.split(",")) { //$NON-NLS-1$ ++ URI childLoc = ((MetadataRepositoryElement) element).getLocation(); ++ if (childLoc.getPath() != null && childLoc.getPath().startsWith(root)) { ++ isDroplet = true; ++ } ++ } ++ if (!isDroplet) { ++ put((MetadataRepositoryElement) element); ++ } ++ } + } + } + } +-- +2.21.1 + diff --git a/SOURCES/eclipse-ignore-version-when-calculating-home.patch b/SOURCES/eclipse-ignore-version-when-calculating-home.patch new file mode 100644 index 0000000..d2b50d2 --- /dev/null +++ b/SOURCES/eclipse-ignore-version-when-calculating-home.patch @@ -0,0 +1,26 @@ +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 +index 144571914..7e99bc880 100644 +--- 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 +@@ -1330,7 +1330,7 @@ public class Main { + String appVersion = props.getProperty(PRODUCT_SITE_VERSION); + if (appVersion == null || appVersion.trim().length() == 0) + appVersion = ""; //$NON-NLS-1$ +- appName += File.separator + appId + "_" + appVersion + "_" + installDirHash; //$NON-NLS-1$ //$NON-NLS-2$ ++ appName += File.separator + appId + "_" + installDirHash; //$NON-NLS-1$ + } catch (IOException e) { + // Do nothing if we get an exception. We will default to a standard location + // in the user's home dir. +diff --git a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java +index 0c13ace6f..d92d4fc45 100755 +--- a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java ++++ b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java +@@ -308,7 +308,7 @@ public class EquinoxLocations { + String appVersion = props.getProperty(PRODUCT_SITE_VERSION); + if (appVersion == null || appVersion.trim().length() == 0) + appVersion = ""; //$NON-NLS-1$ +- appName += File.separator + appId + "_" + appVersion + "_" + installDirHash; //$NON-NLS-1$ //$NON-NLS-2$ ++ appName += File.separator + appId + "_" + installDirHash; //$NON-NLS-1$ + } catch (IOException e) { + // Do nothing if we get an exception. We will default to a standard location + // in the user's home dir. diff --git a/SOURCES/eclipse-make-droplets-runnable.patch b/SOURCES/eclipse-make-droplets-runnable.patch new file mode 100644 index 0000000..155d7b8 --- /dev/null +++ b/SOURCES/eclipse-make-droplets-runnable.patch @@ -0,0 +1,47 @@ +From decc6ec5f3c5ce87fa50c2cfe932d66e89496810 Mon Sep 17 00:00:00 2001 +From: Roland Grunberg +Date: Wed, 3 Aug 2016 14:57:10 -0400 +Subject: [PATCH] p2 Droplets should be recognized as runnable repositories. + +Normally, a runnable repository is identified by the 'p2.runnable' +property contained within the artifact repository (artifact.xml). +However, in Fedora we ship p2 Droplets without this file so we need a +way to let methods like getRunnableRepositories in +o.e.equinox.internal.p2.touchpoint.eclipse.Util know that p2 Droplets +are runnable repositories. + +Change-Id: I0ad0a7557f998b4d032466f89e6cc76036d1fb38 +--- + .../ExtensionLocationArtifactRepository.java | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java +index 342e33e..425a166 100644 +--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java ++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java +@@ -284,6 +284,22 @@ public class ExtensionLocationArtifactRepository extends AbstractRepository + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +--- eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml.orig 2014-05-26 18:37:25.406426611 +0300 ++++ eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml 2014-05-26 18:37:47.327449374 +0300 +@@ -42,6 +42,23 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +--- eclipse.platform.releng/features/org.eclipse.sdk/feature.xml.orig 2019-06-17 13:00:29.410091487 +0100 ++++ eclipse.platform.releng/features/org.eclipse.sdk/feature.xml 2019-06-17 13:00:36.270076080 +0100 +@@ -51,16 +51,6 @@ + id="org.eclipse.help.source" + version="0.0.0"/> + +- +- +- +- +- +- +- +- +- +- + + + +- + + + +--- rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java.orig 2019-06-20 11:48:48.317887414 +0100 ++++ rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java 2019-06-20 11:49:35.106774459 +0100 +@@ -79,10 +79,6 @@ + import javax.servlet.http.HttpSessionListener; + import javax.servlet.http.Part; + +-import org.apache.commons.fileupload.FileItem; +-import org.apache.commons.fileupload.FileUploadException; +-import org.apache.commons.fileupload.disk.DiskFileItemFactory; +-import org.apache.commons.fileupload.servlet.ServletFileUpload; + import org.eclipse.equinox.http.servlet.ExtendedHttpService; + import org.eclipse.equinox.http.servlet.RangeAwareServletContextHelper; + import org.eclipse.equinox.http.servlet.context.ContextPathCustomizer; +@@ -2657,66 +2653,6 @@ + } + + @Test +- public void test_commonsFileUpload() throws Exception { +- Servlet servlet = new HttpServlet() { +- private static final long serialVersionUID = 1L; +- +- @Override +- protected void doPost(HttpServletRequest req, HttpServletResponse resp) +- throws IOException { +- +- boolean isMultipart = ServletFileUpload.isMultipartContent(req); +- Assert.assertTrue(isMultipart); +- +- DiskFileItemFactory factory = new DiskFileItemFactory(); +- +- ServletContext servletContext = this.getServletConfig().getServletContext(); +- File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); +- factory.setRepository(repository); +- ServletFileUpload upload = new ServletFileUpload(factory); +- +- List items = null; +- try { +- List parseRequest = upload.parseRequest(req); +- items = parseRequest; +- } catch (FileUploadException e) { +- e.printStackTrace(); +- } +- +- Assert.assertNotNull(items); +- Assert.assertFalse(items.isEmpty()); +- +- FileItem fileItem = items.get(0); +- +- String submittedFileName = fileItem.getName(); +- String contentType = fileItem.getContentType(); +- long size = fileItem.getSize(); +- +- PrintWriter writer = resp.getWriter(); +- +- writer.write(submittedFileName); +- writer.write("|"); +- writer.write(contentType); +- writer.write("|" + size); +- } +- }; +- +- Dictionary props = new Hashtable<>(); +- props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, "S16"); +- props.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/Servlet16/*"); +- registrations.add(getBundleContext().registerService(Servlet.class, servlet, props)); +- +- Map> map = new HashMap<>(); +- +- map.put("file", Arrays.asList(getClass().getResource("blue.png"))); +- +- Map> result = requestAdvisor.upload("Servlet16/do", map); +- +- Assert.assertEquals("200", result.get("responseCode").get(0)); +- Assert.assertEquals("blue.png|image/png|292", result.get("responseBody").get(0)); +- } +- +- @Test + public void test_PathEncodings_Bug540970() throws Exception { + Servlet servlet = new HttpServlet() { + private static final long serialVersionUID = 1L; diff --git a/SOURCES/eclipse-pde-tp-support-droplets.patch b/SOURCES/eclipse-pde-tp-support-droplets.patch new file mode 100644 index 0000000..59ae65d --- /dev/null +++ b/SOURCES/eclipse-pde-tp-support-droplets.patch @@ -0,0 +1,119 @@ +From 7843458db4b359cbee040c17ddda21d5fa6ddd35 Mon Sep 17 00:00:00 2001 +From: Roland Grunberg +Date: Thu, 7 Apr 2016 10:23:49 -0400 +Subject: [PATCH] Support reading BundleInfo from p2 Droplets enabled + installations. + +- Additionally support reading source bundles from p2 Droplets location +--- + .../org.eclipse.pde.core/META-INF/MANIFEST.MF | 1 + + .../eclipse/pde/internal/core/P2Utils.java | 50 +++++++++++++++++-- + 2 files changed, 46 insertions(+), 5 deletions(-) + +diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF b/eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF +index f045abd5b..864665785 100644 +--- a/eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF ++++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/META-INF/MANIFEST.MF +@@ -102,5 +102,6 @@ Require-Bundle: + org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)" + Eclipse-LazyStart: true + Bundle-RequiredExecutionEnvironment: JavaSE-1.8 ++Import-Package: org.eclipse.equinox.internal.simpleconfigurator.utils + Bundle-ActivationPolicy: lazy + Automatic-Module-Name: org.eclipse.pde.core +diff --git a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java +index 696d2318f..7ab4596d5 100644 +--- a/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java ++++ b/eclipse.pde.ui/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/P2Utils.java +@@ -17,8 +17,9 @@ package org.eclipse.pde.internal.core; + import java.io.File; + import java.io.FileNotFoundException; + import java.io.IOException; +-import java.net.MalformedURLException; +-import java.net.URL; ++import java.net.*; ++import java.nio.file.Paths; ++import java.util.Arrays; + import java.util.ArrayList; + import java.util.Collection; + import java.util.HashMap; +@@ -31,7 +32,9 @@ import org.eclipse.core.runtime.IStatus; + import org.eclipse.core.runtime.NullProgressMonitor; + import org.eclipse.core.runtime.Path; + import org.eclipse.core.runtime.Status; ++import org.eclipse.core.runtime.URIUtil; + import org.eclipse.equinox.frameworkadmin.BundleInfo; ++import org.eclipse.equinox.internal.simpleconfigurator.utils.SimpleConfiguratorUtils; + import org.eclipse.equinox.p2.core.IProvisioningAgent; + import org.eclipse.equinox.p2.core.IProvisioningAgentProvider; + import org.eclipse.equinox.p2.engine.IEngine; +@@ -60,6 +63,7 @@ import org.eclipse.pde.core.plugin.IPluginModelBase; + import org.eclipse.pde.core.plugin.TargetPlatform; + import org.eclipse.pde.internal.build.BundleHelper; + import org.eclipse.pde.internal.core.plugin.PluginBase; ++import org.eclipse.pde.internal.core.util.ManifestUtils; + import org.osgi.framework.Constants; + + /** +@@ -139,7 +143,16 @@ public class P2Utils { + try { + URL bundlesTxt = new URL(configurationArea.getProtocol(), configurationArea.getHost(), new File(configurationArea.getFile(), SimpleConfiguratorManipulator.BUNDLES_INFO_PATH).getAbsolutePath()); + File home = basePath.toFile(); +- BundleInfo bundles[] = getBundlesFromFile(bundlesTxt, home); ++ List ibundleList = SimpleConfiguratorUtils.readConfiguration(bundlesTxt, home.toURI()); ++ List bundleList = new ArrayList<>(); ++ for (org.eclipse.equinox.internal.simpleconfigurator.utils.BundleInfo b : ibundleList) { ++ URI location = b.getLocation(); ++ if (!location.isAbsolute() && b.getBaseLocation() != null) ++ location = URIUtil.makeAbsolute(location, b.getBaseLocation()); ++ BundleInfo binfo = new BundleInfo(b.getSymbolicName(), b.getVersion(), location, b.getStartLevel(), b.isMarkedAsStarted()); ++ bundleList.add(binfo); ++ } ++ BundleInfo[] bundles = bundleList.toArray(new BundleInfo[0]); + if (bundles == null || bundles.length == 0) { + return null; + } +@@ -168,11 +181,38 @@ public class P2Utils { + try { + File home = basePath.toFile(); + URL srcBundlesTxt = new URL(configurationArea.getProtocol(), configurationArea.getHost(), configurationArea.getFile().concat(SimpleConfiguratorManipulator.SOURCE_INFO_PATH)); ++ final List allSrcBundles = new ArrayList<>(); ++ try { ++ for (File infoFile : SimpleConfiguratorUtils.getInfoFiles()) { ++ File pluginsDir = Paths.get(infoFile.getParent(), "plugins").toFile(); //$NON-NLS-1$ ++ File[] sourceJars = pluginsDir.listFiles((dir, name) -> { ++ return name.matches(".*\\.source_.*\\.jar$"); //$NON-NLS-1$ ++ }); ++ for (File sourceJar : sourceJars) { ++ Map manifest; ++ try { ++ manifest = ManifestUtils.loadManifest(sourceJar); ++ final String bsn = manifest.get(Constants.BUNDLE_SYMBOLICNAME); ++ final String version = manifest.get(Constants.BUNDLE_VERSION); ++ BundleInfo info = new BundleInfo(bsn, version, sourceJar.toURI(), -1, false); ++ allSrcBundles.add(info); ++ } catch (CoreException e) { ++ // continue ++ } ++ } ++ } ++ } catch (URISyntaxException e) { ++ // continue ++ } ++ + BundleInfo srcBundles[] = getBundlesFromFile(srcBundlesTxt, home); +- if (srcBundles == null || srcBundles.length == 0) { ++ if (srcBundles != null && srcBundles.length > 0) { ++ allSrcBundles.addAll(Arrays.asList(srcBundles)); ++ } ++ if (allSrcBundles.size() == 0) { + return null; + } +- return srcBundles; ++ return allSrcBundles.toArray(new BundleInfo[0]); + } catch (IOException e) { + PDECore.log(e); + return null; +-- +2.21.1 + diff --git a/SOURCES/eclipse-secondary-arches.patch b/SOURCES/eclipse-secondary-arches.patch new file mode 100644 index 0000000..931eb5d --- /dev/null +++ b/SOURCES/eclipse-secondary-arches.patch @@ -0,0 +1,144 @@ +diff --git a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +index 7e1f520..734dd10 100644 +--- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml ++++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml +@@ -393,6 +393,26 @@ + unpack="false"/> + + ++ ++ ++ ++ ++ ++ ++ ++ + +--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml 2014-11-28 15:09:42.000000000 +0000 ++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/pom.xml 2014-11-28 16:52:00.315007846 +0000 +@@ -123,7 +123,9 @@ + + + ++ + ++ + + + +--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties 2015-01-30 14:44:03.436891441 +0000 ++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties 2015-01-30 14:45:25.232480509 +0000 +@@ -32,3 +32,9 @@ + + root.linux.gtk.x86_64=bin/gtk/linux/x86_64,gtk_root + root.linux.gtk.x86_64.permissions.755=libcairo-swt.so ++ ++root.linux.gtk.aarch64=bin/gtk/linux/aarch64,gtk_root ++root.linux.gtk.aarch64.permissions.755=launcher ++ ++root.linux.gtk.s390x=bin/gtk/linux/s390x,gtk_root ++root.linux.gtk.s390x.permissions.755=launcher +--- 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 +@@ -54,7 +54,9 @@ + + + bundles/org.eclipse.swt.cocoa.macosx.x86_64 ++ bundles/org.eclipse.swt.gtk.linux.aarch64 + bundles/org.eclipse.swt.gtk.linux.ppc64le ++ bundles/org.eclipse.swt.gtk.linux.s390x + bundles/org.eclipse.swt.gtk.linux.x86_64 + bundles/org.eclipse.swt.win32.win32.x86_64 + +--- a/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf 2017-04-21 10:15:34.857977599 +0100 ++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/META-INF/p2.inf 2017-04-21 10:18:22.878025820 +0100 +@@ -24,3 +24,13 @@ + requires.5.name = org.eclipse.swt.gtk.linux.ppc64le + requires.5.range = [$version$,$version$] + requires.5.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=ppc64le)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.6.namespace = org.eclipse.equinox.p2.iu ++requires.6.name = org.eclipse.swt.gtk.linux.aarch64 ++requires.6.range = [$version$,$version$] ++requires.6.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=aarch64)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.7.namespace = org.eclipse.equinox.p2.iu ++requires.7.name = org.eclipse.swt.gtk.linux.s390x ++requires.7.range = [$version$,$version$] ++requires.7.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=s390x)(!(org.eclipse.swt.buildtime=true))) +--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh 2017-04-19 13:31:15.000000000 +0100 ++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/build.sh 2017-04-23 16:58:34.022207885 +0100 +@@ -100,7 +100,7 @@ + "s390x") + defaultOSArch="s390x" + defaultJava=DEFAULT_JAVA_EXEC +- OUTPUT_DIR="$EXEC_DIR/contributed/$defaultWS/$defaultOS/$defaultOSArch" ++ OUTPUT_DIR="$EXEC_DIR/bin/$defaultWS/$defaultOS/$defaultOSArch" + ;; + "aarch64") + 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 ++ ++ + + + diff --git a/SOURCES/eclipse-support-symlink-bundles.patch b/SOURCES/eclipse-support-symlink-bundles.patch new file mode 100644 index 0000000..26de5cf --- /dev/null +++ b/SOURCES/eclipse-support-symlink-bundles.patch @@ -0,0 +1,156 @@ +From aabcf5acff194b807c4d0bcf68425c3452c90339 Mon Sep 17 00:00:00 2001 +From: Roland Grunberg +Date: Fri, 12 Sep 2014 10:27:14 -0400 +Subject: [PATCH] Add support for regenerating bundle versions for symlinks. + +When the version field in a bundle info file corresponds to a bundle +whose location is a symbolic link, the correct version should be +regenerated every time, in case a change has occured. + +Change-Id: Ifbe8efed2218a8a1250fd1ac59f0cdd6bdd5f309 +--- + .../META-INF/MANIFEST.MF | 1 + + .../utils/SimpleConfiguratorUtils.java | 106 ++++++++++++++++++++- + 2 files changed, 106 insertions(+), 1 deletion(-) + +diff --git rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF +index d88d0a6..07fe087 100644 +--- rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF ++++ rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF +@@ -9,6 +9,7 @@ Bundle-Activator: org.eclipse.equinox.internal.simpleconfigurator.Activator + Bundle-ActivationPolicy: lazy + Import-Package: org.eclipse.osgi.framework.console;version="1.0.0";resolution:=optional, + org.eclipse.osgi.service.datalocation;version="1.0.0";resolution:=optional, ++ org.eclipse.osgi.util;version="1.1.0", + org.osgi.framework;version="1.3.0", + org.osgi.framework.namespace;version="1.0.0", + org.osgi.framework.startlevel;version="1.0.0", +diff --git rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +index ab69b88..d6bf121 100644 +--- rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java ++++ rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +@@ -20,8 +20,12 @@ + import java.nio.file.Files; + import java.nio.file.attribute.FileTime; + import java.util.*; ++import java.util.jar.JarFile; ++import java.util.zip.ZipEntry; ++import java.util.zip.ZipFile; + import org.eclipse.equinox.internal.simpleconfigurator.Activator; +-import org.osgi.framework.Version; ++import org.eclipse.osgi.util.ManifestElement; ++import org.osgi.framework.*; + + public class SimpleConfiguratorUtils { + +@@ -282,6 +286,16 @@ + String symbolicName = tok.nextToken().trim(); + String version = tok.nextToken().trim(); + URI location = parseLocation(tok.nextToken().trim()); ++ if (base != null) { ++ URI absLoc = URIUtil.append(base, location.toString()); ++ java.nio.file.Path absPath = java.nio.file.Paths.get(absLoc); ++ // Symbolic links may change outside Eclipse so regenerate proper bundle version. ++ if (Files.isSymbolicLink(absPath) && absPath.toFile().isFile()) { ++ // We can't depend on org.eclipse.equinox.internal.frameworkadmin.utils.Utils ++ Dictionary manifest = getOSGiManifest(absLoc); ++ version = manifest.get(Constants.BUNDLE_VERSION); ++ } ++ } + int startLevel = Integer.parseInt(tok.nextToken().trim()); + boolean markedAsStarted = Boolean.parseBoolean(tok.nextToken()); + BundleInfo result = new BundleInfo(symbolicName, version, location, startLevel, markedAsStarted); +@@ -420,4 +434,93 @@ + } + return lastModified; + } ++ ++ private static Dictionary getOSGiManifest(URI location) { ++ if (location == null) ++ return null; ++ // if we have a file-based URL that doesn't end in ".jar" then... ++ if (FILE_SCHEME.equals(location.getScheme())) ++ return basicLoadManifest(URIUtil.toFile(location)); ++ ++ try { ++ URL url = new URL("jar:" + location.toString() + "!/"); //$NON-NLS-1$//$NON-NLS-2$ ++ JarURLConnection jarConnection = (JarURLConnection) url.openConnection(); ++ ZipFile jar = jarConnection.getJarFile(); ++ ++ try { ++ ZipEntry entry = jar.getEntry(JarFile.MANIFEST_NAME); ++ if (entry == null) ++ return null; ++ ++ Map manifest = ManifestElement.parseBundleManifest(jar.getInputStream(entry), null); ++ return manifestToProperties(manifest); ++ } catch (BundleException e) { ++ return null; ++ } finally { ++ jar.close(); ++ } ++ } catch (IOException e) { ++ if (System.getProperty("osgi.debug") != null) { //$NON-NLS-1$ ++ System.err.println("location=" + location); //$NON-NLS-1$ ++ e.printStackTrace(); ++ } ++ } ++ return null; ++ } ++ ++ private static Dictionary basicLoadManifest(File bundleLocation) { ++ InputStream manifestStream = null; ++ ZipFile jarFile = null; ++ try { ++ try { ++ // Handle a JAR'd bundle ++ if (bundleLocation.isFile()) { ++ jarFile = new ZipFile(bundleLocation, ZipFile.OPEN_READ); ++ ZipEntry manifestEntry = jarFile.getEntry(JarFile.MANIFEST_NAME); ++ if (manifestEntry != null) { ++ manifestStream = jarFile.getInputStream(manifestEntry); ++ } ++ } else { ++ // we have a directory-based bundle ++ File bundleManifestFile = new File(bundleLocation, JarFile.MANIFEST_NAME); ++ if (bundleManifestFile.exists()) ++ manifestStream = new BufferedInputStream(new FileInputStream(new File(bundleLocation, JarFile.MANIFEST_NAME))); ++ } ++ } catch (IOException e) { ++ //ignore ++ } ++ ++ try { ++ Map manifest = ManifestElement.parseBundleManifest(manifestStream, null); ++ return manifestToProperties(manifest); ++ } catch (IOException ioe) { ++ return null; ++ } catch (BundleException e) { ++ return null; ++ } ++ } finally { ++ try { ++ if (manifestStream != null) ++ manifestStream.close(); ++ } catch (IOException e1) { ++ //Ignore ++ } ++ try { ++ if (jarFile != null) ++ jarFile.close(); ++ } catch (IOException e2) { ++ //Ignore ++ } ++ } ++ } ++ ++ private static Dictionary manifestToProperties(Map d) { ++ Iterator iter = d.keySet().iterator(); ++ Dictionary result = new Hashtable(); ++ while (iter.hasNext()) { ++ String key = iter.next(); ++ result.put(key, d.get(key)); ++ } ++ return result; ++ } + } diff --git a/SOURCES/eclipse-swt-avoid-javascript-at-build.patch b/SOURCES/eclipse-swt-avoid-javascript-at-build.patch new file mode 100644 index 0000000..8de5935 --- /dev/null +++ b/SOURCES/eclipse-swt-avoid-javascript-at-build.patch @@ -0,0 +1,121 @@ +From dd7d5dd0a820b3efd1a7955a7b80c881a40ddafc Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Sat, 21 Mar 2020 15:29:00 +0000 +Subject: [PATCH] Avoid the need to have javascript interpreter in the build + root + +--- + .../bundles/binaries-parent/pom.xml | 17 ------ + .../bundles/org.eclipse.swt/buildSWT.xml | 53 ++++--------------- + 2 files changed, 11 insertions(+), 59 deletions(-) + +diff --git a/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml b/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml +index 4d209cfdc..eab439ae5 100644 +--- a/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml ++++ b/eclipse.platform.swt.binaries/bundles/binaries-parent/pom.xml +@@ -75,23 +75,6 @@ + + + +- +- +- org.mozilla +- rhino-runtime +- 1.7.12 +- +- +- org.apache.ant +- ant +- 1.10.7 +- +- +- org.apache.ant +- ant-apache-bsf +- 1.10.7 +- +- + + + +diff --git a/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml b/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml +index 9d4bb1b6f..6c1cdf690 100644 +--- a/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml ++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml +@@ -374,27 +374,8 @@ + + + +- + +- +- Version=${swt_version}; New=${new_version}; New comma_ver=${new_comma_ver} ++ Version=${swt_version} + + + +@@ -523,11 +504,7 @@ + + + +- ++ + + + +@@ -661,23 +638,15 @@ + + + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +-- +2.21.1 + diff --git a/SOURCES/explicit-hamcrest.patch b/SOURCES/explicit-hamcrest.patch new file mode 100644 index 0000000..d0574be --- /dev/null +++ b/SOURCES/explicit-hamcrest.patch @@ -0,0 +1,59 @@ +--- eclipse.jdt.debug/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF.orig 2018-08-20 12:54:25.245305107 +0100 ++++ eclipse.jdt.debug/org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF 2018-08-20 12:54:37.952261537 +0100 +@@ -33,6 +33,7 @@ + org.eclipse.ui.workbench.texteditor;resolution:=optional, + org.eclipse.ui.editors;resolution:=optional, + org.junit, ++ org.hamcrest.core, + org.eclipse.core.resources, + org.eclipse.core.variables, + org.eclipse.ui, +--- eclipse.platform.ui/tests/org.eclipse.tests.urischeme/META-INF/MANIFEST.MF.orig 2018-08-20 13:22:04.987695821 +0100 ++++ eclipse.platform.ui/tests/org.eclipse.tests.urischeme/META-INF/MANIFEST.MF 2018-08-20 13:22:28.507613518 +0100 +@@ -7,4 +7,5 @@ + Fragment-Host: org.eclipse.urischeme;bundle-version="1.0.0" + Automatic-Module-Name: org.eclipse.urischeme.tests + Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +-Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)" ++Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)", ++ org.hamcrest.core;bundle-version="1.3.0" +--- eclipse.pde.ui/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF.orig 2019-06-20 11:25:47.959981490 +0100 ++++ eclipse.pde.ui/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF 2019-06-20 11:26:06.444935061 +0100 +@@ -9,6 +9,7 @@ + Require-Bundle: org.eclipse.pde.ui;bundle-version="3.10.0", + org.eclipse.pde.ui.templates;bundle-version="3.6.0", + org.junit;bundle-version="4.13.0", ++ org.hamcrest.core;bundle-version="1.3.0", + org.eclipse.core.runtime;bundle-version="3.13.0", + org.eclipse.core.resources;bundle-version="3.12.0", + org.eclipse.ui.ide;bundle-version="3.13.0", +--- eclipse.platform.text/org.eclipse.text.tests/META-INF/MANIFEST.MF.orig 2019-09-21 16:37:52.645515694 +0100 ++++ eclipse.platform.text/org.eclipse.text.tests/META-INF/MANIFEST.MF 2019-09-21 16:38:25.034443980 +0100 +@@ -13,6 +13,7 @@ + org.eclipse.core.commands;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.text;bundle-version="[3.6.3,4.0.0)", ++ org.hamcrest.core;bundle-version="1.3.0", + org.junit;bundle-version="4.12.0" + Bundle-RequiredExecutionEnvironment: JavaSE-1.8 + Eclipse-BundleShape: dir +--- eclipse.pde.ui/ui/org.eclipse.pde.junit.runtime.tests/META-INF/MANIFEST.MF.orig 2019-09-21 17:06:17.944749329 +0100 ++++ eclipse.pde.ui/ui/org.eclipse.pde.junit.runtime.tests/META-INF/MANIFEST.MF 2019-09-21 17:06:43.846692344 +0100 +@@ -9,6 +9,7 @@ + Bundle-ActivationPolicy: lazy + Eclipse-BundleShape: dir + Require-Bundle: org.junit, ++ org.hamcrest.core;bundle-version="1.3.0", + org.hamcrest.library;bundle-version="1.3.0", + org.eclipse.core.runtime;bundle-version="3.15.400", + org.eclipse.pde.launching;bundle-version="3.7.700", +--- eclipse.pde.ui/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF.orig 2019-09-23 09:46:23.507897561 +0100 ++++ eclipse.pde.ui/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF 2019-09-23 09:46:45.658839342 +0100 +@@ -7,6 +7,7 @@ + Bundle-Activator: org.eclipse.pde.ui.tests.PDETestsPlugin + Bundle-Vendor: Eclipse.org + Require-Bundle: org.junit, ++ org.hamcrest.core, + org.eclipse.pde.ui, + org.eclipse.ui, + org.eclipse.core.resources, diff --git a/SOURCES/fix_ant_build.patch b/SOURCES/fix_ant_build.patch new file mode 100644 index 0000000..40f51d8 --- /dev/null +++ b/SOURCES/fix_ant_build.patch @@ -0,0 +1,161 @@ +--- eclipse.platform/ant/org.eclipse.ant.launching/build.properties.orig 2017-01-09 10:24:16.258243377 +0000 ++++ eclipse.platform/ant/org.eclipse.ant.launching/build.properties 2017-01-09 10:25:08.302620557 +0000 +@@ -23,18 +23,14 @@ + about.html + + jars.compile.order = .,\ +- lib/loggers.jar +-# antdebug.jar and remote.jar are compiled locally using 1.6, see bug 495617: +-# lib/antdebug.jar,\ +-# lib/remote.jar ++ lib/antdebug.jar,\ ++ lib/loggers.jar,\ ++ lib/remote.jar + source.lib/loggers.jar = loggers/ + output.lib/loggers.jar = loggers_bin/ +-extra.lib/loggers.jar = lib/antdebug.jar +-#source.lib/antdebug.jar = common/ +-#output.lib/antdebug.jar = common_bin/ +-#source.lib/remote.jar = remote/ +-#output.lib/remote.jar = remote_bin/ +-src.includes = about.html,\ +- remote/,\ +- common/ ++source.lib/antdebug.jar = common/ ++output.lib/antdebug.jar = common_bin/ ++source.lib/remote.jar = remote/ ++output.lib/remote.jar = remote_bin/ ++src.includes = about.html + javacWarnings..=-unavoidableGenericProblems +--- eclipse.platform/ant/org.eclipse.ant.ui/build.properties.orig 2017-04-03 18:40:41.033489412 +0100 ++++ eclipse.platform/ant/org.eclipse.ant.ui/build.properties 2017-04-03 18:43:21.614928391 +0100 +@@ -17,8 +17,8 @@ + source.lib/antrunner.jar = Ant Runner Support/ + output.lib/antrunner.jar = ant_runner_support_bin/ + # Compiled with 1.6 locally, see bug 495617: +-#source.lib/remoteAnt.jar = Remote Ant Support/ +-#output.lib/remoteAnt.jar = remote_support_bin/ ++source.lib/remoteAnt.jar = Remote Ant Support/ ++output.lib/remoteAnt.jar = remote_support_bin/ + src.includes = about.html,\ + about_files/,\ + Remote Ant Support/ +@@ -34,6 +34,5 @@ + lib/antrunner.jar,\ + lib/remoteAnt.jar,\ + css/ +-jars.compile.order=.,lib/antrunner.jar +-# ,lib/remoteAnt.jar ++jars.compile.order=.,lib/antrunner.jar,lib/remoteAnt.jar + javacWarnings..=-unavoidableGenericProblems +--- eclipse.platform.common/bundles/org.eclipse.jdt.doc.user/build.xml.orig 2017-01-09 13:30:24.238066571 +0000 ++++ eclipse.platform.common/bundles/org.eclipse.jdt.doc.user/build.xml 2017-01-09 13:31:19.228456113 +0000 +@@ -1,106 +1,8 @@ + +- ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + diff --git a/SOURCES/force-clean-after-p2-operations.patch b/SOURCES/force-clean-after-p2-operations.patch new file mode 100644 index 0000000..c1e0d3c --- /dev/null +++ b/SOURCES/force-clean-after-p2-operations.patch @@ -0,0 +1,80 @@ +From d964680827a248e8a312c000c4c2443f96c8c459 Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Fri, 27 Sep 2019 14:52:54 +0100 +Subject: [PATCH] Force a clean on the restart after p2 operations + +--- + .../META-INF/MANIFEST.MF | 2 +- + .../bundles/org.eclipse.equinox.launcher/pom.xml | 2 +- + .../src/org/eclipse/equinox/launcher/Main.java | 13 +++++++++++++ + .../internal/p2/ui/ProvisioningOperationRunner.java | 6 ++++++ + 4 files changed, 21 insertions(+), 2 deletions(-) + +diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF +index 497e5d6fa..a118a0e4c 100644 +--- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF ++++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF +@@ -2,7 +2,7 @@ Manifest-Version: 1.0 + Bundle-ManifestVersion: 2 + Bundle-Name: %pluginName + Bundle-SymbolicName: org.eclipse.equinox.launcher;singleton:=true +-Bundle-Version: 1.5.700.qualifier ++Bundle-Version: 1.5.701.qualifier + Main-Class: org.eclipse.equinox.launcher.Main + Bundle-ClassPath: . + Bundle-Vendor: %providerName +diff --git a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml +index 43849b5b8..c5d2cdfea 100644 +--- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml ++++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/pom.xml +@@ -19,6 +19,6 @@ + + org.eclipse.equinox + org.eclipse.equinox.launcher +- 1.5.700-SNAPSHOT ++ 1.5.701-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 +index d013ff7c2..65f4cfd8a 100644 +--- 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 +@@ -560,6 +560,18 @@ + setupVMProperties(); + processConfiguration(); + ++ File oca = new File(getConfigurationLocation().toURI()); ++ File ocaFile = new File(oca, "clean_on_restart"); ++ if (ocaFile.exists()) { ++ System.err.println("Clean triggered."); //$NON-NLS-1$ ++ ocaFile.delete(); ++ commands = Arrays.copyOf(args, args.length + 1); ++ commands[commands.length-1] = CLEAN; ++ passThruArgs = Arrays.copyOf(passThruArgs, passThruArgs.length + 1); ++ passThruArgs[passThruArgs.length-1] = CLEAN; ++ setupVMProperties(); ++ } ++ + if (protectBase && (System.getProperty(PROP_SHARED_CONFIG_AREA) == null)) { + System.err.println("This application is configured to run in a cascaded mode only."); //$NON-NLS-1$ + System.setProperty(PROP_EXITCODE, Integer.toString(14)); +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningOperationRunner.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningOperationRunner.java +index a70b640ba..8a002ebc2 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningOperationRunner.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvisioningOperationRunner.java +@@ -72,6 +72,12 @@ public class ProvisioningOperationRunner { + * @param restartPolicy + */ + void requestRestart(final int restartPolicy) { ++ String oca = System.getProperty("osgi.configuration.area"); ++ try { ++ java.io.File ocaCleanFile = new java.io.File(new java.net.URL(oca).toURI()); ++ new java.io.File(ocaCleanFile, "clean_on_restart").createNewFile(); ++ } catch (Exception e) { /* Eh, we tried... */ } ++ + // Global override of restart (used in test cases). + if (suppressRestart) + return; +-- +2.20.1 + diff --git a/SOURCES/prefer_x11_backend.patch b/SOURCES/prefer_x11_backend.patch new file mode 100644 index 0000000..838ab61 --- /dev/null +++ b/SOURCES/prefer_x11_backend.patch @@ -0,0 +1,14 @@ +--- rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/eclipseGtkInit.c.orig 2018-08-22 15:19:04.602623018 +0100 ++++ rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/eclipseGtkInit.c 2018-08-22 15:20:03.453348722 +0100 +@@ -114,6 +114,11 @@ + #define DLFLAGS RTLD_LAZY + #endif + ++ char *gdkBackend = getenv("GDK_BACKEND"); ++ if (gdkBackend == NULL) { ++ setenv("GDK_BACKEND", "x11", 0); ++ } ++ + void *gioLib = NULL, *glibLib = NULL, *gdkLib = NULL, *gtkLib = NULL, *objLib = NULL, *pixLib = NULL; + + gdkLib = dlopen(GDK3_LIB, DLFLAGS); diff --git a/SOURCES/toolchains.xml b/SOURCES/toolchains.xml new file mode 100644 index 0000000..a044b1a --- /dev/null +++ b/SOURCES/toolchains.xml @@ -0,0 +1,110 @@ + + + jdk + + CDC-1.0/Foundation-1.0 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + CDC-1.1/Foundation-1.1 + + + /usr/lib/jvm/java-1.8.0 + + + + + + jdk + + OSGi/Minimum-1.0 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + OSGi/Minimum-1.1 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + OSGi/Minimum-1.2 + + + /usr/lib/jvm/java-1.8.0 + + + + + + jdk + + J2SE-1.4 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + J2SE-1.5 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + JavaSE-1.6 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + JavaSE-1.7 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + JavaSE-1.8 + + + /usr/lib/jvm/java-1.8.0 + + + + jdk + + JavaSE-11 + + + /usr/lib/jvm/java-11 + + + + + + + + diff --git a/SPECS/eclipse.spec b/SPECS/eclipse.spec new file mode 100644 index 0000000..b721779 --- /dev/null +++ b/SPECS/eclipse.spec @@ -0,0 +1,1443 @@ +# Set to build Eclipse without circular dependency to eclipse-pde, API +# generation and docs will not be built and a second run will be required, but +# this is a way to bootstrap Eclipse on secondary archs. +%bcond_with bootstrap + +# Set this to avoid building contributor tools +%bcond_without contrib_tools + +Epoch: 1 + +%global eb_commit b056b40d26d052b788b790f27ead774ff804ab55 +%global eclipse_rel %{version} +%global eclipse_tag R-%{eclipse_rel}-202006040540 + +%global _jetty_version 9.4.30 +%global _lucene_version 8.4.1 +%global _batik_version 1.11 + +%ifarch %{ix86} + %global eclipse_arch x86 +%endif +%ifarch %{arm} + %global eclipse_arch arm +%endif +%ifarch s390x x86_64 aarch64 ppc64le + %global eclipse_arch %{_arch} +%endif + +# Desktop file information +%global app_name %{?app_name_prefix}%{!?app_name_prefix:Eclipse} +%global app_exec %{?app_exec_prefix} eclipse + +# Eclipse is arch-specific, but multilib agnostic +%global _eclipsedir %{_prefix}/lib/eclipse + +%if 0%{?fedora} || 0%{?rhel} > 7 +%global use_wayland 1 +%else +%global use_wayland 0 +%endif + +# Glassfish EE APIs that moved to jakarta namespace +%if 0%{?fedora} +%global _jakarta_annotations jakarta.annotation-api +%else +%global _jakarta_annotations javax.annotation-api +%endif + +Summary: An open, extensible IDE +Name: eclipse +Version: 4.16 +Release: 7%{?dist} +License: EPL-2.0 +URL: http://www.eclipse.org/ + +Source0: https://download.eclipse.org/eclipse/downloads/drops4/%{eclipse_tag}/eclipse-platform-sources-%{eclipse_rel}.tar.xz + +# Can generate locally with: +# git archive --format=tar --prefix=org.eclipse.linuxtools.eclipse-build-%%{eb_commit}/ \ +# %%{eb_commit} | xz > org.eclipse.linuxtools.eclipse-build-%%{eb_commit}.tar.xz +Source1: http://git.eclipse.org/c/linuxtools/org.eclipse.linuxtools.eclipse-build.git/snapshot/org.eclipse.linuxtools.eclipse-build-%{eb_commit}.tar.xz + +# Toolchain configurations for all EEs needed by Eclipse bundles +Source2: toolchains.xml + +# Eclipse should not include source for dependencies that are not supplied by this package +# and should not include source for bundles that are not relevant to our platform +Patch0: eclipse-no-source-for-dependencies.patch + +# https://bugs.eclipse.org/bugs/show_bug.cgi?id=377515 +Patch1: eclipse-p2-pick-up-renamed-jars.patch + +# Patch for this was contributed. Unlikely to be released. +Patch2: eclipse-ignore-version-when-calculating-home.patch + +# Explicit requirement on hamcrest where it is used directly +Patch3: explicit-hamcrest.patch + +# Add support for all arches supported by Fedora +Patch4: eclipse-secondary-arches.patch + +Patch5: eclipse-debug-symbols.patch + +# https://bugs.eclipse.org/bugs/show_bug.cgi?id=408138 +Patch12: eclipse-fix-dropins.patch + +# Feature plugin definitions lock onto version of plugin at build-time. +# If plugin is external, updating it breaks the feature. (version changes) +# Workaround : Change definition to a 'requirement' +# Also makes the following BSN changes at the same time: +# com.sun.el -> com.sun.el.javax.el +# javax.el -> javax.el-api +# javax.servlet -> javax.servlet-api +# org.apache.jasper.glassfish -> org.glassfish.web.javax.servlet.jsp +# org.w3c.dom.smil -> removed +Patch13: eclipse-feature-plugins-to-category-ius.patch + +Patch14: eclipse-support-symlink-bundles.patch + +# Fix various JDT and PDE tests +Patch15: eclipse-fix-tests.patch + +# Droplet fixes +Patch17: eclipse-pde-tp-support-droplets.patch + +# Disable uses by default +Patch18: eclipse-disable-uses-constraints.patch + +# Droplet fixes +Patch19: eclipse-make-droplets-runnable.patch +Patch20: eclipse-disable-droplets-in-dropins.patch + +# Temporary measure until wayland improves +Patch21: prefer_x11_backend.patch + +# Fix errors when building ant launcher +Patch22: fix_ant_build.patch + +# Hide the p2 Droplets from cluttering Install Wizard Combo +Patch23: eclipse-hide-droplets-from-install-wizard.patch + +# Avoid the need for a javascript interpreter at build time +Patch24: eclipse-swt-avoid-javascript-at-build.patch + +# Avoid optional dep used only for tests +Patch25: eclipse-patch-out-fileupload-dep.patch + +# Force a clean on the restart after p2 operations +Patch26: force-clean-after-p2-operations.patch + +# SCL-specific patches +Patch100: 0001-Avoid-limitation-with-older-shade-plug-in-versions-w.patch +Patch101: 0002-Allow-bootstrapping-against-OSGi-Core-R6.patch +Patch102: 0004-Add-parent-pom-for-old-tycho-pomless.patch + +# Upstream no longer supports non-64bit arches +ExclusiveArch: x86_64 + +# Require both JDKs until Eclipse can fully move onto Java 11 +BuildRequires: java-11-openjdk-devel +BuildRequires: java-1.8.0-openjdk-devel + +BuildRequires: maven-local +BuildRequires: tycho +BuildRequires: tycho-extras +BuildRequires: cbi-plugins +BuildRequires: maven-antrun-plugin +BuildRequires: maven-assembly-plugin +BuildRequires: maven-dependency-plugin +BuildRequires: maven-enforcer-plugin +BuildRequires: maven-install-plugin +BuildRequires: maven-shade-plugin +BuildRequires: xml-maven-plugin +BuildRequires: sonatype-oss-parent +BuildRequires: rsync +BuildRequires: make, gcc +BuildRequires: zip, unzip +BuildRequires: desktop-file-utils +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(nspr) +BuildRequires: pkgconfig(glu) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(xt) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(libsecret-1) +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(webkit2gtk-4.0) +BuildRequires: icu4j >= 1:65.1 +BuildRequires: ant >= 1.10.5 +BuildRequires: jsch >= 0:0.1.46-2 +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: felix-scr >= 2.1.16-4 +BuildRequires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.server) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.http) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.continuation) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.io) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.security) >= %{_jetty_version} +BuildRequires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version} +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.4.0 +BuildRequires: apiguardian +BuildRequires: hamcrest +BuildRequires: sat4j +BuildRequires: objectweb-asm >= 7.0 +BuildRequires: sac +BuildRequires: batik-css >= %{_batik_version} +BuildRequires: batik-util >= %{_batik_version} +BuildRequires: google-gson +BuildRequires: xmlgraphics-commons >= 2.3 +BuildRequires: xml-commons-apis +BuildRequires: atinject +BuildRequires: eclipse-ecf-core >= 3.14.8 +BuildRequires: eclipse-emf-core >= 1:2.22.0 +BuildRequires: eclipse-license2 +BuildRequires: glassfish-annotation-api +BuildRequires: glassfish-el-api >= 3.0.1 +BuildRequires: glassfish-el >= 3.0.1 +BuildRequires: glassfish-jsp-api >= 2.2.1-4 +BuildRequires: glassfish-jsp >= 2.2.5 +BuildRequires: glassfish-servlet-api >= 3.1.0 +BuildRequires: httpcomponents-core +BuildRequires: httpcomponents-client +BuildRequires: jsoup +BuildRequires: xz-java +BuildRequires: osgi(osgi.annotation) +# Build deps that are excluded when bootstrapping +%if %{without bootstrap} +# For building docs and apitooling +BuildRequires: eclipse-pde +%if %{with contrib_tools} +# For contributor tools +BuildRequires: eclipse-egit +BuildRequires: eclipse-emf-runtime +%endif +%endif + +%description +The Eclipse platform is designed for building integrated development +environments (IDEs), server-side applications, desktop applications, and +everything in between. + +%package swt +Summary: SWT Library for GTK+ +Requires: gtk3 +Requires: webkitgtk4 + +%description swt +SWT Library for GTK+. + +%package equinox-osgi +Summary: Eclipse OSGi - Equinox +Provides: osgi(system.bundle) = %{epoch}:%{version} + +%description equinox-osgi +Eclipse OSGi - Equinox + +%package platform +Summary: Eclipse platform common files +Requires: java-11-openjdk-devel +Requires: javapackages-tools + + +Requires: ant >= 1.10.5 +Requires: jsch >= 0.1.46-2 +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: felix-scr >= 2.1.16-4 +Requires: osgi(org.eclipse.jetty.util) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.server) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.http) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.continuation) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.io) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.security) >= %{_jetty_version} +Requires: osgi(org.eclipse.jetty.servlet) >= %{_jetty_version} +Requires: lucene-core >= %{_lucene_version} +Requires: lucene-analysis >= %{_lucene_version} +Requires: lucene-queryparser >= %{_lucene_version} +Requires: lucene-analyzers-smartcn >= %{_lucene_version} +Requires: batik-css >= %{_batik_version} +Requires: batik-util >= %{_batik_version} +Requires: xmlgraphics-commons >= 2.3 +Requires: xml-commons-apis +Requires: atinject +Requires: eclipse-ecf-core >= 3.14.8 +Requires: eclipse-emf-core >= 1:2.22.0 +Requires: glassfish-annotation-api +Requires: glassfish-el-api >= 3.0.1 +Requires: glassfish-el >= 3.0.1 +Requires: glassfish-jsp-api >= 2.2.1-4 +Requires: glassfish-jsp >= 2.2.5 +Requires: glassfish-servlet-api >= 3.1.0 +Requires: icu4j >= 1:65.1 +Requires: %{name}-swt = %{epoch}:%{version}-%{release} +Requires: %{name}-equinox-osgi = %{epoch}:%{version}-%{release} +Requires: httpcomponents-core +Requires: httpcomponents-client + +# Obsoletes added in F31 +Obsoletes: eclipse-epp-logging <= 2.0.8-4 +Obsoletes: eclipse-abrt <= 0.0.3-10 + +%description platform +The Eclipse Platform is the base of all IDE plugins. This does not include the +Java Development Tools or the Plugin Development Environment. + +%package jdt +Summary: Eclipse Java Development Tools +BuildArch: noarch + +Provides: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-platform = %{epoch}:%{version}-%{release} +Requires: java-11-openjdk-src +Requires: junit >= 4.12 +Requires: junit5 >= 5.4.0 +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. + +%package pde +Summary: Eclipse Plugin Development Environment + +Requires: %{name}-platform = %{epoch}:%{version}-%{release} +Requires: %{name}-jdt = %{epoch}:%{version}-%{release} +Requires: objectweb-asm >= 7.0 + +%description pde +Eclipse Plugin Development Environment. This package is required for +developing Eclipse plugins. + +%package p2-discovery +Summary: Eclipse p2 Discovery +BuildArch: noarch + +Requires: %{name}-platform = %{epoch}:%{version}-%{release} + +%description p2-discovery +The p2 Discovery mechanism provides a simplified and branded front-end for the +p2 provisioning platform. Discovery can be used as a tool to display and +install from existing P2 repositories or as a framework to build branded +installer UIs. + +%if %{without bootstrap} && %{with contrib_tools} + +%package contributor-tools +Summary: Tools for Eclipse Contributors +# No longer shipping tests +Obsoletes: %{name}-tests < 1:4.14-2 + +Requires: %{name}-platform = %{epoch}:%{version}-%{release} + +%description contributor-tools +This package contains tools specifically for Eclipse contributors. It includes +SWT tools, E4 tools, Rel-Eng tools and Eclipse Test frameworks. +%endif + +%prep +%setup -T -c + +# Extract main source +tar --strip-components=1 -xf %{SOURCE0} + +# Extract linuxtools/eclipse-build sources +tar --strip-components=1 -xf %{SOURCE1} + +# Delete pre-built binary artifacts except some test data that cannot be generated +find . ! -path "*/JCL/*" ! -name "rtstubs*.jar" ! -name "java14api.jar" ! -name "j9stubs.jar" ! -name "annotations.jar" \ + -type f -name *.jar -delete +find . -type f -name *.class -delete +find . -type f -name *.so -delete +find . -type f -name *.dll -delete +find . -type f -name *.jnilib -delete + +# Remove pre-compiled native launchers +rm -rf rt.equinox.binaries/org.eclipse.equinox.executable/{bin,contributed}/ + +%patch0 +%patch1 +%patch2 -p1 +%patch3 +%patch4 -p1 +%patch5 +%patch12 +%patch13 -p1 +%patch14 +%patch15 +%patch17 -p1 +%patch18 +%patch19 +%patch20 +%if ! %{use_wayland} +# Enable wayland by default on F27+ +%patch21 +%endif +%patch22 +%patch23 -p1 +%patch24 -p1 +%patch25 +%patch26 -p1 + +# SCL-specific patches +%patch100 -p1 +%patch101 -p1 +%patch102 -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 + +# No strict bin includes +sed -i -e '/jgit.dirtyWorkingTree>/afalsefalse' eclipse-platform-parent/pom.xml + +# Remove jgit deps because building from source tarball, not a git repo +%pom_remove_dep :tycho-buildtimestamp-jgit eclipse-platform-parent +%pom_remove_dep :tycho-sourceref-jgit eclipse-platform-parent +%pom_xpath_remove 'pom:configuration/pom:timestampProvider' eclipse-platform-parent +%pom_xpath_remove 'pom:configuration/pom:sourceReferences' eclipse-platform-parent + +# Resolving the target platform requires too many changes, so don't use it +%pom_xpath_remove "pom:configuration/pom:target" eclipse-platform-parent + +# Disable as many products as possible to make the build faster, we care only for the IDE +%pom_disable_module platform.sdk eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module rcp eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module rcp.sdk eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module rcp.config eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module sdk eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module equinox-sdk eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module equinox.starterkit.product eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module eclipse.platform.repository eclipse.platform.releng.tychoeclipsebuilder + +# Disable bundles that we don't ship as part of the remaining products +%pom_disable_module bundles/org.eclipse.equinox.cm.test rt.equinox.bundles +%pom_disable_module features/org.eclipse.equinox.sdk rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.console.jaas.fragment rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.console.ssh rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.transforms.xslt rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.transforms.hook rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.weaving.caching.j9 rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.weaving.caching rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.weaving.hook rt.equinox.bundles +%pom_disable_module features/org.eclipse.equinox.compendium.sdk rt.equinox.bundles +%pom_disable_module features/org.eclipse.equinox.core.sdk rt.equinox.bundles +%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.optimizers rt.equinox.p2 +%pom_disable_module bundles/org.eclipse.equinox.p2.artifact.processors rt.equinox.p2 +%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 +%pom_xpath_remove "plugin[@version='1.1.500.qualifier']" eclipse.jdt/org.eclipse.jdt-feature/feature.xml + +# javax.annotation -> jakarta.annotation-api +sed -i -e 's/javax.annotation/%{_jakarta_annotations}/' eclipse-platform-parent/pom.xml \ + eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml \ + eclipse.platform.common/bundles/org.eclipse.jdt.doc.isv/pom.xml \ + eclipse.platform.common/bundles/org.eclipse.pde.doc.user/pom.xml \ + eclipse.platform.common/bundles/org.eclipse.platform.doc.isv/pom.xml + +# 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 + +# Disable examples +%pom_disable_module infocenter-web eclipse.platform.ua +%pom_disable_module examples rt.equinox.p2 +%pom_disable_module examples eclipse.platform.ui +%pom_disable_module org.eclipse.debug.examples.core eclipse.platform.debug +%pom_disable_module org.eclipse.debug.examples.memory eclipse.platform.debug +%pom_disable_module org.eclipse.debug.examples.mixedmode eclipse.platform.debug +%pom_disable_module org.eclipse.debug.examples.ui eclipse.platform.debug +%pom_disable_module bundles/org.eclipse.sdk.examples eclipse.platform.releng +%pom_disable_module features/org.eclipse.sdk.examples-feature eclipse.platform.releng +%pom_disable_module examples/org.eclipse.swt.examples.ole.win32 eclipse.platform.swt +%pom_disable_module examples/org.eclipse.compare.examples eclipse.platform.team +%pom_disable_module examples/org.eclipse.compare.examples.xml eclipse.platform.team +%pom_disable_module examples/org.eclipse.team.examples.filesystem eclipse.platform.team +%pom_disable_module org.eclipse.jface.text.examples eclipse.platform.text +%pom_disable_module org.eclipse.ui.examples.javaeditor eclipse.platform.text +%pom_disable_module org.eclipse.ui.genericeditor.examples eclipse.platform.text +%pom_disable_module org.eclipse.ui.intro.quicklinks.examples eclipse.platform.ua +%pom_disable_module org.eclipse.ui.intro.solstice.examples eclipse.platform.ua + +# Disable tests +for pom in eclipse.jdt.core{,.binaries} eclipse.jdt.debug eclipse.jdt.ui eclipse.pde.build eclipse.pde.ui{,/apitools} \ + eclipse.platform eclipse.platform.debug eclipse.platform.releng eclipse.platform.resources eclipse.platform.runtime \ + eclipse.platform.swt eclipse.platform.team eclipse.platform.text eclipse.platform.ui eclipse.platform.ua \ + rt.equinox.bundles rt.equinox.framework rt.equinox.p2 ; do + sed -i -e '/.*tests.*<\/module>/d' $pom/pom.xml +done +%pom_disable_module bundles/org.eclipse.equinox.frameworkadmin.test rt.equinox.p2 +%pom_disable_module eclipse-junit-tests eclipse.platform.releng.tychoeclipsebuilder +%pom_disable_module ./tests/org.eclipse.e4.tools.test eclipse.platform.ui.tools + +# Disable test framework if we are not shipping tests +%pom_disable_module features/org.eclipse.test-feature eclipse.platform.releng +%pom_disable_module bundles/org.eclipse.test eclipse.platform.releng +%pom_disable_module bundles/org.eclipse.test.performance eclipse.platform.releng +%pom_disable_module bundles/org.eclipse.test.performance.win32 eclipse.platform.releng +%pom_disable_module bundles/org.eclipse.ant.optional.junit eclipse.platform.releng + +# Disable servletbridge stuff +%pom_disable_module bundles/org.eclipse.equinox.http.servletbridge rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.servletbridge rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.servletbridge.template rt.equinox.bundles + +# Don't need enforcer on RPM builds +%pom_remove_plugin :maven-enforcer-plugin eclipse-platform-parent + +# This part generates secondary fragments using primary fragments +rm -rf eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.{aarch64,s390x} +rm -rf rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.{aarch64,s390x} +for dir in rt.equinox.binaries rt.equinox.framework/bundles eclipse.platform.swt.binaries/bundles ; do + utils/ensure_arch.sh "$dir" x86_64 aarch64 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 +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 + +%if %{with bootstrap} || %{without contrib_tools} +# Disable contributor tools that have external dependencies during bootstrap +%pom_disable_module eclipse.platform.ui.tools +%pom_disable_module features/org.eclipse.swt.tools.feature eclipse.platform.swt +%pom_disable_module bundles/org.eclipse.swt.tools.base eclipse.platform.swt +%pom_disable_module bundles/org.eclipse.swt.tools.spies eclipse.platform.swt +%pom_disable_module bundles/org.eclipse.swt.tools eclipse.platform.swt +%pom_disable_module features/org.eclipse.releng.tools eclipse.platform.releng +%pom_disable_module bundles/org.eclipse.releng.tools eclipse.platform.releng +%endif + +# Include some extra features with the product that some other projects may need at +# build time as part of their target platform definitions +sed -i -e '//a' \ + eclipse.platform.releng.tychoeclipsebuilder/platform/platform.product + +# Ensure batch compiler gets installed correctly +sed -i -e '/org.eclipse.ui.themes/i' \ + eclipse.platform.releng/features/org.eclipse.platform-feature/feature.xml +sed -i -e '/<\/excludes>/i' \ + eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml + +# Don't set perms on files for platforms that aren't linux +for f in rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties; do + grep '^root\.linux\.gtk\.%{eclipse_arch}[.=]' $f > tmp + sed -i -e '/^root\./d' $f && cat tmp >> $f +done + +# Hack - this can go away once upstream grows arm and aarch64 support +mkdir -p rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/%{eclipse_arch} + +# Ensure that bundles with native artifacts are dir-shaped, so no *.so is extracted into user.home +for f in eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.*/META-INF/MANIFEST.MF \ + eclipse.platform.resources/bundles/org.eclipse.core.filesystem.linux.*/META-INF/MANIFEST.MF \ + eclipse.platform.team/bundles/org.eclipse.core.net.linux.*/META-INF/MANIFEST.MF ; do + echo -e "Eclipse-BundleShape: dir\n\n" >> $f; +done + +# Add dep on Java API stubs when compiling with JDT +%pom_xpath_inject "pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId='tycho-compiler-plugin']/pom:dependencies" \ + "org.eclipsejava10api10" eclipse-platform-parent + +# Build fake ant bundle that contains symlinks to system jars +dependencies/fake_ant_dependency.sh + +# Allow usage of javax.servlet.jsp 2.3. +sed -i '/javax\.servlet\.jsp/ s/2\.3/2\.4/' rt.equinox.bundles/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF + +# Use javax.servlet-api (Glassfish) instead of javax.servlet (Tomcat) +find -name feature.xml | xargs sed -i -e 's|"javax.servlet"|"javax.servlet-api"|' +sed -i -e "2iRequire-Bundle: javax.servlet-api" rt.equinox.bundles/bundles/org.eclipse.equinox.http.{jetty,servlet}/META-INF/MANIFEST.MF + +# Fix constraint on gogo runtime +sed -i -e '/org.apache.felix.service.command/s/;status=provisional//' rt.equinox.bundles/bundles/org.eclipse.equinox.console{,.ssh}/META-INF/MANIFEST.MF + +# Pre-compiling JSPs does not currently work +%pom_remove_plugin org.eclipse.jetty:jetty-jspc-maven-plugin eclipse.platform.ua/org.eclipse.help.webapp + +# Make maven output less noisy due to lack of intenet connection +sed -i -e '/baselineMode/s/warn/disable/' eclipse-platform-parent/pom.xml + +# Remove release parameter not needed when using BREE libs +sed -i -e '/maven.compiler.release/d' \ + eclipse.jdt.debug/org.eclipse.jdt.debug/pom.xml eclipse.jdt.debug/org.eclipse.jdt.launching/pom.xml rt.equinox.p2/bundles/org.eclipse.equinox.p2.artifact.repository/pom.xml + +# Use system osgi.annotation lib +ln -s $(build-classpath osgi-annotation) rt.equinox.framework/bundles/org.eclipse.osgi/osgi/ +ln -s $(build-classpath osgi-annotation) rt.equinox.framework/bundles/org.eclipse.osgi.services/lib/ +ln -s $(build-classpath osgi-annotation) rt.equinox.framework/bundles/org.eclipse.osgi.util/lib/ +ln -s $(build-classpath osgi-annotation) rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/osgi/ +ln -s $(build-classpath osgi-annotation) rt.equinox.bundles/bundles/org.eclipse.equinox.coordinator/lib/ +ln -s $(build-classpath osgi-annotation) rt.equinox.bundles/bundles/org.eclipse.equinox.log.stream/osgi/ + +# The order of these mvn_package calls is important +%mvn_package "::pom::" __noinstall +%mvn_package ":org.eclipse.pde.tools.versioning" contributor-tools +%mvn_package "::jar:sources{,-feature}:" sdk +%mvn_package ":org.eclipse.jdt.doc.isv" sdk +%mvn_package ":org.eclipse.platform.doc.isv" sdk +%mvn_package ":org.eclipse.equinox.executable" sdk +%mvn_package "org.eclipse.jdt{,.feature}:" jdt +%mvn_package ":org.eclipse.ant.{launching,ui}" jdt +%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.e4{,.core}.tools*" contributor-tools +%mvn_package ":org.eclipse.releng.tools" contributor-tools +%mvn_package ":org.eclipse.swt.tools*" contributor-tools +%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}:" sdk +%mvn_package ":" __noinstall + +%build +# Compiler/linker flags for native parts +export CFLAGS="%{optflags}" +export LDFLAGS="%{__global_ldflags}" +export M_CFLAGS="$CFLAGS" +export M_ARCH="$LDFLAGS" + +#This is the lowest value where the build succeeds. 512m is not enough. +export MAVEN_OPTS="-Xmx1024m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}" +export JAVA_HOME=%{_jvmdir}/java-11 + +# 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 +sed -i -e '/createSourcesJar/d' -e 's/8\.0\.1/7.0/' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml +sed -i -e 's/V15/V11/' -e 's/ASM8/ASM7/' 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 +(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 \ + eclipse.jdt.debug/org.eclipse.jdt.launching/lib + +# 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 -Dbuild.compiler="extJavac" \ +%if %{with bootstrap} + -Pbree-libs,!api-generation,!build-docs \ +%else + -Pbree-libs \ +%endif + -Declipse.javadoc=%{_jvmdir}/java-11/bin/javadoc -Dnative=gtk.linux.%{eclipse_arch} \ + -Dtycho.local.keepTarget --global-toolchains %{SOURCE2} \ + -Dfedora.p2.repos=$(pwd)/.m2/p2/repo-sdk/plugins -DbuildType=X + +# Location that the product is materialised +product="eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{eclipse_arch}" + +# Re-symlink ant bundle to use system jars +dependencies/fake_ant_dependency.sh $product/eclipse/plugins/org.apache.ant_* + +# Symlink necessary plugins that are provided by other packages +dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir} %{_jnidir} + +pushd $product/eclipse + +#clean up +rm -rf configuration/org.eclipse.core.runtime +rm -rf configuration/org.eclipse.equinox.app +rm -rf configuration/org.eclipse.update +rm -rf configuration/org.eclipse.osgi +rm -rf p2/org.eclipse.equinox.p2.core/cache/* +# no icon needed +rm -f icon.xpm + +# EMF and ECF are packaged separately +rm -rf features/org.eclipse.emf.* plugins/org.eclipse.emf.* \ + features/org.eclipse.ecf.* plugins/org.eclipse.ecf.* plugins/org.eclipse.ecf_* + +#delete all local repositories. We want to have only "original" by default. +pushd p2/org.eclipse.equinox.p2.engine/.settings + sed -i "/repositories\/file/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs + sed -i "/repositories\/memory/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs +popd + +# ini file adjustements +sed -i "s|-Xms40m|-Xms512m|g" eclipse.ini +sed -i "s|-Xmx512m|-Xmx1024m|g" eclipse.ini +sed -i '1i-protect\nroot' eclipse.ini +sed -i '/-vmargs/i-vm\n%{_jvmdir}/java-11/bin/java' eclipse.ini + +# Temporary fix until https://bugs.eclipse.org/294877 is resolved +cat >> eclipse.ini < %{buildroot}%{_eclipsedir}/.pkgs/Distro%{?dist} + +%files swt -f .mfiles-swt +%{_eclipsedir}/plugins/org.eclipse.swt_* +%{_eclipsedir}/plugins/org.eclipse.swt.gtk.linux.* +%{_eclipsedir}/swt.jar +%{_jnidir}/swt.jar + +%files platform +%{_bindir}/eclipse +%{_eclipsedir}/eclipse +%{_eclipsedir}/.eclipseproduct +%{_eclipsedir}/.pkgs +%config %{_eclipsedir}/eclipse.ini +%config %{_sysconfdir}/eclipse.ini +/usr/share/applications/* +/usr/share/pixmaps/* +/usr/share/icons/*/*/apps/* +%{_datadir}/appdata/eclipse.appdata.xml +%dir %{_eclipsedir}/configuration/ +%dir %{_eclipsedir}/configuration/org.eclipse.equinox.simpleconfigurator/ +%{_eclipsedir}/configuration/config.ini +%{_eclipsedir}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info +%{_eclipsedir}/features/org.eclipse.core.runtime.feature_* +%{_eclipsedir}/features/org.eclipse.e4.rcp_* +%{_eclipsedir}/features/org.eclipse.equinox.core.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.core.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.extras.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.rcp.feature_* +%{_eclipsedir}/features/org.eclipse.equinox.p2.user.ui_* +%{_eclipsedir}/features/org.eclipse.help_* +%{_eclipsedir}/features/org.eclipse.platform_* +%{_eclipsedir}/features/org.eclipse.rcp_* +%{_eclipsedir}/plugins/com.ibm.icu_* +%{_eclipsedir}/plugins/com.jcraft.jsch_* +%{_eclipsedir}/plugins/com.sun.el.javax.el_* +%{_eclipsedir}/plugins/javax.* +%if 0%{?fedora} +%{_eclipsedir}/plugins/jakarta.* +%endif +%{_eclipsedir}/plugins/org.apache.* +%{_eclipsedir}/plugins/org.eclipse.ant.core_* +%{_eclipsedir}/plugins/org.eclipse.compare_* +%{_eclipsedir}/plugins/org.eclipse.compare.core_* +%{_eclipsedir}/plugins/org.eclipse.core.commands_* +%{_eclipsedir}/plugins/org.eclipse.core.contenttype_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.beans_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.observable_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding.property_* +%{_eclipsedir}/plugins/org.eclipse.core.databinding_* +%{_eclipsedir}/plugins/org.eclipse.core.expressions_* +%{_eclipsedir}/plugins/org.eclipse.core.externaltools_* +%{_eclipsedir}/plugins/org.eclipse.core.filebuffers_* +%{_eclipsedir}/plugins/org.eclipse.core.filesystem* +%{_eclipsedir}/plugins/org.eclipse.core.jobs_* +%{_eclipsedir}/plugins/org.eclipse.core.net* +%{_eclipsedir}/plugins/org.eclipse.core.resources_* +%{_eclipsedir}/plugins/org.eclipse.core.runtime_* +%{_eclipsedir}/plugins/org.eclipse.core.variables_* +%{_eclipsedir}/plugins/org.eclipse.debug.core_* +%{_eclipsedir}/plugins/org.eclipse.debug.ui_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.commands_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.contexts_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.annotations_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.extensions_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.di.extensions.supplier_* +%{_eclipsedir}/plugins/org.eclipse.e4.core.services_* +%{_eclipsedir}/plugins/org.eclipse.e4.emf.xpath_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.bindings_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.core_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.css.swt.theme_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.di_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.dialogs_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.ide_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.model.workbench_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.services_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.swt.gtk_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.widgets_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench3_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.addons.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.renderers.swt_* +%{_eclipsedir}/plugins/org.eclipse.e4.ui.workbench.swt_* +%{_eclipsedir}/plugins/org.eclipse.equinox.app_* +%{_eclipsedir}/plugins/org.eclipse.equinox.bidi_* +%{_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_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.jetty_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.http.servlet_* +%{_eclipsedir}/plugins/org.eclipse.equinox.jsp.jasper_* +%{_eclipsedir}/plugins/org.eclipse.equinox.jsp.jasper.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.launcher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.launcher.gtk.linux.*_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.artifact.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.console_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.core_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.director_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.director.app_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.directorywatcher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.engine_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.extensionlocation_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.garbagecollector_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.jarprocessor_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.metadata_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.metadata.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.operations_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.publisher_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.publisher.eclipse_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.reconciler.dropins_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.repository_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.repository.tools_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.touchpoint.natives_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.transport.ecf_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.importexport_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.sdk_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.ui.sdk.scheduler_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.updatechecker_* +%{_eclipsedir}/plugins/org.eclipse.equinox.p2.updatesite_* +%{_eclipsedir}/plugins/org.eclipse.equinox.preferences_* +%{_eclipsedir}/plugins/org.eclipse.equinox.registry_* +%{_eclipsedir}/plugins/org.eclipse.equinox.security* +%{_eclipsedir}/plugins/org.eclipse.equinox.simpleconfigurator_* +%{_eclipsedir}/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_* +%{_eclipsedir}/plugins/org.eclipse.help_* +%{_eclipsedir}/plugins/org.eclipse.help.base_* +%{_eclipsedir}/plugins/org.eclipse.help.ui_* +%{_eclipsedir}/plugins/org.eclipse.help.webapp_* +%{_eclipsedir}/plugins/org.eclipse.jdt.core.compiler.batch_* +%{_eclipsedir}/plugins/org.eclipse.jetty.* +%{_eclipsedir}/plugins/org.eclipse.jface_* +%{_eclipsedir}/plugins/org.eclipse.jface.databinding_* +%{_eclipsedir}/plugins/org.eclipse.jface.text_* +%{_eclipsedir}/plugins/org.eclipse.jface.notifications_* +%{_eclipsedir}/plugins/org.eclipse.jsch.core_* +%{_eclipsedir}/plugins/org.eclipse.jsch.ui_* +%{_eclipsedir}/plugins/org.eclipse.ltk.core.refactoring_* +%{_eclipsedir}/plugins/org.eclipse.ltk.ui.refactoring_* +%{_eclipsedir}/plugins/org.eclipse.platform_* +%{_eclipsedir}/plugins/org.eclipse.platform.doc.user_* +%{_eclipsedir}/plugins/org.eclipse.rcp_* +%{_eclipsedir}/plugins/org.eclipse.search_* +%{_eclipsedir}/plugins/org.eclipse.team.core_* +%{_eclipsedir}/plugins/org.eclipse.team.genericeditor.diff.extension_* +%{_eclipsedir}/plugins/org.eclipse.team.ui_* +%{_eclipsedir}/plugins/org.eclipse.text_* +%{_eclipsedir}/plugins/org.eclipse.text.quicksearch_* +%{_eclipsedir}/plugins/org.eclipse.ui_* +%{_eclipsedir}/plugins/org.eclipse.ui.browser_* +%{_eclipsedir}/plugins/org.eclipse.ui.cheatsheets_* +%{_eclipsedir}/plugins/org.eclipse.ui.console_* +%{_eclipsedir}/plugins/org.eclipse.ui.editors_* +%{_eclipsedir}/plugins/org.eclipse.ui.externaltools_* +%{_eclipsedir}/plugins/org.eclipse.ui.forms_* +%{_eclipsedir}/plugins/org.eclipse.ui.genericeditor_* +%{_eclipsedir}/plugins/org.eclipse.ui.ide_* +%{_eclipsedir}/plugins/org.eclipse.ui.ide.application_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro.quicklinks_* +%{_eclipsedir}/plugins/org.eclipse.ui.intro.universal_* +%{_eclipsedir}/plugins/org.eclipse.ui.monitoring_* +%{_eclipsedir}/plugins/org.eclipse.ui.navigator_* +%{_eclipsedir}/plugins/org.eclipse.ui.navigator.resources_* +%{_eclipsedir}/plugins/org.eclipse.ui.net_* +%{_eclipsedir}/plugins/org.eclipse.ui.themes_* +%{_eclipsedir}/plugins/org.eclipse.ui.views_* +%{_eclipsedir}/plugins/org.eclipse.ui.views.log_* +%{_eclipsedir}/plugins/org.eclipse.ui.views.properties.tabbed_* +%{_eclipsedir}/plugins/org.eclipse.ui.workbench_* +%{_eclipsedir}/plugins/org.eclipse.ui.workbench.texteditor_* +%{_eclipsedir}/plugins/org.eclipse.update.configurator_* +%{_eclipsedir}/plugins/org.eclipse.urischeme_* +%{_eclipsedir}/plugins/org.glassfish.web.javax.servlet.jsp_* +%{_eclipsedir}/plugins/org.sat4j.core_* +%{_eclipsedir}/plugins/org.sat4j.pb_* +%{_eclipsedir}/plugins/org.tukaani.xz_* +%{_eclipsedir}/plugins/org.w3c.css.sac_* +%{_eclipsedir}/plugins/org.w3c.dom.svg_* +%doc %{_eclipsedir}/readme +%{_eclipsedir}/artifacts.xml +%{_eclipsedir}/p2 +%{_javadir}/%{name}/core* +%{_javadir}/%{name}/equinox* + +%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 + +%files p2-discovery -f .mfiles-p2-discovery + +%if %{without bootstrap} && %{with contrib_tools} + +%files contributor-tools -f .mfiles-contributor-tools +%endif + +%files equinox-osgi -f .mfiles-equinox-osgi +%{_eclipsedir}/plugins/org.eclipse.osgi_* +%{_eclipsedir}/plugins/org.eclipse.osgi.compatibility.state_* +%{_eclipsedir}/plugins/org.eclipse.osgi.services_* +%{_eclipsedir}/plugins/org.eclipse.osgi.util_* + +%changelog +* Fri Oct 23 2020 Alexander Kurtakov 1:4.16-8 +- Add java-11-openjdk-devel - without it /usr/lib/jvm/java-11 is not created. + +* Thu Oct 22 2020 Alexander Kurtakov 1:4.16-7 +- Add additonal Java 11 dependencies to ensure all parts are installed. + +* Tue Jul 21 2020 Mat Booth - 1:4.16-6 +- Require Java 11 explicitly +- Drop hotspot exclusions from the JDK 6 era + +* Fri Jul 10 2020 Jiri Vanek - 1:4.16-5 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Mon Jun 29 2020 Mat Booth - 1:4.16-4 +- Update linux-build snapshot and fix adding junit classpath containers to java + projects + +* Tue Jun 23 2020 Mat Booth - 1:4.16-3 +- Make a bit more portable and fix bootstrap mode + +* Fri Jun 19 2020 Mat Booth - 1:4.16-2 +- Non-bootstrap build + +* Thu Jun 18 2020 Mat Booth - 1:4.16-1 +- Update to latest upstream release + +* Thu Apr 02 2020 Mat Booth - 1:4.15-5 +- Make the requirement on felix-scr more strict + +* Thu Apr 02 2020 Mat Booth - 1:4.15-4 +- Allow library detector to build on Java 11 + +* Sun Mar 29 2020 Mat Booth - 1:4.15-3 +- Don't build and ship the test framework. We are not shipping any actual tests + anyway and this allows to drop the dependency on mockito and friends. + +* Mon Mar 23 2020 Mat Booth - 1:4.15-2 +- Set compiler release to Java 8 on certain bundles + +* Sat Mar 21 2020 Mat Booth - 1:4.15-1 +- Update to latest upstream release + +* Tue Jan 28 2020 Mat Booth - 1:4.14-5 +- Backport patch to fix build against GCC 10 + +* Thu Jan 23 2020 Mat Booth - 1:4.14-4 +- Remove BR on bouncycastle + +* Thu Jan 23 2020 Mat Booth - 1:4.14-3 +- Remove references to kxml/xpp3 + +* Thu Dec 19 2019 Mat Booth - 1:4.14-2 +- Full build +- Drop tests sub-package + +* Thu Dec 19 2019 Mat Booth - 1:4.14-1 +- Update to latest upstream release + +* Thu Dec 19 2019 Mat Booth - 1:4.13-7 +- Bump requirements on EMF/ECF + +* Wed Dec 18 2019 Mat Booth - 1:4.13-6 +- Remove unnecessary dep on apache-commons-el +- Enable bootstrap mode + +* Wed Nov 20 2019 Mat Booth - 1:4.13-5 +- Obsolete retired packages + +* Mon Sep 23 2019 Mat Booth - 1:4.13-4 +- Add patch for ebz#550606 + +* Mon Sep 23 2019 Mat Booth - 1:4.13-3 +- Fix explicit hamcrest reqs + +* Mon Sep 16 2019 Mat Booth - 1:4.13-2 +- Fix PDE installation + +* Mon Sep 09 2019 Mat Booth - 1:4.13-1 +- Update to latest upstream release + +* Wed Jul 24 2019 Mat Booth - 1:4.12-6 +- Reenable normal debuginfo generation for the launcher binary on Fedora + +* Thu Jun 27 2019 Mat Booth - 1:4.12-5 +- Fix NoClassDefFoundError regression in ant support + +* Thu Jun 20 2019 Mat Booth - 1:4.12-4 +- Fix deps on batik stack + +* Thu Jun 20 2019 Mat Booth - 1:4.12-3 +- Disable more examples and allow contrib-tools mode to build properly + +* Wed Jun 19 2019 Mat Booth - 1:4.12-2 +- Additional fixes for ebz548211 + +* Mon Jun 17 2019 Mat Booth - 1:4.12-1 +- Update to 2019-06 release + +* Sun Jun 16 2019 Mat Booth - 1:4.11-15 +- Rebuild against new Jetty, ECF and EMF + +* Wed Jun 12 2019 Mat Booth - 1:4.11-14 +- Full rebuild + +* Wed Jun 12 2019 Mat Booth - 1:4.11-13 +- Add patch for lucene 8 and rebootstrap + +* Thu May 30 2019 Mat Booth - 1:4.11-12 +- Avoid requirement on optional test dependency commons-fileupload + +* Fri May 24 2019 Mat Booth - 1:4.11-11 +- Clean up unused maven metadata + +* Fri May 24 2019 Mat Booth - 1:4.11-10 +- Add missing BR on google-gson + +* Thu May 23 2019 Mat Booth - 1:4.11-9 +- Bump deps on batik and xmlgraphics + +* Tue May 07 2019 Mat Booth - 1:4.11-8 +- Re-instate junit5 dep since dependent modules were fixed + +* Wed May 01 2019 Mat Booth - 1:4.11-7 +- Bump requirements on Jetty +- Avoid reliance on Javascript in SWT build + +* Tue Apr 30 2019 Mat Booth - 1:4.11-6 +- Disable hard requirement on ant-junit5 + +* Thu Apr 25 2019 Mat Booth - 1:4.11-5 +- Fix bootstrap mode to use bcond flags +- Bump requirements on Jetty, SCR and ICU4j + +* Wed Apr 10 2019 Mat Booth - 1:4.11-4 +- Obsolete recommenders package, rhbz#1698504 + +* Tue Mar 19 2019 Mat Booth - 1:4.11-3 +- Pre-strip debuginfo from the launcher binary to avoid conflicts with other RCP + applications, which will use identical launcher binaries + +* Thu Mar 14 2019 Mat Booth - 1:4.11-2 +- Full build + +* Mon Mar 11 2019 Mat Booth - 1:4.11-1 +- Update to 2019-03 release +- Drop support for 32-bit architectures + +* Thu Jan 31 2019 Fedora Release Engineering - 1:4.10.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 10 2019 Mat Booth - 1:4.10.0-2 +- No longer recommend Code Recommenders + +* Tue Dec 11 2018 Mat Booth - 1:4.10.0-1 +- Update to 2018-12 release +- Update eclipse-build snapshot + +* Thu Dec 06 2018 Mat Booth - 1:4.10.0-0.3 +- Update to latest I-build +- Build against latest jetty, mockito packages +- Update requirements on EMF and ECF + +* Tue Dec 04 2018 Mat Booth - 1:4.10.0-0.2 +- Allow building on Fedora 29 + +* Thu Nov 29 2018 Mat Booth - 1:4.10.0-0.1 +- Update to latest I-build +- Enable bootstrap mode + +* Fri Sep 28 2018 Jeff Johnston - 1:4.9.0-2 +- Add org.eclipse.equinox.executable for building RCP apps + +* Wed Sep 12 2018 Mat Booth - 1:4.9.0-1 +- Update to final bits for 4.9 +- Fix NPE due to missing agent jar + +* Thu Aug 23 2018 Mat Booth - 1:4.9.0-0.4 +- Update to latest I-build +- Full non-bootstrap build + +* Wed Aug 22 2018 Mat Booth - 1:4.9.0-0.3 +- Fix prefer x11 patch used on RHEL + +* Mon Aug 20 2018 Mat Booth - 1:4.9.0-0.2 +- Fix secondary arch build + +* Sun Aug 19 2018 Mat Booth - 1:4.9.0-0.1 +- Update to latest I-build +- Update license + +* Thu Jul 12 2018 Fedora Release Engineering - 1:4.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jun 25 2018 Mat Booth - 1:4.8.0-3 +- Add patch to use gsettings instead of gconf + +* Wed Jun 13 2018 Mat Booth - 1:4.8.0-2 +- Backport patches for ebz#533655 and ebz#535392 + +* Tue Jun 12 2018 Mat Booth - 1:4.8.0-1 +- Update to Photon release + +* Thu Jun 07 2018 Mat Booth - 1:4.8.0-0.8 +- Update to last RC of Photon + +* Mon May 21 2018 Mat Booth - 1:4.8.0-0.7 +- Updated I-build +- Switch to using upstream tarball +- Disable unused annotation bundle + +* Mon May 21 2018 Mat Booth - 1:4.8.0-0.6 +- Rebuild to correct permissions + +* Tue May 15 2018 Mat Booth - 1:4.8.0-0.5 +- Rebuild against Photon EMF and ECF versions +- Updated I-build + +* Thu May 03 2018 Mat Booth - 1:4.8.0-0.4 +- Updated I-build +- Attempt to fix arm platform launchers + +* Wed May 02 2018 Mat Booth - 1:4.8.0-0.3 +- Non-bootstrap build + +* Sat Apr 28 2018 Mat Booth - 1:4.8.0-0.2 +- Update to latest I-build and fix build on 32bit intel platform +- Tighten deps on batik to prevent runtime bundle resolution errors + +* Tue Apr 24 2018 Mat Booth - 1:4.8.0-0.1 +- Update to Photon I-build +- Remove conditional for webkit2 (always use it now) +- Bump requirement on lucene + +* Tue Apr 10 2018 Mat Booth - 1:4.7.3a-4 +- Ensure patches apply cleanly +- Use java API stubs from ecj package + +* Mon Apr 09 2018 Mat Booth - 1:4.7.3a-3 +- Package java 10 API stubs jar + +* Mon Apr 09 2018 Mat Booth - 1:4.7.3a-2 +- Backport patches to fix broken table editing + +* Mon Apr 09 2018 Mat Booth - 1:4.7.3a-1 +- Update to Oxygen.3a release for java 10 support + +* Wed Mar 21 2018 Mat Booth - 1:4.7.3-2 +- Bump jetty dependency + +* Thu Mar 15 2018 Mat Booth - 1:4.7.3-1 +- Update to Oxygen.3 release + +* Wed Feb 07 2018 Fedora Release Engineering - 1:4.7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 09 2018 Merlin Mathesius - 1:4.7.2-2 +- Cleanup spec file conditionals + +* Wed Nov 29 2017 Mat Booth - 1:4.7.2-1 +- Update to last RC/final release of Oxygen.2 +- Fix x11 crash when running on wayland + +* Fri Nov 24 2017 Mat Booth - 1:4.7.2-0.2 +- Update to latest RC of Oxygen.2 + +* Tue Nov 21 2017 Mat Booth - 1:4.7.2-0.1 +- Update to latest RC of Oxygen.2 + +* Fri Nov 17 2017 Mat Booth - 1:4.7.1-8 +- Make java 9 api stubs available for use +- Migrate away from deprecated maven depmap macros + +* Wed Oct 18 2017 Mat Booth - 1:4.7.1-7 +- Update to 4.7.1a release + +* Mon Oct 02 2017 Mat Booth - 1:4.7.1-6 +- Use the jit on 32bit arm to speed up the build + +* Mon Oct 02 2017 Mat Booth - 1:4.7.1-5 +- Drop workaround for metainfo problem +- Add patch for javascript/webkit2 bug ebz#525340 +- Add missing mocking deps for contributor-tools + +* Tue Sep 19 2017 Mat Booth - 1:4.7.1-4 +- Add workaround for appstream metainfo bug in RPM on F27 + +* Tue Sep 19 2017 Mat Booth - 1:4.7.1-3 +- Obsolete e4-importer that was moved into platform +- Add recommends on recommenders from JDT + +* Fri Sep 15 2017 Mat Booth - 1:4.7.1-2 +- Debootstrap build + +* Fri Sep 15 2017 Mat Booth - 1:4.7.1-1 +- Update to Oxygen.1 release +- Relax restriction on objectweb-asm + +* Wed Aug 02 2017 Fedora Release Engineering - 1:4.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1:4.7.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jul 04 2017 Mat Booth - 1:4.7.0-2 +- Use 'protect root' instead of 'protect master' + +* Fri Jun 30 2017 Mat Booth - 1:4.7.0-1 +- Update to final Oxygen release +- Bump jetty requirement + +* Thu Jun 15 2017 Mat Booth - 1:4.7.0-0.14 +- Update to latest release candidate build +- Rebuild for latest EMF and ECF +- Drop nashorn extension mechanism + +* Wed May 31 2017 Mikolaj Izdebski - 1:4.7.0-0.13 +- Add missing build-requires on Maven plugins +- Run xmvn in batch mode + +* Thu May 18 2017 Mat Booth - 1:4.7.0-0.12 +- Enable Wayland backend by default on F27+ +- Bump some dependency requirements + +* Tue May 16 2017 Mat Booth - 1:4.7.0-0.11 +- Update to latest I-build +- Rebuild for latest EMF + +* Tue May 09 2017 Mat Booth - 1:4.7.0-0.10 +- Rebuild for new ECF +- Obsolete core NLS package +- Fix cycle introduced between tests and contributor-tools + +* Sat May 06 2017 Mat Booth - 1:4.7.0-0.9 +- Fix build against new felix-gogo +- Update to latest I-build + +* Wed May 03 2017 Mat Booth - 1:4.7.0-0.8 +- Package missing PDE generic editor extension + +* Tue May 02 2017 Mat Booth - 1:4.7.0-0.7 +- Rebuild for s390x +- Don't require JDK directly + +* Fri Apr 28 2017 Mat Booth - 1:4.7.0-0.6 +- Non-bootstrap build + +* Tue Apr 25 2017 Mat Booth - 1:4.7.0-0.5 +- Update to latest I-build +- Update generated ant bundle to 1.10.1 +- Fix missing launcher bundle on s390, rhbz#1445162 +- Add missing BR on libsecret + +* Fri Apr 21 2017 Mat Booth - 1:4.7.0-0.4 +- Fix secondary arch build + +* Thu Apr 20 2017 Mat Booth - 1:4.7.0-0.3 +- Simplify test installation and move machinery out of javadir now + that java stuff is installed in its own place +- Enable bootstrap mode + +* Wed Apr 19 2017 Mat Booth - 1:4.7.0-0.2 +- Update to latest I-build + +* Tue Apr 04 2017 Mat Booth - 1:4.7.0-0.1 +- Update to Oxygen I-build +- Don't build unsupported GTK2 backend for SWT +- Move installation to a multilib agnostic location /usr/lib