Subject: bug#48796: Guix on Debian 11 - Cant run or find applications from Guix

From: Giovanni Biscuolo <[email-masked]>
Date: Sat, 07 May 2022 11:25:56 +0200

Hello Maxim,

sorry to come back to this after so long but this is still a bug

I'm still trying to solve how to configure the "environment machinery"
on a new Debian 11 laptop, on this machine there is no old user
configuration status that could interfere: it's a brand new Debian 11
"basic" desktop

Maxim Cournoyer <[email-masked]> writes:

[...]

> There are two things that Guix does to help users correctly configure
> their system so that Guix installed applications appear on PATH.
>
> 1. The guix-install.sh installation script installs a
> /etc/profile.d/guix.sh script that configures the PATH when logging
> in:

I've installed guix using the Debian package (apt install guix) and it
installed /etc/profile.d/guix.sh, I have it

[...]

> I suspect you didn't install Guix via this script?  If so, could you try
> creating the above file, closing relogin in your graphical session and
> report if it fixed things for you?

No, if I remove all the Guix related environment settings from the user
~/.profile (plz see my recent messages in this bug report for details if
you need) no environment variable from $GUIX_PROFILE/etc/profile (the
file is there) is sourced in the resulting graphical user session: I
tried both with LXDE and Mate (via lightdm)

That file is sourced and environment variables are properly configured
only via a succesful console login (ALT+F1) or an ssh login from a
remote machine, I've tried

The sourcing of /etc/profile.d/guix.sh is only working if I source that
file from ~/.xsessionrc:

--8<---------------cut here---------------start------------->8---

if [ -f ~/.profile ]; then
    . ~/.profile
fi

if [ -f /etc/profile.d/guix.sh ]; then
    . /etc/profile.d/guix.sh
fi

export XSESSION_WAS_HERE="Yes"

--8<---------------cut here---------------end--------------->8---

This is the (partial) env after I succesfully login in LXDE, I got it
starting LXTerminal from the graphical session:

--8<---------------cut here---------------start------------->8---

GUIX_LOCPATH=/home/patrizia/.guix-profile/lib/locale
GUIX_PROFILE=/home/patrizia/.guix-profile
XDG_CONFIG_DIRS=/etc/xdg/lubuntu:/etc/xdg
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session2
XDG_MENU_PREFIX=lxde-
XDG_DATA_HOME=/home/patrizia/.local/share
XDG_CONFIG_HOME=/home/patrizia/.config
XDG_SEAT=seat0
XDG_SESSION_DESKTOP=LXDE
XDG_SESSION_TYPE=x11
XDG_GREETER_DATA_DIR=/var/lib/lightdm/data/patrizia
XDG_CURRENT_DESKTOP=LXDE
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_VTNR=7
XDG_SESSION_ID=12
XDG_RUNTIME_DIR=/run/user/1001
XDG_DATA_DIRS=/etc/xdg/lubuntu:/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/local/share/:/usr/share/:/usr/share/gdm/:/var/lib/menu-xdg/
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session2
GIT_EXEC_PATH=/home/patrizia/.guix-profile/libexec/git-core
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
INFOPATH=/home/patrizia/.config/guix/current/share/info:
GUIX_LOCPATH=/home/patrizia/.guix-profile/lib/locale
PATH=/home/patrizia/.guix-profile/bin:/home/patrizia/.guix-profile/sbin:/home/patrizia/.config/guix/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
GIO_EXTRA_MODULES=/home/patrizia/.guix-profile/lib/gio/modules

--8<---------------cut here---------------end--------------->8---

Unfortunately, still XDG_DATA_DIRS is reset to a different value after I
login to a LXDE user session (lxsession); please see my recent messages
in this bug report for details; so basically I can run all Guix
installed application "manually" but they are missing from the menu,
also all the mime/type->application associasions are missing in the
filemanager

I've also opened a thread for this specific issue on debian-user:
https://lists.debian.org/debian-user/2022/05/msg00153.html
but how XDG_DATA_DIRS is reset after ~/.xsession sourcing is still a
great mistery.

More unfortunately, if I try to login using a Mate session (with the
above configuration, thus with that environment) it fails with this
error (via journalctl):

--8<---------------cut here---------------start------------->8---

 mag 07 09:21:14 raifort mate-session[818]: GLib-GIO-ERROR: Settings schema 'org.mate.session' is not installed
                                           aborting...

--8<---------------cut here---------------end--------------->8---

If I remove /etc/profile.d/guix.sh from the user's ~/.xsession Mate is
able to login with no problems (is this related to GIO_EXTRA_MODULES?)
but I miss the Guix environment variables, obviously.

[...]

Happy hacking! Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures