[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] installer/common/uninstall/platform/win/res
From:       dcollins () helixcommunity ! org
Date:       2011-02-22 23:57:23
Message-ID: 201102222357.p1MNvC0S018376 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/installer/common/uninstall/platform/win/res
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv21950

Modified Files:
      Tag: SERVER_14_2
	servuninst.rc 
Log Message:
Synopsis
========
Fixes PR 269355: 64 bit Server and proxy fail to install as NT services on 64 bit win2k8

Branches: HEAD, SERVER_14_2_RN
Reviewer: Chytanya


Description
===========

Windows Vista and later heuristically determines whether an executable
requires UAC elevation.  If so, you can see this from the application
icon, which will have a UAC shield superimposed over it.  When run,
it will ask the user for permission to continue.

The thing is, it only does this for 32-bit executables.  For 64-bit
builds, your binary needs to explicitly state that it requires UAC
elevation using an application manifest.  Please reference:
http://msdn.microsoft.com/en-us/library/aa905330.aspx

Because of this, the 32-bit installers were successfully installing the
service, while the 64-bit builds were not.

The solution is to create a .manifest file for the installer, and update
the instshell builds to reference it.  Similarly, the uninstaller needs
to explicitly request UAC elevation as well and also needs a similar
.manifest file.

With these changes, the installer and uninstaller both now show the UAC
shield as part of their icon.  When run, they each ask the user for
permission.

These changes were made for both the 32-bit and 64-bit builds for
more consistent behavior.  The default heuristics for 32-bits were not
guaranteed to work, whereas explicitly stating in the manifest
that UAC elevation is required is the documented approach.

We should document that installation/uninstallation requires Administrator
rights.


Files Affected
==============

server-restricted/installer/common/platform/win/res/instshell.manifest [new]
server-restricted/installer/common/platform/win/res/instshell.rc
server/installer/common/uninstall/platform/win/res/servuninst.manifest [new]
server/installer/common/uninstall/platform/win/res/servuninst.rc


Testing Performed
=================

Unit Tests:
- N/A

Integration Tests:
-

Leak Tests:
- N/A

Performance Tests:
- N/A

Platforms Tested: win-x86_64-vc10, win-x86-vc10
Builds Verified: win-x86_64-vc10, win-x86-vc10

QA Hints
========
- Fix affects both 32-bit and 64-bit Server and Proxy installers and
  uninstallers.
- Does not affect other platforms.
- Verify standard users (without Administrator rights) are prompted for
  an admin username/password to install and uninstall.
----------------------------
revision 1.1.2.2
date: 2011/02/22 20:02:21;  author: dcollins;  state: Exp;  lines: +18 -0
Synopsis
========
Fixes PR 269355: 64 bit Server and proxy fail to install as NT services on 64 bit win2k8

Branches: HEAD, SERVER_14_2_RN
Reviewer: Chytanya


Description
===========

Windows Vista and later heuristically determines whether an executable
requires UAC elevation.  If so, you can see this from the application
icon, which will have a UAC shield superimposed over it.  When run,
it will ask the user for permission to continue.

The thing is, it only does this for 32-bit executables.  For 64-bit
builds, your binary needs to explicitly state that it requires UAC
elevation using an application manifest.  Please reference:
http://msdn.microsoft.com/en-us/library/aa905330.aspx

Because of this, the 32-bit installers were successfully installing the
service, while the 64-bit builds were not.

The solution is to create a .manifest file for the installer, and update
the instshell builds to reference it.  Similarly, the uninstaller needs
to explicitly request UAC elevation as well and also needs a similar
.manifest file.

With these changes, the installer and uninstaller both now show the UAC
shield as part of their icon.  When run, they each ask the user for
permission.

These changes were made for both the 32-bit and 64-bit builds for
more consistent behavior.  The default heuristics for 32-bits were not
guaranteed to work, whereas explicitly stating in the manifest
that UAC elevation is required is the documented approach.

We should document that installation/uninstallation requires Administrator
rights.


Files Affected
==============

server-restricted/installer/common/platform/win/res/instshell.manifest [new]
server-restricted/installer/common/platform/win/res/instshell.rc
server/installer/common/uninstall/platform/win/res/servuninst.manifest [new]
server/installer/common/uninstall/platform/win/res/servuninst.rc


Testing Performed
=================

Unit Tests:
- N/A

Integration Tests:
-

Leak Tests:
- N/A

Performance Tests:
- N/A

Platforms Tested: win-x86_64-vc10, win-x86-vc10
Builds Verified: win-x86_64-vc10, win-x86-vc10

QA Hints
========
- Fix affects both 32-bit and 64-bit Server and Proxy installers and
  uninstallers.
- Does not affect other platforms.
- Verify standard users (without Administrator rights) are prompted for
  an admin username/password to install and uninstall.


Index: servuninst.rc
===================================================================
RCS file: /cvsroot/server/installer/common/uninstall/platform/win/res/servuninst.rc,v
retrieving revision 1.3
retrieving revision 1.3.280.1
diff -u -d -r1.3 -r1.3.280.1
--- servuninst.rc	23 Jan 2003 23:43:00 -0000	1.3
+++ servuninst.rc	22 Feb 2011 23:57:21 -0000	1.3.280.1
@@ -131,6 +131,15 @@
 #endif    // English (U.S.) resources
 /////////////////////////////////////////////////////////////////////////////
 
+/////////////////////////////////////////////////////////////////////////////
+//
+// Manifest
+//
+// Used for the uninstaller to request UAC elevation
+//
+#define MANIFEST_RESOURCE_ID 1
+MANIFEST_RESOURCE_ID RT_MANIFEST "servuninst.manifest"
+
 
 
 #ifndef APSTUDIO_INVOKED


_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic