Danny Milosavljevic writes: > Fixes . > > * gnu/packages/groff.scm (groff)[source]: Remove timestamps. > --- > gnu/packages/groff.scm | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/groff.scm b/gnu/packages/groff.scm > index 46e1ccf23..1a74194a6 100644 > --- a/gnu/packages/groff.scm > +++ b/gnu/packages/groff.scm > @@ -40,7 +40,23 @@ > (uri (string-append "mirror://gnu/groff/groff-" version > ".tar.gz")) > (sha256 (base32 > - "1998v2kcs288d3y7kfxpvl369nqi06zbbvjzafyvyl3pr7bajj1s")))) > + "1998v2kcs288d3y7kfxpvl369nqi06zbbvjzafyvyl3pr7bajj1s")) > + (modules '((guix build utils))) > + (snippet > + '(begin > + (substitute* "mdate.sh" > + (("^LANGUAGE=") " > + > +echo \"1 Jan 1970\" > +exit 0 > + > +")) It would be more obvious what's going on if we substitute the "mdate.sh" invocation from the Makefile instead. OTOH, this is more future-proof. No strong opinion, but feels a bit "hacky". Note that you can use \n here. > + (substitute* '("src/devices/grops/ps.cpp" > + "src/devices/grohtml/post-html.cpp" > + "src/roff/troff/input.cpp") > + (("time\\(0\\)") "0")) > + (substitute* "src/devices/gropdf/gropdf.pl" > + (("\\(time\\)") "(0)")))))) Are all of these really a cause of indeterminism in the build process? It looks like this could make "legitimate" uses of groff return epoch 0 at runtime, I'm not sure if that is okay. Which output files are fixed by these substitutions? Are there other ways to deal with the indeterminism, e.g. substitute them in place?