Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 496844

Summary: portage: implement exclusion of packages and sets in nested sets
Product: Portage Development Reporter: Jaak Ristioja <jaak>
Component: Enhancement/Feature RequestsAssignee: Portage team <dev-portage>
Status: UNCONFIRMED ---    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---

Description Jaak Ristioja 2014-01-03 08:28:32 UTC
I suggest the following syntax be allowed for set files:

@kde
!@kdegames
!kde-base/ksystemlog

The semantics for this are straightforward: include all of @kde except the packages in @kdegames and kde-base/ksystemlog.

Currently stuff like this yields the such kind of errors from portage:

  /etc/portage/sets/mykde: Validation failed at line: 2, data -@kdegames

However, the following probably doesn't make sense:

!kde-base/ksystemlog[-handbook,test]

I think this enhancement would be most appreciated by some users (e.g. bug 182106 about kde*-meta ebuilds).

PS: I just discovered user set support a few minutes ago, so please excuse me, if I don't fully understand it yet.
PPS: It's strange that circularly nested sets seem to be currently allowed:

/etc/portage/sets/test:
  @test2
  kde-games/kmines

/etc/portage/sets/test2:
  @test
  kde-games/kwrite

# emerge @test --nodeps -pq
[ebuild   R   ] kde-base/kmines-4.12.0
[ebuild   R   ] kde-base/kwrite-4.12.0
# emerge @test2 --nodeps -pq
[ebuild   R   ] kde-base/kwrite-4.12.0
[ebuild   R   ] kde-base/kmines-4.12.0

I'm not sure what the semantics of the !atom syntax for set files should be in this case.