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