Ok, I've (deliberately) broken HEAD.

Or to be a little more precise, it's now got a version of setup in it
that has the core code required to parse and download from multiple
independent mirrors. The gui side isn't done yet, and there are a number
of things I've just roughly #if 0'd for the moment.

If one of those bites you, please feel free to fix it ;]. I will get
them all reinstated, but I really wanted this core code in so that folk
would patching something current.

The main visible changes are that the packages and categories global
variables are gone. Instead there is a class packagedb that maintains a
complete list of all packages, installed and not installed, with sources
from an arbitrary number of mirror sites (listed per package).

The things I've disabled are fairly minor - scanning for -src packages
in a local dir with no setup.ini for example).

Also changed in this version is the spin control for choosing packages.

It now goes of the package's metadata selection to determine the state,
rather than an arbitrary number of predefined states. The most obvious
change of this is that when installing from a local dir with no
setup.ini, ALL the previous versions should now be visible. (ie if you
have 20 copies of cygwin, knock yourself out).

I've reinstated the prev/curr/test buttons to their former power. I
don't like the way they are now either though :}. (clicking on test
uninstalls *everything* because we have no test packages :}.)

see set_action in choose.cc for more info, It should make sense (theres
~ 1page of explanation :})

And before anyone comments, the multiple mirror code will honour locally
cached files from previous setup.exe's, even though it downloads new
ones differently.

Rob

Reply via email to