1
Fork 0
mirror of https://https.git.savannah.gnu.org/git/guix.git/ synced 2025-07-12 01:50:46 +02:00
guix/gnu/packages/patches/freedict-tools-fix-determinism.patch
Runciter abda22ecb1
gnu: freedict-tools: Fix non-determinism of dictzip compressed file headers.
Reset .dict file mtime to start of the epoch before compressing with dictzip.

* gnu/packages/patches/freedict-tools-fix-determinism.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/dictionaries.scm (freedict-tools): Use it.

Signed-off-by: Runciter <runciter@whispers-vpn.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-12-02 23:18:53 +01:00

22 lines
956 B
Diff

The compression utility dictzip writes the compressed file's mtime in a header
of the compressed file. No command-line switch is documented to control or
suppress this behavior. This makes the build of packages relying on
freedict-tools such as freedict-dictionaries non-deterministic.
This patch sets the mtime of the .dict file to be compressed by dictzip to the
start of the epoch on the Greenwich meridian, restoring build determinism.
diff --git a/mk/dicts.mk b/mk/dicts.mk
index 08e8923..e671cf3 100644
--- a/mk/dicts.mk
+++ b/mk/dicts.mk
@@ -265,7 +265,8 @@ $(BUILD_DICTD)/%.dict $(BUILD_DICTD)/%.index: $(BUILD_DICTD)/%.c5 query-dictd
dictfmt --without-time -t --headword-separator %%% $(DICTFMTFLAGS) $* < $(notdir $<)
$(BUILD_DICTD)/%.dict.dz: $(BUILD_DICTD)/%.dict
- dictzip -k $<
+ touch -m -d "$$(date -u -R -d @0)" $< && \
+ dictzip -k $<
# prevent make from removing our precious file
.PRECIOUS: $(BUILD_DICTD)/$(dictname).dict