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

Bug 396653

Summary: "No suitable provider" for sparcv9
Product: Community Reporter: David Williams <david_williams>
Component: Cross-ProjectAssignee: David Williams <david_williams>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, john.arthorne, michael.wenz, Mike_Wilson, thomas, tjwatson
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on:    
Bug Blocks: 396816    

Description David Williams CLA 2012-12-14 17:27:36 EST
According to cross-project list, 
Michael Wenz (for Graphiti ?) is getting "No suitable provider" for "sparcv9". 

This sounds similar to bug 393952. (but, there org.eclipse.swt.gtk.hpux.ia64)

And we in Platform did add a file system fragment for sparcv9 (bug 394297). I hope, for that bug, I added the right "arch" value everywhere it belongs? 

But (and one reason why I'm opening this in cross-project) is my first step at debugging was to add this to the aggregator's "configuration" list, but got an error saying "sparcv9" is not a valid value. And, in fact, I do not see "sparcv9" in 
org.eclipse.osgi.service.environment.Constants

Is that list supposed to be exhaustive? 
Or, did I use the wrong one? 
Or does the b3 aggregator simply need to add it to its "model"? 

Ultimately, this message about "No suitable provider" I think comes from Buckminster builder ... so may need their help to figure this out.
Comment 1 David Williams CLA 2012-12-14 17:29:40 EST
Message on cross-project list: 

http://dev.eclipse.org/mhonarc/lists/cross-project-issues-dev/msg08391.html
Comment 2 Michael Wenz CLA 2012-12-15 03:58:55 EST
Ok, here's what I did:
I tried to get an M4 build for Graphiti to enable WTP consuming it for M4. The issue we had was the wrong ICU4J dependencies we inherit from our dependencies (GEF and EMF Transactions, but this shouldn't matter).
I updated my dependencies to their latest integration builds so their ICU dependencies are right for M4. I can build that based on the Eclipse platform update site for M3. 
But in order to get the dependencies right for the Graphiti update site, I need to consume the right ICU version in my Graphiti build (Buckminster based). So I tried switching to the latest Eclipse platform integration build (I20121214-0730). As soon as I did that I get a build error that a sparcv9 filesystem bundle cannot be resolved:
ERROR   [0053] : No suitable provider for component org.eclipse.core.filesystem.solaris.sparcv9:osgi.bundle(&(target.arch=sparcv9)(target.os=solaris)) was found in resourceMap file:/opt/users/hudsonbuild/.hudson/jobs/gmp-graphiti-nightly/workspace/org.eclipse.gmp/org.eclipse.gmp.graphiti/releng/org.eclipse.graphiti.releng/build.rmap
  ERROR   [0053] : No suitable provider for component org.eclipse.core.filesystem.solaris.sparcv9:osgi.bundle(&(target.arch=sparcv9)(target.os=solaris)) was found in searchPath binaries.platform
    ERROR   [0053] : Rejecting provider p2({0}/eclipse/updates/4.3-I-builds[file:/home/data/httpd/download.eclipse.org/eclipse/updates/4.3-I-builds]): No component match was found
Comment 3 David Williams CLA 2012-12-15 08:29:49 EST
Adding Thomas, as maybe he can help answer the Buckminster part of the question. 

Thomas, we in the platform added a few new filesystem fragments in M4. Is there something Buckminster consumers need to do differently? Anything for a work around, if not fix. They especially may need a "work around" if I in the platform packaged something wrong. 

Michael, I don't know enough about Buckminster to be of much direct help, But my guess is if you have some "wild cards" in the rmap, (match everything) then perhaps you can try limiting the architectures you support? Do you have any platform specific code? Perhaps try specifying just one, and see if that works? 

Thomas, I tried adding "sparcv9" to the aggregation file ... I just wanted to test/confirm our platform contribution would still validate. I'm not sure that is at all the right thing to do, but trying it, I get "invalid value" and the editor won't open, thinking that an invalid model. So, does the Aggregator need the value added to its EMF model? Or, am I just completely off-base?
Comment 4 Michael Wenz CLA 2012-12-15 08:45:50 EST
(In reply to comment #3)

> Michael, I don't know enough about Buckminster to be of much direct help,
> But my guess is if you have some "wild cards" in the rmap, (match
> everything) then perhaps you can try limiting the architectures you support?
> Do you have any platform specific code? Perhaps try specifying just one, and
> see if that works? 

Yes, I think we are using wildcards and I can try to exclude sparcv9. But I'm not sure if I will get to that today.
And no, we are having no platform specific coding.
Comment 5 Michael Wenz CLA 2012-12-16 06:51:31 EST
I defined a target.os restriction for my build and now it runs a step further. It seems as if this will help but it needs some fine tuning, because I now get a later error (now not in the resoltion step but in the actual compile phase) regarding SWT stuff not being resolvable. It seems as if my os restriction is too limited...
Comment 6 Michael Wenz CLA 2012-12-17 08:00:45 EST
Short update: After some trial and error I was able to produce a first M4 milestone build for Graphiti based on this workaround
Comment 7 David Williams CLA 2012-12-17 08:55:16 EST
That's good to hear, Michael. 

I'd like to confirm that "sparcv9" is a valid "architecture" value for us to be using. 

Adding Tom Watson for his expertise; 

Tom, is "sparcv9" valid? It is listed in one of our file-system fragments that was new in M4. (bug 394297) I do not see where sparcv9 is not listed in 
org.eclipse.osgi.service.environment.Constants
but assume that's not an exhaustive list, just the most popular/common? Should a new bug be open to consider adding it?  

Corollary question, we do not provide a launcher for "sparcv9" (that I could see) so how does someone make use of a sparcv9 file-system fragment? Is there some relationship built in, so that a "sparc" launcher works on "sparcv9" and just "figures out" if it needs the "sparc" or "sparcv9" file-system fragment? 



If "sparcv9" is not valid, what is the right value? In the fragment itself, in our source repostirory, I see 

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %fragmentName
Bundle-SymbolicName: org.eclipse.core.filesystem.solaris.sparcv9;singleton:=true
Bundle-Version: 1.1.0.qualifier
Bundle-Vendor: %providerName
Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.3.0,2.0.0)"
Bundle-Localization: fragment
Eclipse-PlatformFilter: (& (osgi.os=solaris) (osgi.arch=sparcv9))


But, in looking at our M4 repository, I do not see is listed on file system (but do see two new ones, compared to M3). Have I merely forgotten to include it in the repository? 

M4:  *filesystem*jar

org.eclipse.core.filesystem_1.4.0.v20121214-093840.jar
org.eclipse.core.filesystem.source_1.4.0.v20121214-093840.jar

org.eclipse.core.filesystem.aix.ppc_1.1.0.v20120913-140028.jar
* org.eclipse.core.filesystem.aix.ppc64_1.1.0.v20120913-140028.jar
* org.eclipse.core.filesystem.hpux.ia64_1.1.0.v20121109-195916.jar
org.eclipse.core.filesystem.linux.x86_1.4.0.v20120522-1137.jar
org.eclipse.core.filesystem.linux.x86_64_1.2.0.v20120522-1137.jar
org.eclipse.core.filesystem.macosx_1.3.0.v20120522-1137.jar
org.eclipse.core.filesystem.solaris.sparc_1.2.0.v20120913-140028.jar
org.eclipse.core.filesystem.win32.x86_1.4.0.v20121112-094809.jar
org.eclipse.core.filesystem.win32.x86_64_1.4.0.v20121112-135758.jar

M3: *filesystem*jar

org.eclipse.core.filesystem_1.3.200.v20121005-141300.jar
org.eclipse.core.filesystem.source_1.3.200.v20121005-141300.jar

org.eclipse.core.filesystem.aix.ppc_1.1.0.v20120913-140028.jar
org.eclipse.core.filesystem.linux.x86_1.4.0.v20120522-1137.jar
org.eclipse.core.filesystem.linux.x86_64_1.2.0.v20120522-1137.jar
org.eclipse.core.filesystem.macosx_1.3.0.v20120522-1137.jar
org.eclipse.core.filesystem.solaris.sparc_1.2.0.v20120913-140028.jar
org.eclipse.core.filesystem.win32.x86_1.1.300.v20121005-141300.jar
org.eclipse.core.filesystem.win32.x86_64_1.1.300.v20120522-1137.jar


Thanks for any information to help get this solved in a general, correct way.
Comment 8 John Arthorne CLA 2012-12-17 09:43:48 EST
I'm not sure we did the right thing by adding "sparcv9" in our build. The AIX 64-bit platform that we added in bug 394297 is actually an architecture we build the platform for. We only build one SPARC download, so having both "sparc" and "sparcv9" doesn't sound right. I'm trying to track down the original contributors of this fragment to figure out the story here.
Comment 9 John Arthorne CLA 2012-12-17 10:19:17 EST
It turns out sparcv9 is the os value given by the JVM when running on 64-bit sparc. This is not a platform that the Equinox framework or launcher have ever been built for (although maybe something valid to add in the future). In the meantime I suggest we treat it the same was as platforms like os390 in our build.. that is to say, not building it.
Comment 10 David Williams CLA 2012-12-17 12:53:30 EST
(In reply to comment #9)
> It turns out sparcv9 is the os value given by the JVM when running on 64-bit
> sparc. This is not a platform that the Equinox framework or launcher have
> ever been built for (although maybe something valid to add in the future).
> In the meantime I suggest we treat it the same was as platforms like os390
> in our build.. that is to say, not building it.

Thanks John, I've reopened bug 394297 so at this moment our plan will be to remove the sparcv9 file-system fragment that was added via that bug. 

As a purely incidental side-effect, I've also opened an enhancement request, bug 396778, to add more configuration values to the b3 aggregator (though that's just something I happened to learn while looking at this bug, not really related to it).
Comment 11 David Williams CLA 2012-12-31 20:49:00 EST
I'm going to mark this as fixed because, via bug 394297, I have removed the sparcv9 fragment hastily added for M4, so should be gone by 1/1 I-build (and M5).
Comment 12 Michael Wenz CLA 2013-01-07 05:05:18 EST
(In reply to comment #11)
Just as a short update:
I switched to that 1/1 I-build and was able to remove my platform filters in the build again. Works as expected and as before again.

Thanks,
Michael