]> granicus.if.org Git - python/commitdiff
Issue #19728: Enable pip installation by default on Windows.
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 2 Jan 2014 13:12:30 +0000 (14:12 +0100)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 2 Jan 2014 13:12:30 +0000 (14:12 +0100)
Misc/NEWS
Tools/msi/msi.py

index 060402fcb8cfebbc9f986b908b47c9c97a963f54..69f43b01c370db16950a1e6ba9d64a3fa01ad3fc 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -303,6 +303,8 @@ Tests
 Build
 -----
 
+- Issue #19728: Enable pip installation by default on Windows.
+
 - Issue #16136: Remove VMS support
 
 - Issue #18215: Add script Tools/ssl/test_multiple_versions.py to compile and
index 694875a682ec302819c01e61f1fad8325671b042..b2c0a05376d5871499999393a4f05d2f39f5a739 100644 (file)
@@ -422,7 +422,7 @@ 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
+    removepipargs = r'-m ensurepip._uninstall'
     # See "CustomAction Table"
     add_data(db, "CustomAction", [
         # msidbCustomActionTypeFirstSequence + msidbCustomActionTypeTextData + msidbCustomActionTypeProperty
@@ -441,7 +441,7 @@ def add_ui(db):
         ("CompileGrammar", 18, "python.exe", lib2to3args),
         # msidbCustomActionTypeInScript (1024); run during actual installation
         ("UpdatePip", 18+1024, "python.exe", updatepipargs),
-        #("RemovePip", 18, "python.exe", removepipargs),
+        ("RemovePip", 18, "python.exe", removepipargs),
         ])
 
     # UI Sequences, see "InstallUISequence Table", "Using a Sequence Table"
@@ -480,10 +480,10 @@ def add_ui(db):
              ("UpdateEditIDLE", None, 1050),
              # run command if install state of pip changes to INSTALLSTATE_LOCAL
              # run after InstallFiles
-             ("UpdatePip", "&pip=3", 4001),
+             ("UpdatePip", "&pip_feature=3", 4001),
              # remove pip when state changes to INSTALLSTATE_ABSENT
              # run before RemoveFiles
-             #("RemovePip", "&pip=2", 3499),
+             ("RemovePip", "&pip_feature=2", 3499),
              ("CompilePyc", "COMPILEALL", 6800),
              ("CompilePyo", "COMPILEALL", 6801),
              ("CompileGrammar", "COMPILEALL", 6802),
@@ -862,7 +862,7 @@ def add_features(db):
     # Features that have no advertisement trigger (e.g. the test suite)
     # must not support advertisement
     global default_feature, tcltk, htmlfiles, tools, testsuite
-    global ext_feature, private_crt, prepend_path, update_pip
+    global ext_feature, private_crt, prepend_path, pip_feature
     default_feature = Feature(db, "DefaultFeature", "Python",
                               "Python Interpreter and Libraries",
                               1, directory = "TARGETDIR")
@@ -886,10 +886,10 @@ def add_features(db):
                     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",
+    pip_feature = Feature(db, "pip_feature", "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)
+                    parent = default_feature, attributes=2|8)
     testsuite = Feature(db, "Testsuite", "Test suite",
                         "Python test suite (Lib/test/)", 13,
                         parent = default_feature, attributes=2|8)
@@ -1206,6 +1206,8 @@ def add_registry(db):
                "Documentation"),
               ("REGISTRY.path", msilib.gen_uuid(), "TARGETDIR", registry_component, None,
               None),
+              ("REGISTRY.ensurepip", msilib.gen_uuid(), "TARGETDIR", registry_component, "EnsurePipRun",
+              None),
               ("REGISTRY.def", msilib.gen_uuid(), "TARGETDIR", registry_component,
                None, None)] + tcldata)
     # See "FeatureComponents Table".
@@ -1223,6 +1225,7 @@ def add_registry(db):
              [(default_feature.id, "REGISTRY"),
               (htmlfiles.id, "REGISTRY.doc"),
               (prepend_path.id, "REGISTRY.path"),
+              (pip_feature.id, "REGISTRY.ensurepip"),
               (ext_feature.id, "REGISTRY.def")] +
               tcldata
               )
@@ -1309,7 +1312,9 @@ def add_registry(db):
                "", r"[TARGETDIR]Python.exe", "REGISTRY.def"),
               ("DisplayIcon", -1,
                r"Software\Microsoft\Windows\CurrentVersion\Uninstall\%s" % product_code,
-               "DisplayIcon", "[TARGETDIR]python.exe", "REGISTRY")
+               "DisplayIcon", "[TARGETDIR]python.exe", "REGISTRY"),
+              # Fake registry entry to allow installer to track whether ensurepip has been run
+              ("EnsurePipRun", -1, prefix+r"\EnsurePipRun", "", "#1", "REGISTRY.ensurepip"),
               ])
     # Shortcuts, see "Shortcut Table"
     add_data(db, "Directory",