diff options
| author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2026-05-14 10:31:48 +0200 |
|---|---|---|
| committer | Janneke Nieuwenhuizen <janneke@gnu.org> | 2026-05-19 18:33:13 +0200 |
| commit | b8f6ad67504ccb29effab431778e592c81632f11 (patch) | |
| tree | b5d321becd560c2a92b10229dab383a2027b5f0c /gnu/build | |
| parent | d4d03b652f9daf53937ac20a955683c48a1c5338 (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.scm | 25 |
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 |
| 126 | set." | 126 | set. |
| 127 | (catch 'system-error | 127 | |
| 128 | (lambda _ (not (string-null? (getxattr file-name "gnu.translator")))) | 128 | Note that reading \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs, |
| 129 | (lambda args | 129 | used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is |
| 130 | (if (= ENODATA (system-error-errno args)) | 130 | needed." |
| 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 | |||
| 159 | Note that setting \"gnu.*\" xattrs on Linux only work with ext4; for tmpfs, | ||
| 160 | used during image creation, linux-7.0 with linux-shmem-hurd-xattr patch is | ||
| 161 | needed." | ||
| 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) |
