# WARNING: default set configuration, DO NOT CHANGE.
# If you want to change anything redefine the relevant section in 
# /etc/portage/sets.conf. Any changes to this file will be lost on the next 
# portage update, and configuration errors here might upset portage in 
# unexpected ways.

# Not much that could be changed for world, so better leave it alone
[world]
class = portage.sets.files.WorldSet
world-candidate = False

# Same as for world, though later portage versions might use a different class
[system]
class = portage.sets.profiles.PackagesSystemSet
world-candidate = False

# For security there are multiple classes available, but differences are 
# rather small (normally there should be no visible difference):
# - AffectedSet: include all GLSAs that cover a vulnerable package
# - NewAffectedSet: include all GLSAs that cover a vulnerable package and 
#   haven't been applied previously
# - NewGlsaSet: include all GLSAs that haven't been applied
# - SecuritySet: include all GLSAs
[security]
class = portage.sets.security.NewAffectedSet
world-candidate = False

# A superset of the classic <parameter>world</parameter> target, a set created
# by this class contains SLOT atoms to match all installed packages. Note that
# use of this set makes it impossible for emerge to solve blockers by automatic
# uninstallation of blocked packages.
[installed]
class = portage.sets.dbapi.EverythingSet
world-candidate = False

# The following treats all files in /etc/portage/sets as a package set called
# '$filename'.
[usersets]
class = portage.sets.files.StaticFileSet
multiset = true
directory = /etc/portage/sets

# Set to rebuild all packages that need a preserved lib that only remains due
# to FEATURES=preserve-libs
[preserved-rebuild]
class = portage.sets.libs.PreservedLibraryConsumerSet
world-candidate = False

# Installed ebuilds that inherit from known live eclasses.
[live-rebuild]
class = portage.sets.dbapi.VariableSet
world-candidate = False
variable = INHERITED
includes = bzr cvs darcs git mercurial subversion

# Installed packages that own files inside /lib/modules.
[module-rebuild]
class = portage.sets.dbapi.OwnerSet
world-candidate = False
files = /lib/modules

# Installed packages for which the highest visible ebuild
# version is lower than the currently installed version.
[downgrade]
class = portage.sets.dbapi.DowngradeSet
world-candidate = False

# Installed packages for which there are no visible ebuilds
# corresponding to the same $CATEGORY/$PN:$SLOT.
[unavailable]
class = portage.sets.dbapi.UnavailableSet
world-candidate = False
