[quickbook] Broken links generated in locally built docs

Hi, When I'm building QuickBook docs locally for Boost.Log, I'm seeing errors like the following in the end: Error: no ID for constraint linkend: "log.design". and so on for basically any section id that is used in the QuickBook [link] tag. In the resulting HTML documentation all such links point to the root directory where the HTML docs are located. Looking at the bin.v2/libs/log/doc/log_doc.xml file, for example, for the log.detailed.sink_frontends.sync is, it looks like <link> tags use the id that is specified in QuickBook: <link linkend="log.detailed.sink_frontends.sync"> but the actual section has a colon in front of the id: <section id=":log.detailed.sink_frontends.sync"> Is this a known issue and is there a workaround? I'm using DocBook XML from the Kubuntu package, which has version 4.5-9, and a freshly built QuickBook from develop. I used to build docs locally fine before, and did not change the configuration since, but I may have upgraded Kubuntu since I last built the docs. Thanks.

-----Original Message----- From: Boost <boost-bounces@lists.boost.org> On Behalf Of Andrey Semashev via Boost Sent: 4 March 2021 13:51 To: boost@lists.boost.org Cc: Andrey Semashev <andrey.semashev@gmail.com> Subject: [boost] [quickbook] Broken links generated in locally built docs
Hi,
When I'm building QuickBook docs locally for Boost.Log, I'm seeing errors like the following in the end:
Error: no ID for constraint linkend: "log.design".
and so on for basically any section id that is used in the QuickBook [link] tag. In the resulting HTML documentation all such links point to the root directory where the HTML docs are located.
Looking at the bin.v2/libs/log/doc/log_doc.xml file, for example, for the log.detailed.sink_frontends.sync is, it looks like <link> tags use the id that is specified in QuickBook:
<link linkend="log.detailed.sink_frontends.sync">
but the actual section has a colon in front of the id:
<section id=":log.detailed.sink_frontends.sync">
Is this a known issue and is there a workaround?
I'm using DocBook XML from the Kubuntu package, which has version 4.5-9, and a freshly built QuickBook from develop. I used to build docs locally fine before, and did not change the configuration since, but I may have upgraded Kubuntu since I last built the docs.
I've seem this error before - but not with the phantom colon. I've got uptodate with $ git log commit 699fcc12815fd91b2e3a3066097beb62cdffc957 (HEAD -> develop, origin/master, origin/develop, origin/HEAD) Author: Andrey Semashev <andrey.semashev@gmail.com> Date: Wed Feb 10 14:45:52 2021 +0300 And tried to build It start with Jamfile.v2:274: Unescaped special character in argument <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/log/doc/html But I can't see the Unescaped special character - seems phantom 😉 And after some OK stuff, goes wrong with these messages Generate XML output for dir I:/boost/boost/log/utility/ Running plantuml with JAVA... lookup cache used 2353/65536 hits=29808 misses=2615 finished... Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs '#' is not recognized as an internal or external command, operable program or batch file. 'xsltproc' is not recognized as an internal or external command, operable program or batch file. # echo "*** Executing " xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml" xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml" ...failed Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs... xslt-xsltproc.windows ..\..\..\bin.v2\libs\log\doc\utility_reference-xml.doxygen xslt-xsltproc.windows ..\..\..\bin.v2\libs\log\doc\utility_reference-xml.boostbook I:/boost/boost/log/utility/formatting_ostream.hpp:174: Cannot handle sectiondef with kind=protected-type I:/boost/boost/log/utility/setup/settings.hpp:351: Cannot handle sectiondef with kind=protected-attrib I:/boost/boost/log/utility/type_dispatch/type_dispatcher.hpp:150: Cannot handle sectiondef with kind=protected-type common.copy tmp\utility_reference.xml ..\..\..\bin.v2\libs\log\doc\utility_reference-xml.boostbook 1 file(s) copied. Jamfile<I:\boost\libs\log\doc>.gen-references <l.>utility_refs '#' is not recognized as an internal or external command, operable program or batch file. 'xsltproc' is not recognized as an internal or external command, operable program or batch file. # echo "*** Executing " xsltproc -o "tmp\utility_reference.qbk" "gen_references.xsl" "tmp\utility_reference.xml" xsltproc -o "tmp\utility_reference.qbk" "gen_references.xsl" "tmp\utility_reference.xml" ...failed Jamfile<I:\boost\libs\log\doc>.gen-references <l.>utility_refs... ...skipped <p..\..\..\bin.v2\libs\log\doc>log_doc.xml for lack of <l.>top_level_refs... ...skipped <p..\..\..\bin.v2\libs\log\doc>log_doc.docbook for lack of <p..\..\..\bin.v2\libs\log\doc-object(xinclude-scanner)@11661>log_doc.xml... ...skipped <phtml>log_HTML.manifest for lack of <p..\..\..\bin.v2\libs\log\doc>log_doc.docbook... ...failed updating 8 targets... ...skipped 3 targets... ...updated 169 targets... So I commented the offending line out and re-ran without 1st error message, but with the same end result. I am on Windows 10 and I think I am up-to-date with Doxygen and Quickbook. I have re-run in administrator mode (seems necessary to access xsltproc) . Lots of ambiguous namespaces. Log attached FWIW (not much?) Yours Not Helping Much ... ☹ Paul

On 3/4/21 6:17 PM, Paul A Bristow via Boost wrote:
-----Original Message----- From: Boost <boost-bounces@lists.boost.org> On Behalf Of Andrey Semashev via Boost Sent: 4 March 2021 13:51 To: boost@lists.boost.org Cc: Andrey Semashev <andrey.semashev@gmail.com> Subject: [boost] [quickbook] Broken links generated in locally built docs
Hi,
When I'm building QuickBook docs locally for Boost.Log, I'm seeing errors like the following in the end:
Error: no ID for constraint linkend: "log.design".
and so on for basically any section id that is used in the QuickBook [link] tag. In the resulting HTML documentation all such links point to the root directory where the HTML docs are located.
Looking at the bin.v2/libs/log/doc/log_doc.xml file, for example, for the log.detailed.sink_frontends.sync is, it looks like <link> tags use the id that is specified in QuickBook:
<link linkend="log.detailed.sink_frontends.sync">
but the actual section has a colon in front of the id:
<section id=":log.detailed.sink_frontends.sync">
Is this a known issue and is there a workaround?
I'm using DocBook XML from the Kubuntu package, which has version 4.5-9, and a freshly built QuickBook from develop. I used to build docs locally fine before, and did not change the configuration since, but I may have upgraded Kubuntu since I last built the docs.
I've seem this error before - but not with the phantom colon.
I've got uptodate with
$ git log commit 699fcc12815fd91b2e3a3066097beb62cdffc957 (HEAD -> develop, origin/master, origin/develop, origin/HEAD) Author: Andrey Semashev <andrey.semashev@gmail.com> Date: Wed Feb 10 14:45:52 2021 +0300
And tried to build
It start with
Jamfile.v2:274: Unescaped special character in argument <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/log/doc/html
But I can't see the Unescaped special character - seems phantom 😉
Probably the colon in http://. Fixed, thanks.
And after some OK stuff, goes wrong with these messages
Generate XML output for dir I:/boost/boost/log/utility/ Running plantuml with JAVA... lookup cache used 2353/65536 hits=29808 misses=2615 finished... Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs '#' is not recognized as an internal or external command, operable program or batch file. 'xsltproc' is not recognized as an internal or external command, operable program or batch file.
# echo "*** Executing " xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml" xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml"
...failed Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs...
It looks like the commented line (starting with #) is passed to the system shell (cmd.exe on Windows), which causes the error. Also fixed in develop/master, thanks. These two errors are not the culprit though, I still have the same issue after fixing those.
So I commented the offending line out and re-ran without 1st error message, but with the same end result.
I am on Windows 10 and I think I am up-to-date with Doxygen and Quickbook.
I have re-run in administrator mode (seems necessary to access xsltproc) .
Lots of ambiguous namespaces. Log attached FWIW (not much?)
There are no "no ID for constraint linkend" errors in your output, though it still has errors from the commented line. Could you update libs/log and try again? Also, what is your DocBook XML version and how are you running b2? I'm running: b2 -j8 release from libs/log/doc.

-----Original Message----- From: Boost <boost-bounces@lists.boost.org> On Behalf Of Andrey Semashev via Boost Sent: 4 March 2021 16:26 To: boost@lists.boost.org Cc: Andrey Semashev <andrey.semashev@gmail.com> Subject: Re: [boost] [quickbook] Broken links generated in locally built docs
On 3/4/21 6:17 PM, Paul A Bristow via Boost wrote:
-----Original Message----- From: Boost <boost-bounces@lists.boost.org> On Behalf Of Andrey Semashev via Boost Sent: 4 March 2021 13:51 To: boost@lists.boost.org Cc: Andrey Semashev <andrey.semashev@gmail.com> Subject: [boost] [quickbook] Broken links generated in locally built docs
Hi,
When I'm building QuickBook docs locally for Boost.Log, I'm seeing errors like the following in the
end:
Error: no ID for constraint linkend: "log.design".
and so on for basically any section id that is used in the QuickBook [link] tag. In the resulting HTML documentation all such links point to the root directory where the
HTML docs are located.
Looking at the bin.v2/libs/log/doc/log_doc.xml file, for example, for the log.detailed.sink_frontends.sync is, it looks like <link> tags use the id that is specified in
QuickBook:
<link linkend="log.detailed.sink_frontends.sync">
but the actual section has a colon in front of the id:
<section id=":log.detailed.sink_frontends.sync">
Is this a known issue and is there a workaround?
I'm using DocBook XML from the Kubuntu package, which has version 4.5-9, and a freshly built QuickBook from develop. I used to build docs locally fine before, and did not change the configuration since, but I may have upgraded
Kubuntu since I last built the docs.
I've seem this error before - but not with the phantom colon.
I've got uptodate with
$ git log commit 699fcc12815fd91b2e3a3066097beb62cdffc957 (HEAD -> develop, origin/master, origin/develop, origin/HEAD) Author: Andrey Semashev <andrey.semashev@gmail.com> Date: Wed Feb 10 14:45:52 2021 +0300
And tried to build
It start with
Jamfile.v2:274: Unescaped special character in argument <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/ release/libs/log/doc/html
But I can't see the Unescaped special character - seems phantom 😉
Probably the colon in http://. Fixed, thanks.
And after some OK stuff, goes wrong with these messages
Generate XML output for dir I:/boost/boost/log/utility/ Running plantuml with JAVA... lookup cache used 2353/65536 hits=29808 misses=2615 finished... Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs '#' is not recognized as an internal or external command, operable program or batch file. 'xsltproc' is not recognized as an internal or external command, operable program or batch file.
# echo "*** Executing " xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml" xsltproc -o "tmp\expressions_reference.qbk" "gen_references.xsl" "tmp\expressions_reference.xml"
...failed Jamfile<I:\boost\libs\log\doc>.gen-references <l.>expressions_refs...
It looks like the commented line (starting with #) is passed to the system shell (cmd.exe on Windows), which causes the error. Also fixed in develop/master, thanks.
These two errors are not the culprit though, I still have the same issue after fixing those.
So I commented the offending line out and re-ran without 1st error message, but with the same end result.
I am on Windows 10 and I think I am up-to-date with Doxygen and Quickbook.
I have re-run in administrator mode (seems necessary to access xsltproc) .
Lots of ambiguous namespaces. Log attached FWIW (not much?)
There are no "no ID for constraint linkend" errors in your output, though it still has errors from the commented line. Could you update libs/log and try again?
Also, what is your DocBook XML version
"C:/Program Files (x86)/DocbookXML/42" # dir exists and contains docbookx.dtd 4.2 Paul@hetpD MINGW64 /c/Program Files (x86)/xsltproc_win32 $ ./xsltproc.exe -V Using libxml 20630, libxslt 10122 and libexslt 813 xsltproc was compiled against libxml 20630, libxslt 10122 and libexslt 813 libxslt 10122 was compiled against libxml 20630 libexslt 813 was compiled against libxml 20630
and how are you running b2? I'm running: b2 -j8 release from libs/log/doc.
$ b2 > log_doc_4mar2021_1705.log zip attached. So using all available cores (since you ask: 24 😊 ) Same result - much ambiguity. I have seen this before when things were declared twice. But least no phantom colons.. Still not helping much ... ☹ Paul

On 3/4/21 8:18 PM, Paul A Bristow via Boost wrote:
There are no "no ID for constraint linkend" errors in your output, though it still has errors from the commented line. Could you update libs/log and try again?
Also, what is your DocBook XML version
"C:/Program Files (x86)/DocbookXML/42" # dir exists and contains docbookx.dtd 4.2
Paul@hetpD MINGW64 /c/Program Files (x86)/xsltproc_win32 $ ./xsltproc.exe -V Using libxml 20630, libxslt 10122 and libexslt 813 xsltproc was compiled against libxml 20630, libxslt 10122 and libexslt 813 libxslt 10122 was compiled against libxml 20630 libexslt 813 was compiled against libxml 20630
and how are you running b2? I'm running: b2 -j8 release from libs/log/doc.
$ b2 > log_doc_4mar2021_1705.log zip attached.
So using all available cores (since you ask: 24 😊 )
Same result - much ambiguity.
I have seen this before when things were declared twice.
Don't mind the namespace warnings Doxygen throws. My understanding is that it has issues with multiple overloads of the same function, but eventually generates acceptable docs.
But least no phantom colons..
Still not helping much ... ☹
I tried using DocBook DTD 4.2 and XSL 1.75.2, as specified in tools/boostbook/setup_boostbook.sh, but still no luck - the issue is the same. This is really strange.

-----Original Message----- From: Boost <boost-bounces@lists.boost.org> On Behalf Of Andrey Semashev via Boost Sent: 4 March 2021 19:52 To: boost@lists.boost.org Cc: Andrey Semashev <andrey.semashev@gmail.com> Subject: Re: [boost] [quickbook] Broken links generated in locally built docs
On 3/4/21 8:18 PM, Paul A Bristow via Boost wrote:
There are no "no ID for constraint linkend" errors in your output, though it still has errors from the commented line. Could you update libs/log and try again?
Also, what is your DocBook XML version
"C:/Program Files (x86)/DocbookXML/42" # dir exists and contains docbookx.dtd 4.2
Paul@hetpD MINGW64 /c/Program Files (x86)/xsltproc_win32 $ ./xsltproc.exe -V Using libxml 20630, libxslt 10122 and libexslt 813 xsltproc was compiled against libxml 20630, libxslt 10122 and libexslt 813 libxslt 10122 was compiled against libxml 20630 libexslt 813 was compiled against libxml 20630
and how are you running b2? I'm running: b2 -j8 release from libs/log/doc.
$ b2 > log_doc_4mar2021_1705.log zip attached.
So using all available cores (since you ask: 24 😊 )
Same result - much ambiguity.
I have seen this before when things were declared twice.
Don't mind the namespace warnings Doxygen throws. My understanding is that it has issues with multiple overloads of the same function, but eventually generates acceptable docs.
Yes this is my experience too - but I did some work to avoid the warnings to avoid clutter of warnings obscuring real warnings. Boost.Inspect doesn't reveal anything amiss. Inspection from path "html" including sub-folders.<br> 669 files scanned,<br> 51 directories scanned (including root),<br> 0 problems reported. (After I had deleted the /html and rebuilt it 😉 ) Attached zip of /html https://www.dropbox.com/s/zeguvc4bgyklac8/log_html.7z?dl=0 Looks nice enough to me 😊
I tried using DocBook DTD 4.2 and XSL 1.75.2, as specified in tools/boostbook/setup_boostbook.sh, but still no luck - the issue is the same. This is really strange.
I remember very faintly trying a more recent version of one of these two tools and the build didn't work so reverted on the thinking that "If it isn't broken, don't fix it." Portability is wonderful ?
Still not helping much ... ☹
Paul
participants (2)
-
Andrey Semashev
-
pbristow@hetp.u-net.com