[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [p2-dev] Re: Error trying to partially p2.mirror EMF 2.5.0 updatesite


The repo is broken because it is lying about what it contains.  The artifacts.xml/jar contains descriptors for artifacts that don't exist on disk (in the zip).  When mirroring an IU, all associated artifacts are mirrored, if one is missing that is an error.

3.6M3 contains an ant task "p2.remove.iu" which can be used to properly remove artifacts from a repository.  One option would be to unzip the repo to disk and then run this task to remove the offending descriptors.

-Andrew


From: "Mark Melvin" <Mark.Melvin@xxxxxxxxxx>
To: "P2 developer discussions" <p2-dev@xxxxxxxxxxx>, "Ed Merks" <ed.merks@xxxxxxxxx>, "Buckminster developer discussions" <buckminster-dev@xxxxxxxxxxx>
Date: 11/11/2009 12:09 PM
Subject: RE: [p2-dev] Re: Error trying to partially p2.mirror EMF 2.5.0        updatesite
Sent by: p2-dev-bounces@xxxxxxxxxxx





Thanks for the reply, Nick.  I tried to work around this by changing my
Ant task to:

   <p2.mirror verbose="true" ignoreErrors="true"
source="jar:
file:C:/Temp/emf-xsd-Update-2.5.0.zip!/">
     <repository location="
file:${final.p2.repo.dir}" compressed="true"
                  name="EMF repository" />
     <iu id="org.eclipse.xsd.feature.group" />
     <iu id="org.eclipse.emf.ecore.feature.group" />
     <iu id="org.eclipse.emf.common.feature.group"/>
   </p2.mirror>

But I still get the same error:

[p2.mirror] Mirroring:
osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043 (Descriptor:
canonical: osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043)
[p2.mirror] Messages while mirroring artifact descriptors.
[p2.mirror] Artifact not found:
osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
[p2.mirror]
jar:
file:C:/Temp/emf-xsd-Update-2.5.0.zip!/plugins/org.eclipse.emf.ecore
_2.5.0.v200906151043.jar
[p2.mirror] Artifact not found:
osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.

BUILD FAILED
C:\Temp\emf_only.xml:39: Messages while mirroring artifact descriptors.
[p2.mirror] Mirroring:
osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043 (Descriptor:
packed: osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043)

I should explain what I am trying to do, I guess.  I have a plugin the
depends on the core XSD support in EMF and I just want to be able to
suck out the plugins/features I need.  My build is automated, so I was
hoping to also automate the creation of a partial EMF repository from
the large, all-in-one version, then pull down the tiny sub-repo that I
created as a dependency in my build (my build is currently set up to
consume/merge p2 repositories as binary dependencies).

I guess for now I could construct it manually with the Buckminster
Aggregator but I would really like to keep this automated so a
workaround in Ant would be the best solution for me.  Is there any way I
can simply inflate and unpack the current 'broken' repository?  I don't
mind the extra time to do this, provided I can do it simply (in Ant) and
without any other dependencies.

Thanks,
Mark.

-----Original Message-----
From: p2-dev-bounces@xxxxxxxxxxx [
mailto:p2-dev-bounces@xxxxxxxxxxx] On
Behalf Of Nick Boldt
Sent: Wednesday, November 11, 2009 11:45 AM
To: Ed Merks; P2 developer discussions; Buckminster developer
discussions
Subject: [p2-dev] Re: Error trying to partially p2.mirror EMF 2.5.0
updatesite

The issue here is that the metadata is incomplete, and p2 (p2.director,
anyway - haven't tried w/ p2.mirror) only knows how to find foo.jar as
foo.jar.pack.gz in a jar:file:/path/to/repo.zip!/. If you omit the
jar:file: prefix or !/ suffix, or point at
http://path/to/repo.zip, or
even unpack the zip as file:/path/to/repo.zip_, p2 can't find the packed
plugin jars.

(I've complained about this limitation but there's been no buy-in from
the p2 devs so far that this ought to be fixed, mostly I suspect because
there is a simple workaround and by fixing it they're encouraging
"broken" repos to be produced. Ours is "broken" because it saves disk
space and bandwidth; if we skip the packing step or include BOTH the
packed and unpacked jars in the zip, the file gets much larger.)

That said, I've been able to successfully mirror from a "broken" repo
zip like the EMF one using the Buckminster Aggregator.

See
https://bugs.eclipse.org/bugs/show_bug.cgi?id=294832 for a quick way
to get a director app, then use that to install Buckminster, and from
there be able to do selective mirroring and even recategorization or
features. There's also a Buckminster Aggregator Editor which lest you
set up what to mirror graphically. Very cool, IMHO.

http://wiki.eclipse.org/Getting_Started_With_Aggregator_(Buckminster)
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.dash/athena/org.ecl
ipse.dash.commonbuilder/org.eclipse.dash.common.releng/tools/scripts/agg
regateRepos.xml?root=Technology_Project&view=markup

Nick

Ed Merks wrote:
> Mark,
>
> I'm not sure what this means.  Maybe it's better to ask on the p2
> newsgroup or mailing list, or maybe someone else more knowledgeable
> will help.
>
>
> Mark Melvin wrote:
>> Hi,
>>
>> I am trying to partially mirror the EMF 2.5.0 P2 repository that I
>> downloaded and I am getting an error.  This could be a P2 thing, but
>> I am wondering if someone could point me in the right direction.  
>> Here is my Ant call:
>>
>>    <p2.mirror verbose="true" ignoreErrors="true">
>>      <repository location="
file:${final.p2.repo.dir}"
compressed="true"
>>                   name="EMF repository" />
>>      <source dir="${repoBaseLocation}/"
>>              includes="emf-xsd-Update-2.5*.zip"/>
>>      <iu id="org.eclipse.xsd.feature.group" />
>>      <iu id="org.eclipse.emf.ecore.feature.group" />
>>      <iu id="org.eclipse.emf.common.feature.group"/>
>>    </p2.mirror>
>>
>>
>> I get the following output:
>>
>>     [java] [p2.mirror] Problems resolving provisioning plan.
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.common.feature.group 2.5.0.v200906151043 to
>> org.eclipse.core.runtime 0.0.0.
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.xsd.feature.group 2.5.0.v200906151043 to
>> org.eclipse.core.runtime 0.0.0.
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.ecore.feature.group 2.5.0.v200906151043 to
>> org.eclipse.core.runtime 0.0.0.
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.common 2.5.0.v200906151043 to bundle
>> org.eclipse.core.runtime [3.5.0,4.0.0].
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.ecore 2.5.0.v200906151043 to bundle
>> org.eclipse.core.runtime [3.5.0,4.0.0].
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.xsd 2.5.0.v200906151043 to bundle
>> org.eclipse.core.runtime [3.5.0,4.0.0].
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.ecore.change 2.5.0.v200906151043 to bundle
>> org.eclipse.core.runtime [3.5.0,4.0.0].
>>     [java] [p2.mirror] Unable to satisfy dependency from
>> org.eclipse.emf.ecore.xmi 2.5.0.v200906151043 to bundle
>> org.eclipse.core.runtime [3.5.0,4.0.0].
>>     [java] [p2.mirror] Mirroring:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043 (Descriptor:
>> canonical: osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043)
>>     [java] [p2.mirror] Mirroring:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043 (Descriptor:
>> packed: osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043)
>>     [java] [p2.mirror] Messages while mirroring artifact descriptors.
>>     [java] [p2.mirror] Artifact not found:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
>>     [java] [p2.mirror]
>> jar:file:/c:/Temp/emf-xsd-Update-2.5.0.zip!/plugins/org.ecli
>> pse.emf.ecore_2.5.0.v200906151043.jar
>>     [java] [p2.mirror] Artifact not found:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
>>     [java]
>>     [java] BUILD FAILED
>>     [java] C:\Temp\emf_only.xml:39: Messages while mirroring artifact

>> descriptors.
>>     [java] Artifact not found:  
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.Messag es while

>> mirroring artifact descriptors.
>>     [java] Artifact not found:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
>>     [java] Artifact not found:  
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.Messag es while

>> mirroring artifact descriptors.
>>     [java] Artifact not found:  
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.Messag es while

>> mirroring artifact descriptors.
>>     [java] Artifact not found:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
>>     [java] Artifact not found:
>> osgi.bundle,org.eclipse.emf.ecore,2.5.0.v200906151043.
>>     [java]
>>     [java] Total time: 0 seconds
>>
>> Ignoring unsatisfied dependencies to org.eclipse.core.runtime, it is
>> failing to find org.eclipse.emf.ecore_2.5.0.v200906151043.jar in the
>> zip file.  I see it is there, but it is a .jar.pack.gz file.  Do I
>> need to do anything special for P2 to be able to deal with this, or
>> is there a problem with the P2 repository provided on the website?
>>
>> Any help would be appreciated.
>> Thanks,
>> Mark.

--
Nick Boldt ::
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