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

Re: libxml-parser-perl and embedded expat library



On Mon, Nov 26, 2018 at 10:15:03AM +0000, Hugh McMaster wrote:
 
> I've been looking into the possibility of converting libxml-parser-perl
> from Arch: any to Arch: all, due to the use of the package as a
> Build-Dependency, which is not multi-arch installable.

Hi, I'm afraid this is not a simple packaging thing.

> Currently, all files except libxml-parser-perl (doc-base) and Expat.so are 
> byte-for-byte identical.
> 
> libxml-parser-perl (doc-base) differs due a hard-coded path to the two Files. For example:

Having these architecture specific contents in /usr/share looks like a
minor bug, but fixing that wouldn't help you.

> This just leaves the arch-specific Expat.so, which is an embedded copy.

No, Expat.so is not an embedded copy of libexpat.

Expat.so is (part of) XML::Parser::Expat, a dynamically loadable Perl
"plugin" module implemented in C code (well, XS code that's first
transformed to C and then compiled.) It provides C/Perl glue that calls
out to libexpat. This is architecture specific by design.

>From the XML::Parser manual page:

 This module provides ways to parse XML documents. It is built on top of
 XML::Parser::Expat, which is a lower level interface to James Clark's
 expat library. Each call to one of the parsing methods creates a new
 instance of XML::Parser::Expat which is then used to parse the document.

> 1. Why does libxml-parser-perl use this version of Expat, instead of the
> version provided by the repository?
>
> 2. Is it possible to remove the embedded copy? Or can we split the package
> into arch: any for the Expat library and arch: all for everything else?

As hopefully explained above, I don't think this is going to work.
-- 
Niko Tyni   ntyni@debian.org


Reply to: