Re: problem building Linux-PAM-1.7.1

"Pierre Labastie" ([email protected] via blfs-support Mailing List) <[email protected]> Sat, 01 Nov 2025 10:17:35 +0100
Newsgroups gmane.linux.lfs.beyond.support
Message-ID <[email protected]>
On Sat, 2025-11-01 at 03:22 +0800, Xi Ruoyao wrote:
> On Fri, 2025-10-31 at 14:53 -0400, Joe Locash wrote:
> > On 10/31/25 2:46 PM, Richard ([email protected] via blfs-support Mailing
> > List) wrote:
> > > I am following the blfs-12.4 stable book. I haven't installed
> > > the optional dependencies for Linux-PAM-1.7.1 needed
> > > to build the documentation, but I downloaded the optional
> > > documentation file instead. I don't do the initial sed because
> > > I haven't installed docbook, etc. When I issue the meson setup
> > > command I get the following error:
> > > 
> > > --- stderr ---
> > > I/O warning : failed to load 
> > > "http://docbook.org/xml/5.0/rng/docbookxi.rng": No such file or
> > > directory
> > > Relax-NG parser error : xmlRelaxNGParse: could not load 
> > > http://docbook.org/xml/5.0/rng/docbookxi.rng
> > > Relax-NG schema
> > > http://docbook.org/xml/5.0/rng/docbookxi.rng failed to 
> > > compile
> > > ../doc/man/meson.build:42:2: ERROR: Command `/usr/bin/xmllint --
> > > nonet 
> > > --noout --xinclude --relaxng 
> > > http://docbook.org/xml/5.0/rng/docbookxi.rng misc_conv.3.xml`
> > > failed
> > > with status 5.
> > > 
> > > So it looks as though Linux-PAM requires the docbook programs.
> > > Is there a way I can specify that I don't want the documentation
> > > to
> > > be built? If not, should the optional dependencies for the
> > > documentation
> > > be required instead?
> > > 
> > > I also tried leaving off the -D docdir=/usr/share/doc/Linux-PAM-
> > > 1.7.1
> > > line from meson setup, but I got the same error.
> > > 
> > > I looked at the options from meson help setup but I couldn't find
> > > an
> > > option
> > > to turn off the documentation. 
> > 
> > Use -Ddocs=disabled when running meson.
> 
> I cannot see how this option should be ever needed.
> 
> I'm pretty sure I tested the configuration w/o docbook before I wrote
> the current Linux-PAM instruction.  And I just spent some time to
> review
> it.


> 
> In meson.build we have:
> 
>   docbook_rng = get_option('docbook-rng')
>   have = run_command(
>     [prog_xmlcatalog, '--noout', xml_catalog, docbook_rng],
>     check: feature_docs.enabled()
>   ).returncode() == 0
>   if not have
>     docbook_rng = disabler()
>   endif
> 
> Here "run_command" will fail because docbook_rng is
> http://docbook.org/xml/5.0/rng/docbookxi.rng, which does not exist in
> xml_catalog (/etc/xml/catalog).  Thus "have" will be false, and
> docbook_rng will be a disabler.  Then at doc/man/meson.build we have
> 
>   run_command([prog_xmllint,
>                '--nonet',
>                '--noout',
>                '--xinclude',
>                '--relaxng', docbook_rng,
>                xml],
>               check: true)
> 
> Because docbook_rng is a disabler here, this command shouldn't be run
> as
> the meson documentation says:
> 
>    A disabler object is an object that behaves in much the same way
> as
>    NaN numbers do in floating point math. That is when used in any
>    statement (function call, logical op, etc) they will cause the
>    statement evaluation to immediately short circuit to return a
>    disabler object.
> 
> My guess is a buggy libxml2 (at least we know 2.15.0 has some bugs
> but
> I'm unsure if one of them can cause the issue) or meson is used.  The
> combination of libxml2-2.15.1 and meson-1.9.1 behaves OK.

In any case, I guess almost everybody tests building Linux-PAM without
docbook-5.0 (it seems installing docbook-5.0 is not common along
LFS'ers), so the issue should have shown up earlier. Note that the
presence of docnook-rng is tested with xmlcatalog, so the bug could be
in /etc/xml/catalog too.

Pierre

-- 
http://lists.linuxfromscratch.org/sympa/info/blfs-support
Unsubscribe: See the above information page