> IMHO the fact that p2 doesn't check locally for a .jar.pack.gz before
> going to the web is still a bug in p2. A local repo, whether a zip or
> a folder, ought to have the same 'see if there's a packed jar just in
> case' behaviour - isn't that like one line of
> if-jar-exists-then-install,elseif-jar.pack.gz-exists-then-install-
> else-check-the-web code?
If it was that simple... The thing is that when you are installing
from a local repository (file: URL) it is always cheaper to get the
canonical jar because you don't have to do the unpacking. As I said in
my last message, p2 could be made more resilient and exhaust all the
descriptors such that if the canonical jar because was missing it could
try to obtain the file in other form
(https://bugs.eclipse.org/bugs/show_bug.cgi?id=289351). Unfortunately
this is not for 3.5.
> And since the zip is installable as a zip, which is easier/faster than
> unpacking it first, and can be installed via director using the jar:
> prefix, I consider this a WORKSFORME.
The fact that people can't take the repository and use it in a zipped or
unzipped form is still problematic and I don't think this is a
WORKSFORME. The core of the problem is that the artifact repository
created claims it has artifacts that it does not have (there are
descriptors in the artifacts.xml indicating that the repo has canonical
jars but they are not present). Even if p2 was fixed in newer versions,
this repository would still not work on older versions of p2, or would
not pass a repository verification tool (to be released
https://bugs.eclipse.org/bugs/show_bug.cgi?id=277246).
In order to remove the invalid entries from the repository I have
attached an XSL tranform that will remove from the artifacts.xml every
artifact descriptors that is referring to a canonical jar except for
features. This should fix the problem you have.
/(See attached file: artifacts.xsl)/
HTH
PaScaL
>
> If you disagree, open a bug and I'll point you at the code that does
> the jar packing, metadata gen, and zip packaging. Patches welcome.
>
> Nick
>
> On 9/11/09, Dalton, Tom <tom.dalton@xxxxxxx> wrote:
> > Hi,
> >
> > I had some problems recently with the EMF all-in-one distribution - the
> > update site .zip file. I raised the issue with the P2 team (who
maintain
> > Eclipse's update features) and they say it's a bug in your
distribution.
> > Please see the attached email chain for the details.
> >
> > Cheers,
> >
> > Tom Dalton
> >
> >
> > ________________________________
> >
> > From: p2-dev-bounces@xxxxxxxxxxx
> > [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Dalton, Tom
> > Sent: 11 September 2009 12:27
> > To: P2 developer discussions
> > Subject: RE: [p2-dev] Issue running p2 director
> >
> >
> > Thank you for the response - I'll let the EMF team know there's
> > a problem at their end.
> >
> > Using the jar:file type URI to point at the .zip seems to work
> > in the meantime, so I'm a very happy bunny.
> >
> > Cheers,
> >
> > Tom
> >
> >
> > ________________________________
> >
> > From: p2-dev-bounces@xxxxxxxxxxx
> > [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Pascal Rapicault
> > Sent: 10 September 2009 18:00
> > To: P2 developer discussions
> > Cc: p2-dev@xxxxxxxxxxx; p2-dev-bounces@xxxxxxxxxxx
> > Subject: Re: [p2-dev] Issue running p2 director
> >
> >
> >
> > The artifact repository contained in this archive is
> > inconsistent. It has been made inconsistent by the EMF build process
> > which deletes the canonical jars to only leave the pack'ed one, but
does
> > not update the artifact repository index (artifacts.jar) to reflect
this
> > change. Please report this problem to the EMF team.
> >
> > The reason why this is working in the case of a zip'ed
> > repo is because p2 treats it as a non-local repo and installs from the
> > pack file which it finds. However when the repository is exploded
on the
> > file system, p2 first tries to download the JAR because the artifact
> > repository index (artifacts.jar) indicates that it contains it even
> > though it does not have it. If this reference had not been available in
> > the artifact repo index, then p2 would have resorted to use the pack'ed
> > files.
> > That said, the code in MirrorRequest#perform in the
> > p2.artifact.repository bundle could be made for insistent and try every
> > descriptor rather than just the first one.
> >
> > Did you try to point the director app at the archive
> > using as a repository the JAR URI (jar:file:/c:/archive.zip!/ or
see the
> > URI that gets created for you when you add the archive through the UI)?
> > HTH
> > PaScaL
> >
> >
> >
> >
> > [p2-dev] Issue running p2 director
> >
> >
> >
> >
> >
> >
> > [p2-dev] Issue running p2 director
> >
> > Dalton, Tom
> > to:
> > p2-dev
> >
> > 09/10/2009 06:57 AM
> >
> >
> >
> > Sent by:
> > p2-dev-bounces@xxxxxxxxxxx
> > Please respond to P2 developer discussions
> >
> >
> > ________________________________
> >
> >
> >
> > Hi,
> >
> > I'm using the Eclipse 3.5 CDT on a non-networked machine
> > and I want to add the EMF framework to it. I have downloaded the EMF
> > update site .zip from
> >
> >
> > http://www.eclipse.org/modeling/emf/downloads/?project=emf
> > <http://www.eclipse.org/modeling/emf/downloads/?project=emf>
> > Specifically I got
> >
http://www.eclipse.org/modeling/download.php?file=/modeling/emf/emf/down
> > loads/drops/2.5.0/R200906151043/emf-xsd-Update-2.5.0.zip
> >
<http://www.eclipse.org/modeling/download.php?file=/modeling/emf/emf/dow
> > nloads/drops/2.5.0/R200906151043/emf-xsd-Update-2.5.0.zip>
> >
> > Now, if I install that update though the Eclipse UI by
> > selecting the zip file itself, everything works. However, if I
unzip the
> > file to somewhere temporary and then try to install from that location,
> > it gets to about 60% though and then bombs out with a mass of 'file not
> > found' errors, because it seems to be looking for the plugins as plain
> > .jar files instead of the actual .jar.pack.gz files.
> >
> > This difference in behaviours seems to me to be a bug,
> > albeit with a workaround (install direct from the zip rather than
> > extracting it myself). So that would be fine, except that I need to
> > automat the eclipse build (I need to add a lot more than just EMF and
> > need to do this for a lot of people).
> >
> > So I started looking at the P2 director command line
> > stuff described at:
> >
> >
> >
http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/guide
> > /p2_director.html
> >
<http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.isv/guid
> > e/p2_director.html>
> > And
> >
> >
http://wiki.eclipse.org/Equinox_p2_director_application#Installing_.2F_u
> > ninstalling_IUs_into_a_target_product
> >
<http://wiki.eclipse.org/Equinox_p2_director_application#Installing_.2F_
> > uninstalling_IUs_into_a_target_product>
> >
> > However, when using these methods, if I set the
> > -repository to point at the zip file itself, it moans that its not a
> > valid repository. If I point it at my manually unzipped directory, it
> > starts off ok, but then bombs out with the same file not found
errors as
> > described above.
> >
> > So two questions:
> > 1. Are these file not found errors the symptoms of a
> > bug?
> > 2. Is there a way to duplicate the UI install-from-zip
> > behaviour via the command line P2 director (which would provide me with
> > a solution to my problem).
> >
> > Thanks a lot for any help provided!
> >
> > Tom Dalton
> > _______________________________________________
> > p2-dev mailing list
> > p2-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/p2-dev
> >
> >
> >
> >
> >
>
> --
> Sent from my mobile device
>
> Nick Boldt :: JBoss by Red Hat
> Productization Lead :: JBoss Tools & Dev Studio
> Release Engineer :: Dash Athena
> http://nick.divbyzero.com
> _______________________________________________
> p2-dev mailing list
> p2-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/p2-dev
------------------------------------------------------------------------
_______________________________________________
p2-dev mailing list
p2-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/p2-dev