guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Release on April 18th?


From: Ludovic Courtès
Subject: Re: Release on April 18th?
Date: Mon, 15 Mar 2021 17:36:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

Hi Chris,

Chris Marusich <cmmarusich@gmail.com> skribis:

> From 5417f68ee5892f6a587895105854cadf29eb7297 Mon Sep 17 00:00:00 2001
> From: Chris Marusich <cmmarusich@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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]