Hi Guix,
Can we mock the date/time when we run the guix build process?
Some packages might only build properly within specific time ranges, so
it would be great if we can specify the 'build time'. Either to get
such package to build, or to test reproducibility in general.
Case in point, python-astropy uses the leap second tables provided by
python-astropy-iers-data. Leap seconds are announced 6 months in
advance, and astropy downloads new tables when it deems the local tables
are about to be outdated.
Unfortunately, the python-astropy-iers-data package has not been
refreshed on time, and now python-astropy does not build anymore (on
master).
But python-astropy does build when you do this:
sudo herd stop guix-daemon
sudo date --set="20 JUL 2026 18:00:00"
sudo guix-daemon
guix build python-astropy
While this particular problem can be fixed in the future (by disabling
the download [1]), it cannot be fixed 'in the past', so you cannot build
old python-astropy packages with `guix time-machine`.
(It might be that only this latest python-astropy version is affected,
limiting the scope, but that's besides the point.)
While the above commands work, setting your system clock probably has
quite some side effects [2].
So I'm wondering: is there an easier way to set the date/time for the
build process? Or for `guix shell` in general?
Hugo
[1] Disabling the downloading of leap second tables:
https://codeberg.org/guix/guix/pulls/10344
[2] While trying to sent this message, everything started to break down.
SMTP seemed to refuse the message, WiFi driver crashed, then other
random things stopped working like opening a shell, so I reisub'ed.