Hello,

Since commit 9e4c90ea160066d0b8e23c1e73450e2fc9f68bea ("guix: Adjust
environment setup so extensions are located without propagating Guix.",
authored 2026-08-17, committed 2026-08-21), the /etc/profile generated on
Guix System contains a stray line, and every login shell prints an error.

There appear to be two separate defects in the three lines that commit
added to gnu/system.scm.


1. Missing line continuation
----------------------------

In gnu/system.scm, inside the "profile" mixed-text-file in
operating-system-etc-service (around line 1075):

    export GUIX_EXTENSIONS_PATH=\
    $HOME/.guix-profile/share/guix/extensions
    :/run/current-system/share/guix/extensions

The first line ends with a backslash, which inside a Guile string literal
elides the newline. The second line does not, so a literal newline is
emitted into the generated file between "extensions" and ":/run/...".

The resulting /etc/profile, lines 8-9:

    export GUIX_EXTENSIONS_PATH=$HOME/.guix-profile/share/guix/extensions
    :/run/current-system/share/guix/extensions

Line 9 is then executed as a command word:

    $ bash -l -c true
    /etc/profile: line 9: :/run/current-system/share/guix/extensions: No such file or directory

This appears on every shell that sources /etc/profile: console login, SSH
login, and "su -".

Beyond the message, GUIX_EXTENSIONS_PATH ends up set to only
$HOME/.guix-profile/share/guix/extensions -- the system component is lost.

Proposed fix:

--- a/gnu/system.scm
+++ b/gnu/system.scm
@@
 export GUIX_EXTENSIONS_PATH=\
-$HOME/.guix-profile/share/guix/extensions
+$HOME/.guix-profile/share/guix/extensions\
 :/run/current-system/share/guix/extensions


2. The system-side path looks wrong
------------------------------------

/run/current-system/share/guix/extensions cannot exist.
/run/current-system contains only:

    activate  boot  channels.scm  configuration.scm  etc  initrd
    kernel  locale  parameters  profile  provenance

There is no "share" there and there never will be. Every other entry in
the same template uses /run/current-system/profile/... -- MANPATH,
INFOPATH, XDG_DATA_DIRS, XDG_CONFIG_DIRS and XCURSOR_PATH all do.

I believe the line should read:

    :/run/current-system/profile/share/guix/extensions

so that extensions installed into the system profile are actually found.
Both paths are absent on my machine, so this second defect has no visible
symptom yet -- nothing that previously worked has regressed.


System
------

$ guix describe
Generation 126   Aug 23 2026 02:21:09    (current)
  nonguix caa8c0b
    repository URL: https://gitlab.com/nonguix/nonguix
    branch: master
    commit: caa8c0b4646b993537be13c9bc819b3df68ab9b2
  guix 883d5b4
    repository URL: https://codeberg.org/guix/guix.git
    branch: master
    commit: 883d5b48010542f04eafdb9c8f03a8b17ea8ace4

x86_64-linux, Guix System.

Thanks,

Z




Reply via email to