Subject: bug#42600: closed (Re: bug#42600: /etc/profile not being sourced from interactive non-login shell)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 14 Jul 2022 02:53:02 +0000

Your bug report

#42600: /etc/profile not being sourced from interactive non-login shell

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
42600: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42600
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#42600: /etc/profile not being sourced from interactive non-login shell
From: Maxim Cournoyer <[email-masked]>
To: Kyle Andrews <[email-masked]>
Cc: [email-masked]
Date: Wed, 13 Jul 2022 22:52:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Kyle,

Kyle Andrews <[email-masked]> writes:

> Despite what it says in my ~.bashrc~, if I start a shell from Emacs with
> the elisp below, then `guix describe` does not work:
>
>   (let ((default-directory "/ssh:me@remote:/home/me"))
>       (shell "*shell<remote>*"))

It works for me:

/ssh:raisin:/home/mcournoyer/ #$ guix describe
  guix 598f728
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 598f7289db9955584457ffc11c8504f3938a1618

The remote machine is a Guix System though.  If it as something else, it
could be more tricky, as then the shell used may not be Bash *compiled
with a non-default option* [0] to source ~/.bashrc on SSH connections.

[0]  https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bash.scm#n109

To force interactive mode, you could also use 'ssh remote bash -l'.
I've also written script with the shebang:

#/usr/bin/env -S bash -l

This works where 'env' is new enough to accept -S.  Useful in Jenkins
shell snippets for example.

Anyway, I hope that helps.  I don't see a bug here.

Closing.

Maxim

Subject: /etc/profile not being sourced from interactive non-login shell
From: Kyle Andrews <[email-masked]>
To: [email-masked]
Date: Wed, 29 Jul 2020 11:17:58 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Despite what it says in my ~.bashrc~, if I start a shell from Emacs with
the elisp below, then `guix describe` does not work:

  (let ((default-directory "/ssh:me@remote:/home/me"))
      (shell "*shell<remote>*"))

Of course, if I start a shell normally with ~M-x shell~ in Emacs, then
type out the ssh command, ~/etc/profile~ does get sourced.

I learned about this by following the advice of nckx from IRC, placing
`set -x` in my .bash_profile. Following the former routine in Emacs I
see nothing, but with the explicit ssh call I do see all the commands
echo'd.

Is this a bug in Guix or Emacs? In other words, should the Bash
configuration files be extended to handle this case? I thought my system
might be broken, but nckx showed me that I could just `. /etc/profile`
and then guix describe started working again.

Best Regards,
Kyle