Skip to content

Commit

Permalink
bpo-42802: Remove distutils bdist_wininst command (GH-24043)
Browse files Browse the repository at this point in the history
The distutils bdist_wininst command deprecated in Python 3.8 has been
removed. The distutils bidst_wheel command is now recommended to
distribute binary packages on Windows.

* Remove Lib/distutils/command/bdist_wininst.py
* Remove PC/bdist_wininst/ project
* Remove Lib/distutils/command/wininst-*.exe programs
* Remove all references to bdist_wininst
  • Loading branch information
vstinner authored Jan 8, 2021
1 parent 68e1f25 commit 0e2a0f7
Show file tree
Hide file tree
Showing 40 changed files with 17 additions and 4,057 deletions.
18 changes: 0 additions & 18 deletions Doc/distutils/apiref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1862,11 +1862,6 @@ Subclasses of :class:`Command` must define the following methods.

.. _Windows Installer: https://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx

In most cases, the ``bdist_msi`` installer is a better choice than the
``bdist_wininst`` installer, because it provides better support for
Win64 platforms, allows administrators to perform non-interactive
installations, and allows installation through group policies.


:mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a Redhat RPM and SRPM
===========================================================================================
Expand All @@ -1878,19 +1873,6 @@ Subclasses of :class:`Command` must define the following methods.
.. % todo
:mod:`distutils.command.bdist_wininst` --- Build a Windows installer
====================================================================

.. module:: distutils.command.bdist_wininst
:synopsis: Build a Windows installer

.. deprecated:: 3.8
Use bdist_wheel (wheel packages) instead.


.. % todo
:mod:`distutils.command.sdist` --- Build a source distribution
==============================================================

Expand Down
86 changes: 2 additions & 84 deletions Doc/distutils/builtdist.rst
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,6 @@ The available formats for built distributions are:
+-------------+------------------------------+---------+
| ``sdux`` | HP-UX :program:`swinstall` | |
+-------------+------------------------------+---------+
| ``wininst`` | self-extracting ZIP file for | \(4) |
| | Windows | |
+-------------+------------------------------+---------+
| ``msi`` | Microsoft Installer. | |
+-------------+------------------------------+---------+

Expand Down Expand Up @@ -141,14 +138,9 @@ generated by each, are:
+--------------------------+-------------------------------------+
| :command:`bdist_rpm` | rpm, srpm |
+--------------------------+-------------------------------------+
| :command:`bdist_wininst` | wininst |
+--------------------------+-------------------------------------+
| :command:`bdist_msi` | msi |
+--------------------------+-------------------------------------+

.. note::
bdist_wininst is deprecated since Python 3.8.

.. note::
bdist_msi is deprecated since Python 3.9.

Expand Down Expand Up @@ -190,8 +182,7 @@ The former allows you to specify RPM-specific options; the latter allows you to
easily specify multiple formats in one run. If you need to do both, you can
explicitly specify multiple :command:`bdist_\*` commands and their options::

python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>" \
bdist_wininst --target-version="2.0"
python setup.py bdist_rpm --packager="John Doe <jdoe@example.org>"

Creating RPM packages is driven by a :file:`.spec` file, much as using the
Distutils is driven by the setup script. To make your life easier, the
Expand Down Expand Up @@ -299,61 +290,6 @@ file winds up deep in the "build tree," in a temporary directory created by
.. % to the \file{.spec} file.)
.. _creating-wininst:

Creating Windows Installers
===========================

.. warning::
bdist_wininst is deprecated since Python 3.8.

.. warning::
bdist_msi is deprecated since Python 3.9.

Executable installers are the natural format for binary distributions on
Windows. They display a nice graphical user interface, display some information
about the module distribution to be installed taken from the metadata in the
setup script, let the user select a few options, and start or cancel the
installation.

Since the metadata is taken from the setup script, creating Windows installers
is usually as easy as running::

python setup.py bdist_wininst

or the :command:`bdist` command with the :option:`!--formats` option::

python setup.py bdist --formats=wininst

If you have a pure module distribution (only containing pure Python modules and
packages), the resulting installer will be version independent and have a name
like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary
distributions in only supported on Windows systems.

If you have a non-pure distribution, the extensions can only be created on a
Windows platform, and will be Python version dependent. The installer filename
will reflect this and now has the form :file:`foo-1.0.win32-py2.0.exe`. You
have to create a separate installer for every Python version you want to
support.

The installer will try to compile pure modules into :term:`bytecode` after installation
on the target system in normal and optimizing mode. If you don't want this to
happen for some reason, you can run the :command:`bdist_wininst` command with
the :option:`!--no-target-compile` and/or the :option:`!--no-target-optimize`
option.

By default the installer will display the cool "Python Powered" logo when it is
run, but you can also supply your own 152x261 bitmap which must be a Windows
:file:`.bmp` file with the :option:`!--bitmap` option.

The installer will also display a large title on the desktop background window
when it is run, which is constructed from the name of your distribution and the
version number. This can be changed to another text by using the
:option:`!--title` option.

The installer file will be written to the "distribution directory" --- normally
:file:`dist/`, but customizable with the :option:`!--dist-dir` option.

.. _cross-compile-windows:

Cross-compiling on Windows
Expand All @@ -370,10 +306,7 @@ For example, on a 32bit version of Windows, you could execute::

python setup.py build --plat-name=win-amd64

to build a 64bit version of your extension. The Windows Installers also
support this option, so the command::

python setup.py build --plat-name=win-amd64 bdist_wininst
to build a 64bit version of your extension.

would create a 64bit installation executable on your 32bit version of Windows.

Expand Down Expand Up @@ -462,18 +395,3 @@ built-in functions in the installation script.
and *iconindex* is the index of the icon in the file *iconpath*. Again, for
details consult the Microsoft documentation for the :class:`IShellLink`
interface.


Vista User Access Control (UAC)
===============================

Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-control`
option. The default is 'none' (meaning no UAC handling is done), and other
valid values are 'auto' (meaning prompt for UAC elevation if Python was
installed for all users) and 'force' (meaning always prompt for elevation).

.. note::
bdist_wininst is deprecated since Python 3.8.

.. note::
bdist_msi is deprecated since Python 3.9.
1 change: 0 additions & 1 deletion Doc/distutils/commandref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,5 @@ anything except backslash or colon.
.. % \subsection{\protect\command{bdist}}
.. % \subsection{\protect\command{bdist\_dumb}}
.. % \subsection{\protect\command{bdist\_rpm}}
.. % \subsection{\protect\command{bdist\_wininst}}
11 changes: 0 additions & 11 deletions Doc/distutils/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -112,17 +112,6 @@ the setup script. The difference is which Distutils *commands* they use: the
:command:`install` is more often for installers (although most developers will
want to install their own code occasionally).

If you want to make things really easy for your users, you can create one or
more built distributions for them. For instance, if you are running on a
Windows machine, and want to make things easy for other Windows users, you can
create an executable installer (the most appropriate type of built distribution
for this platform) with the :command:`bdist_wininst` command. For example::

python setup.py bdist_wininst

will create an executable installer, :file:`foo-1.0.win32.exe`, in the current
directory.

Other useful built distribution formats are RPM, implemented by the
:command:`bdist_rpm` command, Solaris :program:`pkgtool`
(:command:`bdist_pkgtool`), and HP-UX :program:`swinstall`
Expand Down
1 change: 0 additions & 1 deletion Doc/extending/building.rst
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,5 @@ If the source distribution has been built successfully, maintainers can also
create binary distributions. Depending on the platform, one of the following
commands can be used to do so. ::

python setup.py bdist_wininst
python setup.py bdist_rpm
python setup.py bdist_dumb
8 changes: 8 additions & 0 deletions Doc/whatsnew/3.10.rst
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,14 @@ by :func:`curses.color_content`, :func:`curses.init_color`,
support is provided by the underlying ncurses library.
(Contributed by Jeffrey Kintscher and Hans Petter Jansson in :issue:`36982`.)

distutils
---------

The ``bdist_wininst`` command deprecated in Python 3.8 has been removed.
The ``bidst_wheel`` command is now recommended to distribute binary packages
on Windows.
(Contributed by Victor Stinner in :issue:`42802`.)

doctest
-------

Expand Down
1 change: 0 additions & 1 deletion Lib/distutils/command/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
'bdist',
'bdist_dumb',
'bdist_rpm',
'bdist_wininst',
'check',
'upload',
# These two are reserved for future use:
Expand Down
4 changes: 1 addition & 3 deletions Lib/distutils/command/bdist.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class bdist(Command):

# Establish the preferred order (for the --help-formats option).
format_commands = ['rpm', 'gztar', 'bztar', 'xztar', 'ztar', 'tar',
'wininst', 'zip', 'msi']
'zip', 'msi']

# And the real information.
format_command = {'rpm': ('bdist_rpm', "RPM distribution"),
Expand All @@ -71,8 +71,6 @@ class bdist(Command):
'xztar': ('bdist_dumb', "xz'ed tar file"),
'ztar': ('bdist_dumb', "compressed tar file"),
'tar': ('bdist_dumb', "tar file"),
'wininst': ('bdist_wininst',
"Windows executable installer"),
'zip': ('bdist_dumb', "ZIP file"),
'msi': ('bdist_msi', "Microsoft Installer")
}
Expand Down
2 changes: 0 additions & 2 deletions Lib/distutils/command/bdist_msi.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# Copyright (C) 2005, 2006 Martin von Löwis
# Licensed to PSF under a Contributor Agreement.
# The bdist_wininst command proper
# based on bdist_wininst
"""
Implements the bdist_msi command.
"""
Expand Down
Loading

0 comments on commit 0e2a0f7

Please sign in to comment.