libexpat1 does not contain libexpat.so.0 in 8.04 Beta

Bug #218963 reported by Joe Di Pol
34
This bug affects 2 people
Affects Status Importance Assigned to Milestone
expat (Ubuntu)
Won't Fix
Medium
Unassigned
Hardy
Won't Fix
Undecided
Unassigned
wink (Ubuntu)
Fix Released
High
Unassigned
Hardy
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: libexpat1

$ lsb_release -rd
Description: Ubuntu 8.04
Release: 8.04

$ apt-cache policy libexpat1
libexpat1:
  Installed: 2.0.1-0ubuntu1
  Candidate: 2.0.1-0ubuntu1

The libexpat1 package in 8.04 Beta does not provide /usr/lib/libexpat.so.0 and therefore breaks binary compatibility with previous Ubuntu releases. Previous versions of libexpat1 provided libexpat.so.0 (which was just a symlink to libexpat.so.1). I have verified this in 6.06 LTS and 7.10:

libexpat1_1.95.8-3_i386.deb
./usr/lib/libexpat.so.0 -> libexpat.so.1

libexpat1_1.95.8-4ubuntu1_i386.deb
./usr/lib/libexpat.so.0 -> libexpat.so.1

8.04 should provide this library, otherwise applications that ran fine on 7.10 will break on 8.04.
I understand it may be necessary to break binary compatibility at times, but in this case it seems gratuitous.

Revision history for this message
libertyernie (libertyernie) wrote :

Confirmed on Ubuntu 8.04 RC.

Revision history for this message
Mihai (ropiku) wrote :

I confirm it on Hardy RC.
I also need libexpat.so.0 for OpenTTD.

Revision history for this message
Simon E (ubuntu-sionide) wrote :

Confirmed in 8.04 release.

The fix is to symlink the two, but I guess this needs to be fixed properly.. I found out about this trying to run OpenTTD too.

sudo ln -s /usr/lib/libexpat.so.1 /usr/lib/libexpat.so.0

Does the trick ^

Revision history for this message
Luca Falavigna (dktrkranz) wrote :

This prevents wink to be built. Debian Maintainer is currently working on this issue, should be fixed with his next upload.
In the meantime, attached debdiff restore libexpat.so.0 until a proper fix is found.

Changed in expat:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Luca Falavigna (dktrkranz) wrote :
Revision history for this message
Daniel Holbach (dholbach) wrote :

Chris: can you please take a look at it?

Revision history for this message
Daniel Leidert (dleidert-deactivatedaccount) wrote :

Well, I'm currently working on it and have to say, that it might need some time. Because we are already in some freeze stage, the libexpat-transition will very probaly happen after Lenny is released.

For your problem: Isn't it possible to fix the broken programs [1] instead to reintroduce this very old compatibility symlink?

[1] Fixing means a) binNMU official packages (quick and dirty without a clean transition) and/or b) enforce fixing of the broken 3rd party packages by not providing the symlink. You will have to do the latter in every case, because I *will* drop this symlink definitly.

Could someone please invite Matthias Klose to this discussion?

Revision history for this message
Matthias Klose (doko) wrote :

what is the problem with openttd? it has no build dependency and no dependency on expat.

the problem with wink is unrelated:

dpkg-shlibdeps: failure: couldn't find library libstdc++.so.5 needed by debian/wink/usr/lib/wink/wink (its RPATH is '').
Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH.
dh_shlibdeps: command returned error code 512
make: *** [binary-arch] Error 1

please could somebody demonstrate the problem instead of saying "the symlink is missing"

Changed in expat:
status: Confirmed → Incomplete
Revision history for this message
Luca Falavigna (dktrkranz) wrote :

wink currently FTBFS, see https://launchpad.net/ubuntu/+source/wink/1.5.1060-4/+build/604551:
dh_shlibdeps
dpkg-shlibdeps: failure: couldn't find library libexpat.so.0 needed by debian/wink/usr/lib/wink/wink (its RPATH is '').
Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file.
To help dpkg-shlibdeps find private libraries, you might need to set LD_LIBRARY_PATH.
dh_shlibdeps: command returned error code 512
make: *** [binary-arch] Error 1

Revision history for this message
Matthias Klose (doko) wrote :

should be fixed in wink

Changed in wink:
importance: Undecided → High
status: New → Confirmed
Revision history for this message
Dato Simó (dato) wrote :

For the record, wink is non-free (and comes without source).

Revision history for this message
Luca Falavigna (dktrkranz) wrote :

wink fixed in Debian with 1.5.1060-5.

Changed in wink:
status: Confirmed → Fix Committed
Revision history for this message
Joe Di Pol (joe-dipol) wrote :

Just to be sure we don't loose sight of the original intent of this bug....

The bug is that 8.04 breaks binary compatibility with previous releases
by removing an interface (libexpat.so.0). The fact that wink has been
"fixed" is great, but does not address the fundamental issue.

> Matthias Klose
> please could somebody demonstrate the problem instead of saying "the symlink is missing"

I have an application. It runs fine on 6.06 LTS and 7.10. When I try
to run it on 8.04 it fails because 8.04 has broken binary compatibility
with previous releases by removing libexpat.so.0

Granted, I don't know what Ubuntu's binary compatibility policy is
(I haven't found it formally stated anywhere). But this breakage seems gratuitous.

Revision history for this message
Daniel Leidert (dleidert-deactivatedaccount) wrote :

Can you be a bit more specific and verbose, what exactly "breaks"?

Why should "binary compatibility" be broken by removing a link, that should have been never added?

To be honest: I miss the compelling reason to leave this link. wink has been fixed and no other packages were affected.

Revision history for this message
Joe Di Pol (joe-dipol) wrote :

>Can you be a bit more specific and verbose, what exactly "breaks"?

I have an application that has a dependency on libexpat.so.0. It runs fine on 6.06.
It runs fine on 7.10. It fails to run on 8.04 because libexpat.so.0 does not exist on 8.04.

>Why should "binary compatibility" be broken by removing a link, that should have been never added?

Removing that link removes an interface from the OS. Removing a public interface
from the OS breaks binary compatibility.

> To be honest: I miss the compelling reason to leave this link. wink has been fixed and no other packages were affected.

Actually that logic is reversed. You need a compelling reason to remove libexpat.so.0.
Plus you need some confidence that the number of applications that will break
is mitigated somehow.

You can't possibly know about all software that runs on Ubuntu, so saying
"no other packages were affected" is pretty presumptuous.

Look, I'm not saying you can never, ever break compatibility. But when you do there
needs to be a very good reason why, and some confidence that the impact on
customers and developers is minimal.

Revision history for this message
Dato Simó (dato) wrote : Re: [Bug 218963] Re: libexpat1 does not contain libexpat.so.0 in 8.04 Beta

> I have an application that has a dependency on libexpat.so.0. It runs fine on 6.06.
> It runs fine on 7.10. It fails to run on 8.04 because libexpat.so.0 does not exist on 8.04.

I'm really curious, where does this application come from and what's its
age, since /usr/lib/libexpat.so has pointed to libexpat.so.1 for many
years.

Revision history for this message
Daniel Leidert (dleidert-deactivatedaccount) wrote :

> You can't possibly know about all software that runs on Ubuntu, so saying
> "no other packages were affected" is pretty presumptuous.

It is a bit more than that: http://lists.debian.org/debian-release/2008/05/msg00428.html. With thanks to Kevin B. McCarty.

Revision history for this message
Matthias Klose (doko) wrote :

> It is a bit more than that

really? He did find exactly one package: wink.

Uploaded a package for hardy-proposed which (fixes a build failure), and provides the symlink in the wink package itself.

Matthias Klose (doko)
Changed in expat:
status: Incomplete → Won't Fix
Revision history for this message
spiderbatdad (spiderbatdad) wrote :

My encounter with this bug involves try to start httpd from a chroot jail. After all the shared libraries had been added, libexpat.so.0 was nowhere to be found in /usr/lib.

Revision history for this message
spiderbatdad (spiderbatdad) wrote :

...adding the symlink manually, and copying the shared lib to the chroot has solved the problem.

sudo ln -s /usr/lib/libexpat.so.1 /usr/lib/libexpat.so.0

Thank you.

Revision history for this message
Jonathan Riddell (jr) wrote :

accepted into hardy-proposed, please test.

Changed in expat:
status: New → Won't Fix
Changed in wink:
importance: Undecided → Medium
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package wink - 1.5.1060-5ubuntu1

---------------
wink (1.5.1060-5ubuntu1) intrepid; urgency=low

  * debian/rules:
    - Call dh_shlibdeps with -l$(CURDIR)/debian/wink/usr/lib/wink to
      link against libexpat.so.0, linked to libexpat.so.1 (LP: #218963).
  * debian/script/wink.sh
    - Export LD_LIBRARY_PATH to launch wink correctly (LP: #185868).
  * debian/control:
    - Update Maintainer field as per spec.

 -- Luca Falavigna <email address hidden> Fri, 13 Jun 2008 20:35:25 +0200

Changed in wink:
status: Fix Committed → Fix Released
Revision history for this message
Luca Falavigna (dktrkranz) wrote :

Version 1.5.1060-3ubuntu1.1 FTBFS due to missing libgtk2.0-dev.

Changed in wink:
status: Fix Committed → Incomplete
Revision history for this message
another_sam (anothersam) wrote :

I had the same problem with Wink. This solved the issue also for me:

sudo ln -s /usr/lib/libexpat.so.1 /usr/lib/libexpat.so.0

Revision history for this message
Luca Falavigna (dktrkranz) wrote :

Version 1.5.1060-3ubuntu1.2 which fixes FTBFS waiting in unapproved queue.

Changed in wink:
status: Incomplete → Confirmed
Revision history for this message
Martin Pitt (pitti) wrote :

Accepted into -proposed, please test and give feedback here. Please see https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in wink:
status: Confirmed → Fix Committed
Revision history for this message
Luca Falavigna (dktrkranz) wrote :

HARDY VERIFICATION

Using version 1.5.1060-3ubuntu1 from hardy-release:
$ wink
/usr/lib/wink/wink: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
$

Using version 1.5.1060-3ubuntu1.2 from hardy-proposed:
$ wink
[Program runs fine]
$

Revision history for this message
Martin Pitt (pitti) wrote :

Copied to hardy-updates.

Changed in wink:
status: Fix Committed → Fix Released
To post a comment you must log in.
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.