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

Bug 275569

Summary: 5 Projects not yet signing: Galileo M7 unsigned jars
Product: Community Reporter: David Williams <david_williams>
Component: Cross-ProjectAssignee: David Williams <david_williams>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: alex.panchenko, mtaal, oisin.hurley, remy.suen, thomas
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
full list of jars not signed none

Description David Williams CLA 2009-05-10 13:57:27 EDT
From the pattern of unsigned jars, it appears there are 5 projects not yet signing. Remember, it is important to do this on a regular basis, not just final release, at least for every milestone or RC so it can be tested as it is intended to be released. 

org.eclipse.dltk.*
org.eclipse.ecf.* and org.eclipse.team.ecf.*
org.eclipse.rap.ui*
org.eclipse.stp.*
org.eclipse.persistence.*

I suspect these third party jars come from one if the 5 projects. 

ch.ethz.iks.r_osgi.remote.source_1.0.0.RC4_v20090429-2045.jar:
ch.ethz.iks.r_osgi.remote_1.0.0.RC4_v20090429-2045.jar:
ch.ethz.iks.slp.source_1.1.0.v20090429-2045.jar:
ch.ethz.iks.slp_1.1.0.v20090429-2045.jar:
commonj.sdo_2.1.1.jar:
javax.jms_1.1.0.jar:
javax.persistence_1.99.0.jar:
javax.resource_1.5.0.jar:
javax.transaction_1.1.0.jar:
org.jivesoftware.smack.source_2.2.1.jar:
org.jivesoftware.smack_2.2.1.jar:

I suspect this one is not signed intentionally. Remember, "Exceptions must be authorized by the planning council for technical reasons. "

org.eclipse.emf.teneo.hibernate.libraries_1.0.0.v200806111928.jar.pack.gz:
Comment 1 Oisin Hurley CLA 2009-05-10 18:30:28 EDT
> org.eclipse.stp.*

This is surprising.

We've been signing jars for the last two years, and I personally watched
the jarsigner (using tail) process the jars for our build this time around
(it's a bad habit of mine).

So, I'm not sure why they don't appear to be signed. What method
did you use to check for signage?
Comment 2 David Williams CLA 2009-05-10 18:59:50 EDT
Created attachment 135082 [details]
full list of jars not signed

I've attached the full list in case anyone wants/needs the details. 

As for method use, I have a shell script that get's the list of jars and jar.pack.gz files at /releases/galileo. For the pack.gz files I unpack200 them to tmp first, and then verify with <java 5>jarsigner -verify.
Comment 3 Alex Panchenko CLA 2009-05-11 06:03:09 EDT
> org.eclipse.dltk.*
We sign milestone builds, but I had not checked the M7 files after some build system related changes.
Comment 4 Oisin Hurley CLA 2009-05-11 16:53:41 EDT
I confirmed that the STP jars are being signed, but the jarsigner verification fails

jarsigner: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

I recognize this as an indication that the jar has been altered somehow after the signing has happened, but I've no idea where the alteration may be occurring. I'll need to look into it in more detail.
Comment 5 David Williams CLA 2009-05-11 23:35:05 EDT
(In reply to comment #4)

> 
> I recognize this as an indication that the jar has been altered somehow after
> the signing has happened, ...
> 

Maybe not. You use Buckminster build, right? There was a bug in their jar processor "until the last minute" that effected those manifest file signatures. See bug 275528. It was particularly insidious bug because some jar verifiers report it as "ok" (e.g. from 1.4 JDKs or the OSGi Signature Verifier). 

It may have been your jars were produced before first bug fixed and it wasn't detected because of the second bug. 

Feel free to re-try and re-submit early for RC1 if you want to check that it's now fixed (after you get the latest from Buckminster). 
Comment 6 Oisin Hurley CLA 2009-05-12 03:18:47 EDT
(In reply to comment #5)
> Maybe not. You use Buckminster build, right? There was a bug in their jar
> processor "until the last minute" that effected those manifest file signatures.
> See bug 275528. It was particularly insidious bug because some jar verifiers
> report it as "ok" (e.g. from 1.4 JDKs or the OSGi Signature Verifier). 
> 
> It may have been your jars were produced before first bug fixed and it wasn't
> detected because of the second bug. 

You got it - that was the issue. I've updated the jarprocessor and 
verified that the signing worked correctly. I remember that bug
going by and somewhere in my head I had convinced myself I
had updated my cached buckminster install. Turned out I hadn't.

I'll update the stp.build with the new build later today.
Comment 7 Martin Taal CLA 2009-05-13 12:46:17 EDT
Hi David,
I checked out the teneo.hibernate.libraries plugin you mention below. As you can see it is an old plugin (june last year). 

Somehow this plugin get's drawn in from somewhere, I don't know from where and I don't know why. I publish more recent builds for Galileo (ofcourse).

This plugin is also mentioned in this recent issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=275839

Here is a snippet from this issue, maybe you know someone who can give some more insight on how p2 functions here (if it is even p2...):
>>>>>>>>>>>>>>>>>>>>>>>>>>
CDO has some optional dependencies on org.hibernate packages. I expected these
to be unsatisfied, but that does not harm since they're optional.

BUT: Somehow p2 discovered a very old version of a bundle in a p2 repository
(no idea where). This is the
org.eclipse.emf.teneo.hibernate.libraries_1.0.0.v200806111928 bundle that I
mentioned before. This bundle is really harmful because it not only exports
numerous packages but it does not even contain these packages. It was meant as
an empty wrapper for some teneo/hibernate libraries. And IIRC it was abandoned
because it was considered harmful (Martin, correct me if I'm wrong). Teneo
itself does not seem to use it anymore.

To be clear: CDO does not use it either! But somehow p2 finds this bundle and
decides that it can be used to satisfy CDO's *optional* hibernate dependencies.

I would say it's not the fault of CDO that p2 uses old (and malicious) bundles
to satisfy optional dependencies. It's not the fault of CDO that this old
bundle exports ant packages. It's not the fault of CDO that the Ant core plugin
uses strange mechanisms so that it relies on nobody exporting ant packages.
<<<<<<<<<<<<<<<<<<<<<<<<<<<

gr. Martin
Comment 8 David Williams CLA 2009-05-13 13:05:08 EDT
(In reply to comment #7)
> Hi David,
> I checked out the teneo.hibernate.libraries plugin you mention below. As you
> can see it is an old plugin (june last year). 
> 
> Somehow this plugin get's drawn in from somewhere, I don't know from where and
> I don't know why. I publish more recent builds for Galileo (ofcourse).
> 

Hm, that is interesting! Perhaps someone else is using it? Pulling it in? 

But, to be clear, P2 will pull in optional dependencies if it can find them (as far as I know) and it does not have to be named in a feature (as far as I know) but just named in a manifest. 

So, I assume you are saying this bundle is not on _your_ update site/repo at all? If that's the case, then I guess someone else is "contributing" it. 

Thomas, do you have any ideas, from your builder point of view, on how it deals with optional bundles, or how much effort it might make to find them? 

I guess we can find who "references it" from a complete install. 

Thanks for investigating, Martin. 
Comment 9 Martin Taal CLA 2009-05-13 13:15:24 EDT
To add some more info:
Maybe it is present on an update site for an earlier release of Eclipse (Ganymede looking at the date), but not for Galileo.

This is a bit of a special plugin it is empty (no code and no jars), it is only used during testing during the build. It is included to ensure that the Teneo test plugins are installable. But it is not part of an sdk or runtime feature.
I will research if I can completely remove it in rc1. However, this won't help if p2 (something else?) can pull old versions from other places.

gr. Martin
Comment 10 David Williams CLA 2009-06-10 09:28:45 EDT
following current issues in bug 279369