classification
Title: Windows uninstallation should not remove launcher if other versions remain
Type: behavior Stage: resolved
Components: Installation, Windows Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: steve.dower Nosy List: chrullrich, paul.moore, python-dev, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2015-09-18 09:03 by chrullrich, last changed 2015-10-01 22:21 by steve.dower. This issue is now closed.

Messages (3)
msg250957 - (view) Author: Christian Ullrich (chrullrich) * Date: 2015-09-18 09:03
Uninstalling 3.5 on Windows removes the py.exe launcher. If it was installed in the system-wide path (%SYSTEMROOT%), it may have replaced an existing copy from an earlier version. In this case, removing the launcher will break this remaining installation, requiring a repair.

Instead, the launcher should not be deleted. It uses the static CRT, hence has no DLL dependencies that would be removed by the uninstallation, and it will -- as PEP 397 demands -- select the Python version it starts based on the command line and the available installations.

Ceterum censeo: This bug could have been avoided by using MSI as the distribution package format and using the same component code for the launcher file in all supporting versions. Even if the file itself is different, the identical component code would have ensured through reference counting that it would only have been removed with the last referencing installation. Upward compatibility of older launchers could have become a problem, though.
msg251377 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-09-23 01:07
I'm going to look into having the launcher's MSI stay behind when the bundle is removed, so it will have to be uninstalled separately. It can already be installed separately, though there isn't a really easy way to get the installer so you can do that.

(Because prior versions of Python did not always use the same component ID for the launcher, we have to have a break here. However, we now have a single MSI that is identical for all future versions, so the problem should not arise again.)
msg252068 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-10-01 22:20
New changeset a2d30dfa46a7 by Steve Dower in branch '3.5':
Issue #25165: Windows uninstallation should not remove launcher if other versions remain
https://hg.python.org/cpython/rev/a2d30dfa46a7
History
Date User Action Args
2015-10-01 22:21:01steve.dowersetstatus: open -> closed
resolution: fixed
stage: resolved
2015-10-01 22:20:35python-devsetnosy: + python-dev
messages: + msg252068
2015-09-23 01:07:11steve.dowersetassignee: steve.dower
messages: + msg251377
2015-09-18 09:03:04chrullrichcreate