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: <4FC99DFBEFD0D211888F0090272B96E3076012AC@us-sj-xmsg-4.am.sony.com> From: "Swenson, Eric" To: "'cygwin AT cygwin DOT com'" , "'pechtcha AT cs DOT nyu DOT edu'" Subject: RE: bug in setup.exe? Date: Tue, 8 Feb 2005 15:05:43 -0800 MIME-Version: 1.0 Content-Type: text/plain Thanks, Igor. Would another possible solution be to have setup special case *only* the cygwin-dll package? Have it run all the pre-remove scripts first, then if the cygwin-dll package needs updating, do that, and then do the rest? Then, packages that have a dependency on cygwin1.dll in their scripts can be marked as needing to be run before (or after for post-remove) the cygwin-dll update. Then, the actual ordering algorithm is simply: run pre-remove scripts, remove cygwin.dll, install new cygwin.dll, and then run post-remove scripts. -- Eric > -----Original Message----- > From: Igor Pechtchanski [mailto:pechtcha AT cs DOT nyu DOT edu] > Sent: Tuesday, February 08, 2005 2:59 PM > To: Swenson, Eric > Cc: cygwin AT cygwin DOT com > Subject: Re: bug in setup.exe? > > > 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 > alphabetically. > > 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. > . :-) > > > 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 > (run > > 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). > Igor > -- > http://cs.nyu.edu/~pechtcha/ > |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu > ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT 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/