Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).

This commit is contained in:
Martin v. Löwis 2013-11-19 17:02:36 +01:00
parent dc2fd5101a
commit dd7436c613
2 changed files with 26 additions and 5 deletions

View File

@ -293,6 +293,8 @@ Tests
Build
-----
- Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
- Issue #19520: Fix compiler warning in the _sha3 module on 32bit Windows.
- Issue #19356: Avoid using a C variabled named "_self", it's a reserved

View File

@ -420,6 +420,8 @@ def add_ui(db):
compileargs = r'-Wi "[TARGETDIR]Lib\compileall.py" -f -x "bad_coding|badsyntax|site-packages|py2_|lib2to3\\tests|venv\\scripts" "[TARGETDIR]Lib"'
lib2to3args = r'-c "import lib2to3.pygram, lib2to3.patcomp;lib2to3.patcomp.PatternCompiler()"'
updatepipargs = r'-m ensurepip -U'
removepipargs = r'-m ensurepip -r' # does not yet work
# See "CustomAction Table"
add_data(db, "CustomAction", [
# msidbCustomActionTypeFirstSequence + msidbCustomActionTypeTextData + msidbCustomActionTypeProperty
@ -436,6 +438,9 @@ def add_ui(db):
("CompilePyc", 18, "python.exe", compileargs),
("CompilePyo", 18, "python.exe", "-O "+compileargs),
("CompileGrammar", 18, "python.exe", lib2to3args),
# msidbCustomActionTypeInScript (1024); run during actual installation
("UpdatePip", 18+1024, "python.exe", updatepipargs),
#("RemovePip", 18, "python.exe", removepipargs),
])
# UI Sequences, see "InstallUISequence Table", "Using a Sequence Table"
@ -462,7 +467,7 @@ def add_ui(db):
# Prepend TARGETDIR to the system path, and remove it on uninstall.
add_data(db, "Environment",
[("PathAddition", "=-*Path", "[TARGETDIR];[~]", "REGISTRY.path")])
[("PathAddition", "=-*Path", "[TARGETDIR];[TARGETDIR]Scripts;[~]", "REGISTRY.path")])
# Execute Sequences
add_data(db, "InstallExecuteSequence",
@ -472,6 +477,12 @@ def add_ui(db):
("SetLauncherDirToWindows", 'LAUNCHERDIR="" and ' + sys32cond, 753),
("SetLauncherDirToTarget", 'LAUNCHERDIR="" and not ' + sys32cond, 754),
("UpdateEditIDLE", None, 1050),
# run command if install state of pip changes to INSTALLSTATE_LOCAL
# run after InstallFiles
("UpdatePip", "&pip=3", 4001),
# remove pip when state changes to INSTALLSTATE_ABSENT
# run before RemoveFiles
#("RemovePip", "&pip=2", 3499),
("CompilePyc", "COMPILEALL", 6800),
("CompilePyo", "COMPILEALL", 6801),
("CompileGrammar", "COMPILEALL", 6802),
@ -751,7 +762,8 @@ def add_ui(db):
advanced = PyDialog(db, "AdvancedDlg", x, y, w, h, modal, title,
"CompilePyc", "Ok", "Ok")
advanced.title("Advanced Options for [ProductName]")
# A radio group with two options: allusers, justme
# A checkbox whether to build pyc files
advanced.checkbox("CompilePyc", 135, 60, 230, 50, 3,
"COMPILEALL", "Compile .py files to byte code after installation", "Ok")
@ -848,7 +860,8 @@ def add_features(db):
# (i.e. additional Python libraries) need to follow the parent feature.
# Features that have no advertisement trigger (e.g. the test suite)
# must not support advertisement
global default_feature, tcltk, htmlfiles, tools, testsuite, ext_feature, private_crt, prepend_path
global default_feature, tcltk, htmlfiles, tools, testsuite
global ext_feature, private_crt, prepend_path, update_pip
default_feature = Feature(db, "DefaultFeature", "Python",
"Python Interpreter and Libraries",
1, directory = "TARGETDIR")
@ -870,8 +883,14 @@ def add_features(db):
tools = Feature(db, "Tools", "Utility Scripts",
"Python utility scripts (Tools/)", 9,
parent = default_feature, attributes=2)
# pip installation isn't enabled by default until a clean uninstall procedure
# becomes possible
update_pip = Feature(db, "pip", "pip",
"Install (or upgrade from an earlier version) pip, "
"a tool for installing and managing Python packages.", 11,
parent = default_feature, attributes=2|8, level=2)
testsuite = Feature(db, "Testsuite", "Test suite",
"Python test suite (Lib/test/)", 11,
"Python test suite (Lib/test/)", 13,
parent = default_feature, attributes=2|8)
# prepend_path is an additional feature which is to be off by default.
# Since the default level for the above features is 1, this needs to be
@ -879,7 +898,7 @@ def add_features(db):
prepend_path = Feature(db, "PrependPath", "Add python.exe to Path",
"Prepend [TARGETDIR] to the system Path variable. "
"This allows you to type 'python' into a command "
"prompt without needing the full path.", 13,
"prompt without needing the full path.", 15,
parent = default_feature, attributes=2|8,
level=2)