From 804ee6ef179bad4911858bbf087125568c16c0dc Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Sun, 17 Apr 2022 18:56:28 +0200 Subject: [PATCH] texlive: improve reproducibility Co-authored-by: Vincenzo Mantova <1962985+xworld21@users.noreply.github.com> --- pkgs/tools/typesetting/tex/texlive/combine.nix | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix index d4c9d0cde80b..8686502a1345 100644 --- a/pkgs/tools/typesetting/tex/texlive/combine.nix +++ b/pkgs/tools/typesetting/tex/texlive/combine.nix @@ -225,7 +225,7 @@ in (buildEnv { perl `type -P mktexlsr.pl` --sort ./share/texmf ${bin.texlinks}/bin/texlinks "$out/bin" && wrapBin - perl `type -P fmtutil.pl` --sys --all | grep '^fmtutil' # too verbose + FORCE_SOURCE_DATE=1 perl `type -P fmtutil.pl` --sys --all | grep '^fmtutil' # too verbose #${bin.texlinks}/bin/texlinks "$out/bin" && wrapBin # do we need to regenerate format links? # Disable unavailable map files @@ -233,6 +233,9 @@ in (buildEnv { # Regenerate the map files (this is optional) perl `type -P updmap.pl` --sys --force + # sort entries to improve reproducibility + [[ -f "$TEXMFSYSCONFIG"/web2c/updmap.cfg ]] && sort -o "$TEXMFSYSCONFIG"/web2c/updmap.cfg "$TEXMFSYSCONFIG"/web2c/updmap.cfg + perl `type -P mktexlsr.pl` --sort ./share/texmf-* # to make sure '' + # install (wrappers for) scripts, based on a list from upstream texlive @@ -299,7 +302,12 @@ in (buildEnv { ) fi '' - + bin.cleanBrokenLinks + + bin.cleanBrokenLinks + + # Get rid of all log files. They are not needed, but take up space + # and render the build unreproducible by their embedded timestamps. + '' + find $TEXMFSYSVAR/web2c -name '*.log' -delete + '' ; }).overrideAttrs (_: { allowSubstitutes = true; }) # TODO: make TeX fonts visible by fontconfig: it should be enough to install an appropriate file