diff options
author | 2015-08-08 13:49:04 -0700 | |
---|---|---|
committer | 2015-08-08 17:38:18 -0700 | |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-shells/bash-completion | |
download | gentoo-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')
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> |