#982758 webext-browserpass: Failed to install on upgrade to bullseye

Package:
webext-browserpass
Source:
browserpass
Description:
web extension for the password manager pass
Submitter:
Wookey
Date:
2021-07-21 01:30:03 UTC
Severity:
important
Tags:
#982758#5
Date:
2021-02-14 00:23:43 UTC
From:
To:
This is going to be a crappy bugreport because I didn't save the
upgrade log or state-at-fail on this machine (Sorry - I normally
do). But it's quite serious so I thought I'd log it in case others hit
it and can add info, or it's sufficiently obvious what might have gone wrong.

This package gave a dpkg error on upgrade about being unable to create
a file under .mozilla. (the filename had braces {} in it).

I removed it to complete the upgrade. It then re-installed OK.

A clue may well be that I copied an existing mozilla profile into the
.mozilla/firefox direcotry just before upgrading.

I have several 'webext-*' packages installed and the others did not
cause any trouble.  (-debianbuttons, -privacy-badger, -ublock-origin)
so there is something different about -browserpass
--
Wookey

#982758#12
Date:
2021-04-15 21:02:49 UTC
From:
To:
I have had the same, completely crashes the apt run too, neat. :)

dpkg: error processing archive /var/cache/apt/archives/webext-browserpass_3.7.2-1+b1_amd64.deb (--unpack):
 unable to open '/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass@maximbaz.com/icon.png.dpkg-new': No such file or directory
Reinstalling /etc/chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json that was moved away
Errors were encountered while processing:
 /var/cache/apt/archives/webext-browserpass_3.7.2-1+b1_amd64.deb

I bumped the severity because it completely fails to upgrade.

Workaround: apt purge webext-browserpass && apt install webext-browserpass

#982758#19
Date:
2021-04-20 21:20:56 UTC
From:
To:
Hi,

Antoine Beaupré wrote:

Ack. Ran into this, too, today.

Thanks!

Ah, nice!

I digged a bit deeper and found the culprit:

First that weird dpkg error message. It's well explained here:
https://raphaelhertzog.com/2011/07/18/deciphering-one-of-dpkg-weirdest-errors-unable-to-open-pathtofoo-dpkg-new/

This led me quickly looking into the preinst script and it indeed
fiddles with directories and symlinks. That's also why purging and
installing from scratch doesn't trigger the issue and helps as
workaround:

  #!/bin/sh
  set -e
  # Automatically added by dh_installdeb/13.3.4
  dpkg-maintscript-helper symlink_to_dir /usr/share/chromium/extensions/browserpass /usr/share/webext/browserpass 3.0.0-1 -- "$@"
  dpkg-maintscript-helper symlink_to_dir /usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass\@maximbaz.com /usr/share/webext/browserpass 3.0.0-1 -- "$@"
  dpkg-maintscript-helper rm_conffile /etc/chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json 3.4.1-3\~ -- "$@"
  # End automatically added section

Combine that with the fact that the package ships both,
/usr/share/chromium/extensions/browserpass/icon.png and
/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass@maximbaz.com/icon.png
and you get that problem.

So now the question is, what exactly happens and how to fix it?

In general, symlink_to_dir seems to be the right thing, since those
directories are indeed symlinks in buster:

  lrwxrwxrwx 1 root root 24 Feb  6  2019  /usr/share/chromium/extensions/browserpass -> ../../webext/browserpass/
  lrwxrwxrwx 1 root root 27 Feb  6  2019 '/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass@maximbaz.com' -> ../../../webext/browserpass/

And directory in sid/bullseye:

  drwxr-xr-x 2 root root 4096 Apr 10 03:00  /usr/share/chromium/extensions/browserpass/
  drwxr-xr-x 7 root root 4096 Apr 10 03:00 '/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass@maximbaz.com'/

The effect looks as if those symlinks weren't changed into
directories. But why? That 3.0.0-1 looks valid. And looking at my
upgrade logs (I always log dist-upgrades with "script"), the versions
seem the expected ones:

  Preparing to unpack .../370-webext-browserpass_3.7.2-1+b1_amd64.deb ...
  Unpacking webext-browserpass (3.7.2-1+b1) over (2.0.22-2) ...
  dpkg: error processing archive /tmp/apt-dpkg-install-VKYulC/370-webext-browserpass_3.7.2-1+b1_amd64.deb (--unpack):
   unable to open '/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/browserpass@maximbaz.com/icon.png.dpkg-new': No such file or directory
  Reinstalling /etc/chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json that was moved away

So I must admit, I'm currently not understanding what exactly goes
wrong. Wanted though to share how far I came with debugging this in
case someone else was stuck earlier in the process, but now has an
idea what goes wrong.

Will write again if I figure out more.

		Regards, Axel

#982758#24
Date:
2021-05-05 06:34:51 UTC
From:
To:
severity 982758 important
thanks

Hi,

I've tried both upgrading from a default buster to sid (browserpass
2.0.22-2 to 3.7.2-1), as well as from a default sid (browserpass
3.4.1-4+b2 to 3.7.2-1).. and can't reproduce it, thus lowering the
severity to important.

As browserpass is a dependency of a meta-package of mine in Debian
(which would get removed from testing if browserpass is removed), I'm
happy to help fixing it if someone can help me reproduce it.

Regards,
Daniel

#982758#29
Date:
2021-05-05 06:34:51 UTC
From:
To:
severity 982758 important
thanks

Hi,

I've tried both upgrading from a default buster to sid (browserpass
2.0.22-2 to 3.7.2-1), as well as from a default sid (browserpass
3.4.1-4+b2 to 3.7.2-1).. and can't reproduce it, thus lowering the
severity to important.

As browserpass is a dependency of a meta-package of mine in Debian
(which would get removed from testing if browserpass is removed), I'm
happy to help fixing it if someone can help me reproduce it.

Regards,
Daniel

#982758#34
Date:
2021-05-05 08:42:48 UTC
From:
To:
Ran into that to as said before. Tried to debug it and it indeed seems
non-trivial.

Daniel Baumann wrote:

It is clearly there and it is clearly serious as it stops _any_
further upgrades of _other_ packages for me as well for others.
Hence setting back to RC.

This is no reason at all for a severity downgrade.

Upgrading from buster to bullseye sufficed for me. Actually already
upgrading from any version shipping the symlinks described in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982758#19 should
suffice.

		Regards, Axel

#982758#39
Date:
2021-05-05 08:42:48 UTC
From:
To:
Ran into that to as said before. Tried to debug it and it indeed seems
non-trivial.

Daniel Baumann wrote:

It is clearly there and it is clearly serious as it stops _any_
further upgrades of _other_ packages for me as well for others.
Hence setting back to RC.

This is no reason at all for a severity downgrade.

Upgrading from buster to bullseye sufficed for me. Actually already
upgrading from any version shipping the symlinks described in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982758#19 should
suffice.

		Regards, Axel

#982758#44
Date:
2021-05-21 07:53:27 UTC
From:
To:
Hi all,

I'm with Daniel on this one as I cannot reproduce it either:

Preparing to unpack .../webext-browserpass_3.7.2-1+b1_amd64.deb ...
Unpacking webext-browserpass (3.7.2-1+b1) over (2.0.22-2) ...
Setting up webext-browserpass (3.7.2-1+b1) ...
Removing obsolete conffile /etc/chromium/native-messaging-hosts/com.dannyvankoote
n.browserpass.json ...

Something fishy is going on here. I'm not sure how to find out what though if I cannot reproduce it. Also I wonder if removing the package from testing is helpful or even correct in such a case. Anyway, any idea how to find out what's going on and what is different on your systems? For instance I tried on a sid system where I install the old browserpass package. Did everyone with the error see it on a dist-upgrade only? Could you test on sid?

Thanks,
Michael

#982758#49
Date:
2021-05-21 10:46:38 UTC
From:
To:
Hi Michael,

Michael Meskes wrote:

Indeed. Using a clean Sid chroot, installing webext-browserpass from
Buster and then upgrading does not exhibit this issue.

Nevertheless IIRC I ran into it when upgrading a (production) Thinkpad
from Buster to Bullseye, i.e. no other versions of webext-browserpass
than those from Buster and Bullseye were involved.

There were though a quite few other webext-* packages involved on that
dist-upgrade. Those are now installed now on bullseye and contain the common directories involved in that symlink/directory switch:

# dpkg -S /usr/share/chromium/extensions /usr/share/mozilla/extensions
webext-browserpass, webext-ublock-origin-chromium, webext-bulk-media-downloader, webext-privacy-badger, webext-https-everywhere: /usr/share/chromium/extensions
webext-browserpass, webext-ublock-origin-firefox, webext-treestyletab, webext-bulk-media-downloader, webext-form-history-control, webext-privacy-badger, webext-https-everywhere, webext-noscript, webext-debianbuttons, firefox-esr, webext-umatrix: /usr/share/mozilla/extensions

Good question. My gut feeling at least says that the RC severity is
justified as quite some people ran into it and it actually causes apt
to abort in a quite nasty way.

Currently not, unfortunately, as I don't have further ideas where to
look for.

I currently suspect a relation to respectively overlap with a similar
symlink/directory switch of maybe one of the directories mentioned
above.

(It also seems important to not just remove but really purge the
current package in case it was installed befotrehand. But I assume you
either did that or used a fresh install.)

In my case yes. I have it installed on multiple sid boxes and it
didn't occur on any of them (which are upgraded in a rolling release
fashion).

Will soonish upgrade another productive Buster desktop to Bullseye
where webext-browserpass is installed. Will have a close eye on the
moment when upgrading webext-browserpass respectively will upgrade
that package in a separate package upgrade from the remainder.

		Regards, Axel

#982758#54
Date:
2021-06-16 22:13:54 UTC
From:
To:
Hi all,

I tried with a stable chroot, then installed all the webext* packages you have
installed and then upgraded webext-browserpass. Works like a charm.

I see your point, the problem is with this setting nobody is getting the
software because of some of us having issues in the upgrade. I'd love to get
this fixed before the freeze, but no matter what I tried I cannot reproduce.

I thought so, too, but again, cannot identify the culprit.

Yeah, the latter.

Did you find out anything more?

Thanks,
Michael

#982758#59
Date:
2021-06-25 07:21:11 UTC
From:
To:
severity 982758 important
thanks

By now I've ran more test up to a full system dist-upgrade with all webext* packages installed, not a single failure.

Given that freeze is nearing and nobody's volunteering any additional
information and the bug has proven to be not reproducible, at least for me, I
downgrade it again. Yes, it can be very severe but removing the package for
everyone doesn't seem right either. Maybe by keeping it in we will get more
data to find out where the problem lies.

I'm more than willing to look into it again and fix it once we identify the reason.

Thanks,
Michael

#982758#66
Date:
2021-06-25 08:54:23 UTC
From:
To:
Hi Michael,

Michael Meskes wrote:

Sorry, still didn't get to that one desktop upgrade (at work) which is
still left for me to do.

Thanks, I agree that this is currently the best solution.

I'm also still intending to dig deeper here, but due to constraints at
work can't promise that I'll manage that dist-upgrade before the
full-freeze, sorry.

		Regards, Axel

#982758#71
Date:
2021-07-21 01:26:33 UTC
From:
To:
Hi,

Axel Beckert wrote:
without issue around webext*. Here's the hardcopy of upgrading all
chromium* and all (non-thunderbird) webext-* packages in one go:

Performing actions...
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
grave bugs of chromium (90.0.4430.212-1~deb10u1 ’ 90.0.4430.212-1) <Outstanding>
 b1 - #990079 - chromium: Update Chromium to 91.0.4472.114
Summary:
 chromium(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...] y
Reading changelogs... Done
(Reading database ... 627294 files and directories currently installed.)
Preparing to unpack .../chromium_90.0.4430.212-1_amd64.deb ...
Unpacking chromium (90.0.4430.212-1) over (90.0.4430.212-1~deb10u1) ...
Preparing to unpack .../chromium-common_90.0.4430.212-1_amd64.deb ...
Unpacking chromium-common (90.0.4430.212-1) over (90.0.4430.212-1~deb10u1) ...
Preparing to unpack .../chromium-sandbox_90.0.4430.212-1_amd64.deb ...
Unpacking chromium-sandbox (90.0.4430.212-1) over (90.0.4430.212-1~deb10u1) ...
Preparing to unpack .../chromium-driver_90.0.4430.212-1_amd64.deb ...
Unpacking chromium-driver (90.0.4430.212-1) over (90.0.4430.212-1~deb10u1) ...
Preparing to unpack .../chromium-shell_90.0.4430.212-1_amd64.deb ...
Unpacking chromium-shell (90.0.4430.212-1) over (90.0.4430.212-1~deb10u1) ...
(Reading database ... 627295 files and directories currently installed.)
Removing libicu63:amd64 (63.1-6+deb10u1) ...
Removing libjsoncpp1:amd64 (1.7.4-3) ...
Removing libre2-5:amd64 (20190101+dfsg-2) ...
Removing libvpx5:amd64 (1.7.0-3+deb10u1) ...
(Reading database ... 627257 files and directories currently installed.)
Preparing to unpack .../0-webext-browserpass_3.7.2-1+b3_amd64.deb ...
Unpacking webext-browserpass (3.7.2-1+b3) over (2.0.22-2) ...
Preparing to unpack .../1-webext-form-history-control_2.5.1.0-1_all.deb ...
Unpacking webext-form-history-control (2.5.1.0-1) over (2.3.0.0+dfsg-1) ...
Preparing to unpack .../2-webext-https-everywhere_2021.1.27-1_all.deb ...
Unpacking webext-https-everywhere (2021.1.27-1) over (2019.1.31-2) ...
Preparing to unpack .../3-webext-privacy-badger_2020.10.7-1_all.deb ...
Unpacking webext-privacy-badger (2020.10.7-1) over (2019.2.19-1) ...
Preparing to unpack .../4-webext-proxy-switcher_0.3.9-1.1_all.deb ...
Unpacking webext-proxy-switcher (0.3.9-1.1) over (0.3.9-1) ...
Preparing to unpack .../5-webext-treestyletab_3.5.20-1_all.deb ...
Unpacking webext-treestyletab (3.5.20-1) over (2.7.23-1) ...
Setting up webext-form-history-control (2.5.1.0-1) ...
Setting up webext-privacy-badger (2020.10.7-1) ...
Setting up webext-proxy-switcher (0.3.9-1.1) ...
Setting up chromium-sandbox (90.0.4430.212-1) ...
Setting up webext-browserpass (3.7.2-1+b3) ...
Removing obsolete conffile /etc/chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json ...
Setting up webext-https-everywhere (2021.1.27-1) ...
Setting up webext-treestyletab (3.5.20-1) ...
Setting up chromium-common (90.0.4430.212-1) ...
Setting up chromium (90.0.4430.212-1) ...
Setting up chromium-driver (90.0.4430.212-1) ...
Setting up chromium-shell (90.0.4430.212-1) ...
Processing triggers for mailcap (3.69) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for libc-bin (2.31-12) ...
Processing triggers for man-db (2.9.4-2) ...
Processing triggers for flwm (1.02+git2015.10.03+7dbb30-7) ...
xfwm4-settings from /usr/share/applications/lxqt-xfwm-settings.desktop cannot be found in $PATH, skipping at /usr/share/flwm/generate-flwm-menu-from-desktop-files line 125.
xfwm4-workspace-settings from /usr/share/applications/lxqt-xfwm-workspaces.desktop cannot be found in $PATH, skipping at /usr/share/flwm/generate-flwm-menu-from-desktop-files line 125.
xfwm4-tweaks-settings from /usr/share/applications/lxqt-xfwmtweaks.desktop cannot be found in $PATH, skipping at /usr/share/flwm/generate-flwm-menu-from-desktop-files line 125.
[master 431ef37] committing changes in /etc made by "aptitude -u"
 3 files changed, 13 insertions(+), 12 deletions(-)
 delete mode 100644 chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json
 create mode 100644 chromium/native-messaging-hosts/com.github.browserpass.native.json
======  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... [=============================                                                                                                                                                                                                    ]

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe@debian.org>, https://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE