I would like to request that 2 additional features are added to EAPI="4".
These features will be needed for further development of python.eclass.

1. Support for "." characters in names of USE flags
2. Support for use.unsatisfiable and package.use.unsatisfiable files in profiles
These files would have the same syntax as use.mask and package.use.mask, 
respectively.
These files would indicate that it's allowed for dependencies conditional on 
USE flags specified
in these files to be unsatisfiable. It would allow for stable packages to have 
optional
dependencies on packages, which cannot be stabilized yet. This feature would be 
a better
replacement for possibility of masking of USE flags only on stable systems, 
which was considered
in the past.

  Example dependencies:
    DEPEND="python_abis_2.4? ( dev-lang/python:2.4 )
            python_abis_2.5? ( dev-lang/python:2.5 )
            python_abis_2.6? ( dev-lang/python:2.6 )
            python_abis_2.7? ( dev-lang/python:2.7 )
            python_abis_3.1? ( dev-lang/python:3.1 )
            python_abis_3.2? ( dev-lang/python:3.2 )"
    RDEPEND="${DEPEND}"

python_abis_2.7, python_abis_3.1 and python_abis_3.2 USE flags would be 
specified in use.unsatisfiable
file until relevant versions of Python are stabilized on all architectures. 
Without this feature,
some USE flags would have to be masked, so unstable users couldn't easily test 
many packages with
new versions of Python.

Another example: dev-vcs/subversion[kde] depends on >=kde-base/kdelibs-4. 
dev-vcs/subversion is
stable on arm and ppc64, but kde-base/kdelibs is unstable on these 
architectures, which causes
that currently "kde" USE flag of dev-vcs/subversion is masked in arm and ppc64 
profiles, which
causes that users of ~arm or ~ppc64 would have to manually unmask this USE flag 
in
/etc/portage/profile/package.use.mask to be able to install dev-vcs/subversion 
with "kde" USE flag
enabled. With this feature, users wouldn't need to edit 
/etc/portage/profile/package.use.mask.

use.unsatisfiable and package.use.unsatisfiable files would cause that 
`repoman` would treat
given USE flags in the same way as masked USE flags. These files wouldn't 
affect behavior of
`emerge`:
 - If user has enabled given USE flag specified in use.unsatisfiable or 
package.use.unsatisfiable
   and if optional dependencies controlled by this USE flag are already 
installed or satisfiable,
   then `emerge` will allow to install given package.
 - If user has enabled given USE flag specified in use.unsatisfiable or 
package.use.unsatisfiable
   and if optional dependencies controlled by this USE flag cannot be satisfied 
(with current
   settings of ACCEPT_KEYWORDS, /etc/portage/package.keywords etc.), then 
`emerge` will print
   informative error message telling e.g. about a dependency masked by ~${ARCH} 
keyword.


I have a patch, which adds support for these features in Portage, so inclusion 
of these features
in EAPI="4" wouldn't delay EAPI="4".

-- 
Arfrever Frehtes Taifersar Arahesis

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to