Package: bash-completion Version: 1:2.1-4 Severity: normal Dear Maintainer,
For my root .bashrc i have the following introduction block that is designed to help ensure i don't inherit bad/unexpected values from somewhere else (sshd, /etc/profile.d/, etc...) and the root interactive bash environment is as close to pristine/expected and built on from there. \unset -f unalias ; \unalias -a ; \unset -f command \unset LD_LIBRARY_PATH LD_PRELOAD SHELLOPTS CDPATH HISTFILE HOSTFILE INPUTRC 2>/dev/null confpath="$(command -p getconf PATH 2>/dev/null)" export PATH="/opt/sbin:/opt/bin:/sbin:/usr/sbin:${confpath:-/bin:/usr/bin}" \type typeset >/dev/null && \unset -f $(\typeset -f | \grep '()' | \cut -d' ' -f1) However, because the bash completions package defines a bunch of functions (that i'm removing above), i would like to be able to subsequently re-evaluate the bash completions later on in the .bashrc after this block. but, /etc/profile.d/bash_completions.sh has the following conditional: # Check for interactive bash and that we haven't already been sourced. if [ -n "$BASH_VERSION" -a -n "$PS1" -a -z "$BASH_COMPLETION_COMPAT_DIR" ]; then Since /usr/share/bash-completion/bash_completion establishes BASH_COMPLETION_COMPAT_DIR as a readonly variable, i can not unset it in the shell, and thus can not re-source this script. I presume it's readonly for security reasons (so it couldn't be hijacked to run random code in another location?) So, with that in mind, could the conditional be changed instead to something like: if [ -n "$BASH_VERSION" -a -n "$PS1" -a \( -z "$BASH_COMPLETION_COMPAT_DIR" -o \( "$1" = "force" \) \) ]; then so that it could be forcibly re-evaluated? (this way i don't have to duplicate its code in my .bashrc and hope it doesn't change on package updates) Alternative solutions welcome. thanks, --stephen -- System Information: Debian Release: 8.7 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages bash-completion depends on: ii bash 4.3-11+deb8u1 ii dpkg 1.17.27 bash-completion recommends no packages. bash-completion suggests no packages. -- no debconf information