[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: how to prevent binary incompatibilities with libraries (in reference to Bug#320029)

Mike Williams <mdub@dogbiscuit.org> writes:

> I need some help with finding a good resolution for Bug#320029.
> In summary, the current version of my 'librmagick-ruby' package was
> compiled against libmagick6-dev_6.0.6.x.  It works nicely when run
> with libmagick6_6.0.6.x, but fails when libmagick6 is upgraded to the
> version currently in unstable (6.2.3.x).
> I have to admit that I don't understand the implications of the
> failure; does this mean that ABI compatibility has been broken,
> ie. that there's a bug in the libmagick6 package?

Unless you used some internal symbols not ment to be used that would
be a libmagick6 bug.

> My package currently Depends on libmagick6, sans version number.  The
> bug reporter suggested that I depend on a specific version - a thought
> that had also occurred to me - but I'm not sure that it's the best
> thing to do.  What do you think?

Recompile against the new libmagick6 and see if that breaks with the
old one. If so then the libmagick6 shlibs info needs to require a
higher version.

Also the only way to fix this, prevent users system from breaking, is
for libmagick6 to conflict with older librmagick-ruby
versions. Otherwise partial updates would break the system.

> I'm not sure how I'd inject a version-number into the libmagick6,
> wayway, since it's generated by ${shlibs:Depends}.  That's another
> thing that confuses me: why does the generated dependency not include
> version info?

If all libmagick6 versions are backward and forward compatible then no
version is required. From what you say there isn't even backward
compatibility, which usualy means upstream forgot to increase the

> Thanks in advice for your advice, tolerance, personal abuse, or
> irrelevant anecdotes.


Reply to: