Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 315124

Summary: [terminal][local][releng] Local Terminal does not work if installed stand-alone without Terminal View
Product: [Tools] Target Management Reporter: Martin Oberhuber <mober.at+eclipse>
Component: TerminalAssignee: Martin Oberhuber <mober.at+eclipse>
Status: RESOLVED FIXED QA Contact: Martin Oberhuber <mober.at+eclipse>
Severity: major    
Priority: P3 CC: anna.dushistova, ddykstal.eclipse, eclipse, mirko
Version: 3.2Flags: mober.at+eclipse: pmc_approved+
anna.dushistova: review+
ddykstal.eclipse: review+
Target Milestone: 3.2 RC4   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 303083, 435887    
Bug Blocks:    
Attachments:
Description Flags
patch
none
additional patch (require cdt.platform feature) none

Description Martin Oberhuber CLA 2010-05-31 14:15:33 EDT
Build ID: TM 3.2rc3

When ONLY installing the "Local Terminal" feature from Helios or the TM site, it is unusable because the Terminal View is missing.

We'll need to either "include" the Terminal View in the Local Terminal Feature, or require it.

- if we "include" it we get duplication of bits in the ZIP's.
- if we "require" it a person installing from ZIP's must install both 
  terminal.local AND terminal.sdk (as well as CDT, which is required already).

My current feeling is that any person who installs the terminal.local feature is likely also interested in the entire Terminal SDK (providing SSH, Telnet and Serial terminals).

The counter argument is that (a) with a local terminal, SSH can be "emulated" through an external SSH program; (b) the Serial Terminal is only of use to embedded developers, and carries the RXTX external dependency; and (c) Telnet is not really used any more.

Does anybody have an opinion how to best address this?
Comment 1 Martin Oberhuber CLA 2010-06-03 03:16:52 EDT
Created attachment 170918 [details]
patch

Attached patch should fix the problem:

- Have terminal.local-feature DEPEND on terminal and terminal.view rather
  than include them. This is in line with the recommendation for dependencies
  management on Helios as sent by Jeff.

- Narrow the version restriction on the tm.terminal dependency. This is because
  the contribution uses internal.provisional.api which is subject to change in
  the future (when it becomes real API). Therefore we must specify an upper
  bounds on the version range - both in the MANIFEST.MF and the feature.xml.

- Create a new tm.terminal.local.sdk-feature which now INCLUDES the tm.terminal
  and tm.terminal.view. This SDK-feature is for the sole purpose of building 
  the ZIP for our download page with the legacy builder. It is not going to 
  live on the TM update site or the Helios site.

- Remove the source inclusion from the tm.terminal.local-feature since typical
  end users do not need the source. We include source only in the new
  terminal.local.sdk-feature for those who need it.
Comment 2 Martin Oberhuber CLA 2010-06-03 03:20:47 EDT
I'm going to commit this patch since that's the only way of testing whether our releng/build processes actually do produce the desired output. Also, this is urgent since we need to know soon whether it works as expected.

Anna, can you please review the patch and the concept after-the-fact.
Mirko, can you please also review the patch and give comments.

For the records, some notes from Jeff McAffer regarding feature inclusion vs feature depends are on 
http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg04205.html
Comment 3 Martin Oberhuber CLA 2010-06-03 03:21:25 EDT
Dave D, I would also like to get your opinion on this.
Comment 4 Martin Oberhuber CLA 2010-06-04 07:39:33 EDT
Almost there with the patch, but not quite:

Because only cdt.core is required by the feature, only cdt.core is installed but none of the Platform-specific fragments that are needed. Result is that no native spawner is available, and we run into bug 315751.
Comment 5 Martin Oberhuber CLA 2010-06-04 08:58:20 EDT
Created attachment 171096 [details]
additional patch (require cdt.platform feature)

Attached additional patch adds a "require feature org.eclipse.cdt.platform" to the local terminal feature.xml.

This enforces installation of the cdt.platform feature when the local terminal is being installed. At the moment, this seems to be the only way getting the right fragment(s) installed.

In the future, the CDT Spawner / PTY should be split into an independent smaller feature, as requested by bug 303083, such that a smaller feature dependency can be used.
Comment 6 Martin Oberhuber CLA 2010-06-04 18:16:13 EDT
Verified on Solaris that this works fine now!

It does drag in a BIG dependency getting in the whole cdt.platform, but I do not think that referencing the CDT fragments directly would be a better idea. This should be solved through bug 303083.