Installation fails on Debian 10 due to libcurl3 dependency

After installation of Debian 10 (buster), I cannot install urbackup server:

root@rohan:~# apt install urbackup-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
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:
 urbackup-server : Depends: libcurl3 (>= 7.16.2) but it is not installable
                   Recommends: libguestfs-tools but it is not going to be installed
                   Recommends: qemu-utils but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@rohan:~# apt-mark showhold
root@rohan:~#

It seems that libcurl3 has been removed from Debian.
Could you migrate to libcurl4 ?

No, then it won’t work with debian 9/8.

What is your plan for Debian package?
Will you stay on Debian 9 for long?

Are there instructions or the debian/ build files available someplace so we can roll our own debs? I searched, and looked around the website, but I couldn’t find them. Source does seem to build on Debian 10 without a problem.

libcurl4 conflicts with libcurl3, so preparing different versions of urbackup-server for Debian 10 and Debian 9 seems necessary.

The primary difference between libcurl3 and libcurl4 is that 3 uses OpenSSL 1.0 and 4 uses OpenSSL 1.1.

  • Rename libcurl3 to libcurl4, because libcurl exposes an SSL_CTX via CURLOPT_SSL_CTX_FUNCTION, and this object changes incompatibly between openssl 1.0 and openssl 1.1.

You should at least state which package you are using because there are three different variants of debian packages on the download page.

UrBackup does not care about what openssl version curl uses.

Ahh, yes, sorry. I’m looking at the deb packages in the Debian/Ubuntu section hosted at https://hndl.urbackup.org/Server/2.3.8/debian. They are listed as “stable/unstable/testing”. I happen to be using the amd64 ones, but I suspect the problem exists for all architectures. The issue is that those particular urbackup-server_2.3.8_amd64.deb files are not actually installable on stable (buster), unstable, or testing, because the libcurl3 dependency can’t be fulfilled, as Debian has transitioned to libcurl4. Being completely pedantic, libcurl3 from stretch can be installed on buster, but it conflicts with libcurl4, so ends up forcing the removal of all other buster packages that use curl.

My guess is that moving forward there will need to be at least two versions: jessie/stretch, and buster/unstable/testing. There might be other ways to solve the issue, but I can’t even guess what they are.

I dug into the Ubuntu ppa and the cosmic deb is built with a dependency on libcurl4, and it installs without issue on a Debian buster system. I’ve not done any testing other than to see it installs and runs.

Also, just so nobody has to chase these things down:

  • Debian 8 oldoldstable = Jessie
  • Debian 9 oldstable = Stretch
  • Debian 10 stable = Buster
  • Debian 11 testing = Bullseye

@uroni Can you please fix this? I just upgraded a server and now I’m kinda stuck…

root@urbackup:/etc/default# urbackupsrv
urbackupsrv: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by urbackupsrv)

@uroni, is there anything the community can do to help? I was wanting to port my server over to a Pi 4 board which requires Raspbian Buster which is based on Debian 10.

Apparently this libcurl issue impacted a lot of packages, but it was decided to move forward with the breaking change anyway: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900511 and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858398

If I understand correctly, due to some “botched upgrades” in the past on an earlier version of Debian libcurl3 can’t be installed with libcurl4 (as mentioned by JML above). Debian 10’s changes are attempting to put everything right with libcurl but they can’t make 3 and 4 coinstallable. And libcurl3 won’t be supported on Debian 10 due to Debian dropping support for SSL 1.0 (which is a good move security wise).

The package from https://software.opensuse.org/download.html?project=home%3Auroni&package=urbackup-server doesn’t work?

I completely missed the Debian 10 package on the opensuse.org site. (Guess I didn’t scroll down far enough the first time.)

Unfortunately, that won’t work for my particular use case since the Raspberry pi architecture is arm not i386 or amd64. But that is a different topic from this discussion thread.

Thanks,

The links on the urbackup download page for debian server point at hndl.urbackup.org which does not include buster and I had missed there was a second source via the OpenSuSE build service download page which does include buster.

I feel that something needs updating to clarify which is the correct repository. Are the versions that are in both places the same?

There is a Raspbian armhf package in the debian section as well… I just enabled the Raspbian 10 build (unforunately I need to manually add new distributions, so give me a heads up if that happens…), so that should be available soon as well.

The build source for that is obviously available at Show home:uroni / urbackup-server - openSUSE Build Service , you can even create an account fork that and submit changes (or I can add you as maintaner to the project).

This is getting a lot of hits. I think I fixed it by making the package depend on libcurl3-nss. Is this still occuring?