9x aware setup.exe (was Re: EOL for Windows 95/98/Me)
Wed Feb 28 01:11:00 GMT 2007
[ moving from developers@ to cygwin-apps@ for setup.exe discussion ]
Corinna Vinschen wrote:
> - Identify the machine it's running on and choose the right path
> to setup.ini and the release subdir.
> For now I suggest having two ini files, setup.ini and setup_9x.ini,
> as well as two subdirs, release and release_9x(*).
Okay, I have a patch committed just now that implements this. Actually
it wasn't necessary to tell setup about the name of the release dir,
since that part of the path is specified in the setup.ini file. So this
new setup.exe will look for setup_9x.bz2 / setup_9x.ini if not running
on NT, and that file should contain the new release dir in the 'install'
and 'source' lines, e.g.
install: release_9x/cygwin/cygwin-1.5.24-2.tar.bz2 1395214
source: release_9x/cygwin/cygwin-1.5.24-2-src.tar.bz2 11307944
I tested this locally using a VMware Win98 image and it seems to do the
right thing, but of course it would always be good to get more testers.
I thought I'd wait until the mirrors actually contain a setup_9x.ini
file before making this available as a setup snapshot.
Note to any other setup.exe hackers: I took this opportunity to do a
minor cleanup, removing some classes from main.cc that implemented NT
ACL manipulation. (Now main.cc just contains main().) I moved those as
well as a new small VersionInfo class to a new file win32.cc. The
entire purpose of VersionInfo is just to call GetVersionInfoEx once on
initialization and then store the result so that further calls can just
reference that. There was an existing IsWindowsNT macro that called
GetVersion on every invocation as well as random scattered calls to
GetVersionInfoEx, and so I removed all those and just had everything go
through the VersionInfo class via the IsWindowsNT macro. If we need any
other version capabilities or further version differentiation, just add
new methods to class VersionInfo.
More information about the Cygwin-developers