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

Policy: library sonames



I had been under the impression that Debian had a written policy of
respecting upstream choices for sonames, when possible, but when I
checked today, I couldn't find it in the policy manual.  (I believe it
would go in section 3.3.3.)

I think that this is an unwritten policy of Debian (I have been told
that it is a policy of Red Hat).  I'd like to see it in the policy
manual:

  "Shared libraries should use the upstream soname, when possible."

The purpose of this is to maintain compatibility between
distributions.  (Here, by "when possible", I mean: when it doesn't
cause a conflict with another library or an incompatible version of the
same library.)


On a similar point, it would also be nice to have a policy about
interlibrary references, namely:

  "If a shared library calls functions in another library,
   then it should be explicitly reference the other library. (This is
   done with the "-l" option when the library is created.)"

The purpose of this is to improve the stability of programs.  It makes
it much easier to detect mismatched libraries both at link time and
runtime.  (It is particularly useful at detecting link-time problems.)


Debian, in general does a very good job of adhering to both of these
rules.  In particular, adherence to the second rule, in combination
with the packaging system, has saved Debian from a lot of the
headaches that Red Hat is having with their gnome packages.  (Lots of
library mismatch problems - some occuring undetected at runtime.)

Nonetheless, it would be nice to have them set down in the policy manual.

(BTW, libjpeg6b_6b-1 has the wrong soname.)


Steve
dunham@cse.msu.edu

(CC: me or debian-devel, if you want me to read the response.)


Reply to: