Skip to content
Snippets Groups Projects

Backport: SVG output: incremental ID scheme for non-rectangular clip paths.

Closed James Addison requested to merge (removed):bug-1065124/determinstic-svg-export into master

This backports an upstream patch to fix an output nondeterminism (e.g. build reproducibility) bug - it is available in v3.10 of matplotlib upstream, but is relatively straightforward to backport to v3.8.3 also.

Closes #1065124.

Aside / Build-Dep modification explainer

The rendering of a TextPath entity introduced by the determinism patch causes a subtle build-time bug during autopkgtests: dvips produces intermediate DVI files that include Encoding vector references for the tcss3583 font -- because that font appears in dvips-all.enc as distributed in texlive-base. the fact that matplotlib produces and processes TeX that includes \usepackage{type1ec} -- without specifying a 10-point font size! -- means that large-sized text may attempt to use fonts such as tcss3583 that are not available in cm-super-minimal

(the minimal variant of the package only contains 10* font files).

However: we do not currently install the referenced font file itself during package build, and matplotlib fails to render the PostScript version of the deterministic test diagram as a result of that.

In this merge request, commit 80b52c68 adds a workaround: it migrates the build-dep on cm-super-minimal to cm-super so that the TCSS3583 font is available when the test suite runs. However, I'll try to learn more about the problem and report it as a bug upstream in matplotlib; there may be a way to handle this condition as a non-fatal error.

Edit: markup fixup for malformatted subheading in description

Edit 2: provide a more accurate problem description

Edit 3: improve the formatting of these edit footnotes

Edit 4: update a reference in the closing paragraph to commit 1375a4fa -- it has been superseded by 80b52c68 (with an explanatory commit message)

Edited by James Addison

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading