This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

setup redownloads everything all the time, including the packages list, and also has a foolish UI

On Fri, 3 Sep 2004 16:14:09 +0100, Dave Korn <> wrote:
>   By design, setup searches through all the download directories, keeps
> track of all the versions, should know exactly what you've already got and > never re-download something you already have; if it ever does, it's a bug.
>   There is one caveat: if setup dies - actually crashes or is killed -
> part-way through downloading a whole series of packages, it may not have
> updated its catalog by the time it gets terminated, and so it might download
> them again.  But once setup has downloaded and exited successfully, it
> should know and remember what it's done and not do it again.

Trying to compile various programs while installing the absolute minimum required. I install the compiler for the language, attempt compilation, make note of failures (i.e. missing libraries, etc), and then run setup again (usually 30 seconds from the previous run).

Run setup again, install from local disk? That does not make sense, to install things which have not been downloaded. So I choose install from internet, which re-downloads everything. It is not clear from the user interface or from the options or from the FAQ, exactly what the behavior is intended to be.

Setup re-downloads the entire 2MB packages file every single time. Ignoring for a moment the great difficulty of use of the poorly designed Setup GUI, it appears to remember to "keep" what I already have. But then it proceeds to re-download everything I already have, in addition to whatever new things I have selected. I am aware that dependencies may well trigger downloads in excess of what I have selected, and that is desired. But downloading all the same compilers, tools, and libraries that were already installed? The setup app doesn't appear to crash, so it should be able to update its files. The program should be able to at the very least, detect and preserve timestamp of file (Last-Modified header for http - which describes most of the mirrors I see in the list, ftp file info if available), and should do a comparison of timestamps, and not re-download the same thing over and over, just seconds or minutes later, when no change has occurred on server.

In other cases, the poorly designed GUI has such insane usability issues, and often does crash. Subsequent runs of setup starts in the "Pending" list, which is empty. Must mouse click to the drop-down box, and choose something sane, like category. Click a category to expand it, now what you want is several screens down. Scroll wheel mouse down, oops, the focus is stuck in the drop-down box, and you scroll to a different view. Anything you had expanded or scrolled or selected gets discarded. Clicking back to category display, and attempting to expand categories, randomly acts as if the category is empty. The category [+] sign changes to a [-] yet there is no other change to the display, i.e. no packages shown.

To get the mouse focus to the panel of the window where the packages are listed, you have to click a package. But clicking a package name, even though it may highlight that row, still does not change focus from the drop-down box. The only thing that changes focus is to click on the package version/install area to toggle installation, which may or may not be triggering dependencies, and typically yields undesireable results indicative of this foolish UI design. Hitting the tab key one moves the focus off the drop-down box, but it is not at all clear where the focus goes. Hitting tab key a second time, the UI element below the package list gains focus, so presumably the previous focus was the package list. But using up/down arrow or page-up/page-down keys doesn't seem to navigate anything in the package list, and any subsequent clicks seem to crash the app at random. In the event that the app doesn't crash, the mouse focus may be on the list, and one may be able to scroll.

This app would have been ahead of it's time, if it was invented in the 1980s, but was barely acceptable back in the 1990s. 20+ years have passed, and there has been zero progress in the installation process, design, usability or robustness. This is the area of the project that is most severely lacking. The work done on other aspects of CygWin is much appreciated, and packages function quite admirably in general. Competent UI design may well be outside the skillset of the current setup maintainer. Either one should venture outside one's comfort zone to acquire new skills, or the project should task someone to work in conjunction to design not just look and feel, but behavior and infrastructure.

The suggestion to simply "mirror everything" is inconsistent with the suggestion to "not install everything because you won't need most of it", therefore I consider that an invalid argument. Mirroring a 1+GB repository to compensate for failure to properly design and implement an intelligent installer, is stupid, and wasteful of bandwidth, time, and disk space.


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]