[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-dev
Subject:    Re: [gentoo-dev] bash-completion-2.1-r1 once again
From:       Michał Górny <mgorny () gentoo ! org>
Date:       2014-08-26 22:26:43
Message-ID: 20140827002643.05c5afb4 () pomiot ! lan
[Download RAW message or body]

[Attachment #2 (multipart/mixed)]


Dnia 2014-08-26, o godz. 23:35:16
Michał Górny <mgorny@gentoo.org> napisał(a):

> Dnia 2014-08-26, o godz. 12:51:22
> Michał Górny <mgorny@gentoo.org> napisał(a):
> 
> > I think the best way forward is to:
> > 
> > 1. Teach 'old' eselect-bashcomp to find files in the new $completionsdir
> > as well as the old location, and stabilize that soon.
> > 
> > 2. Switch the eclass and ebuilds to use the new $completionsdir. While
> > at it, make sure that ebuilds install completion files whose names
> > conform to the new layout (portage QA check likely).
> > 
> > 3. Do we need some specific documentation except for a regular news
> > item? Where?
> > 
> > 4. Unmask the new bash-completion and eselect-bashcomp. Add a news item
> > explaining the sudden change :).
> 
> A bit more details to the plan:
> 
> 
> 1. Bump app-admin/eselect-bashcomp (or app-shells/bash-completion)
> to install env.d file with ES_BASHCOMP_DIRS pointing to the new
> $completionsdir.
> 
> [...]
> 
> 2. Change bash-completion-r1.eclass default to /completions subdir.
> 
> [...]
> 
> 3. Bump app-shells/bash-completion to respect current $completionsdir.
> 
> [...]

If anyone wishes to review this further, attached bash-completion
ebuild changes for (1) and (3), and eclass changes for (2). Tested
and confirmed working.

-- 
Best regards,
Michał Górny

[Attachment #5 (text/x-patch)]

--- bash-completion-2.1.ebuild	2014-01-19 11:12:43.000000000 +0100
+++ bash-completion-2.1-r1.ebuild	2014-08-27 00:19:35.277605486 +0200
@@ -3,7 +3,7 @@
 # $Header: /var/cvsroot/gentoo-x86/app-shells/bash-completion/bash-completion-2.1.ebuild,v \
1.6 2014/01/19 10:12:43 vapier Exp $  
 EAPI=5
-inherit prefix
+inherit bash-completion-r1 prefix
 
 DESCRIPTION="Programmable Completion for bash"
 HOMEPAGE="http://bash-completion.alioth.debian.org/"
@@ -23,6 +23,14 @@ 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)@" \
+		"${T}"/bash-completion.pc || die
+
 	find completions -name 'Makefile*' -exec rm -f {} +
 
 	# Part of >=sys-apps/util-linux-2.23 wrt #468544
@@ -36,6 +44,10 @@ src_prepare() {
 
 	# 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
@@ -47,8 +59,7 @@ src_install() {
 	doins "${T}"/bash-completion.sh
 
 	# All files from contrib/ in source package get installed
-	insinto /usr/share/bash-completion
-	doins -r "${S}"/completions/*
+	dobashcomp "${S}"/completions/*
 
 	awk -v D="$ED" '
 	BEGIN { out=".pre" }
@@ -68,7 +79,9 @@ src_install() {
 	# Installed to datadir instead of libdir because bash-completion(s)
 	# are not ELF files.
 	insinto /usr/share/pkgconfig
-	doins "${FILESDIR}"/bash-completion.pc
+	doins "${T}"/bash-completion.pc
+
+	doenvd "${T}"/50bash_completion
 }
 
 pkg_postinst() {


[Attachment #6 (text/x-patch)]

Index: bash-completion-r1.eclass
===================================================================
RCS file: /var/cvsroot/gentoo-x86/eclass/bash-completion-r1.eclass,v
retrieving revision 1.12
diff -u -B -r1.12 bash-completion-r1.eclass
--- bash-completion-r1.eclass	22 Jan 2014 19:41:21 -0000	1.12
+++ bash-completion-r1.eclass	26 Aug 2014 22:24:29 -0000
@@ -57,7 +57,7 @@
 _bash-completion-r1_get_bashcompdir() {
 	debug-print-function ${FUNCNAME} "${@}"
 
-	_bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion
+	_bash-completion-r1_get_bashdir completionsdir /usr/share/bash-completion/completions
 }
 
 # @FUNCTION: _bash-completion-r1_get_helpersdir

["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic