Skip to content

Update patchelf>=0.19.1 #1966

Closed
Closed

Description

@mayeut

In order to unblock #1878, patchelf needs to be updated.

Each update of patchelf usually comes with various regressions.
Rather than applying the update and wait for regressions bugs to pop-up as in #1421, let's wait for a bit of beta testing reports.

This issue serves for reporting success/failing updates.
Please add 🚀 reaction if you tested this successfully, otherwise please report the regression upstream linking to this issue.

In order to test this, patchelf can be updated in the image by running pipx install -f patchelf==0.19.1.0rc1.
If you use cibuildwheel, it could be as easy as adding it to your linux before-all command:

diff --git a/pyproject.toml b/pyproject.toml
index 928b8e3..5827c61 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -55,5 +55,9 @@ environment-pass = [
   "OS-NAME",
   "RUNNER_ARCH",
 ]
+
+[tool.cibuildwheel.linux]
+before-all = "pipx install -f patchelf==0.19.1.0rc1"
+
 [project.entry-points.pkg_config]
 scipy-openblas = 'scipy_openblas64.lib.pkgconfig'

This version has been tested successfully with latest images in pypa/auditwheel#708 and gcc-15 images in pypa/auditwheel#664.

Activity

  1. pinned this issue on Jul 4, 2026
  2. changed the title [-]Update `patchelf>=0.19.0`[/-] [+]Update `patchelf>=0.19.1`[/+] on Jul 7, 2026
  3. hiSandog commented on Jul 11, 2026

    @hiSandog

    Besides raising the minimum version, a smoke test should exercise the specific behavior that requires patchelf 0.19.1. Since manylinux publishes several architecture and policy variants, the check should cover every image family that installs it. The documentation could also state whether the binary comes from the distribution or is built from source.

  4. mayeut commented on Jul 11, 2026

    @mayeut
    MemberAuthor

    Besides raising the minimum version, a smoke test should exercise the specific behavior that requires patchelf 0.19.1. Since manylinux publishes several architecture and policy variants, the check should cover every image family that installs it.

    This is done through auditwheel tests for now. There's no easy way to add this here (except in an unmerged PR).

    The documentation could also state whether the binary comes from the distribution or is built from source.

    It already does say where the patchelf binary comes from: https://github.com/pypa/manylinux#image-content

  5. frankier commented on Aug 6, 2026

    @frankier

    Works great and fixes several issues with older versions of patchelf including this one: NixOS/patchelf#639

    I understand the caution, but this version seems overall better and it is still possible for people to workaround things by installing another version on top in their CI config.

  6. mayeut commented on Aug 8, 2026

    @mayeut
    MemberAuthor

    So far, no one reported anything breaking.

    The next run of the update workflow will update patchelf to 0.19.1.0

  7. marcelotduarte commented on Aug 12, 2026

    @marcelotduarte
    Contributor

    I used patchelf 0.19.1.0 w/ cibuildwheel to build wheels of freeze-core (local tests only), and it worked.
    In cx_Freeze, enable it to be used in marcelotduarte/cx_Freeze#3415 and the functional tests passed.

  8. mayeut commented on Aug 15, 2026

    @mayeut
    MemberAuthor

    #1982 has been merged with the updated patchelf

  9. unpinned this issue on Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions