----------------
Features
~~~~~~~~
* Provide setuptools entrypoints to enable other packages to provide
PyInstaller hooks specific to that package, along with tests for these
hooks.
Maintainers of Python packages requiring hooks are invited to use this new
feature and provide up-to-date PyInstaller support along with their package.
This is quite easy, see our `sample project`__ for more information
(:issue:`4232`, :issue:`4301`, :issue:`4582`).
Many thanks to Bryan A. Jones for implementing the important parts.
__ https://github.com/pyinstaller/hooksample
* A new package `pyinstaller-hooks-contrib`__ provides monthly updated hooks
now. This package is installed automatically when installing PyInstaller,
but can be updated independently.
Many thanks to Legorooj for setting up the new package
and moving the hooks there.
__ https://github.com/pyinstaller/pyinstaller-hooks-contrib
* Added the ``excludes`` and ``includes`` arguments to the hook utility
function ``collect_data_files``.
* Change the hook collection order so that the hook-priority is command line,
then entry-point, then PyInstaller builtins. (:issue:`4876`)
Bugfix
~~~~~~
* (AIX) Include python-malloc labeled libraries in search for libpython.
(:issue:`4738`)
* (win32) Fix Security Alerts caused by subtle implementation differences
between posix anf windows in ``os.path.dirname()``. (:issue:`4707`)
* (win32) Fix struct format strings for versioninfo. (:issue:`4861`)
* (Windows) cv2: bundle the `opencv_videoio_ffmpeg*.dll`, if available.
(:issue:`4999`)
* (Windows) GLib: bundle the spawn helper executables for `g_spawn*` API.
(:issue:`5000`)
* (Windows) PySide2.QtNetwork: search for SSL DLLs in `PrefixPath` in addition
to `BinariesPath`. (:issue:`4998`)
* (Windows) When building with 32-bit python in onefile mode, set the
``requestedExecutionLevel`` manifest key every time and embed the manifest.
(:issue:`4992`)
* * (AIX) Fix uninitialized variable. (:issue:`4728`, :issue:`4734`)
* Allow building on a different drive than the source. (:issue:`4820`)
* Consider Python<version> as possible library binary path. Fixes issue where
python is not found if Python3 is installed via brew on OSX (:issue:`4895`)
* Ensure shared dependencies from onefile packages can be opened in the
bootloader.
* Ensuring repeatable builds of base_library.zip. (:issue:`4654`)
* Fix ``FileNotFoundError`` showing up in ``utils/misc.py`` which occurs when a
namespace was processed as an filename. (:issue:`4034`)
* Fix multipackaging. The `MERGE` class will now have the correct relative
paths
between shared dependencies which can correctly be opened by the bootloader.
(:issue:`1527`, :issue:`4303`)
* Fix regression when trying to avoid hard-coded paths in .spec files.
* Fix SIGTSTP signal handling to allow typing Ctrl-Z from terminal.
(:issue:`4244`)
* Update the base library to support encrypting Python bytecode (``--key``
option) again. Many thanks to Matteo Bertini for finally fixing this.
(:issue:`2365`, :issue:`3093`, :issue:`3133`, :issue:`3160`,
:issue:`3198`, :issue:`3316`, :issue:`3619`, :issue:`4241`,
:issue:`4652`)
* When stripping the leading parts of paths in compiled code objects, the
longest possible import path will now be stripped. (:issue:`4922`)
Incompatible Changes
~~~~~~~~~~~~~~~~~~~~
* Remove support for Python 2.7. The minimum required version is now Python
3.5. The last version supporting Python 2.7 was PyInstaller 3.6.
(:issue:`4623`)
* Many hooks are now part of the new `pyinstaller-hooks-contrib`
repository. See below for a detailed list.
Hooks
~~~~~
* Add hook for ``scipy.stats._stats`` (needed for scipy since 1.5.0).
(:issue:`4981`)
* Prevent hook-nltk from adding non-existing directories. (:issue:`3900`)
* Fix ``importlib_resources`` hook for modern versions (after 1.1.0).
(:issue:`4889`)
* Fix hidden imports in `pkg_resources`__ and `packaging`__ (:issue:`5044`)
- Add yet more hidden imports to pkg_resources hook.
- Mirror the pkg_resources hook for packaging which may or may not be
duplicate of ``pkg_resources._vendor.packaging``.
__ https://setuptools.readthedocs.io/en/latest/pkg_resources.html
__ https://packaging.pypa.io/en/latest/
* Update pkg_resources hook for setuptools v45.0.0.
* Add QtQmlModels to included libraries for QtWebEngine on OS X
(:issue:`4631`).
* Fix detecting Qt5 libraries and dependencies from conda-forge builds
(:issue:`4636`).
* Add an AssertionError message so that users who get an error due
to Hook conflicts can resolve it (:issue:`4626`).
* These hooks have been moved to the new
`pyinstaller-hooks-contrib`__ repository:
BTrees, Crypto, Cryptodome, IPython, OpenGL, OpenGL_accelerate,
Xlib, accessible_output2, adios, aliyunsdkcore, amazonproduct,
appdirs, appy, astor, astroid, astropy, avro, bacon, boto, boto3,
botocore, certifi, clr, countrycode, cryptography, cv2, cx_Oracle,
cytoolz, dateparser, dclab, distorm3, dns, docutils, docx, dynaconf,
enchant, enzyme, eth_abi, eth_account, eth_hash, eth_keyfile,
eth_utils, faker, flex, fmpy, gadfly, gooey, google.*, gst, gtk,
h5py, httplib, httplib2, imageio, imageio_ffmpeg, jedi, jinja2,
jira, jsonpath_rw_ext, jsonschema, jupyterlab, kinterbasdb,
langcodes, lensfunpy, libaudioverse, llvmlite, logilab, lxml, lz4,
magic, mako, markdown, migrate, mpl_toolkits, mssql, mysql, nacl,
names, nanite, nbconvert, nbdime, nbformat, ncclient, netCDF4, nltk,
nnpy, notebook, numba, openpyxl, osgeo, passlib, paste, patsy,
pendulum, phonenumbers, pint, pinyin, psychopy, psycopg2, pubsub,
pyarrow, pycountry, pycparser, pyexcel, pyexcelerate, pylint,
pymssql, pyodbc, pyopencl, pyproj, pysnmp, pytest, pythoncom,
pyttsx, pywintypes, pywt, radicale, raven, rawpy, rdflib, redmine,
regex, reportlab, reportlab, resampy, selenium, shapely, skimage,
sklearn, sound_lib, sounddevice, soundfile, speech_recognition,
storm, tables, tcod, tensorflow, tensorflow_corethon,
text_unidecode, textdistance, torch, ttkthemes, ttkwidgets, u1db,
umap, unidecode, uniseg, usb, uvloop, vtkpython, wavefile,
weasyprint, web3, webrtcvad, webview, win32com, wx, xml.dom,
xml.sax, xsge_gui, zeep, zmq.
__ https://github.com/pyinstaller/pyinstaller-hooks-contrib
* These hooks have been added while now moved to the new
`pyinstaller-hooks-contrib` repository: astor (:issue:`4400`,
:issue:`4704`), argon2 (:issue:`4625`) bcrypt. (:issue:`4735`),
(Bluetooth Low Energy platform Agnostic Klient for Python) (:issue:`4649`)
jaraco.text (:issue:`4576`, :issue:`4632`), LightGBM. (:issue:`4634`),
xmldiff (:issue:`4680`), puremagic (identify a file based off it's magic
numbers) (:issue:`4709`) webassets (:issue:`4760`), tensorflow_core (to
support tensorflow module forwarding logic (:issue:`4400`, :issue:`4704`)
* These changes have been applied to hooks now moved to the new
`pyinstaller-hooks-contrib` repository
- Update Bokeh hook for v2.0.0. (:issue:`4742`, :issue:`4746`)
- Fix shapely hook on Windows for non-conda shapely installations.
(:issue:`2834`, :issue:`4749`)
Bootloader
~~~~~~~~~~
* Rework bootloader from using strcpy/strncpy with "is this string
terminated"-check to use snprintf(); check success at more places. (This
started from fixing GCC warnings for strncpy and strncat.)
* Fix: When copying files, too much data was copied in most cases. This
corrupted the file and inhibited using shared dependencies. (:issue:`4303`)
* In debug and windowed mode, show the traceback in dialogs to help debug
pyiboot01_bootstrap errors. (:issue:`4213`, :issue:`4592`)
* Started a small test-suite for bootloader basic functions. (:issue:`4585`)
Documentation
~~~~~~~~~~~~~
* Add platform-specific usage notes and bootloader build notes for AIX.
(:issue:`4731`)
PyInstaller Core
~~~~~~~~~~~~~~~~
* Provide setuptools entrypoints to enable other packages to provide
PyInstaller hooks specific to that package, along with tests for these hooks.
See https://github.com/pyinstaller/hooksample for more information.
(:issue:`4232`, :issue:`4582`)
Bootloader build
~~~~~~~~~~~~~~~~
* (AIX) The argument -X32 or -X64 is not recognized by the AIX loader - so this
code needs to be removed. (:issue:`4730`, :issue:`4731`)
* (OSX) Allow end users to override MACOSX_DEPLOYMENT_TARGET and
mmacosx-version-min
via environment variables and set 10.7 as the fallback value for both.
(:issue:`4677`)
* Do not print info about ``--noconfirm`` when option is already being used.
(:issue:`4727`)
* Update :command:`waf` to version 2.0.20 (:issue:`4839`)
Older Versions
-----------------
.. toctree::
:maxdepth: 1
:caption: Older Versions
CHANGES-3
CHANGES-2
CHANGES-1
.. include:: _common_definitions.txt
.. Emacs config:
Local Variables:
mode: rst
ispell-local-dictionary: "american"
End: