[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#57498: bash-completion completion functions not loaded when using gu
From: |
Andrew Tropin |
Subject: |
bug#57498: bash-completion completion functions not loaded when using guix home |
Date: |
Wed, 31 Aug 2022 14:55:54 +0300 |
On 2022-08-31 15:35, maze@pkbd.org wrote:
> I don't install bash-completion into my system profile and I use only
> guix home to install user packages. I typically don't guix install any
> packages.
>
> While I do include the bash-completion package in my home configuration
> file, the completion bash functions do not get loaded as needed, the
> resulting user experience is as if bash-completion wasn't installed,
> although .bashrc is edited in the typical way to load the main file
> bash_completion. But, the shell code in bash_completion cannot find and
> load the individual files containing the completion functions for
> individual commands.
>
> The reason is that I don't have a ~/.guix-profile folder, my current
> user profile is linked in ~/.guix-home/profile. The relevant path (in
> my case) is not included in the search path for completion bash functions.
>
> In guix this completion functions search path is defined by the patch found at
> gnu/packages/patches/bash-completion-directories.patch, where you can
> see the path to the guix home user profile is missing.
>
> The patch below is a patch to the patch file I mention above from the
> guix dource tree. It just adds 2 folders to the search path.
>
> I verified that it works for me.
Hi Maze!
That's right, the similiar fix is already applied on core-updates branch
675c5c9bbd28e5e666903aa81efaec25b1573811, unfortunately bash-completion
package update affects a lot of packages that's why it's not on master
branch yet. Thank you for the patch, anyway!
For now, while 1.4 is not released yet, as a temporary fix I can suggest
to install the package providing bash-completion to ~/.guix-profile or
system profile. There are other workarounds, but this one seems to be
the easiest.
>
> ---
> bash-completion: fix loading of completion functions with guix home
>
> * gnu/packages/patches/bash-completion-directories.patch: modified
> ---
> gnu/packages/patches/bash-completion-directories.patch | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/patches/bash-completion-directories.patch
> b/gnu/packages/patches/bash-completion-directories.patch
> index 021e34653b..3c6b3082ea 100644
> --- a/gnu/packages/patches/bash-completion-directories.patch
> +++ b/gnu/packages/patches/bash-completion-directories.patch
> @@ -10,7 +10,7 @@ This is what this patch does.
>
> --- a/bash_completion
> +++ b/bash_completion
> -@@ -2016,7 +2016,13 @@ complete -F _minimal ''
> +@@ -2016,7 +2016,15 @@ complete -F _minimal ''
>
> __load_completion()
> {
> @@ -19,6 +19,8 @@ This is what this patch does.
> +
> ${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions
> + "$HOME/.guix-profile/share/bash-completion/completions/$base"
It seems $base not needed anymore, it's a rudiment from an old version
of the patch. I'll remove it.
> + "$HOME/.guix-profile/etc/bash_completion.d/$base"
> ++ "$HOME/.guix-home/profile/share/bash-completion/completions/$base"
> ++ "$HOME/.guix-home/profile/etc/bash_completion.d/$base"
> +
> "/run/current-system/profile/share/bash-completion/completions/$base"
> + "/run/current-system/profile/etc/bash_completion.d/$base" )
> +
>
> base-commit: 47c11772dfe840a536ed7ec438fe832878f51054
--
Best regards,
Andrew Tropin
signature.asc
Description: PGP signature