From unknown Sun Sep 14 21:50:06 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#79413 <79413@debbugs.gnu.org> To: bug#79413 <79413@debbugs.gnu.org> Subject: Status: [PATCH] Fix path and environment in remote Python shell Reply-To: bug#79413 <79413@debbugs.gnu.org> Date: Mon, 15 Sep 2025 04:50:06 +0000 retitle 79413 [PATCH] Fix path and environment in remote Python shell reassign 79413 emacs submitter 79413 Liu Hui severity 79413 normal tag 79413 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 09 05:53:57 2025 Received: (at submit) by debbugs.gnu.org; 9 Sep 2025 09:53:57 +0000 Received: from localhost ([127.0.0.1]:57717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uvv2x-00087W-9d for submit@debbugs.gnu.org; Tue, 09 Sep 2025 05:53:57 -0400 Received: from lists.gnu.org ([2001:470:142::17]:58496) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uvv2n-00086g-2N for submit@debbugs.gnu.org; Tue, 09 Sep 2025 05:53:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uvv2c-0000Mg-W6 for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2025 05:53:37 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uvv2W-0003AX-O4 for bug-gnu-emacs@gnu.org; Tue, 09 Sep 2025 05:53:34 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-24cbd9d9f09so71491825ad.2 for ; Tue, 09 Sep 2025 02:53:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757411603; x=1758016403; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=E5hC0cC2r2A9exIKx3XjO8avXdu2EyV4g98//OOPRk8=; b=Rp5Hhj35MQ8m+HQzImfx2ByNKxrYx2tQHIsR+2xKwX0BqrAOLla3CBzwY6ZncsnOm9 7iTqapKlHZHNrhQkRmW3fbmc/1OU3gqdsK7z7+oQKKGRVQlPFIrB6/rxU7vzjpfb6ck5 5UBvDBYsVBDcpVHn3U7EBG8xWwb8MxpibCwiDGXenhyK7B4pJ8mLoW+DEyquilkovfL3 cW3sntnt7UHXGu6kztcJ97vepxOcyQBwX+L7FvgV43D3mO33oGsZ9DbbmfmyZRYz9jJX 12AnX1RPOgeDd9gC1CGQlcSZm5wDFRrP9NE5sDQFWxRDKdIdNHcpBz19mH3eTx47doP9 UEfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757411603; x=1758016403; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=E5hC0cC2r2A9exIKx3XjO8avXdu2EyV4g98//OOPRk8=; b=d/cZUDpqzZPlSdL5rm0pgmNtT86WILOlNazQ3aCEsyckcrQLBYz60oFVcaI8yrOwRZ VaxeT6BtdaT/PlKXtdtNTQ++ae+6pMEZGbm2l9HtseyVMNsluDkdMYaRQznvL4NgKIGq MbxvNv7XL+CON+78TdglgyuYKKMhVSsLtA2KY5pXxwHkoSopRk9DIgt2qmkO+mDnZw2q 19Xo+aNmoVOCN/WKYXGztIYLrjDGsRTggFni47C9g2DVscxkKz2BXUJucGfS90l0T35Y S1y7ugldY30Tau635p0+j2WsrShZkfcnneVD/zg0ziR9VnCI9vowQHmY8fdsRnwQZvDj yHfw== X-Gm-Message-State: AOJu0YxyeyUmiNwmP/uGDbyDaOitvizn487X23aP71ibkkf8ljBxXacp UnGKHF5lxzMDPByoSp+NTgsdx1fX7LwQl5XxYKlyiuZxKpZqAVDkirAp+IuMKibW X-Gm-Gg: ASbGncu9rXaFQoe/2R3RDdbDbFsr0PPXdwIq7kNfu8To+2TtJ2xfrQ65muLrf+sO71W mPF+bqw8GGrtNkmVcxpY15WV7my76SthQJv4aQO2yA2qJBhluWyzcFNMUPSvzewZ+RrBjDItZzL 1q1vrxe4J8HOfY1md6I2uJmq2dPpKx+3RIr0AIKpTeITwMAboJwFNTzxO2THEehs6YnQQ1DVAzV GOnc6WHMme8jb6ZERq+9xUcWJ8Wa/6hv3RFAivR8lALEW/3ttb4xzvX6SzIbMns8Ul07uZnxSBE 9UT75NTfqtqHEBSiT8w1cf6cFPv4GWP0oG3K8lvLHb7//nu4W4Zmofo0Q1hZH2i9C/D1luYfD0X KRTgXDo7lWfgqIRWtXUk= X-Google-Smtp-Source: AGHT+IGFutbvcdMLCfFzAIR7lBxost5++FcmWTVGW7ANWCQ79SXenF9dF1vbtJmY8zODSV4u3LCJYg== X-Received: by 2002:a17:902:c951:b0:256:9c51:d752 with SMTP id d9443c01a7336-2569c51dc30mr93682395ad.56.1757411602889; Tue, 09 Sep 2025 02:53:22 -0700 (PDT) Received: from localhost ([58.56.112.164]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-24cf4b1c906sm118163865ad.87.2025.09.09.02.53.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 02:53:22 -0700 (PDT) From: Liu Hui To: bug-gnu-emacs@gnu.org Subject: [PATCH] Fix path and environment in remote Python shell X-Debbugs-Cc: Date: Tue, 09 Sep 2025 17:53:11 +0800 Message-ID: <874itcne9k.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=liuhui1610@gmail.com; helo=mail-pl1-x635.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Tags: patch Options such as python-shell-exec-path and python-shell-process-environment may not be applied for remote Python shell: (1) create a python virtual environment on the remote host: Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2001:470:142:0:0:0:0:17 listed in] [list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (liuhui1610[at]gmail.com) 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (liuhui1610[at]gmail.com) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.2 (/) --=-=-= Content-Type: text/plain Tags: patch Options such as python-shell-exec-path and python-shell-process-environment may not be applied for remote Python shell: (1) create a python virtual environment on the remote host: $ python3 -m venv /tmp/test_venv (2) emacs -Q and then eval the following code: --8<---------------cut here---------------start------------->8--- (require 'python) (require 'tramp) (setq remote-dir "/ssh::~/") ;; use the remote virtual environment by setting ;; python-shell-exec-path, python-shell-remote-exec-path, or ;; python-shell-virtualenv-root (setq python-shell-exec-path (list "/tmp/test_venv/bin")) ;; set environment variables for remote Python process (setq python-shell-process-environment '("FOO=1")) ;; python-shell-process-environment is not applied remotely when ;; connection-local tramp-remote-process-environment is used (connection-local-set-profile-variables 'test `((tramp-remote-process-environment . ,(append '("BAR=bar") tramp-remote-process-environment)))) (connection-local-set-profiles `(:application tramp :machine ,(file-remote-p remote-dir 'host)) 'test) (find-file remote-dir) --8<---------------cut here---------------end--------------->8--- (3) M-x run-python (4) type 'import sys; sys.executable' in the remote python shell The expected output is '/tmp/test_venv/bin/python', but the actual output is '/bin/python'. In emacs 30 and earlier version, the result is correct, with a side effect that the remote path is changed globally, i.e. (exec-path) in other remote buffers also contains "/tmp/test_venv/bin". (5) type 'import os; os.environ.get("FOO")' in the python shell The result should be '1', but there is no output. This patch fixes python-shell--tramp-with-environment and adds tests. The python-tests-remote-path-1 test needs a real ssh remote connection like REMOTE_TEMPORARY_FILE_DIRECTORY=/ssh:remote:/tmp/. There is still a corner case: if python-shell-process-environment contains an environment variable that already exists in the default process-environment, the environment variable is not applied by tramp for the remote Python shell. For example, the following test fails: FOO=1 REMOTE_TEMPORARY_FILE_DIRECTORY=/ssh:remote:/tmp/ \ make python-tests SELECTOR='"python-tests-remote-env"' where FOO=1 is in both python-shell-process-environment and default process-environment. This issue may need to be addressed in tramp. --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Fix-path-and-environment-in-remote-Python-shell.patch >From aa42cfba252e6fc2c451c7404c9b409250dcd09c Mon Sep 17 00:00:00 2001 From: Liu Hui Date: Tue, 9 Sep 2025 17:37:50 +0800 Subject: [PATCH] Fix path and environment in remote Python shell * lisp/progmodes/python.el (python-shell-tramp-refresh-remote-path) (python-shell-tramp-refresh-process-environment): Obsolete. (python-shell--tramp-with-environment): Fix remote exec-path and process-environment. * test/lisp/progmodes/python-tests.el (python-tests-remote-enabled, python-tests-remote-environment-1) (python-tests-remote-environment-2, python-tests-remote-path-1): Add new function and tests. (python--tests-process-env-eql, python-shell-with-environment-2): Update test. --- lisp/progmodes/python.el | 46 ++++++++------- test/lisp/progmodes/python-tests.el | 92 ++++++++++++++++++++++++++--- 2 files changed, 110 insertions(+), 28 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index e5cc3b0078b..c9c751dbf24 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -3062,6 +3062,7 @@ python-shell-calculate-exec-path (defun python-shell-tramp-refresh-remote-path (vec paths) "Update VEC's remote-path giving PATHS priority." + (declare (obsolete nil "31.1")) ; Not used. (cl-assert (featurep 'tramp)) (declare-function tramp-set-remote-path "tramp-sh") (declare-function tramp-set-connection-property "tramp-cache") @@ -3076,6 +3077,7 @@ python-shell-tramp-refresh-remote-path (defun python-shell-tramp-refresh-process-environment (vec env) "Update VEC's process environment with ENV." + (declare (obsolete nil "31.1")) ; Not used. (cl-assert (featurep 'tramp)) (defvar tramp-end-of-heredoc) (defvar tramp-end-of-output) @@ -3139,28 +3141,30 @@ python-shell--with-environment (funcall bodyfun))))) (defun python-shell--tramp-with-environment (vec extraenv bodyfun) - (defvar tramp-remote-process-environment) (declare-function tramp-get-connection-process "tramp" (vec)) - (let* ((tramp-remote-process-environment - (append extraenv tramp-remote-process-environment))) - (when (tramp-get-connection-process vec) - ;; For already existing connections, the new exec path must - ;; be re-set, otherwise it won't take effect. One example - ;; of such case is when remote dir-locals are read and - ;; *then* subprocesses are triggered within the same - ;; connection. - (python-shell-tramp-refresh-remote-path - ;; FIXME: This is still Python-specific. - vec (python-shell-calculate-exec-path)) - ;; The `tramp-remote-process-environment' variable is only - ;; effective when the started process is an interactive - ;; shell, otherwise (like in the case of processes started - ;; with `process-file') the environment is not changed. - ;; This makes environment modifications effective - ;; unconditionally. - (python-shell-tramp-refresh-process-environment - vec tramp-remote-process-environment)) - (funcall bodyfun))) + (declare-function tramp-get-remote-path "tramp-sh" (vec)) + (eval-when-compile (require 'tramp-cache)) + ;; FIXME: If extraenv is in the global default `process-environment', + ;; it will not be set for the remote Python process, because TRAMP + ;; only applies environment variables not present in the global + ;; default value of `process-environment'. + (let ((process-environment + (append (cl-loop for x in extraenv + unless (member x process-environment) + collect x) + process-environment))) + ;; FIXME: This is still Python-specific. + (if-let* ((path (python-shell-calculate-exec-path)) + (key (tramp-get-connection-process vec))) + ;; Do not override global remote path. + (with-tramp-saved-connection-property key "remote-path" + (let ((r-path (tramp-get-remote-path vec))) + (if r-path + (python-shell--add-to-path-with-priority r-path path) + (setq r-path path)) + (tramp-set-connection-property key "remote-path" r-path)) + (funcall bodyfun)) + (funcall bodyfun)))) (defvar python-shell--prompt-calculated-input-regexp nil "Calculated input prompt regexp for inferior python shell. diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index b9130da495d..698665edcc2 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el @@ -23,6 +23,7 @@ (require 'cl-extra) (require 'ert) +(require 'tramp) (require 'ert-x) (require 'python) @@ -31,6 +32,18 @@ (require 'hideshow) (require 'tramp-sh) +(defun python-tests-remote-enabled (&optional method) + "Whether remote file access is enabled via METHOD." + (ignore-errors + (and + (file-remote-p ert-remote-temporary-file-directory) + (file-directory-p ert-remote-temporary-file-directory) + (file-writable-p ert-remote-temporary-file-directory) + (if method + (with-parsed-tramp-file-name + ert-remote-temporary-file-directory v + (equal method v-method)) + t)))) (defmacro python-tests-with-temp-buffer (contents &rest body) "Create a `python-mode' enabled temp buffer with CONTENTS. @@ -4095,10 +4108,6 @@ python--tests-process-env-canonical (setenv x nil))) process-environment)) -(defun python--tests-process-env-eql (pe1 pe2) - (equal (python--tests-process-env-canonical pe1) - (python--tests-process-env-canonical pe2))) - (ert-deftest python-shell-with-environment-2 () "Test environment with remote `default-directory'." (let* ((default-directory "/ssh::/example/dir/") @@ -4116,9 +4125,7 @@ python-shell-with-environment-2 (append (python-shell--calculate-process-environment) tramp-remote-process-environment))) (should (not (getenv "PYTHONHOME"))) - (should (string= (getenv "VIRTUAL_ENV") "/env")) - (should (python--tests-process-env-eql - tramp-remote-process-environment process-environment)))) + (should (string= (getenv "VIRTUAL_ENV") "/env")))) (should (equal tramp-remote-process-environment original-process-environment)))) @@ -4139,6 +4146,77 @@ python-shell-with-environment-3 process-environment)))))) (should (equal single-call nested-call)))) +(ert-deftest python-tests-remote-environment-1 () + "Test `python-shell-process-environment' in remote environment." + (skip-unless (python-tests-remote-enabled)) + (let ((default-directory ert-remote-temporary-file-directory) + (python-shell-process-environment '("FOO=1")) + (tramp-allow-unsafe-temporary-files t)) + (python-tests-with-temp-buffer-with-shell-interpreter + nil + "" + (should (equal (python-shell-send-string-no-output + "import os; os.environ.get('FOO')") + "'1'"))))) + +(ert-deftest python-tests-remote-environment-2 () + "Test `python-shell-process-environment' and +`tramp-remote-process-environment' in remote environment." + (skip-unless (python-tests-remote-enabled)) + (let ((default-directory ert-remote-temporary-file-directory) + (python-shell-process-environment '("FOO=1")) + (tramp-allow-unsafe-temporary-files t) + (clpa connection-local-profile-alist) + (clca connection-local-criteria-alist)) + (unwind-protect + (progn + (connection-local-set-profile-variables + 'test + `((tramp-remote-process-environment + . ,(append + '("BAR=1") + tramp-remote-process-environment)))) + (connection-local-set-profiles + `(:application tramp :machine ,(file-remote-p default-directory 'host)) + 'test) + (python-tests-with-temp-buffer-with-shell-interpreter + nil + "" + (should (equal (python-shell-send-string-no-output + "import os; os.environ.get('BAR')") + "'1'")) + (should (equal (python-shell-send-string-no-output + "os.environ.get('FOO')") + "'1'")))) + ;; Cleanup. + (custom-set-variables + `(connection-local-profile-alist ',clpa now) + `(connection-local-criteria-alist ',clca now))))) + +(ert-deftest python-tests-remote-path-1 () + "Test remote path for python shell." + (skip-unless (python-tests-remote-enabled "ssh")) + (let* ((default-directory ert-remote-temporary-file-directory) + (tramp-remote-path (append '(tramp-own-remote-path) tramp-remote-path)) + (tramp-allow-unsafe-temporary-files t) + (python-abs-path (executable-find python-shell-interpreter t))) + (skip-unless python-abs-path) + (let* ((temporary-file-directory default-directory) + (tmp-dir (make-temp-file "python-test" t)) + (python-shell-interpreter (file-name-nondirectory python-abs-path)) + (link (expand-file-name python-shell-interpreter tmp-dir)) + (python-shell-exec-path (list (file-local-name tmp-dir)))) + (unwind-protect + (progn + (make-symbolic-link + (concat (file-remote-p default-directory) python-abs-path) link) + (python-tests-with-temp-buffer-with-shell + "" + (should (equal (format "'%s'" (file-local-name link)) + (python-shell-send-string-no-output + "import sys; sys.executable"))))) + (delete-directory tmp-dir t))))) + (ert-deftest python-shell-make-comint-1 () "Check comint creation for global shell buffer." ;; The interpreter can get killed too quickly to allow it to clean -- 2.25.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 09 09:01:32 2025 Received: (at 79413) by debbugs.gnu.org; 9 Sep 2025 13:01:32 +0000 Received: from localhost ([127.0.0.1]:58525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uvxyV-0005hw-MD for submit@debbugs.gnu.org; Tue, 09 Sep 2025 09:01:31 -0400 Received: from mout.gmx.net ([212.227.17.21]:46917) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uvxyQ-0005h9-7F for 79413@debbugs.gnu.org; Tue, 09 Sep 2025 09:01:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1757422878; x=1758027678; i=michael.albinus@gmx.de; bh=Y1CspV+bC/WOkQecFWOlK3Fqx6BBCvr5N1DHj1pwXeE=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=JlRg15Kc8z88lTl2WKrwRp3R2ZZ6vpBdRJwyarHIfVdUQfIskykbio4uMbmfDjVX Wfr+PcBDPYuDsGus7+HQrWadalP/B6zH3cAdH1ht6CN4AacgMNqoK3RoWiqB1/dSs IXPhsCmpPLoaB0ktlnThyrtlA0LHhX6JCo/SiVbRjEn7w+vDMICoJz6m0pL/cmo4X 6IUUvssGssIcl3pHPpVHfsEykfXhyo4oGhebhECMO2X958VhA46+40t1qQ6Kwekxj TqnoyXyCkVioWn42mg7wG6TBjqE9uFndEuhzZXQfCb1n//ud4P/p2mEiqMfx1cle6 pARauLC0ALww5DJDqg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.37.61]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MPGRp-1umQnT3P8X-00LzZq; Tue, 09 Sep 2025 15:01:18 +0200 From: Michael Albinus To: Liu Hui Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <874itcne9k.fsf@gmail.com> References: <874itcne9k.fsf@gmail.com> Date: Tue, 09 Sep 2025 15:01:18 +0200 Message-ID: <87wm67zso1.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:YPbDiM92XemOV+EAdMUdAP5btGGmTHYFlITIrXs3Jk53U7AeubU kRn8XLsN6eaFDO+xpSbJP+4cqy33EPv/51Se5PbFYy3s3ckTLgcOrBut1XQttCuu3ZO1s8c +SSIOA5n4K93LQYCYpJPLQdTqsewyXP81YU6NofxNtTOZYj+Ajcuk18ZNtrd0fJ2tfKJ4zi rHOO+AExDKV2Tyir68npA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:EH+ZpOBmdY0=;7eRWesyNV2HL+y16UmemTDb2Z0h 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 yYA4DyB/Y547HnmuT+SbYaB6nK7ZSpmGa+kfc X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui writes: Hi, > There is still a corner case: if python-shell-process-environment > contains an environment variable that already exists in the default > process-environment, the environment variable is not applied by tramp > for the remote Python shell. For example, the following test fails: > > FOO=1 REMOTE_TEMPORARY_FILE_DIRECTORY=/ssh:remote:/tmp/ \ > make python-tests SELECTOR='"python-tests-remote-env"' > > where FOO=1 is in both python-shell-process-environment and default > process-environment. This issue may need to be addressed in tramp. This is a Tramp feature. See this comment in tramp-handle-make-process, tramp-sh-handle-make-process and tramp-sh-handle-process-file: --8<---------------cut here---------------start------------->8--- ;; We use as environment the difference to toplevel ;; `process-environment'. --8<---------------cut here---------------end--------------->8--- The reason is, that often a local value of $FOO might be wrong on the remote host. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 09 23:46:06 2025 Received: (at 79413) by debbugs.gnu.org; 10 Sep 2025 03:46:06 +0000 Received: from localhost ([127.0.0.1]:35078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uwBmX-0001aN-W1 for submit@debbugs.gnu.org; Tue, 09 Sep 2025 23:46:06 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:60604) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uwBmU-0001ZS-P6 for 79413@debbugs.gnu.org; Tue, 09 Sep 2025 23:46:03 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-25634c5ebdeso31370465ad.0 for <79413@debbugs.gnu.org>; Tue, 09 Sep 2025 20:46:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757475956; x=1758080756; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=FCk0v0Uz7VNojVgAd+WigMilMprqVzaP/eWg2OxMqLo=; b=Mp7RyjlE+CWpgVc/H0mH1yblR22IC1pNIkUwYvvCrLUpgwzkBvuI6U3A2dR4i7oecG l0FUauzNhsvjZELUH1ooMxe+oL4bkGsYgjeee4a76BnzNHUQM2Z2O524OD6Ys8uyGFP1 ALMcyEOQBHUM0qo/406u1RniRCCPlyJsBF93zcVPJFv8zy5QH2JdAyFj2EbarFPYhgry 5clZM7N4kk6/EOFmCQHjTORLDgcei6i6glDk0ZTzwVEwAwnaPEKZDy2EpozmCJXvYt5L LYjFcT65ozm//BukX0U2DZUSuRof4W8JYbgvkMhV3NUPJf1A/T5m0cCo19QQvy9PQSlt pM+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757475956; x=1758080756; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FCk0v0Uz7VNojVgAd+WigMilMprqVzaP/eWg2OxMqLo=; b=BdOGUHxsGkIaVzoRQj3q2Xhg8zxVtLXvLS1pZXNB2YP8yjbPlbdQwMjCDV6nHnzKGh SUbw3kAtfet21u8QpXDSR3oRyE4hQEUT08KuWu6OIA5Tya3sH6EqDPm7wPmULwehdvBB t712hmvtaRGbictvYMuD8gf0wtMm6jRSCGcZDUpaHo/23oThFfkrD9IHu0lF/X7jJz0z cHecj4QNuOCsGTYKCWA0yZKyjDq8ytk5Vq2hIzvYp0iXF4o7JY9pPuHSFqiAwz5yn2WQ HdfnXbnIJuWJ+PpDEIv83dnwtSYSMv/46gVPkw6vVRZTxcwoQBj0ph2wDa/LVtQC0Fsd Etgg== X-Gm-Message-State: AOJu0YxZU0JgriCFc8SBYmZylyK/Jlkdlaq9E1/Q9dWQieLtuMF1to53 VuSDwapPoOFocOfz7AoFN2AMZwQ+VrnQ1cbL5Z6VpmPPn/97JBU1ndAWSbqL3W0G X-Gm-Gg: ASbGnct2UEE2ZEQmLHVFEak8XpDnFwvMAWPE/La+GQvZwYwilmWUgEMoq/eS/n49qmq oVIMcW2jKzuXKOJnnAKC6WUR1ryedX3ttp/DNTGp/dR1/PYfRBK07U0xhVtpLYgNqV4JCKYVw7y 6XhuBnS4sLTdKvdZhXch7RWPyq5zbgLHgtG1OwNZyqFTeflK2wXa+whbAz19ccPG7BA3AEvjtzK a2lx2497x9KDTwgJOJJhE4u0qHHTvgBCjop6u1De2nNzvvShXB7qZX14mXhzzQR5+jDgOYzXmfn yPA9wZoeilKa0+7bxUWLazR6X4LrEgFX7SMPvJ3ihKtPCUiEfrPtgMOXrqhOG+f3jn1WCygxr3X 0wWzO+xvDJ4d8Et8u6Ew= X-Google-Smtp-Source: AGHT+IGn7ECKLbyHy+RmfmKJcbLkskmbTt9kDTSBR+v/9dWL0p/skHx08/TNHmznfZmzhJiZKkWflA== X-Received: by 2002:a17:903:22c8:b0:24b:270e:56c2 with SMTP id d9443c01a7336-25170f37acdmr176278705ad.37.1757475955769; Tue, 09 Sep 2025 20:45:55 -0700 (PDT) Received: from localhost ([58.56.112.164]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-25a27bed684sm12375195ad.37.2025.09.09.20.45.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Sep 2025 20:45:55 -0700 (PDT) From: Liu Hui To: Michael Albinus Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87wm67zso1.fsf@gmx.de> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> Date: Wed, 10 Sep 2025 11:45:45 +0800 Message-ID: <87jz27as2e.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Michael Albinus writes: > Liu Hui writes: > > Hi, > >> There is still a corner case: if python-shell-process-environment >> contains an environment variable that already exists in the default >> process-environment, the environment variable is not applied by tramp >> for the remote Python shell. For example, the following test fails: >> >> FOO=1 REMOTE_TEMPORARY_FILE_DIRECTORY=/ssh:remote:/tmp/ \ >> make python-tests SELECTOR='"python-tests-remote-env"' >> >> where FOO=1 is in both python-shell-process-environment and default >> process-environment. This issue may need to be addressed in tramp. > > This is a Tramp feature. See this comment in tramp-handle-make-process, > tramp-sh-handle-make-process and tramp-sh-handle-process-file: > > --8<---------------cut here---------------start------------->8--- > ;; We use as environment the difference to toplevel > ;; `process-environment'. > --8<---------------cut here---------------end--------------->8--- > > The reason is, that often a local value of $FOO might be wrong on the > remote host. Thanks for the explanation. Then let-binding process-environment is not a reliable way if we want to ensure some environment variables, python-shell-process-environment in this case, are applied to the remote process. Could tramp add an option that disables this feature temporarily or ensures specific environment variables are always applied in tramp-sh-handle-make-process and tramp-sh-handle-process-file? Otherwise, we have to continue using python-shell-tramp-refresh-process-environment, which I think should be moved from python.el to tramp? From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 10 04:47:02 2025 Received: (at 79413) by debbugs.gnu.org; 10 Sep 2025 08:47:02 +0000 Received: from localhost ([127.0.0.1]:35913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uwGTl-0000Zn-Nr for submit@debbugs.gnu.org; Wed, 10 Sep 2025 04:47:02 -0400 Received: from mout.gmx.net ([212.227.15.18]:34789) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uwGTf-0000ZK-HX for 79413@debbugs.gnu.org; Wed, 10 Sep 2025 04:46:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1757494008; x=1758098808; i=michael.albinus@gmx.de; bh=Cgr8mlNV2WgqwYfuKZK3nUUq4nXb6qjHbzSnJIxp53Q=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=thjKrkuuEhQ0vVkNC4Lbta2cJ3p/MjXxn/23UK/NicG1ocDuhO04c2karqx3TPtO S1ZnAnkr4+nCz6byEJYZzXHO3JtsULnLdZMYOCe70hZAsNfwall65ymhp4dBc91PD PUoB+Nwb+x9e61+vt/e+AmEsYkW3X/M+9kc5wwdU745fr6v89BpcQFu5K1l1w5VWV xYU2Qq4lAhhJDLe7sXuO1IUdVdgNXcvIeW+X5RJTJiRAx7BMkHXTA169yaWQtGHCv JRG1arE5cF8vAlVzpk4idAhrULaChFPZ6oOFUAJFn+BgYWXdhoOC9mR/1CiOauMvk hX648DjCSOv22mH8vw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.37.61]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MkYc0-1uZoPu25Ve-00cSn7; Wed, 10 Sep 2025 10:46:48 +0200 From: Michael Albinus To: Liu Hui Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87jz27as2e.fsf@gmail.com> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> <87jz27as2e.fsf@gmail.com> Date: Wed, 10 Sep 2025 10:46:48 +0200 Message-ID: <87zfb2g0ef.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:0o8twTl1OXQ8OuT8MECOVIb0875plFMA1iZvGFGGhYQXmMf7gy1 kVWd5U9GaQNdpMMVCCBoondBPz/7MpQQG6DigqQuO8eqiuyVo8+bXqr4EHcBX7iswvE8jRQ X4VHQPC8tPgosVqyZe7IheAhhChZVnrr+3aPoDeq0L+RriTWeJpKkPAif9Hm6bRJGAFg0Tn R+TtOi9skNY78nTAtg20g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:GVOy7655YoI=;QtPg/d/kme97InA1FzP1dqxfH5D 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 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Liu Hui writes: Hi, >> This is a Tramp feature. See this comment in tramp-handle-make-process, >> tramp-sh-handle-make-process and tramp-sh-handle-process-file: >> >> --8<---------------cut here---------------start------------->8--- >> ;; We use as environment the difference to toplevel >> ;; `process-environment'. >> --8<---------------cut here---------------end--------------->8--- >> >> The reason is, that often a local value of $FOO might be wrong on the >> remote host. > > Thanks for the explanation. Then let-binding process-environment is > not a reliable way if we want to ensure some environment variables, > python-shell-process-environment in this case, are applied to the > remote process. > > Could tramp add an option that disables this feature temporarily or > ensures specific environment variables are always applied in > tramp-sh-handle-make-process and tramp-sh-handle-process-file? You would run into the same problem why this feature exist. You don't want to expand local environment variables like DISPLAY, SSH_* or whatever to the remote host. You could let-bind and modify tramp-remote-process-environment for tramp-sh-handle-make-process. Note, that this won't work for direct async processes, which use tramp-handle-make-process internally. And it won't work for tramp-sh-handle-process-file. Alternatively, you could call "env VAR1=VAL1 VAR2=VAL2 ... program ..." instead of "program ...". Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 11 00:47:35 2025 Received: (at 79413) by debbugs.gnu.org; 11 Sep 2025 04:47:35 +0000 Received: from localhost ([127.0.0.1]:41589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uwZDa-0000GL-Ot for submit@debbugs.gnu.org; Thu, 11 Sep 2025 00:47:35 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]:44347) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uwZDX-0000Fg-HY for 79413@debbugs.gnu.org; Thu, 11 Sep 2025 00:47:32 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-244580523a0so2536205ad.1 for <79413@debbugs.gnu.org>; Wed, 10 Sep 2025 21:47:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757566045; x=1758170845; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=kNYVjB/wvwDyW2fIJZQJxV8Y9+nr+7PXz/CDjfXayfg=; b=GvLO8ko/AszZAb6d06FZOpzUhr/yvCZRNnu9eNBsk2BcoHVwwjROBWVkju84Xaeu+s WVNQGW6WnziWDD+ZawoDmLx0Zn42iiSkMU6XM5UHZOna9H4P3YbuIHIIIXu5SdGNWyuJ uqvvkOeRWIjZSawgoxqtf/dHyNmZo2Z+wNobsm5Hf9kbWo0ZWTXLQm/3Fr8yvJ4/VDA/ 5lC4irymgisNC0Vl/tNMSECVEF805SU8O7PRMwqnZ7kAmHt4bMdUhuIX0re2NkLi/7X8 MMkOGunu3YZ0W7pv4u2m9Dp/rL5Nl9KmOVU81YKkLOl51aaVJXfjARni9aPHIoc3+qMt q6sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757566045; x=1758170845; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kNYVjB/wvwDyW2fIJZQJxV8Y9+nr+7PXz/CDjfXayfg=; b=IwK4W/S8lP3OxeFYL3salIlDNxR8nZ222psa9nSU7N4otuGvrdvyIWBHfaSNeIaRdo PBz7Zxj9fXSWbm+kDCqBj2k5dbplMuaqXnMnU3zYuYoOmaIJ9lc076EpyyyNYUfVwH7Y nIEHJBCsZwAru2+75p95L2rdT2YxlOpxQVDNC93+uU27RsD2qu4iBP5PNTaAHVUwlh9c IXjjKG1CpeOaInBh4aCr7/EIknaiE+OpBZFZ8JtV0DaNBDTmeoEvZUGSiOr0lEEpLHle zjvoE8uypere2ixGSA+oGw6nCJQIF+OuSisgvq0THhq6I9IGbo1CUGIk2MEbXVxVik/F /6oQ== X-Gm-Message-State: AOJu0YxqEYBYfK4cX9uPoOuR+H/YYSIn2Z8uqSbHBCEwykFpSihQNKy9 V8/Ub60xmQe348qlNUC24eSeUtREoM6JtCW1i9s0YpftG8rG31m0bfutcCWdSo5b X-Gm-Gg: ASbGncuchQUEtYrpBNq6SuA5xLhxOyStaYFHd3V+JO0AHzUJgOrc05gMkgopYR/7BMp 3o4avQ7xcWo3p80bpJXVID4PxrAyHA+INsL4XI62ATDfu3cVZkFGjZOMMYEjTszUfonCiN/c/x5 MWVFLaxmXZ95tOlK1QYWm4yqK00OgN4n8zzg4LhHM6NctP8XdpabqQZqyjsEdyfG7LFt+4ZZ1Cm VfKujN5mx/z3xyLh5lsaouL5224/5piaBvtQf9ArPToPYgqyc0CruXxLSo5PJMjtxMWcxyV+cV3 j8DJc73FaUAT+rsxpAdkdPkKISaA2iwnY2JF3NO/ydybpHA5GABjmen4xTujF368Hcr3xQGkWcb qTU3LmERLVGe6sZYaq5SV1ggee+5WzQsZ/A4S09v7 X-Google-Smtp-Source: AGHT+IF7/kpmAeVY/HmPiBMOUGGwL4iDa3pb/FPYoEcZONGBFaHdJTz7kL/Ku/afH8cfcpvDFb+krQ== X-Received: by 2002:a17:903:2450:b0:235:e8da:8d1 with SMTP id d9443c01a7336-2516ce602c7mr188535135ad.8.1757566045145; Wed, 10 Sep 2025 21:47:25 -0700 (PDT) Received: from localhost ([58.56.112.164]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-25c3ab43469sm4671545ad.97.2025.09.10.21.47.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Sep 2025 21:47:24 -0700 (PDT) From: Liu Hui To: Michael Albinus Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87zfb2g0ef.fsf@gmx.de> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> <87jz27as2e.fsf@gmail.com> <87zfb2g0ef.fsf@gmx.de> Date: Thu, 11 Sep 2025 12:47:13 +0800 Message-ID: <87v7lpbnou.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Michael Albinus writes: > Liu Hui writes: > > Hi, > >>> This is a Tramp feature. See this comment in tramp-handle-make-process, >>> tramp-sh-handle-make-process and tramp-sh-handle-process-file: >>> >>> --8<---------------cut here---------------start------------->8--- >>> ;; We use as environment the difference to toplevel >>> ;; `process-environment'. >>> --8<---------------cut here---------------end--------------->8--- >>> >>> The reason is, that often a local value of $FOO might be wrong on the >>> remote host. >> >> Thanks for the explanation. Then let-binding process-environment is >> not a reliable way if we want to ensure some environment variables, >> python-shell-process-environment in this case, are applied to the >> remote process. >> >> Could tramp add an option that disables this feature temporarily or >> ensures specific environment variables are always applied in >> tramp-sh-handle-make-process and tramp-sh-handle-process-file? > > You would run into the same problem why this feature exist. You don't > want to expand local environment variables like DISPLAY, SSH_* or > whatever to the remote host. I agree local environment variables should not be applied on the remote host. I meant to propagate specific environment variables (e.g. "PYTHONPATH=/opt/mypackage") in python-shell-process-environment. The problem is that "PYTHONPATH=/opt/mypackage" is skipped for remote processes if it happens to exist in the default process environment (e.g. it is added in local ~/.profile). How about the following change? It doesn't change the default behavior and allows the caller to override tramp-local-environment-variable-p when necessary. diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 9d13cdc3a2d..0a454fed69b 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -3052,8 +3052,7 @@ tramp-sh-handle-make-process ;; `process-environment'. env uenv (env (dolist (elt (cons prompt process-environment) env) - (or (member - elt (default-toplevel-value 'process-environment)) + (or (tramp-local-environment-variable-p elt) (if (string-search "=" elt) (setq env (append env `(,elt))) (setq uenv (cons elt uenv)))))) @@ -3288,7 +3287,7 @@ tramp-sh-handle-process-file (cons program args) " ")) ;; We use as environment the difference to toplevel `process-environment'. (dolist (elt process-environment) - (or (member elt (default-toplevel-value 'process-environment)) + (or (tramp-local-environment-variable-p elt) (if (string-search "=" elt) (setq env (append env `(,elt))) (setq uenv (cons elt uenv))))) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 9bf1b4ae6c3..3ce25a5c663 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -5342,6 +5342,12 @@ tramp-direct-async-process-p (or (not (stringp buffer)) (not (tramp-tramp-file-p buffer))) (or (not (stringp stderr)) (not (tramp-tramp-file-p stderr)))))) +(defun tramp-local-environment-variable-p (arg) + "Return non-nil if ARG exists in default `process-environment'. +Tramp does not propagate a local environment variable in remote +processes." + (member arg (default-toplevel-value 'process-environment))) + (defun tramp-handle-make-process (&rest args) "An alternative `make-process' implementation for Tramp files." (tramp-skeleton-make-process args nil nil @@ -5360,9 +5366,7 @@ tramp-handle-make-process (env (dolist (elt process-environment env) (when (and (string-search "=" elt) - (not - (member - elt (default-toplevel-value 'process-environment)))) + (not (tramp-local-environment-variable-p elt))) (setq env (cons elt env))))) ;; Add remote path if exists. (env (if-let* ((sh-file-name-handler-p) > You could let-bind and modify tramp-remote-process-environment for > tramp-sh-handle-make-process. Note, that this won't work for direct > async processes, which use tramp-handle-make-process internally. And it > won't work for tramp-sh-handle-process-file. > > Alternatively, you could call "env VAR1=VAL1 VAR2=VAL2 ... program ..." > instead of "program ...". Thanks for the suggestion. The problem is that python-shell-with-environment is just a wrapper that temporarily sets path and environment: (defmacro python-shell-with-environment (&rest body) ... `(python-shell--with-environment (python-shell--calculate-process-environment) (lambda () ,@body))) so we don't know what functions and programs users call. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 11 10:12:00 2025 Received: (at 79413) by debbugs.gnu.org; 11 Sep 2025 14:12:00 +0000 Received: from localhost ([127.0.0.1]:44207 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uwi1o-0006eo-7b for submit@debbugs.gnu.org; Thu, 11 Sep 2025 10:12:00 -0400 Received: from mout.gmx.net ([212.227.15.19]:36261) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uwi1k-0006eT-6O for 79413@debbugs.gnu.org; Thu, 11 Sep 2025 10:11:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1757599909; x=1758204709; i=michael.albinus@gmx.de; bh=EVHBuracvkvYd1sWXWf+WemT2tCZvD9unD0MaBaEgpY=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=LUHLQvGA3xrBuf+t2jrLb077UAZnYaVATfhM/0zu0bJ4NAI+mMYUY9QRa51p7pLI erzYunjq2fs+dO49+/cQO2O+qeMLUECo41FZZh4Wi2aFl0GT9WSeMPYs9J2WGMoZJ KDwTYUFBiU4IfYQ5DpoVn2hmSdSTMS5IdEPjqlBA9m4tU0z8m4iM25nFFlLReSUoT xYY9Fi6G54Lv52f03q2cNFYAIxs6a9UWpxdb8IM36S5uLUT3LwUHg3COseYPYQMqD klbpiWDu0Amo4d+PuFdwPqLYHwM7yA5ui5upMThdoti4amUqCwYYINGdPGPiMqoIX flvq0051ln1LPS/+Kg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.37.61]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mzyya-1uAe391WI2-014zJw; Thu, 11 Sep 2025 16:11:49 +0200 From: Michael Albinus To: Liu Hui Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87v7lpbnou.fsf@gmail.com> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> <87jz27as2e.fsf@gmail.com> <87zfb2g0ef.fsf@gmx.de> <87v7lpbnou.fsf@gmail.com> Date: Thu, 11 Sep 2025 16:11:48 +0200 Message-ID: <87348t9izf.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:i/ZCqZmOLB/xomP4rTx6vW96jCP71bm5kjP5oe1ixQky7A6uYgE rdYgxF0IFwlyPpLcVZtPJZt8F/WWYuXJV3NJ/VQzhjZ0ZVJCZLzj+5GEHlHcvqxBWxLTN37 bcphbP5nv+S7qolrcdv74iX5usggQHlc4olhYpXJ3ySzaDehmjsh3OVPFdsMV5b0SV49cpK wRXt6kHrg7wTA9y82hAyg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:y/S/gzjyHN4=;IuhGSXUiIZbMnDq3AXucb4uiTo9 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 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Liu Hui writes: Hi, > How about the following change? It doesn't change the default behavior > and allows the caller to override tramp-local-environment-variable-p > when necessary. Looks OK. Pls provide a complete patch, including commit messages. tramp-androidsu-handle-make-process in tramp-android.el must be changed as well. Perhaps add also a comment on top of tramp-local-environment-variable-p, explaining the reason for this function. I'm not decided yet whether we shall document it in the Tramp manual. If we do, we would need a more general approach I guess. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 12 05:58:38 2025 Received: (at 79413) by debbugs.gnu.org; 12 Sep 2025 09:58:38 +0000 Received: from localhost ([127.0.0.1]:48690 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ux0Y9-0006Pg-Gl for submit@debbugs.gnu.org; Fri, 12 Sep 2025 05:58:38 -0400 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]:42149) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ux0Y5-0006PH-ES for 79413@debbugs.gnu.org; Fri, 12 Sep 2025 05:58:34 -0400 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-7725147ec88so1068395b3a.0 for <79413@debbugs.gnu.org>; Fri, 12 Sep 2025 02:58:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757671107; x=1758275907; darn=debbugs.gnu.org; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=c4QP4CN5Yy7h8CBwOBK3ip6dgczAVDXE5qC/Sdw0RP8=; b=KuabIy/SWdvBKWLpOGFpLoA2ZVBkBzytNHvZZsswsgDIHv3RF4HrSBvEd11w+VZ4lV gNZmoF4FPHW4mhI2EZLX6yDCDHY0Qs6MfrVNyYITZhHZUNfW0rIuWG5ICqpNtRxZFI5C 8TeoFlA/MmRdzL/Y/3KyDpYdRPMIRdsQUOnSCfs92TAKEAkxHExHiNspv7dKeUwqDKsl r1dLEf9Fe3/hRYSQLI86NSEkXLuRN9DsBz4V6UAXv4+GqyPKU8yfeiGnKkpMT/faElcA RHJeme4qluUMkG4cl7avE0DDhVZzWdCJH7XNQGS3QZEoM7+IrT2O4XvaBwgVKSsGQphx ZBXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757671107; x=1758275907; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=c4QP4CN5Yy7h8CBwOBK3ip6dgczAVDXE5qC/Sdw0RP8=; b=xRkurVrGCIEy15PRj6stNpOaGiqI0pYjOpSxALE0jTuUehWKVb4AnDifrtsV/wi1aW 70qrklZ6VtHh+6hOP/bacJ7+rwFyDs5MNhLmV/Oe/AmeAIy+vYoFFHutCWfCCkZ5MzWw 09Vlrvw0QeKD4/ozkrB4YY7NDTd9aZe8UGZrTaelXIsuiXeRSe7in1mL9OjA2EqCJu+0 0hydt9KH57HGF8uBry2o+M4gTgOktAxmOtZzy4nuq1i/Gq7ZhplQJwF6mtiF8W4OtrNI sfQrHPqqhbOyE+3VS4vdf0zalc4ZjXfwICN304IfxNr/53nt3sGyvzG1V7KaRSZ7KYkU ilsA== X-Gm-Message-State: AOJu0Ywb+0PwMJjv0NJ+1USVN5i8Odc2urs5lPr1Ygd/O1gA3fdjLf5Y M1Bb5MTYq+V0X3Joh0OivVJ3k/Tp6SS/wEaKFGLq/zy1eUSnJFWlM3cm0ejw5g== X-Gm-Gg: ASbGncvxENIpLnwqofQVLamZDqerA5d67mVDySzS192/OJ3/201DAZHw9LzpJEqPNXe aBn+qXz85rL5fjaRUuw1C9o+iOgX/JxxEqjQjW3/kbCtT6My77XHQ9e+vUgQpw0hDM1l2+8o4hz zItZxp8SAvUyaeOPk19eHE91D/NaBaNIgbnCcuv++PmcbfpB2Ypoty7PIw332rvlxuZGoVAEwjz Iu8o0QZh01rhhviKuP2cPtsdOPNCH25WtugYDLPA7yPAVZnFmc+WrYu3mDEAB4MafU8R8lbWrJI 7Q9NOcL8w8k+Ay573aLWfDCQ5o2C+F6592CMUycEOISBcLoS4dJMUAX/XSRfhKDn1hc0TNgVgzh VWWF8IF2kBLm7QFVq7iXOEYmG7d/x2A== X-Google-Smtp-Source: AGHT+IHClDGBB3tbvAL96jYKeoi4YFOpakvccqdPNm+PahUP8f1DndcAzYzJlxgKKQGF7pGwXTZeVQ== X-Received: by 2002:a05:6a00:3c8c:b0:772:736e:656c with SMTP id d2e1a72fcca58-7761252f1edmr2625239b3a.5.1757671106682; Fri, 12 Sep 2025 02:58:26 -0700 (PDT) Received: from localhost ([58.56.112.164]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-77607b18424sm4919686b3a.63.2025.09.12.02.58.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Sep 2025 02:58:26 -0700 (PDT) From: Liu Hui To: Michael Albinus Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87348t9izf.fsf@gmx.de> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> <87jz27as2e.fsf@gmail.com> <87zfb2g0ef.fsf@gmx.de> <87v7lpbnou.fsf@gmail.com> <87348t9izf.fsf@gmx.de> Date: Fri, 12 Sep 2025 17:58:04 +0800 Message-ID: <87y0qkm1qr.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.3 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --=-=-= Content-Type: text/plain Michael Albinus writes: > Liu Hui writes: > > Hi, > >> How about the following change? It doesn't change the default behavior >> and allows the caller to override tramp-local-environment-variable-p >> when necessary. > > Looks OK. Pls provide a complete patch, including commit > messages. tramp-androidsu-handle-make-process in tramp-android.el must > be changed as well. > > Perhaps add also a comment on top of tramp-local-environment-variable-p, > explaining the reason for this function. I'm not decided yet whether we > shall document it in the Tramp manual. If we do, we would need a more > general approach I guess. Patch is attached. Thanks. --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Tramp-Refactor-environment-variable-filtering-to-a-s.patch >From cd1248abcef17298330318ce9de707bdcebb0233 Mon Sep 17 00:00:00 2001 From: Liu Hui Date: Fri, 12 Sep 2025 12:55:11 +0800 Subject: [PATCH] Tramp: Refactor environment variable filtering to a separate function * lisp/net/tramp.el (tramp-local-environment-variable-p): New function. (tramp-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) (tramp-sh-handle-process-file): * lisp/net/tramp-androidsu.el (tramp-androidsu-handle-make-process): Use `tramp-local-environment-variable-p'. --- lisp/net/tramp-androidsu.el | 4 +--- lisp/net/tramp-sh.el | 5 ++--- lisp/net/tramp.el | 16 +++++++++++++--- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lisp/net/tramp-androidsu.el b/lisp/net/tramp-androidsu.el index a593833a836..6cc3f14381d 100644 --- a/lisp/net/tramp-androidsu.el +++ b/lisp/net/tramp-androidsu.el @@ -311,9 +311,7 @@ tramp-androidsu-handle-make-process (when (and (string-search "=" elt) - (not - (member - elt (default-toplevel-value 'process-environment)))) + (not (tramp-local-environment-variable-p elt))) (setq env (cons elt env))))) ;; Add remote path if exists. (env (let ((remote-path (string-join (tramp-get-remote-path v) ":"))) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 9d13cdc3a2d..0a454fed69b 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -3052,8 +3052,7 @@ tramp-sh-handle-make-process ;; `process-environment'. env uenv (env (dolist (elt (cons prompt process-environment) env) - (or (member - elt (default-toplevel-value 'process-environment)) + (or (tramp-local-environment-variable-p elt) (if (string-search "=" elt) (setq env (append env `(,elt))) (setq uenv (cons elt uenv)))))) @@ -3288,7 +3287,7 @@ tramp-sh-handle-process-file (cons program args) " ")) ;; We use as environment the difference to toplevel `process-environment'. (dolist (elt process-environment) - (or (member elt (default-toplevel-value 'process-environment)) + (or (tramp-local-environment-variable-p elt) (if (string-search "=" elt) (setq env (append env `(,elt))) (setq uenv (cons elt uenv))))) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index ad768f9e038..a27e8b8fbe8 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -5347,6 +5347,18 @@ tramp-direct-async-process-p (or (not (stringp buffer)) (not (tramp-tramp-file-p buffer))) (or (not (stringp stderr)) (not (tramp-tramp-file-p stderr)))))) +;; This function is used by tramp-*-handle-make-process and +;; tramp-sh-handle-process-file to filter local environment variables +;; that should not be propagated remotely. Users can override this +;; function if necessary, for example, to ensure that a specific +;; environment variable is applied to remote processes, whether it +;; exists locally or not. +(defun tramp-local-environment-variable-p (arg) + "Return non-nil if ARG exists in default `process-environment'. +Tramp does not propagate local environment variables in remote +processes." + (member arg (default-toplevel-value 'process-environment))) + (defun tramp-handle-make-process (&rest args) "An alternative `make-process' implementation for Tramp files." (tramp-skeleton-make-process args nil nil @@ -5365,9 +5377,7 @@ tramp-handle-make-process (env (dolist (elt process-environment env) (when (and (string-search "=" elt) - (not - (member - elt (default-toplevel-value 'process-environment)))) + (not (tramp-local-environment-variable-p elt))) (setq env (cons elt env))))) ;; Add remote path if exists. (env (if-let* ((sh-file-name-handler-p) -- 2.25.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 12 07:26:53 2025 Received: (at 79413) by debbugs.gnu.org; 12 Sep 2025 11:26:54 +0000 Received: from localhost ([127.0.0.1]:49104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ux1vZ-00049e-IF for submit@debbugs.gnu.org; Fri, 12 Sep 2025 07:26:53 -0400 Received: from mout.gmx.net ([212.227.17.21]:40789) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ux1vU-00049C-UJ for 79413@debbugs.gnu.org; Fri, 12 Sep 2025 07:26:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1757676401; x=1758281201; i=michael.albinus@gmx.de; bh=308iYbwXTgItO2mPgH4xmA1vrIMzOuLfVDKBN7qqPyU=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=G/EPm62oX/MCLIZGU73IfZpOHGmZIsVyeAlZ6CkKw9+pAHxiSw8CRvtua7eVW1Ga LfG1LvUAS5YGb45R6nkHG4uCz49F7fS0TPuUcvd1MnQ+UBYa2BsXp/watNy6g7+dp s8IDt6PjvzpuGqgKxHUcOOy1rpCzU911w6Da5hPCDWW97TWbJmC4yWjxKUlbfsYiy krC3gTjg99VkPX3Y57JTkeDlpmXKyLEsm/Th0lugTxzkGYTBoc3y5jKETJafXq6HT hD3pctXzsFASgrMTC8Xz+/WisEaUueNQ46hCPuI9fJQJzYsINpDt2wruGRR7Oob6i Zs3wroAeUNVnf2oL0A== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.37.61]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MWRRT-1uvmRe1TKt-00T6Xs; Fri, 12 Sep 2025 13:26:41 +0200 From: Michael Albinus To: Liu Hui Subject: Re: bug#79413: [PATCH] Fix path and environment in remote Python shell In-Reply-To: <87y0qkm1qr.fsf@gmail.com> References: <874itcne9k.fsf@gmail.com> <87wm67zso1.fsf@gmx.de> <87jz27as2e.fsf@gmail.com> <87zfb2g0ef.fsf@gmx.de> <87v7lpbnou.fsf@gmail.com> <87348t9izf.fsf@gmx.de> <87y0qkm1qr.fsf@gmail.com> Date: Fri, 12 Sep 2025 13:26:40 +0200 Message-ID: <87ms6zud1r.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:C//q5Ad4lFVuxyBfwYCiOVNGpX+GBPVgeOwrSZ3hZOuMuMy6zEr mlUkjZrMGbGTDIkL9h2DqCvkR4uTN/LOJS+2HNrkMpXWMiE/zcpKgfDukJBFJV7A25IMwoj 48p7wJPmIolS/W+SdAc95NBtCiAjlcDrSDTIYTZ/IfW7yTKob7SOzxrk6/rsxA+yHvGjpE/ M13fawOu2jct6f+NAY4Lw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:95Qqox70uk8=;2DR6RUA82i2zb6gy1syQeuewc7T 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 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79413 Cc: 79413@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Liu Hui writes: Hi, >> Looks OK. Pls provide a complete patch, including commit >> messages. tramp-androidsu-handle-make-process in tramp-android.el must >> be changed as well. >> >> Perhaps add also a comment on top of tramp-local-environment-variable-p, >> explaining the reason for this function. I'm not decided yet whether we >> shall document it in the Tramp manual. If we do, we would need a more >> general approach I guess. > > Patch is attached. Thanks. Thanks, I've pushed it to the repositories. Best regards, Michael.