After last updated libcurl3 on libcurl4, some apps are removed.

Bug #1754294 reported by Igor Mokrushin
714
This bug affects 161 people
Affects Status Importance Assigned to Milestone
curl (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Opinion
Undecided
Unassigned

Bug Description

Hi!

After last updated libcurl3 on libcurl4, system (Kubuntu 18.04 bionic) deleted such applications as:
virtualbox-5.2
opera-stable
slack-desktop
mongodb

I really need these applications, I installed them with broken dependencies, but they are deleted after each update. Is it possible to make the dependence of the libcurl3 in libcurl4, and not remove it altogether from system?

Tags: indeed
Igor Mokrushin (mcmcc)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in curl (Ubuntu):
status: New → Confirmed
Revision history for this message
Scott Stensland (scottstensland) wrote :

uname -m && uname -r && cat /etc/*release
x86_64
4.15.0-10-generic
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic

 dpkg -l|grep libcurl
ii libcurl3-gnutls:amd64 7.58.0-2ubuntu2 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii libcurl4:amd64 7.58.0-2ubuntu2 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libcurl4-gnutls-dev:amd64 7.58.0-2ubuntu2 amd64 development files and documentation for libcurl (GnuTLS flavour)

Here is attempt to install opera browser

 sudo dpkg -i opera-stable_51.0.2830.55_amd64.deb
Selecting previously unselected package opera-stable.
(Reading database ... 228694 files and directories currently installed.)
Preparing to unpack opera-stable_51.0.2830.55_amd64.deb ...
Unpacking opera-stable (51.0.2830.55) ...
dpkg: dependency problems prevent configuration of opera-stable:
 opera-stable depends on libcurl3 (>= 7.16.2); however:
  Package libcurl3 is not installed.

dpkg: error processing package opera-stable (--install):
 dependency problems - leaving unconfigured
Processing triggers for gnome-menus (3.13.3-11ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.17-1) ...
Processing triggers for shared-mime-info (1.9-2) ...

Errors were encountered while processing:
 opera-stable

here is install libcurl3 ...

Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libcurl3 : Conflicts: libcurl4 but 7.58.0-2ubuntu2 is to be installed
 libcurl4 : Conflicts: libcurl3 but 7.58.0-2ubuntu2 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

 sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  opera-stable

Revision history for this message
Brian Murray (brian-murray) wrote :

None of the packages which you are having an issue with are ones from the official Ubuntu archive, subsequently there is nothing we (the developers of Ubuntu) can do about this. You'll need to take up the issue with the people who develop these packages.

Changed in curl (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Marcos Jacoby (marcosjacoby) wrote :

1007/5000
Truth?
I mean that a library like libcurl4 that is not available separately as it does with libcurl3 and that is threaded down the user forcing the removal of lbcurl3 and all related applications being that you are the developers and not your problem?
Are you Microsoft employees by any chance?
Because it's looking alike.
The same arrogant attitude of fucking the customer that I do what I want and he'll have to swallow me.
The problem is in curl that forces this break and jeopardizes the whole system.
I even understand using a new library with new functions, leaner and so on, but do you need to screw with the whole system or with other applications?
I'm going to have a chat with the Debian people to do the same thing and make Ubuntu impractical and give the same excuse.
Then we will see if you are developers or are like Bill Gates, thief of ideas of others, putting their own name and blaming the mistakes on others.

Revision history for this message
Igor Mokrushin (mcmcc) wrote :

When trying to solve the dependence with libcurl3 there is a problem with the removal of official Ubuntu packages...

igor@mcmcc-GL553VE:~$ LANG=C sudo apt-get install libcurl3
[sudo] password for igor:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libboost-context1.65.1 python-cffi python-pycparser python3-cffi python3-ply python3-pycparser
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libcurl4-gnutls-dev opera-stable slack-desktop virtualbox-5.2
The following packages will be REMOVED:
  cmake cmake-curses-gui cmake-qt-gui curl djvulibre-bin kde-config-whoopsie kicad libafflib0v5 libcurl4 libcurl4-openssl-dev libtsk13
  pdf2djvu sleuthkit transmission-remote-gtk uget whoopsie
The following NEW packages will be installed:
  libcurl3 libcurl4-gnutls-dev
The following packages will be upgraded:
  opera-stable slack-desktop virtualbox-5.2
3 upgraded, 2 newly installed, 16 to remove and 68 not upgraded.
Need to get 182 MB of archives.
After this operation, 79.4 MB disk space will be freed.
Do you want to continue? [Y/n]

How to be? Are you offering to stay without them?

Revision history for this message
Marcos Jacoby (marcosjacoby) wrote :

The libcurl4 package was not showing up for me in Ubuntu Package Search and a few minutes ago it appeared!
What I can suggest is a workaround that applies to users of Ubuntu Bionic Beaver that is still in beta.
Download the files libcurl3_7.58.0-2ubuntu2_amd64.deb and libcurl4_7.58.0-2ubuntu2_amd64.deb.
Unpack the contents of each one at a time into a folder and modify the control file in the DEBIAN folder by removing the constraint in the conflict and replace fields.
Repackage the files and install them with dpkg with the --force-all option as they modify some common files.
Take a hold on these packages with apt-mark and dpkg selections.
I gave the following commands to hold:
sudo apt-mark hold libcurl3 libcurl4
echo "libcurl3 hold" | sudo dpkg --set-selections
echo "libcurl4 hold" | sudo dpkg --set-selections

Recalling that this is a workaround only applicable to version 18.04 since these versions of libcurl3 and 4 only exist in it and version 18.04 is still in development.
Remembering that this workaround is to allow the installation and operation not only of the applications mentioned, but also curl and uget but that side effects not yet observed can manifest themselves.
Use at your own risk!

Revision history for this message
Igor Mokrushin (mcmcc) wrote :

I manually edited file /var/lib/dpkg/status, it replaced libсurl3 (>= 7.16.2) to libcurl4 (>= 7.16.2) and libcurl3 to libcurl4, in those places where there is no version checking. Almost all the packages that require libcurl3 work without problems, except for the virtualbox, for it we had to take libcurl.so.4 from the libcurl3 package and put it in the /usr/lib/virtualbox directory...

This workaround makes it possible updates all the packages except those for which the changes have been made with the libcurl3 dependencies. It's better than marking packages as hold...

Revision history for this message
Bernhard M (bmaehr) wrote :

I have the same problem with Kopano packeges and php 7.0.

In fact I even don't know why there is a conflict and a problem to solve this. libсurl3 should install /usr/lib/x86_64-linux-gnu/libcurl.so.3 and libcurl4 /usr/lib/x86_64-linux-gnu/libcurl.so.4

Revision history for this message
Nikolai Försterling (thefoster) wrote :

I don't understand the conflict between libcurl3 and libcurl4 too, why can't they coexist?
Still wondering how to handle that while keeping opera.

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

The reason they conflict, is that both bundle libcurl.so.3 and libcurl.so.4, which are in fact just symlinks to the actual library.

The best would be to release a new version of libcurl3 that does NOT have a libcurl.so.4 symlink, ONLY the libcurl.so.3 one.
And then provide a version of libcurl4 that ONLY has libcurl.so.4, and states that it only conflicts with the libcurl3 versions without the change above.

@Brian Murray would it be possible to provide such a solution, to allow graceful upgrades? otherwise I'd expect a lot of similar reports when users upgrade to Bionic, with popular applications like Spotify depending on libcurl3, and that Debian still uses the libcurl3 in their repositories, only their 'experimental' has switched to the libcurl4 naming.

Revision history for this message
Igor Mokrushin (mcmcc) wrote :

The problem is that, in libcurl3 used libcurl.so.4, and not libcurl.so.3...

Revision history for this message
Igor Mokrushin (mcmcc) wrote :

igor@mcmcc-GL553VE:~$ ldd /usr/lib/x86_64-linux-gnu/opera/opera | grep libcurl
        libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f5e8cb3c000)

or

igor@mcmcc-GL553VE:/usr/lib/virtualbox$ sudo ldd /usr/lib/virtualbox/VBoxRT.so | grep libcurl
        libcurl.so.4 => /usr/lib/virtualbox/libcurl.so.4 (0x00007f62b1a1e000)

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

Yes, but, it are symlinks that could trivially be changed:

ls -al /usr/lib/x86_64-linux-gnu/libcurl.so.*
lrwxrwxrwx 1 root root 12 jan 25 10:19 /usr/lib/x86_64-linux-gnu/libcurl.so.3 -> libcurl.so.4
lrwxrwxrwx 1 root root 16 jan 25 10:19 /usr/lib/x86_64-linux-gnu/libcurl.so.4 -> libcurl.so.4.5.0
-rw-r--r-- 1 root root 518600 jan 25 10:19 /usr/lib/x86_64-linux-gnu/libcurl.so.4.5.05.0

cat /var/lib/dpkg/info/libcurl3\:amd64.list
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcurl.so.4.5.0
/usr/share
/usr/share/doc
/usr/share/doc/libcurl3
/usr/share/doc/libcurl3/NEWS.Debian.gz
/usr/share/doc/libcurl3/changelog.Debian.gz
/usr/share/doc/libcurl3/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libcurl3
/usr/lib/x86_64-linux-gnu/libcurl.so.3
/usr/lib/x86_64-linux-gnu/libcurl.so.4

Revision history for this message
Igor Mokrushin (mcmcc) wrote :

My all problematic applications use libcurl.so.4 from libcurl3 and none of which does not use libcurl.so.3, I do not understand how symlink to unused library will solve this problem?

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

If they were compiled against libcurl.so.4 I assume they would be compiled against abi-4 of libcurl, right?
AFAIK the supplying of libcurl.so.4 by libcurl3 was a trick by Debian by keeping the same exposed symbols, which kept abi-3 and abi-4 the same.
So I'd assume even though those packages specifying a dependency on libcurl3, in fact they did depend on libcurl.so.4 which should no problem to be provided by the new libcurl4.

I see btw same ldd result on Spotify:
ldd /usr/bin/spotify | grep libcurl
 libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007feea6b5a000)

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

Ok, Igor you are right about them being linked to libcurl.so.4 while assuming abi-3; this is a very unpleasant situation that indeed cannot even be resolved with adjusting the symlinks :-/

Revision history for this message
Rocko (rockorequin) wrote :

@Brian Murray: I think that it is incorrect to mark this bug as invalid - at the very least it should be kept as confirmed against the 18.04 release notes so they can include a warning against upgrading to Ubuntu 18.04 because it may not be compatible with a number of popular third-party applications.

zyrorl (zyrorl)
Changed in curl (Ubuntu):
status: Invalid → Confirmed
Revision history for this message
Rocko (rockorequin) wrote :

FWIW, I got opera-stable and viber to install with libcurl4 by extracting their debs, manually editing their control file to say libcurl3|libcurl4, recreating the deb using the "ar -r" command, and then using dpkg -i to reinstall. They run fine but of course I haven't been able to test all their functionality.

Revision history for this message
Yuan (rmafort) wrote :

@Rocko method worked for slack-desktop 3.1 too. Installed without issues after dependency edited on control and remade .deb

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

For spotify this trick doesn't work, it complains about the changed CURLOPT_SSL_CTX_FUNCTION symbol when starting the application.

Revision history for this message
Rocko (rockorequin) wrote :

@Maarten: Maybe spotify will install and work from its flatpak? It's the second flatpak app listed here: https://www.omgubuntu.co.uk/2017/07/7-flatpak-apps-can-install-right-now-flathub

Revision history for this message
Maarten Fonville (maarten-fonville) wrote :

Thanks for the hint, I use their snap-package as workaround, as hinted by their developer:
https://community.spotify.com/t5/Desktop-Linux/libcurl4/m-p/4411011#M15902

Revision history for this message
Daniele Besana (WP-OK) (daniele-wpok) wrote :

I installed Slack ignoring the dependency and works:
dpkg --ignore-depends libcurl3 -i slack-desktop-3.1.0-amd64.deb

but now every apt operation tell me there's the broken dependency.

Revision history for this message
Manel R. Doménech (manelio) wrote :

This is a very big problem.

A lot of packages from external repos are still using libcurl3.

In my opinion libcurl3 and libcurl4 should be able to coexist.

I tried the workaround proposed by @marcosjacoby, but I get errors like:

/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found

or

curl: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by curl)

It depends on the last libcurl version I installed.

Revision history for this message
Tim De Pauw (timdepauw) wrote :

Confirming that this seems to fix slack-desktop for now:

$ wget https://downloads.slack-edge.com/linux_releases/slack-desktop-3.1.0-amd64.deb
$ dpkg-deb -R slack-desktop-3.0.1-amd64.deb slack
$ vim slack/DEBIAN/control # and replace libcurl3 with libcurl4
$ dpkg-deb -b slack slack.deb
$ sudo dpkg -i slack.deb

which also means that the Slack team should be able to put out a new version pretty quickly.

Still, if there's a way for libcurl3 and libcurl4 to coexist, that'll also solve a bunch of issues.

Revision history for this message
Kirill Romanov (djaler1) wrote : Re: [Bug 1754294] Re: After last updated libcurl3 on libcurl4, some apps are removed.

This method doesn't work with Insomnia, for example

ср, 28 мар. 2018 г., 16:20 Tim De Pauw <email address hidden>:

> Confirming that this seems to fix slack-desktop for now:
>
> $ wget
> https://downloads.slack-edge.com/linux_releases/slack-desktop-3.1.0-amd64.deb
> $ dpkg-deb -R slack-desktop-3.0.1-amd64.deb slack
> $ vim slack/DEBIAN/control # and replace libcurl3 with libcurl4
> $ dpkg-deb -b slack slack.deb
> $ sudo dpkg -i slack.deb
>
> which also means that the Slack team should be able to put out a new
> version pretty quickly.
>
> Still, if there's a way for libcurl3 and libcurl4 to coexist, that'll
> also solve a bunch of issues.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1754294
>
> Title:
> After last updated libcurl3 on libcurl4, some apps are removed.
>
> Status in curl package in Ubuntu:
> Confirmed
>
> Bug description:
> Hi!
>
> After last updated libcurl3 on libcurl4, system (Kubuntu 18.04 bionic)
> deleted such applications as:
> virtualbox-5.2
> opera-stable
> slack-desktop
>
> I really need these applications, I installed them with broken
> dependencies, but they are deleted after each update. Is it possible
> to make the dependence of the libcurl3 in libcurl4, and not remove it
> altogether from system?
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294/+subscriptions
>

Revision history for this message
Dylan Borg (borgdylan) wrote :

This is causing havoc! People installing .NET Core which depends on libcurl3 cannot install cmake that is depending on libcurl4. The nomenclature of these packages implies that they should be installable side by side.

Revision history for this message
Manel R. Doménech (manelio) wrote :

I agree with @borgdylan. I'm thinking of leaving Ubuntu just for this reason. Too much time without this problem being fixed.

Revision history for this message
Zac Collier (zacacollier) wrote :

@djaler1 I was able to use the method detailed by @timdepauw to get both Slack and Insomnia working - for Insomnia I just grabbed the raw deb from here

https://builds.insomnia.rest/downloads/ubuntu/latest

Revision history for this message
Kirill Romanov (djaler1) wrote :

Insomnia now can work without libcurl as dependency. It now statically
linked

ср, 25 апр. 2018 г., 19:40 Zac Collier <email address hidden>:

> @djaler1 I was able to use the method detailed by @timdepauw to get both
> Slack and Insomnia working - for Insomnia I just grabbed the raw deb
> from here
>
> https://builds.insomnia.rest/downloads/ubuntu/latest
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1754294
>
> Title:
> After last updated libcurl3 on libcurl4, some apps are removed.
>
> Status in curl package in Ubuntu:
> Confirmed
>
> Bug description:
> Hi!
>
> After last updated libcurl3 on libcurl4, system (Kubuntu 18.04 bionic)
> deleted such applications as:
> virtualbox-5.2
> opera-stable
> slack-desktop
>
> I really need these applications, I installed them with broken
> dependencies, but they are deleted after each update. Is it possible
> to make the dependence of the libcurl3 in libcurl4, and not remove it
> altogether from system?
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294/+subscriptions
>

Revision history for this message
Corey Seliger (seliger) wrote :

This also creates a conflict with r-core-base. I can have curl installed or R installed, but not both at the same time. Ubuntu 18.04.

Revision history for this message
Toomas (toomaskaevand) wrote :

I have the same problem with Slack 3.1.1, R (r-core-base) and curl. Either I have installed curl and r-core-base or Slack (also there were problems with Spotify). If I install Slack which depends on libcurl3 then I have to remove curl and r-core-base. Very annoying.

Revision history for this message
Justin Nichols (jnichols21) wrote :

I do not understand how this did not hold up the release of Ubuntu 18.04. Many apps now conflict because of this issue.

Revision history for this message
Evgeny Brazgin (xapienz) wrote :

Another solution for this problem is downloading sources for libcurl4 package (apt-get source libcurl4), modifying "control" file by adding "Provides: libcurl3 (= ${binary:Version})" to libcurl4 section and rebuilding the package. It may also be necessary to add the new version to "changelog", in my case apt couldn't install the new deb right.
After that, everything mostly works well, except some apps (like virtualbox-5.2), which complain like "version `CURL_OPENSSL_3' not found", but for virtualbox-5.2 it is solved by installing the package virtualbox.

Revision history for this message
Dave English (sandersw) wrote :

My workaround for slack-desktop was to install using snap:

sudo snap install slack --classic

Revision history for this message
MasterCATZ (mastercatz) wrote :

slimjet is another victim

root@aio:/home/aio/Downloads# dpkg -i slimjet_amd64.deb
Selecting previously unselected package slimjet.
(Reading database ... 682186 files and directories currently installed.)
Preparing to unpack slimjet_amd64.deb ...
Unpacking slimjet (18.0.5.0) ...
dpkg: dependency problems prevent configuration of slimjet:
 slimjet depends on libcurl3; however:
  Package libcurl3 is not installed.

dpkg: error processing package slimjet (--install):
 dependency problems - leaving unconfigured
Processing triggers for menu (2.1.47ubuntu2) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1) ...
Processing triggers for bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for desktop-file-utils (0.23-1ubuntu3) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for man-db (2.8.3-2) ...
Errors were encountered while processing:
 slimjet
root@aio:/home/aio/Downloads# apt install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  slimjet
0 to upgrade, 0 to newly install, 1 to remove and 20 not to upgrade.
1 not fully installed or removed.
After this operation, 260 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
root@aio:/home/aio/Downloads# apt install libcurl3
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 libcurl3 : Conflicts: libcurl4 but 7.58.0-2ubuntu3 is to be installed
 libcurl4 : Conflicts: libcurl3 but 7.58.0-2ubuntu2 is to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
root@aio:/home/aio/Downloads# apt --fix-broken install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  slimjet
0 to upgrade, 0 to newly install, 1 to remove and 20 not to upgrade.
1 not fully installed or removed.
After this operation, 260 MB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
root@aio:/home/aio/Downloads# uname -a
Linux aio 4.15.10-041510-generic #201803152130 SMP Thu Mar 15 21:32:57 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
root@aio:/home/aio/Downloads#

Revision history for this message
noabody (noabody) wrote :

I'm re-posting this comment I made on the ngemu forums as it is related.

These strings are present in compiled epsxe_x64 (hex-edit).
```
libcurl.so.4.curl_easy_init.curl_easy_setopt.curl_easy_cleanup.curl_easy_perform.CURL_OPENSSL_3
```

It lists the expected soname (libcurl.so.4) along with the symbol version (CURL_OPENSSL_3).

Installed libcurl4_7.58.0-2ubuntu3_amd64.deb:
```
readelf -Ws /usr/lib/x86_64-linux-gnu/libcurl.so.4 | grep curl_version
  397: 0000000000024980 172 FUNC GLOBAL DEFAULT 13 curl_version_info@@CURL_OPENSSL_4
  405: 0000000000024800 372 FUNC GLOBAL DEFAULT 13 curl_version@@CURL_OPENSSL_4
```

Conflicting libcurl3 package libcurl3_7.58.0-2ubuntu2_amd64.deb:
```
readelf -Ws libcurl.so.4 | grep curl_version
  389: 0000000000024700 172 FUNC GLOBAL DEFAULT 13 curl_version_info@@CURL_OPENSSL_3
  397: 0000000000024580 372 FUNC GLOBAL DEFAULT 13 curl_version@@CURL_OPENSSL_3
```

A work-around would be to extract libcurl.so.4.5.0 (from libcurl3_7.58.0-2ubuntu2_amd64.deb) into the same folder as epsxe_x64, sym-link or rename it to libcurl.so.4, then run epsxe from a terminal with command:
```
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./epsxe_x64
```

I toyed with other solutions but didn't want to mess up system libraries when ldconfig eventually caches the symbols.

Could also use ldd to get same info as hex-editor.
```
ldd epsxe_x64 | grep -i curl
./epsxe_x64: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./epsxe_x64)
    libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fee19108000)
```

Revision history for this message
Adriano Varoli Piazza (adrianovaroli) wrote :

>None of the packages which you are having an issue with are ones from the official Ubuntu archive, subsequently there is nothing we (the developers of Ubuntu) can do about this. You'll need to take up the issue with the people who develop these packages.

Maybe considering whether to break Slack and Virtualbox is a nice idea when updating libraries for an LTS. Just a thought.

Revision history for this message
Dylan Borg (borgdylan) wrote :

Can't canonical turn libcurl3 into a transitional package for libcurl4? When I did so manually I got stuff to work fine. Most 3rd party binaries use dot target libcurl3 as there was no libcurl4 package when in fact they'd work fine against libcurl4 since the ABI did nto change between curl 3 and 4, only the headers got changed. Please have this fixed. An LTS should be reliable in every aspect including the fact that it should not break installs.

Revision history for this message
Antonio Pérez (skarcha) wrote :

What a shame! In this situations I always remember Linus Torvalds words: never break user experience.

https://felipec.wordpress.com/2013/10/07/the-linux-way/
https://unix.stackexchange.com/a/235532

description: updated
26 comments hidden view all 106 comments
Revision history for this message
Evgeniy (ev-ev) wrote :

+1 to #66

Revision history for this message
Jochem Blok (jochem.blok) wrote :

Geachte heer/mevrouw,

Bedankt voor uw e-mail!

Op maandag ben ik niet aan het werk. Mijn werkdagen zijn dinsdag tot en met vrijdag. Ik zal uw mail dan in behandeling nemen.

   Met vriendelijke groet,

   Jochem Blok
   Programmeur

      E: <email address hidden>

      T: +31 (0) 164 210 240

      Faster Forward | Stationsstraat 14
      4611 CC Bergen op Zoom | www.fasterforward.nl

   Op deze e-mail is een disclaimer van toepassing, ga naar www.fasterforward.nl/e-mail-disclaimer
   A disclaimer is applicable to this email, please refer to www.fasterforward.nl/e-mail-disclaimer

Van: Evgeniy (<email address hidden>)Datum: 09-07-2018 01:45Aan: <email address hidden> (<email address hidden>)Onderwerp: [bug 1754294] Re: After last updated libcurl3 on libcurl4, some apps are removed.
+1 to #66

--
You received this bug notification because you are subscribed to
the bug
report.
https://bugs.launchpad.net/bugs/1754294

Title:
After last updated libcurl3 on libcurl4, some apps are
removed.

Status in curl package in Ubuntu:
Confirmed

Bug description:
Hi!

After last updated libcurl3 on libcurl4, system (Kubuntu 18.04
bionic) deleted such applications as:
virtualbox-5.2
opera-stable
slack-desktop
mongodb

I really need these applications, I installed them with
broken
dependencies, but they are deleted after each update. Is it
possible
to make the dependence of the libcurl3 in libcurl4, and not remove
it
altogether from system?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294/+subscriptions

Revision history for this message
und3ath (peto-z) wrote :

Mysql Workbench is also affected and removed after updating to curl4 from curl3

1 comments hidden view all 106 comments
Revision history for this message
Mark Daku (markdaku) wrote :

Can this not be done?

Create new meta package libcurl
libcurl depends on libcurl3 >= newversion with fix
libcurl depends on libcurl4 >= newversion with fix

libcurl3 removes the hack of having libcurl.so.4
libcurl4 contains a proper libcurl.so.4

They should be able to co-exist at this point. Well actually they need to co-exist because there is zero chance everyone will upgrade all at once and pass testing etc.

-----------------

OR Just plain Nuke libcurl4 all together and do a version jump up to libcurl5. And merge all libcurl4 code into the libcurl3 package.

Revision history for this message
Mark Daku (markdaku) wrote :

Or can this be done.

Change libcurl3 into a meta package that depends on libcurl3-4.
Change libcurl4 into a meta package that depends on libcurl3-4.

libcurl3-4 is unified package of 3 and 4 code.

Note: Someone will have to work with upstream in order to bump libcurl to version5. So that libcurl3 code can be depricated. This version 5 code in reality is libcurl 4 code only. But the lib would be a new version.

Again:
Both lib3 and lib4 must be able to co-exist on a system. If they don't way to much stuff breaks.

Revision history for this message
Evgeny Brazgin (xapienz) wrote :

Hi Mark,
The problem is a little more complex.

For example, let's take package virtualbox-5.2 from official virtualbox repo (https://download.virtualbox.org/virtualbox/debian/).
1. Deb package depends on libcurl3.
2. Its binary is linked to library with name 'libcurl.so.4'.
3. Its binary requires existence of versioned symbols with names like 'curl_version_info@@CURL_OPENSSL_3'.

2 and 3 together don't allow simply solve the problem, because there are apps, which read library of version 4 and use API of version 3.

Revision history for this message
Mazy (mazy) wrote :

same with mongodborg - depends on libcurl3

Revision history for this message
Donjan Rodic (bryonak) wrote :

Upgraded from 16.04 to 18.04.1 expecting stability. Now I can't have cmake and google earth installed simultaneously without tedious manual package patching at every update?!

$ sudo apt install cmake libcurl3
[...]
 libcurl3 : Conflicts: libcurl4 but 7.58.0-2ubuntu3.2 is to be installed
 libcurl4 : Conflicts: libcurl3 but 7.58.0-2ubuntu2 is to be installed

Revision history for this message
William Jojo (w-jojo) wrote :

Sharing some other details and help in case it can benefit anyone.

# Workaround for the dependency
https://depts.washington.edu/bitblog/2018/06/libcurl3-libcurl4-shibboleth-php-curl-ubuntu-18-04/

# Official xmltooling dependency bug that breaks libapache2-mod-shib2
https://bugs.launchpad.net/ubuntu/+source/xmltooling/+bug/1776489

Bill

Revision history for this message
Juan David Alvarez Cano (judalvarezca) wrote :

mssql-server is another fallen one... depends on libcurl3, and force me to uninstall KiCAD, libcurl4, libcurl4-openssl-dev, cmake and curl...
How can a mess like this one make it to a LTS release...
And also #3 answer is just awful, how can you just wash your hands like that.

Revision history for this message
John McLane (z3r0cool) wrote :

Can anyone from maintainers work on this bug, Please ? As said in comment #3, is there anyone who can at least point me on where to solve this issue. I know things get frustrating when maintainers get comments like #4. Now would you guys please let go and solve this bug. It will help folks like me. Thanks

Revision history for this message
John McLane (z3r0cool) wrote :

As said in comment #3 I opened an issue #2944 on github. Here is the link https://github.com/curl/curl/issues/2944.

Revision history for this message
Jeremy Akers (irwinr12) wrote :

So it's September 2018. 18.04 was released in April 2018. And we still can't have "curl" and "VirtualBox" installed simultaneously? You have got to be freaking kidding me.

All because someone at Canonical decided this was "not their problem" to ensure that libcurl3 and libcurl4 could be installed side by side? Apparently every app in the literal Linux universe needs to update to libcurl4 the instant Ubuntu decides to upgrade otherwise it can't be installed on the latest version of Ubuntu?

Revision history for this message
Gerben Wijnja (gerben-7) wrote :

And here's another one... I'm in Ubuntu 18.04, and Apache 2.4 and cURL can not be installed at the same time.

apache2-bin depends on libcurl3
curl depends on libcurl4

:-(

Revision history for this message
Nick (nforced) wrote :

Any solution to the problem will be highly appreciated at this point ~(;

Revision history for this message
untoreh (untoreh) wrote :
Revision history for this message
David Dombrowsky (davek) wrote :

Here's what I did to "solve" it on 18.04

{{{
git clone https://github.com/curl/curl.git
cd curl
git checkout curl-7_58_0
autoreconf -i
sudo mkdir /opt/curl
./configure --prefix=/opt/curl
make
sudo make install
ln -s /opt/curl/bin/curl* /usr/local/bin/
}}}

Of course, that doesn't really fix anything, but it gets a compatible version of curl on to this system.

Revision history for this message
John McLane (z3r0cool) wrote :

Seriously is there anyone working on this bug?? Please help us by solving this bug. This is driving crazy to lots of people

Revision history for this message
cljk (marcel-pokrandt) wrote :

I´m having a problem with this issue too. I´m using a DEV-System on Ubuntu 18.04 with multiple installed PHP-versions (by ondrej) connected to Apache2 with FPM-modules. I cannot install "php-curl (7.1)" (by ondrej) because it depends on "libcurl4" ... and installing libcurl4 would result in deinstalling apache2 (and several other packages) which is dependent on libcurl3.

So my problem is not on pure Ubuntu - but I personally would need both lib versions at same time.

Revision history for this message
Duane Ellis (duanesd) wrote :

for an Explanation of the problem, and a work around see:

https://github.com/GitTools/GitVersion/issues/1508

the problem started with libcurl3 having an incorrect symlink named: 'libcurl.so.4'

Revision history for this message
heytimc (heytimc) wrote :

 Thanks for the solution :)
Tim

    On Friday, 19 October 2018, 02:06:26 GMT+1, Duane Ellis <email address hidden> wrote:

 for an Explanation of the problem, and a work around see:

https://github.com/GitTools/GitVersion/issues/1508

the problem started with libcurl3 having an incorrect symlink named:
'libcurl.so.4'

** Bug watch added: github.com/GitTools/GitVersion/issues #1508
  https://github.com/GitTools/GitVersion/issues/1508

--
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1754294

Title:
  After last updated libcurl3 on libcurl4, some apps are removed.

Status in curl package in Ubuntu:
  Confirmed

Bug description:
  Hi!

  After last updated libcurl3 on libcurl4, system (Kubuntu 18.04 bionic) deleted such applications as:
  virtualbox-5.2
  opera-stable
  slack-desktop
  mongodb

  I really need these applications, I installed them with broken
  dependencies, but they are deleted after each update. Is it possible
  to make the dependence of the libcurl3 in libcurl4, and not remove it
  altogether from system?

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1754294/+subscriptions

Revision history for this message
John A Ramirez (mrcantaloupe) wrote :

I recently encountered this problem in 18.04 trying to play a game I recently purchased, Prime Mover. Upon startup it immediately aborts with the error

./PrimeMover: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./PrimeMover)

I realize it's not as vital as document databases or web browsers or version controllers, but I'm a bit shocked that the problem is this widespread.

Is there any news on this? Who maintains libcurl? This problem was reported eight months ago, and still no one is assigned to it?

Revision history for this message
David Dombrowsky (davek) wrote :

So basically the state of this bug is we still need 2 systems:
* 1 with libcurl3 and everything that depends on it, like virtualbox and slack
* another with libcurl4 and everything that depends on it, like kicad

Is there no work-around?

Revision history for this message
Petr Sedlacek (piit79) wrote :

@davek I'm not saying this bug isn't bad but virtualbox-5.2 and slack-desktop have been fixed a long time ago. virtualbox-5.2 depends on libcurl4 and slack-desktop even better on "libcurl3 | libcurl4".

Revision history for this message
David Dombrowsky (davek) wrote :

AH HA!

@petr-sedlacek I thought the problem was: the oracle provided version of virtualbox depends on libcurl3, and the canonical provided version is 5.0 doesn't have 64-bit support (or at least, it doesn't work yet).

Whelll....

Turns out I was downloading the wrong version from Oracle. There is a "xenial" version of 5.2_5.2.22-126460, and a "bionic" version. That's right, two different versions of the same version. EXCELLENT! Install the copy of virtualbox for bionic and all is right with the world.

I apologize for my annoyance :)

Dave Chiluk (chiluk)
tags: added: indeed
Revision history for this message
László Zsolt Nagy (nagylzs) wrote :

I have installed Ubuntu 18.04 because I thought it must already be stable. Then I had to find out that it is impossible to run node js 11 and mongodb 4 on the same system, just because node js 11 depends on libcurl4 and mongodb-org 4 depends on libcurl3, and they cannot coexist. Come on, this bug has been here for more than 6 months now! I don't have a choice but to select a different distribution. :-(

Revision history for this message
Claire Lynn (lemmaprism) wrote :

I am also affected by this problem.
Made a workaround by downloading curl3 and passing it manually to anything that needs it. (Replace the original with a shell script that calls this.)
`LD_LIBRARY_PATH=$HOME/mylib/curl3:$LD_LIBRARY_PATH application_name`

Revision history for this message
Nick (nforced) wrote :

Btw I made an alias to update my laptop taking care of some of the annoying stuff regarding this issue. Modify to fit your needs (:

alias distup='apt -y --fix-broken install && apt update && apt upgrade && apt -y autoremove && dpkg --ignore-depends libcurl3 -i ~/viber.deb'

Revision history for this message
John McLane (z3r0cool) wrote :

Hellooooo Anyone from maintainers is this bug ever going to be fixed ? If not then atleast close this bug. It freaks me out to come here every week and only confirmed tag. Please do something about this.

Revision history for this message
Alex Fedorov (sannek8552) wrote :

Just solved this issue on Debian 9.
After upgrade from previous version I had old sources.list. That was my issue.
Just set correct version of sources.list and ran sudo apt-get update && sudo apt-get upgrade
And after that I found that curl library now require libcurl3 instead of libcurl4. Maybe this can help someone...

Revision history for this message
James Howe (jameshowe) wrote :

> None of the packages which you are having an issue with are ones from the official Ubuntu archive

What about these? Why is libcurl3 even in Bionic as a conflicting package if nothing was supposed to use it?

$ apt-cache rdepends libcurl3
libcurl3
Reverse Depends:
  libcurl-openssl1.0-dev
  |flashplugin-installer
  libxmltooling7
  ruby-ethon

Revision history for this message
Christi Thomas (1rf2rookie) wrote :

I tried installing 3 different libcurl3_7.52.1-5 flavours like gnut_ls, nss..etc and it still says libcurl3 not installed.what should i do?

Revision history for this message
Adrianvg (adrianvg) wrote :

Dev issued me a ticket as he needed php7.0-curl on a server (using Shibd for user authentication) running Ubuntu 18.04 LTS, so I obliged.
Dependency libcurl4 was needed too, but had to stop there as the package shibboleth-sp2-common was to be removed. The shibboleth-sp2-common contains the shib daemon.
Some googling got me to https://depts.washington.edu/bitblog/2018/06/libcurl3-libcurl4-shibboleth-php-curl-ubuntu-18-04/ and of course here.

My understanding is that Shibboleth is pretty widely used worldwide in university authentication solutions (we're a major Swedish Uni BTW) - how could this have slipped through?

Is this a lost cause, do we wait for the next LTS release and hope for the best or what?

Revision history for this message
Petr Sedlacek (piit79) wrote :

@adrianvg Despite the very poor planning and execution of the libcurl3/libcurl4 transition, the best solution is to get all the relevant packages updated to use libcurl4. I very much doubt the next LTS release will resolve this.

Revision history for this message
Adrianvg (adrianvg) wrote :

Thanks Petr. I'll snoop around and see if I can find the future roadmap for Shibboleth wrt libcurl3/4. I have this gut-feeling not everything is a-okay over there. We can't be the only ones getting hit ny this...

Revision history for this message
Norman Wilson (norma7) wrote :

The specific package on which Shibboleth depends, and that in turn demands libcurl3,
is libxmltooling7, in case that helps.

And no, Adrianv, you're not the only one being hit by this!

Revision history for this message
Andriy Podanenko (podarokua) wrote :

I've removed all apt sources.list and added back from current version of Ubuntu which helped me to package by package upgrade it to current Ubuntu version of the package
I had same issues and they were in a system because some packages were from the previous version ( 16 ) which must be upgraded after OS upgrade to 18

so rm -rf /etc/apt/sources.list.d/*
apt-get update
apt-get upgrade

add all repositories back but for current version of Ubuntu and you'll succeed

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

this is related to libssl1.0 ("libcurl3") -> libssl1.1 ("libcurl4") transition.

The two conflict on disk.

After bionic release, we have upgraded to libssl1.1. Which means switch to libcurl4 for everything.

There were two packages, in bionic, that did not support libssl1.1 and thus had to use the old libssl1.0 based "libcurl3" which conflicts with libcurl4.

Post-bionic those two packages were ported to libssl1.1 and libcurl3 was removed from the archive.

If you must use the two apps that need libcurl3 on bionic, ensure that you install them in a chroot/container, such that it doesn't conflict and try to remove most of the system.

I'm not sure what i can do, to make any of this better on bionic or xenial.

Upgrade to focal? Everything is fixed there for this.

Changed in curl (Ubuntu):
status: Confirmed → Fix Released
Changed in curl (Ubuntu Bionic):
status: New → Opinion
Revision history for this message
Evgeny Brazgin (xapienz) wrote :

@xnox,

I think for bionic it may be possible to port changes from https://github.com/xapienz/curl-debian-scripts (branch ppa_bionic) into upstream ubuntu (currently debs are in PPA https://launchpad.net/~xapienz/+archive/ubuntu/curl34). I can't guarantee that such constructed binaries will work for all cases, but during the last 2.5 years I haven't got any complaints from PPA users.

For focal - maybe it is already fixed, but I see that around 900 people are still using my PPA in focal, so maybe there are some apps which still require it.

Displaying first 40 and last 40 comments. View all 106 comments or add a comment.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.