FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 06-06-2010, 01:52 PM
Arfrever Frehtes Taifersar Arahesis
 
Default Extending EAPI="4"

I would like to suggest that EAPI="4" be reopened for ability of using dots in
USE flag names, which was suggested in bug #311795.

--
Arfrever Frehtes Taifersar Arahesis
 
Old 10-25-2010, 01:24 PM
Arfrever Frehtes Taifersar Arahesis
 
Default Extending EAPI="4"

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
 
Old 10-25-2010, 01:42 PM
Ciaran McCreesh
 
Default Extending EAPI="4"

On Mon, 25 Oct 2010 15:24:23 +0200
Arfrever Frehtes Taifersar Arahesis <Arfrever@gentoo.org> wrote:
> 1. Support for "." characters in names of USE flags

If you do this, you'll have to either convert everything using Python
ABIs to EAPI 4 immediately, or have two sets of flag names. Won't users
get confused if they have to set both python_abis_3_2 (for EAPI < 4
packages) and python_abis_3.2 (for EAPI 4 packages)? And won't
developers have a hard time getting [use] deps right for them?

> 2. Support for use.unsatisfiable and package.use.unsatisfiable files
> in profiles

As far as I can see, this one's a repoman thing, and has little to no
impact on PMS since it doesn't require behaviour changes from the
package mangler itself.

--
Ciaran McCreesh
 
Old 10-25-2010, 01:56 PM
Arfrever Frehtes Taifersar Arahesis
 
Default Extending EAPI="4"

2010-10-25 15:42:00 Ciaran McCreesh napisał(a):
> On Mon, 25 Oct 2010 15:24:23 +0200
> Arfrever Frehtes Taifersar Arahesis <Arfrever@gentoo.org> wrote:
> > 1. Support for "." characters in names of USE flags
>
> If you do this, you'll have to either convert everything using Python
> ABIs to EAPI 4 immediately, or have two sets of flag names. Won't users
> get confused if they have to set both python_abis_3_2 (for EAPI < 4
> packages) and python_abis_3.2 (for EAPI 4 packages)?

There won't be any such USE flags for EAPI <4. I'm planning to use e.g. REQUIRED_USE, which isn't
available in EAPI <4.

> And won't developers have a hard time getting [use] deps right for them?

Appropriate dependencies will be automatically generated by python.eclass.

--
Arfrever Frehtes Taifersar Arahesis
 
Old 10-25-2010, 01:56 PM
Ulrich Mueller
 
Default Extending EAPI="4"

>>>>> On Mon, 25 Oct 2010, Arfrever Frehtes Taifersar Arahesis wrote:

> 1. Support for "." characters in names of USE flags

Are you aware that this would break existing programs that do regexp
matching on USE flags? The current implementation of the useq()
function in portage is probably the most prominent example.

Ulrich
 
Old 10-25-2010, 02:03 PM
Ciaran McCreesh
 
Default Extending EAPI="4"

On Mon, 25 Oct 2010 15:56:18 +0200
Arfrever Frehtes Taifersar Arahesis <Arfrever@gentoo.org> wrote:
> 2010-10-25 15:42:00 Ciaran McCreesh napisał(a):
> > On Mon, 25 Oct 2010 15:24:23 +0200
> > Arfrever Frehtes Taifersar Arahesis <Arfrever@gentoo.org> wrote:
> > > 1. Support for "." characters in names of USE flags
> >
> > If you do this, you'll have to either convert everything using
> > Python ABIs to EAPI 4 immediately, or have two sets of flag names.
> > Won't users get confused if they have to set both python_abis_3_2
> > (for EAPI < 4 packages) and python_abis_3.2 (for EAPI 4 packages)?
>
> There won't be any such USE flags for EAPI <4.

Ok, that answers that objection. In that case I'd not be opposed to .
being allowed *provided*:

- Portage explicitly enforces it not being allowed anywhere else,
including in profiles that aren't marked as eapi 4

- The . isn't legal as the first character in a flag name. (Paludis has
been using [.foo=bar] and the like in user eapi contexts to allow
fancy queries on metadata. It would be a shame to have to change
that syntax just for some hypothetical possible use of . in use flag
names that looks really really weird anyway.)

> I'm planning to use e.g. REQUIRED_USE, which isn't available in EAPI <4.

Or in EAPI 4 for that matter, going by the current state of GLEPs and
PMS...

--
Ciaran McCreesh
 
Old 10-25-2010, 02:03 PM
Ciaran McCreesh
 
Default Extending EAPI="4"

On Mon, 25 Oct 2010 15:56:50 +0200
Ulrich Mueller <ulm@gentoo.org> wrote:
> >>>>> On Mon, 25 Oct 2010, Arfrever Frehtes Taifersar Arahesis wrote:
> > 1. Support for "." characters in names of USE flags
>
> Are you aware that this would break existing programs that do regexp
> matching on USE flags? The current implementation of the useq()
> function in portage is probably the most prominent example.

That's already a can of worms, since @ is allowed in use flag names.

--
Ciaran McCreesh
 
Old 10-25-2010, 02:05 PM
Arfrever Frehtes Taifersar Arahesis
 
Default Extending EAPI="4"

2010-10-25 15:56:50 Ulrich Mueller napisał(a):
> >>>>> On Mon, 25 Oct 2010, Arfrever Frehtes Taifersar Arahesis wrote:
>
> > 1. Support for "." characters in names of USE flags
>
> Are you aware that this would break existing programs that do regexp
> matching on USE flags?

I suggest this feature in a new EAPI to avoid this problem.
(No program should parse anything from future EAPIs.)

--
Arfrever Frehtes Taifersar Arahesis
 
Old 10-25-2010, 02:43 PM
Fabio Erculiani
 
Default Extending EAPI="4"

Implementing a feature to just satisfy your tiny, corner-case (how
many people would take benefit out of it?) use case is just against
any software engineering best practice, and it's a good path towards
bloat and complexity. I think people can understand "python_abis_2_5"
well enough, besides being happy that their app will KEEP working.


--
Fabio Erculiani
 
Old 10-25-2010, 03:00 PM
Arfrever Frehtes Taifersar Arahesis
 
Default Extending EAPI="4"

2010-10-25 16:43:43 Fabio Erculiani napisał(a):
> Implementing a feature to just satisfy your tiny, corner-case (how
> many people would take benefit out of it?) use case is just against
> any software engineering best practice, and it's a good path towards
> bloat and complexity. I think people can understand "python_abis_2_5"
> well enough, besides being happy that their app will KEEP working.

"2_5" is very ugly and unacceptable. python.eclass already uses "2.5" (e.g. in RESTRICT_PYTHON_ABIS).

--
Arfrever Frehtes Taifersar Arahesis
 

Thread Tools




All times are GMT. The time now is 09:07 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org