aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2015-04-02 12:20:04 +0200
committerJustin Lecher <jlec@gentoo.org>2015-04-02 12:20:04 +0200
commit0c228168dd58e43fe32a14aa3b346e91521d0a95 (patch)
treecb4990541f740b669e36ecd8e5a542f19523379c
parentMerge remote-tracking branch 'github/master' (diff)
downloadsci-0c228168dd58e43fe32a14aa3b346e91521d0a95.tar.gz
sci-0c228168dd58e43fe32a14aa3b346e91521d0a95.tar.bz2
sci-0c228168dd58e43fe32a14aa3b346e91521d0a95.zip
app-admin/eselect: Drop old
Package-Manager: portage-2.2.18
-rw-r--r--app-admin/eselect/ChangeLog7
-rw-r--r--app-admin/eselect/Manifest6
-rw-r--r--app-admin/eselect/eselect-1.3.7-r100.ebuild72
-rw-r--r--app-admin/eselect/eselect-1.3.8-r100.ebuild72
-rw-r--r--app-admin/eselect/eselect-1.4-r100.ebuild72
-rw-r--r--app-admin/eselect/eselect-1.4.1-r100.ebuild72
-rw-r--r--app-admin/eselect/eselect-1.4.2-r100.ebuild72
-rw-r--r--app-admin/eselect/eselect-1.4.3-r100.ebuild72
-rw-r--r--app-admin/eselect/files/eselect-1.3.8-alternatives.patch616
-rw-r--r--app-admin/eselect/files/eselect-alternatives.patch618
10 files changed, 7 insertions, 1672 deletions
diff --git a/app-admin/eselect/ChangeLog b/app-admin/eselect/ChangeLog
index 29de45c0d..cc795da90 100644
--- a/app-admin/eselect/ChangeLog
+++ b/app-admin/eselect/ChangeLog
@@ -2,6 +2,13 @@
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect/ChangeLog,v 1.179 2011/01/22 21:38:52 ulm Exp $
+ 02 Apr 2015; Justin Lecher <jlec@gentoo.org> -eselect-1.3.7-r100.ebuild,
+ -eselect-1.3.8-r100.ebuild, -eselect-1.4-r100.ebuild,
+ -eselect-1.4.1-r100.ebuild, -eselect-1.4.2-r100.ebuild,
+ -eselect-1.4.3-r100.ebuild, -files/eselect-1.3.8-alternatives.patch,
+ -files/eselect-alternatives.patch:
+ app-admin/eselect: Drop old
+
*eselect-1.4.4-r100 (26 Jan 2015)
26 Jan 2015; Justin Lecher <jlec@gentoo.org> +eselect-1.4.4-r100.ebuild:
diff --git a/app-admin/eselect/Manifest b/app-admin/eselect/Manifest
index 316fc2686..c77de7fb1 100644
--- a/app-admin/eselect/Manifest
+++ b/app-admin/eselect/Manifest
@@ -1,7 +1 @@
-DIST eselect-1.3.7.tar.xz 166596 SHA256 68b3c9cf3f71633ca81c4d0edd64a77e02dc8d6b9a48641e59f0bf02378a0075 SHA512 909d79d76f144181895853ce132147daeee4ba6caf05bf08963aef147ef2d00be100d6181887d139614f1bebf15f0738ea58e755656b55b7d9d967d399ce72f0 WHIRLPOOL 82d7575e8bbcb2186ef1452e3edb07b7c242c4d14475da0c5867acc70d275e5fb9e166a2b0addb54fb3586eddabcf1eec1e208964db5489e4250bf1f8ad39468
-DIST eselect-1.3.8.tar.xz 168040 SHA256 d0c50bfe0faaddc54fc184f698ee74a6029a21f5155c4670a2bea3ead954c138 SHA512 159bf3ddb05b1966318eaf62d09e454a024f8be7ead2300392abbcbaa54ef748a1c4db1b2f96162994bcab43071396eb96a0b47268f04cb8557f8804818da18e WHIRLPOOL 9c4da0bde2ae2b53e8949d59b13498f55ef2c849dcc8cac503a7d0dda2511311d94dfc7aa27a97432f13aa0b430fec0ab280594dc165bbb40e573dce8c8a74b0
-DIST eselect-1.4.1.tar.xz 168616 SHA256 c60eb7e3b6eea36560ea16f8378de3c86926988a1eee3e6dd98c12f0340869c0 SHA512 c6754c3bb71efda36b807f2275aff0cc7bf5c3f58cbc7543b8255592940dae341e4b597ff1376b0997c37bcd0b736d813630b9fe4a4da2f85765217d8634deab WHIRLPOOL a9fb2dc6904c57878c744f70f0bd66a18b574eec04f042fa5ab60f608f31a0c90554153f3362c633742bb9918cb14f146269e0972cdf97998c60c236ae966f66
-DIST eselect-1.4.2.tar.xz 169036 SHA256 b3aef6a41c8f85f2f4b50204f0713b40586e8443965005c5fc2510218e359fc3 SHA512 d453ece6a06c6328dd3662520e7eba32ad8d10feeb6826d1f3e9c69c2f6b260e1872e0e9b5f1fc272b5d5a59145855a330454889306798808765f7530f4f4736 WHIRLPOOL 9322d5fe7085ffac7497d3f517860a5ba173edae86d4d058d0f4930ea1872712245ff094b777f0171d71d01ea38be3158614f358cf1923ceb6fbe0f735414503
-DIST eselect-1.4.3.tar.xz 169400 SHA256 eea297658235321727f174aca841fccd31ec1ec044519c6b74fd5f7f168a3faf SHA512 5c4468745cb3d8da731fcd9c0ad3897270b01b337fd33cb06f5523d71d5ceb03be01eb10dd624522700e23175462a87ebb9e84e58a250b1938981dc0d5b39595 WHIRLPOOL 3788f77082abb55bd4d07317fd08688522c059e95d7ae7c6958bc40e7ef9bbced996e909e4bb3fc367585b212d93bff950ca2072907e0a06ef8330cdbec53256
DIST eselect-1.4.4.tar.xz 177536 SHA256 120c123eae4a1d03515e94f9efd51af6ff2f09340daf1ada4dc21079df7a937f SHA512 1ed01cf00e3f13aad3e5f844c7086c3dd48398efd76e68cd91cf13b9939f4b48eef8915c5f3926954d158023115ad66ee67c0bc8fc4c9570900a37207674fc8f WHIRLPOOL e56c3ea3e54bdbcfffba3fbbe85b3c824cab796a0bae2680fac962356a2f707783571a9f73e0ea8299098838e593bea77b14edbeaadc372f186c2da2928e9ab5
-DIST eselect-1.4.tar.xz 168580 SHA256 38f457567ac6a400763e49c215a78d5a7efc3edad589dda37bbd70847e3e7260 SHA512 4c28df99d3a235ccda60cb576634cde6110d3b7bc2fb7b8e3e9a69f7e09377dd9a5c615d6bf0ab8d668c137e8f658484fd28c0fe45e6ad3b7915925a3384b999 WHIRLPOOL 6646c023283b111bf7a973993dfe8537bdd3fab4c6c738af1f37c1aed1bddefbf834562036386dce1359d1b04da89049e7c60e4498733ac56587e037ca0ea87f
diff --git a/app-admin/eselect/eselect-1.3.7-r100.ebuild b/app-admin/eselect/eselect-1.3.7-r100.ebuild
deleted file mode 100644
index 6be213339..000000000
--- a/app-admin/eselect/eselect-1.3.7-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="mirror://gentoo/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/eselect-1.3.8-r100.ebuild b/app-admin/eselect/eselect-1.3.8-r100.ebuild
deleted file mode 100644
index 700374b30..000000000
--- a/app-admin/eselect/eselect-1.3.8-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="mirror://gentoo/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/eselect-1.4-r100.ebuild b/app-admin/eselect/eselect-1.4-r100.ebuild
deleted file mode 100644
index e4d9a6f86..000000000
--- a/app-admin/eselect/eselect-1.4-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="http://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-1.3.8-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/eselect-1.4.1-r100.ebuild b/app-admin/eselect/eselect-1.4.1-r100.ebuild
deleted file mode 100644
index e4d9a6f86..000000000
--- a/app-admin/eselect/eselect-1.4.1-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="http://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-1.3.8-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/eselect-1.4.2-r100.ebuild b/app-admin/eselect/eselect-1.4.2-r100.ebuild
deleted file mode 100644
index 3fb583fee..000000000
--- a/app-admin/eselect/eselect-1.4.2-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="http://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${P}-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/eselect-1.4.3-r100.ebuild b/app-admin/eselect/eselect-1.4.3-r100.ebuild
deleted file mode 100644
index 5af5f877b..000000000
--- a/app-admin/eselect/eselect-1.4.3-r100.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=5
-
-inherit autotools eutils bash-completion-r1
-
-DESCRIPTION="Gentoo's multi-purpose configuration and management tool"
-HOMEPAGE="http://wiki.gentoo.org/wiki/Project:Eselect"
-SRC_URI="http://dev.gentoo.org/~ulm/eselect/${P}.tar.xz"
-
-LICENSE="GPL-2+ || ( GPL-2+ CC-BY-SA-2.5 )"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc emacs vim-syntax"
-
-RDEPEND="sys-apps/sed
- || (
- sys-apps/coreutils
- sys-freebsd/freebsd-bin
- app-misc/realpath
- )"
-DEPEND="${RDEPEND}
- app-arch/xz-utils
- doc? ( dev-python/docutils )"
-RDEPEND="!app-admin/eselect-news
- ${RDEPEND}
- sys-apps/file
- sys-libs/ncurses"
-
-PDEPEND="emacs? ( app-emacs/eselect-mode )
- vim-syntax? ( app-vim/eselect-syntax )"
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-1.4.2-alternatives.patch
- AT_M4DIR="." eautoreconf
-}
-
-src_compile() {
- emake
- use doc && emake html
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- newbashcomp misc/${PN}.bashcomp ${PN}
- dodoc AUTHORS ChangeLog NEWS README TODO doc/*.txt
- use doc && dohtml *.html doc/*
-
- # needed by news module
- keepdir /var/lib/gentoo/news
- if ! use prefix; then
- fowners root:portage /var/lib/gentoo/news
- fperms g+w /var/lib/gentoo/news
- fi
-
- # band aid for prefix
- if use prefix; then
- cd "${ED}"/usr/share/eselect/libs
- sed -i "s:ALTERNATIVESDIR_ROOTLESS=\"${EPREFIX}:ALTERNATIVESDIR_ROOTLESS=\":" alternatives.bash || die
- fi
-}
-
-pkg_postinst() {
- # fowners in src_install doesn't work for the portage group:
- # merging changes the group back to root
- if ! use prefix; then
- chgrp portage "${EROOT}/var/lib/gentoo/news" \
- && chmod g+w "${EROOT}/var/lib/gentoo/news"
- fi
-}
diff --git a/app-admin/eselect/files/eselect-1.3.8-alternatives.patch b/app-admin/eselect/files/eselect-1.3.8-alternatives.patch
deleted file mode 100644
index 1e3b0ea77..000000000
--- a/app-admin/eselect/files/eselect-1.3.8-alternatives.patch
+++ /dev/null
@@ -1,616 +0,0 @@
-Index: bin/eselect.in
-===================================================================
---- bin/eselect.in (revision 863)
-+++ bin/eselect.in (working copy)
-@@ -22,10 +22,15 @@
- # Where are modules installed by default?
- ESELECT_DEFAULT_MODULES_PATH="${ESELECT_DATA_PATH}/modules"
-
-+# Where are auto-generated modules placed? (e.g. from alternatives-2.eclass)
-+ESELECT_AUTO_GENERATED_MODULES_PATH="${ESELECT_DEFAULT_MODULES_PATH}/auto"
-+
- # Look in these places for modules
--ESELECT_MODULES_PATH=( \
-- "${HOME}/.eselect/modules" \
-- "${ESELECT_DEFAULT_MODULES_PATH}" )
-+ESELECT_MODULES_PATH=(
-+ "${HOME}/.eselect/modules"
-+ "${ESELECT_DEFAULT_MODULES_PATH}"
-+ "${ESELECT_AUTO_GENERATED_MODULES_PATH}"
-+)
-
- # Look in this place for libraries
- ESELECT_CORE_PATH="${ESELECT_DATA_PATH}/libs"
---- bin/Makefile.am.orig 2013-09-02 14:35:05.328684465 +0400
-+++ bin/Makefile.am 2013-09-02 14:49:50.895842067 +0400
-@@ -4,6 +4,7 @@
- dosed = @SED@ -e 's,\@BASH\@,$(BASH),g' \
- -e 's,\@DATADIR\@,$(datadir),g' \
- -e 's,\@EPREFIX\@,$(EPREFIX),g' \
-+ -e 's,\@LIBEXECDIR\@,$(datadir),g' \
- -e 's,\@VERSION\@,$(VERSION)$(EXTRAVERSION),g'
-
- % : %.in
-Index: libs/Makefile.am
-===================================================================
---- libs/Makefile.am (revision 863)
-+++ libs/Makefile.am (working copy)
-@@ -1,6 +1,7 @@
- eselectlibsdir = $(datadir)/$(PACKAGE_NAME)/libs/
-
- eselectlibs_DATA = \
-+ alternatives.bash \
- config.bash \
- core.bash \
- default.eselect \
-@@ -14,6 +15,7 @@
- tests.bash
-
- EXTRA_DIST = \
-+ alternatives.bash.in \
- config.bash.in \
- core.bash.in \
- default.eselect.in \
-@@ -30,7 +32,8 @@
- -e 's,\@SED\@,@SED@,g' \
- -e 's,\@PORTAGEQ\@,@PORTAGEQ@,g' \
- -e 's,\@ENV_UPDATE\@,@ENV_UPDATE@,g' \
-- -e 's,\@CANONICALISE\@,@CANONICALISE@,g'
-+ -e 's,\@CANONICALISE\@,@CANONICALISE@,g' \
-+ -e 's,\@sysconfdir\@,@sysconfdir@,g'
-
- %.bash : %.bash.in
- @$(dosed) $< > $@
---- libs/alternatives.bash.in.orig 1970-01-01 01:00:00.000000000 +0100
-+++ libs/alternatives.bash.in 2011-09-06 18:55:43.000000000 +0100
-@@ -0,0 +1,550 @@
-+# Copyright 2008 Mike Kelly
-+# Copyright 2009 David Leverton
-+# Copyright 2010 Bo Ørsted Andresen
-+# 2010: Adapted to eselect Sebastien Fabbro (who doesn't like copyrights)
-+# Distributed under the terms of the GNU General Public License v2
-+
-+inherit config output path-manipulation
-+
-+ALTERNATIVESDIR_ROOTLESS="@sysconfdir@/env.d/alternatives"
-+ALTERNATIVESDIR="${EROOT}${ALTERNATIVESDIR_ROOTLESS}"
-+
-+get_current_provider() {
-+ local dieprefix="Could not determine current provider for ${ALTERNATIVE}"
-+ if [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current ]]; then
-+ local provider=$(readlink "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current" || die "${dieprefix}: readlink ${symlink} failed")
-+ [[ ${provider} == */* ]] && die "${dieprefix}: malformed target for ${symlink}"
-+
-+ if [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ||
-+ ( -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} && ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ) ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} is not a directory"
-+ fi
-+
-+ echo "${provider}"
-+
-+ elif [[ -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current is not a symlink"
-+ fi
-+}
-+
-+compare_importance() {
-+ local IFS=.
-+ local a=( ${1} ) b=( ${2} )
-+ local -i i=0
-+ while (( i<${#a[@]} && i<${#b[@]} )); do
-+ if (( a[i]<b[i] )); then
-+ return 0
-+ elif (( a[i]>b[i] )); then
-+ return 1
-+ fi
-+ i+=1
-+ done
-+ (( i<${#b[@]} ))
-+}
-+
-+sort_providers() {
-+ local begin=${1:-0}
-+ local count=${2:-${#providers[@]}}
-+ [[ ${count} -le 1 ]] && return 0
-+ sort_providers ${begin} $((count/2))
-+ sort_providers $((begin+count/2)) $((count-count/2))
-+ local left=( "${providers[@]:begin:count/2}" )
-+ local right=( "${providers[@]:begin+count/2:count-count/2}" )
-+ local -i x i=0 j=0
-+ for (( x=begin; x<begin+count; ++x )); do
-+ if (( j>=${#right[@]} )) || { (( i<${#left[@]} )) && compare_importance "${left[i]%%:*}" "${right[j]%%:*}"; }; then
-+ providers[x]=${left[i++]}
-+ else
-+ providers[x]=${right[j++]}
-+ fi
-+ done
-+}
-+
-+get_providers() {
-+ local p= importance providers=()
-+ for p in "${ALTERNATIVESDIR}/${ALTERNATIVE}"/* ; do
-+ [[ -d ${p} && ! -L ${p} ]] || continue
-+ p=${p##*/}
-+
-+ importance=$(< "${ALTERNATIVESDIR}/${ALTERNATIVE}/${p}/_importance")
-+ importance=${importance:-0}
-+ [[ "${importance}" =~ ^[0123456789]+(\.[0123456789]+)*$ ]] || die "_importance (${importance}) for ${p} is not a dot-separated list of integers"
-+
-+ providers+=( "${importance}:${p}" )
-+ done
-+
-+ sort_providers
-+ for (( p=${#providers[@]}-1 ; p>=0 ; --p )); do
-+ echo "${providers[p]#*:}"
-+ done
-+}
-+
-+### show action ###
-+describe_show() {
-+ echo "Show the current provider in use for ${ALTERNATIVE}"
-+}
-+
-+do_show() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local current="$(get_current_provider)"
-+ if [[ -z "${current}" ]] ; then
-+ echo "(none)"
-+ return 2
-+ fi
-+ echo "${current}"
-+}
-+
-+options_show() {
-+ :
-+}
-+
-+### list action ###
-+describe_list() {
-+ echo "Lists all available providers for ${ALTERNATIVE}"
-+}
-+
-+do_list() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local n cur= providers=( $(get_providers) )
-+ write_list_start "Available providers for ${ALTERNATIVE}:"
-+
-+ cur="$(get_current_provider)"
-+
-+ if [[ -n "${providers[@]}" ]] ; then
-+ for (( n = 0 ; n < ${#providers[@]} ; ++n )) ; do
-+ [[ ${cur} == "${providers[${n}]}" ]] && \
-+ providers[${n}]="${providers[${n}]} $(highlight '*')"
-+ done
-+ write_numbered_list "${providers[@]}"
-+ else
-+ write_kv_list_entry "(none found)" ""
-+ fi
-+}
-+
-+options_list() {
-+ :
-+}
-+
-+### files action ###
-+describe_files() {
-+ echo "Lists symlinks provided by the currently selected provider"
-+}
-+
-+do_files() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local cur="$(get_current_provider)" p=
-+ [[ -n "${cur}" ]] || die -q "No selected provider, hence no symlinks provided"
-+ local dieprefix="Could not list symlinks provided for ${ALTERNATIVE}"
-+
-+ local errors symlink rootsymlink
-+ while read -r -d '' symlink; do
-+ rootsymlink="${EROOT}${symlink}"
-+ rootsymlink=${rootsymlink//+(\/)/\/}
-+ echo "${rootsymlink}"
-+ if [[ -L ${rootsymlink} ]]; then
-+ if [[ ! -e ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} is dangling symlink"
-+ errors=yes
-+ fi
-+ elif [[ -d ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} is a directory"
-+ errors=yes
-+ elif [[ -e ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} exists but is not a symlink"
-+ errors=yes
-+ else
-+ write_error_msg "${rootsymlink} does not exist"
-+ errors=yes
-+ fi
-+ done <"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+}
-+
-+options_files() {
-+ :
-+}
-+
-+### set action ###
-+
-+describe_set() {
-+ echo "Sets a provider for ${ALTERNATIVE}"
-+}
-+
-+describe_set_parameters() {
-+ echo "[ --force ] <provider>"
-+}
-+
-+describe_set_options() {
-+ echo "--force : overwrite or remove existing non-symlink files (but not directories) if necessary"
-+ echo "<provider> : the name of the provider to use or the index of the provider preceeded by a dash"
-+}
-+
-+do_set() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local force provider providers
-+ if [[ ${1} == --force ]]; then
-+ force=yes
-+ shift
-+ fi
-+
-+ if [[ ${1} == -+([[:digit:]]) ]]; then
-+ providers=( $(get_providers) )
-+ (( ${1#-} <= ${#providers[@]} )) || die -q "The given provider with index (${1#-}) does not exist"
-+ provider=${providers[${1#-}-1]}
-+ else
-+ provider="${1}"
-+ fi
-+ [[ -z "${provider}" ]] && die -q "Missing required parameter 'provider'"
-+ local dieprefix="Could not set provider ${provider} for alternative ${ALTERNATIVE}"
-+
-+ if [[ ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ]] ; then
-+ if is_number ${provider} ; then
-+ providers=( $(get_providers) )
-+ [[ -n ${providers[${1#-}-1]} ]] &&
-+ die -q "The given provider (${provider}) does not exist, did you mean -${provider} (${providers[${1#-}-1]})?"
-+ fi
-+ die -q "The given provider (${provider}) does not exist"
-+ fi
-+
-+ local symlink newsymlinks=() oldsymlinks=()
-+
-+ while read -r -d '' symlink; do
-+ local nicesymlink=${symlink#.}
-+ nicesymlink=${nicesymlink//+(\/)/\/}
-+ [[ ${nicesymlink} == /* ]] || die "${dieprefix}: bad symlink ${symlink}?"
-+ [[ ${nicesymlink} == */ ]] && die "${dieprefix}: bad symlink ${symlink}?"
-+
-+ newsymlinks+=( "${nicesymlink}" )
-+ done < <(
-+ cd "${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}" || die "${dieprefix}: cd failed"
-+ find . -type l -print0 | LC_ALL=C sort -r -u -z)
-+ [[ ${#newsymlinks[@]} -gt 0 ]] || die "${dieprefix}: does not provide any symlinks?"
-+
-+ if [[ -f ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list ]]; then
-+ while read -r -d '' symlink; do
-+ local nicesymlink=${symlink//+(\/)/\/}
-+ [[ ${nicesymlink} == /* ]] || die "${dieprefix}: old provider ${oldcur} provides bad symlink ${symlink}?"
-+ [[ ${nicesymlink} == */ ]] && die "${dieprefix}: old provider ${oldcur} provides bad symlink ${symlink}?"
-+
-+ oldsymlinks+=( "${nicesymlink}" )
-+ done < <(LC_ALL=C sort -r -u -z "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list")
-+ [[ ${#oldsymlinks[@]} -gt 0 ]] || die "${dieprefix}: old provider ${oldcur} does not provide any symlinks?"
-+
-+ elif [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list || -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list is not a file"
-+ fi
-+
-+ local pass errors=
-+ for pass in check perform; do
-+ local -i new_i=0 old_i=0
-+ while [[ -n ${newsymlinks[new_i]} || -n ${oldsymlinks[old_i]} ]]; do
-+
-+ if ( LC_ALL=C; [[ ${newsymlinks[new_i]} < ${oldsymlinks[old_i]} ]] ); then
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ write_error_msg "Can't remove ${EROOT}${oldsymlinks[old_i]}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Removing ${EROOT}${oldsymlinks[old_i]} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to remove ${EROOT}${oldsymlinks[old_i]}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ rm -f "${ROOT}${oldsymlinks[old_i]}" || die "${dieprefix}: rm failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+
-+ old_i+=1
-+
-+ else
-+ local target=${ALTERNATIVESDIR_ROOTLESS#/}/${ALTERNATIVE}/_current${newsymlinks[new_i]} dir=${newsymlinks[new_i]%/*}
-+ while [[ -n ${dir} ]]; do
-+ target=../${target}
-+ dir=${dir%/*}
-+ done
-+
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${newsymlinks[new_i]} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${newsymlinks[new_i]} ]]; then
-+ write_error_msg "Can't overwrite ${EROOT}${newsymlinks[new_i]}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${newsymlinks[new_i]} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Overwriting ${EROOT}${newsymlinks[new_i]} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to overwrite ${EROOT}${newsymlinks[new_i]}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ mkdir -p "${EROOT}${newsymlinks[new_i]%/*}" || die "${dieprefix}: mkdir -p failed"
-+ ln -snf "${target#/}" "${EROOT}${newsymlinks[new_i]}" || die "${dieprefix}: ln -snf failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+
-+ [[ ${newsymlinks[new_i]} == ${oldsymlinks[old_i]} ]] && old_i+=1
-+ new_i+=1
-+ fi
-+ done
-+
-+ [[ -n ${errors} ]] && die "${dieprefix}: see previous errors"
-+ done
-+
-+ local oldcur="$(get_current_provider)"
-+ ln -snf "${provider}" "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current" || die "${dieprefix}: ln -snf failed"
-+
-+ : >"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list" || die "${dieprefix}: emptying/creating _current_list failed"
-+ for symlink in "${newsymlinks[@]}"; do
-+ echo -n -e "${symlink}\\0" >>"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list" || die "${dieprefix}: appending ${symlink} to _current_list failed"
-+ done
-+ return 0
-+}
-+
-+_options_parameters() {
-+ [[ -n ${2} && ${2} != --descriptions ]] && die -q "Unrecognised option ${2}"
-+ local describe_func=describe_${1#options_}_options descriptions=${2} opt options oldifs=$IFS
-+ if is_function ${describe_func}; then
-+ IFS=$'\n'
-+ options=( $(${describe_func}) )
-+ IFS=$oldifs
-+ for opt in "${options[@]}"; do
-+ [[ ${opt} == --* ]] || continue
-+ if [[ -n ${descriptions} ]]; then
-+ echo "${opt/ : /:}"
-+ else
-+ echo "${opt%% : *}"
-+ fi
-+ done
-+ fi
-+}
-+
-+options_set() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+### update action ###
-+
-+describe_update() {
-+ echo "Set a default provider if no valid one currently exists"
-+}
-+
-+describe_update_parameters() {
-+ echo "[--ignore] <provider>"
-+}
-+
-+describe_update_options() {
-+ echo "--ignore : update to any valid provider EXCEPT the specified provider"
-+ echo "<provider> : the name of the provider to use"
-+}
-+
-+do_update() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local p cur=$(get_current_provider) providers=( $(get_providers) ) ignore
-+ if [[ "--ignore" == ${1} ]] ; then
-+ # Try everything except setting the provider to the given
-+ # one. So, if it isn't the given one, we end up doing
-+ # nothing. Bug #128
-+ shift
-+ ignore=${1}
-+ fi
-+
-+ if [[ ${cur} == ${1} && -z ${ignore} ]]; then
-+ # if current provider was just updated, reselect it since it could have changed
-+ do_set "${cur}" && return 0
-+ elif [[ -n ${cur} && ${cur} != ${ignore} ]] ; then
-+ # verify existing provider's symlinks
-+ local p= bad=0
-+ while read -r -d '' p ; do
-+ [[ -L "${EROOT}${p}" && -e "${EROOT}${p}" ]] || (( bad++ ))
-+ done < "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+
-+ [[ "${bad}" -eq 0 ]] && return 0
-+ # fix existing provider if possible
-+ has "${cur}" "${providers[@]}" && do_set "${cur}" && return 0
-+ elif has "${1}" "${providers[@]}" && [[ -z ${ignore} ]] ; then
-+ # switch to new provider if none was set before or it can't be fixed
-+ do_set "${1}" && return 0
-+ fi
-+
-+ # if no valid provider has been selected switch to first available, valid
-+ # provider, sorted according to importance
-+ for p in "${providers[@]}"; do
-+ [[ ${ignore} != ${p} ]] && do_set "${p}" && return 0
-+ done
-+
-+ # if a provider is set but no providers are available anymore cleanup
-+ cur=$(get_current_provider)
-+ if [[ -n ${cur} ]]; then
-+ do_unset "${cur}" && return 2
-+ fi
-+ # if no provider is set and none are available that are not ignored, return 2 for cleanup
-+ [[ -z ${providers[@]} || ${providers[@]} == ${ignore} ]] && return 2
-+
-+ # we tried everything to select a valid provider, but failed
-+ return 1
-+}
-+
-+options_update() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+### unset action ###
-+
-+describe_unset() {
-+ echo "Unset any symlinks created for the current provider for ${ALTERNATIVE}."
-+}
-+
-+describe_unset_parameters() {
-+ echo "[ --force ]"
-+}
-+
-+describe_unset_options() {
-+ echo "--force : remove existing non-symlink files (but not directories) if necessary"
-+}
-+
-+do_unset() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local force=
-+ if [[ ${1} == --force ]]; then
-+ force=yes
-+ shift
-+ fi
-+
-+ local cur="$(get_current_provider)" p=
-+ [[ -n "${cur}" ]] || die -q "Nothing to unset"
-+ local dieprefix="Could not unset provider for ${ALTERNATIVE}"
-+
-+ local one=false symlink pass errors=
-+ for pass in check perform; do
-+ while read -r -d '' symlink; do
-+ one=true
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${symlink} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${symlink} ]]; then
-+ write_error_msg "Can't remove ${EROOT}${symlink}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${symlink} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Removing ${EROOT}${symlink} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to remove ${EROOT}${symlink}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ rm -f "${EROOT}${symlink}" || die "${dieprefix}: rm failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+ done <"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+
-+ [[ -n ${errors} ]] && die "${dieprefix}: see previous errors"
-+ done
-+
-+ ${one} || die "${dieprefix}: does not provide any symlinks?"
-+
-+ rm "${ALTERNATIVESDIR}/${ALTERNATIVE}"/{_current,_current_list} || die "${dieprefix}: rm failed"
-+}
-+
-+options_unset() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_current_provider
-+}
-+
-+### script action ###
-+
-+describe_script() {
-+ echo "Output an evalable script fragment to set PATH, LD_LIBRARY_PATH and MANPATH to use the specified provider"
-+}
-+
-+describe_script_parameters() {
-+ echo "[--sh | --csh] [<provider>]"
-+}
-+
-+describe_script_options() {
-+ echo "--sh : use Bourne shell syntax (default)"
-+ echo "--csh : use C shell syntax"
-+ echo "<provider> : the provider to use or the index of the provider preceeded by a dash (if not specified, use the system default)"
-+}
-+
-+do_script() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local syntax=sh provider providers
-+ if [[ ${1} == --sh ]]; then
-+ shift
-+ elif [[ ${1} == --csh ]]; then
-+ syntax=csh
-+ shift
-+ fi
-+
-+ if [[ ${1} == -+([[:digit:]]) ]]; then
-+ providers=( $(get_providers) )
-+ (( ${1#-} <= ${#providers[@]} )) || die -q "The given provider with index (${1#-}) does not exist"
-+ provider=${providers[${1#-}-1]}
-+ else
-+ provider="${1}"
-+ fi
-+ [[ -z "${provider}" ]] && die -q "Missing required parameter 'provider'"
-+
-+ if [[ ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ]] ; then
-+ if is_number ${provider} ; then
-+ providers=( $(get_providers) )
-+ [[ -n ${providers[${1#-}-1]} ]] &&
-+ die -q "The given provider (${provider}) does not exist, did you mean -${provider} (${providers[${1#-}-1]})?"
-+ fi
-+ die -q "The given provider (${provider}) does not exist"
-+ fi
-+
-+ local variables=( PATH LD_LIBRARY_PATH MANPATH )
-+ [[ -n ${!default_*} ]] && local ${!default_*}
-+ local default_LD_LIBRARY_PATH=$(grep '^[^#]' "${EROOT}"/etc/ld.so.conf | tr '\n' ':')/lib:/usr/lib
-+ local default_MANPATH=$(MANPATH= man -C"${EROOT}"/etc/man.conf -w)
-+
-+ local var IFS=:
-+ for var in "${variables[@]}"; do
-+ local defvar=default_${var} path paths=( )
-+ for path in ${!var}; do
-+ [[ ${path} == ${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/* ]] && continue
-+ [[ -n ${provider} && -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}/${path#/} ]] && paths+=( "${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/${provider}/${path#/}" )
-+ paths+=( "${path}" )
-+ done
-+
-+ [[ -n ${provider} ]] && for path in ${!defvar}; do
-+ [[ -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}/${path#/} ]] && paths+=( "${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/${provider}/${path#/}" )
-+ done
-+
-+ local newval=${paths[*]}
-+ if [[ ${newval} != ${!var} ]]; then
-+ newval=${newval//\'/\'\\\'\'}
-+ if [[ ${syntax} == sh ]]; then
-+ echo "${var}='${newval}'; export ${var}"
-+ else
-+ echo "setenv ${var} '${newval}'"
-+ fi
-+ fi
-+ done
-+}
-+
-+options_script() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+# vim: set ft=eselect sw=4 sts=4 ts=4 et tw=80 :
diff --git a/app-admin/eselect/files/eselect-alternatives.patch b/app-admin/eselect/files/eselect-alternatives.patch
deleted file mode 100644
index 13f05935e..000000000
--- a/app-admin/eselect/files/eselect-alternatives.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-Index: bin/eselect.in
-===================================================================
---- bin/eselect.in (revision 863)
-+++ bin/eselect.in (working copy)
-@@ -22,10 +22,15 @@
- # Where are modules installed by default?
- ESELECT_DEFAULT_MODULES_PATH="${ESELECT_DATA_PATH}/modules"
-
-+# Where are auto-generated modules placed? (e.g. from alternatives-2.eclass)
-+ESELECT_AUTO_GENERATED_MODULES_PATH="${ESELECT_DEFAULT_MODULES_PATH}/auto"
-+
- # Look in these places for modules
--ESELECT_MODULES_PATH=( \
-- "${HOME}/.eselect/modules" \
-- "${ESELECT_DEFAULT_MODULES_PATH}" )
-+ESELECT_MODULES_PATH=(
-+ "${HOME}/.eselect/modules"
-+ "${ESELECT_DEFAULT_MODULES_PATH}"
-+ "${ESELECT_AUTO_GENERATED_MODULES_PATH}"
-+)
-
- # Look in this place for libraries
- ESELECT_CORE_PATH="${ESELECT_DATA_PATH}/libs"
-Index: bin/Makefile.am
-===================================================================
---- bin/Makefile.am (revision 863)
-+++ bin/Makefile.am (working copy)
-@@ -4,6 +4,7 @@
- dosed = @SED@ -e 's,\@BASH\@,$(BASH),g' \
- -e 's,\@DATADIR\@,$(datadir),g' \
- -e 's,\@EPREFIX\@,$(EPREFIX),g' \
-+ -e 's,\@LIBEXECDIR\@,$(datadir),g' \
- -e 's,\@VERSION\@,$(VERSION),g'
-
- % : %.in
-Index: libs/Makefile.am
-===================================================================
---- libs/Makefile.am (revision 863)
-+++ libs/Makefile.am (working copy)
-@@ -1,6 +1,7 @@
- eselectlibsdir = $(datadir)/$(PACKAGE_NAME)/libs/
-
- eselectlibs_DATA = \
-+ alternatives.bash \
- config.bash \
- core.bash \
- default.eselect \
-@@ -14,6 +15,7 @@
- tests.bash
-
- EXTRA_DIST = \
-+ alternatives.bash.in \
- config.bash.in \
- core.bash.in \
- default.eselect.in \
-@@ -30,7 +32,8 @@
- -e 's,\@SED\@,@SED@,g' \
- -e 's,\@PORTAGEQ\@,@PORTAGEQ@,g' \
- -e 's,\@ENV_UPDATE\@,@ENV_UPDATE@,g' \
-- -e 's,\@CANONICALISE\@,@CANONICALISE@,g'
-+ -e 's,\@CANONICALISE\@,@CANONICALISE@,g' \
-+ -e 's,\@sysconfdir\@,@sysconfdir@,g'
-
- %.bash : %.bash.in
- @$(dosed) $< > $@
---- libs/alternatives.bash.in.orig 1970-01-01 01:00:00.000000000 +0100
-+++ libs/alternatives.bash.in 2011-09-06 18:55:43.000000000 +0100
-@@ -0,0 +1,550 @@
-+# Copyright 2008 Mike Kelly
-+# Copyright 2009 David Leverton
-+# Copyright 2010 Bo Ørsted Andresen
-+# 2010: Adapted to eselect Sebastien Fabbro (who doesn't like copyrights)
-+# Distributed under the terms of the GNU General Public License v2
-+
-+inherit config output path-manipulation
-+
-+ALTERNATIVESDIR_ROOTLESS="@sysconfdir@/env.d/alternatives"
-+ALTERNATIVESDIR="${EROOT}${ALTERNATIVESDIR_ROOTLESS}"
-+
-+get_current_provider() {
-+ local dieprefix="Could not determine current provider for ${ALTERNATIVE}"
-+ if [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current ]]; then
-+ local provider=$(readlink "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current" || die "${dieprefix}: readlink ${symlink} failed")
-+ [[ ${provider} == */* ]] && die "${dieprefix}: malformed target for ${symlink}"
-+
-+ if [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ||
-+ ( -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} && ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ) ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} is not a directory"
-+ fi
-+
-+ echo "${provider}"
-+
-+ elif [[ -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current is not a symlink"
-+ fi
-+}
-+
-+compare_importance() {
-+ local IFS=.
-+ local a=( ${1} ) b=( ${2} )
-+ local -i i=0
-+ while (( i<${#a[@]} && i<${#b[@]} )); do
-+ if (( a[i]<b[i] )); then
-+ return 0
-+ elif (( a[i]>b[i] )); then
-+ return 1
-+ fi
-+ i+=1
-+ done
-+ (( i<${#b[@]} ))
-+}
-+
-+sort_providers() {
-+ local begin=${1:-0}
-+ local count=${2:-${#providers[@]}}
-+ [[ ${count} -le 1 ]] && return 0
-+ sort_providers ${begin} $((count/2))
-+ sort_providers $((begin+count/2)) $((count-count/2))
-+ local left=( "${providers[@]:begin:count/2}" )
-+ local right=( "${providers[@]:begin+count/2:count-count/2}" )
-+ local -i x i=0 j=0
-+ for (( x=begin; x<begin+count; ++x )); do
-+ if (( j>=${#right[@]} )) || { (( i<${#left[@]} )) && compare_importance "${left[i]%%:*}" "${right[j]%%:*}"; }; then
-+ providers[x]=${left[i++]}
-+ else
-+ providers[x]=${right[j++]}
-+ fi
-+ done
-+}
-+
-+get_providers() {
-+ local p= importance providers=()
-+ for p in "${ALTERNATIVESDIR}/${ALTERNATIVE}"/* ; do
-+ [[ -d ${p} && ! -L ${p} ]] || continue
-+ p=${p##*/}
-+
-+ importance=$(< "${ALTERNATIVESDIR}/${ALTERNATIVE}/${p}/_importance")
-+ importance=${importance:-0}
-+ [[ "${importance}" =~ ^[0123456789]+(\.[0123456789]+)*$ ]] || die "_importance (${importance}) for ${p} is not a dot-separated list of integers"
-+
-+ providers+=( "${importance}:${p}" )
-+ done
-+
-+ sort_providers
-+ for (( p=${#providers[@]}-1 ; p>=0 ; --p )); do
-+ echo "${providers[p]#*:}"
-+ done
-+}
-+
-+### show action ###
-+describe_show() {
-+ echo "Show the current provider in use for ${ALTERNATIVE}"
-+}
-+
-+do_show() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local current="$(get_current_provider)"
-+ if [[ -z "${current}" ]] ; then
-+ echo "(none)"
-+ return 2
-+ fi
-+ echo "${current}"
-+}
-+
-+options_show() {
-+ :
-+}
-+
-+### list action ###
-+describe_list() {
-+ echo "Lists all available providers for ${ALTERNATIVE}"
-+}
-+
-+do_list() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local n cur= providers=( $(get_providers) )
-+ write_list_start "Available providers for ${ALTERNATIVE}:"
-+
-+ cur="$(get_current_provider)"
-+
-+ if [[ -n "${providers[@]}" ]] ; then
-+ for (( n = 0 ; n < ${#providers[@]} ; ++n )) ; do
-+ [[ ${cur} == "${providers[${n}]}" ]] && \
-+ providers[${n}]="${providers[${n}]} $(highlight '*')"
-+ done
-+ write_numbered_list "${providers[@]}"
-+ else
-+ write_kv_list_entry "(none found)" ""
-+ fi
-+}
-+
-+options_list() {
-+ :
-+}
-+
-+### files action ###
-+describe_files() {
-+ echo "Lists symlinks provided by the currently selected provider"
-+}
-+
-+do_files() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local cur="$(get_current_provider)" p=
-+ [[ -n "${cur}" ]] || die -q "No selected provider, hence no symlinks provided"
-+ local dieprefix="Could not list symlinks provided for ${ALTERNATIVE}"
-+
-+ local errors symlink rootsymlink
-+ while read -r -d '' symlink; do
-+ rootsymlink="${EROOT}${symlink}"
-+ rootsymlink=${rootsymlink//+(\/)/\/}
-+ echo "${rootsymlink}"
-+ if [[ -L ${rootsymlink} ]]; then
-+ if [[ ! -e ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} is dangling symlink"
-+ errors=yes
-+ fi
-+ elif [[ -d ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} is a directory"
-+ errors=yes
-+ elif [[ -e ${rootsymlink} ]]; then
-+ write_error_msg "${rootsymlink} exists but is not a symlink"
-+ errors=yes
-+ else
-+ write_error_msg "${rootsymlink} does not exist"
-+ errors=yes
-+ fi
-+ done <"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+}
-+
-+options_files() {
-+ :
-+}
-+
-+### set action ###
-+
-+describe_set() {
-+ echo "Sets a provider for ${ALTERNATIVE}"
-+}
-+
-+describe_set_parameters() {
-+ echo "[ --force ] <provider>"
-+}
-+
-+describe_set_options() {
-+ echo "--force : overwrite or remove existing non-symlink files (but not directories) if necessary"
-+ echo "<provider> : the name of the provider to use or the index of the provider preceeded by a dash"
-+}
-+
-+do_set() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local force provider providers
-+ if [[ ${1} == --force ]]; then
-+ force=yes
-+ shift
-+ fi
-+
-+ if [[ ${1} == -+([[:digit:]]) ]]; then
-+ providers=( $(get_providers) )
-+ (( ${1#-} <= ${#providers[@]} )) || die -q "The given provider with index (${1#-}) does not exist"
-+ provider=${providers[${1#-}-1]}
-+ else
-+ provider="${1}"
-+ fi
-+ [[ -z "${provider}" ]] && die -q "Missing required parameter 'provider'"
-+ local dieprefix="Could not set provider ${provider} for alternative ${ALTERNATIVE}"
-+
-+ if [[ ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ]] ; then
-+ if is_number ${provider} ; then
-+ providers=( $(get_providers) )
-+ [[ -n ${providers[${1#-}-1]} ]] &&
-+ die -q "The given provider (${provider}) does not exist, did you mean -${provider} (${providers[${1#-}-1]})?"
-+ fi
-+ die -q "The given provider (${provider}) does not exist"
-+ fi
-+
-+ local symlink newsymlinks=() oldsymlinks=()
-+
-+ while read -r -d '' symlink; do
-+ local nicesymlink=${symlink#.}
-+ nicesymlink=${nicesymlink//+(\/)/\/}
-+ [[ ${nicesymlink} == /* ]] || die "${dieprefix}: bad symlink ${symlink}?"
-+ [[ ${nicesymlink} == */ ]] && die "${dieprefix}: bad symlink ${symlink}?"
-+
-+ newsymlinks+=( "${nicesymlink}" )
-+ done < <(
-+ cd "${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}" || die "${dieprefix}: cd failed"
-+ find . -type l -print0 | LC_ALL=C sort -r -u -z)
-+ [[ ${#newsymlinks[@]} -gt 0 ]] || die "${dieprefix}: does not provide any symlinks?"
-+
-+ if [[ -f ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list ]]; then
-+ while read -r -d '' symlink; do
-+ local nicesymlink=${symlink//+(\/)/\/}
-+ [[ ${nicesymlink} == /* ]] || die "${dieprefix}: old provider ${oldcur} provides bad symlink ${symlink}?"
-+ [[ ${nicesymlink} == */ ]] && die "${dieprefix}: old provider ${oldcur} provides bad symlink ${symlink}?"
-+
-+ oldsymlinks+=( "${nicesymlink}" )
-+ done < <(LC_ALL=C sort -r -u -z "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list")
-+ [[ ${#oldsymlinks[@]} -gt 0 ]] || die "${dieprefix}: old provider ${oldcur} does not provide any symlinks?"
-+
-+ elif [[ -L ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list || -e ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list ]]; then
-+ die "${dieprefix}: ${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list is not a file"
-+ fi
-+
-+ local pass errors=
-+ for pass in check perform; do
-+ local -i new_i=0 old_i=0
-+ while [[ -n ${newsymlinks[new_i]} || -n ${oldsymlinks[old_i]} ]]; do
-+
-+ if ( LC_ALL=C; [[ ${newsymlinks[new_i]} < ${oldsymlinks[old_i]} ]] ); then
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ write_error_msg "Can't remove ${EROOT}${oldsymlinks[old_i]}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${oldsymlinks[old_i]} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Removing ${EROOT}${oldsymlinks[old_i]} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to remove ${EROOT}${oldsymlinks[old_i]}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ rm -f "${ROOT}${oldsymlinks[old_i]}" || die "${dieprefix}: rm failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+
-+ old_i+=1
-+
-+ else
-+ local target=${ALTERNATIVESDIR_ROOTLESS#/}/${ALTERNATIVE}/_current${newsymlinks[new_i]} dir=${newsymlinks[new_i]%/*}
-+ while [[ -n ${dir} ]]; do
-+ target=../${target}
-+ dir=${dir%/*}
-+ done
-+
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${newsymlinks[new_i]} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${newsymlinks[new_i]} ]]; then
-+ write_error_msg "Can't overwrite ${EROOT}${newsymlinks[new_i]}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${newsymlinks[new_i]} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Overwriting ${EROOT}${newsymlinks[new_i]} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to overwrite ${EROOT}${newsymlinks[new_i]}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ mkdir -p "${EROOT}${newsymlinks[new_i]%/*}" || die "${dieprefix}: mkdir -p failed"
-+ ln -snf "${target#/}" "${EROOT}${newsymlinks[new_i]}" || die "${dieprefix}: ln -snf failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+
-+ [[ ${newsymlinks[new_i]} == ${oldsymlinks[old_i]} ]] && old_i+=1
-+ new_i+=1
-+ fi
-+ done
-+
-+ [[ -n ${errors} ]] && die "${dieprefix}: see previous errors"
-+ done
-+
-+ local oldcur="$(get_current_provider)"
-+ ln -snf "${provider}" "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current" || die "${dieprefix}: ln -snf failed"
-+
-+ : >"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list" || die "${dieprefix}: emptying/creating _current_list failed"
-+ for symlink in "${newsymlinks[@]}"; do
-+ echo -n -e "${symlink}\\0" >>"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list" || die "${dieprefix}: appending ${symlink} to _current_list failed"
-+ done
-+ return 0
-+}
-+
-+_options_parameters() {
-+ [[ -n ${2} && ${2} != --descriptions ]] && die -q "Unrecognised option ${2}"
-+ local describe_func=describe_${1#options_}_options descriptions=${2} opt options oldifs=$IFS
-+ if is_function ${describe_func}; then
-+ IFS=$'\n'
-+ options=( $(${describe_func}) )
-+ IFS=$oldifs
-+ for opt in "${options[@]}"; do
-+ [[ ${opt} == --* ]] || continue
-+ if [[ -n ${descriptions} ]]; then
-+ echo "${opt/ : /:}"
-+ else
-+ echo "${opt%% : *}"
-+ fi
-+ done
-+ fi
-+}
-+
-+options_set() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+### update action ###
-+
-+describe_update() {
-+ echo "Set a default provider if no valid one currently exists"
-+}
-+
-+describe_update_parameters() {
-+ echo "[--ignore] <provider>"
-+}
-+
-+describe_update_options() {
-+ echo "--ignore : update to any valid provider EXCEPT the specified provider"
-+ echo "<provider> : the name of the provider to use"
-+}
-+
-+do_update() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local p cur=$(get_current_provider) providers=( $(get_providers) ) ignore
-+ if [[ "--ignore" == ${1} ]] ; then
-+ # Try everything except setting the provider to the given
-+ # one. So, if it isn't the given one, we end up doing
-+ # nothing. Bug #128
-+ shift
-+ ignore=${1}
-+ fi
-+
-+ if [[ ${cur} == ${1} && -z ${ignore} ]]; then
-+ # if current provider was just updated, reselect it since it could have changed
-+ do_set "${cur}" && return 0
-+ elif [[ -n ${cur} && ${cur} != ${ignore} ]] ; then
-+ # verify existing provider's symlinks
-+ local p= bad=0
-+ while read -r -d '' p ; do
-+ [[ -L "${EROOT}${p}" && -e "${EROOT}${p}" ]] || (( bad++ ))
-+ done < "${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+
-+ [[ "${bad}" -eq 0 ]] && return 0
-+ # fix existing provider if possible
-+ has "${cur}" "${providers[@]}" && do_set "${cur}" && return 0
-+ elif has "${1}" "${providers[@]}" && [[ -z ${ignore} ]] ; then
-+ # switch to new provider if none was set before or it can't be fixed
-+ do_set "${1}" && return 0
-+ fi
-+
-+ # if no valid provider has been selected switch to first available, valid
-+ # provider, sorted according to importance
-+ for p in "${providers[@]}"; do
-+ [[ ${ignore} != ${p} ]] && do_set "${p}" && return 0
-+ done
-+
-+ # if a provider is set but no providers are available anymore cleanup
-+ cur=$(get_current_provider)
-+ if [[ -n ${cur} ]]; then
-+ do_unset "${cur}" && return 2
-+ fi
-+ # if no provider is set and none are available that are not ignored, return 2 for cleanup
-+ [[ -z ${providers[@]} || ${providers[@]} == ${ignore} ]] && return 2
-+
-+ # we tried everything to select a valid provider, but failed
-+ return 1
-+}
-+
-+options_update() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+### unset action ###
-+
-+describe_unset() {
-+ echo "Unset any symlinks created for the current provider for ${ALTERNATIVE}."
-+}
-+
-+describe_unset_parameters() {
-+ echo "[ --force ]"
-+}
-+
-+describe_unset_options() {
-+ echo "--force : remove existing non-symlink files (but not directories) if necessary"
-+}
-+
-+do_unset() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+
-+ local force=
-+ if [[ ${1} == --force ]]; then
-+ force=yes
-+ shift
-+ fi
-+
-+ local cur="$(get_current_provider)" p=
-+ [[ -n "${cur}" ]] || die -q "Nothing to unset"
-+ local dieprefix="Could not unset provider for ${ALTERNATIVE}"
-+
-+ local one=false symlink pass errors=
-+ for pass in check perform; do
-+ while read -r -d '' symlink; do
-+ one=true
-+ if [[ ${pass} == check ]]; then
-+ if [[ -L ${EROOT}${symlink} ]]; then
-+ :
-+ elif [[ -d ${EROOT}${symlink} ]]; then
-+ write_error_msg "Can't remove ${EROOT}${symlink}: is a directory${force:+ which is a fatal error that cannot be ignored by --force}"
-+ errors=yes
-+ elif [[ -e ${EROOT}${symlink} ]]; then
-+ if [[ -n ${force} ]]; then
-+ write_warning_msg "Removing ${EROOT}${symlink} due to --force: is not a symlink"
-+ else
-+ write_error_msg "Refusing to remove ${EROOT}${symlink}: is not a symlink (use --force to override)"
-+ errors=yes
-+ fi
-+ fi
-+
-+ elif [[ ${pass} == perform ]]; then
-+ rm -f "${EROOT}${symlink}" || die "${dieprefix}: rm failed"
-+ else
-+ die "${dieprefix}: unknown \${pass} ${pass}???"
-+ fi
-+ done <"${ALTERNATIVESDIR}/${ALTERNATIVE}/_current_list"
-+
-+ [[ -n ${errors} ]] && die "${dieprefix}: see previous errors"
-+ done
-+
-+ ${one} || die "${dieprefix}: does not provide any symlinks?"
-+
-+ rm "${ALTERNATIVESDIR}/${ALTERNATIVE}"/{_current,_current_list} || die "${dieprefix}: rm failed"
-+}
-+
-+options_unset() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_current_provider
-+}
-+
-+### script action ###
-+
-+describe_script() {
-+ echo "Output an evalable script fragment to set PATH, LD_LIBRARY_PATH and MANPATH to use the specified provider"
-+}
-+
-+describe_script_parameters() {
-+ echo "[--sh | --csh] [<provider>]"
-+}
-+
-+describe_script_options() {
-+ echo "--sh : use Bourne shell syntax (default)"
-+ echo "--csh : use C shell syntax"
-+ echo "<provider> : the provider to use or the index of the provider preceeded by a dash (if not specified, use the system default)"
-+}
-+
-+do_script() {
-+ [[ -z "${ALTERNATIVE}" ]] && die "Need to set ALTERNATIVE in the eselect module"
-+ local syntax=sh provider providers
-+ if [[ ${1} == --sh ]]; then
-+ shift
-+ elif [[ ${1} == --csh ]]; then
-+ syntax=csh
-+ shift
-+ fi
-+
-+ if [[ ${1} == -+([[:digit:]]) ]]; then
-+ providers=( $(get_providers) )
-+ (( ${1#-} <= ${#providers[@]} )) || die -q "The given provider with index (${1#-}) does not exist"
-+ provider=${providers[${1#-}-1]}
-+ else
-+ provider="${1}"
-+ fi
-+ [[ -z "${provider}" ]] && die -q "Missing required parameter 'provider'"
-+
-+ if [[ ! -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider} ]] ; then
-+ if is_number ${provider} ; then
-+ providers=( $(get_providers) )
-+ [[ -n ${providers[${1#-}-1]} ]] &&
-+ die -q "The given provider (${provider}) does not exist, did you mean -${provider} (${providers[${1#-}-1]})?"
-+ fi
-+ die -q "The given provider (${provider}) does not exist"
-+ fi
-+
-+ local variables=( PATH LD_LIBRARY_PATH MANPATH )
-+ [[ -n ${!default_*} ]] && local ${!default_*}
-+ local default_LD_LIBRARY_PATH=$(grep '^[^#]' "${EROOT}"/etc/ld.so.conf | tr '\n' ':')/lib:/usr/lib
-+ local default_MANPATH=$(MANPATH= man -C"${EROOT}"/etc/man.conf -w)
-+
-+ local var IFS=:
-+ for var in "${variables[@]}"; do
-+ local defvar=default_${var} path paths=( )
-+ for path in ${!var}; do
-+ [[ ${path} == ${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/* ]] && continue
-+ [[ -n ${provider} && -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}/${path#/} ]] && paths+=( "${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/${provider}/${path#/}" )
-+ paths+=( "${path}" )
-+ done
-+
-+ [[ -n ${provider} ]] && for path in ${!defvar}; do
-+ [[ -d ${ALTERNATIVESDIR}/${ALTERNATIVE}/${provider}/${path#/} ]] && paths+=( "${ALTERNATIVESDIR_ROOTLESS}/${ALTERNATIVE}/${provider}/${path#/}" )
-+ done
-+
-+ local newval=${paths[*]}
-+ if [[ ${newval} != ${!var} ]]; then
-+ newval=${newval//\'/\'\\\'\'}
-+ if [[ ${syntax} == sh ]]; then
-+ echo "${var}='${newval}'; export ${var}"
-+ else
-+ echo "setenv ${var} '${newval}'"
-+ fi
-+ fi
-+ done
-+}
-+
-+options_script() {
-+ _options_parameters $FUNCNAME "$@"
-+ get_providers
-+}
-+
-+# vim: set ft=eselect sw=4 sts=4 ts=4 et tw=80 :