Hello,

Pierre Neidhardt <ambre...@gmail.com> skribis:

> Since all file timestamps are set to Epoch by 'unpack', the build phase
> tries to rebuild everything.
> And since the files unpacked to "source" are read-only, `make` fails to
> regenerate the files that go in "source".

Yes, that’s annoying, but that’s expected.  Perhaps the ‘unpack’
phase could automatically make the copy that it creates with
‘copy-recursively’ writable?

> From the source, 'unpack' is supposed to preserve the timestamp:
>
> (define* (unpack #:key source #:allow-other-keys)
>   "Unpack SOURCE in the working directory, and change directory within the
> source.  When SOURCE is a directory, copy it in a sub-directory of the current
> working directory."
>   (if (file-is-directory? source)
>       (begin
>         (mkdir "source")
>         (chdir "source")
>
>         ;; Preserve timestamps (set to the Epoch) on the copied tree so that
>         ;; things work deterministically.
>         (copy-recursively source "."
>                           #:keep-mtime? #t)

It does preserve timestamps, but since SOURCE is in the store, its
timestamps are all set to the Epoch.

But that’s OK: Git doesn’t specify timestamps anyway.

Thanks,
Ludo’.

Reply via email to