mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	Issue #19550: Implement Windows installer changes of PEP 453 (ensurepip).
This commit is contained in:
		
							parent
							
								
									dc2fd5101a
								
							
						
					
					
						commit
						dd7436c613
					
				
					 2 changed files with 26 additions and 5 deletions
				
			
		| 
						 | 
					@ -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):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    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):
 | 
				
			||||||
        ("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):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 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):
 | 
				
			||||||
             ("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):
 | 
				
			||||||
    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):
 | 
				
			||||||
    # (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):
 | 
				
			||||||
    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):
 | 
				
			||||||
    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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue