Subject: Re: [PATCH] file-systems: Factorize file-system-packages.

From: [email-masked] (Ludovic Courtès)
Date: Sat, 18 Mar 2017 12:04:40 +0100

Danny Milosavljevic <[email-masked]> skribis:

> I'd like to make the following change to guix/build/utils.scm :
>
> diff --git a/guix/build/utils.scm b/guix/build/utils.scm
> index bc6f11415..ca6360ed4 100644
> --- a/guix/build/utils.scm
> +++ b/guix/build/utils.scm
> @@ -409,7 +409,8 @@ for under the directories designated by FILES.  For example:
>                                          #:key
>                                          (separator ":")
>                                          (type 'directory)
> -                                        pattern)
> +                                        pattern
> +                                        keep-previous-path?)
>    "Look for each of FILES of the given TYPE (a symbol as returned by
>  'stat:type') in INPUT-DIRS.  Set ENV-VAR to a SEPARATOR-separated path
>  accordingly.  Example:
> @@ -430,7 +431,13 @@ denoting file names to look for under the directories designated by FILES:
>    (let* ((path  (search-path-as-list files input-dirs
>                                       #:type type
>                                       #:pattern pattern))
> -         (value (list->search-path-as-string path separator)))
> +         (value (list->search-path-as-string path separator))
> +         (previous-path (getenv env-var))
> +         (value (if (and keep-previous-path?
> +                         previous-path
> +                         (not (string-null? previous-path)))
> +                  (string-append value ":" previous-path)
> +                  value)))
>      (if (string-null? value)
>          (begin
>            ;; Never set ENV-VAR to an empty string because often, the empty
>
> Would that rebuild the world, though?

Yep.  I don’t think that is needed though: we can use
‘set-path-environment-variables’ like your patch did to set PATH
precisely.

Thanks,
Ludo’.