Hi Chris, Chris Marusich <cmmarus...@gmail.com> skribis:
> From 5417f68ee5892f6a587895105854cadf29eb7297 Mon Sep 17 00:00:00 2001 > From: Chris Marusich <cmmarus...@gmail.com> > Date: Thu, 11 Mar 2021 23:19:30 -0800 > Subject: [PATCH] syscalls: mount: Fix a matching bug. > > On some systems, the columns in /proc/self/mountinfo look like this: > > 23 28 0:21 / /proc rw,nosuid,nodev,noexec,relatime shared:11 - proc proc rw > > Before this change, the mount procedure was written with the assumption that > the type and source could always be found in columns 8 and 9, respectively. > However, the proc(5) man page explains that there can be zero or more optional > fields starting at column 7 (e.g., "shared:11" above), so this assumption is > false in some situations. > > * guix/build/syscalls.scm (mount): Update the match pattern to use ellipsis to > match zero or more optional fields followed by a single hyphen. Remove the > trailing ellipsis, since multiple ellipses are not allowed in the same level. > The proc(5) man page indicates that there are no additional columns, so it is > probably OK to match an exact number of columns at the end like this. > --- > guix/build/syscalls.scm | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm > index 552343a481d..726c8e86d06 100644 > --- a/guix/build/syscalls.scm > +++ b/guix/build/syscalls.scm > @@ -621,8 +621,9 @@ current process." > (if (eof-object? line) > (reverse result) > (match (string-tokenize line) > + ;; See the proc(5) man page for a description of the columns. > ((id parent-id major:minor root mount-point > - options _ type source _ ...) > + options _ ... "-" type source _) > (let ((devno (string->device-number major:minor))) > (loop (cons (%mount (octal-decode source) > (octal-decode mount-point) It works on my laptop. :-) If you’re confident, please push—thanks for the fix! (Next time please report the issue to bug-guix where it’s more likely to be seen and dealt with. :-)) Ludo’.