LINBIT / drbd-utils

DRBD userspace utilities (for 9.x, 8.4, 8.3)
GNU General Public License v2.0
78 stars 46 forks source link

make doc fails due to external entity docbook.xml #22

Closed skwde closed 2 years ago

skwde commented 2 years ago

I am experiencing issues when building the docs for drbd-utils-9.21.0.

The problems originate from commands like

/usr/bin/xsltproc \
--xinclude --stringparam variablelist.term.break.after 1 \
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl drbd-lvchange@.service.xml

which gives issues like

warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/other.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 33 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/other.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/block.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 35 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/block.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/inline.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 36 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/inline.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/synop.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 37 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/synop.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/lists.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 38 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/lists.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/endnotes.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 39 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/endnotes.xsl
warning: failed to load external entity "http://docbook.sourceforge.net/release/xsl/current/manpages/table.xsl"
compilation error: file http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl line 40 element include
xsl:include : unable to load http://docbook.sourceforge.net/release/xsl/current/manpages/table.xsl
make[1]: *** [drbd-lvchange@.service.7] Error 5
make[1]: Leaving directory `<...>/drbd-utils-9.21.0/documentation/v9'
make: *** [doc] Error 2

I saw this happening at various stages for the MANPAGES files in documentation/v9/Makefile, i.e.

MANPAGES   = drbdsetup.8 drbd.conf.5 drbd.8 drbdadm.8 drbdmeta.8
MANPAGES += ocf_linbit_drbd.7
MANPAGES += ocf_linbit_drbd-attr.7
ifeq ($(WITH_DRBDMON), yes)
MANPAGES += drbdmon.8
endif

Similarily,

cannot parse http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
make[1]: *** [drbd-lvchange@.service.7] Error 4

due to the ADOC_MANPAGES files,

ADOC_MANPAGES :=
ADOC_MANPAGES += drbd-lvchange@.service.adoc
ADOC_MANPAGES += drbd-promote@.service.adoc
ADOC_MANPAGES += drbd-reconfigure-suspend-or-error@.service.adoc
ADOC_MANPAGES += drbd-services@.target.adoc
ADOC_MANPAGES += drbd-wait-promotable@.service.adoc
ADOC_MANPAGES += drbd.service.adoc
ADOC_MANPAGES += drbd@.service.adoc
ADOC_MANPAGES += drbd@.target.adoc
ADOC_MANPAGES += ocf.ra@.service.adoc

It sometimes advanced to the next MANPAGES file when just running make doc but then failed with the same issues. My guess is that http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl drops connection after to many tries from the same IP.

A workaround I found working is to manually install docbook-style-xsl and change STYLESHEET_PREFIX in documentation/common/Makefile_v9_com pointing to the local installation

#STYLESHEET_PREFIX ?= http://docbook.sourceforge.net/release/xsl/current
STYLESHEET_PREFIX ?= /usr/share/sgml/docbook/xsl-stylesheets-1.78.1

Weirdly, the sheer presence of docbook-style-xsl seem to render the build to succeed.

Anyways I thought you might want to know about this issue or it is of help for somebody else.

rck commented 2 years ago

That is what it is for years, I guess the people that care and/or build packages in isolated environments already know that they need to install that extra package. Closing this, but thanks, as you said, somebody else might find it useful.