diff --git a/eclipse-adjust-droplets.patch b/eclipse-adjust-droplets.patch new file mode 100644 index 0000000000000000000000000000000000000000..01fb1f65693fd0d37da60b87f56a21842dd80b2e --- /dev/null +++ b/eclipse-adjust-droplets.patch @@ -0,0 +1,52 @@ +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java +index 5fc0e73..ed7e4fa 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/EngineActivator.java +@@ -147,7 +147,20 @@ public class EngineActivator implements BundleActivator { + } + continue; + } +- File[] listFiles = extension.listFiles(); ++ ++ // Support the additional 'eclipse' directory if it exists. ++ File[] extensionFiles = extension.listFiles(new FilenameFilter() { ++ public boolean accept(File dir, String name) { ++ return name.equals("eclipse"); ++ } ++ }); ++ ++ File[] listFiles; ++ if (extensionFiles.length == 1) { ++ listFiles = extensionFiles[0].listFiles(); ++ } else { ++ listFiles = extension.listFiles(); ++ } + // new magic - multiple info files, f.e. + // egit.info (git feature) + // cdt.linkĀ (properties file containing link=path) to other info file +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java b/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +index 12e4d89..77945ef 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +@@ -155,7 +155,20 @@ public class SimpleConfiguratorUtils { + } + continue; + } +- File[] listFiles = extension.listFiles(); ++ ++ // Support the additional 'eclipse' directory if it exists. ++ File[] extensionFiles = extension.listFiles(new FilenameFilter() { ++ public boolean accept(File dir, String name) { ++ return name.equals("eclipse"); ++ } ++ }); ++ ++ File[] listFiles; ++ if (extensionFiles.length == 1) { ++ listFiles = extensionFiles[0].listFiles(); ++ } else { ++ listFiles = extension.listFiles(); ++ } + // new magic - multiple info files, f.e. + // egit.info (git feature) + // cdt.linkĀ (properties file containing link=path) to other info file diff --git a/eclipse-debug-symbols.patch b/eclipse-debug-symbols.patch new file mode 100644 index 0000000000000000000000000000000000000000..582ab94a9097e3016abec83bab87d6c246356333 --- /dev/null +++ b/eclipse-debug-symbols.patch @@ -0,0 +1,23 @@ +--- a/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh.orig 2018-08-19 12:37:52.764590467 +0100 ++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh 2018-08-19 12:38:15.032503913 +0100 +@@ -75,7 +75,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 +--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak.orig 2014-03-12 14:47:37.513191381 +0000 ++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/make_linux.mak 2014-03-12 14:47:45.672200015 +0000 +@@ -94,7 +94,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)\"" \ diff --git a/eclipse-disable-droplets-in-dropins.patch b/eclipse-disable-droplets-in-dropins.patch new file mode 100644 index 0000000000000000000000000000000000000000..cc0a5496c1c671c558745df0cb7a94eaa19739b9 --- /dev/null +++ b/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 a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java +index 802ee1b..74023fe 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/PlatformXmlListener.java +@@ -168,11 +168,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/eclipse-disable-uses-constraints.patch b/eclipse-disable-uses-constraints.patch new file mode 100644 index 0000000000000000000000000000000000000000..460e40c7c9defcd7c08f8a6429c5b30c40043c23 --- /dev/null +++ b/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 a/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java b/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java +index ded683f..7216865 100755 +--- a/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java ++++ b/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/ResolverImpl.java +@@ -1230,7 +1230,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/eclipse-feature-plugins-to-category-ius.patch b/eclipse-feature-plugins-to-category-ius.patch new file mode 100644 index 0000000000000000000000000000000000000000..a49d729bc9abcfb265925bd5b2beea2fc208f7ca --- /dev/null +++ b/eclipse-feature-plugins-to-category-ius.patch @@ -0,0 +1,563 @@ +--- a/eclipse.jdt/org.eclipse.jdt-feature/feature.xml.orig 2018-08-17 01:24:16.000000000 +0100 ++++ b/eclipse.jdt/org.eclipse.jdt-feature/feature.xml 2018-08-19 12:50:33.575708475 +0100 +@@ -19,6 +19,23 @@ + %license + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + + ++ ++ + + + +- +- +- +- + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + +--- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml.orig 2018-08-19 13:57:13.249904259 +0100 ++++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/feature.xml 2018-08-19 14:03:19.527742984 +0100 +@@ -22,6 +22,22 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + + +- +- +- +- +- +- +- +- + + +- +- + + +- +- + + +- +- +- +- +- +- +- +- + + + + eclipse-plugin +- javax.annotation +- 0.0.0 +- +- +- eclipse-plugin +- javax.el ++ javax.el-api + 0.0.0 + + +@@ -75,7 +70,7 @@ + + + eclipse-plugin +- javax.servlet ++ javax.servlet-api + 0.0.0 + + +@@ -95,7 +90,7 @@ + + + eclipse-plugin +- org.apache.jasper.glassfish ++ org.glassfish.web.javax.servlet.jsp + 0.0.0 + + +--- a/eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF.orig 2017-02-15 10:01:24.202436806 +0000 ++++ b/eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.emf.ui/META-INF/MANIFEST.MF 2017-02-15 10:01:35.454301845 +0000 +@@ -39,8 +39,7 @@ + org.eclipse.e4.ui.dialogs;bundle-version="1.0.0", + org.eclipse.e4.emf.xpath + Bundle-ActivationPolicy: lazy +-Import-Package: javax.annotation, +- javax.inject;version="1.0.0", ++Import-Package: javax.inject;version="1.0.0", + org.osgi.framework;version="1.5.0", + org.osgi.service.event;version="1.3.1" + Export-Package: org.eclipse.e4.tools.emf.ui.common;version="0.12.0.qualifier";x-friends:="org.eclipse.e4.tools.emf.editor3x,org.eclipse.e4.tools.model.spy", +--- a/eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF.orig 2017-02-15 10:00:56.352770853 +0000 ++++ b/eclipse.platform.ui.tools/bundles/org.eclipse.e4.tools.services/META-INF/MANIFEST.MF 2017-02-15 10:01:06.757646050 +0000 +@@ -14,7 +14,6 @@ + org.eclipse.e4.core.di;bundle-version="0.9.0" + Service-Component: OSGI-INF/resourcepoolfunction.xml, OSGI-INF/resourceservice.xml + Bundle-ActivationPolicy: lazy +-Import-Package: javax.annotation, +- javax.inject;version="1.0.0" ++Import-Package: javax.inject;version="1.0.0" + Bundle-Activator: org.eclipse.e4.tools.services.ToolsServicesActivator + Automatic-Module-Name: org.eclipse.e4.tools.services diff --git a/eclipse-fix-dropins.patch b/eclipse-fix-dropins.patch new file mode 100644 index 0000000000000000000000000000000000000000..757ac47880deae2a8c806821067d3245e4030f6c --- /dev/null +++ b/eclipse-fix-dropins.patch @@ -0,0 +1,88 @@ +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java.orig 2014-03-24 10:49:00.000000000 +0000 ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java 2014-03-24 15:39:32.122246214 +0000 +@@ -39,6 +39,7 @@ + + public class SimpleProfileRegistry implements IProfileRegistry, IAgentService { + ++ private static final String PROP_IGNORE_USER_CONFIGURATION = "eclipse.ignoreUserConfiguration"; //$NON-NLS-1$ + private static final String SIMPLE_PROFILE_REGISTRY_INTERNAL = "_simpleProfileRegistry_internal_"; //$NON-NLS-1$ + private static final String PROFILE_REGISTRY = "profile registry"; //$NON-NLS-1$ + private static final String PROFILE_PROPERTIES_FILE = "state.properties"; //$NON-NLS-1$ +@@ -266,6 +267,14 @@ + //fragments support - remeber the property + internalSetProfileStateProperty(profile, profile.getTimestamp(), SIMPLE_PROFILE_REGISTRY_INTERNAL + getExtTimeStamp(), getExtTimeStamp()); + agent.registerService(SERVICE_SHARED_INSTALL_NEW_TIMESTAMP, Long.toString(profile.getTimestamp())); ++ ++ // this looks like a hack, but: ++ // (1) SimpleConfigurationImpl keeps returning master configuration as long as the property is set ++ // (2) SimpleConfigurationImpl sets the propery after it drops user configuration ++ // therefore dropins reconciliation can't load dropins plugins installed into user configuration ++ // after the user configuration has been dropped. ++ // It is necessary to unset this property. ++ //System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$ + } else { + //This is the first time we create the shared profile. Tag it as such and also remember the timestamp of the base + internalSetProfileStateProperty(profile, profile.getTimestamp(), IProfile.STATE_PROP_SHARED_INSTALL, IProfile.STATE_SHARED_INSTALL_VALUE_INITIAL); +@@ -299,6 +308,13 @@ + if (agent.getService(SERVICE_SHARED_INSTALL_NEW_TIMESTAMP) != null) + return false; + ++ // if the property is set by OSGI, and there is no new timestamp (because of the previous condition) ++ // ignore current profile. This will happen only once, because SERVICE_SHARED_INSTALL_NEW_TIMESTAMP ++ // is set during profile reset. ++ if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))) { //$NON-NLS-1$ //$NON-NLS-2$ ++ System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$ ++ return true; ++ } + String baseTimestamp = getBaseTimestamp(profile.getProfileId()); + String extTimestamp = getExtTimeStamp(); + if (baseTimestamp == null) { +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java +@@ -570,6 +570,7 @@ + + // get all IUs from all our repos + IQueryResult allIUs = getAllIUsFromRepos(); ++ HashSet removedFromAllIUs = new HashSet(); + for (Iterator iter = allIUs.iterator(); iter.hasNext();) { + final IInstallableUnit iu = iter.next(); + IInstallableUnit existing = profileIUs.get(iu); +@@ -583,6 +584,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; + } +@@ -625,7 +627,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); + } + +@@ -799,8 +801,8 @@ + IStatus installerPlanStatus = engine.perform(plan.getInstallerPlan(), phaseSet, monitor); + if (!installerPlanStatus.isOK()) + return installerPlanStatus; +- +- applyConfiguration(true); ++ if (isReconciliationApplicationRunning()) ++ applyConfiguration(true); + } + return engine.perform(plan, phaseSet, monitor); + } +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java.orig 2018-04-25 20:31:57.931223008 +0100 ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.ui.sdk.scheduler/src/org/eclipse/equinox/internal/p2/ui/sdk/scheduler/migration/MigrationWizard.java 2018-04-25 20:32:11.069144336 +0100 +@@ -148,7 +148,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); + + return rememberCancellationDecision(dialog.open()); diff --git a/eclipse-fix-tests.patch b/eclipse-fix-tests.patch new file mode 100644 index 0000000000000000000000000000000000000000..6eb48b42025cbceda2349bf49a5e6c5387fac7c7 --- /dev/null +++ b/eclipse-fix-tests.patch @@ -0,0 +1,276 @@ +--- a/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 ++++ b/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 +@@ -77,7 +77,7 @@ + */ + protected IPath getJdtFeatureLocation() { + IPath path = new Path(TargetPlatform.getDefaultLocation()); +- path = path.append("features"); ++ path = path.append("droplets").append("eclipse-jdt").append("eclipse").append("features"); + File dir = path.toFile(); + assertTrue("Missing features directory", dir.exists() && !dir.isFile()); + String[] files = dir.list(); +@@ -613,4 +613,4 @@ + assertTrue(iubc.getIncludeSource()); + } + +-} +\ No newline at end of file ++} +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java +index f1f38f0..f9111e6 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/reconciler/dropins/AbstractReconcilerTest.java +@@ -214,7 +214,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 a/eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties b/eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties +index 376daa6..1742a8d 100644 +--- a/eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties ++++ b/eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/build.properties +@@ -14,6 +14,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 a/eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties b/eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties +index f34ae40..0f9877d 100644 +--- a/eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties ++++ b/eclipse.jdt.core/org.eclipse.jdt.apt.tests/build.properties +@@ -21,4 +21,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 a/eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties b/eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties +index bc8963d..fbe4da3 100644 +--- a/eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties ++++ b/eclipse.jdt.core/org.eclipse.jdt.compiler.apt.tests/build.properties +@@ -25,3 +25,6 @@ + src.includes = about.html + compilerArg=-proc:none + jars.extra.classpath = java10/java10api.jar ++source.lib/apttestprocessors.jar = processors/ ++jars.compile.order = lib/apttestprocessors.jar,\ ++ . +--- a/eclipse.platform/ant/org.eclipse.ant.tests.ui/build.properties.orig 2016-03-24 14:25:47.076289150 +0000 ++++ b/eclipse.platform/ant/org.eclipse.ant.tests.ui/build.properties 2016-03-24 14:26:39.528660802 +0000 +@@ -25,6 +25,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/ +--- a/eclipse.jdt.ui/org.eclipse.jdt.ui.tests/build.properties.orig 2016-03-25 15:09:40.557786910 +0000 ++++ b/eclipse.jdt.ui/org.eclipse.jdt.ui.tests/build.properties 2016-03-25 15:12:08.476059326 +0000 +@@ -22,3 +22,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 ++++ b/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 ++++ b/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 ++++ b/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= +--- a/eclipse.platform/ant/org.eclipse.ant.tests.core/build.properties.orig 2017-03-03 14:20:53.868573338 +0000 ++++ b/eclipse.platform/ant/org.eclipse.ant.tests.core/build.properties 2017-03-06 14:26:42.382365639 +0000 +@@ -23,6 +23,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 ++++ b/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 ++++ b/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"); ++ } ++} ++ +--- a/eclipse.jdt.core/org.eclipse.jdt.core.tests.builder/pom.xml.orig 2017-04-07 10:44:33.764607961 +0100 ++++ b/eclipse.jdt.core/org.eclipse.jdt.core.tests.builder/pom.xml 2017-04-07 11:26:44.511961798 +0100 +@@ -26,4 +26,24 @@ + org.eclipse.jdt.core.tests.builder.BuilderTests + ${project.artifactId} + ++ ++ ++ ++ ++ org.eclipse.tycho ++ target-platform-configuration ++ ++ ++ ++ ++ eclipse-plugin ++ org.eclipse.jdt.annotation ++ 0.0.0 ++ ++ ++ ++ ++ ++ ++ + +--- a/eclipse.pde.build/org.eclipse.pde.build.tests/test.xml.orig 2017-04-28 11:49:47.046123546 +0100 ++++ b/eclipse.pde.build/org.eclipse.pde.build.tests/test.xml 2017-04-28 12:05:11.947521737 +0100 +@@ -156,13 +156,6 @@ + id="org.eclipse.jdt.source.feature.group" + version="" /> + +- +- +- + +Date: Thu May 3 15:58:49 2018 +0100 + + 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 + +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 e6eef8c39..fe5970e79 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 +@@ -300,6 +300,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 d796aefd0..c03924f90 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 +@@ -130,9 +130,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 (int i = 0; i < children.length; i++) { + if (children[i] instanceof MetadataRepositoryElement) { +- put((MetadataRepositoryElement) children[i]); ++ // 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) children[i]).getLocation(); ++ if (childLoc.getPath() != null && childLoc.getPath().startsWith(root)) { ++ isDroplet = true; ++ } ++ } ++ if (!isDroplet) { ++ put((MetadataRepositoryElement) children[i]); ++ } ++ } + } + } + } diff --git a/eclipse-ignore-version-when-calculating-home.patch b/eclipse-ignore-version-when-calculating-home.patch new file mode 100644 index 0000000000000000000000000000000000000000..5973643390d81a584a1f4308b4148c5a00c59f4a --- /dev/null +++ b/eclipse-ignore-version-when-calculating-home.patch @@ -0,0 +1,22 @@ +--- a/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java.orig 2014-03-24 12:06:59.530918305 +0000 ++++ b/rt.equinox.framework/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java 2014-03-24 12:07:42.709932098 +0000 +@@ -1383,7 +1383,7 @@ + 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$ //$NON-NLS-2$ + } catch (IOException e) { + // Do nothing if we get an exception. We will default to a standard location + // in the user's home dir. +--- a/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java.orig 2014-03-24 12:05:52.666896971 +0000 ++++ b/rt.equinox.framework/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/location/EquinoxLocations.java 2014-03-24 12:06:46.076914704 +0000 +@@ -308,7 +308,7 @@ + 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$ //$NON-NLS-2$ + } 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/eclipse-make-droplets-runnable.patch b/eclipse-make-droplets-runnable.patch new file mode 100644 index 0000000000000000000000000000000000000000..94da798f59cf0922921bb0ab6c8e45a316ea965b --- /dev/null +++ b/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 a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java +index 342e33e..425a166 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java +@@ -260,6 +260,22 @@ public class ExtensionLocationArtifactRepository extends AbstractRepository + + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +--- a/eclipse.platform.releng/features/org.eclipse.help-feature/pom.xml.bak 2012-07-31 07:43:57.000000000 +0200 ++++ b/eclipse.platform.releng/features/org.eclipse.help-feature/pom.xml 2012-07-31 08:05:24.279277920 +0200 +@@ -34,6 +34,17 @@ + + source-feature + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +--- a/eclipse.pde.ui/features/org.eclipse.pde-feature/pom.xml.bak 2013-01-29 11:22:47.065953870 +0100 ++++ b/eclipse.pde.ui/features/org.eclipse.pde-feature/pom.xml 2013-01-29 11:23:18.630196529 +0100 +@@ -38,6 +38,8 @@ + + + ++ ++ + + + +--- a/eclipse.jdt/org.eclipse.jdt-feature/pom.xml.orig 2013-02-20 16:32:38.000000000 +0100 ++++ b/eclipse.jdt/org.eclipse.jdt-feature/pom.xml 2013-02-21 10:08:50.404275226 +0100 +@@ -57,6 +57,8 @@ + + + ++ ++ + + + +--- a/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml.orig 2014-11-28 15:27:07.874872769 +0000 ++++ b/eclipse.platform.releng/features/org.eclipse.platform-feature/pom.xml 2014-11-28 15:31:02.592652099 +0000 +@@ -68,6 +68,8 @@ + + + ++ ++ + + + +--- a/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml.orig 2014-05-26 18:37:25.406426611 +0300 ++++ b/eclipse.platform.ui/features/org.eclipse.e4.rcp/pom.xml 2014-05-26 18:37:47.327449374 +0300 +@@ -44,6 +44,22 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + +--- a/eclipse.platform.releng/features/org.eclipse.sdk/feature.xml.orig 2016-04-27 09:18:50.421221722 +0100 ++++ b/eclipse.platform.releng/features/org.eclipse.sdk/feature.xml 2016-04-27 09:19:08.454957280 +0100 +@@ -51,16 +51,6 @@ + id="org.eclipse.help.source" + version="0.0.0"/> + +- +- +- +- +- +- +- +- +- +- + + +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 +--- + ui/org.eclipse.pde.core/META-INF/MANIFEST.MF | 3 +- + .../src/org/eclipse/pde/internal/core/P2Utils.java | 48 +++++++++++++++++++--- + 2 files changed, 45 insertions(+), 6 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 7c20994..ab702e3 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,6 +102,7 @@ Require-Bundle: + org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)" + Eclipse-LazyStart: true + Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +-Import-Package: com.ibm.icu.util ++Import-Package: com.ibm.icu.util, ++ 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 fbd4b81..55cd40e 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 +@@ -15,11 +15,12 @@ + package org.eclipse.pde.internal.core; + + import java.io.*; +-import java.net.MalformedURLException; +-import java.net.URL; ++import java.net.*; ++import java.nio.file.Paths; + import java.util.*; + import org.eclipse.core.runtime.*; + 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.*; +@@ -32,6 +33,7 @@ import org.eclipse.osgi.service.resolver.*; + import org.eclipse.pde.core.plugin.*; + 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; + + /** +@@ -111,7 +113,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; + } +@@ -143,11 +154,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 (MalformedURLException e) { + PDECore.log(e); + return null; +-- +2.7.4 + diff --git a/eclipse-platform-sources-I20180906-0745.tar.xz b/eclipse-platform-sources-I20180906-0745.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..c62a6525cfd779f8f61ddc1671da5e0b257c79bf Binary files /dev/null and b/eclipse-platform-sources-I20180906-0745.tar.xz differ diff --git a/eclipse-remove-jgit-provider.patch b/eclipse-remove-jgit-provider.patch new file mode 100644 index 0000000000000000000000000000000000000000..dfe63ad892a62ff49bd471c7d491e5e133b6f9ea --- /dev/null +++ b/eclipse-remove-jgit-provider.patch @@ -0,0 +1,35 @@ +--- a/eclipse-platform-parent/pom.xml.orig 2014-11-28 14:54:50.000000000 +0000 ++++ b/eclipse-platform-parent/pom.xml 2014-11-28 15:32:51.700154985 +0000 +@@ -491,7 +491,7 @@ + tycho-packaging-plugin + ${tycho.version} + +- ++ + + + false + ${qualifier.format} +- jgit ++ + + pom.xml + + ${jgit.dirtyWorkingTree-platformDefault} +- ++ + + false + diff --git a/eclipse-secondary-arches.patch b/eclipse-secondary-arches.patch new file mode 100644 index 0000000000000000000000000000000000000000..9b3ddb49ef3372a92420caebd4e66bdc97f8bd82 --- /dev/null +++ b/eclipse-secondary-arches.patch @@ -0,0 +1,197 @@ +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 +@@ -418,6 +418,36 @@ + install-size="0" + version="0.0.0" + fragment="true"/> ++ ++ ++ ++ ++ ++ + + ++ ++ ++ ++ ++ ++ + +--- 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,11 @@ + + + ++ ++ ++ + ++ + + + +--- 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 +@@ -37,3 +37,15 @@ + + 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.arm=bin/gtk/linux/arm,gtk_root ++root.linux.gtk.arm.permissions.755=launcher ++ ++root.linux.gtk.aarch64=bin/gtk/linux/aarch64,gtk_root ++root.linux.gtk.aarch64.permissions.755=launcher ++ ++root.linux.gtk.ppc64=bin/gtk/linux/ppc64,gtk_root ++root.linux.gtk.ppc64.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,11 @@ + + + bundles/org.eclipse.swt.cocoa.macosx.x86_64 ++ bundles/org.eclipse.swt.gtk.linux.arm ++ bundles/org.eclipse.swt.gtk.linux.aarch64 ++ bundles/org.eclipse.swt.gtk.linux.ppc64 + bundles/org.eclipse.swt.gtk.linux.ppc64le ++ bundles/org.eclipse.swt.gtk.linux.s390x + bundles/org.eclipse.swt.gtk.linux.x86 + bundles/org.eclipse.swt.gtk.linux.x86_64 + bundles/org.eclipse.swt.win32.win32.x86 +--- 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 +@@ -34,3 +34,23 @@ + requires.7.name = org.eclipse.swt.gtk.linux.ppc64le + requires.7.range = [$version$,$version$] + requires.7.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=ppc64le)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.8.namespace = org.eclipse.equinox.p2.iu ++requires.8.name = org.eclipse.swt.gtk.linux.ppc64 ++requires.8.range = [$version$,$version$] ++requires.8.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=ppc64)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.9.namespace = org.eclipse.equinox.p2.iu ++requires.9.name = org.eclipse.swt.gtk.linux.arm ++requires.9.range = [$version$,$version$] ++requires.9.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=arm)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.10.namespace = org.eclipse.equinox.p2.iu ++requires.10.name = org.eclipse.swt.gtk.linux.aarch64 ++requires.10.range = [$version$,$version$] ++requires.10.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=aarch64)(!(org.eclipse.swt.buildtime=true))) ++ ++requires.11.namespace = org.eclipse.equinox.p2.iu ++requires.11.name = org.eclipse.swt.gtk.linux.s390x ++requires.11.range = [$version$,$version$] ++requires.11.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 +@@ -109,7 +109,7 @@ + "s390x") + defaultOSArch="s390x" + defaultJava=DEFAULT_JAVA_EXEC +- OUTPUT_DIR="$EXEC_DIR/contributed/$defaultWS/$defaultOS/$defaultOSArch" ++ OUTPUT_DIR="$EXEC_DIR/bin/$defaultWS/$defaultOS/$defaultOSArch" + ;; + arm*) + defaultOSArch="arm" +--- 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 +@@ -73,6 +73,30 @@ + bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64 + + ++ ++ build-native-launchers-gtk.linux.ppc64 ++ ++ ++ native ++ gtk.linux.ppc64 ++ ++ ++ ++ bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64 ++ ++ ++ ++ build-native-launchers-gtk.linux.s390x ++ ++ ++ native ++ gtk.linux.s390x ++ ++ ++ ++ bundles/org.eclipse.equinox.launcher.gtk.linux.s390x ++ ++ + + + diff --git a/eclipse-support-symlink-bundles.patch b/eclipse-support-symlink-bundles.patch new file mode 100644 index 0000000000000000000000000000000000000000..487fc2cd1a1f406a0ae5186de9c1ac7b64e4a22d --- /dev/null +++ b/eclipse-support-symlink-bundles.patch @@ -0,0 +1,159 @@ +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 a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF b/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF +index d88d0a6..07fe087 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/META-INF/MANIFEST.MF ++++ b/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.wiring;version="1.2.0", +diff --git a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java b/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +index ab69b88..d6bf121 100644 +--- a/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java ++++ b/rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/utils/SimpleConfiguratorUtils.java +@@ -15,8 +15,12 @@ package org.eclipse.equinox.internal.simpleconfigurator.utils; + import java.net.*; + import java.nio.file.Files; + 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 { + +@@ -277,6 +281,16 @@ public class SimpleConfiguratorUtils { + 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); +@@ -400,4 +414,93 @@ public class SimpleConfiguratorUtils { + } + return regularTimestamp; + } ++ ++ 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; ++ } + } +-- +2.5.0 + diff --git a/eclipse-swt-disable-gtk2.patch b/eclipse-swt-disable-gtk2.patch new file mode 100644 index 0000000000000000000000000000000000000000..2024e0e2dede801335711d462012e4d8dfd43fd4 --- /dev/null +++ b/eclipse-swt-disable-gtk2.patch @@ -0,0 +1,25 @@ +--- a/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml.orig ++++ b/eclipse.platform.swt/bundles/org.eclipse.swt/buildSWT.xml +@@ -898,15 +898,19 @@ + + + ++ ++ ++ ++ ++ ++ ++ + + + + + + +- +- +- + + + diff --git a/eclipse.spec b/eclipse.spec new file mode 100644 index 0000000000000000000000000000000000000000..8cc5ace2b872e7a24b19dfe46fcca8b2a985f6cc --- /dev/null +++ b/eclipse.spec @@ -0,0 +1,581 @@ +Name: eclipse +Epoch: 1 +Version: 4.9.0 +Release: 3 +Summary: Eclipse is an open source, Java-based, extensible development platform. +License: EPL-2.0 +URL: http://www.eclipse.org/ +Source0: http://download.eclipse.org/eclipse/downloads/drops4/I20180906-0745/eclipse-platform-sources-I20180906-0745.tar.xz +Source1: http://git.eclipse.org/c/linuxtools/org.eclipse.linuxtools.eclipse-build.git/snapshot/org.eclipse.linuxtools.eclipse-build-44643cbda3dfd6f00fbf1b346dae7068df2a9ef9.tar.xz + +Patch0000: eclipse-no-source-for-dependencies.patch +Patch0001: eclipse-p2-pick-up-renamed-jars.patch +Patch0002: eclipse-ignore-version-when-calculating-home.patch +Patch0003: eclipse-remove-jgit-provider.patch +Patch0004: eclipse-secondary-arches.patch +Patch0005: eclipse-debug-symbols.patch +Patch0006: eclipse-fix-dropins.patch +Patch0007: eclipse-mockito.patch +Patch0008: eclipse-support-symlink-bundles.patch +Patch0009: eclipse-feature-plugins-to-category-ius.patch +Patch0010: eclipse-fix-tests.patch +Patch0011: eclipse-adjust-droplets.patch +Patch0012: eclipse-pde-tp-support-droplets.patch +Patch0013: eclipse-swt-disable-gtk2.patch +Patch0014: eclipse-disable-uses-constraints.patch +Patch0016: eclipse-make-droplets-runnable.patch +Patch0017: eclipse-disable-droplets-in-dropins.patch +Patch0018: prefer_x11_backend.patch +Patch0019: fix_ant_build.patch +Patch0020: eclipse-hide-droplets-from-install-wizard.patch + +BuildRequires: gdb-headless maven-local tycho tycho-extras cbi-plugins maven-assembly-plugin +BuildRequires: maven-antrun-plugin maven-dependency-plugin maven-enforcer-plugin maven-install-plugin +BuildRequires: maven-shade-plugin xml-maven-plugin rhino sonatype-oss-parent rsync make gcc zip +BuildRequires: unzip desktop-file-utils pkgconfig(glib-2.0) pkgconfig(gio-2.0) pkgconfig(nspr) +BuildRequires: pkgconfig(glu) pkgconfig(gl) pkgconfig(cairo) pkgconfig(xt) pkgconfig(xtst) +BuildRequires: pkgconfig(libsecret-1) pkgconfig(gtk+-2.0) pkgconfig(gtk+-3.0) pkgconfig(webkit2gtk-4.0) +BuildRequires: icu4j >= 1:62.1 ant >= 1.10.5 ant-antlr ant-apache-bcel ant-apache-log4j +BuildRequires: ant-apache-oro ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf +BuildRequires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch ant-testutil +BuildRequires: jsch >= 0:0.1.46-2 ant-apache-xalan2 ant-jmf ant-xz ant-junit5 apache-commons-logging +BuildRequires: apache-commons-el >= 1.0-22 apache-commons-codec apache-commons-jxpath +BuildRequires: apache-commons-fileupload osgi(org.apache.felix.gogo.shell) >= 1.1.0 +BuildRequires: osgi(org.apache.felix.gogo.command) >= 1.0.2 +BuildRequires: osgi(org.apache.felix.gogo.runtime) >= 1.1.0 +BuildRequires: osgi(org.apache.felix.scr) >= 2.0.14 osgi(org.eclipse.jetty.util) >= 9.4.11 +BuildRequires: osgi(org.eclipse.jetty.server) >= 9.4.11 osgi(org.eclipse.jetty.http) >= 9.4.11 +BuildRequires: osgi(org.eclipse.jetty.continuation) >= 9.4.11 +BuildRequires: osgi(org.eclipse.jetty.io) >= 9.4.11 osgi(org.eclipse.jetty.security) >= 9.4.11 +BuildRequires: osgi(org.eclipse.jetty.servlet) >= 9.4.11 lucene-core >= 7.1.0 +BuildRequires: lucene-analysis >= 7.1.0 lucene-queryparser >= 7.1.0 lucene-analyzers-smartcn >= 7.1.0 +BuildRequires: junit >= 4.12 junit5 apiguardian hamcrest sat4j objectweb-asm >= 6.1.1 sac +BuildRequires: batik >= 1.10 batik-css >= 1.10 xmlgraphics-commons >= 2.2 xml-commons-apis atinject +BuildRequires: eclipse-ecf-core >= 3.14.1-2 eclipse-emf-core >= 1:2.15.0-0.2 eclipse-license2 +BuildRequires: glassfish-el-api >= 3.0.1 glassfish-el >= 3.0.1 glassfish-jsp-api >= 2.2.1-4 +BuildRequires: glassfish-jsp >= 2.2.5 glassfish-servlet-api >= 3.1.0 httpcomponents-core +BuildRequires: httpcomponents-client jsoup xz-java mockito osgi(osgi.annotation) +BuildRequires: eclipse-pde eclipse-egit eclipse-emf-runtime + +%description +Eclipse is an integrated development environment (IDE) used in computer programming. +It contains a base workspace and an extensible plug-in system for customizing the environment. + +%package swt +Summary: Provides SWT Library for GTK+ +Requires: java-headless >= 1:1.8.0 javapackages-tools gtk3 webkitgtk4 + +%description swt +This package provides SWT Library for GTK+. + +%package equinox-osgi +Summary: Open Service Gateway Initiative(OSGi) in eclipse +Requires: java-headless >= 1:1.8.0 javapackages-tools +Provides: osgi(system.bundle) = 1:4.9.0 + +%description equinox-osgi +This package provides the open Service Gateway Initiative(OSGi) in eclipse - Equinox + +%package platform +Summary: Provides eclipse platform common files +Recommends: eclipse-abrt eclipse-usage + +Requires: ant >= 1.10.5 ant-antlr ant-apache-bcel ant-apache-log4j ant-apache-oro +Requires: ant-apache-regexp ant-apache-resolver ant-commons-logging ant-apache-bsf +Requires: ant-commons-net ant-javamail ant-jdepend ant-junit ant-swing ant-jsch +Requires: ant-testutil ant-apache-xalan2 ant-jmf ant-xz ant-junit5 +Requires: jsch >= 0.1.46-2 apache-commons-el >= 1.0-23 apache-commons-logging +Requires: apache-commons-codec apache-commons-jxpath osgi(org.apache.felix.gogo.shell) >= 1.0.0 +Requires: osgi(org.apache.felix.gogo.command) >= 1.0.2 +Requires: osgi(org.apache.felix.gogo.runtime) >= 1.0.4 +Requires: osgi(org.apache.felix.scr) >= 2.0.14 +Requires: osgi(org.eclipse.jetty.util) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.server) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.http) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.continuation) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.io) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.security) >= 9.4.11 +Requires: osgi(org.eclipse.jetty.servlet) >= 9.4.11 +Requires: lucene-core >= 7.1.0 lucene-analysis >= 7.1.0 lucene-queryparser >= 7.1.0 +Requires: lucene-analyzers-smartcn >= 7.1.0 sat4j sac batik >= 1.10 batik-css >= 1.10 +Requires: xmlgraphics-commons >= 2.2 xml-commons-apis atinject eclipse-ecf-core >= 3.14.0-1 +Requires: eclipse-emf-core >= 1:2.14.0-1 glassfish-el-api >= 3.0.1 glassfish-el >= 3.0.1 +Requires: glassfish-jsp-api >= 2.2.1-4 glassfish-jsp >= 2.2.5 glassfish-servlet-api >= 3.1.0 +Requires: icu4j >= 1:62.1 eclipse-swt = 1:4.9.0-3 osgi(org.tukaani.xz) +Requires: eclipse-equinox-osgi = 1:4.9.0-3 httpcomponents-core httpcomponents-client + +Provides: eclipse-nls = 4.9.0-3 +Obsoletes: eclipse-nls < 4.9.0-3 + +%description platform +The eclipse-platform is just the base of eclipse, +it provides some common files. + +%package jdt +Summary: Provides Development Tools for Java +BuildArch: noarch +Provides: eclipse = 1:4.9.0-3 +Requires: eclipse-platform = 1:4.9.0-3 osgi(org.junit) >= 4.12 osgi(org.hamcrest.core) +Recommends: eclipse-recommenders + +%description jdt +This package Provides Development Tools for Java + +%package pde +Summary: Provides Eclipse Plugin Development Environment +Requires: eclipse-platform = 1:4.9.0-3 eclipse-jdt = 1:4.9.0-3 objectweb-asm >= 6.1.1 + +%description pde +The eclipse-pde package is necessary for developing Eclipse plugins. + +%package p2-discovery +Summary: Provides Eclipse p2 Discovery +BuildArch: noarch +Requires: eclipse-platform = 1:4.9.0-3 + +%description p2-discovery +The eclipse-p2-discovery package is a tool to display and install +from existing P2 repositories or as a framework to build branded +installer UIs. + +%package contributor-tools +Summary: Provides Eclipse Contributors Tools +Requires: eclipse-platform = 1:4.9.0-3 easymock mockito + +%description contributor-tools +The eclipse-contributor-tools consists of SWT tools, E4 tools, +Rel-Eng tools and Eclipse Test frameworks. And all these specifically for Eclipse contributors. + +%package tests +Summary: Provides Eclipse Tests +Requires: eclipse-contributor-tools = 1:4.9.0-3 + +%description tests +This package provides a large number of test cases to ensure the smooth running of eclipse + +%prep +%autosetup %{SOURCE0} -n eclipse-platform-sources-I20180906-0745 -p1 +tar --strip-components=1 -xf %{SOURCE1} + +find . ! -path "*/JCL/*" ! -name "rtstubs*.jar" ! -name "java10api.jar" ! -name "j9stubs.jar" \ + -type f -name *.jar -delete +for file_type in class so dll jnilib ; do + find . -type f -name *.$file_type -delete ; +done + +rm -rf rt.equinox.binaries/org.eclipse.equinox.executable/{bin,contributed}/ + +%pom_xpath_remove "pom:configuration/pom:target" eclipse-platform-parent +%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.ip 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 bundles/org.eclipse.equinox.cm.test rt.equinox.bundles +%pom_disable_module bundles/org.eclipse.equinox.p2.tests.reconciler.product rt.equinox.p2 +%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 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 +%pom_disable_module features/org.eclipse.equinox.sdk 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 org.eclipse.jdt.annotation_v1 eclipse.jdt.core +%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_xpath_remove "plugin[@version='1.1.300.qualifier']" eclipse.jdt/org.eclipse.jdt-feature/feature.xml +sed -i -e '/org\.eclipse\.jdt\.annotation;bundle-version="\[1\.1\.0,2\.0\.0)"/d' \ + eclipse.jdt.core/org.eclipse.jdt.core.tests.{model,builder,compiler}/META-INF/MANIFEST.MF \ + eclipse.jdt.core/org.eclipse.jdt.apt.pluggable.tests/META-INF/MANIFEST.MF \ + eclipse.jdt.ui/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF +%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 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 + +utils/ensure_arch.sh rt.equinox.binaries x86 arm +utils/ensure_arch.sh rt.equinox.framework/bundles x86 arm +utils/ensure_arch.sh eclipse.platform.swt.binaries/bundles x86 arm +utils/ensure_arch.sh rt.equinox.binaries x86_64 aarch64 ppc64 +utils/ensure_arch.sh rt.equinox.framework/bundles x86_64 aarch64 ppc64 +utils/ensure_arch.sh eclipse.platform.swt.binaries/bundles x86_64 aarch64 ppc64 + +TYCHO_ENV="linuxgtk%{_arch}" +%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse-platform-parent +%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests +%pom_xpath_set "pom:configuration/pom:environments" "$TYCHO_ENV" eclipse.platform.ui/bundles/org.eclipse.e4.ui.swt.gtk +for ids in `ls eclipse.platform.swt.binaries/bundles | grep -P -e 'org.eclipse.swt\.(?!gtk\.linux.%{_arch}$)'` ; do + module=$(grep ">bundles/$ids<" eclipse.platform.swt.binaries/pom.xml || :) + if [ -n "$module" ] ; then + %pom_disable_module bundles/$ids eclipse.platform.swt.binaries + %pom_xpath_inject "pom:excludes" "" eclipse.platform.ui/features/org.eclipse.e4.rcp + fi +done +for ids in `ls rt.equinox.framework/bundles | grep -P -e 'org.eclipse.equinox.launcher\.(?!gtk\.linux.%{_arch}$)'` ; do + module=$(grep ">bundles/$ids<" rt.equinox.framework/pom.xml || :) + if [ -n "$module" ] ; then + %pom_disable_module bundles/$ids rt.equinox.framework + %pom_xpath_remove -f "plugin[@id='$ids']" rt.equinox.framework/features/org.eclipse.equinox.executable.feature/feature.xml + fi +done +for ids in `(cd rt.equinox.bundles/bundles && ls -d *{macosx,win32,linux}*) | grep -P -e 'org.eclipse.equinox.security\.(?!linux\.%{_arch}$)'` ; do + %pom_disable_module bundles/$ids rt.equinox.bundles + %pom_xpath_remove "plugin[@id='$ids']" rt.equinox.p2/features/org.eclipse.equinox.p2.core.feature/feature.xml +done +for ids in `ls eclipse.platform.team/bundles/org.eclipse.core.net/fragments/ | grep -P -e 'org.eclipse.core.net\.(?!linux.%{_arch}$)'` ; do + %pom_disable_module bundles/org.eclipse.core.net/fragments/$ids eclipse.platform.team +done +for ids in `ls eclipse.platform.resources/bundles/ | grep -P -e 'org.eclipse.core.filesystem\.(?!linux\.%{_arch}$)'` ; do + module=$(grep ">bundles/$ids<" eclipse.platform.resources/pom.xml || :) + if [ -n "$module" ] ; then + %pom_disable_module bundles/$ids eclipse.platform.resources + %pom_xpath_remove -f "plugin[@id='$ids']" eclipse.platform.resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml + fi +done +%pom_disable_module bundles/org.eclipse.compare.win32 eclipse.platform.team +%pom_disable_module bundles/org.eclipse.core.resources.win32.x86 eclipse.platform.resources +%pom_disable_module bundles/org.eclipse.core.resources.win32.x86_64 eclipse.platform.resources +%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 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 +for xml_name 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']" $xml_name + %pom_xpath_remove -f "plugin[@os='win32']" $xml_name + %pom_xpath_remove -f "plugin[@ws='win32']" $xml_name + for arch in x86 x86_64 arm aarch64 ppc64 ppc64le s390x ; do + if [ "$arch" != "%{_arch}" ] ; then + %pom_xpath_remove -f "plugin[@arch='$arch']" $xml_name + fi + done +done + +fix_files=$(grep -lr 3.107.100 eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.*) +sed -i -e "s/3.107.100/3.108.0/" $fix_files + +fix_files=$(grep -lr '1\.1\.[67]00' rt.equinox.framework/bundles/org.eclipse.equinox.launcher.gtk.linux.*) + +sed -i -e "s/1\.1\.[67]00/1.1.800/" -e "/Fragment-Host/s/\(bundle-version=\).*/\1\"1.0.0\"/" $fix_files + +%pom_disable_module tests/org.eclipse.swt.tests.fragments.feature eclipse.platform.swt +%pom_xpath_remove "pom:dependency-resolution" eclipse.platform.swt/tests/org.eclipse.swt.tests{,.gtk} + +sed -i -e '//a' \ + eclipse.platform.releng.tychoeclipsebuilder/platform/platform.product +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 + +%pom_xpath_remove "plugin[@id='org.hamcrest']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml +%pom_xpath_remove "plugin[@id='org.hamcrest.text']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml + +%pom_xpath_remove "plugin[@id='org.mockito']" eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml +%pom_xpath_inject "feature" '' eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml +%pom_xpath_inject "feature" '' eclipse.platform.releng/features/org.eclipse.sdk.tests/feature.xml +%pom_xpath_remove "plugin[@id='org.eclipse.core.tests.harness']" eclipse.platform.releng/features/org.eclipse.test-feature/feature.xml + +%pom_xpath_set "pom:plugin[pom:artifactId = 'tycho-packaging-plugin']/pom:configuration/pom:archive/pom:addMavenDescriptor" "true" eclipse-platform-parent + +for props in rt.equinox.framework/features/org.eclipse.equinox.executable.feature/build.properties; do + grep '^root\.linux\.gtk\.%{_arch}[.=]' $props > tmp + sed -i -e '/^root\./d' $props && cat tmp >> $props +done + +install -d rt.equinox.binaries/org.eclipse.equinox.executable/bin/gtk/linux/%{_arch} + +for mf_file in rt.equinox.bundles/bundles/org.eclipse.equinox.security.linux.*/META-INF/MANIFEST.MF \ + 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/fragments/org.eclipse.core.net.linux.*/META-INF/MANIFEST.MF ; do + echo -e "Eclipse-BundleShape: dir\n\n" >> $mf_file; +done + +%pom_xpath_inject "pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId='tycho-compiler-plugin']/pom:dependencies" \ + "org.eclipsejava10api10" eclipse-platform-parent +dependencies/fake_ant_dependency.sh +sed -i '/javax\.servlet\.jsp/ s/2\.3/2\.4/' rt.equinox.bundles/bundles/org.eclipse.equinox.jsp.jasper/META-INF/MANIFEST.MF +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 +sed -i -e '/org.apache.felix.service.command/s/;status=provisional//' rt.equinox.bundles/bundles/org.eclipse.equinox.console{,.ssh}/META-INF/MANIFEST.MF +%pom_remove_plugin org.eclipse.jetty:jetty-jspc-maven-plugin eclipse.platform.ua/org.eclipse.help.webapp + + +for files in rt.equinox.framework/bundles/org.eclipse.osgi/osgi/ \ + rt.equinox.framework/bundles/org.eclipse.osgi.services/lib/ \ + rt.equinox.framework/bundles/org.eclipse.osgi.util/lib/ \ + rt.equinox.bundles/bundles/org.eclipse.equinox.http.servlet/osgi/ \ + rt.equinox.bundles/bundles/org.eclipse.equinox.coordinator/lib/ \ + rt.equinox.bundles/bundles/org.eclipse.equinox.log.stream/osgi/ ;do + ln -s $(build-classpath osgi-annotation) $files; +done + +rm eclipse.platform.swt/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug421127_Clipping_is_wrong.java + +%mvn_package "::pom::" __noinstall +%mvn_package ":*tests*" tests +%mvn_package ":org.eclipse.equinox.frameworkadmin.test" tests +%mvn_package ":org.eclipse.equinox.p2.installer" tests +%mvn_package ":org.eclipse.jface.examples.databinding" tests +%mvn_package ":org.eclipse.pde.tools.versioning" tests +%mvn_package ":org.eclipse.update.core" tests +%mvn_package "org.eclipse.test:org.eclipse.test" contributor-tools +%mvn_package ":*examples*" __noinstall +%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.test{,.feature}:" contributor-tools +%mvn_package ":org.eclipse.ant.optional.junit" 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.ui:org.eclipse.ui.{views.log,trace}" pde +%mvn_package "org.eclipse.sdk{,.feature}:" sdk +%mvn_package ":" __noinstall + +%build +export MAVEN_OPTS="-Xmx1024m -XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState ${MAVEN_OPTS}" +export JAVA_HOME=%{_jvmdir}/java + +sed -i -e '/createSourcesJar/d' eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent/pom.xml +(cd eclipse.jdt.debug/org.eclipse.jdt.launching.javaagent && xmvn -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=$(date -u -d"$(stat --format=%y %{SOURCE0})" +v%Y%m%d-%H%M) +%mvn_build -j -f -- -DforceContextQualifier=$QUALIFIER \ + -Declipse.javadoc=/usr/bin/javadoc -Dnative=gtk.linux.%{_arch} \ + -Dtycho.local.keepTarget \ + -Dfedora.p2.repos=$(pwd)/.m2/p2/repo-sdk/plugins -DbuildType=X + +product="eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}" +dependencies/fake_ant_dependency.sh $product/eclipse/plugins/org.apache.ant_* +dependencies/replace_platform_plugins_with_symlinks.sh $product/eclipse %{_javadir} %{_jnidir} + +pushd $product/eclipse +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/* +rm -f icon.xpm +rm -rf features/org.eclipse.emf.* plugins/org.eclipse.emf.* \ + features/org.eclipse.ecf.* plugins/org.eclipse.ecf.* plugins/org.eclipse.ecf_* + +pushd p2/org.eclipse.equinox.p2.engine/.settings + sed -i -e "/repositories\/file/d" -e "/repositories\/memory/d" *.prefs ../profileRegistry/SDKProfile.profile/.data/.settings/*.prefs +popd + +sed -i -e "s|-Xms40m|-Xms512m|g" -e "s|-Xmx512m|-Xmx1024m|g" -e '1i-protect\nroot' eclipse.ini + +cat >> eclipse.ini < +-XX:CompileCommand=exclude,org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates,instantiateTemplate +-XX:CompileCommand=exclude,org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPLinkage,addBinding +-XX:CompileCommand=exclude,org/python/pydev/editor/codecompletion/revisited/PythonPathHelper,isValidSourceFile +-XX:CompileCommand=exclude,org/eclipse/tycho/core/osgitools/EquinoxResolver,newState +-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=%{_datadir}/eclipse/dropins +-Dp2.fragments=%{_prefix}/lib/eclipse/droplets,%{_datadir}/eclipse/droplets +-Declipse.p2.skipMovedInstallDetection=true +-Dosgi.resolver.usesMode=ignore +EOF + +popd + +%install +%mvn_install + +install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir} $RPM_BUILD_ROOT%{_jnidir} \ +$RPM_BUILD_ROOT%{_javadir}/eclipse $RPM_BUILD_ROOT%{_mavenpomdir} $RPM_BUILD_ROOT%{_bindir} + +install -D eclipse.platform/platform/org.eclipse.platform/eclipse32.png \ + $RPM_BUILD_ROOT/usr/share/icons/hicolor/32x32/apps/eclipse.png +install -D eclipse.platform/platform/org.eclipse.platform/eclipse48.png \ + $RPM_BUILD_ROOT/usr/share/icons/hicolor/48x48/apps/eclipse.png +install -D eclipse.platform/platform/org.eclipse.platform/eclipse256.png \ + $RPM_BUILD_ROOT/usr/share/icons/hicolor/256x256/apps/eclipse.png +install -d $RPM_BUILD_ROOT/usr/share/pixmaps +ln -s /usr/share/icons/hicolor/256x256/apps/eclipse.png \ + $RPM_BUILD_ROOT/usr/share/pixmaps/eclipse.png + +sed -i -e 's/Exec=eclipse/Exec=eclipse/g' desktopintegration/eclipse.desktop +sed -i -e 's/Name=Eclipse/Name=Eclipse/g' desktopintegration/eclipse.desktop +sed -i -e 's/Icon=eclipse/Icon=eclipse/g' desktopintegration/eclipse.desktop +install -m644 -D desktopintegration/eclipse.desktop $RPM_BUILD_ROOT/usr/share/applications/eclipse.desktop +desktop-file-validate $RPM_BUILD_ROOT/usr/share/applications/eclipse.desktop + +for xml_file in eclipse.appdata.xml eclipse-jdt.metainfo.xml eclipse-pde.metainfo.xml ; +do + install -m644 -D desktopintegration/$xml_file $RPM_BUILD_ROOT%{_datadir}/appdata/$xml_file ; +done + +LOCAL_PWD=`pwd` +cd eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile/ +for gz_file in `ls | grep "profile.gz"` ; do \ + gunzip $gz_file ; \ + sed -i -e "s@${LOCAL_PWD}/eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse@%{_prefix}/lib/eclipse@g" *.profile ; \ + gzip *.profile ; \ + done +cd - + +rsync -vrpl eclipse.platform.releng.tychoeclipsebuilder/platform/target/products/org.eclipse.platform.ide/linux/gtk/%{_arch}/eclipse \ + %{buildroot}%{_prefix}/lib + +cd %{buildroot}%{_bindir} + ln -s %{_prefix}/lib/eclipse/eclipse +cd - +cd %{buildroot}/%{_sysconfdir}/ + ln -s %{_prefix}/lib/eclipse/eclipse.ini +cd - +cd %{buildroot}%{_prefix}/lib/eclipse/plugins +EQUINOX_JARS=$(ls . | grep -P '^org.eclipse.equinox(?!.*\.ui[\._])' | sed -e 's|^org\.eclipse\.\(.*\)_.*|\1|') +OSGI_JARS=$(ls . | grep '^org.eclipse.osgi' | sed -e 's|^org\.eclipse\.\(.*\)_.*|\1|') +cd - + +location=%{_prefix}/lib/eclipse/plugins +while [ "$location" != "/" ] ; do + location=$(dirname $location) + updir="$updir../" +done +cd %{buildroot}%{_javadir}/eclipse +for J in $EQUINOX_JARS core.contenttype core.jobs core.net core.runtime ; do + DIR=$updir%{_prefix}/lib/eclipse/plugins + if [ "$J" != "equinox.http.servlet" ] ; then + [ -e "`ls $DIR/org.eclipse.${J}_*.jar`" ] && ln -s $DIR/org.eclipse.${J}_*.jar ${J}.jar + fi +done +cd - + +rm -rf .xmvn/ .xmvn-reactor +%mvn_package "org.eclipse.osgi:" equinox-osgi +%mvn_package "org.eclipse.equinox.http:" platform +%mvn_package "org.eclipse.swt:" swt + +for J in $OSGI_JARS ; do + JAR=%{buildroot}%{_prefix}/lib/eclipse/plugins/org.eclipse.${J}_*.jar + VER=$(echo $JAR | sed -e "s/.*${J}_\(.*\)\.jar/\1/") + %mvn_artifact "org.eclipse.osgi:$J:jar:$VER" $JAR + if [ "$J" = "osgi" ] ; then + %mvn_alias "org.eclipse.osgi:$J" "org.eclipse.osgi:org.eclipse.$J" "org.eclipse.tycho:org.eclipse.$J" "org.eclipse:$J" + else + %mvn_alias "org.eclipse.osgi:$J" "org.eclipse.osgi:org.eclipse.$J" "org.eclipse.tycho:org.eclipse.$J" + fi +done + + +JAR=%{buildroot}%{_prefix}/lib/eclipse/plugins/org.eclipse.equinox.http.servlet_*.jar +VER=$(echo $JAR | sed -e "s/.*_\(.*\)\.jar/\1/") +%mvn_artifact "org.eclipse.equinox.http:equinox.http.servlet:jar:$VER" $JAR +%mvn_alias "org.eclipse.equinox.http:equinox.http.servlet" "org.eclipse.equinox.http:servlet" + +JAR=%{buildroot}%{_prefix}/lib/eclipse/plugins/org.eclipse.swt_*.jar +VER=$(echo $JAR | sed -e "s/.*_\(.*\)\.jar/\1/") +%mvn_artifact "org.eclipse.swt:org.eclipse.swt:jar:$VER" ./eclipse.platform.swt.binaries/bundles/org.eclipse.swt.gtk.linux.%{_arch}/target/org.eclipse.swt.gtk.linux.%{_arch}-*-SNAPSHOT.jar +%mvn_alias "org.eclipse.swt:org.eclipse.swt" "org.eclipse.swt:swt" +%mvn_file "org.eclipse.swt:org.eclipse.swt" swt + +%mvn_install + +cd %{buildroot}/%{_prefix}/lib/eclipse/ + ln -s $(abs2rel %{_jnidir}/swt.jar %{_prefix}/lib/eclipse) +cd - + +unzip eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/eclipse-junit-tests-bundle.zip \ + -d $RPM_BUILD_ROOT/%{_datadir}/ -x eclipse-testing/runtests.bat eclipse-testing/runtestsmac.sh +cp utils/splitter.xsl $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing +rm $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/eclipse-junit-tests-*.zip + +sed -i '/org.eclipse.equinox.p2.reconciler.test/ d' $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/equinoxp2tests.properties +cp -r testbundle-to-eclipse-test $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/testbundle +mv $RPM_BUILD_ROOT/%{_datadir}/eclipse-testing/testbundle/eclipse-runTestBundles $RPM_BUILD_ROOT/%{_bindir}/eclipse-runTestBundles +find $RPM_BUILD_ROOT/%{_prefix}/lib/eclipse -name *.so -exec chmod a+x {} \; + +install -d -m 755 %{buildroot}%{_prefix}/lib/eclipse/.pkgs +echo "4.9.0-3" > %{buildroot}%{_prefix}/lib/eclipse/.pkgs/Distro%{?dist} + +%post platform +touch --no-create /usr/share/icons/hicolor +if [ -x /usr/bin/gtk-update-icon-cache ]; then + gtk-update-icon-cache -q /usr/share/icons/hicolor +fi + +%postun platform +touch --no-create /usr/share/icons/hicolor +if [ -x /usr/bin/gtk-update-icon-cache ]; then + gtk-update-icon-cache -q /usr/share/icons/hicolor +fi + +%files swt -f .mfiles-swt +%{_prefix}/lib/eclipse/plugins/org.eclipse.swt* +%{_prefix}/lib/eclipse/swt.jar +%{_jnidir}/swt.* + +%files platform -f .mfiles-platform +%{_bindir}/eclipse +%{_prefix}/lib/eclipse/eclipse +%{_prefix}/lib/eclipse/.*p* +%config %{_prefix}/lib/eclipse/eclipse.ini +%config %{_sysconfdir}/eclipse.ini +/usr/share/* +%{_datadir}/appdata/eclipse.appdata.xml +%dir %{_prefix}/lib/eclipse/configuration/ +%dir %{_prefix}/lib/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/ +%{_prefix}/lib/eclipse/configuration/* +%{_prefix}/lib/eclipse/features/org.eclipse.* +%{_prefix}/lib/eclipse/plugins/* +%{_prefix}/lib/eclipse/artifacts.xml +%{_prefix}/lib/eclipse/p2 +%doc %{_prefix}/lib/eclipse/readme +%{_javadir}/eclipse/core* +%{_javadir}/eclipse/equinox* +%exclude %{_prefix}/lib/eclipse/plugins/org.eclipse.osgi* +%exclude %{_prefix}/lib/eclipse/plugins/org.eclipse.swt* + +%files jdt -f .mfiles-jdt +%{_datadir}/appdata/eclipse-jdt.metainfo.xml + +%files pde -f .mfiles-pde -f .mfiles-cvs -f .mfiles-sdk +%{_prefix}/lib/eclipse/droplets/eclipse-sdk/features/org.eclipse.equinox.executable_* +%{_datadir}/appdata/eclipse-pde.metainfo.xml + +%files p2-discovery -f .mfiles-p2-discovery + +%files contributor-tools -f .mfiles-contributor-tools + +%files tests -f .mfiles-tests +%{_bindir}/eclipse-runTestBundles +%{_datadir}/eclipse-testing + +%files equinox-osgi -f .mfiles-equinox-osgi +%{_prefix}/lib/eclipse/plugins/org.eclipse.osgi* + +%changelog +* Fri Nov 22 2019 sunguoshuai - 1:4.9.0-3 +- Package init. diff --git a/fix_ant_build.patch b/fix_ant_build.patch new file mode 100644 index 0000000000000000000000000000000000000000..2a1e66e11f5c134edae4f390f1540f933421a822 --- /dev/null +++ b/fix_ant_build.patch @@ -0,0 +1,161 @@ +--- a/eclipse.platform/ant/org.eclipse.ant.launching/build.properties.orig 2017-01-09 10:24:16.258243377 +0000 ++++ b/eclipse.platform/ant/org.eclipse.ant.launching/build.properties 2017-01-09 10:25:08.302620557 +0000 +@@ -20,18 +20,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 +--- a/eclipse.platform/ant/org.eclipse.ant.ui/build.properties.orig 2017-04-03 18:40:41.033489412 +0100 ++++ b/eclipse.platform/ant/org.eclipse.ant.ui/build.properties 2017-04-03 18:43:21.614928391 +0100 +@@ -14,8 +14,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/ +@@ -31,6 +31,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 +--- a/eclipse.platform.common/bundles/org.eclipse.jdt.doc.user/build.xml.orig 2017-01-09 13:30:24.238066571 +0000 ++++ b/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/org.eclipse.linuxtools.eclipse-build-44643cbda3dfd6f00fbf1b346dae7068df2a9ef9.tar.xz b/org.eclipse.linuxtools.eclipse-build-44643cbda3dfd6f00fbf1b346dae7068df2a9ef9.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..0488d57f24bc99866740ce0e19841fd5e9cad287 Binary files /dev/null and b/org.eclipse.linuxtools.eclipse-build-44643cbda3dfd6f00fbf1b346dae7068df2a9ef9.tar.xz differ diff --git a/prefer_x11_backend.patch b/prefer_x11_backend.patch new file mode 100644 index 0000000000000000000000000000000000000000..71fe3e2aa9574508a98786249a7a087945d0511f --- /dev/null +++ b/prefer_x11_backend.patch @@ -0,0 +1,14 @@ +--- a/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/eclipseGtkInit.c.orig 2018-08-22 15:19:04.602623018 +0100 ++++ b/rt.equinox.framework/features/org.eclipse.equinox.executable.feature/library/gtk/eclipseGtkInit.c 2018-08-22 15:20:03.453348722 +0100 +@@ -111,6 +111,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; + + char *gtk3 = getenv("SWT_GTK3");