Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • L libxslt
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 14
    • Issues 14
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • libxslt
  • Issues
  • #37

xsltproc produces nondeterministic output

While working on reproducible builds for openSUSE, I found that our gsequencer package contained random variations in its documentation even when I tried to make builds as deterministic as possible.

Using xsltproc from libxslt-1.1.34

Actual Result:

for i in $(seq 1 6) ; do cd /path/to/gsequencer 
&& xsltproc --output /tmp/out/ --xinclude \
 /usr/share/xml/docbook/stylesheet/nwalsh/current/htmlhelp/htmlhelp.xsl docs/developersBook.xml 2>&1 |
  grep title ; md5sum /tmp/out/htmlhelp.hhp ; done 
Request for title of element with no title: code (contained in )
0456050f6e7c2247a691e06509febfff  /tmp/out/htmlhelp.hhp
e774452ce564e240d02a34bc1cec7c50  /tmp/out/htmlhelp.hhp
e774452ce564e240d02a34bc1cec7c50  /tmp/out/htmlhelp.hhp
Request for title of element with no title: code (contained in )
0456050f6e7c2247a691e06509febfff  /tmp/out/htmlhelp.hhp
e774452ce564e240d02a34bc1cec7c50  /tmp/out/htmlhelp.hhp
e774452ce564e240d02a34bc1cec7c50  /tmp/out/htmlhelp.hhp

Expected Result: output should be deterministic.

diffs between output files look thusly:

--- old//usr/share/doc/libags-audio-doc/html/htmlhelp.hhp       2020-03-13 00:00:00.000000000 +0000
+++ new//usr/share/doc/libags-audio-doc/html/htmlhelp.hhp       2020-03-13 00:00:00.000000000 +0000
@@ -8,11 +8,11 @@
 Display compile progress=Yes
 Full-text search=Yes
 Language=0x0409 English (UNITED STATES)
-Title=Advanced Gtk+ Sequencer
+Title=Advanced Gtk+ Sequencer???TITLE???
 Enhanced decompilation=No

 [WINDOWS]
-Main="Advanced Gtk+ Sequencer","toc.hhc",,"index.html","index.html",,,,,0x2520,,0x603006,,,,,,,,0
+Main="Advanced Gtk+ Sequencer???TITLE???","toc.hhc",,"index.html","index.html",,,,,0x2520,,0x603006,,,,,,,,0

This xsltproc output line might be related: Note: namesp. cut : stripped namespace before processing Advanced Gtk+ Sequencer

See also https://reproducible-builds.org/ for why this matters.

Edited Apr 06, 2020 by Bernhard M. Wiedemann
Assignee
Assign to
Time tracking