aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/easy_install.py
diff options
context:
space:
mode:
authorPJ Eby <distutils-sig@python.org>2009-10-12 20:21:43 +0000
committerPJ Eby <distutils-sig@python.org>2009-10-12 20:21:43 +0000
commit81e2bb6c275be23a335e2735bb346559357b9d7e (patch)
tree5b38af0759edd5685b97e1d3ddf1c30da377ba7b /setuptools/command/easy_install.py
parent11e0e840b1d2b9b2e4326facb2f05eacec71bafa (diff)
downloadexternal_python_setuptools-81e2bb6c275be23a335e2735bb346559357b9d7e.tar.gz
external_python_setuptools-81e2bb6c275be23a335e2735bb346559357b9d7e.tar.bz2
external_python_setuptools-81e2bb6c275be23a335e2735bb346559357b9d7e.zip
Windows 64/Vista UAC fixes
--HG-- branch : setuptools-0.6 extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4075388
Diffstat (limited to 'setuptools/command/easy_install.py')
-rwxr-xr-xsetuptools/command/easy_install.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index a5a23ad4..af4e3497 100755
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -1590,13 +1590,54 @@ def get_script_args(dist, executable=sys_executable, wininst=False):
yield (name+ext, hdr+script_text, 't', [name+x for x in old])
yield (
name+'.exe', resource_string('setuptools', launcher),
- 'b' # write in binary mode
- )
+ 'b') # write in binary mode
+ yield (name+'.exe.manifest', _launcher_manifest % (name,), 't')
else:
# On other platforms, we assume the right thing to do is to
# just write the stub with no extension.
yield (name, header+script_text)
+_launcher_manifest = """
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0"
+ processorArchitecture="X86"
+ name="%s.exe"
+ type="win32"/>
+
+ <!-- Identify the application security requirements. -->
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>"""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
def rmtree(path, ignore_errors=False, onerror=auto_chmod):
"""Recursively delete a directory tree.