GNU bug report logs - #20255
'search-paths' should respect both user and system profile.

Previous Next

Package: guix;

Reported by: 宋文武 <iyzsong <at> gmail.com>

Date: Sat, 4 Apr 2015 10:30:03 UTC

Severity: normal

To reply to this bug, email your comments to 20255 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 04 Apr 2015 10:30:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to 宋文武 <iyzsong <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 04 Apr 2015 10:30:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: 'search-paths' should respect both user and system profile.
Date: Sat, 04 Apr 2015 18:29:58 +0800
Currently, search-paths built only from packages in user's profile.
As reported by Andy Wingo in #guix, when I have:
  perl installed into system profile
  perl-xml-parser installed into user profile
  
guix package --search-paths won't give a hint about PERL5LIB,
so it's very likely end up with a broken XML::Parser.
Another interesting fact is that we have both guile and guix in
system profile, but the guix modules isn't work out-of-the-box
on GuixSD.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 04 Apr 2015 21:05:01 GMT) Full text and rfc822 format available.

Message #8 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 04 Apr 2015 23:04:46 +0200
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> gmail.com> skribis:

> Currently, search-paths built only from packages in user's profile.
> As reported by Andy Wingo in #guix, when I have:
>   perl installed into system profile
>   perl-xml-parser installed into user profile
>   
> guix package --search-paths won't give a hint about PERL5LIB,
> so it's very likely end up with a broken XML::Parser.

Rather it ends up with no XML::Parser, no?

That said, I’m not sure how this could be improved.  We could hard-code
lookup in /run/current-system/profile/.  OTOH that’s not different from
installing perl in one profile, and perl-xml-parser in another
(arbitrary) profile, which ‘guix package’ cannot be aware of.

WDYT?

> Another interesting fact is that we have both guile and guix in
> system profile, but the guix modules isn't work out-of-the-box
> on GuixSD.

(But guix.el *does* work out of the box.)

For a start, what about augmenting /etc/profile:

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/system.scm b/gnu/system.scm
index 0d510b6..bcc4919 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -447,6 +447,8 @@ export PATH=$HOME/.guix-profile/bin:/run/current-system/profile/bin
 export PATH=/run/setuid-programs:/run/current-system/profile/sbin:$PATH
 export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
 export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
+export GUILE_LOAD_PATH=$HOME/share/guile/site/2.0:/run/current-system/profile/share/guile/site/2.0
+export GUILE_LOAD_COMPILED_PATH=$HOME/share/guile/site/2.0:/run/current-system/profile/share/guile/site/2.0
 
 export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share
 export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg
[Message part 3 (text/plain, inline)]
Thanks,
Ludo’.

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 05 Apr 2015 03:39:02 GMT) Full text and rfc822 format available.

Message #11 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 05 Apr 2015 11:39:03 +0800
Ludovic Courtès <ludo <at> gnu.org> writes:

> 宋文武 <iyzsong <at> gmail.com> skribis:
>
>> Currently, search-paths built only from packages in user's profile.
>> As reported by Andy Wingo in #guix, when I have:
>>   perl installed into system profile
>>   perl-xml-parser installed into user profile
>>   
>> guix package --search-paths won't give a hint about PERL5LIB,
>> so it's very likely end up with a broken XML::Parser.
>
> Rather it ends up with no XML::Parser, no?
>
> That said, I’m not sure how this could be improved.  We could hard-code
> lookup in /run/current-system/profile/.  OTOH that’s not different from
> installing perl in one profile, and perl-xml-parser in another
> (arbitrary) profile, which ‘guix package’ cannot be aware of.
>
> WDYT?
As 'guix package' is for only one profile, that's fine.
Since we can get search-paths from system profile using:
  guix package -p /run/current-system/profile --search-paths

I think the missing is to check whether we are under GuixSD,
and then merge those 2 search-paths object in scheme level
to get a full search-paths.

Or better to generate a 'profile' script for each manifest, and then
merged in shell level, so it can work out-of-the-box. How about:
  - /etc/profile:
    # configuration for the whole system goes here.
    # shouldn't refer profile paths.
    export LANG=en_US.utf8
    export SSL_CERT_DIR=/etc/ssl/certs
    export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
    [...]

    source /run/current-system/profile/etc/profile

    if [ -f $HOME/.guix-profile/etc/profile ]; then
      source $HOME/.guix-profile/etc/profile
    fi

    # honor setuid-programs
    export PATH=/run/setuid-programs:$PATH

  - /run/current-system/profile/etc/profile:
    export PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
    export MANPATH=/run/current-system/profile/share/man:$PATH
    [...]
    
  - ~/.guix-profile/etc/profile:
    export PATH=~/.guix-profile/bin:~/.guix-profile/sbin:$PATH
    [...]

The idea to generate profile from search-paths is not new,
I heard it from you IIRC.
I think it's the time to do it.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 05 Apr 2015 18:16:02 GMT) Full text and rfc822 format available.

Message #14 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 05 Apr 2015 20:15:47 +0200
宋文武 <iyzsong <at> gmail.com> skribis:

> As 'guix package' is for only one profile, that's fine.
> Since we can get search-paths from system profile using:
>   guix package -p /run/current-system/profile --search-paths

Right.

> I think the missing is to check whether we are under GuixSD,
> and then merge those 2 search-paths object in scheme level
> to get a full search-paths.
>
> Or better to generate a 'profile' script for each manifest, and then
> merged in shell level, so it can work out-of-the-box. How about:
>   - /etc/profile:
>     # configuration for the whole system goes here.
>     # shouldn't refer profile paths.
>     export LANG=en_US.utf8
>     export SSL_CERT_DIR=/etc/ssl/certs
>     export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
>     [...]
>
>     source /run/current-system/profile/etc/profile
>
>     if [ -f $HOME/.guix-profile/etc/profile ]; then
>       source $HOME/.guix-profile/etc/profile
>     fi
>
>     # honor setuid-programs
>     export PATH=/run/setuid-programs:$PATH
>
>   - /run/current-system/profile/etc/profile:
>     export PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
>     export MANPATH=/run/current-system/profile/share/man:$PATH
>     [...]
>     
>   - ~/.guix-profile/etc/profile:
>     export PATH=~/.guix-profile/bin:~/.guix-profile/sbin:$PATH
>     [...]
>
> The idea to generate profile from search-paths is not new,
> I heard it from you IIRC.
> I think it's the time to do it.

Agreed, the plan makes sense and I think we have all the bits.

A related question is whether to encode search path environment
variables into the manifest (currently they are “guessed” by looking at
same-named packages; see (guix build package).)  I think that would
probably simplify things and make it easier to share this environment
variable code.

Thoughts?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 06 Apr 2015 04:03:01 GMT) Full text and rfc822 format available.

Message #17 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 06 Apr 2015 12:02:26 +0800
> [...]
>>
>> The idea to generate profile from search-paths is not new,
>> I heard it from you IIRC.
>> I think it's the time to do it.
>
> Agreed, the plan makes sense and I think we have all the bits.
>
> A related question is whether to encode search path environment
> variables into the manifest (currently they are “guessed” by looking at
> same-named packages; see (guix build package).)  I think that would
> probably simplify things and make it easier to share this environment
> variable code.
>
> Thoughts?
I see, currently search-paths depends on the packages recipes. If we
update the related scheme code, then search-paths got updated, even we
didn't touch packages in profile at all.  It's a little confusing.
So I think we should encode the search-paths for each package in
manifest.
> Thanks,
> Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 06 Apr 2015 08:25:01 GMT) Full text and rfc822 format available.

Message #20 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: 宋文武 <iyzsong <at> gmail.com>
Cc: Ludovic Courtès <ludo <at> gnu.org>, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 06 Apr 2015 04:24:54 -0400
宋文武 <iyzsong <at> gmail.com> writes:

>> [...]
>>>
>>> The idea to generate profile from search-paths is not new,
>>> I heard it from you IIRC.
>>> I think it's the time to do it.
>>
>> Agreed, the plan makes sense and I think we have all the bits.
>>
>> A related question is whether to encode search path environment
>> variables into the manifest (currently they are “guessed” by looking at
>> same-named packages; see (guix build package).)  I think that would
>> probably simplify things and make it easier to share this environment
>> variable code.
>>
>> Thoughts?
> I see, currently search-paths depends on the packages recipes. If we
> update the related scheme code, then search-paths got updated, even we
> didn't touch packages in profile at all.  It's a little confusing.
> So I think we should encode the search-paths for each package in
> manifest.

I agree.

     Mark




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 02 May 2015 22:13:02 GMT) Full text and rfc822 format available.

Message #23 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 03 May 2015 00:12:11 +0200
宋文武 <iyzsong <at> gmail.com> skribis:

>> [...]
>>>
>>> The idea to generate profile from search-paths is not new,
>>> I heard it from you IIRC.
>>> I think it's the time to do it.
>>
>> Agreed, the plan makes sense and I think we have all the bits.
>>
>> A related question is whether to encode search path environment
>> variables into the manifest (currently they are “guessed” by looking at
>> same-named packages; see (guix build package).)  I think that would
>> probably simplify things and make it easier to share this environment
>> variable code.
>>
>> Thoughts?
> I see, currently search-paths depends on the packages recipes. If we
> update the related scheme code, then search-paths got updated, even we
> didn't touch packages in profile at all.  It's a little confusing.
> So I think we should encode the search-paths for each package in
> manifest.

Done in dedb17a.

That will make it easier to generate environment variable settings.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 04 May 2015 21:45:03 GMT) Full text and rfc822 format available.

Message #26 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 04 May 2015 23:44:19 +0200
[Message part 1 (text/plain, inline)]
宋文武 <iyzsong <at> gmail.com> skribis:

> Or better to generate a 'profile' script for each manifest, and then
> merged in shell level, so it can work out-of-the-box. How about:
>   - /etc/profile:
>     # configuration for the whole system goes here.
>     # shouldn't refer profile paths.
>     export LANG=en_US.utf8
>     export SSL_CERT_DIR=/etc/ssl/certs
>     export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
>     [...]
>
>     source /run/current-system/profile/etc/profile
>
>     if [ -f $HOME/.guix-profile/etc/profile ]; then
>       source $HOME/.guix-profile/etc/profile
>     fi
>
>     # honor setuid-programs
>     export PATH=/run/setuid-programs:$PATH
>
>   - /run/current-system/profile/etc/profile:
>     export PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
>     export MANPATH=/run/current-system/profile/share/man:$PATH
>     [...]
>     
>   - ~/.guix-profile/etc/profile:
>     export PATH=~/.guix-profile/bin:~/.guix-profile/sbin:$PATH
>     [...]

There’s a further complication here: ‘profile-derivation’, which builds
the profile, doesn’t know its user-visible name ~/.guix-profile.  It
just knows its store file name.  However, we don’t want etc/profile to
read:

  export PATH=/gnu/store/...-profile/bin:$PATH

because then, the user’s environment variables in a running session
would keep pointing to a given profile generation.

So we have to tell ‘profile-generation’ what the user-visible name of
the profile is going to be.  Attached is a very rough patch to do that.
This is not so nice because all user interfaces will now have to pass
that #:target parameter or etc/profile will be “wrong.”

Another option would be to simply run:

  eval `guix package -p ~/.guix-profile --search-paths`

This has two downsides:

  1. It takes ~200 ms to run on my laptop, which can maybe be
     noticeable; OTOH it’s only for interactive shells, so maybe that’s
     OK.

  2. If there’s a manifest format change and /etc/profile calls a ‘guix’
     command that cannot handle the manifest format (because it’s older
     than the ‘guix’ used to build the profile), then it doesn’t work at
     all (that’s a bit contrived, but not completely impossible.)

Thoughts?

Ludo’.

[Message part 2 (text/x-patch, inline)]
	Modified   guix/profiles.scm
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 8445e00..308dc23 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -582,10 +582,15 @@ MANIFEST.  Single-file bundles are required by programs such as Git and Lynx."
 
 (define* (profile-derivation manifest
                              #:key
+                             target
                              (hooks %default-profile-hooks))
   "Return a derivation that builds a profile (aka. 'user environment') with
 the given MANIFEST.  The profile includes additional derivations returned by
-the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
+the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc.
+
+When TARGET is not #f, it must be a string denoting the file name under which
+the profile will be available--e.g., \"/home/rms/.guix-profile\".  This name
+is used in the profile's 'etc/profile' file (read that again.)"
   (mlet %store-monad ((extras (if (null? (manifest-entries manifest))
                                   (return '())
                                   (sequence %store-monad
@@ -598,20 +603,72 @@ the monadic procedures listed in HOOKS--such as an Info 'dir' file, etc."
 
     (define builder
       #~(begin
-          (use-modules (ice-9 pretty-print)
-                       (guix build union))
+          (use-modules (ice-9 match)
+                       (ice-9 regex)
+                       (ice-9 pretty-print)
+                       (guix build union)
+                       (guix build utils)
+                       (guix search-paths))
+
+          (define target
+            '#$target)
+
+          (define search-paths
+            (map sexp->search-path-specification
+                 '#$(map search-path-specification->sexp
+                         (append-map manifest-entry-search-paths
+                                     (manifest-entries manifest)))))
+
+          (define (use-target value separator)
+            (let ((items ((@@ (guix search-paths) string-tokenize*)
+                          value separator)))
+              (string-join (map (lambda (str)
+                                  (string-append target
+                                                 (string-drop str
+                                                              (string-length
+                                                               #$output))))
+                                items)
+                           separator)))
+
+          (define write-environment-variable-definition
+            (match-lambda
+              ((spec . value)
+               (let ((variable (search-path-specification-variable spec))
+                     (sep      (search-path-specification-separator spec)))
+                 (display
+                  (environment-variable-definition variable
+                                                   (if target
+                                                       (use-target value sep)
+                                                       value)
+                                                   #:separator sep
+                                                   #:kind 'prefix))
+                 (newline)))))
 
           (setvbuf (current-output-port) _IOLBF)
           (setvbuf (current-error-port) _IOLBF)
 
+          ;; Make the symlinks.
           (union-build #$output '#$inputs
                        #:log-port (%make-void-port "w"))
+
+          ;; Store meta-data.
           (call-with-output-file (string-append #$output "/manifest")
             (lambda (p)
-              (pretty-print '#$(manifest->gexp manifest) p)))))
+              (pretty-print '#$(manifest->gexp manifest) p)))
+
+          ;; Store a ready-to-use Bash profile.
+          (mkdir-p (string-append #$output "/etc"))
+          (with-output-to-file (string-append #$output "/etc/profile")
+            (lambda ()
+              (let ((variables (evaluate-search-paths search-paths #$output)))
+                (for-each write-environment-variable-definition
+                          variables))))))
 
     (gexp->derivation "profile" builder
-                      #:modules '((guix build union))
+                      #:modules '((guix build union)
+                                  (guix build utils)
+                                  (guix search-paths)
+                                  (guix records))
                       #:local-build? #t)))
 
 (define (profile-regexp profile)
	Modified   guix/scripts/package.scm
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 7f53af7..38ec8ed 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -833,6 +833,7 @@ more information.~%"))
                (let* ((prof-drv (run-with-store (%store)
                                   (profile-derivation
                                    new
+                                   #:target (user-friendly-profile profile)
                                    #:hooks (if bootstrap?
                                                '()
                                                %default-profile-hooks))))


Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 05 May 2015 08:30:03 GMT) Full text and rfc822 format available.

Message #29 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 05 May 2015 16:28:53 +0800
Ludovic Courtès <ludo <at> gnu.org> writes:

> 宋文武 <iyzsong <at> gmail.com> skribis:
>
>> Or better to generate a 'profile' script for each manifest, and then
>> merged in shell level, so it can work out-of-the-box. How about:
>>   - /etc/profile:
>>     # configuration for the whole system goes here.
>>     # shouldn't refer profile paths.
>>     export LANG=en_US.utf8
>>     export SSL_CERT_DIR=/etc/ssl/certs
>>     export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
>>     [...]
>>
>>     source /run/current-system/profile/etc/profile
>>
>>     if [ -f $HOME/.guix-profile/etc/profile ]; then
>>       source $HOME/.guix-profile/etc/profile
>>     fi
>>
>>     # honor setuid-programs
>>     export PATH=/run/setuid-programs:$PATH
>>
>>   - /run/current-system/profile/etc/profile:
>>     export PATH=/run/current-system/profile/bin:/run/current-system/profile/sbin:$PATH
>>     export MANPATH=/run/current-system/profile/share/man:$PATH
>>     [...]
>>     
>>   - ~/.guix-profile/etc/profile:
>>     export PATH=~/.guix-profile/bin:~/.guix-profile/sbin:$PATH
>>     [...]
>
> There’s a further complication here: ‘profile-derivation’, which builds
> the profile, doesn’t know its user-visible name ~/.guix-profile.  It
> just knows its store file name.  However, we don’t want etc/profile to
> read:
>
>   export PATH=/gnu/store/...-profile/bin:$PATH
>
> because then, the user’s environment variables in a running session
> would keep pointing to a given profile generation.
Indeed.  Run guix to install a package should make it available
immediately.  Currently, we have 'PATH=~/.guix-profile/bin' in
profile and print hint for additional variables.
(Note that when profile changes, even we build all variables with the
location they going to be, a hint or re-source is still needed when the
new profile bring new variables.)
>
> So we have to tell ‘profile-generation’ what the user-visible name of
> the profile is going to be.  Attached is a very rough patch to do that.
> This is not so nice because all user interfaces will now have to pass
> that #:target parameter or etc/profile will be “wrong.”
>
> Another option would be to simply run:
>
>   eval `guix package -p ~/.guix-profile --search-paths`
>
> This has two downsides:
>
>   1. It takes ~200 ms to run on my laptop, which can maybe be
>      noticeable; OTOH it’s only for interactive shells, so maybe that’s
>      OK.
>
>   2. If there’s a manifest format change and /etc/profile calls a ‘guix’
>      command that cannot handle the manifest format (because it’s older
>      than the ‘guix’ used to build the profile), then it doesn’t work at
>      all (that’s a bit contrived, but not completely impossible.)
>
> Thoughts?
>
How about using a shell variable as input for the location:
(replace /gnu/store/xxx with $GUIX_PROFILE)

  # etc/profile
  export PATH=$GUIX_PROFILE/bin:$PATH
  export MANPATH=$GUIX_PROFILE/share/man:$MANPATH
  ...

Then when 'source' it, we pass the location:
(we did know where $GUIX_PROFILE is when do the 'source')

  # ~/.bash_profile
  GUIX_PROFILE=$HOME/.guix-profile
  if [ -f $GUIX_PROFILE/etc/profile ]; then
    . $GUIX_PROFILE/etc/profile
  fi

  # /etc/profile
  GUIX_PROFILE=/run/current-system/profile
  source $GUIX_PROFILE/etc/profile




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 05 May 2015 12:36:02 GMT) Full text and rfc822 format available.

Message #32 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 05 May 2015 14:35:01 +0200
宋文武 <iyzsong <at> gmail.com> skribis:

> How about using a shell variable as input for the location:
> (replace /gnu/store/xxx with $GUIX_PROFILE)
>
>   # etc/profile
>   export PATH=$GUIX_PROFILE/bin:$PATH
>   export MANPATH=$GUIX_PROFILE/share/man:$MANPATH
>   ...
>
> Then when 'source' it, we pass the location:
> (we did know where $GUIX_PROFILE is when do the 'source')
>
>   # ~/.bash_profile
>   GUIX_PROFILE=$HOME/.guix-profile
>   if [ -f $GUIX_PROFILE/etc/profile ]; then
>     . $GUIX_PROFILE/etc/profile
>   fi
>
>   # /etc/profile
>   GUIX_PROFILE=/run/current-system/profile
>   source $GUIX_PROFILE/etc/profile

Yes, but we would also like users to be able to source
~/.guix-profile/etc/profile themselves directly, and it wouldn’t be nice
to ask them to set GUIX_PROFILE before sourcing it.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 06 May 2015 16:36:02 GMT) Full text and rfc822 format available.

Message #35 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Wed, 06 May 2015 18:35:47 +0200
宋文武 <iyzsong <at> gmail.com> skribis:

> How about using a shell variable as input for the location:
> (replace /gnu/store/xxx with $GUIX_PROFILE)
>
>   # etc/profile
>   export PATH=$GUIX_PROFILE/bin:$PATH
>   export MANPATH=$GUIX_PROFILE/share/man:$MANPATH
>   ...
>
> Then when 'source' it, we pass the location:
> (we did know where $GUIX_PROFILE is when do the 'source')
>
>   # ~/.bash_profile
>   GUIX_PROFILE=$HOME/.guix-profile
>   if [ -f $GUIX_PROFILE/etc/profile ]; then
>     . $GUIX_PROFILE/etc/profile
>   fi
>
>   # /etc/profile
>   GUIX_PROFILE=/run/current-system/profile
>   source $GUIX_PROFILE/etc/profile

I ended up doing that in d664f1b.  Please check d664f1b and d995942 and
report and issues/bugs.

Part of the initial problem you reported had to do with combining
profiles (perl in one profile, perl-xml-parser in another.)  This part
is not addressed yet, and it turns out to be more common than I
initially thought: consider for instance MANPATH (with man-db installed
in the system profile and man pages in the user’s profile.)

Unfortunately the etc/profile files are not going to allow us to solve
that.  ‘guix package --search-paths’ could do the actual combination,
though.

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Thu, 12 Nov 2015 11:15:01 GMT) Full text and rfc822 format available.

Message #38 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: Mark H Weaver <mhw <at> netris.org>, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Thu, 12 Nov 2015 12:13:51 +0100
Some progress has been made: fc2d233 allows search paths for multiple
profiles to be combined.

So I think I will eventually (‘guix-devel’ needs to be updated first)
change /etc/profile to do:

  eval `guix package -p /run/current-system/profile \
          -p $HOME/.guix-profile --search-paths`

That should solve the combined profile issue.

This operation takes ~400ms on my machine.  This would be a problem if
we had to do it every time a shell is started, but here we only need to
do it for log-in shells, which is rare enough.

WDYT?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Thu, 19 Nov 2015 22:33:01 GMT) Full text and rfc822 format available.

Message #41 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: 宋文武 <iyzsong <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Thu, 19 Nov 2015 23:32:03 +0100
[Message part 1 (text/plain, inline)]
ludo <at> gnu.org (Ludovic Courtès) skribis:

> 宋文武 <iyzsong <at> gmail.com> skribis:
>
>>> [...]
>>>>
>>>> The idea to generate profile from search-paths is not new,
>>>> I heard it from you IIRC.
>>>> I think it's the time to do it.
>>>
>>> Agreed, the plan makes sense and I think we have all the bits.
>>>
>>> A related question is whether to encode search path environment
>>> variables into the manifest (currently they are “guessed” by looking at
>>> same-named packages; see (guix build package).)  I think that would
>>> probably simplify things and make it easier to share this environment
>>> variable code.
>>>
>>> Thoughts?
>> I see, currently search-paths depends on the packages recipes. If we
>> update the related scheme code, then search-paths got updated, even we
>> didn't touch packages in profile at all.  It's a little confusing.
>> So I think we should encode the search-paths for each package in
>> manifest.
>
> Done in dedb17a.
>
> That will make it easier to generate environment variable settings.

Here’s the patch that does that, to try on b2a7223 or later.

Could you comment and give it a try?  My main concern was the latency
introduced at log-in shells, but it’s OK, at least on my i5+SSD laptop.

--8<---------------cut here---------------start------------->8---
$ time guix package -p ~/.guix-profile -p /run/current-system/profile --search-paths > /dev/null

real    0m0.290s
user    0m0.372s
sys     0m0.028s
$ guix package -I | wc -l
215
$ guix package -p /run/current-system/profile -I | wc -l
43
--8<---------------cut here---------------end--------------->8---

I’ll push it soon if there are no objections.

TIA!

Ludo’.

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/system.scm b/gnu/system.scm
index 2755d85..7d1d33e 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -429,35 +429,49 @@ export SSL_CERT_DIR=/etc/ssl/certs
 export SSL_CERT_FILE=\"$SSL_CERT_DIR/ca-certificates.crt\"
 export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"
 
-# Crucial variables that could be missing in the profiles' 'etc/profile'
-# because they would require combining both profiles.
-# FIXME: See <http://bugs.gnu.org/20255>.
-export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
-export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
+# Search paths for GLib schemas, GTK+ icons, and so on.
 export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share
 export XDG_CONFIG_DIRS=$HOME/.guix-profile/etc/xdg:/run/current-system/profile/etc/xdg
 
 # Ignore the default value of 'PATH'.
 unset PATH
 
-# Load the system profile's settings.
+if [ -x /run/current-system/profile/bin/guix ]
+then
+  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
+  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
+  # computing the search paths.
+  #
+  # This may take a few hundred milliseconds, but it's OK because this is
+  # performed for log-in shells only.
+  eval `/run/current-system/profile/bin/guix package \\
+          -p /run/current-system/profile             \\
+          -p \"$HOME/.guix-profile\" --search-paths`
+else
+  # In the unlikely case that Guix is not in the global profile,
+  # fall back to the simpler, yet less accurate method (see
+  # <http://bugs.gnu.org/20255>.)
   GUIX_PROFILE=/run/current-system/profile \\
   . /run/current-system/profile/etc/profile
 
-# Prepend setuid programs.
-export PATH=/run/setuid-programs:$PATH
-
   if [ -f \"$HOME/.guix-profile/etc/profile\" ]
   then
     # Load the user profile's settings.
     GUIX_PROFILE=\"$HOME/.guix-profile\" \\
     . \"$HOME/.guix-profile/etc/profile\"
-else
+  fi
+fi
+
+if [ ! -f \"$HOME/.guix-profile\" ]
+then
   # At least define this one so that basic things just work
   # when the user installs their first package.
   export PATH=\"$HOME/.guix-profile/bin:$PATH\"
 fi
 
+# Prepend setuid programs.
+export PATH=/run/setuid-programs:$PATH
+
 # Append the directory of 'site-start.el' to the search path.
 export EMACSLOADPATH=:/etc/emacs
 

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Fri, 20 Nov 2015 22:43:02 GMT) Full text and rfc822 format available.

Message #44 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 宋文武 <iyzsong <at> gmail.com>, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 21 Nov 2015 01:42:19 +0300
Ludovic Courtès (2015-11-20 01:32 +0300) wrote:

> -# Load the system profile's settings.
> +if [ -x /run/current-system/profile/bin/guix ]
> +then
> +  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
> +  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
> +  # computing the search paths.
> +  #
> +  # This may take a few hundred milliseconds, but it's OK because this is
> +  # performed for log-in shells only.
> +  eval `/run/current-system/profile/bin/guix package \\
> +          -p /run/current-system/profile             \\
> +          -p \"$HOME/.guix-profile\" --search-paths`

Sorry, but it's not OK for me.  As a user, I'm *strongly* against
running 'guix' (or any other program) in /etc/profile.  I would really
like to have an option to avoid this.  Is it possible?

-- 
Thanks,
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 21 Nov 2015 08:59:02 GMT) Full text and rfc822 format available.

Message #47 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 宋文武 <iyzsong <at> gmail.com>, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 21 Nov 2015 09:57:48 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-20 01:32 +0300) wrote:
>
>> -# Load the system profile's settings.
>> +if [ -x /run/current-system/profile/bin/guix ]
>> +then
>> +  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
>> +  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
>> +  # computing the search paths.
>> +  #
>> +  # This may take a few hundred milliseconds, but it's OK because this is
>> +  # performed for log-in shells only.
>> +  eval `/run/current-system/profile/bin/guix package \\
>> +          -p /run/current-system/profile             \\
>> +          -p \"$HOME/.guix-profile\" --search-paths`
>
> Sorry, but it's not OK for me.  As a user, I'm *strongly* against
> running 'guix' (or any other program) in /etc/profile.

Why?  (Honest question.)

> I would really like to have an option to avoid this.  Is it possible?

Not that I know of.  Please read <http://bugs.gnu.org/20255>.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 21 Nov 2015 18:42:01 GMT) Full text and rfc822 format available.

Message #50 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 21 Nov 2015 21:41:45 +0300
Ludovic Courtès (2015-11-21 11:57 +0300) wrote:

> Alex Kost <alezost <at> gmail.com> skribis:
>
>> Ludovic Courtès (2015-11-20 01:32 +0300) wrote:
>>
>>> -# Load the system profile's settings.
>>> +if [ -x /run/current-system/profile/bin/guix ]
>>> +then
>>> +  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
>>> +  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
>>> +  # computing the search paths.
>>> +  #
>>> +  # This may take a few hundred milliseconds, but it's OK because this is
>>> +  # performed for log-in shells only.
>>> +  eval `/run/current-system/profile/bin/guix package \\
>>> +          -p /run/current-system/profile             \\
>>> +          -p \"$HOME/.guix-profile\" --search-paths`
>>
>> Sorry, but it's not OK for me.  As a user, I'm *strongly* against
>> running 'guix' (or any other program) in /etc/profile.
>
> Why?  (Honest question.)

At first, because of the slowdown: it may be a few hundred milliseconds
for you, but it's several seconds for me.  But actually, even if it was
several milliseconds, I still wouldn't like it, as (IMHO) /etc/profile
should only set variables, and not run external programs.

>> I would really like to have an option to avoid this.  Is it possible?
>
> Not that I know of.  Please read <http://bugs.gnu.org/20255>.

What about making some environment variable which will be honored by
'operating-system-etc-service' procedure.  So depending on this variable
that 'eval ...' command will or will not be added to "/etc/profile"
during 'guix system ...' process.

For example, when I do:

  GUIX_IGNORE_SYSTEM_PROFILE_ENV=1 guix system build my-config.scm

the "etc/profile" of the built system will not contain those 'eval ...'
lines.  WDYT?

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 21 Nov 2015 20:11:02 GMT) Full text and rfc822 format available.

Message #53 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 21 Nov 2015 21:10:17 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-21 11:57 +0300) wrote:
>
>> Alex Kost <alezost <at> gmail.com> skribis:
>>
>>> Ludovic Courtès (2015-11-20 01:32 +0300) wrote:
>>>
>>>> -# Load the system profile's settings.
>>>> +if [ -x /run/current-system/profile/bin/guix ]
>>>> +then
>>>> +  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
>>>> +  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
>>>> +  # computing the search paths.
>>>> +  #
>>>> +  # This may take a few hundred milliseconds, but it's OK because this is
>>>> +  # performed for log-in shells only.
>>>> +  eval `/run/current-system/profile/bin/guix package \\
>>>> +          -p /run/current-system/profile             \\
>>>> +          -p \"$HOME/.guix-profile\" --search-paths`
>>>
>>> Sorry, but it's not OK for me.  As a user, I'm *strongly* against
>>> running 'guix' (or any other program) in /etc/profile.
>>
>> Why?  (Honest question.)
>
> At first, because of the slowdown: it may be a few hundred milliseconds
> for you, but it's several seconds for me.

Really?  Can you show the output of:

  time guix package -p /run/current-system/profile \
                    -p ~/.guix-profile --search-paths

?

> But actually, even if it was several milliseconds, I still wouldn't
> like it, as (IMHO) /etc/profile should only set variables, and not run
> external programs.

I don’t buy this “principle”: /etc/profile is a program, and the output
of --search-paths is trusted to contain only environment variable
setting.

In the discussion of this bug, we tried hard to avoid resorting to
invoking a program, but ultimately no other solution came out.

>>> I would really like to have an option to avoid this.  Is it possible?
>>
>> Not that I know of.  Please read <http://bugs.gnu.org/20255>.
>
> What about making some environment variable which will be honored by
> 'operating-system-etc-service' procedure.  So depending on this variable
> that 'eval ...' command will or will not be added to "/etc/profile"
> during 'guix system ...' process.
>
> For example, when I do:
>
>   GUIX_IGNORE_SYSTEM_PROFILE_ENV=1 guix system build my-config.scm
>
> the "etc/profile" of the built system will not contain those 'eval ...'
> lines.  WDYT?

This would be unreasonable.  We’re talking about a basic feature here.
If basic features are broken to the point that we prefer to offer ways
to bypass them, and have a semi-broken system, then there’s a problem,
IMO.

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 22 Nov 2015 07:53:02 GMT) Full text and rfc822 format available.

Message #56 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 22 Nov 2015 10:52:29 +0300
Ludovic Courtès (2015-11-21 23:10 +0300) wrote:

> Alex Kost <alezost <at> gmail.com> skribis:
>
>> Ludovic Courtès (2015-11-21 11:57 +0300) wrote:
>>
>>> Alex Kost <alezost <at> gmail.com> skribis:
>>>
>>>> Ludovic Courtès (2015-11-20 01:32 +0300) wrote:
>>>>
>>>>> -# Load the system profile's settings.
>>>>> +if [ -x /run/current-system/profile/bin/guix ]
>>>>> +then
>>>>> +  # Crucial variables such as 'MANPATH' or 'INFOPATH' may be missing from the
>>>>> +  # profiles' individual 'etc/profile'.  Thus, combine both profiles when
>>>>> +  # computing the search paths.
>>>>> +  #
>>>>> +  # This may take a few hundred milliseconds, but it's OK because this is
>>>>> +  # performed for log-in shells only.
>>>>> +  eval `/run/current-system/profile/bin/guix package \\
>>>>> +          -p /run/current-system/profile             \\
>>>>> +          -p \"$HOME/.guix-profile\" --search-paths`
>>>>
>>>> Sorry, but it's not OK for me.  As a user, I'm *strongly* against
>>>> running 'guix' (or any other program) in /etc/profile.
>>>
>>> Why?  (Honest question.)
>>
>> At first, because of the slowdown: it may be a few hundred milliseconds
>> for you, but it's several seconds for me.
>
> Really?  Can you show the output of:
>
>   time guix package -p /run/current-system/profile \
>                     -p ~/.guix-profile --search-paths

real	0m2.634s
user	0m0.568s
sys	0m0.080s

Of course, on the second run the real time reduces (for me it's about
0.5), as HDD already "knows" what I want, but since it is for login
shell, it will always be 2-3 seconds because of HDD.

>> But actually, even if it was several milliseconds, I still wouldn't
>> like it, as (IMHO) /etc/profile should only set variables, and not run
>> external programs.
>
> I don’t buy this “principle”: /etc/profile is a program, and the output
> of --search-paths is trusted to contain only environment variable
> setting.

Sure, it's just my opinion (OK, let call it "faith"): I consider running
external programs in "/etc/profile" malicious.

> In the discussion of this bug, we tried hard to avoid resorting to
> invoking a program, but ultimately no other solution came out.

I don't need a solution for this bug, I just want to have an option to
avoid invoking "guix package --search-paths" in my "/etc/profile".

>>>> I would really like to have an option to avoid this.  Is it possible?
>>>
>>> Not that I know of.  Please read <http://bugs.gnu.org/20255>.
>>
>> What about making some environment variable which will be honored by
>> 'operating-system-etc-service' procedure.  So depending on this variable
>> that 'eval ...' command will or will not be added to "/etc/profile"
>> during 'guix system ...' process.
>>
>> For example, when I do:
>>
>>   GUIX_IGNORE_SYSTEM_PROFILE_ENV=1 guix system build my-config.scm
>>
>> the "etc/profile" of the built system will not contain those 'eval ...'
>> lines.  WDYT?
>
> This would be unreasonable.  We’re talking about a basic feature here.
> If basic features are broken to the point that we prefer to offer ways
> to bypass them, and have a semi-broken system, then there’s a problem,
> IMO.

Sorry, but I would really like to bypass this feature, as I don't like
it.  For me, what you suggest sounds: «We'll not give a freedom to a
user to disable this feature, because we know better what is good for
him/her».  All I ask is to give me such a freedom.

Using --search-paths with several profiles is a great feature (thank you
for it!) and I like it, but consider the following use-case: for some
reason I like to manage several profiles instead of a single
"~/.guix-profile", so I can put:

eval `guix package -p /run/current-system/profile \
                   -p ~/.guix-profile \
                   -p ~/my-guix-profiles/foo \
                   -p ~/my-guix-profiles/bar \
                   --search-paths`

in my "~/.bash_profile".  So I don't like to have the same command but
only for 2 profiles in my "/etc/profile".  Please, give me an option to
disable this feature.

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 22 Nov 2015 10:54:01 GMT) Full text and rfc822 format available.

Message #59 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 22 Nov 2015 11:52:37 +0100
Alex Kost <alezost <at> gmail.com> skribis:

>>> At first, because of the slowdown: it may be a few hundred milliseconds
>>> for you, but it's several seconds for me.
>>
>> Really?  Can you show the output of:
>>
>>   time guix package -p /run/current-system/profile \
>>                     -p ~/.guix-profile --search-paths
>
> real	0m2.634s
> user	0m0.568s
> sys	0m0.080s

Ouch, that’s a problem.  This suggests that this is 2 seconds of I/O.
I’m not sure what can be done to improve that.

>> In the discussion of this bug, we tried hard to avoid resorting to
>> invoking a program, but ultimately no other solution came out.
>
> I don't need a solution for this bug, I just want to have an option to
> avoid invoking "guix package --search-paths" in my "/etc/profile".

Are you denying that this is a bug?  Are you denying that there’s a
usability issue at hand?

To me, what 宋文武 reported at the beginning of this thread is a
usability issue.  We’ve hacked around it so far, but we know there are
cases where the hacks aren’t enough.

We could declare it as “won’t fix”, but I’m not comfortable with that.

>>> For example, when I do:
>>>
>>>   GUIX_IGNORE_SYSTEM_PROFILE_ENV=1 guix system build my-config.scm
>>>
>>> the "etc/profile" of the built system will not contain those 'eval ...'
>>> lines.  WDYT?
>>
>> This would be unreasonable.  We’re talking about a basic feature here.
>> If basic features are broken to the point that we prefer to offer ways
>> to bypass them, and have a semi-broken system, then there’s a problem,
>> IMO.
>
> Sorry, but I would really like to bypass this feature

[...]

I very well understand your concern, so thanks for chiming in.
Please let’s also consider the bug at hand.

The solution I came up with might be inadequate.  Then we need to come
up with an alternate proposal, or to resign and mark it as “wontfix.”

What would you suggest?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 22 Nov 2015 18:45:05 GMT) Full text and rfc822 format available.

Message #62 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 22 Nov 2015 21:44:00 +0300
Ludovic Courtès (2015-11-22 13:52 +0300) wrote:

> Alex Kost <alezost <at> gmail.com> skribis:
>
>>>> At first, because of the slowdown: it may be a few hundred milliseconds
>>>> for you, but it's several seconds for me.
>>>
>>> Really?  Can you show the output of:
>>>
>>>   time guix package -p /run/current-system/profile \
>>>                     -p ~/.guix-profile --search-paths
>>
>> real	0m2.634s
>> user	0m0.568s
>> sys	0m0.080s
>
> Ouch, that’s a problem.  This suggests that this is 2 seconds of I/O.
> I’m not sure what can be done to improve that.
>
>>> In the discussion of this bug, we tried hard to avoid resorting to
>>> invoking a program, but ultimately no other solution came out.
>>
>> I don't need a solution for this bug, I just want to have an option to
>> avoid invoking "guix package --search-paths" in my "/etc/profile".
>
> Are you denying that this is a bug?  Are you denying that there’s a
> usability issue at hand?

I agree it's a usability issue.

> To me, what 宋文武 reported at the beginning of this thread is a
> usability issue.  We’ve hacked around it so far, but we know there are
> cases where the hacks aren’t enough.
>
> We could declare it as “won’t fix”, but I’m not comfortable with that.

No, no, I'm against “won't fix”.  I don't mind if it's called a bug, and
a solution you suggest is the best, but it suits only the default case
of a single user profile.  If I have several user profiles, it does
nothing useful for me, only wastes the time.

>>>> For example, when I do:
>>>>
>>>>   GUIX_IGNORE_SYSTEM_PROFILE_ENV=1 guix system build my-config.scm
>>>>
>>>> the "etc/profile" of the built system will not contain those 'eval ...'
>>>> lines.  WDYT?
>>>
>>> This would be unreasonable.  We’re talking about a basic feature here.
>>> If basic features are broken to the point that we prefer to offer ways
>>> to bypass them, and have a semi-broken system, then there’s a problem,
>>> IMO.
>>
>> Sorry, but I would really like to bypass this feature
>
> [...]
>
> I very well understand your concern, so thanks for chiming in.
> Please let’s also consider the bug at hand.

OK, for the bug at hand, invoking "guix package --search-paths" looks
like the only possible solution, but please don't commit this patch
without giving a user a chance to decide what to put in /etc/profile.

> The solution I came up with might be inadequate.  Then we need to come
> up with an alternate proposal, or to resign and mark it as “wontfix.”

It is adequate and I'm not against it.

> What would you suggest?

After all, I realized what is my main concern: "/etc/profile" is
non-editable.  If I don't like some pieces of this file, I can do
nothing, and I just have to live with it and suffer.  Ideally I would
like to decide what pieces I want to put in /etc/profile and what I
don't.  But it's probably not possible, so…

… what I suggest now is just to give an option to avoid generating the
default /etc/profile.  What about making an 'operating-system' field for
this file (similar to 'sudoers-file' or 'hosts-file')?  So when such
'profile-file' is specified, it will be used instead of the default one
(of course, it should be mentioned in the manual that it's only for
those users who are sure what they do).

If this 'profile-file' field appears, I will gladly use it, and I will
not object to any future changes in /etc/profile.

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 22 Nov 2015 23:05:02 GMT) Full text and rfc822 format available.

Message #65 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 23 Nov 2015 00:04:09 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-22 13:52 +0300) wrote:

[...]

>> To me, what 宋文武 reported at the beginning of this thread is a
>> usability issue.  We’ve hacked around it so far, but we know there are
>> cases where the hacks aren’t enough.
>>
>> We could declare it as “won’t fix”, but I’m not comfortable with that.
>
> No, no, I'm against “won't fix”.  I don't mind if it's called a bug, and
> a solution you suggest is the best,

OK.

> but it suits only the default case of a single user profile.  If I
> have several user profiles, it does nothing useful for me, only wastes
> the time.

I think this is fine.  ~/.guix-profile is treated specially in many
ways.  I think users do not expect other profiles to be magically taken
into account.

> OK, for the bug at hand, invoking "guix package --search-paths" looks
> like the only possible solution, but please don't commit this patch
> without giving a user a chance to decide what to put in /etc/profile.

OK.

>> The solution I came up with might be inadequate.  Then we need to come
>> up with an alternate proposal, or to resign and mark it as “wontfix.”
>
> It is adequate and I'm not against it.

OK.  To me, that it takes 2 seconds on your machines suggests that it’s
not great either.

>> What would you suggest?
>
> After all, I realized what is my main concern: "/etc/profile" is
> non-editable.  If I don't like some pieces of this file, I can do
> nothing, and I just have to live with it and suffer.  Ideally I would
> like to decide what pieces I want to put in /etc/profile and what I
> don't.  But it's probably not possible, so…
>
> … what I suggest now is just to give an option to avoid generating the
> default /etc/profile.  What about making an 'operating-system' field for
> this file (similar to 'sudoers-file' or 'hosts-file')?  So when such
> 'profile-file' is specified, it will be used instead of the default one
> (of course, it should be mentioned in the manual that it's only for
> those users who are sure what they do).

I think we could make an /etc/profile-service that receives snippets
meant to be glued together into the final /etc/profile.  Users could
specify the top or bottom of the file.

There could be a combined-search-paths-service that implements the
solution I proposed here.

WDYT?

> If this 'profile-file' field appears, I will gladly use it, and I will
> not object to any future changes in /etc/profile.

Of course we want to offer this flexibility.  But I think it’s also
important to discuss the defaults, to make sure they are acceptable to
many and that they improve the “user experience.”

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 23 Nov 2015 11:56:02 GMT) Full text and rfc822 format available.

Message #68 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 23 Nov 2015 14:55:18 +0300
Ludovic Courtès (2015-11-23 02:04 +0300) wrote:

> Alex Kost <alezost <at> gmail.com> skribis:
>
>> Ludovic Courtès (2015-11-22 13:52 +0300) wrote:
>
> [...]
>
>> but it suits only the default case of a single user profile.  If I
>> have several user profiles, it does nothing useful for me, only wastes
>> the time.
>
> I think this is fine.  ~/.guix-profile is treated specially in many
> ways.  I think users do not expect other profiles to be magically taken
> into account.

Yes, this is a good default option, all I wanted to say is if I don't
use Guix in a default way, I would like to change this default option to
suit my needs.

>>> What would you suggest?
>>
>> After all, I realized what is my main concern: "/etc/profile" is
>> non-editable.  If I don't like some pieces of this file, I can do
>> nothing, and I just have to live with it and suffer.  Ideally I would
>> like to decide what pieces I want to put in /etc/profile and what I
>> don't.  But it's probably not possible, so…
>>
>> … what I suggest now is just to give an option to avoid generating the
>> default /etc/profile.  What about making an 'operating-system' field for
>> this file (similar to 'sudoers-file' or 'hosts-file')?  So when such
>> 'profile-file' is specified, it will be used instead of the default one
>> (of course, it should be mentioned in the manual that it's only for
>> those users who are sure what they do).
>
> I think we could make an /etc/profile-service that receives snippets
> meant to be glued together into the final /etc/profile.  Users could
> specify the top or bottom of the file.
>
> There could be a combined-search-paths-service that implements the
> solution I proposed here.
>
> WDYT?

I agree, the more ways to change a default behaviour, the better.
Although I will not use these things if there will be ‘profile-file’
field that allows to specify my own "/etc/profile".

>> If this 'profile-file' field appears, I will gladly use it, and I will
>> not object to any future changes in /etc/profile.
>
> Of course we want to offer this flexibility.

Great!  So is it OK to send a patch for adding ‘profile-file’ field?

>  But I think it’s also
> important to discuss the defaults, to make sure they are acceptable to
> many and that they improve the “user experience.”

I'm probably not the person to discuss the defaults, as very often I
find defaults inappropriate.  For example, invoking "guix package
--search-paths" in /etc/profile is a totally unacceptable default for
me (sorry for mentioning it all the time :-))

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 23 Nov 2015 14:32:04 GMT) Full text and rfc822 format available.

Message #71 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 23 Nov 2015 15:31:12 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-23 02:04 +0300) wrote:
>
>> Alex Kost <alezost <at> gmail.com> skribis:
>>
>>> Ludovic Courtès (2015-11-22 13:52 +0300) wrote:
>>
>> [...]
>>
>>> but it suits only the default case of a single user profile.  If I
>>> have several user profiles, it does nothing useful for me, only wastes
>>> the time.
>>
>> I think this is fine.  ~/.guix-profile is treated specially in many
>> ways.  I think users do not expect other profiles to be magically taken
>> into account.
>
> Yes, this is a good default option, all I wanted to say is if I don't
> use Guix in a default way, I would like to change this default option to
> suit my needs.

IMO this is beyond the scope of this discussion: /etc/profile already
sources ~/.guix-profile/etc/profile explicitly, and not anything else.

[...]

>>> … what I suggest now is just to give an option to avoid generating the
>>> default /etc/profile.  What about making an 'operating-system' field for
>>> this file (similar to 'sudoers-file' or 'hosts-file')?  So when such
>>> 'profile-file' is specified, it will be used instead of the default one
>>> (of course, it should be mentioned in the manual that it's only for
>>> those users who are sure what they do).
>>
>> I think we could make an /etc/profile-service that receives snippets
>> meant to be glued together into the final /etc/profile.  Users could
>> specify the top or bottom of the file.
>>
>> There could be a combined-search-paths-service that implements the
>> solution I proposed here.
>>
>> WDYT?
>
> I agree, the more ways to change a default behaviour, the better.
> Although I will not use these things if there will be ‘profile-file’
> field that allows to specify my own "/etc/profile".

[...]

> Great!  So is it OK to send a patch for adding ‘profile-file’ field?

Hmm, I’m not sure if we want to give direct access to /etc/profile like
this.

The problem is that several things in there are here to make the system
work, and to to make it conform to the ‘operating-system’ declaration,
such as:

--8<---------------cut here---------------start------------->8---
export LANG="en_US.utf8"
export TZ="Europe/Paris"
export TZDIR="/gnu/store/rwvf6xqgsyb8bmpi7rwk9fildnwvzrv5-tzdata-2015c/share/zoneinfo"

# Tell 'modprobe' & co. where to look for modules.
export LINUX_MODULE_DIRECTORY=/run/booted-system/kernel/lib/modules
--8<---------------cut here---------------end--------------->8---

The risk I see with adding a raw ‘profile-file’ option is that newcomers
may end up getting rid of such things without really noticing, and then
getting a broken system.

What about instead giving a way to populate the top and/or bottom of
this file?  Controversial parts, if any, could still be turned on and
off by adding or removing services that add these lines?

I think we should open a separate bug report to discuss this.

>>  But I think it’s also
>> important to discuss the defaults, to make sure they are acceptable to
>> many and that they improve the “user experience.”
>
> I'm probably not the person to discuss the defaults, as very often I
> find defaults inappropriate.

Understood.  I’m sure you’ll understand, though, that it’s in the
interest of the project and its users to provide a good user experience
firsthand.

Thanks for your feedback,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 24 Nov 2015 17:23:02 GMT) Full text and rfc822 format available.

Message #74 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 24 Nov 2015 18:22:30 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-21 23:10 +0300) wrote:

[...]

>> Really?  Can you show the output of:
>>
>>   time guix package -p /run/current-system/profile \
>>                     -p ~/.guix-profile --search-paths
>
> real	0m2.634s
> user	0m0.568s
> sys	0m0.080s

Could you measure again after cc3de1d?

As it turns out, ‘guix package’ loads way too much and also stats too
much, at least for simple operations like --search-paths.

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 30 Nov 2015 09:10:03 GMT) Full text and rfc822 format available.

Message #77 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 30 Nov 2015 12:08:59 +0300
Ludovic Courtès (2015-11-24 20:22 +0300) wrote:

> Alex Kost <alezost <at> gmail.com> skribis:
>
>> Ludovic Courtès (2015-11-21 23:10 +0300) wrote:
>
> [...]
>
>>> Really?  Can you show the output of:
>>>
>>>   time guix package -p /run/current-system/profile \
>>>                     -p ~/.guix-profile --search-paths
>>
>> real	0m2.634s
>> user	0m0.568s
>> sys	0m0.080s
>
> Could you measure again after cc3de1d?
>
> As it turns out, ‘guix package’ loads way too much and also stats too
> much, at least for simple operations like --search-paths.

real	0m1.122s
user	0m0.244s
sys	0m0.044s

I measured it several times with a "cold" HDD (I mean when appropriate
files were not cached), and the real time was always 1.0—1.3s.  Big
improvement!  Thank you very much for this, autoloads are great!

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 30 Nov 2015 12:26:01 GMT) Full text and rfc822 format available.

Message #80 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Alex Kost <alezost <at> gmail.com>
Cc: 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 30 Nov 2015 13:25:00 +0100
Alex Kost <alezost <at> gmail.com> skribis:

> Ludovic Courtès (2015-11-24 20:22 +0300) wrote:
>
>> Alex Kost <alezost <at> gmail.com> skribis:
>>
>>> Ludovic Courtès (2015-11-21 23:10 +0300) wrote:
>>
>> [...]
>>
>>>> Really?  Can you show the output of:
>>>>
>>>>   time guix package -p /run/current-system/profile \
>>>>                     -p ~/.guix-profile --search-paths
>>>
>>> real	0m2.634s
>>> user	0m0.568s
>>> sys	0m0.080s
>>
>> Could you measure again after cc3de1d?
>>
>> As it turns out, ‘guix package’ loads way too much and also stats too
>> much, at least for simple operations like --search-paths.
>
> real	0m1.122s
> user	0m0.244s
> sys	0m0.044s
>
> I measured it several times with a "cold" HDD (I mean when appropriate
> files were not cached), and the real time was always 1.0—1.3s.  Big
> improvement!  Thank you very much for this, autoloads are great!

Great, thanks for testing!  That’s still too much to my state, but it’s
already an improvement.

Ludo’.




Added tag(s) patch. Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Sat, 19 Dec 2015 17:24:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Fri, 21 Feb 2020 15:55:01 GMT) Full text and rfc822 format available.

Message #85 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 20255 <at> debbugs.gnu.org
Cc: iyzsong <at> gmail.com, Ludovic Courtès <ludo <at> gnu.org>,
 Alex Kost <alezost <at> gmail.com>, mhw <at> netris.org
Subject: (old)bug#20255: 'search-paths' should respect both user and system
 profiles
Date: Fri, 21 Feb 2020 16:53:49 +0100
Dear,

What is the status of the bug#20255 [1]?
It is old; the last activity seems back on 2015, November. So let resume.

The issue is, e.g.:
 - perl installed into the system profile
 - perl-xml-parser installed into an user profile
Then "guix package --search-paths" does not set correctly XML::Parser.


Fixes had been pushed: dedb17a and b2a7223 and cc3de1d.

The final fix is still missing. Because it is a controversial patch
[2] :-) i.e., running 'guix' in '/etc/profile'; see these lines of the
patch:

--8<---------------cut here---------------start------------->8---
+  eval `/run/current-system/profile/bin/guix package \\
+          -p /run/current-system/profile             \\
+          -p \"$HOME/.guix-profile\" --search-paths`
--8<---------------cut here---------------end--------------->8---


The friendly "protest" [3] is about turning these lines optional via
an environment variable. I am not sure to follow where the discussion
had been going then.



Well, is the issue still happening 4 years later?
If yes, what should be the fix? What is the status quo?
If no, let close the bug.



Note that other patches are still pending [4] and [5] -- probably
irrelevant now.



All the best,
simon


[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255
[2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#41
[3] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#44
[4] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#8
[5] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#26




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Fri, 21 Feb 2020 17:19:02 GMT) Full text and rfc822 format available.

Message #88 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: iyzsong <at> gmail.com,
 Ludovic Courtès <ludo <at> gnu.org>,
 20255 <at> debbugs.gnu.org, mhw <at> netris.org
Subject: Re: (old)bug#20255: 'search-paths' should respect both user and
 system profiles
Date: Fri, 21 Feb 2020 20:18:52 +0300
zimoun (2020-02-21 16:53 +0100) wrote:

> Dear,
>
> What is the status of the bug#20255 [1]?
> It is old; the last activity seems back on 2015, November. So let resume.
>
> The issue is, e.g.:
>  - perl installed into the system profile
>  - perl-xml-parser installed into an user profile
> Then "guix package --search-paths" does not set correctly XML::Parser.
>
>
> Fixes had been pushed: dedb17a and b2a7223 and cc3de1d.
>
> The final fix is still missing. Because it is a controversial patch
> [2] :-) i.e., running 'guix' in '/etc/profile'; see these lines of the
> patch:
>
> +  eval `/run/current-system/profile/bin/guix package \\
> +          -p /run/current-system/profile             \\
> +          -p \"$HOME/.guix-profile\" --search-paths`
>
>
> The friendly "protest" [3] is about turning these lines optional via
> an environment variable. I am not sure to follow where the discussion
> had been going then.

As for me, I am OK with any default setting as long as there is a way to
change it.  I recall Ludovic proposed a patch that allowed to customize
"/etc/profile" and I was happy about it, but he changed his mind on that
patch so it was never committed.

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Fri, 18 Dec 2020 20:36:02 GMT) Full text and rfc822 format available.

Message #91 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 20255 <at> debbugs.gnu.org, Christopher Baines <mail <at> cbaines.net>
Cc: iyzsong <at> gmail.com, Ludovic Courtès <ludo <at> gnu.org>,
 Alex Kost <alezost <at> gmail.com>, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 mhw <at> netris.org
Subject: bug#20255: «the Oldest» [PATCH] 'search-paths'
 should respect both user and system profiles
Date: Fri, 18 Dec 2020 21:27:52 +0100
Hi,

The bug#20255 [#] is the oldest patch, still there even if almost is
done.  Let enjoy this patch squash day on Dec. the 18th [0] to close
it. ;-)

Below the summary I wrote couple of months ago.  And the Alex’s answer:

        As for me, I am OK with any default setting as long as there is a way to
        change it.  I recall Ludovic proposed a patch that allowed to customize
        "/etc/profile" and I was happy about it, but he changed his mind on that
        patch so it was never committed.

Let’s tackle it! :-)

0: <https://lists.gnu.org/archive/html/guix-devel/2020-12/msg00215.html>


All the best,
simon

#: <http://issues.guix.gnu.org/issue/20255>


On Fri, 21 Feb 2020 at 16:53, zimoun <zimon.toutoune <at> gmail.com> wrote:

> What is the status of the bug#20255 [1]?
> It is old; the last activity seems back on 2015, November. So let resume.
>
> The issue is, e.g.:
>  - perl installed into the system profile
>  - perl-xml-parser installed into an user profile
> Then "guix package --search-paths" does not set correctly XML::Parser.
>
> Fixes had been pushed: dedb17a and b2a7223 and cc3de1d.
>
> The final fix is still missing. Because it is a controversial patch
> [2] :-) i.e., running 'guix' in '/etc/profile'; see these lines of the
> patch:
>
> +  eval `/run/current-system/profile/bin/guix package \\
> +          -p /run/current-system/profile             \\
> +          -p \"$HOME/.guix-profile\" --search-paths`
>
>
> The friendly "protest" [3] is about turning these lines optional via
> an environment variable. I am not sure to follow where the discussion
> had been going then.
>
> Well, is the issue still happening 4 years later?
> If yes, what should be the fix? What is the status quo?
> If no, let close the bug.
>
> Note that other patches are still pending [4] and [5] -- probably
> irrelevant now.
>
> All the best,
> simon
>
>
> [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255
> [2] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#41
> [3] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#44
> [4] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#8
> [5] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20255#26





Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 26 Jun 2021 02:38:02 GMT) Full text and rfc822 format available.

Message #94 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Alex Kost <alezost <at> gmail.com>
Cc: mhw <at> netris.org, iyzsong <at> gmail.com,
 Ludovic Courtès <ludo <at> gnu.org>, 20255 <at> debbugs.gnu.org,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Fri, 25 Jun 2021 22:37:02 -0400
Hello,

Alex Kost <alezost <at> gmail.com> writes:

> zimoun (2020-02-21 16:53 +0100) wrote:
>
>> Dear,
>>
>> What is the status of the bug#20255 [1]?
>> It is old; the last activity seems back on 2015, November. So let resume.
>>
>> The issue is, e.g.:
>>  - perl installed into the system profile
>>  - perl-xml-parser installed into an user profile
>> Then "guix package --search-paths" does not set correctly XML::Parser.
>>
>>
>> Fixes had been pushed: dedb17a and b2a7223 and cc3de1d.
>>
>> The final fix is still missing. Because it is a controversial patch
>> [2] :-) i.e., running 'guix' in '/etc/profile'; see these lines of the
>> patch:
>>
>> +  eval `/run/current-system/profile/bin/guix package \\
>> +          -p /run/current-system/profile             \\
>> +          -p \"$HOME/.guix-profile\" --search-paths`
>>
>>
>> The friendly "protest" [3] is about turning these lines optional via
>> an environment variable. I am not sure to follow where the discussion
>> had been going then.
>
> As for me, I am OK with any default setting as long as there is a way to
> change it.  I recall Ludovic proposed a patch that allowed to customize
> "/etc/profile" and I was happy about it, but he changed his mind on that
> patch so it was never committed.

Do you still have a vetted interest in the issue at hand?  This is a
serious usability problem that's been in limbo for 6 years, apparently
for reasons of purity (not wanting to run a command in /etc/profile).
While I share the sentiment that /etc/profile would better be 'inert' or
static, it seems we haven't been able to come up with a better solution
than calling 'guix package --search-paths'.  Like Ludovic, I also don't
find the idea of allowing users to override /etc/profile very appealing;
even if undocumented, its mere presence in the operating-system field
would be an invitation for problems.  An environment variable to disable
such basic functionality also seems backward to me.

I would personally be in favor of committing the fix as-is.  If < 1 s of
wasted time on boot is an issue, I suggest to look into GNU Shepherd to
offset it; optimization opportunities should abound :-).

Thank you,

Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sat, 26 Jun 2021 06:00:02 GMT) Full text and rfc822 format available.

Message #97 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, Alex Kost <alezost <at> gmail.com>
Cc: mhw <at> netris.org, Ludovic Courtès <ludo <at> gnu.org>,
 zimoun <zimon.toutoune <at> gmail.com>, 20255 <at> debbugs.gnu.org, iyzsong <at> gmail.com
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sat, 26 Jun 2021 07:59:30 +0200
Am Freitag, den 25.06.2021, 22:37 -0400 schrieb Maxim Cournoyer:
> Hello,
> 
> Alex Kost <alezost <at> gmail.com> writes:
> 
> > zimoun (2020-02-21 16:53 +0100) wrote:
> > 
> > > Dear,
> > > 
> > > What is the status of the bug#20255 [1]?
> > > It is old; the last activity seems back on 2015, November. So let
> > > resume.
> > > 
> > > The issue is, e.g.:
> > >  - perl installed into the system profile
> > >  - perl-xml-parser installed into an user profile
> > > Then "guix package --search-paths" does not set correctly
> > > XML::Parser.
> > > 
> > > 
> > > Fixes had been pushed: dedb17a and b2a7223 and cc3de1d.
> > > 
> > > The final fix is still missing. Because it is a controversial
> > > patch
> > > [2] :-) i.e., running 'guix' in '/etc/profile'; see these lines
> > > of the
> > > patch:
> > > 
> > > +  eval `/run/current-system/profile/bin/guix package \\
> > > +          -p /run/current-system/profile             \\
> > > +          -p \"$HOME/.guix-profile\" --search-paths`
> > > 
> > > 
> > > The friendly "protest" [3] is about turning these lines optional
> > > via
> > > an environment variable. I am not sure to follow where the
> > > discussion
> > > had been going then.
> > 
> > As for me, I am OK with any default setting as long as there is a
> > way to
> > change it.  I recall Ludovic proposed a patch that allowed to
> > customize
> > "/etc/profile" and I was happy about it, but he changed his mind on
> > that
> > patch so it was never committed.
> 
> Do you still have a vetted interest in the issue at hand?  This is a
> serious usability problem that's been in limbo for 6 years,
> apparently
> for reasons of purity (not wanting to run a command in /etc/profile).
> While I share the sentiment that /etc/profile would better be 'inert'
> or
> static, it seems we haven't been able to come up with a better
> solution
> than calling 'guix package --search-paths'.  Like Ludovic, I also
> don't
> find the idea of allowing users to override /etc/profile very
> appealing;
> even if undocumented, its mere presence in the operating-system field
> would be an invitation for problems.  An environment variable to
> disable
> such basic functionality also seems backward to me.
> 
> I would personally be in favor of committing the fix as-is.  If < 1 s
> of
> wasted time on boot is an issue, I suggest to look into GNU Shepherd
> to
> offset it; optimization opportunities should abound :-).
I think there is a solution, that works not only for the case of
disabling this unwanted feature, but also to add in support for
multiple profiles, i.e. if the user has more than just their .guix-
profile to load.

If we made this feature opt-in in that a user would first have to write
their profiles to $HOME/.config/guix/default-profiles or a similarly
named file in $HOME/.config/guix, we could simply not run the command
if the file doesn't exist, and if it exists run it using the profiles
in there.

Most users will likely have
--8<---------------cut here---------------start------------->8---
/home/myself/.guix-profile
/run/current-system/profile
--8<---------------cut here---------------end--------------->8---
in it, but you could also have
--8<---------------cut here---------------start------------->8---
/home/myself/.guix-extra-profiles/emacs
/home/myself/.guix-extra-profiles/hundreds-of-npm-packages
/home/myself/.guix-extra-profiles/rusty-rust
/home/myself/.guix-profile
/run/current-system/profile
--8<---------------cut here---------------end--------------->8---

Of course, having to type out /home/myself is somewhat weird, and the
last two lines are a bit of boilerplate, that one might want to avoid. 
We could alternatively make it so that an empty file means "use
$HOME/.guix-profile and /run/current-system/profile", such that those
are always sourced no matter what.  WDYT?

Regards,
Leo





Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Sun, 27 Jun 2021 10:00:02 GMT) Full text and rfc822 format available.

Message #100 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: iyzsong <at> gmail.com, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Sun, 27 Jun 2021 12:59:28 +0300
Maxim Cournoyer (2021-06-25 22:37 -0400) wrote:

[...]
> Do you still have a vetted interest in the issue at hand?  This is a
> serious usability problem that's been in limbo for 6 years, apparently
> for reasons of purity (not wanting to run a command in /etc/profile).
> While I share the sentiment that /etc/profile would better be 'inert' or
> static, it seems we haven't been able to come up with a better solution
> than calling 'guix package --search-paths'.  Like Ludovic, I also don't
> find the idea of allowing users to override /etc/profile very appealing;
> even if undocumented, its mere presence in the operating-system field
> would be an invitation for problems.  An environment variable to disable
> such basic functionality also seems backward to me.
>
> I would personally be in favor of committing the fix as-is.  If < 1 s of
> wasted time on boot is an issue, I suggest to look into GNU Shepherd to
> offset it; optimization opportunities should abound :-).

I can modify /etc/profile with any "normal" linux distribution but I
cannot do it with the Guix System.  And I find it awful that you think
it should stay like that.  I am for providing as much freedom for a user
(to configure their system) as possible.

The current /etc/profile is bearable for me, but if you add a "guix ..."
call there without providing a way to modify that file, I will probably
stop using the Guix System.

Or maybe there is a hacky way to change /etc/profile ?  If so, please
share a code how this can be done.  (Then I will not complain anymore)

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 28 Jun 2021 04:37:02 GMT) Full text and rfc822 format available.

Message #103 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Alex Kost <alezost <at> gmail.com>, 20255 <at> debbugs.gnu.org, iyzsong <at> gmail.com,
 Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 28 Jun 2021 00:35:59 -0400
Hi Leo,

[...]

> I think there is a solution, that works not only for the case of
> disabling this unwanted feature, but also to add in support for
> multiple profiles, i.e. if the user has more than just their .guix-
> profile to load.
>
> If we made this feature opt-in in that a user would first have to write
> their profiles to $HOME/.config/guix/default-profiles or a similarly
> named file in $HOME/.config/guix, we could simply not run the command
> if the file doesn't exist, and if it exists run it using the profiles
> in there.
>
> Most users will likely have
>
> /home/myself/.guix-profile
> /run/current-system/profile
>
> in it, but you could also have
>
> /home/myself/.guix-extra-profiles/emacs
> /home/myself/.guix-extra-profiles/hundreds-of-npm-packages
> /home/myself/.guix-extra-profiles/rusty-rust
> /home/myself/.guix-profile
> /run/current-system/profile
>
> Of course, having to type out /home/myself is somewhat weird, and the
> last two lines are a bit of boilerplate, that one might want to avoid. 
> We could alternatively make it so that an empty file means "use
> $HOME/.guix-profile and /run/current-system/profile", such that those
> are always sourced no matter what.  WDYT?

I like this later idea (does what a user would reasonably expect by
default, which is to consider both the system and the user profile by
default).  A user specifying that file manually could then override the
default behavior to have it source extra profiles, or none at all.

Some small difference I'd propose:

An non-existing $HOME/.config/guix/default-profiles file would be
equivalent to an existing file containing:

- $HOME/.guix-profile
- /run/current-system/profile

as the default behavior.

Now we'd need to look at how feasible it is to implement such a feature.

Thanks for this clever suggestion!  It seems we may be able to find a
good middle ground :-).

Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 28 Jun 2021 04:49:02 GMT) Full text and rfc822 format available.

Message #106 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Alex Kost <alezost <at> gmail.com>
Cc: iyzsong <at> gmail.com, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 28 Jun 2021 00:48:03 -0400
Hi Alex,

Alex Kost <alezost <at> gmail.com> writes:

> Maxim Cournoyer (2021-06-25 22:37 -0400) wrote:
>
> [...]
>> Do you still have a vetted interest in the issue at hand?  This is a
>> serious usability problem that's been in limbo for 6 years, apparently
>> for reasons of purity (not wanting to run a command in /etc/profile).
>> While I share the sentiment that /etc/profile would better be 'inert' or
>> static, it seems we haven't been able to come up with a better solution
>> than calling 'guix package --search-paths'.  Like Ludovic, I also don't
>> find the idea of allowing users to override /etc/profile very appealing;
>> even if undocumented, its mere presence in the operating-system field
>> would be an invitation for problems.  An environment variable to disable
>> such basic functionality also seems backward to me.
>>
>> I would personally be in favor of committing the fix as-is.  If < 1 s of
>> wasted time on boot is an issue, I suggest to look into GNU Shepherd to
>> offset it; optimization opportunities should abound :-).
>
> I can modify /etc/profile with any "normal" linux distribution but I
> cannot do it with the Guix System.  And I find it awful that you think
> it should stay like that.  I am for providing as much freedom for a user
> (to configure their system) as possible.
> The current /etc/profile is bearable for me, but if you add a "guix ..."
> call there without providing a way to modify that file, I will probably
> stop using the Guix System.
>
> Or maybe there is a hacky way to change /etc/profile ?  If so, please
> share a code how this can be done.  (Then I will not complain anymore)

Thanks for the reply!  I just wanted to make sure the extra energy to be
spent on the search & implementation of a better solution would not be
in vain; now I that know that it won't!

I like the idea proposed by Leo Prikler; the one about giving the
possibility to users to override the list of default profiles considered
under a file such as ~/.config/guix/default-profiles.

The default would be to load both combine the environment variables of
the system and user profiles using 'guix package --search-paths', but a
user could opt-out of that by providing an empty file, or customize the
list of profiles the way they'd like.

Would that be an acceptable solution from your point of view?

Thank you,

Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 28 Jun 2021 06:59:01 GMT) Full text and rfc822 format available.

Message #109 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Alex Kost <alezost <at> gmail.com>, 20255 <at> debbugs.gnu.org, iyzsong <at> gmail.com,
 Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 28 Jun 2021 08:58:00 +0200
Am Montag, den 28.06.2021, 00:35 -0400 schrieb Maxim Cournoyer:
> Hi Leo,
> 
> [...]
> 
> > I think there is a solution, that works not only for the case of
> > disabling this unwanted feature, but also to add in support for
> > multiple profiles, i.e. if the user has more than just their .guix-
> > profile to load.
> > 
> > If we made this feature opt-in in that a user would first have to
> > write
> > their profiles to $HOME/.config/guix/default-profiles or a
> > similarly
> > named file in $HOME/.config/guix, we could simply not run the
> > command
> > if the file doesn't exist, and if it exists run it using the
> > profiles
> > in there.
> > 
> > Most users will likely have
> > 
> > /home/myself/.guix-profile
> > /run/current-system/profile
> > 
> > in it, but you could also have
> > 
> > /home/myself/.guix-extra-profiles/emacs
> > /home/myself/.guix-extra-profiles/hundreds-of-npm-packages
> > /home/myself/.guix-extra-profiles/rusty-rust
> > /home/myself/.guix-profile
> > /run/current-system/profile
> > 
> > Of course, having to type out /home/myself is somewhat weird, and
> > the
> > last two lines are a bit of boilerplate, that one might want to
> > avoid. 
> > We could alternatively make it so that an empty file means "use
> > $HOME/.guix-profile and /run/current-system/profile", such that
> > those
> > are always sourced no matter what.  WDYT?
> 
> I like this later idea (does what a user would reasonably expect by
> default, which is to consider both the system and the user profile by
> default).  A user specifying that file manually could then override
> the
> default behavior to have it source extra profiles, or none at all.
> 
> Some small difference I'd propose:
> 
> An non-existing $HOME/.config/guix/default-profiles file would be
> equivalent to an existing file containing:
> 
> - $HOME/.guix-profile
> - /run/current-system/profile
> 
> as the default behavior.
The behaviour for a missing default-profiles is nothing so as to
address the concerns raised by Alex Kost about running the guix binary
without the user's consent.  It still runs external binaries such as
test, but IIRC those are already run in our existing setup, so that's
not really a concern worth raising.

I do agree, that your solution is more reasonable if there's nothing
else to consider.

> Now we'd need to look at how feasible it is to implement such a
> feature.
A naïve implementation would be a pipe with sed and xargs, but I don't
know how well that'd guard against shell code exploits.  A more
complicated approach might take a few lines of shell code, but I don't
think it would be excessively large.

> Thanks for this clever suggestion!  It seems we may be able to find a
> good middle ground :-).
> 
> Maxim





Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 29 Jun 2021 17:30:02 GMT) Full text and rfc822 format available.

Message #112 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Alex Kost <alezost <at> gmail.com>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: iyzsong <at> gmail.com, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 29 Jun 2021 20:29:08 +0300
Maxim Cournoyer (2021-06-28 00:48 -0400) wrote:

> Alex Kost <alezost <at> gmail.com> writes:
[...]
>> I can modify /etc/profile with any "normal" linux distribution but I
>> cannot do it with the Guix System.  And I find it awful that you think
>> it should stay like that.  I am for providing as much freedom for a user
>> (to configure their system) as possible.
>> The current /etc/profile is bearable for me, but if you add a "guix ..."
>> call there without providing a way to modify that file, I will probably
>> stop using the Guix System.
>>
>> Or maybe there is a hacky way to change /etc/profile ?  If so, please
>> share a code how this can be done.  (Then I will not complain anymore)
>
> Thanks for the reply!  I just wanted to make sure the extra energy to be
> spent on the search & implementation of a better solution would not be
> in vain; now I that know that it won't!
>
> I like the idea proposed by Leo Prikler; the one about giving the
> possibility to users to override the list of default profiles considered
> under a file such as ~/.config/guix/default-profiles.
>
> The default would be to load both combine the environment variables of
> the system and user profiles using 'guix package --search-paths', but a
> user could opt-out of that by providing an empty file, or customize the
> list of profiles the way they'd like.
>
> Would that be an acceptable solution from your point of view?

Sure!  Any solution that I can configure for my needs is good for me,
thank you!

-- 
Alex




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 18 Jul 2022 09:31:01 GMT) Full text and rfc822 format available.

Message #115 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, 56382 <at> debbugs.gnu.org,
 20255 <at> debbugs.gnu.org, Morgan.J.Smith <at> outlook.com
Subject: Re: [bug#56382] [PATCH] gnu: gajim: Use hicolor-icon-theme to avoid
 crashing on startup
Date: Mon, 18 Jul 2022 11:29:55 +0200
Hi,

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:

> Hi Ludovic,
>
> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Hi,
>>
>> "Raghav Gururajan" <rg <at> raghavgururajan.name> skribis:
>>
>>>> Does simply adding ‘hicolor-icon-theme’ to ‘inputs’ fix the issue?
>>>
>>> Most gtk-based apps expect hicolor-icon-theme and adwaita-icon-theme to be in the profile. Adding these in either system or user profile would prevent this error from occurring.
>>
>> Right, so the proposed patch (adding ‘hicolor-icon-theme’ to ‘inputs’,
>> not ‘propagated-inputs’) shouldn’t make any difference I guess?
>
> I think it works as inputs because of our wrappers (perhaps
> XDG_DATA_DIRS)?  But it's kind at odds with our policy which is to let
> users manage icons themselves.

Yeah.

> Probably because of #20255 that wouldn't help currently (system and user
> profiles are not merged), but if we fixed that bug we could make the
> situation better by adding 'hicolor-icon-theme' to the default packages
> of our desktop system templates.

Right.

BTW, the reason the solution at <https://issues.guix.gnu.org/20255#12>
was rejected could be revisited.  Since that time, search paths made it
into the manifest itself, which brings a speed up:

--8<---------------cut here---------------start------------->8---
$ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches '
$ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null

real    0m0.540s
user    0m0.131s
sys     0m0.063s
$ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null

real    0m0.135s
user    0m0.130s
sys     0m0.024s
--8<---------------cut here---------------end--------------->8---

Thoughts?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 18 Jul 2022 11:22:02 GMT) Full text and rfc822 format available.

Message #118 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, 56382 <at> debbugs.gnu.org,
 20255 <at> debbugs.gnu.org, Morgan.J.Smith <at> outlook.com
Subject: Re: [bug#56382] [PATCH] gnu: gajim: Use hicolor-icon-theme to avoid
 crashing on startup
Date: Mon, 18 Jul 2022 07:21:40 -0400
Hello!

Ludovic Courtès <ludo <at> gnu.org> writes:

[...]

>>> Right, so the proposed patch (adding ‘hicolor-icon-theme’ to ‘inputs’,
>>> not ‘propagated-inputs’) shouldn’t make any difference I guess?
>>
>> I think it works as inputs because of our wrappers (perhaps
>> XDG_DATA_DIRS)?  But it's kind at odds with our policy which is to let
>> users manage icons themselves.
>
> Yeah.
>
>> Probably because of #20255 that wouldn't help currently (system and user
>> profiles are not merged), but if we fixed that bug we could make the
>> situation better by adding 'hicolor-icon-theme' to the default packages
>> of our desktop system templates.
>
> Right.
>
> BTW, the reason the solution at <https://issues.guix.gnu.org/20255#12>
> was rejected could be revisited.  Since that time, search paths made it
> into the manifest itself, which brings a speed up:
>
> $ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches '
> $ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null
>
> real    0m0.540s
> user    0m0.131s
> sys     0m0.063s
> $ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null
>
> real    0m0.135s
> user    0m0.130s
> sys     0m0.024s
>
> Thoughts?

Re-reading the bug report, we had come up with a blueprint of a possible
solution  but failed short of implementing it [0]

[0]  https://issues.guix.gnu.org/20255#35

Even the --search-paths command become 0.2 s, I don't think it'll
satisfy all parties, so the solution above still has merit, I think.
Perhaps we should try to implement it, unless you see a problem with it.

Thanks,

Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 18 Jul 2022 13:34:01 GMT) Full text and rfc822 format available.

Message #121 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: bokr <at> bokr.com
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Morgan.J.Smith <at> outlook.com,
 56382 <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: [bug#56382] [PATCH] gnu: gajim: Use
 hicolor-icon-theme to avoid crashing on startup
Date: Mon, 18 Jul 2022 15:33:18 +0200
Hi Ludo,

On +2022-07-18 11:29:55 +0200, Ludovic Courtès wrote:
> Hi,
> 
> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:
> 
> > Hi Ludovic,
> >
> > Ludovic Courtès <ludo <at> gnu.org> writes:
> >
> >> Hi,
> >>
> >> "Raghav Gururajan" <rg <at> raghavgururajan.name> skribis:
> >>
> >>>> Does simply adding ‘hicolor-icon-theme’ to ‘inputs’ fix the issue?
> >>>
> >>> Most gtk-based apps expect hicolor-icon-theme and adwaita-icon-theme to be in the profile. Adding these in either system or user profile would prevent this error from occurring.
> >>
> >> Right, so the proposed patch (adding ‘hicolor-icon-theme’ to ‘inputs’,
> >> not ‘propagated-inputs’) shouldn’t make any difference I guess?
> >
> > I think it works as inputs because of our wrappers (perhaps
> > XDG_DATA_DIRS)?  But it's kind at odds with our policy which is to let
> > users manage icons themselves.
> 
> Yeah.
> 
> > Probably because of #20255 that wouldn't help currently (system and user
> > profiles are not merged), but if we fixed that bug we could make the
> > situation better by adding 'hicolor-icon-theme' to the default packages
> > of our desktop system templates.
> 
> Right.
> 
> BTW, the reason the solution at <https://issues.guix.gnu.org/20255#12>
> was rejected could be revisited.  Since that time, search paths made it
> into the manifest itself, which brings a speed up:
> 
> --8<---------------cut here---------------start------------->8---
> $ sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches '
> $ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null
> 
> real    0m0.540s
> user    0m0.131s
> sys     0m0.063s
> $ time guix package -p ~/.guix-home/profile -p /run/current-system/profile --search-paths > /dev/null
> 
> real    0m0.135s
> user    0m0.130s
> sys     0m0.024s
> --8<---------------cut here---------------end--------------->8---
> 
> Thoughts?
> 
> Ludo’.

I'm sure you were just after a quick indication and know what can affect timing,
but I'm curious:

What would the above results be if you did the second timing
first, after a power down and cold start?

I'm guessing the kernel file systems are pretty clever about
caching stuff, especially if you have lots of ram :)

I.e., what cached state could the first timing have left for the second to profit from?

(I've been fooled maany times, benchmarking and timing :)

--
Regards,
Bengt Richter




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 19 Jul 2022 08:31:02 GMT) Full text and rfc822 format available.

Message #124 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: bokr <at> bokr.com
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Morgan.J.Smith <at> outlook.com,
 56382 <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: [bug#56382] [PATCH] gnu: gajim: Use
 hicolor-icon-theme to avoid crashing on startup
Date: Tue, 19 Jul 2022 10:29:59 +0200
Hi,

bokr <at> bokr.com skribis:

> I'm sure you were just after a quick indication and know what can affect timing,
> but I'm curious:
>
> What would the above results be if you did the second timing
> first, after a power down and cold start?
>
> I'm guessing the kernel file systems are pretty clever about
> caching stuff, especially if you have lots of ram :)

The ‘drop_caches’ command is meant to drop all caches, as if I were
doing it on a cold start.

Ludo’.




Reply sent to 宋文武 <iyzsong <at> envs.net>:
You have taken responsibility. (Fri, 12 May 2023 12:35:01 GMT) Full text and rfc822 format available.

Notification sent to 宋文武 <iyzsong <at> gmail.com>:
bug acknowledged by developer. (Fri, 12 May 2023 12:35:02 GMT) Full text and rfc822 format available.

Message #129 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Fri, 12 May 2023 20:34:02 +0800

Hello, commit 40310efde9b4a4f2cf98081d6cd10f843685ebb6 fix this by merge
search-paths from multiple profiles by `guix package --search-paths`, in
~/.bashrc and ~/.zprofile (skeletons, so existed systems need manual
update).  


Close now!




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 15 May 2023 13:54:01 GMT) Full text and rfc822 format available.

Message #132 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: 宋文武 <iyzsong <at> envs.net>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 15 May 2023 09:53:04 -0400
Hi,

宋文武 <iyzsong <at> envs.net> writes:

> Hello, commit 40310efde9b4a4f2cf98081d6cd10f843685ebb6 fix this by merge
> search-paths from multiple profiles by `guix package --search-paths`, in
> ~/.bashrc and ~/.zprofile (skeletons, so existed systems need manual
> update).  
>
>
> Close now!

Cool, thanks for the update.  Perhaps a NEWS entry would be useful to
keep Guix System existing users in the loop?  Until we have a better
mechanism/approach to these stateful files that don't change past the
original installation.

-- 
Thanks,
Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 15 May 2023 17:15:02 GMT) Full text and rfc822 format available.

Message #135 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: Josselin Poiret <dev <at> jpoiret.xyz>
To: 宋文武 <iyzsong <at> envs.net>, zimoun
 <zimon.toutoune <at> gmail.com>
Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 15 May 2023 19:14:15 +0200
[Message part 1 (text/plain, inline)]
Hi,

宋文武 via Bug reports for GNU Guix <bug-guix <at> gnu.org> writes:

> Hello, commit 40310efde9b4a4f2cf98081d6cd10f843685ebb6 fix this by merge
> search-paths from multiple profiles by `guix package --search-paths`, in
> ~/.bashrc and ~/.zprofile (skeletons, so existed systems need manual
> update).  
>
>
> Close now!

I just checked and zsh does load /etc/profile by default on login, and
on guix system that also loads the user's profile by default.  Should we
remove this so that profiles are only loaded once?

Best,
-- 
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Mon, 15 May 2023 17:47:03 GMT) Full text and rfc822 format available.

Message #138 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>,
 宋文武 <iyzsong <at> envs.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Mon, 15 May 2023 13:46:21 -0400
Hi,

Josselin Poiret <dev <at> jpoiret.xyz> writes:

> Hi,
>
> 宋文武 via Bug reports for GNU Guix <bug-guix <at> gnu.org> writes:
>
>> Hello, commit 40310efde9b4a4f2cf98081d6cd10f843685ebb6 fix this by merge
>> search-paths from multiple profiles by `guix package --search-paths`, in
>> ~/.bashrc and ~/.zprofile (skeletons, so existed systems need manual
>> update).  
>>
>>
>> Close now!
>
> I just checked and zsh does load /etc/profile by default on login, and
> on guix system that also loads the user's profile by default.  Should we
> remove this so that profiles are only loaded once?

Just to make sure, remove what exactly?

-- 
Thanks,
Maxim




Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 16 May 2023 09:38:01 GMT) Full text and rfc822 format available.

Message #141 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: Josselin Poiret <dev <at> jpoiret.xyz>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>,
 宋文武 <iyzsong <at> envs.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 16 May 2023 11:37:02 +0200
[Message part 1 (text/plain, inline)]
Hi Maxim,

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:

> Just to make sure, remove what exactly?

Remove the bit in /etc/profile that loads the user's profile, if it is
indeed supposed to be loaded by the user's own ~/.zprofile or
~/.bash_profile.  At least, I don't know if there is a general agreement
on what should be done in /etc/profile vs. the user's own config.

Best,
-- 
Josselin Poiret
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Tue, 16 May 2023 11:01:02 GMT) Full text and rfc822 format available.

Message #144 received at 20255-done <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>,
 zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>, iyzsong <at> gmail.com,
 20255-done <at> debbugs.gnu.org, Alex Kost <alezost <at> gmail.com>
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Tue, 16 May 2023 19:00:32 +0800
Josselin Poiret <dev <at> jpoiret.xyz> writes:

> Hi Maxim,
>
> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:
>
>> Just to make sure, remove what exactly?
>
> Remove the bit in /etc/profile that loads the user's profile, if it is
> indeed supposed to be loaded by the user's own ~/.zprofile or
> ~/.bash_profile.

Remove will break existed systems, so need a NEWS entry as Maxim
mentioned, and maybe some explainations and examples in the manual about
how to setup the environments as needed.

I could make a patch for it this weekend if no one beats me..


> At least, I don't know if there is a general agreement
> on what should be done in /etc/profile vs. the user's own config.

I think hopefully we can agree that /etc/profile only handle the system
profile, and user's own config can decide what it want.

Despite mitigation, it still work out of the box with skeletons, and
user can arrange priorities among profiles, or disable the system one.
Or configure it via home-shell-profile (TODO: need some changes).




Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 17 May 2023 14:04:01 GMT) Full text and rfc822 format available.

Removed tag(s) patch. Request was from 宋文武 <iyzsong <at> envs.net> to control <at> debbugs.gnu.org. (Wed, 17 May 2023 14:04:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 17 May 2023 14:05:01 GMT) Full text and rfc822 format available.

Message #151 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 20255 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 3/4] system: Only source system profile's settings in
 '/etc/profile'.
Date: Wed, 17 May 2023 22:04:10 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

This is a followup to 40310efde9b4a4f2cf98081d6cd10f843685ebb6.

* gnu/system.scm (operating-system-etc-service)[profile]:
Don't source profile of '~/.guix-profile' and '~/.config/guix/current'.
---
 gnu/system.scm | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/gnu/system.scm b/gnu/system.scm
index 354f58f55b..a48c206e18 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1009,8 +1009,8 @@ (define* (operating-system-etc-service os)
         ;; environment variables.
         (profile    (mixed-text-file "profile"  "\
 # Crucial variables that could be missing in the profiles' 'etc/profile'
-# because they would require combining both profiles.
-# FIXME: See <http://bugs.gnu.org/20255>.
+# because they would require honoring search paths of dependencies.
+# FIXME: See <http://bugs.gnu.org/22138>.
 export MANPATH=$HOME/.guix-profile/share/man:/run/current-system/profile/share/man
 export INFOPATH=$HOME/.guix-profile/share/info:/run/current-system/profile/share/info
 export XDG_DATA_DIRS=$HOME/.guix-profile/share:/run/current-system/profile/share
@@ -1037,27 +1037,12 @@ (define* (operating-system-etc-service os)
   export `cat /etc/environment | cut -d= -f1`
 fi
 
-# Arrange so that ~/.config/guix/current comes first.
-for profile in \"$HOME/.guix-profile\" \"$HOME/.config/guix/current\"
-do
-  if [ -f \"$profile/etc/profile\" ]
-  then
-    # Load the user profile's settings.
-    GUIX_PROFILE=\"$profile\" ; \\
-    . \"$profile/etc/profile\"
-  else
-    # At least define this one so that basic things just work
-    # when the user installs their first package.
-    export PATH=\"$profile/bin:$PATH\"
-  fi
-done
+# Make basic things just work when the user installs their first package.
+export PATH=\"$HOME/.config/guix/current/bin:$HOME/.guix-profile/bin:$PATH\"
 
 # Prepend setuid programs.
 export PATH=/run/setuid-programs:$PATH
 
-# Arrange so that ~/.config/guix/current/share/info comes first.
-export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"
-
 # Set the umask, notably for users logging in via 'lsh'.
 # See <http://bugs.gnu.org/22650>.
 umask 022
-- 
2.40.1





Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 17 May 2023 14:05:02 GMT) Full text and rfc822 format available.

Message #154 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 20255 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 2/4] system: default-skeletons: Set up Guix home profile when
 it exists.
Date: Wed, 17 May 2023 22:04:09 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

This is a followup to 40310efde9b4a4f2cf98081d6cd10f843685ebb6.

* gnu/system/shadow.scm (default-skeletons)[bash_profile, zprofile]:
Source '~/.profile' when '~/.guix-home' exists.
---
 gnu/system/shadow.scm | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 4a8cc87f0f..afb47fc42d 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -151,9 +151,6 @@ (define (default-skeletons)
 'useradd' in the home directory of newly created user accounts."
 
   (let ((profile (plain-file "bash_profile" "\
-# Set up Guix Home profile
-if [ -f ~/.profile ]; then . ~/.profile; fi
-
 # Honor per-interactive-shell startup file
 if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
 
@@ -165,6 +162,9 @@ (define (default-skeletons)
 
 # Prepend setuid programs.
 export PATH=/run/setuid-programs:$PATH
+
+# Set up Guix Home profile
+if [ -d ~/.guix-home ]; then . ~/.profile; fi
 "))
         (bashrc  %default-bashrc)
         (zprofile    (plain-file "zprofile" "\
@@ -179,6 +179,9 @@ (define (default-skeletons)
 
 # Prepend setuid programs.
 export PATH=/run/setuid-programs:$PATH
+
+# Set up Guix Home profile
+if [ -d ~/.guix-home ]; then . ~/.profile; fi
 "))
         (xdefaults (plain-file "Xdefaults" "\
 XTerm*utf8: always
-- 
2.40.1





Information forwarded to , bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 17 May 2023 14:05:02 GMT) Full text and rfc822 format available.

Message #157 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 20255 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 1/4] home: shells: Merge search-paths of multiple profiles.
Date: Wed, 17 May 2023 22:04:08 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

This is a followup to 40310efde9b4a4f2cf98081d6cd10f843685ebb6.

* gnu/home/services.scm (environment-variables->setup-environment-script):
Merge search-paths from multiple profiles via "guix package".
* gnu/home/services/shells.scm (zsh-file-zprofile, add-bash-configuration):
Adjust comments.
---
 gnu/home/services.scm        | 14 ++++++++++----
 gnu/home/services/shells.scm |  6 ++----
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/gnu/home/services.scm b/gnu/home/services.scm
index b17a34d19d..3a061cf310 100644
--- a/gnu/home/services.scm
+++ b/gnu/home/services.scm
@@ -260,11 +260,17 @@ (define (environment-variables->setup-environment-script vars)
                            (lambda (port)
                              (set-port-encoding! port "UTF-8")
                              (display "\
-HOME_ENVIRONMENT=$HOME/.guix-home
-GUIX_PROFILE=\"$HOME_ENVIRONMENT/profile\"
-PROFILE_FILE=\"$HOME_ENVIRONMENT/profile/etc/profile\"
-[ -f $PROFILE_FILE ] && . $PROFILE_FILE
+# Merge search-paths from multiple profiles, the order matters.
+eval \"$(guix package --search-paths \\
+-p $HOME/.config/guix/current \\
+-p $HOME/.guix-home/profile \\
+-p $HOME/.guix-profile \\
+-p /run/current-system/profile)\"
+
+# Prepend setuid programs.
+export PATH=/run/setuid-programs:$PATH
 
+HOME_ENVIRONMENT=$HOME/.guix-home
 case $XDG_DATA_DIRS in
   *$HOME_ENVIRONMENT/profile/share*) ;;
   *) export XDG_DATA_DIRS=$HOME_ENVIRONMENT/profile/share:$XDG_DATA_DIRS ;;
diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm
index f05f2221d6..7c8908083e 100644
--- a/gnu/home/services/shells.scm
+++ b/gnu/home/services/shells.scm
@@ -185,9 +185,8 @@ (define (zsh-file-zprofile config)
   (mixed-text-file
    "zprofile"
    "\
-# Set up the system, user profile, and related variables.
+# Set up environment variables of profiles.
 source /etc/profile
-# Set up the home environment profile.
 source ~/.profile
 
 # It's only necessary if zsh is a login shell, otherwise profiles will
@@ -399,9 +398,8 @@ (define (add-bash-configuration config)
       ,(mixed-text-file
         "bash_profile"
         "\
-# Set up the system, user profile, and related variables.
+# Set up environment variables of profiles.
 # /etc/profile will be sourced by bash automatically
-# Set up the home environment profile.
 if [ -f ~/.profile ]; then source ~/.profile; fi
 
 # Honor per-interactive-shell startup file

base-commit: cf82526ac400fe953ddfbf9d7458d62ea4871d10
-- 
2.40.1





Information forwarded to pelzflorian <at> pelzflorian.de, julien <at> lepiller.eu, bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 17 May 2023 14:05:03 GMT) Full text and rfc822 format available.

Message #160 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: iyzsong <at> envs.net
To: 20255 <at> debbugs.gnu.org
Cc: 宋文武 <iyzsong <at> member.fsf.org>
Subject: [PATCH 4/4] news: Add entry for '/etc/profile' changes.
Date: Wed, 17 May 2023 22:04:11 +0800
From: 宋文武 <iyzsong <at> member.fsf.org>

* etc/news.scm: Add entry.
---
 etc/news.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/etc/news.scm b/etc/news.scm
index f5dc3ca0d5..2da92eeac3 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -26,6 +26,39 @@
 (channel-news
  (version 0)
 
+ (entry (commit "2e888b4d07c67ad74fbb4ec9afb812a236852027")
+        (title
+         (en "@file{/etc/profile} changes require manual intervention"))
+        (body
+         (en "On Guix System, now the personal shell startup file
+@file{~/.bash_profile} or @file{~/.zprofile} will be used to set up
+environment variables for the user instead of @file{/etc/profile}.  And
+search-paths from multiple profiles are honored, which means a system
+configured Xfce desktop environment can find its panel plugins in the user
+profile.
+
+Before run @command{guix system reconfigure}, append the snippet below to each
+user's @file{~/.bash_profile} or @file{~/.zprofile}:
+
+@example
+# Merge search-paths from multiple profiles, the order matters.
+eval \"$(guix package --search-paths \\
+-p $HOME/.config/guix/current \\
+-p $HOME/.guix-profile \\
+-p /run/current-system/profile)\"
+
+# Prepend setuid programs.
+export PATH=/run/setuid-programs:$PATH
+
+# Set up Guix Home profile
+if [ -d ~/.guix-home ]; then . ~/.profile; fi
+@end example
+
+Or you can override them with updated skeleton files after system reconfigure.
+In addition, Guix Home users need to upgrade via @command{guix home
+reconfigure}.  See @uref{https://issues.guix.gnu.org/20255} for the
+rationale.")))
+
  (entry (commit "ae11fcb84ac478dfa56d322ef08890645183a087")
         (title
          (en "New @option{--with-configure-flag} transformation option")
-- 
2.40.1





Information forwarded to bug-guix <at> gnu.org:
bug#20255; Package guix. (Wed, 17 May 2023 14:13:02 GMT) Full text and rfc822 format available.

Message #163 received at 20255 <at> debbugs.gnu.org (full text, mbox):

From: 宋文武 <iyzsong <at> envs.net>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: zimoun <zimon.toutoune <at> gmail.com>, mhw <at> netris.org,
 Ludovic Courtès <ludo <at> gnu.org>,
 Christopher Baines <mail <at> cbaines.net>, guix-devel <at> gnu.org,
 Alex Kost <alezost <at> gmail.com>, 20255 <at> debbugs.gnu.org
Subject: Re: bug#20255: 'search-paths' should respect both user and system
 profile.
Date: Wed, 17 May 2023 22:12:19 +0800
Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:

> Hi,
>
> 宋文武 <iyzsong <at> envs.net> writes:
>
>> Hello, commit 40310efde9b4a4f2cf98081d6cd10f843685ebb6 fix this by merge
>> search-paths from multiple profiles by `guix package --search-paths`, in
>> ~/.bashrc and ~/.zprofile (skeletons, so existed systems need manual
>> update).  
>>
>>
>> Close now!

Well, I reopen this since the changes is not totaly (duplicates in
/etc/profile, guix home changes) done, sorry...

>
> Cool, thanks for the update.  Perhaps a NEWS entry would be useful to
> keep Guix System existing users in the loop?  Until we have a better
> mechanism/approach to these stateful files that don't change past the
> original installation.

Now, I send more patches with NEWS entry.


Add guix-devel to CC for more reviews, TIA!




This bug report was last modified 337 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.