Package: devscripts Version: 2.15.9 Severity: important Dear Maintainer,
I was trying to understand the bash completion code. I found that now that the devscripts bash completions don't work. For example chdist<TAB> should produce nicholas@chilcott:~$ chdist apt-cache compare-bin-packages create src2bin apt-get compare-bin-versions grep-dctrl-packages apt-rdepends compare-packages grep-dctrl-sources bin2src compare-versions list but instead just shows whatever files are in the current directory. I found really three issues: 1. Firstly the scripts are now in the directory /usr/share/bash-completion/completions . The scripts in this directory are autoloaded and expected to work slightly differently. So this must be named with the name of the command they are providing a completion for. So the following links are required: ln -s devscripts.chdist chdist ln -s devscripts.dcut dcut ln -s devscripts.debchange debchange ln -s devscripts.debchange dch ln -s devscripts.debsign debsign ln -s devscripts.mk-origtargz mk-origtargz for i in wnpp-alert wnpp-check mk-build-deps rmadison mass-bug debsnap dd-list build-rdeps who-uploads transition-check getbuildlog dcontrol grep-excuses rc-alert bts whodepends dget pts-subscribe debc pts-unsubscribe do ln -s devscripts.pkgnames $i done ln -s devscripts.uscan uscan ln -s devscripts.uupdate uupdate 2. Some of the scripts (chdist dch dcut debsign uupdate) use a deprecated "have" mechanism. To preserve name space purity this is replaced by "_have". That notwithstanding it does not seem to work. A typical case is uupdate: nicholas@chilcott:/usr/share/bash-completion/completions$ diff uupdate.old uupdate 1d0 < have uupdate && 32c31 < [ "$have" ] && complete -F _uupdate -o filenames uupdate --- > complete -F _uupdate -o filenames uupdate 3. The chdist script seems to have an additional issue. nicholas@chilcott:/usr/share/bash-completion/completions$ diff chdist.old chdist 1d0 < have chdist && 50c49 < [ -n "${have:-}" ] && complete -F _chdist $filenames chdist --- > complete -F _chdist chdist I am not quite sure where "$filenames" comes from. As far as I can see from git it has always been there, but it is not as far as I can see defined. It might be intended to be "-o filenames" as with other completions though I do not really think that makes sense. -- Package-specific info: --- /etc/devscripts.conf --- --- ~/.devscripts --- export DEBCHECKOUT_USER='Nicholas Bamber (Periapt) <nicho...@periapt.co.uk>' export DEBFULLNAME='Nicholas Bamber' export DEBEMAIL='nicho...@periapt.co.uk' -- System Information: Debian Release: stretch/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.2.0-1-amd64 (SMP w/2 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages devscripts depends on: ii dpkg-dev 1.18.3 ii libc6 2.19-22 ii perl 5.20.2-6 ii python3 3.4.3-7 pn python3:any <none> Versions of packages devscripts recommends: ii at 3.1.16-1 ii dctrl-tools 2.24-1 ii debian-keyring 2015.08.13 ii dput 0.9.6.4 ii equivs 2.0.9+nmu1 ii fakeroot 1.20.2-1 ii file 1:5.25-2 ii gnupg 1.4.19-6 ii libdistro-info-perl 0.14 ii libencode-locale-perl 1.05-1 ii libjson-perl 2.90-1 ii liblwp-protocol-https-perl 6.06-2 ii libsoap-lite-perl 1.19-1 ii liburi-perl 1.69-1 ii libwww-perl 6.13-1 ii lintian 2.5.38 ii man-db 2.7.5-1 ii patch 2.7.5-1 ii patchutils 0.3.4-1 ii python3-debian 0.1.27 ii python3-magic 1:5.25-2 ii sensible-utils 0.0.9 ii strace 4.10-3 ii unzip 6.0-19 ii wdiff 1.2.2-1 ii wget 1.16.3-3 ii xz-utils 5.1.1alpha+20120614-2.1 Versions of packages devscripts suggests: ii bsd-mailx [mailx] 8.1.2-0.20150408cvs-1 ii build-essential 12.1 pn cvs-buildpackage <none> pn debbindiff <none> pn devscripts-el <none> pn gnuplot <none> ii gpgv 1.4.19-6 ii libauthen-sasl-perl 2.1600-1 pn libfile-desktopentry-perl <none> ii libnet-smtp-ssl-perl 1.03-1 pn libterm-size-perl <none> ii libtimedate-perl 2.3000-2 pn libyaml-syck-perl <none> ii mutt 1.5.24-1 ii openssh-client [ssh-client] 1:6.9p1-2+b1 pn svn-buildpackage <none> ii w3m 0.5.3-25+b1 -- no debconf information