1 |
I would like to request that 2 additional features are added to EAPI="4". |
2 |
These features will be needed for further development of python.eclass. |
3 |
|
4 |
1. Support for "." characters in names of USE flags |
5 |
2. Support for use.unsatisfiable and package.use.unsatisfiable files in profiles |
6 |
These files would have the same syntax as use.mask and package.use.mask, respectively. |
7 |
These files would indicate that it's allowed for dependencies conditional on USE flags specified |
8 |
in these files to be unsatisfiable. It would allow for stable packages to have optional |
9 |
dependencies on packages, which cannot be stabilized yet. This feature would be a better |
10 |
replacement for possibility of masking of USE flags only on stable systems, which was considered |
11 |
in the past. |
12 |
|
13 |
Example dependencies: |
14 |
DEPEND="python_abis_2.4? ( dev-lang/python:2.4 ) |
15 |
python_abis_2.5? ( dev-lang/python:2.5 ) |
16 |
python_abis_2.6? ( dev-lang/python:2.6 ) |
17 |
python_abis_2.7? ( dev-lang/python:2.7 ) |
18 |
python_abis_3.1? ( dev-lang/python:3.1 ) |
19 |
python_abis_3.2? ( dev-lang/python:3.2 )" |
20 |
RDEPEND="${DEPEND}" |
21 |
|
22 |
python_abis_2.7, python_abis_3.1 and python_abis_3.2 USE flags would be specified in use.unsatisfiable |
23 |
file until relevant versions of Python are stabilized on all architectures. Without this feature, |
24 |
some USE flags would have to be masked, so unstable users couldn't easily test many packages with |
25 |
new versions of Python. |
26 |
|
27 |
Another example: dev-vcs/subversion[kde] depends on >=kde-base/kdelibs-4. dev-vcs/subversion is |
28 |
stable on arm and ppc64, but kde-base/kdelibs is unstable on these architectures, which causes |
29 |
that currently "kde" USE flag of dev-vcs/subversion is masked in arm and ppc64 profiles, which |
30 |
causes that users of ~arm or ~ppc64 would have to manually unmask this USE flag in |
31 |
/etc/portage/profile/package.use.mask to be able to install dev-vcs/subversion with "kde" USE flag |
32 |
enabled. With this feature, users wouldn't need to edit /etc/portage/profile/package.use.mask. |
33 |
|
34 |
use.unsatisfiable and package.use.unsatisfiable files would cause that `repoman` would treat |
35 |
given USE flags in the same way as masked USE flags. These files wouldn't affect behavior of |
36 |
`emerge`: |
37 |
- If user has enabled given USE flag specified in use.unsatisfiable or package.use.unsatisfiable |
38 |
and if optional dependencies controlled by this USE flag are already installed or satisfiable, |
39 |
then `emerge` will allow to install given package. |
40 |
- If user has enabled given USE flag specified in use.unsatisfiable or package.use.unsatisfiable |
41 |
and if optional dependencies controlled by this USE flag cannot be satisfied (with current |
42 |
settings of ACCEPT_KEYWORDS, /etc/portage/package.keywords etc.), then `emerge` will print |
43 |
informative error message telling e.g. about a dependency masked by ~${ARCH} keyword. |
44 |
|
45 |
|
46 |
I have a patch, which adds support for these features in Portage, so inclusion of these features |
47 |
in EAPI="4" wouldn't delay EAPI="4". |
48 |
|
49 |
-- |
50 |
Arfrever Frehtes Taifersar Arahesis |