This is inspired, in part, by my memories of the days of B20 and earlier. :-) (Actually the days before setup, but that includes B20.) Specifically, one used to install cygwin by choosing one of two zip files (for users or developers), downloading, and unzipping.
For a while I've been following various setup issues both here and in the main list. I have been wondering whether it might be simpler and/or more reliable to separate out the initial installation of cygwin from updates. The "update" function would be the setup that we know and love. The "install" would download an archive of a minimal install of just cygwin base; this is an installation, not packages for an installation. "Install" would unpack it in c:\cygwin or wherever the user chooses (e.g., as specific by "setup --root"). Then maybe "install" would download a second archive that contains the individual packages in base and unpack them in wherever "setup -l"/"setup --local-package-dir", just to get the local package cache started. When finished, "install" might run some specialized post-install scripts and perhaps run the "update" function with a message box suggesting that now select other packages. Conceivably "install" might be implemented most simply as a regular package. It could be populated with "prev" versions, which could then updated by setup, thereby populating the package cache. The version of "install" should never change, so the user has control of future updates. Setup might decide on whether to use the install package based on whether the "setup --root" directory already exists. By now, my speculations no longer exceed my knowledge of the subject; they FAR exceeded it. :-) Of course, I've no idea whether this would be a useful approach. Certainly, I understand the desire to get setup to do everything one wants without bifurcating the process. I only mention it in case the people who know setup and understand the issues might be so focused on getting it behaving as desired that they miss an alternative that might be easier to implement. Please forgive any annoyance that my ignorance may have caused. - Barry - Disclaimer: Statements made herein are not made on behalf of NIAID.