alternatives.eclass
Description
When a package is SLOT'ed, very often we need to have a symlink to the latest version. However, depending on the order the user has merged them, more often than not, the symlink maybe clobbered by the older versions.
This eclass provides a convenience function that needs to be given a list of alternatives (descending order of recent-ness) and the symlink. It will choose the latest version it can find installed and create the desired symlink.
There are two ways to use this eclass. First is by declaring two variables
$SOURCE
and $ALTERNATIVES
where $SOURCE
is the symlink to be
created and $ALTERNATIVES
is a list of alternatives. Second way is the
use the function alternatives_makesym
like the example below.
Example
pkg_postinst() {
alternatives_makesym "/usr/bin/python" "/usr/bin/python2.3" "/usr/bin/python2.2"
}
The above example will create a symlink at /usr/bin/python
to either
/usr/bin/python2.3
or /usr/bin/python2.2
. It will choose
python2.3
over python2.2
if both exist.
Alternatively, you can use this function:
pkg_postinst() {
alternatives_auto_makesym "/usr/bin/python" "/usr/bin/python[0-9].[0-9]"
}
This will use bash pathname expansion to fill a list of alternatives it can link to. It is probably more robust against version upgrades. You should consider using this unless you are want to do something special.
Functions
- alternatives_auto_makesym
-
Automatic deduction (Bash pathname expansion) based on a symlink and a regex mask
- alternatives_makesym
-
Creates symlink based on a symlink and regex mask literally
- alternatives_pkg_postinst
-
The alternatives
pkg_postinst
, this function will be exported - alternatives_pkg_postrm
-
The alternatives
pkg_postrm
, this function will be exported
Authors
Alastair Tse <liquidx@gentoo.org> (03 Oct 2003)
Reporting Bugs
Please report bugs via https://bugs.gentoo.org/