elf: make patchelf a dependency
Metadata
Current evaluation
Merged after reviewer approval and CI checks. The change corrects patchelf handling by removing it from build_tools and properly configuring it as a dependency via debian/control for deb packages and snapcraft bundling for snaps.
Suggested action: —
No scores available.
Issue body
Making it a build_tools entry in the project_loader was the wrong
call, we do not for example do the same for xdelta3. We should
instead be handling it through the delivery mechanisms in place,
such that it is in debian/control for the deb and bundled in the
snapcraft snap when running from there.
Signed-off-by: Sergio Schvezov <sergio.schvezov@canonical.com>
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after reviewer approval and CI checks. The change corrects patchelf handling by removing it from build_tools and properly configuring it as a dependency via debian/control for deb packages and snapcraft bundling for snaps. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Moved patchelf from build_tools to proper delivery mechanisms, ensuring it is included in debian/control for Debian packages and bundled within the snapcraft snap. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Moved patchelf from project_loader build_tools to standard delivery mechanisms, declaring it in debian/control for deb packages and bundling it in the snapcraft snap for correct dependency handling. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3841 elf: add elf file patcher | snapcraft | merged | Merged an ELF file patcher using patchelf, ported from Snapcraft 6.x. Approved by one reviewer, passed CI checks, and increased test coverage by 0.26%. Resolves CRAFT-1191. | |
| #5486 build: add patchelf to make dependencies | snapcraft | merged | Merged to add patchelf to development environment dependencies, resolving test failures on self-hosted runners. Approved by two reviewers and passed CI checks. | |
| #1873 elf: cleaner patchelf experience | snapcraft | merged | Merged improvements to patchelf handling. The change uses the system patchelf by default, copies files to prevent hard-link conflicts, and provides fallback instructions. Approved by two reviewers and passed CI checks before merging. | |
| #2006 many: use packaging logic to get patchelf | snapcraft | merged | Merged following reviewer approval and CI checks. Refactored patchelf retrieval to use shared packaging logic, aligning its version across snap and deb packages. Modified four files with a net reduction of 24 lines. | |
| #1798 elf: strip the .note.go.buildid to make room for patching elf | snapcraft | merged | Merged. Strips the .note.go.buildid section from ELF binaries to resolve patchelf compatibility issues and fix build failures. Approved after passing CI checks. Introduces a newer patchelf build-snap dependency to ensure correct header patching. | |
| #2081 elf: patch everything instead of a subset of elf files | snapcraft | merged | Merged a pull request that restores Snapcraft 2.39 behavior by patching all ELF files instead of a subset, reverting a prior change. Approved and passed CI. | |
| #1967 project_loader: improve the logic to install patchelf as a build tool | snapcraft | merged | Merged changes improving patchelf installation logic by excluding it on xenial/armhf and xenial/s390x due to broken builds. Users must provide it manually or use the build-snap. Approved and merged after clarifying error handling and architecture exclusions. | |
| #3589 snap: correct patch apply for patchelf | snapcraft | merged | Merged a two-line fix correcting patch application for patchelf. Approved by a reviewer, passed CI, and merged to master. An unrelated test failure was noted but disregarded to proceed. | |
| #1742707 patchelf is missing from snapcraft Depends: | snapcraft (launchpad) | closed | Closed. Package dependencies were updated to include patchelf, resolving the missing binary error during snap builds. | |
| #1864 debian/control: Add patchelf to Depends: | snapcraft | closed | Closed without merging. Maintainers declined adding patchelf to Debian dependencies due to Xenial version constraints, noting it is supplied via build snaps or Docker images. Abandoned in favor of existing distribution methods. |