manage-slot-in-world

Description

The manage-slot-in-world utility, usually located at /usr/bin/manage-slot-in-world, is a helper application used by the update-buildspace application to preserve packages installed into a SLOT which should not be automatically cleaned. An example of such a package would be a newer version of gcc which would require manual configuration changes, and possibly a rebuild of the entire world, before the old version can be safely removed. If the old version of the package was not specifically mentioned in the world file the depclean phase would remove it potentially resulting in a non-functional build-space.

Use

The manage-slot-in-world utility has three main modes of operation. The first, activated by supplying the -a or --add-installed option, is used to add the currently installed SLOT versions of the specified package(s) to the world file. In the example below the dev-lang/python package is being checked and SLOT versions 2.6 and 3.1 are already present in the world file. In all the examples we have also supplied the -p and -v, or --pretend and --verbose, options to ensure that no action is taken and that some output is generated even for actions which do not need to be taken such as when a package is already present in the world file.

build manage-slot-in-world -p -v -a dev-lang/python
    dev-lang/python:2.6 already in world 
    dev-lang/python:3.1 already in world 

The second mode of operation, activated by supplying the -r or --remove-unavailable option, is used to remove any SLOT versions of the specified package(s) which are no longer available in the portage tree from the world file.

build manage-slot-in-world -p -v -r dev-lang/python
    dev-lang/python:2.6 still available 
    dev-lang/python:3.1 still available 

The final mode of operation, activated by supplying the -R or --remove-all option, is used to remove all SLOT versions of the specified package(s) from the world file.

build manage-slot-in-world -p -v -R dev-lang/python
    dev-lang/python:2.6 would be removed from world 
    dev-lang/python:3.1 would be removed from world 

Multiple modes of operation and multiple package atoms may be included in one command. The example below adds currently installed SLOT versions of the dev-lang/python and sys-devel/gcc packages to the world file and removes any entries corresponding to versions no longer available.

build manage-slot-in-world -p -v -a -r dev-lang/python sys-devel/gcc
    dev-lang/python:2.6 already in world 
    dev-lang/python:3.1 already in world 
    sys-devel/gcc:4.4 already in world 
    dev-lang/python:2.6 still available 
    dev-lang/python:3.1 still available 
    sys-devel/gcc:4.4 still available