Subject: bug#44741: ‘copy-recursively’ #:keep-mtime? #t broken for directories

From: Ludovic Courtès <[email-masked]>
Date: Thu, 19 Nov 2020 22:40:08 +0100

Ludovic Courtès <[email-masked]> skribis:

> When passing #:keep-mtime? #t to ‘copy-recursively’, the mtime of
> regular files is preserved, but the mtime of directories (and symlinks)
> is not.
>
> This is because ‘set-file-time’ is called in the ‘down’ procedure of
> ‘file-system-fold’, before the directory is populated.

Fixed by 201cbcac3e9c23cc28352fa9ece3e677e22cc12c (core-updates).

> ‘populate-store’ is affected by this bug, meaning that it creates stores
> where directories have “wrong” timestamps.  In practice this is probably
> less likely to have undesirable side effects than regular files with
> wrong timestamps (think ‘make’, .go files, etc.)

In some cases, such as the initrd, the problem is harmless because
timestamps are reset anyway in the archive (for instance
‘write-cpio-archive’ does that.)

There might be problems in other cases, such as (gnu build image).

Ludo’.