1 |
Here is an issue that is currently being faced by the java project that |
2 |
I would like to bring to the attention of everyone. I have already |
3 |
discussed this will devs from all pm's. |
4 |
|
5 |
Intro: |
6 |
|
7 |
Within the java project we have 2 overlays. java-overlay and |
8 |
java-experimental. java-overlay is mean't to be a "stable" overlay, is |
9 |
available through layman while java-experimental is the opposite. We |
10 |
attempt to not add packages to gentoo unless they are a dependency or an |
11 |
application to help with maintainability. We allow newbies access to |
12 |
java-experimental and there are a number of packages that are difficult |
13 |
to support so are still very much experimental. |
14 |
|
15 |
The way we are currently using the overlays results in a hierachy of |
16 |
gentoo > java-overlay > java-experimental. Where |
17 |
packages/eclasses/profiles can be inherited from the previous repository. |
18 |
|
19 |
Problem: |
20 |
|
21 |
Repoman currently only checks the current repository/overlay and gentoo. |
22 |
This is a problem for java-experimental. |
23 |
|
24 |
These are the following problems:- |
25 |
|
26 |
1) repoman does not find eclasses used to by java-experimental ebuilds |
27 |
that are located in java-overlay. see [1] for error. Maintaining the |
28 |
eclass in multiple locations _is not a solution_.(zmedico is expecting |
29 |
to add repository support at some point with support for specifying |
30 |
ECLASSDIRS. So this issue may be resolved). |
31 |
|
32 |
2) repoman does not find packages used to by java-experimental ebuilds |
33 |
that are located in java-overlay. |
34 |
|
35 |
Now this might be a result of the package not existing within gentoo or |
36 |
as a result of a particular version/slot being available within |
37 |
java-overlay. Now zmedico suggested that the use of repository deps ( |
38 |
aka ::java-overlay ) could be the solution. I would rather this not be |
39 |
the solution as packages shouldn't need to be edited to more them |
40 |
between overlays. Also the dependency specified could be moved into gentoo. |
41 |
|
42 |
|
43 |
Possible Solution: |
44 |
|
45 |
Now im going to shoot myself in the foot here by mentioning the |
46 |
unmentionable. |
47 |
|
48 |
( -->> ) paludis ( <<-- ) currently has support for specifying an |
49 |
overlays parent(s) (master_repository) within an overlays |
50 |
metadata/layout.conf file. Now i'm not suggesting that paludis's |
51 |
implementation is the correct one, but I believe the concept is solid. |
52 |
By specifying an overlays parent repositories would allow (at least): |
53 |
|
54 |
1) emerge to error if that repository/overlay is not configured.; and |
55 |
2) repoman to locate packages by checking the current overlay, gentoo as |
56 |
well as the parents specified within an "overlay metadata file" |
57 |
|
58 |
Possible Solution: |
59 |
|
60 |
Merging java-overlay and java-experimental. From my perspective this |
61 |
isn't a good one as we loss most of the benefits of java-experimental. |
62 |
|
63 |
Discussion: |
64 |
|
65 |
Do you support the "overlay metadata file" concept? |
66 |
Are there any other possible solutions? |
67 |
Is there anything stopping this from being implemented? another EAPI? |
68 |
profile EAPI? |
69 |
Is there anything else that would benefit from an "overlay metadata |
70 |
file"? Default conf variables e.g ECLASSDIRS. |
71 |
Any other comments? |
72 |
|
73 |
|
74 |
Thanks |
75 |
ali_bush |
76 |
|
77 |
Alistair Bush |
78 |
Gentoo Linux Developer |
79 |
|
80 |
[1] |
81 |
* ERROR: dev-java/commons-jelly-tags-util-1.0 failed. |
82 |
|
83 |
* Call stack: |
84 |
|
85 |
* ebuild.sh, line 1881: Called source |
86 |
'/home/alistair/gentoo/overlays/java-experimental/dev-java/commons-jelly-tags-util/commons-jelly-tags-util-1.0.ebuild' |
87 |
|
88 |
|
89 |
* commons-jelly-tags-util-1.0.ebuild, line 7: Called inherit |
90 |
'commons-jelly-tags-2' |
91 |
|
92 |
* ebuild.sh, line 1238: Called qa_source |
93 |
'/home/alistair/gentoo/overlays/java-experimental/eclass/commons-jelly-tags-2.eclass' |
94 |
|
95 |
|
96 |
* ebuild.sh, line 37: Called source |
97 |
'/home/alistair/gentoo/overlays/java-experimental/eclass/commons-jelly-tags-2.eclass' |
98 |
|
99 |
|
100 |
* commons-jelly-tags-2.eclass, line 30: Called inherit |
101 |
'java-pkg-2' 'java-ant-2' 'java-maven-2' |
102 |
|
103 |
* ebuild.sh, line 1215: Called die |
104 |
|
105 |
* The specific snippet of code: |
106 |
|
107 |
* [ ! -e "$location" ] && die "${1}.eclass could not be |
108 |
found by inherit()" |
109 |
* The die message: |
110 |
|
111 |
* java-maven-2.eclass could not be found by inherit() |
112 |
|
113 |
* |
114 |
|
115 |
* If you need support, post the topmost build error, and the call stack |
116 |
if relevant. |
117 |
* This ebuild used the following eclasses from overlays: |
118 |
|
119 |
* |
120 |
/home/alistair/gentoo/overlays/java-experimental/eclass/commons-jelly-tags-2.eclass |
121 |
|
122 |
* |
123 |
/home/alistair/gentoo/overlays/java-experimental/eclass/java-pkg-2.eclass |
124 |
|
125 |
* |
126 |
/home/alistair/gentoo/overlays/java-experimental/eclass/java-utils-2.eclass |
127 |
|
128 |
* This ebuild is from an overlay: |
129 |
'/home/alistair/gentoo/overlays/java-experimental/' |
130 |
|
131 |
[2] |
132 |
dev-java/glazedlists/glazedlists-1.7.0-r2.ebuild: |
133 |
~amd64(default/linux/amd64/2008.0/server) ['dev-java/swingx'] |
134 |
|
135 |
dev-java/swingx is located in java-overlay. |