On 26/07/16 21:25, Graham Percival wrote:
It would be nice if we could have byte-for-byte "reproducible" builds; i.e.
if the input file and the lilypond versions are the same, they would produce
identical output.Currently we can set pdfmodDate, but the PDF metadata "CreationData" field
is still set to the current time. It would be great if we could either omit
that field, or set it manually.Test case: compile this twice (keeping the first pdf), then compare the
files. Ideally they would produce identical output.\version "2.19.45"
\header {
% Works great!
pdfmodDate = "D:20150811160000+01'00'"
% Doesn't change anything; not currently supported.
pdfcreationDate = "D:20150811160000+01'00'"
}
{ c'4 }I will note that both ModDate and CreationDate are optional in the PDF spec
(according to David):
https://lists.gnu.org/archive/html/lilypond-user/2016-07/msg00162.htmlCheers,
- Graham
I am skeptical that ModDate and CreationDate being optional by spec will buy us anything since LilyPond is not writing its PDF files itself and I would suspect ps2pdf to fill in those entries when nobody else does.
Here:
http://lists.gnu.org/archive/html/lilypond-devel/2016-07/msg00065.html
some sketch.
Inserting there the following line seems to work
(metadata-lookup-output 'pdfcreationDate 'creationDate "CreationDate")
Ofcourse, data like
File Modification Date/Time
File Access Date/Time
File Inode Change Date/Time
will change.
So I'm not not convinced either.