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