New tool: stampdalf - A filesystem timestamp preservation tool
Luca Di Maio
luca.dimaio1 at gmail.com
Thu Dec 18 07:31:22 UTC 2025
Hi all,
I would like to introduce a new tool I have developed that may be of
interest to this community: stampdalf.
Repository: https://github.com/89luca89/stampdalf
stampdalf is a simple command-line utility written in Go that wraps
arbitrary commands and ensures filesystem timestamp reproducibility.
The tool addresses a common challenge in reproducible builds: commands
that modify files often update their access and modification times as a
side effect, even when the actual content remains unchanged or is
modified in a reproducible way (for example idempotent commands). This
can lead to non-reproducible build artifacts.
How it works:
- Before executing the wrapped command, stampdalf scans the target
directory tree and records all file timestamps (atime/mtime)
- The specified command is then executed normally.
- After command completion, stampdalf restores the original timestamps
for all pre-existing files. Any newly created files are set to Unix
epoch by default, or to SOURCE_DATE_EPOCH if the environment variable
is set.
Example usage:
stampdalf --cd ./project make build
SOURCE_DATE_EPOCH=1609459200 stampdalf --cd ./dist npm run build
The tool is intentionally minimal and has no external dependencies
beyond the Go standard library.
It compiles to a single standalone binary so it's easy to deploy and
it's portable.
I welcome any feedback, suggestions, or contributions from the
community.
Best regards,
L.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 866 bytes
Desc: This is a digitally signed message part
URL: <http://lists.reproducible-builds.org/pipermail/rb-general/attachments/20251218/88fb4502/attachment.sig>
More information about the rb-general
mailing list