Thread: 9.5 make world failing due to sgml tools missing

9.5 make world failing due to sgml tools missing

From
Keith Fiske
Date:
The current HEAD of postgres in the git repo is not building when using "make world". It's been like this for about a month or so that I've been aware of. I didn't really need the world build so been making due without it. At PGCon now, though, so asked Bruce and he said this error was due to my not having the sgml tools installed, which should not be a requirement.

Brief part of the compile output is below with the error at the end. Full output is attached.

[...]
sgml2xml:xml2.sgml:379:8:W: reference to internal SDATA entity "gt" not allowed in XML
sgml2xml:oid2name.sgml:157:42:W: reference to internal SDATA entity "mdash" not allowed in XML
sgml2xml:docguide.sgml:1053:0:W: reference to internal SDATA entity "lt" not allowed in XML
sgml2xml:docguide.sgml:1053:61:W: reference to internal SDATA entity "gt" not allowed in XML
'/usr/bin/perl' -p -e 's/\[(aacute|acirc|aelig|agrave|amp|aring|atilde|auml|bull|copy|eacute|egrave|gt|iacute|lt|mdash|nbsp|ntilde|oacute|ocirc|oslash|ouml|pi|quot|scaron|uuml) *\]/\&\1;/gi;' \
               -e '$_ .= qq{<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\n} if $. == 1;' \
      <postgres.xmltmp > postgres.xml
rm postgres.xmltmp
/bin/sh ../../../config/missing xmllint --noout --valid postgres.xml
***
ERROR: `xmllint' is missing on your system.
***
make[3]: *** [man-stamp] Error 1
make[3]: Leaving directory `/home/keith/Repos/postgres/doc/src/sgml'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/keith/Repos/postgres/doc/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/keith/Repos/postgres/doc'
make: *** [world-doc-recurse] Error 2
--
Keith Fiske
Database Administrator
OmniTI Computer Consulting, Inc.
http://www.keithf4.com
Attachment

Re: 9.5 make world failing due to sgml tools missing

From
Tom Lane
Date:
Keith Fiske <keith@omniti.com> writes:
> The current HEAD of postgres in the git repo is not building when using
> "make world". It's been like this for about a month or so that I've been
> aware of. I didn't really need the world build so been making due without
> it. At PGCon now, though, so asked Bruce and he said this error was due to
> my not having the sgml tools installed, which should not be a requirement.

Dunno about "about a month"; this seems to have come in with commit
5d93ce2d0c619ba1 from last October.  But yes, that commit moved the
goalposts in terms of what is required to build the documentation.
You now must have xmllint which is something supplied by libxml2.

I am not sure this is a good thing, especially since xmllint is only
doing checking, which is of little use to consumers of the documentation.
Maybe if xmllint is not found, we should just skip the checking steps
rather than hard failing?
        regards, tom lane



Re: 9.5 make world failing due to sgml tools missing

From
"Joshua D. Drake"
Date:
On 06/17/2015 01:07 PM, Tom Lane wrote:
> Keith Fiske <keith@omniti.com> writes:
>> The current HEAD of postgres in the git repo is not building when using
>> "make world". It's been like this for about a month or so that I've been
>> aware of. I didn't really need the world build so been making due without
>> it. At PGCon now, though, so asked Bruce and he said this error was due to
>> my not having the sgml tools installed, which should not be a requirement.
>
> Dunno about "about a month"; this seems to have come in with commit
> 5d93ce2d0c619ba1 from last October.  But yes, that commit moved the
> goalposts in terms of what is required to build the documentation.
> You now must have xmllint which is something supplied by libxml2.
>
> I am not sure this is a good thing, especially since xmllint is only
> doing checking, which is of little use to consumers of the documentation.
> Maybe if xmllint is not found, we should just skip the checking steps
> rather than hard failing?
>

If they are building from source, this does not seem to be an 
unrealistic package to require.

JD


>             regards, tom lane
>
>


-- 
Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
PostgreSQL Centered full stack support, consulting and development.
Announcing "I'm offended" is basically telling the world you can't
control your own emotions, so everyone else should do it for you.



Re: 9.5 make world failing due to sgml tools missing

From
Peter Eisentraut
Date:
On 6/17/15 3:35 PM, Keith Fiske wrote:
> The current HEAD of postgres in the git repo is not building when using
> "make world". It's been like this for about a month or so that I've been
> aware of. I didn't really need the world build so been making due
> without it. At PGCon now, though, so asked Bruce and he said this error
> was due to my not having the sgml tools installed, which should not be a
> requirement.

make world has always required documentation build tools.



Re: 9.5 make world failing due to sgml tools missing

From
Alvaro Herrera
Date:
Peter Eisentraut wrote:
> On 6/17/15 3:35 PM, Keith Fiske wrote:
> > The current HEAD of postgres in the git repo is not building when using
> > "make world". It's been like this for about a month or so that I've been
> > aware of. I didn't really need the world build so been making due
> > without it. At PGCon now, though, so asked Bruce and he said this error
> > was due to my not having the sgml tools installed, which should not be a
> > requirement.
> 
> make world has always required documentation build tools.

Also,
http://www.postgresql.org/message-id/1399429219.5361.10.camel@vanquo.pezone.net

I'm of two minds about this.  I wonder if there's a sensible way to have
things not fail when xmllint is not installed but the documentation
hasn't been patched.  Maybe $(missing) wasn't the right thing to use in
all these targets -- perhaps we could spare the hard error for some
users.

What "make world" does is call "make all" in doc/src/sgml, and that in
turn depends on html and man.  As far as I can see, only man-stamp fails
if xmllint is not present.  Can we just skip the xmllint step if xmllint
not present in that rule, and that rule only?

To replace that, we could have "make check" in docs do the xmllint run
(that's where we have the check-tabs rule also).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Re: 9.5 make world failing due to sgml tools missing

From
Tom Lane
Date:
Peter Eisentraut <peter_e@gmx.net> writes:
> On 6/17/15 3:35 PM, Keith Fiske wrote:
>> The current HEAD of postgres in the git repo is not building when using
>> "make world". It's been like this for about a month or so that I've been
>> aware of. I didn't really need the world build so been making due
>> without it. At PGCon now, though, so asked Bruce and he said this error
>> was due to my not having the sgml tools installed, which should not be a
>> requirement.

> make world has always required documentation build tools.

Sure; the point is that libxml2 has suddenly been reclassified as a
documentation build tool, which is at least a surprising categorization.
        regards, tom lane



Re: 9.5 make world failing due to sgml tools missing

From
Peter Eisentraut
Date:
On 6/18/15 8:54 AM, Tom Lane wrote:
> Sure; the point is that libxml2 has suddenly been reclassified as a
> documentation build tool, which is at least a surprising categorization.

libxml2 has been a required documentation build tool since PostgreSQL
9.0.  The only thing that's new is that xmllint is in a different
subpackage on some systems.  So just install that and you're all set for
the foreseeable future.




Re: 9.5 make world failing due to sgml tools missing

From
Keith Fiske
Date:




On Sun, Jun 21, 2015 at 10:56 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
On 6/18/15 8:54 AM, Tom Lane wrote:
> Sure; the point is that libxml2 has suddenly been reclassified as a
> documentation build tool, which is at least a surprising categorization.

libxml2 has been a required documentation build tool since PostgreSQL
9.0.  The only thing that's new is that xmllint is in a different
subpackage on some systems.  So just install that and you're all set for
the foreseeable future.


Well, something is different in 9.5. On this same system (Linux Mint 17.1) I can build all previous versions with "make world" and I do not get this error.

Re: 9.5 make world failing due to sgml tools missing

From
Fabien COELHO
Date:
>> libxml2 has been a required documentation build tool since PostgreSQL
>> 9.0.  The only thing that's new is that xmllint is in a different
>> subpackage on some systems.  So just install that and you're all set for
>> the foreseeable future.
>>
> Well, something is different in 9.5. On this same system (Linux Mint 17.1)
> I can build all previous versions with "make world" and I do not get this
> error.

Maybe the error on the missing tool was previously ignored (that is it 
failed without saying so), and it is now reported?


It might be related to:

commit 5d93ce2d0c619ba1b408eb749715e7223e23f6ae
Author: Peter Eisentraut <peter_e@gmx.net>
Date:   Tue Oct 21 14:46:38 2014 -0400
    doc: Check DocBook XML validity during the build
    Building the documentation with XSLT does not check the DTD, like a    DSSSL build would.  One can often get away
withhaving invalid XML, but    the stylesheets might then create incorrect output, as they are not    designed to
handlethat.  Therefore, check the validity of the XML    against the DTD, using xmllint, during the build.
 
    Add xmllint detection to configure, and add some documentation.
    xmllint comes with libxml2, which is already in use, but it might be    in a separate package, such as
libxml2-utilson Debian.
 
    Reviewed-by: Fabien COELHO <coelho@cri.ensmp.fr>

-- 
Fabien.



Re: 9.5 make world failing due to sgml tools missing

From
Peter Eisentraut
Date:
On 6/23/15 1:06 AM, Keith Fiske wrote:
> 
> 
> 
> <http://www.keithf4.com>
> 
> On Sun, Jun 21, 2015 at 10:56 AM, Peter Eisentraut <peter_e@gmx.net
> <mailto:peter_e@gmx.net>> wrote:
> 
>     On 6/18/15 8:54 AM, Tom Lane wrote:
>     > Sure; the point is that libxml2 has suddenly been reclassified as a
>     > documentation build tool, which is at least a surprising categorization.
> 
>     libxml2 has been a required documentation build tool since PostgreSQL
>     9.0.  The only thing that's new is that xmllint is in a different
>     subpackage on some systems.  So just install that and you're all set for
>     the foreseeable future.
> 
> 
> Well, something is different in 9.5. On this same system (Linux Mint
> 17.1) I can build all previous versions with "make world" and I do not
> get this error.

Hence the use of the phrase "The only thing that's new ...". ;-)