Thread: pginstaller - pginst: Fix two Vista issues found recently: Fix 1 *****
pginstaller - pginst: Fix two Vista issues found recently: Fix 1 *****
From
dpage@pgfoundry.org (User Dpage)
Date:
Log Message: ----------- Fix two Vista issues found recently: Fix 1 ***** Per http://blogs.msdn.com/astebner/archive/2007/01/09/problems-with-custom-actions-that-depend-on-the-visual-c-8-0-runtime-files-on-windows-vista.aspx On a Vista machine without the VC++ runtimes preinstalled, initdb will fail. We fix that by bundling the vc_redist.exe runtime installer in both the main installer package, and now in the no-installer package. SETUP.bat and UPGRADE.bat are modified to run the runtime installer with minimal UI, prior to launching the main installer. Notes: - We still ship the runtimes in the main installer so pre-Vista machines can ignore SETUP.bat and the external installer if required. - The version of vc_redist.exe shipped is that supplied with Visual Studio, *not* the one offered for free download on the Microsoft website. The latter version adds a second IExpress wrapper with a EULA, and therefore requires a difference command line to install. The correct version must be used. - Users repackaging/silent installing the MSIs are responsible for pre-installing the runtimes on their target machines. Fix 2 ***** On Windows Vista, a service set to run with a user account of <machinename>\<username> will cause the Service Control Manager to start the Netlogon service as a dependency of PostgreSQL in some circumstances. This fails on standalone machines as Netlogon will terminate because it knows it's not on a domain and shouldn't be needed, however this causes the SCM to terminate startup of Postgres as well. This is resolved by using a user account in the form .\<username>. To avoid using that potentially unclear notation in the installer UI, the patch adds a SCMSERVICEDOMAIN property which is set during the ServiceValidate action and used when installing the service. If the domain specified matches the machine name, it sets it to '.', otherwise it sets it to the value of SERVICEDOMAIN (which may have been set to an actual domain name). Modified Files: -------------- pginst/ca: pginstca.c (r1.119 -> r1.120) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/ca/pginstca.c.diff?r1=1.119&r2=1.120) pginst/package: setup.bat (r1.2 -> r1.3) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/package/setup.bat.diff?r1=1.2&r2=1.3) upgrade.bat (r1.7 -> r1.8) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/package/upgrade.bat.diff?r1=1.7&r2=1.8) pginst: paths.projinc.in (r1.6 -> r1.7) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/paths.projinc.in.diff?r1=1.6&r2=1.7) pginst.proj (r1.15 -> r1.16) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/pginst.proj.diff?r1=1.15&r2=1.16) pginst/wxs: pginst.wxs (r1.227 -> r1.228) (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pginstaller/pginst/wxs/pginst.wxs.diff?r1=1.227&r2=1.228)