GNU bug report logs - #18118
Support for Python3 in TRAMP's `tramp-get-remote-uid-with-python'

Previous Next

Package: emacs;

Reported by: eclig <at> gmx.net

Date: Sun, 27 Jul 2014 14:29:02 UTC

Severity: normal

Tags: patch

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#18118: closed (Support for Python3 in TRAMP's `tramp-get-remote-uid-with-python')
Date: Mon, 28 Jul 2014 19:12:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 28 Jul 2014 21:11:36 +0200
with message-id <8761ihti1j.fsf <at> gmx.de>
and subject line Re: bug#18118: Support for Python3 in TRAMP's `tramp-get-remote-uid-with-python'
has caused the debbugs.gnu.org bug report #18118,
regarding Support for Python3 in TRAMP's `tramp-get-remote-uid-with-python'
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
18118: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18118
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: eclig <at> gmx.net
To: bug-gnu-emacs <at> gnu.org
Subject: Support for Python3 in TRAMP's `tramp-get-remote-uid-with-python'
Date: Sun, 27 Jul 2014 16:32:31 +0200
Dear Emacs maintainers,

the following patch makes possible to use TRAMP to connect to systems
where both `perl' and `id' are missing and where the Python program is
called `python3'.  Note that the syntax `print foo' is invalid in
Python3 since there `print' is a function, whereas in Python2 it is/was
a statement.  The syntax `print(foo)' works in both cases and it's what
I used bellow.

Regards

 Emílio

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: eclig <at> gmx.net-20140725151222-n88affhi3m98xkqr
# target_branch: http://bzr.savannah.gnu.org/r/emacs/trunk/
# testament_sha1: cbaad612600a8166a622e1019484b64d24afeae9
# timestamp: 2014-07-25 17:17:36 +0200
# base_revision_id: eliz <at> gnu.org-20140725115836-axkqeojeljgzzef1
#
# Begin patch
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog    2014-07-25 09:37:07 +0000
+++ lisp/ChangeLog    2014-07-25 15:12:22 +0000
@@ -1,3 +1,11 @@
+2014-07-25  Emilio C. Lopes  <eclig <at> gmx.net>
+
+    * net/tramp-sh.el (tramp-get-remote-python): Also search for
+    executables named "python2" or "python3".
+    (tramp-get-remote-uid-with-python): Use parentheses around arguments to
+    `print' to make it compatible with Python 3.
+    (tramp-get-remote-gid-with-python): Ditto.
+
 2014-07-25  Glenn Morris  <rgm <at> gnu.org>
 
     * vc/ediff-init.el (ediff-toggle-read-only-function):

=== modified file 'lisp/net/tramp-sh.el'
--- lisp/net/tramp-sh.el    2014-07-03 09:27:02 +0000
+++ lisp/net/tramp-sh.el    2014-07-25 15:12:22 +0000
@@ -5256,7 +5256,9 @@
 (defun tramp-get-remote-python (vec)
   (with-tramp-connection-property vec "python"
     (tramp-message vec 5 "Finding a suitable `python' command")
-    (tramp-find-executable vec "python" (tramp-get-remote-path vec))))
+    (or (tramp-find-executable vec "python" (tramp-get-remote-path vec))
+        (tramp-find-executable vec "python2" (tramp-get-remote-path vec))
+        (tramp-find-executable vec "python3" (tramp-get-remote-path vec)))))
 
 (defun tramp-get-remote-uid-with-python (vec id-format)
   (tramp-send-command-and-read
@@ -5264,8 +5266,8 @@
    (format "%s -c \"%s\""
        (tramp-get-remote-python vec)
        (if (equal id-format 'integer)
-           "import os; print os.getuid()"
-         "import os, pwd; print '\\\"' + pwd.getpwuid(os.getuid())[0] + '\\\"'"))))
+           "import os; print (os.getuid())"
+         "import os, pwd; print ('\\\"' + pwd.getpwuid(os.getuid())[0] + '\\\"')"))))
 
 (defun tramp-get-remote-uid (vec id-format)
   (with-tramp-connection-property vec (format "uid-%s" id-format)
@@ -5305,8 +5307,8 @@
    (format "%s -c \"%s\""
        (tramp-get-remote-python vec)
        (if (equal id-format 'integer)
-           "import os; print os.getgid()"
-         "import os, grp; print '\\\"' + grp.getgrgid(os.getgid())[0] + '\\\"'"))))
+           "import os; print (os.getgid())"
+         "import os, grp; print ('\\\"' + grp.getgrgid(os.getgid())[0] + '\\\"')"))))
 
 (defun tramp-get-remote-gid (vec id-format)
   (with-tramp-connection-property vec (format "gid-%s" id-format)

# Begin bundle
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWfkFh8UAAqlfgGwwUP///34E
Qk7////wUAWWW8u7ptYW4C1oapoSUQJG9AmmEGjIaAk9J6gADQDQSiCYmTIKntU2NSPU0DQAAAaA
ASQgphE8gKG9KDJtQAGgDIxA0OaMmJgAmIwI0wIMRgmTAIwSKRpNoEp5T9J6A1CekyPRGEAaABkv
IKokECJoYjfp9u07V7UnMhGJDjv3lTZ6cVbdggtEra1nvrKN9HppQh9gMdcvgfFscjsOJiO4vxzm
8gzcrAzJurpVkW6mcbXMlJ6OtrTZ6Tg16eGQ0d06ZSnugtfkQ6v7zdMOUKak+llA4sLvEE5uSShK
nCKWRegyvm0Z3s7Pvr2xaaSKL5A4h8QhYLicxpchhUaGGTwIAxB8HBt9RwgDuRzs2DXQSIKsmmK1
OZKQxOnE/i2mb97jknCcDGjbHjORYKoRPmlKkCyQUKDZAlEXv/PvNde3N7jdJl/0oVkrmj4ikLDb
VRQZX4ESM2sh+Z/YYhAy2u4lQYI6so55xxjAnPF1ma8TTuCadQr1dfgncixH8n/jlI9HYNp+qmgS
oEqpGVWgT30aSHfUOcKyi5oWARjfnLOO6BcBfkV9lNB7ddYdbGRY4I5NVq4vIRXnVbabgH2CintV
BIhWOcQGgakjftlYxJlKgmScBScXbHQa2QxLGYzY/d0Y7jBnrZxbndi/Y7MGc3ua1q0UKLRgcJ5y
htN2ExkdOgfhsAldlSDPSEFmZSVFBjeGoJyZa5qDWWhViwZNdYqFtTOWREqjVZOAwDYJSvzvN6Z4
Nw0Lgfe3+Au4M6kFSSqKX2GYbQZpC7Spk8Jj555MJC4SLNNFBKwNA3CtcUK1D3xuXDmC2GrLqLMi
D0pPE0m9oUiZjnMOAHZpfhlIDOpxzApg7JpIMRwmIvDRkCm0W84FjeUzKHkRYTneYRhNOZqNG1nU
oQ1bXmrEVsbk2eU0nIua/FUfvDqHPx95CXqEYeK6LbSsG3+ZitzuMII6zbsPgB2BqIqJxop+jwdn
VPicaDYeGu01FjgtlfMeoCbchxp38qVACcxdy5ujApO883k1hSufALBgyngTcY01l7gkW4Biprz6
unpm52Z5TlwnekET5xqIubYBPJh0ouvH4oQgCVsUCPxhtksuUPWUNJZO0JtyTTJdIXEddcx24Yut
pxOBRjmYNhmGI40YCuJ0wn8j1hHO4J75QmwfZBkXbZcFmEO5kfk0yLzWYiSK1Q0PYtRfPl0YJmrD
XjKkEiTEwUaOq8caIcC3LSmeDcwarT0DSqHT3KAee9YgMnA3nmOovWEFmOCwCQiqhoZkS3i3FIbs
SUWkcqjFlmHdd8MCHE3zY4pzAZIwSZiBmNdk49tmPWMbefwQ8mtcRyiMoqjGg6QwIF1RRMj44rao
HGZE3JDzuwTft+NixDMyYt+k2VWIr9aRuQVIlAKN5oBg6hEDU4qLV+2B3S15QMeK9VKWqwfyNOFy
WRCgRVATHdWkTRbBbAGrFRXECfPzgUMnoXsKcNQRRck2jptCYObfvmIFLy1Bo/uo7S1bl0CrGhrs
dJSW6Oi5HEE67ETKJMGMksbNMAnZpZMmDUpIomCzjoHbUmQXZWAwwDkXENLqdukZjBEU5kSEuaM9
SUALea1Zg3ynbw1Cor4idSYUYGCjgan2S7brozlxCe82IZJdT7eWMikWnAM8dYTUIGwJ2QPSGcM/
lSmotzhbJVxTVXOkTSZZcSVViKVVuW5i9+LcSpgSEQ1u8GhTjHq7tGSXFgHfvDIJ9Ro6RWkDlJeH
kCO1IkGlbgIIvpZbw8ZJNmZSZ6E5aF/xdyRThQkPkFh8UA==



[Message part 3 (message/rfc822, inline)]
From: Michael Albinus <michael.albinus <at> gmx.de>
To: eclig <at> gmx.net
Cc: 18118-done <at> debbugs.gnu.org
Subject: Re: bug#18118: Support for Python3 in TRAMP's
 `tramp-get-remote-uid-with-python'
Date: Mon, 28 Jul 2014 21:11:36 +0200
eclig <at> gmx.net writes:

> Dear Emacs maintainers,

Hi Emílio,

> the following patch makes possible to use TRAMP to connect to systems
> where both `perl' and `id' are missing and where the Python program is
> called `python3'.  Note that the syntax `print foo' is invalid in
> Python3 since there `print' is a function, whereas in Python2 it is/was
> a statement.  The syntax `print(foo)' works in both cases and it's what
> I used bellow.

I don't use Python. However, your patch looks reasonable to me, so I've
applied it to the trunk. Closing the bug.

> Regards
>
>  Emílio

Thanks for your report, and best regards, Michael.


This bug report was last modified 11 years and 15 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.