1 |
Joshua Nichols napsal(a): |
2 |
> Miroslav Šulc wrote: |
3 |
> |
4 |
>> I would also appreciate more information on Java ebuilds development. I |
5 |
>> don't remember I've seen somewhere slotting "howto" for Java ebuilds, |
6 |
>> but I may miss something. |
7 |
>> |
8 |
>> |
9 |
> For Java specific information, check out the developer guide: |
10 |
> http://www.gentoo.org/proj/en/java/java-devel.xml |
11 |
> |
12 |
> For general ebuild information: |
13 |
> http://devmanual.gentoo.org/ |
14 |
> http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml |
15 |
> |
16 |
> Hope that gives you somewhere to start. |
17 |
> |
18 |
I've went through the Java resources several times. Here is what I found |
19 |
about slotting: |
20 |
|
21 |
Slotting |
22 |
|
23 |
"Libraries should be slotted according to the API they provide. If two |
24 |
version have the same API, or if a new version is fully compatible with |
25 |
the previous version, then they should be in the same SLOT." |
26 |
|
27 |
I think it is not easy to determine whether an API changed a way that |
28 |
would broke something. I think even knowing the package doesn't help the |
29 |
dev. And documentation may not cover these changes. And using slot name |
30 |
3 when major version changes to 4 but there is still full compatibility |
31 |
with version 3.x might be confusing. |
32 |
|
33 |
"Java libraries have a tendency to sometimes break API and ABI between |
34 |
minor revisions, ie from 2.1.1 to 2.1.2. As a result, it is necessary to |
35 |
slot early, and slot often." |
36 |
|
37 |
I went through /usr/share to see current practice. I can see most of the |
38 |
Java libraries I have installed are not slotted at all (probably |
39 |
SLOT="0") and in a contrary jdom is slotted on ${PV} so it comes I have |
40 |
jdom-1.0_beta9 and jdom-1.0 installed. I code in Java for some time but |
41 |
I don't use most of the Java libraries I have installed directly so I |
42 |
just know they exist until something brokes and needs attention. |
43 |
|
44 |
|
45 |
For example, I can see batik is slotted as 1.5.1 and 1.6. I don't use |
46 |
this one but it's not obvious to me why it is slotted to 1.5.1 and not |
47 |
just 1.5. How can one say this slotting is correct. Maybe it would be |
48 |
good to have "slot reason" information in the ebuild too to be able to |
49 |
make time efficient corrections and updates of the ebuilds. |
50 |
|
51 |
"For applications, it is mostly sufficient to keep only the latest |
52 |
version. If the application comes in series, such as Eclipse, we want to |
53 |
keep the latest revision in each series. Very old series may eventually |
54 |
be dropped completely." |
55 |
|
56 |
This is clear :-) |
57 |
|
58 |
|
59 |
|
60 |
Could anyone please explain me how does the Java slotting work in |
61 |
practice? Are there any helper rules? |
62 |
|
63 |
|
64 |
Miroslav |