Paul Cager kirjoitti:
> Petteri Räty wrote:
>> manfred@mosabuam.com kirjoitti:
>>> Quoting Marcus Better <marcus@better.se>:
>>>
>>>> Tom Marble wrote:
>>>>> Packaging
>>>>> ---------
>>>> I think we need to add:
>>>>
>>>> * Library ABI handling and support for parallel installation of multiple
>>>> versions (as discussed in another thread [1]).
>>>>
>>>> Marcus
>>>>
>>>> [1] http://thread.gmane.org/gmane.linux.debian.devel.java/6537
>>> Thanks for mentioning it. I second that notion.
>>>
>>> manfred
>>>
>>>
>> We solved this by installing to /usr/share/<pkg>-<slot> where slot is
>> roughly the ABI (we increase it every time a new version breaks
>> something using the library).
>
> That's interesting - a compromise between keeping *every* version of the
> Jar, and just the latest.
>
> A couple of questions spring to mind:
>
> * How do you detect when a new version breaks the ABI? It seems quite
> complicated. Do you use a tool to compare the classes / method
> signatures, etc, or do you only bump the slot number if an application
> fails?
We use a wrapper for japitools:
http://overlays.gentoo.org/proj/java/browser/scripts/apicheck
It compares the ABI of jars installed by two ebuilds. Usually it's not
100% so then we just re-emerge the packages depending on the library
just to be sure.
>
> * Supposing I (as an end-user) download an application (not packaged by
> gentoo) which requires version 1.5 of foo.jar; how would I translate
> that to a slot number?
Well you would first try emerge =foo-1.5* and if there is no version
available then use something like eix:
betelgeuse@pena /usr/portage/dev-java/xerces $ eix xerces
[U] dev-java/xerces
Available versions:
(1.3) 1.3.1-r1 1.3.1-r2
(2.3) 2.3.0-r1 2.3.0-r3
(2.6) 2.6.2-r3 2.6.2-r4
(2) 2.8.1 (~)2.9.0
<rest of the output removed>
With xerces we keep the latest version around as slot 2 as there are
very many ebuilds using that slot and incrementing it would be painful
work so it's easier to add things like 2.6 when the need comes.
Regards,
Petteri
Attachment:
signature.asc
Description: OpenPGP digital signature