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.