Customizable cygwin setup.exe

Miles Gazic
Fri Oct 9 20:50:00 GMT 2009

I made a local cygwin mirror at my company, but I still had some
people that got confused when installing cygwin.  I've had the same
problem at previous jobs, where people are confused when installing
cygwin, and it makes them reluctant to do so.

I investigated what's required to customize the cygwin installer to
make it run without any manual interaction.  In the end, instead of
just modifying the source code to hard-code options my preferred
options for what packages to install by default and what mirror to
use, I made it possible to run a perl script to produce a custom
setup.exe with whatever options you prefer, based on a binary I built.
 Basically the script searches for a string in setup.exe, and replaces
it with the string of your choice (padded to be equal length), so that
when setup.exe is run it'll act just like you gave it your string as a
command-line argument.  You can still also specify command-line
arguments when running setup.exe, they just get appended.

It wouldn't take much to change the perl script to a cgi script to do
similar, so that you can use a web browser to type in what packages
you want auto-selected and what mirror you want to use, and it'll give
you a custom setup.exe (just by doing the text substitution on the
binary, not by rebuilding the application from source code).  This
would allow people who don't want to learn how to build setup.exe (or
don't feel qualified to do so) to get a custom cygwin installer to use
within their organization.

If anyone is interested in this, I can submit I patch, or email the
interested party the patch, or a zipfile with the built binary and the
perl script (the script customizes the setup.exe to auto-select the
apps you want installed by default, and the mirror to download from,
and the -q option if you like).

- Miles

More information about the Cygwin-developers mailing list