Flash 10 uses native libcurl

In Adobe’s Penguin.SWF blog, we can learn some details about the upcoming version 10 of the Adobe flash player for Linux:

They’ll rely on more libraries to be present in the system rather than provide them all by themselves in their own install. This apparently includes libcurl.

So if you get the RPM of the pre-release player, you’ll notice that it requires “libcurl.so.3” which is the old SONAME for libcurl (libcurl 7.15.5 was the last release which used the number 3) which no up-to-date distribution should provide anymore. Since october 2006 we’ve shipped libcurl.so.4.

Apparently, this made the Fedora people first implement a work-around for this that re-introduces the SONAME 3 from the same source the SONAME 4 is made from, only to a short while afterwards revert that decision

An interesting side-note is how the Fedora people repeat over and over in those threads that libcurl with SONAME 3 and SONAME 4 use the same ABI, although that is not true (at least not by my definition of what an ABI is). The bump was not accidentally made.

Update: it seems some blame this 3 == 4 thing on Debian

5 thoughts on “Flash 10 uses native libcurl”

  1. Well, you could also argue that these guys could ask the libcurl developers about things, as then they would get the facts from the people who makes the lib. I don’t think it is my job to chase around crazy linux distro people and tell them about how I view their packaging choices. They’re free to act however they want.

    Also, I’ll admit that Fedora’s choices in the past also gives me very little incentive to help them: https://bugzilla.redhat.com/show_bug.cgi?id=427966

  2. First off, as the individual who made the change, let me apologize for any slight towards you or curl that you may feel, it was certainly not my intent.

    When we discovered that Flash 10 wouldn’t work on any Fedora release, we asked Adobe about rebuilding against modern curl, but the response that we got was a no. The distribution that they build their Flash bits against only had libcurl.so.3, and they weren’t about to do multiple builds. Besides, didn’t we know that there was no ABI break? Look at Debian/Ubuntu!

    This is where we should have asked you (curl upstream), but instead, we looked at Debian, and sure enough:


    Since we couldn’t make a symlink to solve the problem (we needed an actual library file to have rpm autodetect it as a library provide), I implemented the hack that you’ve seen.

    This morning, I’ve checked some of the other popular Linux distros:

    Ubuntu (same as Debian):

    Mandriva 2008.1:
    [spot@localhost ~]$ rpm -qlp libcurl4-7.18.0-1mdv2008.1.i586.rpm

    (I’m admittedly not an expert at translating ebuilds, but it looks like they’re not doing anything to generate a libcurl.so.3)

    [spot@localhost ~]$ tar tvfz curl-7.16.2-i486-1.tgz |grep libcurl.so
    -rwxr-xr-x root/root 234960 2007-05-06 23:11 usr/lib/libcurl.so.4.0.0

    They actually provide libcurl3 and libcurl4 packages in 11.0:

    Fedora _could_ do that too, but we’ve got concerns about carrying compatibility versions of older libraries, because they tend to not get bugfixes or security fixes from upstream, but if you are willing to do so, we might consider it.

    So, this puts us in a tough place. I believe you when you say that the ABI is different between .3 and .4, but Adobe doesn’t seem willing to budge on the matter, because it “works on Ubuntu”. I’m more than willing to listen to any advice you are willing to give us here.


    Tom Callaway

Comments are closed.