From: Andrew Tropin <andrew@trop.in>
To: Maxime Devos <maximedevos@telenet.be>, 56661@debbugs.gnu.org
Subject: bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SLIM + Mate
Date: Wed, 20 Jul 2022 20:47:21 +0300 [thread overview]
Message-ID: <87r12fbrrq.fsf@trop.in> (raw)
In-Reply-To: <5e3f98c8-eeb1-909b-8407-ef55f01a6881@telenet.be>
[-- Attachment #1: Type: text/plain, Size: 5192 bytes --]
On 2022-07-20 14:30, Maxime Devos wrote:
> On 20-07-2022 14:08, Andrew Tropin wrote:
>> Hi Maxime,
>>
>> According to the documentation to get all the environment variables set
>> correctly you either need to manage your login shell with Guix Home or
>> do additional configuration of your shell:
>> https://guix.gnu.org/manual/devel/en/html_node/Configuring-the-Shell.html
>
> I am not using a login shell, though I suppose there might be one under
> the hood somewhere (IIRC, and if it hasn't changed, some login managers
> are wrapped in Guix System to insert a bash --login in-between). Even if
> I am using a (non-login) shell, there's still an issue: if I start an
> application via the graphical things, they don't get all the environment
> variables (I tested this by opening a terminal that starts bash and
> doing "echo $EMACSLOADPATH", but that a shell is used for the test seems
> irrelevant here to me).
>
>> From what I see you manage bash with Guix Home,
> I am not. I just keep the default ~/.bash_profile etc that a fresh Guix
> System install gave me and the only reason bash_profile things appear in
> the home configuration is because "guix home import" generated that. I'm
> not managing anything, just keeping the defaults.
You are ;) Declaring home-bash-service-type in home environment means
that Guix Home will generate and install bash configurations, which
means you are managing bash configurations with Guix Home.
>> so according to the
>> source code your bash_profile should look differently from what you've
>> posted and must contain `source ~/.profile` in it:
>
> ~/.bash_profile does contain that line:
>
> # Set up the system, user profile, and related variables.
> # /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
> if [ -f ~/.bashrc ]; then source ~/.bashrc; fi
> # Honor per-interactive-shell startup file
> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
You can remove your original bash_profile, because it's just duplicates
last two lines, Guix Home adds the same content as skeletons provided
during system installation and a little more.
>
> However, .bash_profile (the one from the local-file) does not:
>
> # Honor per-interactive-shell startup file
> if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
>
>
>> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/home/services/shells.scm#n440
>>
>> This line makes your login shell
>
> I am not using a login shell but a graphical environment -- the only
> reason I actually use a shell at all is because I find it more
> convenient to open a terminal and type "emacs" than to look in the
> graphical desktop thingy for the Emacs icon. Also, I'm not finding Emacs
> here even though in the previous installation of Guix System (GDM + Mate
> IIRC, without Guix Home but with "guix install ...". Icedove isn't
> appearing there either, though the browser is.
>
> I recall that it login shells were not necessary on Guix System +
> ~/.guix-profile (without Guix Home), at least for the desktop
> environment combination I used back then, though it was required on my
> Debian system to do "bash --login". I can do "bash --login" on my Guix
> System + Guix Home setup to start a login shell, but that would be a
> regression.
>
I'm not sure how your login/display manager works, but for X11 session
sourcing ~/.profile from ~/.xsession should do the trick.
Put the following content to your ~/.xsession:
--8<---------------cut here---------------start------------->8---
. ~/.profile
--8<---------------cut here---------------end--------------->8---
Or add the following service to your home environment:
--8<---------------cut here---------------start------------->8---
(simple-service
'xsession-init-file
home-files-service-type
`((".xsession" ,(plain-file "xsession" ". ~/.profile"))))
--8<---------------cut here---------------end--------------->8---
>> source .profile, which sources
>> setup-environment, which sources ~/.guix-home/profile/etc/profile, which
>> sets EMACSLOADPATH.
>>
>> Additionally, I've built the home environment you provided and it
>> contains the code I mentioned above.
>>
>> Make sure that ~/.bash_profile and ~/.guix-home/files/.bash_profile
>> point to the same file in the store.
>
> antipode@antipode ~$ ls -l .bash_profile
> lrwxrwxrwx 1 antipode users 56 19 jul 22:14 .bash_profile ->
> /gnu/store/1cq87qf8zccxlnkjwifcyhawmxvy7wfw-bash_profile
>
> antipode@antipode ~$ ls -l ~/.guix-home/files/.bash_profile
> lrwxrwxrwx 1 root root 56 1 jan 1970
> /home/antipode/.guix-home/files/.bash_profile ->
> /gnu/store/1cq87qf8zccxlnkjwifcyhawmxvy7wfw-bash_profile
>
> They do. Also, shouldn't ~/.bash_profile point to
> ~/.guix-home/files/.bash_profile instead of directly to the store, to be
> more atomic (unrelated to #56661 though), like done for symlinks in /etc
> in Guix System?
No.
Activation is not atomic process anyway.
--
Best regards,
Andrew Tropin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
next prev parent reply other threads:[~2022-07-20 17:48 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-20 10:45 bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SLIM + Mate Maxime Devos
2022-07-20 10:59 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SDDM " Maxime Devos
2022-07-20 12:08 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SLIM " Andrew Tropin
2022-07-20 12:30 ` Maxime Devos
2022-07-20 17:47 ` Andrew Tropin [this message]
2022-07-22 9:28 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SDDM " Maxime Devos
2022-07-22 10:17 ` Maxime Devos
2022-07-22 9:32 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SLIM " Maxime Devos
2022-07-22 13:03 ` Andrew Tropin
2022-07-22 13:13 ` bug#56661: SDDM does not do the equivalent of 'login shell --login', unlike other login managers Maxime Devos
2022-07-22 10:24 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SDDM + Mate Maxime Devos
2022-07-22 10:44 ` Maxime Devos
2022-07-22 11:00 ` bug#56661: SDDM does not do the equivalent of 'login shell --login', unlike other login managers Maxime Devos
2022-07-22 13:15 ` bug#56661: EMACSLOADPATH not set when using Guix System + Guix Home + SDDM + Mate Andrew Tropin
2022-07-30 11:16 ` bug#56661: [PATCH] build-self: Try printing nicer error messages Maxime Devos
2022-07-30 11:17 ` Maxime Devos
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r12fbrrq.fsf@trop.in \
--to=andrew@trop.in \
--cc=56661@debbugs.gnu.org \
--cc=maximedevos@telenet.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).