documentation doesn't build anymore

I can't build the "doc/" directory of the current boost CVS version any longer: budweis:/usr/local/src/boost-current/doc$ bjam --v2 /usr/local/src/boost-current/tools/build/v2/build/feature.jam:193: in feature.attributes from module feature error: "<link-runtime>" is not a valid feature name /usr/local/src/boost-current/tools/build/v2/build/property.jam:409: in property.translate-paths from module property [...] Am I the only one who has that problem? Is there a simple fix, maybe? Any ideas, anyone? Peter

Peter Simons <simons@cryp.to> writes:
I can't build the "doc/" directory of the current boost CVS version any longer:
budweis:/usr/local/src/boost-current/doc$ bjam --v2 /usr/local/src/boost-current/tools/build/v2/build/feature.jam:193: in feature.attributes from module feature error: "<link-runtime>" is not a valid feature name /usr/local/src/boost-current/tools/build/v2/build/property.jam:409: in property.translate-paths from module property [...]
Am I the only one who has that problem? Is there a simple fix, maybe?
a. Update your Boost.Build sources b. Change any uses of <link-runtime> to <runtime-link> HTH, -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams writes:
b. Change any uses of <link-runtime> to <runtime-link>
Ah, thank you for the hint; that fixed the problem. Since I don't have commit rights to the CVS repository, could someone else please apply the attached patch? Peter Index: libs/iostreams/test/Jamfile.v2 =================================================================== RCS file: /cvsroot/boost/boost/libs/iostreams/test/Jamfile.v2,v retrieving revision 1.6 diff -b -u -r1.6 Jamfile.v2 --- libs/iostreams/test/Jamfile.v2 4 Jun 2005 06:01:14 -0000 1.6 +++ libs/iostreams/test/Jamfile.v2 22 Jun 2005 14:56:53 -0000 @@ -15,8 +15,8 @@ : # command : # input files : # build requirements - <toolset>msvc,<stdlib>stlport:<link-runtime>static - <toolset>cw-9.3,<os>darwin:<link-runtime>static + <toolset>msvc,<stdlib>stlport:<runtime-link>static + <toolset>cw-9.3,<os>darwin:<runtime-link>static <define>BOOST_IOSTREAMS_NO_LIB $(requirements) ] ; Index: status/Jamfile.v2 =================================================================== RCS file: /cvsroot/boost/boost/status/Jamfile.v2,v retrieving revision 1.10 diff -b -u -r1.10 Jamfile.v2 --- status/Jamfile.v2 22 Apr 2005 07:48:31 -0000 1.10 +++ status/Jamfile.v2 22 Jun 2005 14:56:56 -0000 @@ -72,7 +72,7 @@ : #args : #input-files : #requirements - <link-runtime>shared + <runtime-link>shared <define>BOOST_DYN_LINK=1 <define>BOOST_CONFIG_NO_LIB=1 : Index: tools/Jamfile.v2 =================================================================== RCS file: /cvsroot/boost/boost/tools/Jamfile.v2,v retrieving revision 1.4 diff -b -u -r1.4 Jamfile.v2 --- tools/Jamfile.v2 25 Apr 2005 04:24:41 -0000 1.4 +++ tools/Jamfile.v2 22 Jun 2005 14:56:56 -0000 @@ -5,7 +5,7 @@ : requirements <link>static - <link-runtime>static + <runtime-link>static <threading>single ; Index: tools/build/v2/doc/src/reference.xml =================================================================== RCS file: /cvsroot/boost/boost/tools/build/v2/doc/src/reference.xml,v retrieving revision 1.14 diff -b -u -r1.14 reference.xml --- tools/build/v2/doc/src/reference.xml 31 May 2005 02:33:54 -0000 1.14 +++ tools/build/v2/doc/src/reference.xml 22 Jun 2005 14:56:56 -0000 @@ -153,20 +153,20 @@ for example: <programlisting> -borland/<link-runtime>static +borland/<runtime-link>static </programlisting> A more complex form can be used to save typing. For example, instead of <programlisting> -borland/link-runtime=static borland/link-runtime=dynamic +borland/runtime-link=static borland/runtime-link=dynamic </programlisting> one can use <programlisting> -borland/link-runtime=static,dynamic +borland/runtime-link=static,dynamic </programlisting> Exactly, the conversion from argument to build request @@ -203,7 +203,7 @@ For example, the command line <programlisting> -target1 debug gcc/link-runtime=dynamic,static +target1 debug gcc/runtime-link=dynamic,static </programlisting> would cause target called <literal>target1</literal> to be rebuilt in @@ -503,12 +503,12 @@ <para>A <emphasis>property set</emphasis> is a set of properties (i.e. a collection without duplicates), for instance: - <literal><toolset>gcc <link-runtime>static</literal>.</para> + <literal><toolset>gcc <runtime-link>static</literal>.</para> <para>A <emphasis>property path</emphasis> is a property set whose elements have been joined into a single string separated by slashes. A property path representation of the previous example would be - <literal><toolset>gcc/<link-runtime>static</literal>.</para> + <literal><toolset>gcc/<runtime-link>static</literal>.</para> <para>A <emphasis>build specification</emphasis> is a property set that fully describes the set of features used to build a target.</para> Index: tools/inspect/build/Jamfile.v2 =================================================================== RCS file: /cvsroot/boost/boost/tools/inspect/build/Jamfile.v2,v retrieving revision 1.4 diff -b -u -r1.4 Jamfile.v2 --- tools/inspect/build/Jamfile.v2 24 Apr 2005 17:18:24 -0000 1.4 +++ tools/inspect/build/Jamfile.v2 22 Jun 2005 14:56:56 -0000 @@ -4,7 +4,7 @@ : requirements <link>static - <link-runtime>static + <runtime-link>static <threading>single : source-location .. Index: tools/wave/build/Jamfile.v2 =================================================================== RCS file: /cvsroot/boost/boost/tools/wave/build/Jamfile.v2,v retrieving revision 1.3 diff -b -u -r1.3 Jamfile.v2 --- tools/wave/build/Jamfile.v2 24 Apr 2005 17:18:25 -0000 1.3 +++ tools/wave/build/Jamfile.v2 22 Jun 2005 14:56:57 -0000 @@ -12,7 +12,7 @@ : requirements <link>static - <link-runtime>static + <runtime-link>static <threading>single ;

I can't build the "doc/" directory of the current boost CVS version any longer:
budweis:/usr/local/src/boost-current/doc$ bjam --v2 /usr/local/src/boost-current/tools/build/v2/build/feature.jam:193: in feature.attributes from module feature error: "<link-runtime>" is not a valid feature name /usr/local/src/boost-current/tools/build/v2/build/property.jam:409: in property.translate-paths from module property [...]
Am I the only one who has that problem? Is there a simple fix, maybe?
a. Update your Boost.Build sources b. Change any uses of <link-runtime> to <runtime-link>
Unfortunately there are several places in Boost's own Jamfiles where that is the case - should be fixed now in cvs - doc build is working OK for me locally anyway. John.

John Maddock writes:
[building the documentation] should be fixed now in cvs - doc build is working OK for me locally anyway.
I still have some problems which I'm not sure how to remedy. Here is the (relevant part of) the output I see when executing "bjam --v2" in the "doc/" hierarchy: | $ xslt-xsltproc ../bin.v2/doc/gcc-3.3.5/debug/boost.docbook | Cannot find function named 'checked_delete' | Cannot find function named 'checked_array_delete' | Cannot find function named 'next' | Cannot find function named 'prior' | Cannot find function named 'checked_delete' | Cannot find function named 'checked_array_delete' | Cannot find function named 'next' | [... hundreds of those ...] | warning: Cannot find library 'Boost.Regex' | warning: Cannot find library 'Boost Random Number Library' | warning: Cannot find library 'Boost Tokenizer Library' | [...] | Cannot find class named '' | [...] | warning: Cannot find library 'Type Traits' | [...] | $ xslt-xsltproc-dir html/HTML.manifest | ../bin.v2/doc/gcc-3.3.5/debug/boost.docbook:19429: element refentry: validity error : ID tribool already defined | }</synopsis><refentry id="tribool"><refmeta><refentrytitle>Class tribool</refent | ^ | Warning: multiple "IDs" for constraint linkend: tribool. | Warning: multiple "IDs" for constraint linkend: tribool. | [...] | Writing any.html for chapter(any) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/any.html | [...] | Writing array.html for chapter(array) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/array.html | [...] | Writing function.html for chapter(function) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/function.html | [...] | Writing hash.html for chapter(hash) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/hash.html | [...] | Writing lambda.html for chapter(lambda) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/lambda.html | [...] | Writing ref.html for chapter(ref) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/ref.html | [...] | Writing signals.html for chapter(signals) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/signals.html | [...] | Writing boost_staticassert.html for chapter(boost_staticassert) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/boost_staticassert.html | [...] | Writing threads.html for chapter(threads) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/threads.html | [...] | Warning: multiple "IDs" for constraint linkend: tribool. | [...] | Writing boost_typetraits.html for chapter(boost_typetraits) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/boost_typetraits.html | [...] | Writing variant/design.html for section(variant.design) | Error: no ID for constraint linkend: variant.tests. | [...] | Writing variant.html for chapter(variant) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/variant.html | [...] | Writing boostbook.html for part(boostbook) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/boostbook.html | [...] | Writing bbv2/tutorial.html for chapter(bbv2.tutorial) | Don't know what gentext to create for xref to: "row", ("bbv2.reference.init.options.help") | No template for "/book/part/chapter/section/section/para" (or any of its leaves) exists | in the context named "title" in the "en" localization. | Error: no ID for constraint linkend: bbv2.advanced.projects.relationships.useprojectrule. | Error: no ID for constraint linkend: bbv2.advanced.projects.relationships.useprojectrule. | Error: no ID for constraint linkend: bbv2.advanced.projects.relationships.buildprojectrule. | Error: no ID for constraint linkend: bbv2.reference.buildprocess.explict. | [...] | Writing bbv2/extender.html for chapter(bbv2.extender) | Error: no ID for constraint linkend: bbv2.reference.buildreq. | XRef to nonexistent id: bbv2.reference.buildreq | [...] | Writing HTML.manifest | error: file ../bin.v2/doc/gcc-3.3.5/debug/boost.docbook | xsltRunStylesheet : run failed | | XML_CATALOG_FILES=../bin.v2/doc/gcc-3.3.5/debug/catalog.xml | export XML_CATALOG_FILES | "/usr/bin/xsltproc" --stringparam boost.libraries ../../libs/libraries.htm --path ../bin.v2/libs/functional/hash/doc/gcc-3.3.5/debug --path ../bin.v2/libs/static_assert/doc/gcc-3.3.5/debug --path ../bin.v2/libs/type_traits/doc/gcc-3.3.5/debug --path ../bin.v2/more/whos_using/gcc-3.3.5/debug --xinclude -o "html/" "/usr/local/src/boost-current/tools/boostbook/xsl/html.xsl" "../bin.v2/doc/gcc-3.3.5/debug/boost.docbook" | | ...failed xslt-xsltproc-dir html/HTML.manifest... | ...removing html/HTML.manifest | ...failed updating 1 target... | ...updated 1 target... Peter

I still have some problems which I'm not sure how to remedy. Here is the (relevant part of) the output I see when executing "bjam --v2" in the "doc/" hierarchy:
| $ xslt-xsltproc ../bin.v2/doc/gcc-3.3.5/debug/boost.docbook | Cannot find function named 'checked_delete' | Cannot find function named 'checked_array_delete' | Cannot find function named 'next' | Cannot find function named 'prior' | Cannot find function named 'checked_delete' | Cannot find function named 'checked_array_delete' | Cannot find function named 'next'
Harmless but annoying.
| warning: Cannot find library 'Boost.Regex' | warning: Cannot find library 'Boost Random Number Library' | warning: Cannot find library 'Boost Tokenizer Library'
Not sure why you're getting those.
| $ xslt-xsltproc-dir html/HTML.manifest | ../bin.v2/doc/gcc-3.3.5/debug/boost.docbook:19429: element refentry: validity error : ID tribool already defined | }</synopsis><refentry id="tribool"><refmeta><refentrytitle>Class tribool</refent
That's an error in someones BoostBook code, and looks like it needs fixing.
| Writing any.html for chapter(any) | I/O error : Permission denied | runtime error: file file:///usr/local/src/boost-current/tools/boostbook/docbook-xsl-1.67.2/html/chunker.xsl line 215 element document | xsltDocumentElem: unable to save to html/any.html
Those errors are caused by the contents of doc/html being read only, do a chmod +w -R * and that should fix the build. John.

One more thing about the documentation:
| Writing any.html for chapter(any)
Apparently the files doc/html/any.html doc/html/array.html doc/html/boost_staticassert.html doc/html/boost_typetraits.html doc/html/boostbook.html doc/html/function.html doc/html/hash.html doc/html/lambda.html doc/html/ref.html doc/html/signals.html doc/html/threads.html doc/html/variant.html doc/html/who_s_using_boost_.html are checked into the CVS repository even though they are (re-)generated during the build process. IMHO, that's not a good idea because it invites "commit accidents" to happen. Peter

On Jun 24, 2005, at 10:53 AM, Peter Simons wrote:
One more thing about the documentation:
| Writing any.html for chapter(any)
Apparently the files
doc/html/any.html doc/html/array.html doc/html/boost_staticassert.html doc/html/boost_typetraits.html doc/html/boostbook.html doc/html/function.html doc/html/hash.html doc/html/lambda.html doc/html/ref.html doc/html/signals.html doc/html/threads.html doc/html/variant.html doc/html/who_s_using_boost_.html
are checked into the CVS repository even though they are (re-)generated during the build process. IMHO, that's not a good idea because it invites "commit accidents" to happen.
Those files are there so that someone with a copy of Boost from CVS can read current documentation without having to generate it. They redirect out to MetaComm's BoostBook-generated docs. Doug

Doug Gregor writes:
Those files are there so that someone with a copy of Boost from CVS can read current documentation without having to generate it.
I agree that this is kind of nice, but checking generated files into the CVS repository is really not a good idea in my experience. It is just a matter of time before someone overwrites the files by accidently committing the (re-)generated versions. As a matter of fact, the CVS history suggests that accidents like this _have_ happened before. ;-) Peter

On Jun 24, 2005, at 11:29 AM, Peter Simons wrote:
Doug Gregor writes:
Those files are there so that someone with a copy of Boost from CVS can read current documentation without having to generate it.
I agree that this is kind of nice, but checking generated files into the CVS repository is really not a good idea in my experience. It is just a matter of time before someone overwrites the files by accidently committing the (re-)generated versions. As a matter of fact, the CVS history suggests that accidents like this _have_ happened before. ;-)
When it happens, we'll fix it. They aren't generated files... they're redirecting HTML files that are overwritten when one builds real (local) documentation. The convenience of being able to get to documentation with Boost from CVS far outweighs the problems with someone making a mistake that's easily corrected. Doug

Peter Simons <simons@cryp.to> writes:
Doug Gregor writes:
Those files are there so that someone with a copy of Boost from CVS can read current documentation without having to generate it.
I agree that this is kind of nice
It's very important to some of us.
but checking generated files into the CVS repository is really not a good idea in my experience. It is just a matter of time before someone overwrites the files by accidently committing the (re-)generated versions. As a matter of fact, the CVS history suggests that accidents like this _have_ happened before. ;-)
In this particular case, it's a relatively benign accident. Probably we could take advantage of CVS admin scripts or branches to stop it, though. As far as I'm concerned, the gain is worth the potential pain. -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (4)
-
David Abrahams
-
Doug Gregor
-
John Maddock
-
Peter Simons