Kaydet (Commit) dd7436c6 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

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

üst dc2fd510
...@@ -293,6 +293,8 @@ Tests ...@@ -293,6 +293,8 @@ Tests
Build Build
----- -----
- Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
- Issue #19520: Fix compiler warning in the _sha3 module on 32bit Windows. - 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 - Issue #19356: Avoid using a C variabled named "_self", it's a reserved
......
...@@ -420,6 +420,8 @@ def add_ui(db): ...@@ -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"' 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()"' 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" # See "CustomAction Table"
add_data(db, "CustomAction", [ add_data(db, "CustomAction", [
# msidbCustomActionTypeFirstSequence + msidbCustomActionTypeTextData + msidbCustomActionTypeProperty # msidbCustomActionTypeFirstSequence + msidbCustomActionTypeTextData + msidbCustomActionTypeProperty
...@@ -436,6 +438,9 @@ def add_ui(db): ...@@ -436,6 +438,9 @@ def add_ui(db):
("CompilePyc", 18, "python.exe", compileargs), ("CompilePyc", 18, "python.exe", compileargs),
("CompilePyo", 18, "python.exe", "-O "+compileargs), ("CompilePyo", 18, "python.exe", "-O "+compileargs),
("CompileGrammar", 18, "python.exe", lib2to3args), ("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" # UI Sequences, see "InstallUISequence Table", "Using a Sequence Table"
...@@ -462,7 +467,7 @@ def add_ui(db): ...@@ -462,7 +467,7 @@ def add_ui(db):
# Prepend TARGETDIR to the system path, and remove it on uninstall. # Prepend TARGETDIR to the system path, and remove it on uninstall.
add_data(db, "Environment", add_data(db, "Environment",
[("PathAddition", "=-*Path", "[TARGETDIR];[~]", "REGISTRY.path")]) [("PathAddition", "=-*Path", "[TARGETDIR];[TARGETDIR]Scripts;[~]", "REGISTRY.path")])
# Execute Sequences # Execute Sequences
add_data(db, "InstallExecuteSequence", add_data(db, "InstallExecuteSequence",
...@@ -472,6 +477,12 @@ def add_ui(db): ...@@ -472,6 +477,12 @@ def add_ui(db):
("SetLauncherDirToWindows", 'LAUNCHERDIR="" and ' + sys32cond, 753), ("SetLauncherDirToWindows", 'LAUNCHERDIR="" and ' + sys32cond, 753),
("SetLauncherDirToTarget", 'LAUNCHERDIR="" and not ' + sys32cond, 754), ("SetLauncherDirToTarget", 'LAUNCHERDIR="" and not ' + sys32cond, 754),
("UpdateEditIDLE", None, 1050), ("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), ("CompilePyc", "COMPILEALL", 6800),
("CompilePyo", "COMPILEALL", 6801), ("CompilePyo", "COMPILEALL", 6801),
("CompileGrammar", "COMPILEALL", 6802), ("CompileGrammar", "COMPILEALL", 6802),
...@@ -751,7 +762,8 @@ def add_ui(db): ...@@ -751,7 +762,8 @@ def add_ui(db):
advanced = PyDialog(db, "AdvancedDlg", x, y, w, h, modal, title, advanced = PyDialog(db, "AdvancedDlg", x, y, w, h, modal, title,
"CompilePyc", "Ok", "Ok") "CompilePyc", "Ok", "Ok")
advanced.title("Advanced Options for [ProductName]") 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, advanced.checkbox("CompilePyc", 135, 60, 230, 50, 3,
"COMPILEALL", "Compile .py files to byte code after installation", "Ok") "COMPILEALL", "Compile .py files to byte code after installation", "Ok")
...@@ -848,7 +860,8 @@ def add_features(db): ...@@ -848,7 +860,8 @@ def add_features(db):
# (i.e. additional Python libraries) need to follow the parent feature. # (i.e. additional Python libraries) need to follow the parent feature.
# Features that have no advertisement trigger (e.g. the test suite) # Features that have no advertisement trigger (e.g. the test suite)
# must not support advertisement # 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", default_feature = Feature(db, "DefaultFeature", "Python",
"Python Interpreter and Libraries", "Python Interpreter and Libraries",
1, directory = "TARGETDIR") 1, directory = "TARGETDIR")
...@@ -870,8 +883,14 @@ def add_features(db): ...@@ -870,8 +883,14 @@ def add_features(db):
tools = Feature(db, "Tools", "Utility Scripts", tools = Feature(db, "Tools", "Utility Scripts",
"Python utility scripts (Tools/)", 9, "Python utility scripts (Tools/)", 9,
parent = default_feature, attributes=2) 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", testsuite = Feature(db, "Testsuite", "Test suite",
"Python test suite (Lib/test/)", 11, "Python test suite (Lib/test/)", 13,
parent = default_feature, attributes=2|8) parent = default_feature, attributes=2|8)
# prepend_path is an additional feature which is to be off by default. # 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 # Since the default level for the above features is 1, this needs to be
...@@ -879,7 +898,7 @@ def add_features(db): ...@@ -879,7 +898,7 @@ def add_features(db):
prepend_path = Feature(db, "PrependPath", "Add python.exe to Path", prepend_path = Feature(db, "PrependPath", "Add python.exe to Path",
"Prepend [TARGETDIR] to the system Path variable. " "Prepend [TARGETDIR] to the system Path variable. "
"This allows you to type 'python' into a command " "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, parent = default_feature, attributes=2|8,
level=2) level=2)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment