#917392 adequate reports broken symlink in bash-completions

Package:
ifupdown2
Source:
ifupdown2
Submitter:
shirish शिरीष
Date:
2018-12-29 12:09:03 UTC
Severity:
normal
#917392#5
Date:
2018-12-27 09:20:27 UTC
From:
To:
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.

#917392#10
Date:
2018-12-27 12:01:56 UTC
From:
To:
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

#917392#15
Date:
2018-12-27 20:16:30 UTC
From:
To:
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.

#917392#20
Date:
2018-12-27 21:12:35 UTC
From:
To:
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?

#917392#25
Date:
2018-12-27 21:34:24 UTC
From:
To:
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.

#917392#30
Date:
2018-12-27 21:58:56 UTC
From:
To:
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)

#917392#35
Date:
2018-12-28 23:51:21 UTC
From:
To:
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

#917392#46
Date:
2018-12-29 11:36:26 UTC
From:
To:
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.

#917392#51
Date:
2018-12-29 12:05:01 UTC
From:
To:
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: