summaryrefslogtreecommitdiff
path: root/gnu/build
diff options
context:
space:
mode:
authorJanneke Nieuwenhuizen <janneke@gnu.org>2026-05-14 10:31:48 +0200
committerJanneke Nieuwenhuizen <janneke@gnu.org>2026-05-19 18:33:13 +0200
commitb8f6ad67504ccb29effab431778e592c81632f11 (patch)
treeb5d321becd560c2a92b10229dab383a2027b5f0c /gnu/build
parentd4d03b652f9daf53937ac20a955683c48a1c5338 (diff)
system: hurd-boot: Robustify passive-translator-xattr?.
* gnu/build/hurd-boot.scm (passive-translator-xattr?): Check for existance of file-name first to avoid spurious backtrace. Mention caveat of reading xattrs on Linux in docstring. * gnu/build/hurd-boot.scm (set-translator): Mention caveat of writing xattrs on Linux in docstring. Change-Id: I0586359add5c565f5857c4923756840010e42cd5
Diffstat (limited to 'gnu/build')
-rw-r--r--gnu/build/hurd-boot.scm25
1 files changed, 17 insertions, 8 deletions
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index 2af740397d0..ce198cce961 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -123,13 +123,18 @@ Return the value associated with OPTION, or #f on failure."
123 123
124(define (passive-translator-xattr? file-name) 124(define (passive-translator-xattr? file-name)
125 "Return true if FILE-NAME has an extended @code{gnu.translator} attribute 125 "Return true if FILE-NAME has an extended @code{gnu.translator} attribute
126set." 126set.
127 (catch 'system-error 127
128 (lambda _ (not (string-null? (getxattr file-name "gnu.translator")))) 128Note that reading \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs,
129 (lambda args 129used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is
130 (if (= ENODATA (system-error-errno args)) 130needed."
131 #f 131 (and (file-exists? file-name)
132 (apply throw args))))) 132 (catch 'system-error
133 (lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
134 (lambda args
135 (if (= ENODATA (system-error-errno args))
136 #f
137 (apply throw args))))))
133 138
134(define (passive-translator-installed? file-name) 139(define (passive-translator-installed? file-name)
135 "Return true if @file{showtrans} finds a translator installed on FILE-NAME." 140 "Return true if @file{showtrans} finds a translator installed on FILE-NAME."
@@ -149,7 +154,11 @@ set."
149 (passive-translator-installed? file-name))) 154 (passive-translator-installed? file-name)))
150 155
151(define* (set-translator file-name command #:optional (mode #o600)) 156(define* (set-translator file-name command #:optional (mode #o600))
152 "Setup translator COMMAND on FILE-NAME." 157 "Setup translator COMMAND on FILE-NAME.
158
159Note that setting \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs,
160used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is
161needed."
153 (unless (translated? file-name) 162 (unless (translated? file-name)
154 (let ((dir (dirname file-name))) 163 (let ((dir (dirname file-name)))
155 (unless (directory-exists? dir) 164 (unless (directory-exists? dir)