Re: USE=multislot, xDEPEND-syntax in SLOT and Slot dependencies [Was: Re: [gentoo-dev] [RFC] some global useflags]

2008-10-15 Thread Marius Mauch
On Wed, 15 Oct 2008 17:20:32 -0700
"Robin H. Johnson" <[EMAIL PROTECTED]> wrote:

> Ignoring Vapier's tirade against ciaranm there, we need the
> xDEPEND-syntax for SLOTS as the real solution, however that still
> wouldn't resolve the portion that has CTARGET as part of the SLOT,
> since metadata generated on the rsyncmaster with a different CTARGET
> wouldn't match on the clients.

Are there significant USE cases for conditionals in SLOT that aren't
related to multislot and multiple ABIs? (the whole DEPEND syntax in
SLOT doesn't make sense)

For allowing multiple ABIs for a package to be installed I'm not
convinced that using SLOT is the right solution, this should probably
be considered as part of a more general multilib / cross-compile
support (there have been different designs for that).

And maybe in the (distant) future we can even add real multislot support
(same version of a package installed in multiple slots), but that's
going to need _major_ vdb and portage API changes first.

Marius



USE=multislot, xDEPEND-syntax in SLOT and Slot dependencies [Was: Re: [gentoo-dev] [RFC] some global useflags]

2008-10-15 Thread Robin H. Johnson
I'm deliberately starting a new thread here, because this is meandering
well off the original topic of the global useflag proposals.

On Thu, Oct 16, 2008 at 02:18:16AM +0200, Marius Mauch wrote:
> There are also other issues, e.g. it breaks the generation of the
> @installed package set as the installed slots can't be found in the
> tree. As portage-2.2 makes increased use of slot atoms internally for
> vdb handling we got a few bugreports simply due to the cache constraint
> violation by USE=multislot.
Ok, I found bug #174184 on this matter.

kugelfang proposed to include this in EAPI=1, but I don't find it in
there, what happened?

The short-term fix of use.mask just stops current breakage, but we need
a real solution so that we can keep using it where we actually need it.

Ignoring Vapier's tirade against ciaranm there, we need the
xDEPEND-syntax for SLOTS as the real solution, however that still
wouldn't resolve the portion that has CTARGET as part of the SLOT, since
metadata generated on the rsyncmaster with a different CTARGET wouldn't
match on the clients.

I'm also wondering about a bad interaction with slot dependencies even
without having CTARGET:
Say gcc has two variants, SLOT=3.4 and SLOT=3.4.5. 
The language in the approved version of PMS (section 9.2.5) states: "A
specification with a named slot dependency matches only if the slot of
the matched package is squal to ths lot specified."

So if package foo/bar-1.0 contains DEPEND="sys-devel/gcc:3.4" it
wouldn't match the other variant of gcc with SLOT=3.4.5 :-(.

-- 
Robin Hugh Johnson
Gentoo Linux Developer & Infra Guy
E-Mail : [EMAIL PROTECTED]
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85


pgpAf5eX3m8Sz.pgp
Description: PGP signature


Re: [gentoo-dev] [RFC] some global useflags

2008-10-15 Thread Marius Mauch
On Thu, 16 Oct 2008 00:19:27 +0100
Ciaran McCreesh <[EMAIL PROTECTED]> wrote:

> On Wed, 15 Oct 2008 14:47:06 -0700
> "Robin H. Johnson" <[EMAIL PROTECTED]> wrote:
> > On Wed, Oct 15, 2008 at 05:43:38PM +0100, Ciaran McCreesh wrote:
> > > Utterly illegal, needs to die.
> >
> > Why? I don't agree that it needs to be the global useflags, but I
> > don't consider it illegal either.
> 
> It's illegal. Generated metadata must be constant and can't vary based
> upon user configuration, because if it does the package manager will
> show the wrong information at --pretend time.

There are also other issues, e.g. it breaks the generation of the
@installed package set as the installed slots can't be found in the
tree. As portage-2.2 makes increased use of slot atoms internally for
vdb handling we got a few bugreports simply due to the cache constraint
violation by USE=multislot.

Marius



Re: [gentoo-dev] [RFC] some global useflags

2008-10-15 Thread Ciaran McCreesh
On Wed, 15 Oct 2008 14:47:06 -0700
"Robin H. Johnson" <[EMAIL PROTECTED]> wrote:
> On Wed, Oct 15, 2008 at 05:43:38PM +0100, Ciaran McCreesh wrote:
> > Utterly illegal, needs to die.
>
> Why? I don't agree that it needs to be the global useflags, but I
> don't consider it illegal either.

It's illegal. Generated metadata must be constant and can't vary based
upon user configuration, because if it does the package manager will
show the wrong information at --pretend time. See bug #24439, for
example.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] [RFC] some global useflags

2008-10-15 Thread Robin H. Johnson
On Wed, Oct 15, 2008 at 05:43:38PM +0100, Ciaran McCreesh wrote:
> Utterly illegal, needs to die.
Why? I don't agree that it needs to be the global useflags, but I don't
consider it illegal either.

It's defined by toolchain.eclass and toolchain-binutils.eclass, and
deliberately in a very careful manner, such that USE=-multislot and
USE=multislot do NOT conflict. There are no other uses in the tree.

For binutils, it simply enables slotting entirely.
For gcc, it moves the slot down from the major version to the minor version.

In both cases, which one gets called is controlled by the relevant *-config
utility. It's pretty handy when you are trying to figure out a gcc or binutils
bug in the minor versions.

Definitions:
toolchain-binutils:
if use multislot ; then
SLOT="${CTARGET}-${BVER}"
elif is_cross ; then
SLOT="${CTARGET}"
else
SLOT="0"
fi

toolchain.eclass:
if use multislot ; then 
SLOT="${CTARGET}-${GCC_CONFIG_VER}"
elif is_crosscompile; then 
SLOT="${CTARGET}-${GCC_BRANCH_VER}"
else 
SLOT="${GCC_BRANCH_VER}"
fi   

Packages where used:
sys-devel/binutils
sys-devel/binutils-hppa64
sys-devel/binutils-nios2
sys-devel/gcc
sys-devel/gcc-nios2
sys-devel/kgcc64

-- 
Robin Hugh Johnson
Gentoo Linux Developer & Infra Guy
E-Mail : [EMAIL PROTECTED]
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85


pgpf0TWTS2gxb.pgp
Description: PGP signature


Re: [gentoo-dev] [RFC] some global useflags

2008-10-15 Thread Ciaran McCreesh
On Wed, 15 Oct 2008 18:36:32 +0200
Markus Meier <[EMAIL PROTECTED]> wrote:
> server16

Already been discussed, can't be done.

> logrotate 10

Already been discussed. Will no doubt descend into the same long
argument that happens every time this comes up.

> custom-cflags 9

Shouldn't be there at all.

> multislot 6

Utterly illegal, needs to die.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


[gentoo-dev] [RFC] some global useflags

2008-10-15 Thread Markus Meier
server16
logrotate 10
gsm   9
custom-cflags 9
kontact   8
openmp8
plasma7
html  7
demo  7
smp   6
icu   6
editor6
multislot 6
nautilus  6
audacious 6
tools 6
qt3support6
dxr3  6
music 5
smtp  5
fax   5
bsf   5
irc   5
mp4   5
clisp 5
nfs   5
pcsc-lite 5
zvbi  5
http  5
web   5


logrotate: Adds support for the app-admin/logrotate log rotation program

kontact: Enable support for the KDE personal information manager
(kde-base/kdepim*)

openmp: Build support for the OpenMP (support parallel computing),
requires >=sys-devel/gcc-4.2 built with USE="openmp"

plasma: Build optional plasma widgets that require kde-base/libplasma

smp: Enable support for multiprocessors or multicore systems

bsf: Enable support for Apache Bean Scripting Framework (dev-java/bsf)


what should we do about custom-cflags? should this be global like
"Use CFLAGS from /etc/make.conf rather than the default package CFLAGS
(not supported)"


Markus


signature.asc
Description: PGP signature