libpri1, libpri1.2, SONAMES etc.

Faidon Liambotis paravoid at debian.org
Sun Jul 22 05:00:32 UTC 2007


Hello,
I'm having a look at the libpri mess that upstream created and 
unfortunately got to Debian.

--
PLEASE DO NOT UPLOAD A NEW libpri TO Debian BEFORE DISCUSSING THIS.
It will only make the mess worse.
--

As I understand it, libpri 1.2 is _not_ API/ABI compatible with 1.4. 
IOW, Asterisk 1.4 doesn't work with libpri 1.2 and Asterisk 1.2 doesn't 
work with libpri 1.4. Correct me if I'm wrong.

I see that now you (Kilian, mostly?) are trying to fix this mess by 
renaming the 1.4 package again.

Some initial notes:
You've named the 1.4 package libpri1. lintian produces a warning about 
this and is right. The SONAME is 1.0, not 1. The package should be named 
libpri1.0.

Even better would be to do upstream's job and SONAME version the libraries.
So,
libpri 1.4:
   SONAME: 1.4
   -dev package name: libpri1.4-dev
     i.e. contains: /usr/lib/libpri.1.4
libpri 1.2:
   package name: libpri1.2
   -dev package name: libpri1.2-dev
   SONAME: 1.2
     i.e. contains: /usr/lib/libpri.1.2

The binary packages must not containt a /usr/lib/libpri.so.1 or 
/usr/lib/libpri.so soft-link. The -dev can contain those.
Hence, they MUST NOT CONFLICT each other.
That's the standard practice (and for a good reason) for shared 
libraries in Debian.

The -dev package for 1.4 must have a Conflicts:/Replaces: however, 
beacuse of conflicting files.

The binary packages

Asterisk 1.4:
   Build-Depends: libpri1.4-dev
   Depends: libpri1.4

Asterisk 1.2
   Build-Depends: libpri1.2-dev
   Depends: libpri1.2

I think that's the ideal solution, and is safe for all future versions 
(1.6) of Asterisk and perhaps other users of libpri (what about callweaver).

Comments, thoughts?

Regards,
Faidon



More information about the Pkg-voip-maintainers mailing list