classification
Title: Don't install wininst*.exe on non-Windows platforms
Type: Stage: resolved
Components: Library (Lib) Versions: Python 3.9
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: dstufft, eric.araujo, ned.deily, vstinner
Priority: normal Keywords: patch

Created on 2019-07-01 12:37 by vstinner, last changed 2019-07-23 16:21 by ned.deily. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 14511 merged vstinner, 2019-07-01 12:48
Messages (5)
msg347010 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-07-01 12:37
bdist_wininst only works on Windows: see bpo-10945 and commit 72cd653c4ed7a4f8f8fb06ac364b08a97085a2b5. So $PREFIX/lib/python3.9/distutils/command/wininst-*.exe are useless on Linux (for example).

Attached PR modify "make install" to not longer install wininst-*.exe files.

I propose to only modify Python 3.9. Even if bdist_wininst only works on Windows on Python 3.*, I don't feel the need to modify other branches.

I also started a "Deprecate bdist_wininst" discussion on the Packaging list:
https://discuss.python.org/t/deprecate-bdist-wininst/1929

--

Currently, I get these .exe files:

$ find /opt/py39dbg/ -name "*.exe"
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui-64.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui-32.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli-64.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli-32.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-10.0-amd64.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-10.0.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-14.0-amd64.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-14.0.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-6.0.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-7.1.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-8.0.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-9.0-amd64.exe
/opt/py39dbg/lib/python3.9/distutils/command/wininst-9.0.exe

site-packages/setuptools/ and site-packages/pip/ are out of the scope of this issue.


With my PR:

vstinner@apu$ find /opt/py39dbg/ -name "*.exe"
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui-64.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/gui-32.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli-64.exe
/opt/py39dbg/lib/python3.9/site-packages/setuptools/cli-32.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/w64.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/w32.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/t64.exe
/opt/py39dbg/lib/python3.9/site-packages/pip/_vendor/distlib/t32.exe

/opt/py39dbg/lib/python3.9/distutils/command/wininst-*.exe files are gone.


--


wininst-*.exe files are created from PC/bdist_wininst/ program.

October 2018, there was a discussion about the license of these files:
https://mail.python.org/pipermail/python-dev/2018-October/155507.html

The Fedora package of Python 3.7 already explicitly removes these .exe files:

* https://bugzilla.redhat.com/show_bug.cgi?id=525469
* https://src.fedoraproject.org/rpms/python3/c/1092d478f540ba9d510316205eca201e5c5d07e9?branch=master
* https://bugzilla.redhat.com/show_bug.cgi?id=1426250
* https://bugzilla.redhat.com/show_bug.cgi?id=1426257
msg347012 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-07-01 12:45
Debian doesn't distribute wininst*.exe binaries in their python* packages. debian/rules explicitly removes thesee files:

find $(d) -name 'wininst*.exe' | xargs -r rm -f

--

RHEL7 issue closed as WONTFIX:
https://bugzilla.redhat.com/show_bug.cgi?id=1566459
msg347973 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-07-15 15:19
New changeset e8692818afd731c1b7e925c626ac8200b1f1c31e by Victor Stinner in branch 'master':
bpo-37468: make install no longer install wininst-*.exe files (GH-14511)
https://github.com/python/cpython/commit/e8692818afd731c1b7e925c626ac8200b1f1c31e
msg347974 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-07-15 15:24
I sent a notice to python-dev about this change. If someone considers that my change is wrong on Cygwin or MinGW, please propose a pull request.
https://mail.python.org/archives/list/python-dev@python.org/thread/53T647PT4F5QZ5NOX2GDLMMPC5EPJY4Y/

In the meanwhile, I close the issue. Thanks for the review Paul Ganssle!
msg348340 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-07-23 16:21
The merged PR broke "make libinstall" and, hence, "make install" with at least some versions of make.  See Issue37653.
History
Date User Action Args
2019-07-23 16:21:11ned.deilysetnosy: + ned.deily
messages: + msg348340
2019-07-15 15:24:49vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg347974

stage: patch review -> resolved
2019-07-15 15:19:19vstinnersetmessages: + msg347973
2019-07-01 18:07:59vstinnersetnosy: + eric.araujo, dstufft
2019-07-01 12:48:40vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request14327
2019-07-01 12:45:17vstinnersetmessages: + msg347012
2019-07-01 12:37:49vstinnercreate