ente-io / ente

Fully open source, End to End Encrypted alternative to Google Photos and Apple Photos
https://ente.io
GNU Affero General Public License v3.0
14.75k stars 764 forks source link

[Auth] Allow simple .deb installation on Ubuntu 24.04 and later #3387

Open wak-sudo opened 1 week ago

wak-sudo commented 1 week ago

Description

Tested on the .deb file of auth-v3.1.3

Problem:

On systems newer than Debian 10 .deb package can't be installed.

Output from the ubuntu-24.04.1-desktop-amd64:

> sudo dpkg -i ente-auth-v3.1.3-x86_64.deb

Preparing to unpack ente-auth-v3.1.3-x86_64.deb ... 
Unpacking auth (3.1.3+323) ...
dpkg: dependency problems prevent configuration of auth: 
 auth depends on libwebkit2gtk-4.0-37; however:
  Package libwebkit2gtk-4.0-37 is not installed.
 auth depends on gir1.2-appindicator3-0.1 | gir1.2-ayatanaappindicator3-0.1; however:
  Package gir1.2-appindicator3-0.1 is not installed.
  Package gir1.2-ayatanaappindicator3-0.1 is not installed.

dpkg: error processing package auth (--install): 
 dependency problems - leaving unconfigured
Processing triggers for gnome-menus (3.36.0-1.1ubuntu3) ...
Processing triggers for desktop-file-utils (0.27-2build1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ... 
Errors were encountered while processing:
 auth

> sudo apt install libwebkit2gtk-4.0-37

(...)
E: Package 'libwebkit2gtk-4.0-37' has no installation candidate.

Note: gir1.2-ayatanaappindicator3-0.1 is installable.

Cause:

libwebkit2gtk-4.0-37 is not present in Debian repos newer than Buster (10). In result, the same issue apply to many systems based on Debian, in particular Ubuntu newer than 19.

Workaround:

  1. Edit /etc/apt/sources.list
  2. Add "deb [trusted=yes] http://ftp.de.debian.org/debian buster main" (Germany based server, trusted can be omitted if repo is verified)
  3. sudo apt update
  4. sudo dpkg -i ente-auth-v3.1.3-x86_64.deb (results in errors)
  5. sudo apt install --fix-broken
  6. sudo dpkg -i ente-auth-v3.1.3-x86_64.deb (installs fine)
  7. Remove the added line from /etc/apt/sources.list

Version

auth-v3.1.3

What product are you using?

Ente Auth

What platform are you using?

Desktop - Linux

Artim96 commented 1 week ago

Have you tried just using apt instead of dpkg? dpkg can't handle dependencies that aren't already installed. I'm on Testing and never had any issues with it, either through apt or gnome-software.

wak-sudo commented 1 week ago
> sudo apt install ./ente-auth-v3.1.3-x86_64.deb 

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'auth' instead of './ente-auth-v3.1.3-x86_64.deb' 
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable 
distribution that some required packages have not yet been created or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 auth : Depends: libwebkit2gtk-4.0-37 but it is not installable
E: Unable to correct problems, you have held broken packages.

Well, there's no difference between dpkg and apt if the underlying issue affects both. From what I see, this problem has not been addressed at least since May 26 (#1870) and there are multiple entries for it (#2070, #2531, #2987, #3106). It is still present in v4.0.0. Using AppImage is an alternative.

Artim96 commented 6 days ago
The following packages have unmet dependencies:
 auth : Depends: libwebkit2gtk-4.0-37 but it is not installable
E: Unable to correct problems, you have held broken packages.

Like I said, It does work flawlessly on Testing, though I might have been lucky. libwebkit2gtk-4.0-37 currently is only available from stable and stable-backports. It has yet to reach Testing and the version in sid isn't available for amd64 yet. But like I said, that is an issue Debian maintainers need to fix. What happens if you manually install libwebkit2gtk-4.0-37? Because usually apt tells you when it can't install a dependency because it in turn relies on something not available. But libwebkit2gtk-4.0-37 clearly is available for any architecture supported, at least in Debian: https://packages.debian.org/bookworm/libwebkit2gtk-4.0-37. So your original comment about it missing on anything higher than Debian 10 is just plain false, as it's even available on Bullseye. And so it is at least in Ubuntu focal and all the way up to 23.10: https://packages.ubuntu.com/focal/libwebkit2gtk-4.0-37

So the only thing causing an issue is Ubuntu 24.04+ because they decided to drop support for libwebkit2gtk-4.0-37, while Debian won't scratch support before v13, and since it's still in sid it might survive at least until v14. So you might want to adapt your title to properly reflect on the actual situation. Because this issue has nothing to do with Debian and you don't experince it on Debian, but on Ubuntu. Debian 10 is now 5 years old and not even oldoldstable anymore, so you make the issue sound a lot more dramatic than it is. The issue looks more like the typical issues that will arise when you build your distro off of something that's literally named after a kid that's destroying all its toys.

wak-sudo commented 6 days ago

Artim96 is right.

I must have made a series of mistakes while researching this issue. To my excuse I will say that I browsed Ubuntu and Debian repos, and checked the installation on Debian12, but came to wrong conclusions. I apologize for the introduced confusion.

I will change the title to reflect the current state of the problem.

Eternal9100 commented 3 days ago

Obviously this effects Mint 22 as well. Same error. with v.4.0.2 of Auth, the first time I tried a .deb install. Probably same work-around.