Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Oberhuber2014-06-04 20:49:53 +0000
committerMartin Oberhuber2014-06-04 23:00:35 +0000
commit972ab04adee81615d09beebe9b3798eeb862395c (patch)
tree682b5b3b69780ed2f3c54fe20e23da6a346dd3a7
parente216bb6598aef44240a8c0f6cbdc9a9f48dae265 (diff)
downloadorg.eclipse.tcf-972ab04adee81615d09beebe9b3798eeb862395c.tar.gz
org.eclipse.tcf-972ab04adee81615d09beebe9b3798eeb862395c.tar.xz
org.eclipse.tcf-972ab04adee81615d09beebe9b3798eeb862395c.zip
Terminals: Bug 435150 - Support CDT 8.3 minimal dependency via p2.inf
This change makes sure that the Terminal can depend on a minimal subset of CDT functionality, imported by import-package in MANIFEST.MF plus fragment dependencies in p2.inf. The org.eclipse.cdt.core.native feature is pulled in if it's available, but we can also work on top of CDT 8.3 which didn't have the "native" feature yet. Change-Id: Ibd2dbe1b971f52195aa28fdcdb7e1048ad1ed3cf Signed-off-by: Martin Oberhuber <martin.oberhuber@windriver.com>
-rw-r--r--target_explorer/features/org.eclipse.tcf.te.terminals.feature/build.properties3
-rw-r--r--target_explorer/features/org.eclipse.tcf.te.terminals.feature/feature.xml8
-rw-r--r--target_explorer/features/org.eclipse.tcf.te.terminals.feature/p2.inf22
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/MANIFEST.MF3
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/p2.inf82
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/MANIFEST.MF4
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/p2.inf82
7 files changed, 199 insertions, 5 deletions
diff --git a/target_explorer/features/org.eclipse.tcf.te.terminals.feature/build.properties b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/build.properties
index d9e56c50b..c8eb60109 100644
--- a/target_explorer/features/org.eclipse.tcf.te.terminals.feature/build.properties
+++ b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/build.properties
@@ -8,5 +8,6 @@
# Wind River Systems - initial API and implementation
###############################################################################
bin.includes = feature.xml,\
- feature.properties
+ feature.properties,\
+ p2.inf
src.includes = feature.properties
diff --git a/target_explorer/features/org.eclipse.tcf.te.terminals.feature/feature.xml b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/feature.xml
index 7ae137c1f..a98f9ba68 100644
--- a/target_explorer/features/org.eclipse.tcf.te.terminals.feature/feature.xml
+++ b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/feature.xml
@@ -24,6 +24,12 @@
<update label="%updateSiteName" url="http://download.eclipse.org/releases/kepler"/>
</url>
+ <!-- For PTY.Modes.TERMINAL , we need minimum o.e.cdt.core_5.6 which is in CDT 8.3 -->
+ <!-- But we express this in bundle dependencies only in order to get a smaller install -->
+ <!-- The side-effect of depending on feature o.e.cdt.native is that it requires CDT 8.4 -->
+ <!-- This is OK for this "stand-alone" feature. Product builders who want CDT 8.3 can -->
+ <!-- Still get it by not using this feature but direct cdt.platform / bundle dependency -->
+ <!-- See https://bugs.eclipse.org/bugs/show_bug.cgi?id=435150 -->
<requires>
<import plugin="org.eclipse.core.expressions" version="3.4.400" match="greaterOrEqual"/>
<import plugin="org.eclipse.core.runtime" version="3.8.0" match="greaterOrEqual"/>
@@ -36,7 +42,6 @@
<import plugin="org.eclipse.tm.terminal" version="3.2.300" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui" version="3.8.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.ui.forms" version="3.5.200" match="greaterOrEqual"/>
- <import plugin="org.eclipse.cdt.core" version="5.6.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.tcf.te.ui.terminals" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.tcf.te.ui.terminals.process" version="1.3.0" match="greaterOrEqual"/>
<import plugin="org.eclipse.tcf.te.runtime.statushandler" version="1.3.0" match="greaterOrEqual"/>
@@ -48,7 +53,6 @@
<import feature="org.eclipse.tm.terminal.serial" version="2.1.300" match="greaterOrEqual"/>
<import feature="org.eclipse.tm.terminal.ssh" version="2.1.300" match="greaterOrEqual"/>
<import feature="org.eclipse.tm.terminal.telnet" version="2.1.300" match="greaterOrEqual"/>
- <import feature="org.eclipse.cdt.platform" version="8.3.0" match="greaterOrEqual"/>
</requires>
<plugin
diff --git a/target_explorer/features/org.eclipse.tcf.te.terminals.feature/p2.inf b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/p2.inf
new file mode 100644
index 000000000..86a0e388b
--- /dev/null
+++ b/target_explorer/features/org.eclipse.tcf.te.terminals.feature/p2.inf
@@ -0,0 +1,22 @@
+###############################################################################
+# Copyright (c) 2014 Wind River Systems, Inc. and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License v1.0 which accompanies this distribution, and is
+# available at http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Wind River Systems - initial API and implementation
+###############################################################################
+
+# Make the org.eclipse.cdt.native feature dependency "optional" since it didn't
+# exist in CDT 8.3 and we can also work on top of CDT 8.3.
+
+# The real dependencies are all properly managed via p2.inf in the
+# org.eclipse.tcf.te.ui.terminals.process/META-INF/p2.inf file.
+# The only benefit of requesting the feature here is that it allow pulling in
+# additional fragments that we are not aware of in the bundle's p2.inf.
+
+requires.0.namespace = org.eclipse.equinox.p2.iu
+requires.0.name = org.eclipse.cdt.native.feature.group
+requires.0.greedy = true
+requires.0.optional = true
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/MANIFEST.MF b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/MANIFEST.MF
index b5a92a9cc..55c3d17a8 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/MANIFEST.MF
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/MANIFEST.MF
@@ -5,7 +5,8 @@ Bundle-SymbolicName: org.eclipse.tcf.te.ui.terminals.local;singleton:=true
Bundle-Version: 1.3.0.qualifier
Bundle-Activator: org.eclipse.tcf.te.ui.terminals.local.activator.UIPlugin
Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.cdt.core;bundle-version="5.6.0",
+Import-Package: org.eclipse.cdt.utils.pty;mandatory:=native
+Require-Bundle: org.eclipse.cdt.core;bundle-version="5.6";resolution:=optional,
org.eclipse.core.resources;bundle-version="3.8.1";resolution:=optional,
org.eclipse.core.runtime;bundle-version="3.8.0",
org.eclipse.tcf.te.runtime;bundle-version="1.3.0",
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/p2.inf b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/p2.inf
new file mode 100644
index 000000000..9bd5194fa
--- /dev/null
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.local/META-INF/p2.inf
@@ -0,0 +1,82 @@
+###############################################################################
+# Copyright (c) 2014 Wind River Systems, Inc. and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License v1.0 which accompanies this distribution, and is
+# available at http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Wind River Systems - initial API and implementation
+###############################################################################
+
+# Most of the dependencies exposed here are actually covered in the feature.xml
+# This file ensures that the current bundle has all it needs, even if installed
+# without the enclosing org.eclipse.tcf.te.terminals.feature .
+# See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=435150 .
+
+# 1. Make the optional cdt.core dependency non-greedy: Use (or update to proper
+# version!) when installed, but do not install automatically since the newer
+# org.eclipse.cdt.core.native can satisfy the dependency better. We use this
+# trick since CDT 8.3 had no version on export-package yet but we do want
+# a version constraint.
+requires.0.namespace = org.eclipse.equinox.p2.iu
+requires.0.name = org.eclipse.cdt.core
+#requires.0.range = [5.6, 6.0)
+requires.0.greedy = false
+requires.0.optional = true
+
+#requires.1.namespace = org.eclipse.equinox.p2.iu
+#requires.1.name = org.eclipse.cdt.core.native
+#requires.1.range = [5.6, 6.0)
+#requires.1.greedy = true
+#requires.1.optional = true
+
+# 2. Add the required fragments for local terminal support with proper version.
+requires.2.namespace = org.eclipse.equinox.p2.iu
+requires.2.name = org.eclipse.cdt.core.aix
+#requires.2.range = [5.3, 6.0)
+requires.2.filter = (osgi.os=aix)
+
+requires.3.namespace = org.eclipse.equinox.p2.iu
+requires.3.name = org.eclipse.cdt.core.linux
+#requires.3.range = [5.2, 6.0)
+requires.3.filter = (osgi.os=linux)
+
+requires.4.namespace = org.eclipse.equinox.p2.iu
+requires.4.name = org.eclipse.cdt.core.linux.ppc64
+#requires.4.range = [5.1, 6.0)
+requires.4.filter = (&(osgi.os=linux)(osgi.arch=ppc64))
+
+requires.5.namespace = org.eclipse.equinox.p2.iu
+requires.5.name = org.eclipse.cdt.core.linux.x86
+#requires.5.range = [5.2, 6.0)
+requires.5.filter = (&(osgi.os=linux)(osgi.arch=x86))
+
+requires.6.namespace = org.eclipse.equinox.p2.iu
+requires.6.name = org.eclipse.cdt.core.linux.x86_64
+#requires.6.range = [5.2, 6.0)
+requires.6.filter = (&(osgi.os=linux)(osgi.arch=x86_64))
+
+requires.7.namespace = org.eclipse.equinox.p2.iu
+requires.7.name = org.eclipse.cdt.core.macosx
+#requires.7.range = [5.2, 6.0)
+requires.7.filter = (osgi.os=macosx)
+
+requires.8.namespace = org.eclipse.equinox.p2.iu
+requires.8.name = org.eclipse.cdt.core.solaris
+#requires.8.range = [5.2, 6.0)
+requires.8.filter = (&(osgi.os=solaris)(osgi.arch=sparc))
+
+requires.9.namespace = org.eclipse.equinox.p2.iu
+requires.9.name = org.eclipse.cdt.core.win32
+#requires.9.range = [5.3, 6.0)
+requires.9.filter = (osgi.os=win32)
+
+requires.10.namespace = org.eclipse.equinox.p2.iu
+requires.10.name = org.eclipse.cdt.core.win32.x86
+#requires.10.range = [5.2, 6.0)
+requires.10.filter = (&(osgi.os=win32)(osgi.arch=x86))
+
+requires.11.namespace = org.eclipse.equinox.p2.iu
+requires.11.name = org.eclipse.cdt.core.win32.x86_64
+#requires.11.range = [5.2, 6.0)
+requires.11.filter = (&(osgi.os=win32)(osgi.arch=x86_64))
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/MANIFEST.MF b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/MANIFEST.MF
index 39da9d361..72f1c07bd 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/MANIFEST.MF
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/MANIFEST.MF
@@ -5,7 +5,9 @@ Bundle-SymbolicName: org.eclipse.tcf.te.ui.terminals.process;singleton:=true
Bundle-Version: 1.3.0.qualifier
Bundle-Activator: org.eclipse.tcf.te.ui.terminals.process.activator.UIPlugin
Bundle-Vendor: %providerName
-Require-Bundle: org.eclipse.cdt.core;bundle-version="5.6.0",
+Import-Package: org.eclipse.cdt.utils.pty;mandatory:=native,
+ org.eclipse.cdt.utils.spawner;mandatory:=native
+Require-Bundle: org.eclipse.cdt.core;bundle-version="5.6";resolution:=optional,
org.eclipse.core.resources;bundle-version="3.8.1";resolution:=optional,
org.eclipse.core.runtime;bundle-version="3.8.0",
org.eclipse.tcf.te.runtime;bundle-version="1.3.0",
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/p2.inf b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/p2.inf
new file mode 100644
index 000000000..9bd5194fa
--- /dev/null
+++ b/target_explorer/plugins/org.eclipse.tcf.te.ui.terminals.process/META-INF/p2.inf
@@ -0,0 +1,82 @@
+###############################################################################
+# Copyright (c) 2014 Wind River Systems, Inc. and others. All rights reserved.
+# This program and the accompanying materials are made available under the terms
+# of the Eclipse Public License v1.0 which accompanies this distribution, and is
+# available at http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Wind River Systems - initial API and implementation
+###############################################################################
+
+# Most of the dependencies exposed here are actually covered in the feature.xml
+# This file ensures that the current bundle has all it needs, even if installed
+# without the enclosing org.eclipse.tcf.te.terminals.feature .
+# See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=435150 .
+
+# 1. Make the optional cdt.core dependency non-greedy: Use (or update to proper
+# version!) when installed, but do not install automatically since the newer
+# org.eclipse.cdt.core.native can satisfy the dependency better. We use this
+# trick since CDT 8.3 had no version on export-package yet but we do want
+# a version constraint.
+requires.0.namespace = org.eclipse.equinox.p2.iu
+requires.0.name = org.eclipse.cdt.core
+#requires.0.range = [5.6, 6.0)
+requires.0.greedy = false
+requires.0.optional = true
+
+#requires.1.namespace = org.eclipse.equinox.p2.iu
+#requires.1.name = org.eclipse.cdt.core.native
+#requires.1.range = [5.6, 6.0)
+#requires.1.greedy = true
+#requires.1.optional = true
+
+# 2. Add the required fragments for local terminal support with proper version.
+requires.2.namespace = org.eclipse.equinox.p2.iu
+requires.2.name = org.eclipse.cdt.core.aix
+#requires.2.range = [5.3, 6.0)
+requires.2.filter = (osgi.os=aix)
+
+requires.3.namespace = org.eclipse.equinox.p2.iu
+requires.3.name = org.eclipse.cdt.core.linux
+#requires.3.range = [5.2, 6.0)
+requires.3.filter = (osgi.os=linux)
+
+requires.4.namespace = org.eclipse.equinox.p2.iu
+requires.4.name = org.eclipse.cdt.core.linux.ppc64
+#requires.4.range = [5.1, 6.0)
+requires.4.filter = (&(osgi.os=linux)(osgi.arch=ppc64))
+
+requires.5.namespace = org.eclipse.equinox.p2.iu
+requires.5.name = org.eclipse.cdt.core.linux.x86
+#requires.5.range = [5.2, 6.0)
+requires.5.filter = (&(osgi.os=linux)(osgi.arch=x86))
+
+requires.6.namespace = org.eclipse.equinox.p2.iu
+requires.6.name = org.eclipse.cdt.core.linux.x86_64
+#requires.6.range = [5.2, 6.0)
+requires.6.filter = (&(osgi.os=linux)(osgi.arch=x86_64))
+
+requires.7.namespace = org.eclipse.equinox.p2.iu
+requires.7.name = org.eclipse.cdt.core.macosx
+#requires.7.range = [5.2, 6.0)
+requires.7.filter = (osgi.os=macosx)
+
+requires.8.namespace = org.eclipse.equinox.p2.iu
+requires.8.name = org.eclipse.cdt.core.solaris
+#requires.8.range = [5.2, 6.0)
+requires.8.filter = (&(osgi.os=solaris)(osgi.arch=sparc))
+
+requires.9.namespace = org.eclipse.equinox.p2.iu
+requires.9.name = org.eclipse.cdt.core.win32
+#requires.9.range = [5.3, 6.0)
+requires.9.filter = (osgi.os=win32)
+
+requires.10.namespace = org.eclipse.equinox.p2.iu
+requires.10.name = org.eclipse.cdt.core.win32.x86
+#requires.10.range = [5.2, 6.0)
+requires.10.filter = (&(osgi.os=win32)(osgi.arch=x86))
+
+requires.11.namespace = org.eclipse.equinox.p2.iu
+requires.11.name = org.eclipse.cdt.core.win32.x86_64
+#requires.11.range = [5.2, 6.0)
+requires.11.filter = (&(osgi.os=win32)(osgi.arch=x86_64))

Back to the top