TL2024 from .iso fail under cygwin (win11 pro)

Reinhard Kotucha reinhard.kotucha at gmx.de
Mon Apr 29 12:56:02 CEST 2024


On 2024-04-28 at 12:39:03 -0400, John Collins wrote:

 > On 4/27/24 9:19 PM, Reinhard Kotucha via tex-live wrote:
 >
 > >   >
 > >   >    It seems you are using Cygwin and haven't installed Cygwin's
 > >   >    wget.
 > > But the error message doesn't have to tell users which operating system
 > > they use.  They want to know how to proceed.
 >
 > The complication here is that both of Cygwin and the underlying
 > Windows operating system are in play, and PATH contains both native
 > Windows executables and Cygwin-specific executables.

Sure, but the only problem here is that the Windows PATH is appended
to the Cygwin PATH.  This only causes problems if a Cygwin binary
doesn't exist but a Windows one.

A Cygwin user knows that he's on Cygwin.  Hence no need to say "it
seems..."

 > In this context, I would avoid calling Cygwin an operating system.

Compare it with Stallman's GNU, an operating system without a kernel.

There are very few things that remind you that Cygwin is built on top
of Windows.  Most notably is that if you use Bash's command completion
you see that binaries have the ".exe" extension.  But Cygwin provides
a complete Unix environment. It behaves exactly as any other Unix
environment.

 > The point of mentioning Cygwin explicitly is to emphasize to the
 > user that there are special quirks involved.

Cygwin users are aware that quirks are involved and ...

 > > So something like "No wget found in PATH.  Please install wget."
 > > is preferred.
 > >
 > > There is no need to tell Cygwin users to install wget on Cygwin.
 > > Where else should they install it?
 >
 > It could be installed as a native Windows wget.

... would never install wget on native Windows when they are told that
the program is missing.

 > Don't forget that Windows already provides curl, which is in the
 > default Cygwin PATH.  The Unix installer tries to do the download
 > using that curl, but it fails.

Let's forget curl for a moment.  See below.

 > As David pointed out, the problem is that the name of the output
 > file ('/tmp/...') is one that is incorrectly interpreted by a
 > normal Windows program.  I assume that if a native Windows wget
 > were installed it would be found in PATH, be tried by the
 > installer, and would also fail.

That's true.  There are a lot of other incompatibilities.  If you
invoke Adobe Reader installed on native Windows and pass the filename
on the command line you can be sure that AR crashes because it
doesn't know what to do with "/home/reinhard/something.pdf".

 > Installing either or both of Cygwin's curl and wget solves the
 > problem, given the default setting of PATH by Cygwin.  This is just
 > because the Cygwin-specific binary directories are inserted at the
 > front of PATH, ahead of the standard Windows directories.

You mentioned the "default setting of PATH" several times.  But since
the installer knows that it's on Cygwin I recommend that it
temporarily sets PATH to standard Unix directories:

  PATH=/usr/local/bin:/usr/bin:/bin

If wget is not found in PATH it is sufficient to provide an error
message asking the user to install wget.  No Cygwin user will install
wget on native Windows.  They all know *why* they're using Cygwin.

The reason I don't recommend to try curl is that both, the installer
and tlmgr look for wget first.  If wget is installed at install time,
there is no need to adapt tlmgr even if PATH contains the Windows
stuff.

 > >> See the TeX Live Guide....
 > >
 > > I definitely prefer a solution which doesn't pollute the TeX Live
 > > Guide and I suppose that a proper error message is sufficient.
 >
 > I don't understand here.  The TeX Live documentation already has
 > sections listing specific considerations for particular operating
 > systems etc.  That includes a section about Cygwin, with explicit
 > mention of wget.

In the past (before TeX Live 2008) the TeX Live documentation had a
lengthy chapter about the differences between Windows and Unix.  We
then tried to make TL to behave the same way on all platforms.

There are still differences which have to be documented though much
less than in the past.

If there are differences between Cygwin and other systems I prefer to
look for software solutions first before bothering users.

It's not a problem if the documentation recommends to install wget on
Cygwin before installing TeX Live.  But most people read the docs only
if something fails.

Thus I think that most problems discussed here can be avoided if the
installer sets PATH as described above when being invoked under
Cygwin.  The error message can tell users how to proceed (install
wget) and once wget is installed other programs like tlmgr will use
it, even if PATH contains the Windows directories.

Regards,
  Reinhard

--
------------------------------------------------------------------
Reinhard Kotucha                            Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover                    mailto:reinhard.kotucha at gmx.de
------------------------------------------------------------------



More information about the tex-live mailing list.