brave-browser: Missing dependency on brave-keyring on the deb package of v0.66.99

Description

The deb version of v0.66.99 can not be installed due to a missing dependency on brave keyring. See “actual result” below for terminal output.

Steps to Reproduce

  1. Download the deb version of 0.66.99 from here https://github.com/brave/brave-browser/releases/download/v0.66.99/brave-browser_0.66.99_amd64.deb
  2. Instal it with (sudo) dpkg -i brave-browser_0.66.99_amd64.deb.
  3. The installation fails because it can not find brave-keyring, which is a direct dependency.

Actual result:

The installation fails, because of a missing dependency

$ sudo dpkg -i Downloads/brave-browser_0.66.99_amd64.deb 
(Reading database ... 116920 files and directories currently installed.)
Preparing to unpack .../brave-browser_0.66.99_amd64.deb ...
Unpacking brave-browser (0.66.99) over (0.65.121) ...
dpkg: dependency problems prevent configuration of brave-browser:
 brave-browser depends on brave-keyring; however:
  Package brave-keyring is not installed.

dpkg: error processing package brave-browser (--install):
 dependency problems - leaving unconfigured
Processing triggers for mime-support (3.62) ...
Processing triggers for desktop-file-utils (0.23-4) ...
Processing triggers for man-db (2.8.5-2) ...
Errors were encountered while processing:
 brave-browser

Expected result:

The installation should complete successfully.

Reproduces how often:

Everytime.

Brave version (brave://version info)

0.66.99 The requested info from brave://version is not available because the browser can not be installed.

Version/Channel Information:

  • Can you reproduce this issue with the current release? Yes, if you are on a debian based distro
  • Can you reproduce this issue with the beta channel? No,
  • Can you reproduce this issue with the dev channel? No.
  • Can you reproduce this issue with the nightly channel? No.

Other Additional Information:

  • Does the issue resolve itself when disabling Brave Shields? No
  • Does the issue resolve itself when disabling Brave Rewards? No
  • Is the issue reproducible on the latest version of Chrome? No

Miscellaneous Information:

Debian testing x64 and the installation/upgrade is done from the deb file provided from github (because there is no repo for debian). The brave-keyring is a mandatory (“hard”) dependency as seen by apt-cache

$ apt-cache depends brave-browser
...
  Depends: xdg-utils
  Depends: <brave-keyring>
  Recommends: libu2f-udev

So either provide a deb package for brave-keyring or make it an optional dependency.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (9 by maintainers)

Most upvoted comments

No, they’re different. The issue in this one is the missing dependency on the brave-keyring package whereas the issue in #5343 is the missing dependency on apt-transport-https.

While you’re right that this is not very user-friendly, that’s the expected behavior with Debian packages. dpkg is a low-level tool which doesn’t automatically resolve dependencies. The tool which does is apt.

In general, it’s not possible to install packages directly with dpkg. The only time that works is when the packages being installed are leaf packages (i.e. no dependencies).

That said, working around this limitation of dpkg is easy. Simply run apt install -f afterwards. In other words, assuming you have the repository configured, the full list of steps would look like this:

wget https://github.com/brave/brave-browser/releases/download/v0.66.99/brave-browser_0.66.99_amd64.deb
dpkg -i brave-browser_0.66.99_amd64.deb
apt install -f

For starters, I won’t use an ubuntu repo on my debian install.

I understand the confusion and you’re right about not wanting to mix packages between the Debian and Ubuntu repositories. There be dragons.

Despite the name in our repo configuration, the packages are not specific to Ubuntu. The same packages are used for all Debian-based distros. The package you got from GitHub is exactly what you get from the repo regardless of the keyword you use in the repo config file. We have an issue open to address that by removing the distro-specific names and replacing that with the word “stable”, just like Google does it for their official Chrome repositories.

However, since stretch will be labeled “oldstable” this Saturday (July 6th 2019) with the release of debian 10, aka buster, I tried “buster” there and it still works, mentioning only the missing key as above.

Similarly, the package you get when you specific stretch is the exact same one from when you specify bionic. That’s why we want to get rid of all of these distro-specific names and use the same name for all since there’s only one version of the brave-browser package, specifying the distro name is unnecessary.

In any case, if you followed my instructions using stretch instead of bionic then you have a working and supported setup. When we migrate to the single name for all distros (i.e. stable), we will maintain the old names for backward compatibility.