----- Original Message -----
From: "Mikolaj Izdebski" <mizdebsk(a)redhat.com>
To: "Fedora Java Development List" <java-devel(a)lists.fedoraproject.org>
Sent: Wednesday, January 29, 2014 7:00:33 PM
Subject: Re: [fedora-java] Duplicate OSGi provides
On 01/29/2014 05:43 PM, Aleksandar Kurtakov wrote:
> For cases like objectweb-asm and netty I don't see a problem as the
> provides are properly versioned.
Let's say I have a package which requires ASM3:
Require-Bundle: org.objectweb.asm;bundle-version="[3.0.0,4.0.0)"
That package will have Requires: osgi(org.objectweb.asm). YUM will
install objectweb-asm package (version 5.x) because it has shorter name.
I think there is a problem, but I'm not sure what's the right solution.
Part of the problem is that OSGi Requires generator doesn't version requires (when
versioned). Part of the reason is exactly because of cases like the mentioned one.
Require-Bundle: org.objectweb.asm;bundle-version="[3.0.0,4.0.0)" would become
Requires: osgi(org.objectweb.asm) >= 3.0.0 but that would not solve your problem either
though it will definetely improve certain cases e.g. Require-Bundle:
org.objectweb.asm;bundle-version="[4.0.0,6.0.0)" would properly get
objectweb-asm (version 5.x) and objectweb-asm3 wouldn't be a valid solution.
Definitely low hanging fruit here.
Now to the non solvable part - trying to expose bundle-version="[3.0.0,4.0.0)"
in rpm is impossible cause rpm doesn't support ranges and thus we should try to do it
by having
Requires: osgi(org.objectweb.asm) >= 3.0.0 and Requires: osgi(org.objectweb.asm) <
4.0.0 while this might work for certain cases it might also completely break the whole
situation as hypothetical objectewb-asm2 and objectweb-asm6 would satisfy the RPM
requirements but would be entirely useless combination from OSGi POV. This is one area
where RPM lacks in my eyes - supporting ranges.
Alexander Kurtakov
Red Hat Eclipse team
--
Mikolaj Izdebski
IRC: mizdebsk
--
java-devel mailing list
java-devel(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/java-devel