From c1608c26e33564584e71d73e7e81464f2b9baf5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 22 Jun 2023 18:40:37 +0200 Subject: [PATCH 1/3] dictdDBs.wiktionary: fix reproducibility with faketime (cherry picked from commit ef0abc9df9e6205370156def19a827f994fd3bdb) --- pkgs/servers/dict/wiktionary/default.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/dict/wiktionary/default.nix b/pkgs/servers/dict/wiktionary/default.nix index b15ece0e8512..8ec15db4f319 100644 --- a/pkgs/servers/dict/wiktionary/default.nix +++ b/pkgs/servers/dict/wiktionary/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, python3, dict, glibcLocales }: +{ lib, stdenv, fetchurl, python3, dict, glibcLocales, libfaketime }: stdenv.mkDerivation rec { pname = "dict-db-wiktionary"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "qsha26LL2513SDtriE/0zdPX1zlnpzk1KKk+R9dSdew="; }; - nativeBuildInputs = [ python3 dict glibcLocales ]; + nativeBuildInputs = [ python3 dict glibcLocales libfaketime ]; dontUnpack = true; @@ -17,8 +17,9 @@ stdenv.mkDerivation rec { mkdir -p $out/share/dictd/ cd $out/share/dictd - ${python3.interpreter} -O ${./wiktionary2dict.py} "${src}" - dictzip wiktionary-en.dict + source_date=$(date --utc --date=@$SOURCE_DATE_EPOCH "+%F %T") + faketime -f "$source_date" ${python3.interpreter} -O ${./wiktionary2dict.py} "${src}" + faketime -f "$source_date" dictzip wiktionary-en.dict echo en_US.UTF-8 > locale ''; From 63a80c1f3c19a9172aef2a0a45ac4e1c2f2a7c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 22 Jun 2023 18:41:42 +0200 Subject: [PATCH 2/3] dictdDBs.wordnet: fix reproducibility with faketime (cherry picked from commit 1fa6b683f5fa541b1aca5b5db4f9c32247489d0a) --- pkgs/servers/dict/dictd-wordnet.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/dict/dictd-wordnet.nix b/pkgs/servers/dict/dictd-wordnet.nix index 663bd54897bf..d9f3c7a99c8c 100644 --- a/pkgs/servers/dict/dictd-wordnet.nix +++ b/pkgs/servers/dict/dictd-wordnet.nix @@ -1,10 +1,10 @@ -{lib, stdenv, python3, wordnet, writeScript}: +{lib, stdenv, python3, wordnet, writeScript, libfaketime}: stdenv.mkDerivation rec { version = "542"; pname = "dict-db-wordnet"; - buildInputs = [python3 wordnet]; + buildInputs = [python3 wordnet libfaketime]; convert = ./wordnet_structures.py; builder = writeScript "builder.sh" '' @@ -16,7 +16,8 @@ stdenv.mkDerivation rec { DATA="$DATA `echo $i | sed -e s,data,index,` $i"; done - python ${convert} $DATA + source_date=$(date --utc --date=@$SOURCE_DATE_EPOCH "+%F %T") + faketime -f "$source_date" python ${convert} $DATA echo en_US.UTF-8 > locale ''; From 77acc364c4c2c14def881001373bb6c369416b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Thu, 22 Jun 2023 18:41:16 +0200 Subject: [PATCH 3/3] dictDBCollector: fix reproducibility with faketime (cherry picked from commit 7a1cb0b40e0aa8c2a00702db66dd7273bc1b8028) --- pkgs/servers/dict/dictd-db-collector.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/dict/dictd-db-collector.nix b/pkgs/servers/dict/dictd-db-collector.nix index a0ad507c4664..793cbf66a46d 100644 --- a/pkgs/servers/dict/dictd-db-collector.nix +++ b/pkgs/servers/dict/dictd-db-collector.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, dict }: +{ stdenv, lib, dict, libfaketime }: ({ dictlist, allowList ? [ "127.0.0.1" ], denyList ? [ ] }: /* @@ -56,7 +56,8 @@ let ln -s "$i".dict.dz else cp "$i".dict . - dictzip "$base".dict + source_date=$(date --utc --date=@$SOURCE_DATE_EPOCH "+%F %T") + faketime -f "$source_date" dictzip "$base".dict fi ln -s "$i".index . dictfmt_index2word --locale $locale < "$base".index > "$base".word || true @@ -76,6 +77,7 @@ in stdenv.mkDerivation { name = "dictd-dbs"; + nativeBuildInputs = [ libfaketime ]; buildInputs = [ dict ]; dontUnpack = true;