unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
@ 2023-09-07 19:10 Unknown
  2023-09-08  7:24 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Unknown @ 2023-09-07 19:10 UTC (permalink / raw)
  To: 65812

Hello,

I'm trying to connect Emacs client running on Windows over TCP to the Emacs
server running inside WSL.

# Inside WSL shell:
(cat <<EOF
(setq server-host "WSL_IP_ADDRESS_HERE")
(setq server-port 12345)
(setq server-use-tcp t)
(server-start)
EOF
) > server-config.el
emacs -Q -l server-config.el --daemon

# On Windows
# Map network drive \\wsl.localhost\Ubuntu as, e.g. W:
# Then in PowerShell:
$env:EMACS_SERVER_FILE=W:\home\user\.emacs.d\server\server
& 'C:\Program Files\Emacs\emacs-29.1\bin\emacsclientw.exe' -c -n

Client will first display message window saying that it connected to the
remote socket, and after clicking [OK] button, error message appears
saying "*ERROR*: Could not open file: CONOUT$".

In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on
 AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.22621
System Description: Microsoft Windows 10 Pro for Workstations (v10.0.2009.22621.2215)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation=aot
 --without-compress-install --with-tree-sitter CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

(NATIVE_COMP present but libgccjit not available)

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp65001

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date subr-x mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils rmc iso-transl tooltip cconv eldoc paren electric
uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel dos-w32
ls-lisp disp-table term/w32-win w32-win w32-vars term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads
w32notify w32 lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 49664 11502)
 (symbols 48 5188 0)
 (strings 32 15157 1304)
 (string-bytes 1 415581)
 (vectors 16 10077)
 (vector-slots 8 254971 15480)
 (floats 8 25 37)
 (intervals 56 302 0)
 (buffers 984 11))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
  2023-09-07 19:10 bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP Unknown
@ 2023-09-08  7:24 ` Eli Zaretskii
  2023-09-08 11:18   ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-09-08  7:24 UTC (permalink / raw)
  To: user; +Cc: 65812

> Date: Thu, 7 Sep 2023 15:10:59 -0400
> From: user@pontos
> 
> I'm trying to connect Emacs client running on Windows over TCP to the Emacs
> server running inside WSL.

This is currently not supported, due to the various quirks and kludges
we need to support the client-server protocol on MS-Windows.  the
patch below attempts to support this by adding one more kludge.

> # Inside WSL shell:
> (cat <<EOF
> (setq server-host "WSL_IP_ADDRESS_HERE")
> (setq server-port 12345)
> (setq server-use-tcp t)
> (server-start)
> EOF
> ) > server-config.el
> emacs -Q -l server-config.el --daemon
> 
> # On Windows
> # Map network drive \\wsl.localhost\Ubuntu as, e.g. W:
> # Then in PowerShell:
> $env:EMACS_SERVER_FILE=W:\home\user\.emacs.d\server\server
> & 'C:\Program Files\Emacs\emacs-29.1\bin\emacsclientw.exe' -c -n
> 
> Client will first display message window saying that it connected to the
> remote socket, and after clicking [OK] button, error message appears
> saying "*ERROR*: Could not open file: CONOUT$".

Please try the patch below and tell if it solves your problem.  The
patch should be applied to the Emacs you run inside WSL, and you will
need to byte-compile the patched server.el there, ensure the produced
server.elc file replaces the one you installed with the original Emacs
on WSL, and if Emacs you run on WSL also uses native-compilation, make
sure the stale .eln file is not loaded (it should happen
automatically, but for good measure just delete the old .eln file).

diff --git a/lisp/server.el b/lisp/server.el
index 104fc06..ee80b93 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1262,9 +1262,12 @@ server-process-filter
                  ;; choice there.)  In daemon mode on Windows, we can't
                  ;; make tty frames, so force the frame type to GUI
                  ;; there too.
-                 (when (and (eq system-type 'windows-nt)
-                            (or (daemonp)
-                                (eq window-system 'w32)))
+                 (when (or (and (eq system-type 'windows-nt)
+                                (or (daemonp)
+                                    (eq window-system 'w32)))
+                           ;; Client runs on Windows, but the server
+                           ;; runs on a Posix host.
+                           (equal tty-name "CONOUT$")
                    (push "-window-system" args-left)))
 
                 ;; -position +LINE[:COLUMN]:  Set point to the given





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
  2023-09-08  7:24 ` Eli Zaretskii
@ 2023-09-08 11:18   ` Eli Zaretskii
  2023-09-08 11:50     ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-09-08 11:18 UTC (permalink / raw)
  To: user; +Cc: 65812

> Cc: 65812@debbugs.gnu.org
> Date: Fri, 08 Sep 2023 10:24:25 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> Please try the patch below and tell if it solves your problem.

Sorry, there was an error in that patch (this is what I get for
sending patches in a hurry).  Please try the one below instead.

diff --git a/lisp/server.el b/lisp/server.el
index 104fc06..1006fee 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -1262,9 +1262,12 @@ server-process-filter
                  ;; choice there.)  In daemon mode on Windows, we can't
                  ;; make tty frames, so force the frame type to GUI
                  ;; there too.
-                 (when (and (eq system-type 'windows-nt)
-                            (or (daemonp)
-                                (eq window-system 'w32)))
+                 (when (or (and (eq system-type 'windows-nt)
+                                (or (daemonp)
+                                    (eq window-system 'w32)))
+                           ;; Client runs on Windows, but the server
+                           ;; runs on a Posix host.
+                           (equal tty-name "CONOUT$"))
                    (push "-window-system" args-left)))
 
                 ;; -position +LINE[:COLUMN]:  Set point to the given





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
  2023-09-08 11:18   ` Eli Zaretskii
@ 2023-09-08 11:50     ` Eli Zaretskii
  2023-09-15  7:04       ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2023-09-08 11:50 UTC (permalink / raw)
  To: 65812

> Cc: 65812@debbugs.gnu.org
> Date: Fri, 08 Sep 2023 14:18:45 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > Cc: 65812@debbugs.gnu.org
> > Date: Fri, 08 Sep 2023 10:24:25 +0300
> > From: Eli Zaretskii <eliz@gnu.org>
> > 
> > Please try the patch below and tell if it solves your problem.
> 
> Sorry, there was an error in that patch (this is what I get for
> sending patches in a hurry).  Please try the one below instead.

The OP used an email address that cannot be replied to.  Could someone
here who uses WSL (or some other setup where emacsclient on Windows
talks to the server on Unix) please try this patch with the recipe in

  https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65812#5

and report back?

If no one can test this within a week or so, I'm going to install this
on the emacs-29 branch regardless.  TIA.

> diff --git a/lisp/server.el b/lisp/server.el
> index 104fc06..1006fee 100644
> --- a/lisp/server.el
> +++ b/lisp/server.el
> @@ -1262,9 +1262,12 @@ server-process-filter
>                   ;; choice there.)  In daemon mode on Windows, we can't
>                   ;; make tty frames, so force the frame type to GUI
>                   ;; there too.
> -                 (when (and (eq system-type 'windows-nt)
> -                            (or (daemonp)
> -                                (eq window-system 'w32)))
> +                 (when (or (and (eq system-type 'windows-nt)
> +                                (or (daemonp)
> +                                    (eq window-system 'w32)))
> +                           ;; Client runs on Windows, but the server
> +                           ;; runs on a Posix host.
> +                           (equal tty-name "CONOUT$"))
>                     (push "-window-system" args-left)))
>  
>                  ;; -position +LINE[:COLUMN]:  Set point to the given
> 
> 
> 
> 





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP
  2023-09-08 11:50     ` Eli Zaretskii
@ 2023-09-15  7:04       ` Eli Zaretskii
  0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2023-09-15  7:04 UTC (permalink / raw)
  To: 65812-done

> Date: Fri, 08 Sep 2023 14:50:53 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > Cc: 65812@debbugs.gnu.org
> > Date: Fri, 08 Sep 2023 14:18:45 +0300
> > From: Eli Zaretskii <eliz@gnu.org>
> > 
> > > Cc: 65812@debbugs.gnu.org
> > > Date: Fri, 08 Sep 2023 10:24:25 +0300
> > > From: Eli Zaretskii <eliz@gnu.org>
> > > 
> > > Please try the patch below and tell if it solves your problem.
> > 
> > Sorry, there was an error in that patch (this is what I get for
> > sending patches in a hurry).  Please try the one below instead.
> 
> The OP used an email address that cannot be replied to.  Could someone
> here who uses WSL (or some other setup where emacsclient on Windows
> talks to the server on Unix) please try this patch with the recipe in
> 
>   https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65812#5
> 
> and report back?
> 
> If no one can test this within a week or so, I'm going to install this
> on the emacs-29 branch regardless.  TIA.

No one responded, so I've now installed this on the emacs-29 branch,
and I'm closing the bug.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-15  7:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-07 19:10 bug#65812: 29.1; Emacs client on Windows can't connect to the daemon on WSL over TCP Unknown
2023-09-08  7:24 ` Eli Zaretskii
2023-09-08 11:18   ` Eli Zaretskii
2023-09-08 11:50     ` Eli Zaretskii
2023-09-15  7:04       ` Eli Zaretskii

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).