← Back to issue list

elf: add elf file patcher

View original Github issue

Metadata

Project
snapcraft
Number
#3841
Type
pull request
State
merged
Author
cmatsuoka
Labels
Created
Updated
Closed

Current evaluation

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.

Suggested action:

No scores available.

Issue body

Patch ELF files using patchelf. This is a port of the corresponding class from Snapcraft 6.x. Co-authored-by: Kyle Fazzari <kyrofa@ubuntu.com> Co-authored-by: Chris Patterson <chris.patterson@canonical.com> Co-authored-by: Sergio Schvezov <sergio.schvezov@canonical.com> Signed-off-by: Claudio Matsuoka <claudio.matsuoka@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] Have you successfully run `make lint`? - [x] Have you successfully run `pytest tests/unit`? ----- CRAFT-1191

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.6-35b-a3b 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.
qwen3.6-35b-a3b-mtp-q6 Merged into main. Adds an ELF file patcher using patchelf, ported from Snapcraft 6.x. Increased overall coverage by 0.26% with 89.47% diff coverage. Co-authored by Kyle Fazzari, Chris Patterson, and Sergio Schvezov.
qwen3.6-35b-a3b-mtp-q6 Merged an ELF file patcher using patchelf, ported from Snapcraft 6.x. Integration into main added two files and 137 lines, increased coverage by 0.26%, and passed all lint and unit tests.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#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.
81%
#3839 elf: add elf file handler class snapcraft merged Merged into main. Introduces an ELF file handler class with extraction helpers, ported from Snapcraft 6.x. Approved by a reviewer, rebased on main, and merged with a 0.46% test coverage increase.
80%
#1888 elf: make patchelf a dependency snapcraft merged 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.
80%
#75 refactor: rewrite elf file support debcraft merged Merged rewrite of ELF file support to better match deb building needs, replacing Snapcraft's implementation. Handles needed libraries; symbol support deferred. Approved by two reviewers, passed all CI checks, and resolves #72.
77%
#3985 elf: patch elf files for classic mode snapcraft merged Merged into main. Patches ELF binaries for classic mode to use the base snap interpreter and libraries, or bundled components if libc is staged, when enable-patchelf is enabled. Approved, passed CI, and merged.
77%
#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.
77%
#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.
77%
#3840 elf: add handling and patching helpers snapcraft merged Merged into main following reviewer approval and passing CI checks. Introduces ELF binary listing and dynamic linker location helpers, adding handling and patching utilities to the elf module while increasing test coverage.
76%
#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.
76%
#3588 snap: patch patchelf on riscv64 (CRAFT-566) snapcraft merged Merged to master. Conditionally applies patchelf patches on riscv64 to prevent breaking other architectures. Approved by one reviewer, passed CI, and added 104 lines across three files without impacting test coverage.
76%