Usertags: broken-symlink adequate User: debian-qa@lists.debian.org Dear Maintainer, Thank you for maintaining bash-completions package. While upgrading today I got the following broken-symlinks as shared below - $ adequate bash-completion bash-completion: broken-symlink /usr/share/bash-completion/completions/ifdown.disabled -> ifup bash-completion: broken-symlink /usr/share/bash-completion/completions/ifstatus -> ifup Please fix the broken-symlinks.
I don't recognize the `.disabled' suffix. Have you manually renamed this file? As far as I can see, /usr/share/bash-completion/completions/ifup *is* shipped with bash-completion-1:2.8-5. If it's missing from your system, have you perhaps manually removed it? Does a `aptitude reinstall bash-completion' solves the problem? Kind regards, Gabriel
At bottom :- I don't think so or remember. I did try the suggestion you shared but it doesn't solve the problem. $ sudo aptitude reinstall bash-completion [sudo] password for shirish: The following packages will be REINSTALLED: bash-completion 0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 9 not upgraded. Need to get 0 B/208 kB of archives. After unpacking 0 B will be used. (Reading database ... 517477 files and directories currently installed.) Preparing to unpack .../bash-completion_1%3a2.8-5_all.deb ... Unpacking bash-completion (1:2.8-5) over (1:2.8-5) ... Setting up bash-completion (1:2.8-5) ... Processing triggers for man-db (2.8.4-3) ... adequate found packaging bugs ----------------------------- bash-completion: broken-symlink /usr/share/bash-completion/completions/ifdown.disabled -> ifup bash-completion: broken-symlink /usr/share/bash-completion/completions/ifstatus -> ifup bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadheadless.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/asciidoc.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadcurses.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadgui.py ====== How can you help? (doc: https://wiki.debian.org/how-can-i-help ) ====== ----- Show old opportunities as well as new ones: how-can-i-help --old ----- Scanning processes... Scanning candidates... Scanning processor microcode... Scanning linux images... Running kernel seems to be up-to-date. The processor microcode seems to be up-to-date. No services need to be restarted. No containers need to be restarted. User sessions running outdated binaries: shirish @ session #3: mate-session[1373] shirish @ user manager service: systemd[1349] Just to make sure I didn't do anything silly I purged and installed bash-completion again but still got the same error as above. I do see I have ifupdown2 installed. Maybe something in there messed up with bash-completion at least the if states . I did see this however, dunno if these are somehow responsible - The last bit is from $ dpkg -L ifupdown2 | tail /var/lib/ifupdown2/policy.d /sbin/ifdown package diverts others to: /sbin/ifdown.disabled /sbin/ifquery package diverts others to: /sbin/ifquery.disabled /sbin/ifreload package diverts others to: /sbin/ifreload.disabled /sbin/ifup package diverts others to: /sbin/ifup.disabled /usr/share/ifupdown2/ifupdown2 I did look using $ apt-file search ifdown to see if I could find any more culprits but couldn't find any other binary package which I had installed except for ifupdown2 :( I am willing to investigate but have no idea about bash-completion except that it makes my life easier.
Thanks for trying my suggestion. Thanks for doing this, too. I installed it, too, but it didn't cause these bugs for me (not even after purging then re-installing bash-completion), so I think I'll need your help to investigate this. When you purge bash-completion, does it remove /usr/share/bash-completion entirely? I don't see anything wrong with this snippet, however, I'm looking into the packaging files for ifupdown2 and I see that it ships (or used to ship) a completion file for ifup. What is the version of ifupdown2 that you have installed in your machine? Do you know if you updated it recently?
I just found that the previous version of ifupdown2 used to ship a completion file for ifup (I built it from the .dsc file): dpkg-deb --contents /var/cache/pbuilder/result/ifupdown2_1.0~git20170314-1_all.deb | grep compl drwxr-xr-x root/root 0 2017-03-14 19:06 ./usr/share/bash-completion/ drwxr-xr-x root/root 0 2017-03-14 19:06 ./usr/share/bash-completion/completions/ -rw-r--r-- root/root 383 2017-03-14 19:06 ./usr/share/bash-completion/completions/ifup So, maybe, this has something to do with the problem... I'll try to reproduce it by installing the older version of ifupdown2.
Reply in-line :- Yes and no. It does remove bash_completion and the helpers directory but not the completions directory, that is still there. There are only 200 some files when bash-completion is purged in /usr/share/bash-completion/completions directory which swells to around 800+ when bash-completion is installed. apt-cache policy says that ifupdown2 is 1.2.2-1 at my end. Umm... I have no clue where to look for that info. I used to remember there used to be archives at /var/lib/apt/archives but now that holds only listchanges.db which would require me to use something to query the database and I'm not even sure even if that would be the right thing. /var/lib/apt$ file listchanges.db listchanges.db: Berkeley DB (Hash, version 9, native byte-order)
That is the problem, indeed. Here are the steps to reproduce it: 1. Install ifupdown2 version (ifupdown2_1.0~git20170314-1_all.deb) # dpkg -i ifupdown2_1.0~git20170314-1_all.deb 2. Check that it installs files under /usr/share/bash-completion # dpkg --search /usr/share/bash-completion/completions/ifup diversion by ifupdown2 from: /usr/share/bash-completion/completions/ifup diversion by ifupdown2 to: /usr/share/bash-completion/completions/ifup.disabled ifupdown2, bash-completion: /usr/share/bash-completion/completions/ifup 3. See that ifup is actually there: # ls /usr/share/bash-completion/completions/ifup /usr/share/bash-completion/completions/ifup 4. Upgrade ifupdown2: # aptitude upgrade ifupdown2 5. Repeat steps 2 and 3 (then see that the file is missing): # dpkg --search /usr/share/bash-completion/completions/ifup diversion by ifupdown2 from: /usr/share/bash-completion/completions/ifup diversion by ifupdown2 to: /usr/share/bash-completion/completions/ifup.disabled bash-completion: /usr/share/bash-completion/completions/ifup # ls /usr/share/bash-completion/completions/ifup ls: cannot access '/usr/share/bash-completion/completions/ifup': No such file or directory This probably means that this is a problem with ifupdown2, rather than with bash-completion, and, to the best of my knowledge, there's nothing that bash-completion can do to fix this. Maybe we should reassign this bug against ifupdown2. Shirish, On the other hand, I found a way to workaround the bug for you. You have to purge the older version of ifupdown2 (2_1.0~git20170314-1), before installing the newest. I did all the steps below, and it fixed the problem for me. # aptitude purge ifupdown2 # dpkg -i ifupdown2_1.0~git20170314-1_all.deb # aptitude purge ifupdown2 # aptitude install ifupdown2 # aptitude reinstall bash-completion # ls /usr/share/bash-completion/completions/ifup /usr/share/bash-completion/completions/ifup # adequate bash-completion bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadheadless.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/asciidoc.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadcurses.py bash-completion: py-file-not-bytecompiled /usr/share/bash-completion/completions/btdownloadgui.py It still complains about the non-compiled files, but this is a different problem. Cheers, Gabriel
On 28 Dec 2018, Gabriel F. T. Gomes wrote: Shirish, Thanks for the report and for reassigning the bug against ifupdown2. Julien, Shirish and I investigated a problem he found with bash-completion (/usr/share/bash-completion/completions/ifup was missing), and we noticed that the problem occurs after an upgrade of ifupdown2 (from version 2_1.0~git20170314-1 to version 1.2.2-1). In order to reproduce it, you may follow the following steps (bash-completion must be installed): I think that this may be a problem with ifupdown2, rather than with bash-completion, so I suggested that this bug be reassigned against ifupdown2. Apparently, ifupdown2 used to ship the completion file for ifup, but it no longer does it (which is great in my opinion, because it removes the conflict with bash-completion). However, I don't know why, after the update, bash-completion is unable to install the completion file for ifup. There must be something in apt blocking it to do so.
Thanks for digging and giving me all the details! The completion file is still part of the package but a recent change in setup.py is preventing its installation. I will be fixing this issue in the next release. Thanks! Julien On Sat, Dec 29, 2018 at 6:39 PM Gabriel F. T. Gomes < gabriel@inconstante.net.br> wrote: