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

How to deal with SONAME which changes very often



Hello.

I would like to package some very useful set of utilities[1].
It depends on library of the same author[2].

Unfortunatelly SONAME of this library changes with every new version. 
And to make this problem more annoying, new releases shows very often
(about one version per two weeks).

And now I'm pretty confused with that. Are there any easy ways to
maintain such libraries/packages? Is it possible to maintain it at all?
What if I package it with usual way. What if next version of library
will be released? Should it conflict with previous one? Or leave it
untouched? Living it leads to situation that Debian will have about 36
packages after six months. (whole stuff that I would like package is
divided to three programs/libraries).

I have written mail to upstream author asking him, why is he doing this
in that way, and here is his answer:

===cite===

In previous branches (3.x and 4.x) I encountered several problems with
incompatibilities. Most other projects have such problems (libnet 1.0
and 1.1 come first to my mind).

So I decided (for branch 5.x) to be able to install several versions of
netwib/netwox/netwag on the same system. For example :
  netwib53 (5.3.x) + netwox53 (5.3.x) + netwag53
 and :
  netwib512 (5.12.x) + netwox512 (5.12.x) + netwag512
Like this, several programs can specify ("be linked with") exactly which
version they need.
Of course this has drawbacks (redundancy and disk space), but nowadays
disks are so large that we can allow having a system with 3 or 4
duplicates libraries (netwib+ox+ag is small).

To sum up, for netwib :
  libnetwibAB.a <--> static version A.B.x
  libnetwibAB.so <--> shared version A.B.x

Last version fragment (A.B."x") is generally 0. Once upon a time, when a
big bug arises, it can be incremented. For example :
  5.17.0
  5.17.1 : correct a bug
  5.18.0 : next major version

To be sure you understand what I mean, you can install 5.11.0 then
5.12.0. Then look at /usr/include/lib|bin|include|etc.

===cite===

Well that's his answer. I wrote him once again, that making it this way
will imply that packaging his stuff will be very difficult task.
I'm waiting for his answer, and I decided to ask more experienced
users/developers (yeah... that's you ;)).

Please give me some hints/suggestions what should be done in such
situation? Are there any packages with that situation in our archive?

I'll be very thankful for your answers.

regards
fEnIo


[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=236090
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=241722

-- 
      _     Bartosz Feński aka fEnIo | mailto:fenio@o2.pl | pgp:0x13fefc40 
    _|_|_    32-050 Skawina - Głowackiego 3/15 - w. małopolskie - Polska
    (0 0)     phone:+48602383548 | ICQ:46704720 | GG:726362 | IRC:fEnIo
ooO--(_)--Ooo http://skawina.eu.org | JID:fenio@jabber.org | RLU:172001

Attachment: signature.asc
Description: Digital signature


Reply to: