store: deduplication: Handle fs without d_type support.
scandir* uses readdir, which means that the file type property can be 'unknown if the underlying file-system does not support d_type. Make sure to fallback to lstat in that case. Fixes: https://issues.guix.gnu.org/issue/42579. * guix/store/deduplication.scm (deduplicate): Handle the case where properties is 'unknown because the underlying file-system does not support d_type.master
parent
64e8f2ec2d
commit
8b221b64a5
|
@ -164,8 +164,10 @@ under STORE."
|
|||
((file . properties)
|
||||
(unless (member file '("." ".."))
|
||||
(let* ((file (string-append path "/" file))
|
||||
(type (or (assq-ref properties 'type)
|
||||
(stat:type (lstat file)))))
|
||||
(type (match (assoc-ref properties 'type)
|
||||
((or 'unknown #f)
|
||||
(stat:type (lstat file)))
|
||||
(type type))))
|
||||
(loop file type
|
||||
(and (not (eq? 'directory type))
|
||||
(nar-sha256 file)))))))
|
||||
|
|
Reference in New Issue