On 02:45 Sat 18 Dec     , Arfrever Frehtes Taifersar Arahesis wrote:
> Problem #1: USE flags cannot contain "." characters.

This isn't a problem, it's an arbitrary statement of an antifeature. My 
understanding of the actual problem here is that you want to have some 
sort of USE flags for various Python versions with names containing 
periods, for usability. Perhaps you could expand on exactly what you 
want to do, so we can work together to figure out whether this is the 
best route to solve your problem.

If the problem is handling which Python versions to build modules for, 
I'm wondering whether enhancing the eselect module to select *multiple* 
preferred versions might not be a better solution than EAPI changes. 

We've been having the same discussion for Fortran90 modules, and George 
Shapovalov mentioned that this is how he handled things for Ada (see 
gnat-related eclass/eselect mod).

> ================================================================================================
> 
> Problem #2: Files in profiles cannot use features from newer EAPIs.

Could you explain how the eapi file in profiles does not address this? 
The 10.0 profiles are using it already with EAPI=2. I'll paste the 
description from the PMS to make it easier for anyone following along:

5.2.2 The eapi file

A profile directory may contain an eapi file. This file, if it exists, 
must contain a single line with the name of an EAPI. This specifies the 
EAPI to use when handling the directory in question; a package manager 
must not attempt to use any profile using a directory which requires an 
EAPI it does not support. If no eapi file is present, EAPI 0 shall be 
used. The EAPI is not inherited via the parent file.

> ================================================================================================
> 
> Problem #3: repoman doesn't allow stable packages to have optional 
> dependencies on unstable
> packages (usually until these packages are stabilized).

This seems useful at first glance, but I'm wondering how big of a 
problem it really is and whether this solution is a bit overarchitected.

> Example of the problem:
> If "python_abis_2.7", "python_abis_3.1" and "python_abis_3.2" USE 
> flags are masked using use.mask on given architectures until Python 
> 2.7, 3.1 and 3.2 are stabilized on these architectures, then majority 
> of reverse dependencies of Python won't be tested with new versions of 
> Python.

Why does that have to be the case? Why not unmask them earlier but only 
make them available to ~arch ebuilds?

I don't know of anyone who's actually done this, but setting IUSE based 
on ACCEPT_KEYWORDS being ~arch should be possible. There may be better 
or easier solutions.

> The following solutions have been suggested:
> 
> - Add support for use.unsatisfiable and package.use.unsatisfiable files in 
> profiles in
>   EAPI="4". These files would cause that repoman would allow optional 
>   dependencies on packages potentially unsatisfiable in some 
>   configurations (e.g. on stable-only systems).
> - Create separate profiles for stable and unstable keywords. USE flags 
>   would be masked in stable profiles and unmasked in unstable profiles.
> 
> Council should choose one of these solutions.

-- 
Thanks,
Donnie

Donnie Berkholz
Sr. Developer, Gentoo Linux
Blog: http://dberkholz.wordpress.com

Attachment: pgpxxXC9wphlv.pgp
Description: PGP signature

Reply via email to