diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-12-11 14:57:55 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-12-13 22:47:56 +0100 |
commit | b1e2ec008a463cc70fe15ee6c9e8b18dfa5e8e0d (patch) | |
tree | 8a3ff546ce2f1b862b03cf264409f84ed8def490 | |
parent | 72809abc9e61eebbc51b8377827109d5f66754cf (diff) | |
download | guix-b1e2ec008a463cc70fe15ee6c9e8b18dfa5e8e0d.tar.gz |
utils: 'set-file-time' passes AT_SYMLINK_NOFOLLOW.
* guix/build/utils.scm (AT_SYMLINK_NOFOLLOW): New variable. (set-file-time): Use it.
-rw-r--r-- | guix/build/utils.scm | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/guix/build/utils.scm b/guix/build/utils.scm index 11ac6a8a7b..9965106c48 100644 --- a/guix/build/utils.scm +++ b/guix/build/utils.scm @@ -924,13 +924,21 @@ a thunk." (min len buffer-size) buffer-size)))))) +(define AT_SYMLINK_NOFOLLOW + ;; Guile 2.0 did not define this constant, hence this hack. + (let ((variable (module-variable the-root-module 'AT_SYMLINK_NOFOLLOW))) + (if variable + (variable-ref variable) + 256))) ;for GNU/Linux + (define (set-file-time file stat) "Set the atime/mtime of FILE to that specified by STAT." (utime file (stat:atime stat) (stat:mtime stat) (stat:atimensec stat) - (stat:mtimensec stat))) + (stat:mtimensec stat) + AT_SYMLINK_NOFOLLOW)) (define (get-char* p) ;; We call it `get-char', but that's really a binary version |