? ChangeLog.new ? libgpg-error/autom4te.cache Index: postinstall.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/postinstall.cc,v retrieving revision 2.21 diff -p -u -r2.21 postinstall.cc --- postinstall.cc 16 Apr 2006 22:26:44 -0000 2.21 +++ postinstall.cc 10 Aug 2008 13:01:38 -0000 @@ -107,6 +107,24 @@ do_postinstall_thread (HINSTANCE h, HWND packages.push_back(&pkg); ++i; } + + // Hard-coding this isn't great, but the shell is a special case. + for (i = packages.begin (); i != packages.end (); ++i) + { + if ((*i)->name == "bash") + { + log (LOG_PLAIN) << "Found bash, swapping to first position." << endLog; + // Found it! Exchange it with first. + if (i != packages.begin ()) + { + packagemeta *temp = *i; + *i = *packages.begin (); + *packages.begin () = temp; + } + break; + } + } + int numpkg = packages.size() + 1; int k = 0; for (i = packages.begin (); i != packages.end (); ++i) Index: script.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/script.cc,v retrieving revision 2.27 diff -p -u -r2.27 script.cc --- script.cc 28 Feb 2007 00:55:04 -0000 2.27 +++ script.cc 10 Aug 2008 13:01:38 -0000 @@ -238,12 +238,16 @@ Script::run() const if (retval) log(LOG_PLAIN) << "abnormal exit: exit code=" << retval << endLog; + + /* if the script failed with 'bad interpreter', leave it not done. */ + if (retval != 126) + { + /* if file exists then delete it otherwise just ignore no file error */ + io_stream::remove ("cygfile://" + scriptName + ".done"); - /* if file exists then delete it otherwise just ignore no file error */ - io_stream::remove ("cygfile://" + scriptName + ".done"); - - io_stream::move ("cygfile://" + scriptName, + io_stream::move ("cygfile://" + scriptName, "cygfile://" + scriptName + ".done"); + } return retval; }