This directory contains the source for the setup program for the cygwin net releases. For code guidelines, see GUIDELINES. RELEASE BLOCKERS: Currently, none! TODO: * Don't downgrade if the curr version is <= installed? * Support rpm/deb files for reading the package from. (To allow the maintainers the use of rpm/deb tools to create packages.) * Make a librar(y|ies) for setup and cygcheck to use containing 1) Something to translate POSIX -> native. Currently called "cygpath" in setup, although this is probably a bad choice of name. 2) Something to return the list of installed packages. 3) Something to return the cygwin mount table. Currently, I have implemented a lightweight setmntent and getmntent using the code in 4) Something to parse a tar file name into package/version or alternatively, return that information from 2) 5) Something to return a list of files associated with a package. * Mark versions as prev/curr/test in the GUI when clicking through them. * Make setup.exe available through Add/Remove * Chooser scrollbar sometimes lost with odd font sizes. * Cancelling during MD5 check just stops the GUI updating until the check completes, and then continues with setup as if Cancel had not been clicked. * Toggling from All Default to All Install takes *way* too long. * Remove installed packages from Misc when other (non-All) categories are found. * Local package scan stops updating when it stops being the active window. WISHLIST: * rsync:// support. * Some way to download *all* the source. * When clicking on a category that is showing a partial list (auto added items due to dependencies) show the full list rather than minimizing. * Incremental/recoverable download capability. * Build-depends. * FTP control connections should be closed when we are awaiting user input. * Show a sdesc for each category. * Add friendly error reporting to simpsock.cc. * Scan newly installed files for README files, show list to user, let them read them if they want. * Mouse wheel support broken/missing for *some* users. * When in category view, and changing from prev->normal->exp the categories get collapsed. This is non-intuitive. * mirrors.lst to be copied to setup.ini and cached locally. Then the master mirrors list is reserved for bootstrapping. * Clicking on a package that is in multiple categories should update the view of the package in both locations on screen. - Done? * Remember the view mode - ie if you leave setup in partial, it returns to partial automatically. * Downloading from the internet should be _able_ to list based on what is present in the cache, as opposed to what is installed. (To help building a complete install set for a different machine). * New view - "action / category / package" * New view - show installed packages only. Probably not categorised. * Don't ask about the start menu or desktop options if they already exist. * Save the manual proxy settings so they don't need to be retyped. * Detect files in multiple packages. * Save all options. * Run a different script after finishing setup. * Show bin and src download size. * Confirm cancellation of setup if in the middle of doing something. * Improve mirror selection UI. * Ability to "hold" the version of a package - i.e. never auto-upgrade. Unconfirmed Bugs * When installing and enough packages default to visible, the RH scrollbar is sometimes hidden. * BSOD switching to install mode after downloading lots of software. Recently Completed * View button is not clear at first view. (the dotted highlight). * Continue downloading past errors, present log of failures at end. (partial) * Multiple mirror support, with setup.ini from each merged automagically. * Installed packages aren't automatically upgraded. * Dependencies should not trigger alterations to user actions for installed packages that have any action other than uninstall. * Wide descriptions can get truncated - i.e. SSMTP. * SKIP and KEEP sometimes appearing for the same package. * Set the screen size for 640x480 users. * View mdoe caption on the right hand of the screen. * Downloading from the internet should allow redownloading already present files. (This happens via the reinstall/redo already - perhaps this is done.) * Make skip only ever appear for non-installed packages. * Skip sould be followed by the from the radio buttons, not by prev. * Src tickbox /source only can be confusing. * ini.cc: add field in setup.ini to specify whether package is installed by default, or not. (Base category does this) * Remove "/" from symlinks (etags.exe->/ctags.exe) is an example. * Src tickbox /source only can be confusing. * Handle UNC paths for the localdir correctly. * Chooser dialog needs work. * A command line option to prevent overwrite-on-reboot functionality. * Set ntsec permissions correctly, and for new installs enable ntsec. * Spurious "Cannot open (null) for reading" errors. * Sometimes packages set to 'Keep' appear in the 'Partial' view. * For local dir installs, Going back, changing the local cache dir, and going forward again does not correctly reparse inis in the new dir. Reproduction: Choose an incorrect cache dir, go back, correct it. Chooser shows all packages in Misc. - more details: packages get the correct categories assigned, but have misc added IF they where already installed. cycling the view adds the previously missing categories correctly. * "compress_bz::error called" appears in the log every time a package is installed, even if everything works. * New view - show non installed packages only. * Remove *empty* directories on uninstalls. * Correctly overwrite -r--r--r-- files. * Audit rfc1738 code for bad memory/string handling. Example: Crash occurs if rfc1738 encoded dirname is truncated in the middle of a %xx sequence. Crash not reproducible with test cases, and the code does not handle memory badly. * Log postinstall scripts to a file.