Subject: bug#55930: 29.0.50; Removing some items from Emacs FAQ for MS Windows

From: Arash Esbati <[email-masked]>
Date: Mon, 13 Jun 2022 11:18:06 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Arash Esbati <[email-masked]>
>> Date: Sun, 12 Jun 2022 20:25:00 +0200
>> 
>> I'd like to ask it makes sense to remove some items from FAQ for MS
>> Windows in "11 Other useful ports"[1], namely:
>> 
>>   11.4 UWIN
>>   http://www.research.att.com/sw/tools/uwin/
>> 
>> The link is gone.  I did a quick search but could not find a
>> replacement.
>
> If it's gone, it should be removed from the FAQ, IMO.

Agreed.

>>   11.5 GnuWin32
>> 
>> Outdated means last announcement is from 2010, the project looks
>> dormant.
>
> It is indeed dormant, but some of its ports are nowhere to be found as
> native MS-Windows executables.  Coreutils, for example.

Ok, I will not touch this entry.

>> Maybe an entry for Msys2 should be added?  I can send a proposal, but
>> before that, I'd like to know how people think about it.
>
> I hope you mean MinGW64 executables here.

I did.  But I was more thinking about an entry which covers MinGW-w64
and MSYS2, basically the same thing like MinGW and MSYS which is already
there.

> Yes, if you can come up with a list of MinGW64 ports that are
> available from the MSYS2 folks, by all means suggest a patch for the
> FAQ.

MSYS2 distribution offers more than 2.600 ports in their MinGW64 subsystem,
so a sensible list is rather complicated.  My suggestion is attached.  I
haven't made a ChangeLog entry yet, but in general:

 • The file nt/INSTALL.W64 is mentioned
 • A ; is added to the examples for .mailcap in order to be in line with
   Emacs MIME manual
 • UWIN entry is gone
 • Entry for MinGW64 and MSYS2 is added.

Any comments welcome.

Best, Arash
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index 55175a3b89..66ab2e1d74 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -133,7 +133,8 @@ Which versions of Windows
 tooltips.
 
 Emacs on Windows can be compiled as either a 32-bit or a 64-bit
-executable, using the MinGW GCC compiler and development tools.
+executable, using either the MinGW or the MinGW-w64 GCC compiler and
+development tools.
 
 @node Other versions of Emacs
 @section What other versions of Emacs run on Windows?
@@ -177,8 +178,9 @@ Downloading
 site (as zip files digitally signed by the person who built them).
 See the @file{README} file in that directory for more information.
 Building Emacs from source yourself should be straightforward,
-following the instructions in @file{nt/INSTALL}, so we encourage you
-to give it a try.  @xref{Compiling}.
+following the instructions in @file{nt/INSTALL} or
+@file{nt/INSTALL.W64}, so we encourage you to give it a try.
+@xref{Compiling}.
 
 @cindex latest development version of Emacs
 @cindex Emacs Development
@@ -190,21 +192,23 @@ Compiling
 @section How can I compile Emacs myself?
 @cindex compiling Emacs
 
-To compile Emacs on Windows, you will need the MinGW port of GCC and
-Binutils, the MinGW runtime and development environment, and the MSYS
-suite of tools.  For the details, see the file @file{nt/INSTALL} in
-the Emacs source distribution.
+To compile Emacs on Windows, you will need either the MinGW port of
+GCC and Binutils, the MinGW runtime and development environment, and
+the MSYS suite of tools, or the MinGW-w64 port of GCC and the MSYS2
+suite of tools.  For the details, see the files @file{nt/INSTALL} or
+@file{nt/INSTALL.W64} in the Emacs source distribution.
 
 Support for displaying images, as well as XML/HTML rendering and TLS
 networking requires external libraries, the headers and import
 libraries for which will need to be installed where your compiler can
 find them.  Again, the details, including URLs of sites where you can
-download these libraries are in @file{nt/INSTALL}.  @xref{Other useful
-ports}, for auxiliary tools you may wish to install and use in
-conjunction with Emacs.
+download these libraries are in @file{nt/INSTALL} or
+@file{nt/INSTALL.W64}.  @xref{Other useful ports}, for auxiliary tools
+you may wish to install and use in conjunction with Emacs.
 
 After unpacking the source, or checking out of the repository, be sure
-to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
+to read the instructions in @file{nt/README} and @file{nt/INSTALL} or
+@file{nt/INSTALL.W64}.
 
 @node Debugging
 @section How do I use a debugger on Emacs?
@@ -307,8 +311,8 @@ Unpacking
 Expect @command{bsdtar} to unpack the whole distribution without any
 complaints.
 
-Once you unpack the source distribution, look in @file{nt/INSTALL}
-file for build instructions.
+Once you unpack the source distribution, look in @file{nt/INSTALL} or
+@file{nt/INSTALL.W64} file for build instructions.
 
 @node Installing binaries
 @section How do I install Emacs after unpacking the binary zip?
@@ -1645,8 +1649,8 @@ Attachments with Gnus
 In your @env{HOME} directory create a file called @file{.mailcap},
 with contents like the following:
 @example
-application/zip "C:/Program Files/7-Zip/7zFM.exe"
-video/* "C:/Program Files/VideoLAN/VLC/vlc.exe"
+application/zip; "C:/Program Files/7-Zip/7zFM.exe"
+video/*; "C:/Program Files/VideoLAN/VLC/vlc.exe"
 @end example
 
 @strong{Warning:} Associating MIME types with @command{start} or other
@@ -2098,7 +2102,7 @@ Other useful ports
 * Cygwin::
 * MinGW::
 * EZWinPorts::
-* UWIN::
+* MinGW-w64::
 * GnuWin32::
 * GTK::
 * Read man pages::
@@ -2139,7 +2143,7 @@ MinGW
 @cindex msys environment
 @cindex subprocesses, mingw and msys
 
-@uref{http://www.mingw.org/}
+@uref{https://mingw.osdn.io/}
 
 MinGW is a set of development tools that produce native Windows
 executables, not dependent on Cygwin's POSIX emulation DLLs.
@@ -2161,16 +2165,38 @@ EZWinPorts
 @command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
 Hunspell, Gawk, GNU Make, Groff, GDB.
 
-@node UWIN
-@section UWIN
-@cindex uwin environment
-@cindex subprocesses, uwin
-
-@uref{http://www.research.att.com/sw/tools/uwin/}
-
-UWIN is another POSIX emulation environment, like Cygwin and MSYS,
-that provides a large number of ported tools.  The shell used by UWIN
-is @command{ksh}, the Korn shell.
+@node MinGW-w64
+@section MinGW-w64 and MSYS2
+@cindex mingw-w64 tools
+@cindex msys2 environment
+@cindex subprocesses, mingw-w64 and msys2
+
+@uref{https://www.msys2.org/}
+
+MinGW-w64 is another set of development tools that produce native
+Windows executables.  MinGW-w64 has forked the original MinGW in 2007
+in order to provide support for 64 bits and new APIs.
+
+MSYS2 is software distribution and a building platform for Windows.
+MSYS2 is an independent rewrite of MSYS, based on modern Cygwin and
+MinGW-w64 with the aim of better interoperability with native Windows
+software.  It plays the same role MSYS does in MinGW.
+
+Being a distribution, MSYS2 provides tools to build software as well
+as more than 2.600 precompiled packages ready for use.  For example,
+the distribution offers Hunspell as the package
+@samp{mingw-w64-x86_64-hunspell} which can be installed through the
+provided package manager Pacman.  One can now open the MINGW64
+subsystem by running the file @file{mingw64.exe} which opens a
+terminal window (Mintty) with a proper shell (Bash) and use the
+command @command{hunspell} directly.  If Emacs is started from this
+shell, it will find @command{hunspell} as well and there is no need
+for adjustments in @code{exec-path} and such.  External binaries can
+be made available by adding them to @env{PATH} in
+@file{~/.bash_profile}, for example:
+@example
+export PATH=$PATH:/c/Program\ Files/gs/gs9.56.1/bin
+@end example
 
 @node GnuWin32
 @section GnuWin32