unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: Michael Albinus <michael.albinus@gmx.de>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org, dpittman@fb.com
Subject: Re: Environment variables for remote processes
Date: Tue, 18 Nov 2014 22:16:14 -0500	[thread overview]
Message-ID: <jwvzjbnga0r.fsf-monnier+emacsbugs@gnu.org> (raw)
In-Reply-To: <87h9xwdvxx.fsf@gmx.de> (Michael Albinus's message of "Tue, 18 Nov 2014 22:45:46 +0100")

> It's not so simple to decide what's appropriate settings. You do NOT
> want to propagate all your local environment variables to the remote
> process. Your local settings of DISPLAY or DBUS_SESSION_BUS_ADDRESS, to
> give prominent examples, would confuse your remote process heavily.

Check again: these will not be present in "the difference between
process-environment and (default-toplevel-value 'process-environment)".

>> In my naive mental model, Tramp's implementation of `process-file' will
>> run "env <ENVVARS> <COMMAND>" on the remote host, so we could use "-u"
>> to remove elements from the environment.
> No. With a sufficient amount of environment variables, you would exceed
> the maximum length of shell command lines. Tramp did it several times
> already, and I had to work-around that. Then "env ..." construct is
> applicable only, when you know in advance that there aren't too
> many settings.

But whichever other scheme we end up using, removing env-vars shouldn't
be any harder than adding some.

> Yes, but here we must speak about implementation. Tramp opens a
> connection (a shell) on the remote host, and sends all its internal
> commands via this shell. It sends also the command intended for
> process-file to that shell. It does *not* open a new (sub)process, which
> could inherit environment variables from Emacs, and alike. The
> environment is the same as when that shell has been started. That's why
> it is, at least as of today, "per connection".

I know that.  That's why I suggested to send "env <ENV> <CMD>".
Another option might be:

    (export VAR1=VAL1
     unset VAR2
     export VAR3=VAL3
     ...
     <CMD>)


-- Stefan



  reply	other threads:[~2014-11-19  3:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <030C5AEB-C009-4995-B153-6EECD44802C8@fb.com>
     [not found] ` <87y4rkhdt6.fsf@gmx.de>
     [not found]   ` <87y4rf2jtx.fsf@gmx.de>
     [not found]     ` <jwv4mu3rniq.fsf-monnier+emacsbugs@gnu.org>
     [not found]       ` <87r3x6eq8w.fsf@gmx.de>
     [not found]         ` <jwvh9y23640.fsf-monnier+emacsbugs@gnu.org>
     [not found]           ` <87mw7rtnxg.fsf@gmx.de>
     [not found]             ` <83a93rduz4.fsf@gnu.org>
     [not found]               ` <jwv4mtyua90.fsf-monnier+emacsbugs@gnu.org>
2014-11-17 18:48                 ` Environment variables for remote processes (was: bug#18940: 24.4; vc-hg does not disable pager, leading to hangs (at least with tramp)) Michael Albinus
2014-11-18  2:15                   ` Environment variables for remote processes Stefan Monnier
2014-11-18 19:14                     ` Michael Albinus
2014-11-18 21:24                       ` Stefan Monnier
2014-11-18 21:45                         ` Michael Albinus
2014-11-19  3:16                           ` Stefan Monnier [this message]
2014-11-19 15:12                             ` andres.ramirez
2014-11-23 10:22                               ` Michael Albinus
2014-11-19 18:18                             ` Michael Albinus
2014-11-19 18:31                               ` Michael Albinus
2014-11-20  4:29                               ` Stefan Monnier
2014-11-20 15:52                                 ` Michael Albinus
2014-11-21  2:46                                   ` Stefan Monnier
2014-11-22 11:43                                     ` Michael Albinus
2014-11-22 16:33                                       ` Stefan Monnier
2014-11-22 16:49                                         ` Michael Albinus

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://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvzjbnga0r.fsf-monnier+emacsbugs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=dpittman@fb.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=michael.albinus@gmx.de \
    /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/emacs.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).