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

Re: Packaging xmlrpc-c



On Wed, Jun 27, 2001 at 07:54:43PM -0500, Ardo van Rangelrooij wrote:
> >   5) xmlrpc-c includes its own copy of expat (under a different soname) for
> >      binary compatibility with other Linux versions.  I'd prefer not to
> >      change this, because it would make it hard for my users to build
> >      binaries that worked on more than one distro.
> 
> Well, as maintainer of the expat and libxmltok packages I would really
> appreciate it if you could make an effort to use the standalone copy.

This will make Debian binary-incompatible with other Linux distributions,
which I consider a very serious problem.  Let me see if I can explain.

Here's ldd output from an xmlrpc-c application compiled on another distro
(ldd is run on the Debian system).

  libxmlrpc.so.3 => /usr/lib/libxmlrpc.so.3 (0x4001a000)
  libxmlrpc_xmlparse.so.3 => /usr/lib/libxmlrpc_xmlparse.so.3 (0x40026000)
  libxmlrpc_xmltok.so.3 => /usr/lib/libxmlrpc_xmltok.so.3 (0x4002f000)
  libc.so.6 => /lib/libc.so.6 (0x40041000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

And the same application compiled on Debian:

  libxmlrpc.so.3 => /usr/lib/libxmlrpc.so.3 (0x4001a000)
  libxmlrpc_xmlparse.so.3 => /usr/lib/libxmlrpc_xmlparse.so.3 (0x40026000)
  libxmlrpc_xmltok.so.3 => /usr/lib/libxmlrpc_xmltok.so.3 (0x4002f000)
  libc.so.6 => /lib/libc.so.6 (0x40041000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

The ldd output is identical on both systems, and I can scp binaries from
one system to the other, and expect them to run.  The sonames
libxmlrpc_xmlparse.so.3 and libxmlrpc_xmltok.so.3 are part of the xmlrpc-c
ABI (application binary interface), which I guarantee for all users of my
software on Linux.  An installation of xmlrpc-c which does not provide
these sonames is broken.

> I also noticed you use the old version of expat, not 1.95.  Any
> particular reason?

Yes.  I use James Clark's stable 1.x version of expat, not the 2.x
development series maintained by Clark Cooper.  Do the two versions have
identical ABIs?  If not, it will be quite a few months before I can
consider upgrading.

Basically, I think that we'd both have a much easier life if xmlrpc-c
continued to use its own private version of expat. ;-) But if you feel
strongly that this is the wrong thing to do, we'll need to work together to
figure out a way to support the xmlrpc-c ABI under Debian.

> >   7) The modules are named xmlrpc-c0, xmlrpc-c-dev and xmlrpc-c-apps.
> >      Should I use a different naming convention?
> 
> You could also use libxmlrpc-c0 and libxmlrpc-c-dev.  That way it's easy
> to spot they're libraries.  There might even be a policy about this.

I looked long and hard, but I could not find any policy.  I may actually
rename the packages to libxmlrpc-c3 and libxmlrpc-c-dev, which would better
match the sonames.

> > So those are all the problems I *know* about. ;-)  Are there any others
> > which I've missed entirely?
> 
> Well, did you read the policy manual?

Of course.

Cheers,
Eric



Reply to: