summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-shells/bash-completion
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-shells/bash-completion')
-rw-r--r--app-shells/bash-completion/Manifest5
-rw-r--r--app-shells/bash-completion/bash-completion-1.3-r2.ebuild90
-rw-r--r--app-shells/bash-completion/bash-completion-2.1-r2.ebuild118
-rw-r--r--app-shells/bash-completion/bash-completion-2.1-r91.ebuild93
-rw-r--r--app-shells/bash-completion/bash-completion-2.1-r92.ebuild93
-rw-r--r--app-shells/bash-completion/bash-completion-2.1-r93.ebuild94
-rw-r--r--app-shells/bash-completion/bash-completion-2.1.ebuild100
-rw-r--r--app-shells/bash-completion/bash-completion-2.1_p20141224.ebuild93
-rw-r--r--app-shells/bash-completion/files/bash-completion.pc9
-rw-r--r--app-shells/bash-completion/files/bash-completion.sh-gentoo-1.252
-rw-r--r--app-shells/bash-completion/metadata.xml21
11 files changed, 768 insertions, 0 deletions
diff --git a/app-shells/bash-completion/Manifest b/app-shells/bash-completion/Manifest
new file mode 100644
index 000000000000..122e9b0264e7
--- /dev/null
+++ b/app-shells/bash-completion/Manifest
@@ -0,0 +1,5 @@
+DIST bash-completion-1.3.tar.bz2 211899 SHA256 8ebe30579f0f3e1a521013bcdd183193605dab353d7a244ff2582fb3a36f7bec SHA512 f0c6eb3edce982d1306fdb7ba2cb598c08cff4bde8496fca369b3c4d2d3af0ef48dd494ab96258cc90f30b875a56759aad13a6b1bfb4928bfba4634cce6bf8be WHIRLPOOL 9ea16b019eadcdcf60046b58d2c0f3ab68c189f461842d3d9f585ff25d8ba1bd48bf847868c2cc7e5475320d9c7aeaf21ce74818345c7fe648500549d51f29f8
+DIST bash-completion-2.1.tar.bz2 265329 SHA256 2b606804a7d5f823380a882e0f7b6c8a37b0e768e72c3d4107c51fbe8a46ae4f SHA512 0bc71039ef136b1ccb72527eb40f2ed4068a58dc31b1ac1ee52a40e7c950ea4cfbb4f1bee2f0da6774e56062578fa3653096e6d306eea7f028dd55ff737e92fe WHIRLPOOL 0275d8ac99a0ac5b12637bf2b13561d656b239ba7c166071cb283a481df2fdd904ad1c18608ea35b9af4f0f4db3b034f833f0fd586a0096626d1b268bcd8fc00
+DIST bash-completion-2.1_p20141224.tar.xz 257964 SHA256 a76ffdbc9f49f48e290f0e6f3d46060d51c770f91e25b35b014bc16fec76f517 SHA512 94649aad8dbf0f170422605a5f36c5cab61e45ce402a92f89a6eba3bd5d2e976087b35cd0a9b6d4d29ba608cee3bb27b692088c884b766447ee9eafa99c2814a WHIRLPOOL 0ea12dfc8f432ffed598aee65c7080de570ebe9783415c7ebe4bd5d152fc645a132fae3a28986c029d13a4b939e15053204d73ae9b207f4ad62b9c117bf59cba
+DIST bashcomp-2.0.1.tar.bz2 4078 SHA256 142348b61b32fb3f1580ac90b684b1014d6d177f371baadb503340c507f9a992 SHA512 8ac8982f418a2d71dffcf027ffe0b7eefa3ee49413a726a8ee9e758975d8f86c687a64b55cd94e09b7936d1c6990285ddc90a3c2b1989af44322937c5c4fb8d7 WHIRLPOOL b6daa0a93282e9df73635cbdddde97c473fd22aa3baf035c3ffcb5966152e20b26d85979fe8a5ecf9128157422f3f60dc27c82c843b9a0e6e80b7de7da596250
+DIST bashcomp2-pre1.tar.gz 3732 SHA256 fd201638bae06f134c243887cafe402ef0a21f9e62cca3966f405c249abc9eec SHA512 745801fe20c846cb0cdb044d712caacd75a2902c9dddc2261bdb179dcd826e5d1032d6b1f73340abe74dbb82d29b4386897291ccdf45d9bbd1fdb80a5f79fa45 WHIRLPOOL eb529c7263653b3e3e36c0cf29d44c57ce64bb2144f06ff7f2df569dd2ae66eb135b2ace5542c37cb100da8b3562b32ab61bcd9f5fd3cfbf67febf5e5086e04a
diff --git a/app-shells/bash-completion/bash-completion-1.3-r2.ebuild b/app-shells/bash-completion/bash-completion-1.3-r2.ebuild
new file mode 100644
index 000000000000..54f7bf39b263
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-1.3-r2.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=3
+inherit prefix
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+DEPEND=""
+RDEPEND="|| ( app-eselect/eselect-bashcomp <app-admin/eselect-1.3.7 )
+ || ( >=app-shells/bash-3.2 app-shells/zsh )
+ sys-apps/miscfiles"
+PDEPEND="app-shells/gentoo-bashcomp"
+
+src_prepare() {
+ cp "${FILESDIR}"/bash-completion.sh-gentoo-1.2 "${T}"/bash-completion.sh || die
+ eprefixify "${T}"/bash-completion.sh
+
+ find completions -name 'Makefile*' -exec rm -f {} +
+
+ # Part of >=sys-apps/util-linux-2.23 wrt #468544
+ rm -f completions/rtcwake
+}
+
+src_configure() { :; } # no-op
+src_compile() { :; } # no-op
+
+src_install() {
+ # Gentoo specific bash-completion.sh file.
+ insinto /etc/profile.d
+ doins "${T}"/bash-completion.sh || die
+
+ # All files from contrib/ in source package get installed
+ insinto /usr/share/bash-completion
+ doins -r "${S}"/completions/* || die
+
+ awk -v D="$ED" '
+ BEGIN { out=".pre" }
+ /^# A lot of the following one-liners/ { out="base" }
+ /^# start of section containing completion functions called by other functions/ { out=".pre" }
+ /^# start of section containing completion functions for external programs/ { out="base" }
+ /^# source completion directory/ { out="" }
+ /^unset -f have/ { out=".post" }
+ out != "" { print > D"/usr/share/bash-completion/"out }' \
+ bash_completion || die "failed to split bash_completion"
+
+ dodoc AUTHORS CHANGES README TODO || die "dodocs failes"
+
+ # This is backported from upstream 2.0 release. You can stop installing
+ # this file after 2.0 is in Portage and use the one from the tarball
+ # instead.
+ # Installed to datadir instead of libdir because bash-completion(s)
+ # are not ELF files.
+ insinto /usr/share/pkgconfig
+ doins "${FILESDIR}"/bash-completion.pc || die
+}
+
+pkg_postinst() {
+ elog "Any user can enable the module completions without editing their"
+ elog ".bashrc by running:"
+ elog
+ elog " eselect bashcomp enable <module>"
+ elog
+ elog "The system administrator can also be enable this globally with"
+ elog
+ elog " eselect bashcomp enable --global <module>"
+ elog
+ elog "Make sure you at least enable the base module! Additional completion"
+ elog "modules can be found by running"
+ elog
+ elog " eselect bashcomp list"
+ elog
+ elog "If you use non-login shells you still need to source"
+ elog "/etc/profile.d/bash-completion.sh in your ~/.bashrc."
+
+ if has_version 'app-shells/zsh' ; then
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1-r2.ebuild b/app-shells/bash-completion/bash-completion-2.1-r2.ebuild
new file mode 100644
index 000000000000..4927557710fe
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1-r2.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit bash-completion-r1 prefix toolchain-funcs
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND="|| ( app-eselect/eselect-bashcomp <app-admin/eselect-1.3.7 )
+ || ( >=app-shells/bash-3.2 app-shells/zsh )
+ sys-apps/miscfiles"
+PDEPEND="app-shells/gentoo-bashcomp"
+
+src_prepare() {
+ cp "${FILESDIR}"/bash-completion.sh-gentoo-1.2 "${T}"/bash-completion.sh || die
+ eprefixify "${T}"/bash-completion.sh
+
+ cp "${FILESDIR}"/bash-completion.pc "${T}"/ || die
+ # reuse paths from the eclass -- those can come from pkg-config
+ # or defaults.
+ sed -i \
+ -e "/completionsdir/s@=.*\$@=$(get_bashcompdir)@" \
+ -e "/helpersdir/s@=.*\$@=$(get_bashhelpersdir)@" \
+ -e "/Version/s@1.3@${PV}@" \
+ "${T}"/bash-completion.pc || die
+
+ find -name 'Makefile*' -exec rm -f {} +
+
+ # Part of >=sys-apps/util-linux-2.23 wrt #468544
+ local file
+ for file in cal dmesg eject hexdump hwclock ionice look renice rtcwake; do
+ rm -f completions/${file}
+ done
+
+ # app-editors/vim-core:
+ rm -f completions/xxd
+
+ # net-misc/networkmanager:
+ rm -f completions/nmcli
+
+ # Forward-compatibility with new install location, for eselect-bashcomp.
+ echo "ES_BASHCOMP_DIRS=\"${EPREFIX}/usr/share/bash-completion/completions\"" \
+ > "${T}"/50bash_completion || die
+}
+
+src_configure() { :; } # no-op
+src_compile() { :; } # no-op
+
+src_install() {
+ # Gentoo specific bash-completion.sh file.
+ insinto /etc/profile.d
+ doins "${T}"/bash-completion.sh
+
+ # All files from contrib/ in source package get installed
+ dobashcomp "${S}"/completions/*
+
+ awk -v D="$ED" '
+ BEGIN { out=".pre" }
+ /^# A lot of the following one-liners/ { out="base" }
+ /^# start of section containing completion functions called by other functions/ { out=".pre" }
+ /^# start of section containing completion functions for external programs/ { out="base" }
+ /^# source completion directory/ { out="" }
+ /^unset -f have/ { out=".post" }
+ out != "" { print > D"/usr/share/bash-completion/"out }' \
+ bash_completion || die "failed to split bash_completion"
+
+ # Note: private eclass stuff, don't use it anywhere else!
+ insinto "$(_bash-completion-r1_get_bashhelpersdir)"
+ doins "${S}"/helpers/*
+
+ dodoc AUTHORS CHANGES README
+
+ # This is backported from upstream 2.0 release. You can stop installing
+ # this file after 2.0 is in Portage and use the one from the tarball
+ # instead.
+ # Installed to datadir instead of libdir because bash-completion(s)
+ # are not ELF files.
+ insinto /usr/share/pkgconfig
+ doins "${T}"/bash-completion.pc
+
+ doenvd "${T}"/50bash_completion
+}
+
+pkg_postinst() {
+ if ! has_version "${CATEGORY}/${PN}"; then
+ elog "Any user can enable the module completions without editing their"
+ elog ".bashrc by running:"
+ elog
+ elog " eselect bashcomp enable <module>"
+ elog
+ elog "The system administrator can also be enable this globally with"
+ elog
+ elog " eselect bashcomp enable --global <module>"
+ elog
+ elog "Make sure you at least enable the base module! Additional completion"
+ elog "modules can be found by running"
+ elog
+ elog " eselect bashcomp list"
+ elog
+ elog "If you use non-login shells you still need to source"
+ elog "/etc/profile.d/bash-completion.sh in your ~/.bashrc."
+ fi
+
+ if has_version 'app-shells/zsh' ; then
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1-r91.ebuild b/app-shells/bash-completion/bash-completion-2.1-r91.ebuild
new file mode 100644
index 000000000000..a6f38ddd3496
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1-r91.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2
+ http://dev.gentoo.org/~mgorny/dist/bashcomp2-pre1.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND="|| ( >=app-shells/bash-4.1 app-shells/zsh )
+ sys-apps/miscfiles
+ !app-eselect/eselect-bashcomp"
+
+# Remove unwanted completions.
+STRIP_COMPLETIONS=(
+ # Included in util-linux, bug #468544
+ cal dmesg eject hd hexdump hwclock ionice look ncal renice rtcwake
+
+ # Slackware package stuff, quite generic names cause collisions
+ # (e.g. with sys-apps/pacman)
+ explodepkg installpkg makepkg pkgtool removepkg upgradepkg
+
+ # Debian/Red Hat network stuff
+ ifdown ifup ifstatus
+)
+
+src_prepare() {
+ epatch "${WORKDIR}"/bashcomp2-pre1/*.patch
+}
+
+src_test() { :; } # Skip testsuite because of interactive shell wrt #477066
+
+src_install() {
+ # work-around race conditions, bug #526996
+ mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
+
+ default
+
+ # use the copies from >=sys-apps/util-linux-2.23 wrt #468544 -> hd and ncal
+ # becomes dead symlinks as a result
+ local file
+ for file in "${STRIP_COMPLETIONS[@]}"; do
+ rm "${ED}"/usr/share/bash-completion/completions/${file} || die
+ done
+
+ # use the copy from app-editors/vim-core:
+ rm "${ED}"/usr/share/bash-completion/completions/xxd || die
+
+ # use the copy from net-misc/networkmanager:
+ rm "${ED}"/usr/share/bash-completion/completions/nmcli || die
+
+ dodoc AUTHORS CHANGES README
+
+ # install the eselect module
+ insinto /usr/share/eselect/modules
+ doins "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect
+ doman "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect.5
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 2.1-r90 ${v}; then
+ ewarn "For bash-completion autoloader to work, all completions need to"
+ ewarn "be installed in /usr/share/bash-completion/completions. You may"
+ ewarn "need to rebuild packages that installed completions in the old"
+ ewarn "location. You can do this using:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
+ ewarn
+ ewarn "After the rebuild, you should remove the old setup symlinks:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
+ fi
+ done
+
+ if has_version 'app-shells/zsh'; then
+ elog
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1-r92.ebuild b/app-shells/bash-completion/bash-completion-2.1-r92.ebuild
new file mode 100644
index 000000000000..edaa25cd8fc4
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1-r92.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2
+ http://dev.gentoo.org/~mgorny/dist/bashcomp2-pre1.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND=">=app-shells/bash-4.3_p30-r1
+ sys-apps/miscfiles
+ !app-eselect/eselect-bashcomp"
+
+# Remove unwanted completions.
+STRIP_COMPLETIONS=(
+ # Included in util-linux, bug #468544
+ cal dmesg eject hd hexdump hwclock ionice look ncal renice rtcwake
+
+ # Slackware package stuff, quite generic names cause collisions
+ # (e.g. with sys-apps/pacman)
+ explodepkg installpkg makepkg pkgtool removepkg upgradepkg
+
+ # Debian/Red Hat network stuff
+ ifdown ifup ifstatus
+)
+
+src_prepare() {
+ epatch "${WORKDIR}"/bashcomp2-pre1/*.patch
+}
+
+src_test() { :; } # Skip testsuite because of interactive shell wrt #477066
+
+src_install() {
+ # work-around race conditions, bug #526996
+ mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
+
+ emake DESTDIR="${D}" profiledir=/etc/bash/bashrc.d install
+
+ # use the copies from >=sys-apps/util-linux-2.23 wrt #468544 -> hd and ncal
+ # becomes dead symlinks as a result
+ local file
+ for file in "${STRIP_COMPLETIONS[@]}"; do
+ rm "${ED}"/usr/share/bash-completion/completions/${file} || die
+ done
+
+ # use the copy from app-editors/vim-core:
+ rm "${ED}"/usr/share/bash-completion/completions/xxd || die
+
+ # use the copy from net-misc/networkmanager:
+ rm "${ED}"/usr/share/bash-completion/completions/nmcli || die
+
+ dodoc AUTHORS CHANGES README
+
+ # install the eselect module
+ insinto /usr/share/eselect/modules
+ doins "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect
+ doman "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect.5
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 2.1-r90 ${v}; then
+ ewarn "For bash-completion autoloader to work, all completions need to"
+ ewarn "be installed in /usr/share/bash-completion/completions. You may"
+ ewarn "need to rebuild packages that installed completions in the old"
+ ewarn "location. You can do this using:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
+ ewarn
+ ewarn "After the rebuild, you should remove the old setup symlinks:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
+ fi
+ done
+
+ if has_version 'app-shells/zsh'; then
+ elog
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1-r93.ebuild b/app-shells/bash-completion/bash-completion-2.1-r93.ebuild
new file mode 100644
index 000000000000..15de0566f62c
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1-r93.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit versionator
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2
+ http://dev.gentoo.org/~mgorny/dist/bashcomp2-pre1.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND=">=app-shells/bash-4.3_p30-r1
+ sys-apps/miscfiles
+ !app-eselect/eselect-bashcomp"
+PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
+
+# Remove unwanted completions.
+STRIP_COMPLETIONS=(
+ # Included in util-linux, bug #468544
+ cal dmesg eject hd hexdump hwclock ionice look ncal renice rtcwake
+
+ # Slackware package stuff, quite generic names cause collisions
+ # (e.g. with sys-apps/pacman)
+ explodepkg installpkg makepkg pkgtool removepkg upgradepkg
+
+ # Debian/Red Hat network stuff
+ ifdown ifup ifstatus
+)
+
+src_prepare() {
+ epatch "${WORKDIR}"/bashcomp2-pre1/*.patch
+}
+
+src_test() { :; } # Skip testsuite because of interactive shell wrt #477066
+
+src_install() {
+ # work-around race conditions, bug #526996
+ mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
+
+ emake DESTDIR="${D}" profiledir=/etc/bash/bashrc.d install
+
+ # use the copies from >=sys-apps/util-linux-2.23 wrt #468544 -> hd and ncal
+ # becomes dead symlinks as a result
+ local file
+ for file in "${STRIP_COMPLETIONS[@]}"; do
+ rm "${ED}"/usr/share/bash-completion/completions/${file} || die
+ done
+
+ # use the copy from app-editors/vim-core:
+ rm "${ED}"/usr/share/bash-completion/completions/xxd || die
+
+ # use the copy from net-misc/networkmanager:
+ rm "${ED}"/usr/share/bash-completion/completions/nmcli || die
+
+ dodoc AUTHORS CHANGES README
+
+ # install the eselect module
+ insinto /usr/share/eselect/modules
+ doins "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect
+ doman "${WORKDIR}"/bashcomp2-pre1/bashcomp.eselect.5
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 2.1-r90 ${v}; then
+ ewarn "For bash-completion autoloader to work, all completions need to"
+ ewarn "be installed in /usr/share/bash-completion/completions. You may"
+ ewarn "need to rebuild packages that installed completions in the old"
+ ewarn "location. You can do this using:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
+ ewarn
+ ewarn "After the rebuild, you should remove the old setup symlinks:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
+ fi
+ done
+
+ if has_version 'app-shells/zsh'; then
+ elog
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1.ebuild b/app-shells/bash-completion/bash-completion-2.1.ebuild
new file mode 100644
index 000000000000..43bf12c03265
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit prefix
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://bash-completion.alioth.debian.org/files/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND="|| ( app-eselect/eselect-bashcomp <app-admin/eselect-1.3.7 )
+ || ( >=app-shells/bash-3.2 app-shells/zsh )
+ sys-apps/miscfiles"
+PDEPEND="app-shells/gentoo-bashcomp"
+
+src_prepare() {
+ cp "${FILESDIR}"/bash-completion.sh-gentoo-1.2 "${T}"/bash-completion.sh || die
+ eprefixify "${T}"/bash-completion.sh
+
+ find completions -name 'Makefile*' -exec rm -f {} +
+
+ # Part of >=sys-apps/util-linux-2.23 wrt #468544
+ local file
+ for file in cal dmesg eject hexdump hwclock ionice look renice rtcwake; do
+ rm -f completions/${file}
+ done
+
+ # app-editors/vim-core:
+ rm -f completions/xxd
+
+ # net-misc/networkmanager:
+ rm -f completions/nmcli
+}
+
+src_configure() { :; } # no-op
+src_compile() { :; } # no-op
+
+src_install() {
+ # Gentoo specific bash-completion.sh file.
+ insinto /etc/profile.d
+ doins "${T}"/bash-completion.sh
+
+ # All files from contrib/ in source package get installed
+ insinto /usr/share/bash-completion
+ doins -r "${S}"/completions/*
+
+ awk -v D="$ED" '
+ BEGIN { out=".pre" }
+ /^# A lot of the following one-liners/ { out="base" }
+ /^# start of section containing completion functions called by other functions/ { out=".pre" }
+ /^# start of section containing completion functions for external programs/ { out="base" }
+ /^# source completion directory/ { out="" }
+ /^unset -f have/ { out=".post" }
+ out != "" { print > D"/usr/share/bash-completion/"out }' \
+ bash_completion || die "failed to split bash_completion"
+
+ dodoc AUTHORS CHANGES README
+
+ # This is backported from upstream 2.0 release. You can stop installing
+ # this file after 2.0 is in Portage and use the one from the tarball
+ # instead.
+ # Installed to datadir instead of libdir because bash-completion(s)
+ # are not ELF files.
+ insinto /usr/share/pkgconfig
+ doins "${FILESDIR}"/bash-completion.pc
+}
+
+pkg_postinst() {
+ if ! has_version "${CATEGORY}/${PN}"; then
+ elog "Any user can enable the module completions without editing their"
+ elog ".bashrc by running:"
+ elog
+ elog " eselect bashcomp enable <module>"
+ elog
+ elog "The system administrator can also be enable this globally with"
+ elog
+ elog " eselect bashcomp enable --global <module>"
+ elog
+ elog "Make sure you at least enable the base module! Additional completion"
+ elog "modules can be found by running"
+ elog
+ elog " eselect bashcomp list"
+ elog
+ elog "If you use non-login shells you still need to source"
+ elog "/etc/profile.d/bash-completion.sh in your ~/.bashrc."
+ fi
+
+ if has_version 'app-shells/zsh' ; then
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/bash-completion-2.1_p20141224.ebuild b/app-shells/bash-completion/bash-completion-2.1_p20141224.ebuild
new file mode 100644
index 000000000000..5a97d7e7ce5e
--- /dev/null
+++ b/app-shells/bash-completion/bash-completion-2.1_p20141224.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+BASHCOMP_P=bashcomp-2.0.1
+inherit versionator
+
+DESCRIPTION="Programmable Completion for bash"
+HOMEPAGE="http://bash-completion.alioth.debian.org/"
+SRC_URI="http://dev.gentoo.org/~mgorny/dist/${P}.tar.xz
+ http://dev.gentoo.org/~mgorny/dist/${BASHCOMP_P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris"
+IUSE=""
+
+RDEPEND=">=app-shells/bash-4.3_p30-r1
+ sys-apps/miscfiles
+ !app-eselect/eselect-bashcomp"
+DEPEND="app-arch/xz-utils"
+PDEPEND=">=app-shells/gentoo-bashcomp-20140911"
+
+# Remove unwanted completions.
+STRIP_COMPLETIONS=(
+ # Slackware package stuff, quite generic names cause collisions
+ # (e.g. with sys-apps/pacman)
+ explodepkg installpkg makepkg pkgtool removepkg upgradepkg
+
+ # Debian/Red Hat network stuff
+ ifdown ifup ifstatus
+
+ # Installed in app-editors/vim-core
+ xxd
+
+ # Now-dead symlinks to deprecated completions
+ hd ncal
+)
+
+src_prepare() {
+ epatch "${WORKDIR}/${BASHCOMP_P}/${P}"-*.patch
+}
+
+src_test() { :; } # Skip testsuite because of interactive shell wrt #477066
+
+src_install() {
+ # work-around race conditions, bug #526996
+ mkdir -p "${ED}"/usr/share/bash-completion/{completions,helpers} || die
+
+ emake DESTDIR="${D}" profiledir="${EPREFIX}"/etc/bash/bashrc.d install
+
+ local file
+ for file in "${STRIP_COMPLETIONS[@]}"; do
+ rm "${ED}"/usr/share/bash-completion/completions/${file} || die
+ done
+ # remove deprecated completions (moved to other packages)
+ rm "${ED}"/usr/share/bash-completion/completions/_* || die
+
+ dodoc AUTHORS CHANGES README
+
+ # install the eselect module
+ insinto /usr/share/eselect/modules
+ doins "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect"
+ doman "${WORKDIR}/${BASHCOMP_P}/bashcomp.eselect.5"
+}
+
+pkg_postinst() {
+ local v
+ for v in ${REPLACING_VERSIONS}; do
+ if ! version_is_at_least 2.1-r90 ${v}; then
+ ewarn "For bash-completion autoloader to work, all completions need to"
+ ewarn "be installed in /usr/share/bash-completion/completions. You may"
+ ewarn "need to rebuild packages that installed completions in the old"
+ ewarn "location. You can do this using:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/usr/share/bash-completion -maxdepth 1 -type f '!' -name 'bash_completion' -exec emerge -1v {} +"
+ ewarn
+ ewarn "After the rebuild, you should remove the old setup symlinks:"
+ ewarn
+ ewarn "$ find ${EPREFIX}/etc/bash_completion.d -type l -delete"
+ fi
+ done
+
+ if has_version 'app-shells/zsh'; then
+ elog
+ elog "If you are interested in using the provided bash completion functions with"
+ elog "zsh, valuable tips on the effective use of bashcompinit are available:"
+ elog " http://www.zsh.org/mla/workers/2003/msg00046.html"
+ elog
+ fi
+}
diff --git a/app-shells/bash-completion/files/bash-completion.pc b/app-shells/bash-completion/files/bash-completion.pc
new file mode 100644
index 000000000000..0e5921f54496
--- /dev/null
+++ b/app-shells/bash-completion/files/bash-completion.pc
@@ -0,0 +1,9 @@
+prefix=/usr
+compatdir=/etc/bash_completion.d
+completionsdir=${prefix}/share/bash-completion
+helpersdir=${prefix}/share/bash-completion/helpers
+
+Name: bash-completion
+Description: programmable completion for the bash shell
+URL: http://bash-completion.alioth.debian.org/
+Version: 1.3
diff --git a/app-shells/bash-completion/files/bash-completion.sh-gentoo-1.2 b/app-shells/bash-completion/files/bash-completion.sh-gentoo-1.2
new file mode 100644
index 000000000000..b72bcbd93379
--- /dev/null
+++ b/app-shells/bash-completion/files/bash-completion.sh-gentoo-1.2
@@ -0,0 +1,52 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+# Check for interactive bash and that we haven't already been sourced.
+[ -z "$BASH_VERSION" -o -z "$PS1" -o -n "$BASH_COMPLETION" ] && return
+
+# Check for recent enough version of bash.
+bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
+if [ $bmajor -gt 3 ] || [ $bmajor -eq 3 -a $bminor -ge 2 ]; then
+ _load_completions() {
+ declare f x loaded_pre=false
+ for f; do
+ if [[ -f $f ]]; then
+ # Prevent loading base twice, initially and via glob
+ if $loaded_pre && [[ $f == */base ]]; then
+ continue
+ fi
+
+ # Some modules, including base, depend on the definitions
+ # in .pre. See the ebuild for how this is created.
+ if ! $loaded_pre; then
+ if [[ ${BASH_COMPLETION-unset} == unset ]]; then
+ BASH_COMPLETION="@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/base"
+ fi
+ source "@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/.pre"
+ loaded_pre=true
+ fi
+
+ source "$f"
+ fi
+ done
+
+ # Clean up
+ $loaded_pre && source "@GENTOO_PORTAGE_EPREFIX@/usr/share/bash-completion/.post"
+ unset -f _load_completions # not designed to be called more than once
+ }
+
+ # 1. Load base, if eselected. This was previously known as
+ # /etc/bash_completion
+ # 2. Load completion modules, maintained via eselect bashcomp --global
+ # 3. Load user completion modules, maintained via eselect bashcomp
+ # 4. Load user completion file last, overrides modules at user discretion
+ # This order is subject to change once upstream decides on something.
+ _load_completions \
+ "@GENTOO_PORTAGE_EPREFIX@/etc/bash_completion.d/base" \
+ ~/.bash_completion.d/base \
+ "@GENTOO_PORTAGE_EPREFIX@/etc/bash_completion.d/"* \
+ ~/.bash_completion.d/* \
+ ~/.bash_completion
+fi
+unset bash bmajor bminor
diff --git a/app-shells/bash-completion/metadata.xml b/app-shells/bash-completion/metadata.xml
new file mode 100644
index 000000000000..3b6711241595
--- /dev/null
+++ b/app-shells/bash-completion/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>shell-tools</herd>
+<maintainer>
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+</maintainer>
+<longdescription>
+ Since v2.04, bash has allowed you to intelligently program and extend its
+ standard completion behavior to achieve complex command lines with just a
+ few keystrokes. Imagine typing ssh [Tab] and being able to complete on hosts
+ from your ~/.ssh/known_hosts files. Or typing man 3 str [Tab] and getting a
+ list of all string handling functions in the UNIX manual. mount system:
+ [Tab] would complete on all exported file-systems from the host called
+ system, while make [Tab] would complete on all targets in Makefile. This
+ project was conceived to produce programmable completion routines for the
+ most common Linux/UNIX commands, reducing the amount of typing sysadmins and
+ programmers need to do on a daily basis.
+</longdescription>
+</pkgmetadata>