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

Bug 352096

Summary: Indigo lacks macosx.carbon.ppc configuration
Product: Community Reporter: Thomas Hallgren <thomas>
Component: Cross-ProjectAssignee: David Williams <david_williams>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: david_williams, john.arthorne, stepper
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
screen shot showing part of rcp.feature.group requirements none

Description Thomas Hallgren CLA 2011-07-14 10:33:20 EDT
The b3 aggregation definition for Indigo does not include a configuration for macosx.carbon.ppc. This leads to problems down the line because the org.eclipse.rcp feature has a requirement for this platform. Appointing Indigo is then not enough when building a product for all platforms that this feature has support for.

I think it would be great if the configurations in Indigo could be synchronized with the configurations supported by the RCP feature where the fragments for swt and launchers are defined. Ideally, it should also be synchronized with the launchers provided in the org.eclipse.equinox.executable feature.
Comment 1 David Williams CLA 2011-08-11 13:50:30 EDT
I'm assuming this is a different issue, than that discussed in bug 337334? 

I can "see" (by browsing with aggregator) where there are 15 equinox.launchers defined in .../eclipse/updates/3.7/ repository

and, via several other bugs, have listed those 15 configurations in the indigo.b3aggr file, as pasted below. So, what'd I'd miss? Is there a wrong default being assumed in 

  <configurations operatingSystem="macosx" windowSystem="carbon"/> 

Or should the list grow to 16? Naming 4 configurations for macos? (And, if so ... where can I "see" that 4th one ... am I just missing it?)

Our currrent 3 mac configs can be seen in the "list of 15" below. 

= = = = 

  <configurations/>
  <configurations architecture="x86_64"/>
  <configurations operatingSystem="linux" windowSystem="gtk"/>
  <configurations operatingSystem="linux" windowSystem="gtk" architecture="x86_64"/>
  <configurations operatingSystem="linux" windowSystem="gtk" architecture="ppc64"/>
  <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390"/>
  <configurations operatingSystem="linux" windowSystem="gtk" architecture="s390x"/>
  <configurations operatingSystem="solaris" windowSystem="gtk" architecture="sparc"/>
  <configurations operatingSystem="solaris" windowSystem="gtk"/>
  <configurations operatingSystem="macosx" windowSystem="cocoa"/>
  <configurations operatingSystem="macosx" windowSystem="cocoa" architecture="x86_64"/>
  <configurations operatingSystem="macosx" windowSystem="carbon"/>
  <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc"/>
  <configurations operatingSystem="aix" windowSystem="gtk" architecture="ppc64"/>
  <configurations operatingSystem="hpux" windowSystem="gtk" architecture="ia64_32"/>
Comment 2 John Arthorne CLA 2011-08-11 15:02:38 EDT
Just as an FYI, Carbon has been discontinued in the Juno stream. It should be available in Indigo though (including the SR releases).
Comment 3 David Williams CLA 2011-08-31 23:50:49 EDT
Can anyone answer my question in time for Indigo SR1? We have 15 configs, and there are 15 launchers in repo. Is one of our existing configs wrong? Or is there some way to have more configs than you have launchers? (If so, I'd appreciate being educated about that). 

Thanks,
Comment 4 Thomas Hallgren CLA 2011-09-01 02:40:05 EDT
The RCP feature has two requirements for the org.eclipse.swt.carbon.macosx fragment. One for arch=ppc and one for arch=x86. The org.eclipse.swt.carbon.macosx fragment will satisfy both those requirements.

The Indigo aggregation does not include the macosx.carbon.ppc combination. The way things are set up (a carbon fragment that supports two architectures) the fragment will be included anyway since it's brought in by the macosx.carbon.x86. The missing combination is however never validated. Given that carbon is on its way out, that does perhaps not matter much.

Everything works. The Indigo repository contains all fragments necessary. My request still stands though. The configurations in the release train should be synchronized with the configurations supported by the RCP feature.
Comment 5 David Williams CLA 2011-09-01 11:41:43 EDT
Created attachment 202608 [details]
screen shot showing part of rcp.feature.group requirements

Thanks Thomas, that helps a little. So, the 15 we have are correct, it's just that there are two "configurations" for one launcher; for proper validation we need 16 configurations for the 15 launchers. 

Last question: how can I "see" this requirement, by looking at the feature (or, metadata)? What I mean is in some fashion illustrated by the attached partial view of the model in the aggregator editor. Ultimately, I'm fine just taking your word for it, and adding it, but the reason I'm asking is "what if you were not here" ... to tell me it was needed. How could I (or, some other person in the future) "see" that it was needed? 

Apologies if this is a dumb questions, publically showing my naiveté and complete lack of insight or knowledge ... but, it wouldn't be the first time :) so I'm not embarrassed, but do appreciate your insights and efforts to explain this to me (and others) in a way we will "know for next time". 

Thanks,
Comment 6 David Williams CLA 2011-09-06 23:20:59 EDT
I did make this change in Indigo SR1 RC2. (And would appreciate an expanded "how to know" explanation, still). 

Thanks,
Comment 7 Thomas Hallgren CLA 2011-09-07 02:04:08 EDT
How to know:

Open the feature.xml of the org.eclipse.rcp feature. In it you will find a list of swt fragment requirements. They all all named "org.eclipse.swt.<env>". The env will give you a hint of where the fragment can execute. The devil is in the details though and some fragments can execute in multiple environments. They will then be listed more than once. The one being discussed here for instance, has two entries:

   <plugin
         id="org.eclipse.swt.carbon.macosx"
         os="macosx"
         ws="carbon"
         arch="ppc"
         download-size="0"
         install-size="0"
         version="3.7.0.v3735b"
         fragment="true"
         unpack="false"/>

   <plugin
         id="org.eclipse.swt.carbon.macosx"
         os="macosx"
         ws="carbon"
         arch="x86"
         download-size="0"
         install-size="0"
         version="3.7.0.v3735b"
         fragment="true"
         unpack="false"/>

They both refer to the same fragment but with different settings for the 'arch' attribute. In order to be complete, the Indigo/Juno aggregation should support both.

In short, Indigo/Juno should support all os.ws.arch combinations found in this feature.

Following the approach I just wrote I discovered that the same applies for org.eclipse.swt.cocoa.macosx. It's listed twice. Once for macosx.cocoa.ppc and once for macosx.cocoa.x86 so please make sure that both those combinations are present too.
Comment 8 David Williams CLA 2011-09-07 17:23:42 EDT
> Following the approach I just wrote I discovered that the same applies for
> org.eclipse.swt.cocoa.macosx. It's listed twice. Once for macosx.cocoa.ppc and
> once for macosx.cocoa.x86 so please make sure that both those combinations are
> present too.

Good thing I asked, eh? :) 

I added 
<configurations operatingSystem="macosx" windowSystem="cocoa" architecture="ppc"/>
to both indigo and juno. 

I confirmed the latest 4.2 I build no longer has "carbon" fragments so removed that configuration from Juno.
Comment 9 David Williams CLA 2011-09-09 16:01:50 EDT
(In reply to comment #8)

> 
> I confirmed the latest 4.2 I build no longer has "carbon" fragments so removed
> that configuration from Juno.

To cross-reference, I've temporarily re-added carbon configuration 
while bug 357140 is investigated/resolved. But, fully expect it to be removed by M2.