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
pgpxxXC9wphlv.pgp
Description: PGP signature