Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <007101c1e9fd$02940fa0$cd8a9dc0@uk.aonix.com> From: "Cliff Hones" To: "Robert Collins" , References: Subject: Re: Bug in setup.exe 2.194.2.24 Date: Mon, 22 Apr 2002 13:55:41 +0100 Organization: Aonix Europe Ltd. MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Robert Collins wrote: > So you are suggesting that in download mode it should not offer to > upgrade any installed packages by default? Or that it should only offer > upgrades for installed packages without cached files? The latter (approx) . I view it as offering downloads - not upgrades - in download mode. (See below) > I'll happily accept a (reasonable) patch for the second case, but the > first case also seems counter-intuitive to me. > ... > I'd like to remove the re-download facility completely. If a package > file is corrupt, delete the local copy and then run setup. This makes > setup simpler, for little cost. Setup won't keep partial files anyway, > so the only form of corruption has to be network transit problems, and > GPG signing would solve that too, and allow setup to detect and remove > corrupt packages automatically. Ok - I'm prepared to be shot down in flames :-). Here's what I'd like to see setup do - and I hope this is intuitive and reasonably compatible with current behaviour. Apologies for the length... First, "Download from Internet". Assuming there's already a cygwin installation present, setup should examine all packages installed and compare their versions with the latest setup.ini files from the mirrors (downloading these first if necessary). Any installed packages with higher current versions available should be set to be upgraded by default. Dependencies must be checked, and any other necessary packages should be upgraded as necessary. Other packages should be placed in the 'keep' state. The local directory should be scanned for required packages, and any not present should be downloaded and placed in the local directory. Assuming all downloads worked, the required uninstalls/installs should be done. [I think this is essentially what setup does now.] If there's no Cygwin installation initially, setup should set the base packages (only) plus dependencies for install. Other complications/wbnif's: . If the user has previously uninstalled base packages or dependencies, should setup remember this, or forcibly select them for reinstallation? . setup should remember whether the user selected experimental packages, and offer to upgrade these to their latest test version. . Should setup downgrade packages (or at least flag a suggestion) if the setup.ini file indicates the current version is lower than the installed one? . There should be an option to show packages added to the distribution since the user made the previous (or original?) install, since he may not have made a conscious decision to exclude them from his installation. . If there are versions in the local directory which are not listed in the setup.ini files, should they be offered? [Could be useful for someone who likes to keep his favourite old version which has worked for years, and for private packages.] Next, "Install from local directory". This should be very similar to the above. No internet access should be performed, so the current setup.ini files have to be trusted. When working out what packages to upgrade by default, setup should check that they are actually present in the local directory, and if not, not offer them for upgrade by default. If the user selects any packages which are not present, or dependency checking introduces non-present packages, setup should flag this and refuse to continue until the user addresses the problem. wbnif: . setup could flag new packages or packages which have a more recent version but which are not present in the local directory. Finally, "Download from Internet". New setup.ini files should be fetched from the mirror(s) if necessary. The same processing as in "Install from Internet" should be carried out to establish packages to upgrade. Any already present in the local directory should be changed to "keep". I would also like a new option in this mode which effectively says "ignore the current installation (if any)". In this mode the packages in the local directory, rather than those currently installed, should be taken as the starting point. So you will be offered by default any upgrades to packages which have previously been downloaded. The user should be allowed more flexibility in this mode as to what gets downloaded. e.g. he should be allowed to deselect dependencies. In all the above modes, the user should have a pick mechanism as at present to adjust the default offerings. In "download from internet" and "install from internet" the offerings should be based on the setup.ini files (possibly with older and extra local packages included too). In "Install from local directory" only the packages actually present should be selectable. There should also be an easy way to get a display of all possible upgrades/additions. I don't mean a way to ask for all packages to be downloaded/installed - I'd rather have a list of packages I haven't got so I can then go through and pick one or two to try. Maybe that's already possible, but I haven't found out how to do it yet. Also, a "purge local directory" option would be wonderful. Now I have a development environment set up I may take a look to see what would be involved in implementing some of this (though I'd imagine the setup experts would know better). -- Cliff -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/