On Wed, Apr 06, 2022 at 05:24:01PM +0300, Eli Zaretskii wrote:
Date: Wed, 6 Apr 2022 14:39:30 +0200
From: Tomas Kalibera <tomas.kalibera@gmail.com>
texi2dvi on Msys2 doesn't find tex, because it incorrectly detects ";"
as path separator (it is ":").
The problem is in the following code. With Msys2, OSTYPE is "msys", but
MSYSTEM is upper-case "MSYS" and uname needs it that way:
# In the case of Msys, uname returns a value derived from MSYSTEM, as
# MSYSTEM is user configurable, it is not so safe to use it to detect
# Msys. It is safer to use OSTYPE, this is why we set MSYSTEM to
# $OSTYPE before calling uname
if test -n "$COMSPEC$ComSpec" \
&& MSYSTEM=$OSTYPE uname | $EGREP -iv 'cygwin|msys' >/dev/null; then
path_sep=";"
else
path_sep=":"
fi
I've reported this with more detail for Msys2
(https://github.com/msys2/MSYS2-packages/issues/2901) but perhaps it is
worth fixing upstream as the code was meant to support MSYS.
MSYS is already supported; it is MSYS2 that deviated from the original
MSYS behavior, and now support for MSYS2 needs to be _added_.
IOW, whatever is done here to ensure support for MSYS2, please do NOT
remove the current test, which does work with the original MSYS.
Please tweak the test so that it accepts both flavors.
What happens if we don't set MSYSTEM at all?
diff --git a/util/texi2dvi b/util/texi2dvi
index 1f42b41907..c506bbad37 100755
--- a/util/texi2dvi
+++ b/util/texi2dvi
@@ -85,7 +85,7 @@ IFS="$space$tab$newline"
# Msys. It is safer to use OSTYPE, this is why we set MSYSTEM to
# $OSTYPE before calling uname
if test -n "$COMSPEC$ComSpec" \
- && MSYSTEM=$OSTYPE uname | $EGREP -iv 'cygwin|msys' >/dev/null; then
+ && uname | $EGREP -iv 'cygwin|msys' >/dev/null; then
path_sep=";"
else
path_sep=":"