aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/alternatives-2.eclass')
-rw-r--r--eclass/alternatives-2.eclass142
1 files changed, 0 insertions, 142 deletions
diff --git a/eclass/alternatives-2.eclass b/eclass/alternatives-2.eclass
deleted file mode 100644
index 7237f0db3..000000000
--- a/eclass/alternatives-2.eclass
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright 2010-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-# Based in part upon 'alternatives.exlib' from Exherbo, which is:
-# Copyright 2008, 2009 Bo Ørsted Andresen
-# Copyright 2008, 2009 Mike Kelly
-# Copyright 2009 David Leverton
-
-# @ECLASS: alternatives-2.eclass
-# @MAINTAINER:
-# Gentoo Science Project <sci@gentoo.org>
-# @BLURB: Manage alternative implementations.
-# @DESCRIPTION:
-# Autogenerate eselect modules for alternatives and ensure that valid provider
-# is set.
-#
-# Remove eselect modules when last provider is unmerged.
-#
-# If your package provides pkg_postinst or pkg_prerm phases, you need to be
-# sure you explicitly run alternatives-2_pkg_{postinst,prerm} where appropriate.
-
-case "${EAPI:-0}" in
- 0|1|2|3|4)
- die "Unsupported EAPI=${EAPI:-0} (too old) for ${ECLASS}"
- ;;
- 5|6|7)
- ;;
- *)
- die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
- ;;
-esac
-
-DEPEND=">=app-admin/eselect-1.4.13-r101"
-RDEPEND="${DEPEND}
- !app-eselect/eselect-blas
- !app-eselect/eselect-cblas
- !app-eselect/eselect-lapack"
-
-# @ECLASS-VARIABLE: ALTERNATIVES_DIR
-# @INTERNAL
-# @DESCRIPTION:
-# Alternatives directory with symlinks managed by eselect.
-ALTERNATIVES_DIR="/etc/env.d/alternatives"
-
-# @FUNCTION: alternatives_for
-# @USAGE: <alternative> <provider> <importance> <source> <target> [<source> <target> [...]]
-# @DESCRIPTION:
-# Set up alternative provider.
-#
-# EXAMPLE:
-# @CODE
-# alternatives_for sh bash 0 \
-# /usr/bin/sh bash
-# @CODE
-alternatives_for() {
- debug-print-function ${FUNCNAME} "${@}"
-
- dodir /etc/env.d/alternatives
-
- ALTERNATIVESDIR_ROOT="${D%/}" \
- eselect alternatives add ${@} || die
-
- ALTERNATIVES_CREATED+=( ${1} )
-}
-
-# @FUNCTION: cleanup_old_alternatives_module
-# @USAGE: <alternative>
-# @DESCRIPTION:
-# Remove old alternatives module.
-cleanup_old_alternatives_module() {
- debug-print-function ${FUNCNAME} "${@}"
-
- local alt=${1} old_module="${EROOT%/}/usr/share/eselect/modules/${alt}.eselect"
-
- if [[ -f "${old_module}" && $(grep 'ALTERNATIVE=' "${old_module}" | cut -d '=' -f 2) == "${alt}" ]]; then
- local version="$(grep 'VERSION=' "${old_module}" | grep -o '[0-9.]\+')"
- if [[ "${version}" == "0.1" || "${version}" == "20080924" ]]; then
- einfo "rm ${old_module}"
- rm "${old_module}" || eerror "rm ${old_module} failed"
- fi
- fi
-}
-
-# @FUNCTION: alternatives-2_pkg_postinst
-# @DESCRIPTION:
-# Create eselect modules for all provided alternatives if necessary and ensure
-# that valid provider is set.
-#
-# Also remove old eselect modules for provided alternatives.
-#
-# Provided alternatives are set up using alternatives_for().
-alternatives-2_pkg_postinst() {
- debug-print-function ${FUNCNAME} "${@}"
-
- local alt
-
- for alt in ${ALTERNATIVES_CREATED[@]}; do
- if ! eselect ${alt} show > /dev/null; then
- einfo "Creating Alternative for ${alt}"
- eselect alternatives create ${alt}
- fi
-
- # Set alternative provider if there is no valid provider selected
- eselect alternatives update "${alt}"
-
- cleanup_old_alternatives_module ${alt}
- done
-}
-
-# @FUNCTION: alternatives-2_pkg_prerm
-# @DESCRIPTION:
-# Ensure a valid provider is set in case the package is unmerged and
-# remove autogenerated eselect modules for alternative when last
-# provider is unmerged.
-#
-# Provided alternatives are set up using alternatives_for().
-alternatives-2_pkg_prerm() {
- debug-print-function ${FUNCNAME} "${@}"
-
- local alt ret
-
- # If we are uninstalling, update alternatives to valid provider
- [[ -n ${REPLACED_BY_VERSION} ]] || ignore="--ignore"
- for alt in ${ALTERNATIVES_CREATED[@]}; do
- eselect alternatives update "${alt}"
- ret=$?
-
- case ${ret} in
- 0) : ;;
- 2)
- # This was last provider for the alternative, remove eselect module
- einfo "Cleaning up unused alternatives module for ${alt}"
- eselect alternatives delete "${alt}" || eerror "Failed to remove ${alt}"
- ;;
- *)
- eerror "eselect alternatives update returned \"${ret}\""
- ;;
- esac
- done
-}
-
-EXPORT_FUNCTIONS pkg_postinst pkg_prerm