Issue #20641: Run custom actions with the NoImpersonate flag to support UAC.

This commit is contained in:
Martin v. Löwis 2014-02-22 23:44:20 +01:00
parent 98681d4ac1
commit 1db0eacf3e
2 changed files with 12 additions and 11 deletions

View file

@ -116,6 +116,9 @@ Tests
Build Build
----- -----
- Issue #20641: Run MSI custom actions (pip installation, pyc compilation)
with the NoImpersonate flag, to support elevated execution (UAC).
- Issue #20221: Removed conflicting (or circular) hypot definition when - Issue #20221: Removed conflicting (or circular) hypot definition when
compiled with VS 2010 or above. Initial patch by Tabrez Mohammed. compiled with VS 2010 or above. Initial patch by Tabrez Mohammed.

View file

@ -435,12 +435,13 @@ def add_ui(db):
("SetLauncherDirToWindows", 307, "LAUNCHERDIR", "[WindowsFolder]"), ("SetLauncherDirToWindows", 307, "LAUNCHERDIR", "[WindowsFolder]"),
# msidbCustomActionTypeExe + msidbCustomActionTypeSourceFile # msidbCustomActionTypeExe + msidbCustomActionTypeSourceFile
# See "Custom Action Type 18" # See "Custom Action Type 18"
("CompilePyc", 18, "python.exe", compileargs),
("CompilePyo", 18, "python.exe", "-O "+compileargs),
("CompileGrammar", 18, "python.exe", lib2to3args),
# msidbCustomActionTypeInScript (1024); run during actual installation # msidbCustomActionTypeInScript (1024); run during actual installation
("UpdatePip", 18+1024, "python.exe", updatepipargs), # msidbCustomActionTypeNoImpersonate (2048); run action in system account, not user account
("RemovePip", 18, "python.exe", removepipargs), ("CompilePyc", 18+1024+2048, "python.exe", compileargs),
("CompilePyo", 18+1024+2048, "python.exe", "-O "+compileargs),
("CompileGrammar", 18+1024+2048, "python.exe", lib2to3args),
("UpdatePip", 18+1024+2048, "python.exe", updatepipargs),
("RemovePip", 18+1024+2048, "python.exe", removepipargs),
]) ])
# UI Sequences, see "InstallUISequence Table", "Using a Sequence Table" # UI Sequences, see "InstallUISequence Table", "Using a Sequence Table"
@ -483,17 +484,14 @@ def add_ui(db):
# remove pip when state changes to INSTALLSTATE_ABSENT # remove pip when state changes to INSTALLSTATE_ABSENT
# run before RemoveFiles # run before RemoveFiles
("RemovePip", "&pip_feature=2", 3499), ("RemovePip", "&pip_feature=2", 3499),
("CompilePyc", "COMPILEALL", 6800), ("CompilePyc", "COMPILEALL", 4002),
("CompilePyo", "COMPILEALL", 6801), ("CompilePyo", "COMPILEALL", 4003),
("CompileGrammar", "COMPILEALL", 6802), ("CompileGrammar", "COMPILEALL", 4004),
]) ])
add_data(db, "AdminExecuteSequence", add_data(db, "AdminExecuteSequence",
[("InitialTargetDir", 'TARGETDIR=""', 750), [("InitialTargetDir", 'TARGETDIR=""', 750),
("SetDLLDirToTarget", 'DLLDIR=""', 751), ("SetDLLDirToTarget", 'DLLDIR=""', 751),
("SetLauncherDirToTarget", 'LAUNCHERDIR=""', 752), ("SetLauncherDirToTarget", 'LAUNCHERDIR=""', 752),
("CompilePyc", "COMPILEALL", 6800),
("CompilePyo", "COMPILEALL", 6801),
("CompileGrammar", "COMPILEALL", 6802),
]) ])
##################################################################### #####################################################################