On Fri, Feb 15, 2013 at 08:09:45PM -0500, Phillip Susi wrote:
> It looks like upstream is improperly versioning their libraries so the
> package violates debian policy.  They have a major version of 835
> which has now gone to 838 in experimental, and then 84 in the new
> version in Ubuntu raring.  I think this means we need an epoch and
> - -debian0 ABI version.

No, no, no, no, no, no, no, no, no.  This is a seriously mangled version
of the state of affairs.  There's nothing wrong with upstream going from
835/838 to 84; SONAMEs need to be unique per ABI but they don't need to
follow any particular prescription for how they're changed.  Neither an
epoch nor a Debian-specific ABI is necessary, and certainly the latter
would be actively harmful.

What actually happened here is as follows:

 * Some time back, Daniel got fed up with the NEW processing treadmill
   for SONAME changes in ntfs-3g and folded the separate library package
   into the primary ntfs-3g package, since it had no
   reverse-dependencies.

 * I changed testdisk in Ubuntu to build against ntfs-3g rather than the
   old and deprecated libntfs.  At the time my focus was getting rid of
   old libraries, and it hadn't occurred to me that this would interact
   interestingly with this change.

 * On the next upstream ABI change, testdisk broke because it had a
   DT_NEEDED entry for the old libntfs-3g SONAME, and no packaging
   metadata could have warned users about it or automatically prevented
   the change from reaching testing.

I suggest a compromise which would preserve the convenience of avoiding
NEW processing while having more accurate metadata: have ntfs-3g
Provides: libntfs-3gSOVER (substituted as appropriate), and make
shlibdeps use libntfs-3gSOVER as the generated dependency rather than
ntfs-3g.  That way, we'll be able to tell automatically that
reverse-dependencies will be broken.  You might just need to take a
little care to avoid ntfs-3g having a self-dependency via the new
virtual package.

(It would be better to have the library package separate again, because
that way the old and new libraries could be coinstallable which would
make upgrades smoother.  However, since testdisk is a non-Essential leaf
package, it isn't completely horrible for it to break during upgrades,
just unsightly; and I do understand the convenience argument.)

Thanks,

-- 
Colin Watson                                       [cjwat...@ubuntu.com]


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to