Skip to content

Eliminate xml table conflict - #4884

Merged
bdbaddog merged 1 commit into
SCons:masterfrom
mwichmann:doc/xml-tables
Jul 27, 2026
Merged

Eliminate xml table conflict#4884
bdbaddog merged 1 commit into
SCons:masterfrom
mwichmann:doc/xml-tables

Conversation

@mwichmann

@mwichmann mwichmann commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

This is an AI analysis of errors reported by Apache fop, in this style:

[ERROR] FOUserAgent - Invalid property value encountered in column-width="proportional-column-width(1)": org.apache.fop.fo.expr.PropertyException: file:/home/mats/github/scons/build/doc/user/scons-user.fo:12435:16: proportional-column-width() function may only be used when fo:table has table-layout="fixed".; property:'column-width' (See position 12435:95)

A conflict arises when building PDFs of docs - informaltable elements default to proportional columns, fop doesn't support these, so it falls back to fixed widths which are incompatible with some Docbook syntax - this isn't SCons' problem per se, just a hole we fall into because of using fop, plus wrapping lxml - something that wasn't the default until quite a bit after this code was merged in the first place.

Various approaches were explored - some work in this direction had been partially done, as $DOCBOOK_XSLTPROCFLAGS provides a way to pass flags through, but while the docbook tool recognizes that in general, it doesn't actually parse it when the lxml wrapping is used: parampass is initialized to an empty dict but never populated with parse results - it now has a comment to that effect in case it turns up needed in future. lxml usage wasn't the default before, it became so after the older approach was retired by upstream. Fixing that the "obvious" way, by adding the flags in each doc SConstruct and parsing the value, opens up some other holes, so instead a fairly simplminded postprocessing step is added to the docbook tool.

Signed-off-by: Mats Wichmann mats@linux.com
Assisted-by: OpenCode 1.18.5 driving Qwen 3.86

Remove this paragraph

Please have a look at our developer documentation before submitting your Pull Request.

https://scons.org/guidelines.html

Contributor Checklist:

  • I have created a new test or updated the unit tests to cover the new/changed functionality.
  • I have updated CHANGES.txt and RELEASE.txt (and read the README.rst).
  • I have updated the appropriate documentation

This is an AI analysis of errors reported by Apache fop.

A conflict arises when building PDFs of docs - informaltable elements want
to use proportional columns, FOP doesn't support these, so it falls back
to fixed widths which are incompatible with some Docbook syntax - this
isn't SCons' problem per se, just a hole we fall into because of using
fop, plus wrapping lxml - something that wasn't the default until quite
a bit after this code was merged in the first place.

[ERROR] FOUserAgent - Invalid property value encountered in column-width="proportional-column-width(1)": org.apache.fop.fo.expr.PropertyException: file:/home/mats/github/scons/build/doc/user/scons-user.fo:12435:16: proportional-column-width() function may only be used when fo:table has table-layout="fixed".; property:'column-width' (See position 12435:95)

Various approaches were explored - some work in this direction had
been partially done, as $DOCBOOK_XSLTFLAGS provides a way to pass
flags through, but the docbook tool doesn't actually parse that setting
("parampass" is initialized to an empty dict but never populated with
parse results - it now has a comment to that effect in case it turns up
needed in future)). Fixing that the "obvious" way opens up some other
holes, so instead a fairly simplminded postprocessing step is added to
the docbook tool.

Various approaches were explored - some work in this direction had
been partially done, as `$DOCBOOK_XSLTPROCFLAGS` provides a way to pass
flags through, but while the docbook tool recognizes that in general,
it doesn't actually parse it when the lxml wrapping is used: `parampass`
is initialized to an empty dict but never populated with parse results
- it now has a comment to that effect in case it turns up needed in
future. lxml usage wasn't the default before, it became so after the
older approach was retired by upstream. Fixing that the "obvious" way,
by adding the flags in each doc SConstruct and parsing the value, opens
up some other holes, so instead a fairly simplminded postprocessing step
is added to the docbook tool.

Signed-off-by: Mats Wichmann <mats@linux.com>
Assisted-by: OpenCode 1.18.5 driving Qwen 3.8
@mwichmann mwichmann added this to the 4.11.0 milestone Jul 26, 2026
@mwichmann mwichmann added this to 4.11 Jul 26, 2026
Comment thread doc/user/SConstruct
@bdbaddog
bdbaddog merged commit 111f144 into SCons:master Jul 27, 2026
10 of 12 checks passed
@github-project-automation github-project-automation Bot moved this to Done in 4.11 Jul 27, 2026
@mwichmann
mwichmann deleted the doc/xml-tables branch July 27, 2026 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants