* (macOS) PyInstaller now removes all rpaths from collected binaries
and replaces them with a single rpath pointing to the top-level
application directory, relative to ``@loader_path``. (:issue:`7664`)
* Attempt to preserve the parent directory layout for ``pywin32``
extensions that originate from ``win32`` and ``pythonwin`` directories,
instead of collecting those extensions to top-level application directory.
(:issue:`7627`)
Bugfix
* (Linux/macOS) Fix the Qt directory path override in ``PySide2`` and
``PySide6`` run-time hooks. These paths, set via ``QT_PLUGIN_PATH`` and
``QML2_IMPORT_PATH`` environment variables, are used with ``PySide2``
and ``PySide6`` builds that that use system-wide Qt installation and
are not portable by default (e.g., Homebrew). (:issue:`7649`)
* (macOS) When rewriting the dylib identifier and paths to linked
libraries in a collected binary, instead of directly using
``@loader_path``-based path, use ``@rpath``-based path and replace
rpaths in the binary with a single rpath that points to the top-level
application directory, relative to ``@loader_path``. This ensures that
the library identifiers of collected shared libraries and their
references in referring binaries always match, which allows packages
to pre-load a library from an arbitrary location via for example
``ctypes``. (:issue:`7664`)
* (Windows) Fix string serialization of ``VSVersionInfo`` to account for
the possibility of ``StringStruct`` values containing quote characters.
(:issue:`7630`)
* Attempt to fix compatibility of PyInstaller's ``PyiFrozenImporter`` with
``importlib.util.LazyLoader``. (:issue:`7657`)
* Attempt to mitigate issues with Anaconda ``pywin32`` package that
result from the package installing three copies of ``pywintypes3X.dll``
and ``pythoncom3X.dll`` in different locations. (:issue:`7627`)
* Changes made to ``datas`` and ``binaries`` lists that are passed to
``Analysis`` constructor will now invalidate the cached ``Analysis``
and trigger a re-build. This applies both to changes made by editing
the .spec file manually and to automatic changes due to addition or
removal of corresponding command-line options (:option:`--add-data`,
:option:`--add-binary`, :option:`--collect-data`,
:option:`--collect-binaries`, :option:`--copy-metadata`).
Previously, changes might not have taken effect as the old cached build
was returned if available and unless user explicitly requested a clean
build using the :option:`--clean` command-line option. (:issue:`7653`)
</tr></table>
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/d44373a8ba07fc8719dad6de0ad834b8012578ad"><code>d44373a</code></a> Release v5.12.0. [skip ci]</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/e295cd6855a41d6408b6157b457a0b3bb4ce78e3"><code>e295cd6</code></a> compat: add ipaddress module to base modules for python >= 3.11.4</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/fbfc241f36cd3557448a6dafd7aa18fea5d64c6c"><code>fbfc241</code></a> CI/CD: Unpin Python+Alpine test container.</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/b979afea14bc89da17e1f524c76838c785f2ae4b"><code>b979afe</code></a> CI/CD: Alpine: Drop lxml build libraries.</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/57c5c01f3ce340a384c72751158c7ba8393c8139"><code>57c5c01</code></a> Docs: Unpin cerfi (<a href="https://redirect.github.com/pyinstaller/pyinstaller/issues/7684">#7684</a>)</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/14de9a3487be2ade955a87d1dc9369d997ab6bff"><code>14de9a3</code></a> hookutils: qt: collect qt_{lang} translation files</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/da382ede1711e3f6bb5ddba38b467bf49aad9453"><code>da382ed</code></a> splash: perform binary dependency analysis on Tcl/Tk shared libraries</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/9faaaf07412981a25e629241025ec110ada6e865"><code>9faaaf0</code></a> bootloader: splash: gracefully handle failure to load Tcl/Tk libs</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/fd7da05062fa41617ab773a5c30ffe089902a2d9"><code>fd7da05</code></a> tests: splash: extend splash tests with tkinter-enabled variant</li>
<li><a href="https://github.com/pyinstaller/pyinstaller/commit/1a667d97733d875a6d515574ca733767cffe9a35"><code>1a667d9</code></a> Tests: Requirements: Scheduled weekly dependency update for week 23 (<a href="https://redirect.github.com/pyinstaller/pyinstaller/issues/7677">#7677</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/pyinstaller/pyinstaller/compare/v5.10.1...v5.12.0">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pyinstaller&package-manager=pip&previous-version=5.10.1&new-version=5.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps pyinstaller from 5.10.1 to 5.12.0.
Release notes
Sourced from pyinstaller's releases.
Changelog
Sourced from pyinstaller's changelog.