1 |
Hello, all. |
2 |
|
3 |
Since the tree is still full of too broad dependencies and other |
4 |
mistakes, I would like to add a repoman check and a matching QA policy |
5 |
regarding how slots should be used in dependencies. |
6 |
|
7 |
The check would apply to EAPI 5 and newer ebuilds only. Considering |
8 |
the past uproar against having slotted dependencies against |
9 |
single-slot packages, it would apply only to dependencies that match |
10 |
more than one slot of a package. |
11 |
|
12 |
|
13 |
With the new policy, the simple form of dependencies: |
14 |
|
15 |
dev-libs/foo |
16 |
|
17 |
would be only allowed if dev-libs/foo has only one slot. |
18 |
|
19 |
If the atom matches more than one slot of a package, one of the |
20 |
following forms would need to be used: |
21 |
|
22 |
1. dev-libs/bar:* -- if any version of bar is acceptable, |
23 |
and you can replace bar:1 with bar:2 without rebuilding, |
24 |
|
25 |
2. dev-libs/bar:= -- if any version of bar is acceptable, |
26 |
and you need to rebuild bar when changing slots (and subslots), |
27 |
|
28 |
3. dev-libs/bar:slot -- if a single slot of bar is acceptable, |
29 |
and you can change subslots without rebuilding, |
30 |
|
31 |
4. dev-libs/bar:slot= -- if a single slot of bar is acceptable, |
32 |
and you need subslot rebuilds, |
33 |
|
34 |
5. dev-libs/bar:slot/subslot -- if a single subslot of bar is |
35 |
acceptable, useful mostly for binary packages and pass-through |
36 |
virtuals. |
37 |
|
38 |
...which means that the only 'new' requirement would be that ':*' |
39 |
operator becomes mandatory in favor of plain deps that have semi- |
40 |
-undefined behavior. |
41 |
|
42 |
|
43 |
It should be noted that the check uses complete dependency atom to |
44 |
count the number of slots. That is, a dependency alike: |
45 |
|
46 |
>=x11-libs/gtk+-3.4 |
47 |
|
48 |
would match only one slot and cause no repoman warnings. This is mostly |
49 |
intended to keep the check simple and avoid false positives. |
50 |
|
51 |
|
52 |
If anyone wishes to test the current code, the last version of patch |
53 |
can be found at [1]. It will likely hit portage in -9999 as soon |
54 |
as dol-sen approves it. |
55 |
|
56 |
[1]:http://article.gmane.org/gmane.linux.gentoo.portage.devel/4369 |
57 |
|
58 |
-- |
59 |
Best regards, |
60 |
Michał Górny |