This is the mail archive of the
mailing list for the Cygwin project.
Re: Setup uninstall order
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: Chris January <chris at atomice dot net>
- Cc: cygwin-apps at cygwin dot com
- Date: Mon, 29 Sep 2003 09:21:35 -0400 (EDT)
- Subject: Re: Setup uninstall order
- References: <ICEBIHGCEJIPLNMBNCMKEEAGCNAA.firstname.lastname@example.org>
- Reply-to: cygwin-apps at cygwin dot com
On Mon, 29 Sep 2003, Chris January wrote:
> AFAICT uninstall of existing packages in Setup is done in an arbitrary (or
> possible alphabetical) order. Uninstall needs to be done in the reverse
> order of package dependancies (if that makes sense) if it is to succeed.
> i.e. if you build a dependancy graph/tree of all the packages, then the
> leaves should be uninstalled, then their parents and so on.
> The problem is that, for example, if the cygwin package is uninstalled, and
> then another package that has an uninstall script, the script can't run
> because the cygwin DLL has already been uninstalled.
This has been proposed more than once, IIRC. Unfortunately, this would
involve radically changing the uninstall logic (right now the package
object is asked to uninstall itself, and does all the necessary things).
Further, many things aren't even defined during uninstall, e.g., suppose
you have a circular dependence -- which package do you uninstall first?
You can't choose an arbitrary order, of course.
There are severe limitations on what a preremove script can do (and those
should be documented, but aren't). There are some kludges that will get a
semblance of ordering the uninstalls without actually doing so (e.g., run
all the preremove scripts in one big batch in reverse order of
dependences), but they might create more problems than they solve. If we
do it at all, we should probably do it right. Comments?
|\ _,,,---,,_ email@example.com
ZZZzz /,`.-'`' -. ;-;;,_ firstname.lastname@example.org
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton