bug in setup.exe?

Igor Pechtchanski pechtcha@cs.nyu.edu
Wed Feb 9 03:15:00 GMT 2005

On Tue, 8 Feb 2005, Swenson, Eric wrote:

> I've run into the following situation on several machines now, at multiple
> times -- each with different versions of cygwin (so I'm not following the
> bug reporting procedure as I think the version information provided by
> cygcheck isn't really relevant and as I'm currently in a non-cygwin-working
> state as a result of this issue).
> Frequently, when running setup.exe and specifying that all packages should
> be installed (the mode I almost always use), setup.exe bombs while
> uninstalling a package that it knows it needs to update with the error that
> cygwin1.dll is not found.  Indeed, at the point the dialog box comes up
> telling me that cygwin1.dll wasn't found, if I check, it has indeed been
> deleted from my /bin directory (actually d:\cygwin\bin).  I suspect this is
> because setup has determined that it needs to upgrade my cygwin1.dll, and
> therefore must uninstall the old one first and then install the new one.
> The problem is, that either setup itself (doubtful) or one or more of the
> uninstall/install scripts needs cygwin1.dll in order to run successfully.
> Can anyone in the "know" tell me how this is supposed to work?

This is indeed a (known, long-standing) bug in setup.exe.  The problem is
that some packages have pre-remove scripts that prepare a package for
removal.  These scripts are run when the packages are removed, which
happens in alphabetical order of package names, so the scripts will bomb
out if their packages happen to follow the "cygwin" package

It's clear that one needs to run all pre-remove scripts before removing
the actual package files.  It's also clear that the alphabetical package
name order is the wrong order to run pre-remove scripts in.  What is not
clear is what the right order is.  <http://cygwin.com/acronyms/#PTC>. :-)

> I tried searching the mailing lists, but the cygwin site says that
> searching was disabled due to your recent disk crash.  I tried searching
> on google and only found one relevant reference
> (http://sources.redhat.com/ml/cygwin/2002-12/msg01346.html) and that
> page didn't lead me to any responses.
> If you press the ok button on the dialog telling you that cygwin1.dll
> was not found, setup proceeds with the next package.  Frequently, I have
> to press OK many times (depending on the packages needing to be
> installed, of course) in order to get to the end of setup.  Sometimes I
> can get through with a successfull uninstall/install of the necessary
> packages and cygwin1.dll does get installed again.  But the packages
> whose uninstall/install depended on cygwin1.dll, of course, were not
> actually "correctly" uninstalled or installed.
> Ideas?  -- Eric

One possible idea is to find out which packages have pre-remove scripts

find /etc/preremove -type f | xargs cygcheck -f | sort -u

to find those) and upgrade them before upgrading everything else.  This,
of course, carries other problems with it (i.e., the postinstall scripts
may need the new versions of cygwin1.dll, etc).  Ultimately, this needs to
be fixed in setup.exe (once we figure out the right way of doing it).
There was some discussion of this in the cygwin-apps archives (search for
"preremove", I think).
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"The Sun will pass between the Earth and the Moon tonight for a total
Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT

Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

More information about the Cygwin mailing list