currently, "incremental variables" are defined as "variables that the PM will implicitly append when stacking profiles and will allow for collapsing of values via -foo syntax". that means you can do: foo/make.defaults:USE="a" bar/make.defaults:USE="a b" cow/make.defaults:USE="-a" and when you load both foo & bar, you end up with (the collapsed value): USE="a b" and if you load all three, you end up with (the collapsed value): USE="b" but when dealing with USE_EXPAND-ed non-incremental variables, you might want to generally accept the defaults, and remove only one or two items (rather than duplicate the entire thing and manually keep in sync). but at least portage rejects this: $ VIDEO_CARDS='a b -a' portageq envvar VIDEO_CARDS Invalid '-' operator in non-incremental variable 'VIDEO_CARDS': '-a' a b $ VIDEO_CARDS='a b a a' portageq envvar VIDEO_CARDS a b a a there's no real reason we couldn't allow collapsing of values in USE_EXPAND-ed but non-incremental variables. the practical scenario would be something like: x86/make.defaults:VIDEO_CARDS="nvidia nv nouveau ati r128 radeon vga" x86/ati/make.defaults:VIDEO_CARDS="${VIDEO_CARDS} -nvidia -nv -nouveau" x86/nvidia/make.defaults:VIDEO_CARDS="${VIDEO_CARDS} -ati -r128 -radeon"
(In reply to SpanKY from comment #0) > $ VIDEO_CARDS='a b -a' portageq envvar VIDEO_CARDS > Invalid '-' operator in non-incremental variable 'VIDEO_CARDS': '-a' > a b This behavior has changes since portage-2.2.15 (see bug 530222), but it only applies to make.defaults (so your environment override will fail).
(In reply to SpanKY from comment #0) > the practical scenario would be something like: > x86/make.defaults:VIDEO_CARDS="nvidia nv nouveau ati r128 radeon vga" > x86/ati/make.defaults:VIDEO_CARDS="${VIDEO_CARDS} -nvidia -nv -nouveau" > x86/nvidia/make.defaults:VIDEO_CARDS="${VIDEO_CARDS} -ati -r128 -radeon" This works since portage-2.2.15 (see bug 530222). For compatibility with older portage, use the equivalent USE settings, like USE="-video_cards_ati".
(In reply to Zac Medico from comment #1) thanks, we're still on 2.2.12. i'll see about upgrading to 2.2.17. before we punt the bug, is this spelled out in the PMS and i'm not seeing it ?