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]

Re: Bash/strtoimax error on setup


> Bash-3.0-8 requires cygwin-1.5.18 or newer, in order to satisfy the
> strtoimax entry point.  But according to your cygcheck output, you
> now have that version:

> >     Cygwin DLL version info:
> >         DLL version: 1.5.18
> 
> > bash                    3.0-8

> My guess is that you were upgrading cygwin and bash at the same
> time, and that you had some cygwin process running during the
> upgrade.  Because cygwin was in use, it could not get replaced right
> away (and after all the popups about missing strtoimax for anything
> that tried to run the new bash, you probably also got a later popup
> window telling you that in-use files were replaced and you needed
> to reboot), so the new bash postinstall script could not copy bash
> to /bin/sh because the new bash couldn't run with the old locked
> cygwin.  I'm also guessing that you rebooted as requested before
> producing the cygtrace output, but now that /etc/postinstall/bash.sh
> was marked .done, you didn't realize that /bin/sh had still not been
> copied.

I always upgrade cygwin as a separate step after I've upgraded the
rest of my packages,
deselecting it manually on the package choose screen, so that I don't
run into missing
files during preremove, etc.  So probably the error occurred because I
upgraded bash first,
and then the scripts tried to run with the new bash and the old
cygwin.  It didn't occur to me
that bash wouldn't work with the old cygwin version.

Next time I should try to upgrade cygwin first, but it's a pain in the
current version
of setup.exe because it involves deselecting everything else manually.
 (If there's a way
to deselect everything at once, and leave it in a mode where you can
actually select a
program to upgrade, then I'd like to know about it, because it always
seems to put setup
into a mode where you can only reinstall, not upgrade.  But anyway...)

I know for a fact that I was not running Cygwin at the time of the
upgrade, nor any services,
because I don't have any services set up on my machine.  I didn't
receive a reboot
message, either.  I did upgrade cygwin before running the cygcheck output, true.

> Upgrades really should not be done while cygwin1.dll is in use, and
> it will be nice when the next version of setup.exe is released which
> can warn that cygwin is in use to prevent problems like this.

It wouldn't have helped with my problem, though...

> Actually, it is better to copy than to link, because if you hard link /bin/sh
> to bash, then bash cannot be used to upgrade /bin/sh (because it is
> in use), whereas a copy can be freely upgraded.  For now, the easiest
> course of action is probably just using setup.exe to reinstall the latest
> version of bash.

It was just a symbolic link, actually, but I've lost track of how .exe
magic works with
those, so I might just copy instead.  Or reinstall bash, as you suggest.

Thanks for clearing up the source of the problem.  The worst part of
it, frankly, was the
unkillable dialog box, which led me to reboot anyway.

--
--Alfvaen (Web page: http://www.telusplanet.net/public/alfvaen/ )
Current Album--Sophie Ellis-Bextor:Read My Lips
Current Book--Terry Pratchett:The Wee Free Men
Whatever you wish for me, may you have twice as much.

--
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/


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