On 16/08/2025 14:47, Jon Turney via Cygwin-apps wrote:
On 05/08/2025 05:56, Brian Inglis via Cygwin-apps wrote:
On 2025-08-04 17:30, Matthew Sheets via Cygwin-apps wrote:
Are there two different versions of Cygwin.bat that Cygwin Setup
could create depending on the context in which Cygwin Setup is executed?
If Cygwin setup is being used to create a new installation, the
installed Cygwin.bat is fairly path independent:
@echo off
setlocal enableextensions
set TERM=
cd /d "%~dp0bin" && .\bash --login -i
[...]
You could also rm /Cygwin.bat and rerun /etc/postinstall/base-files-
profile.sh, possibly with a .done suffix after Setup.
For a portable setup, I am intending to remove and wrap Cygwin.bat
and have _zero_ issue with Cygwin Setup restoring it (I was actually
hoping Cygwin Setup _did_ restore Cygwin.bat so that any updates to
Cygwin.bat could be incorporated), but the challenge here is that a
completely different Cygwin.bat that contains hard-coded paths is
created upon restoration. Is this file content difference expected?
Could the `cd /d "%~dp0bin"` syntax be used in both cases (in place
of the hardcoded paths)?
It has been and should be since at least 2016, when it was added to
base-files; previously it was installed by Cygwin Setup and never
updated if it existed:
https://cygwin.com/cgit/cygwin-apps/setup/tree/desktop.cc?
id=bf1d58#n163
Huh.
Well, a patch to setup either to remove that function (since it doesn't
seem to serve any useful purpose now), or modernize the batch file it
writes would be very welcome.
This should be addressed as of setup 2.936.
I removed this code from setup, so postinstall should always create the
portable version of cygwin.bat.