On Fri, 3 Sep 2004 16:14:09 +0100, Dave Korn <d...@artimi.com> 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.
--
Leif
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple