Hi,

It seems recent versions of setup-x86.exe exit before the installation is
complete. Without the --no-admin option, the main installation is run as a
child process, and the parent doesn't wait for the child to complete. This
can cause a bit of a problem for other installers that install Cygwin (as
when setup.exe exits, Cygwin isn't installed).

Is something like the attached patch appropriate? It just waits for the
child process before exiting.

Cheers,
Jon

Index: main.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/main.cc,v
retrieving revision 2.75
diff -u -r2.75 main.cc
--- main.cc     18 Nov 2013 11:16:14 -0000      2.75
+++ main.cc     6 Mar 2014 12:02:16 -0000
@@ -295,6 +295,7 @@
                sei.lpVerb = "runas";
                sei.lpFile = exe_path;
                sei.nShow = SW_NORMAL;
+               sei.fMask |= SEE_MASK_NOCLOSEPROCESS;
 
                // Avoid another isRunAsAdmin check in the child.
                std::string command_line_cs (command_line);
@@ -322,6 +323,11 @@
                  }
                else
                  exit_msg = IDS_ELEVATED;
+
+        // Wait until child process is finished
+               if (sei.hProcess != NULL)
+                 WaitForSingleObject (sei.hProcess, INFINITE);
+            
                // Once we are set on course to privilege elevate, the parent
                // process is unnecessary.
                goto finish_up;

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

Reply via email to