refactor: rewrite elf file support
Metadata
Current evaluation
Merged as c841273, replacing Snapcraft-derived ELF handling with deb-oriented library dependency support. Symbol support was deferred to follow-up work.
Resolution: closed resolved
Reason: PR #75 was merged with commit c841273 and explicitly fixes #72. The change rewrites ELF handling to cover the libraries needed for Debian package builds.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Replace ELF file support from Snapcraft with an implementation that
better matches deb building needs. This currently handles needed
libraries. Symbols support to be added in a forthcoming PR.
Fixes: #72
- [ ] Have you followed the guidelines for contributing?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `make lint && make test`?
---
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as c841273, replacing Snapcraft-derived ELF handling with deb-oriented library dependency support. Symbol support was deferred to follow-up work. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in canonical/debcraft#75 via c841273, replacing Snapcraft’s ELF support with an implementation tailored to deb builds. Needed libraries are handled; symbol support remains forthcoming. | |
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Replaced Snapcraft's ELF file support with a deb-focused implementation handling needed libraries, resolving #72. Symbol support deferred to a subsequent PR. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/debcraft#72
(confidence 100%)
The ELF handling issue explicitly fixed by PR #75.
-
Related To:
canonical/debcraft#104
(confidence 95%)
Later merged PR c70ce26 added the deferred symbols-based dependency support.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #72 Refactor ELF file handling | debcraft | closed | ELF handling was rewritten for Debcraft’s .deb workflow in merged PR #75 (commit c841273), replacing Snapcraft-derived code with shared-library dependency support; symbol handling was deferred. | |
| #3839 elf: add elf file handler class | snapcraft | merged | PR #3839 was merged into main as commit 6830dc69c, porting the Snapcraft 6.x ElfFile handler into snapcraft/elf/_elf_file.py with helpers, ELF errors, and unit tests (CRAFT-1192). | |
| #1666 Refactor to support elf patching | snapcraft | closed | ELF patching support was refactored by merged PR #1744 in commit ec7ba948a, converting the ELF implementation into reusable libraries. | |
| #2929 elf: fixes for corrupt shared objects | snapcraft | merged | Merged PR snapcore/snapcraft#2929 (commit 051f24e07, Feb 2020) catching elftools ConstructErrors as CorruptedElfFileError and skipping corrupt shared objects during library crawling. | |
| #3840 elf: add handling and patching helpers | snapcraft | merged | Merged in snapcore/snapcraft#3840 via commit 8a9914510, adding helpers to enumerate ELF binaries and locate architecture-specific dynamic linkers. | |
| #1744 elf: conversion from libraries | snapcraft | merged | Merged as ec7ba948a: converted snapcraft/internal/libraries.py into ELF-focused elf.py with type hints and mypy fixes, fixing #1666. Reviewer syntax/lint concerns were handled by follow-up PR #1745 (flake8 upgrade). | |
| #3841 elf: add elf file patcher | snapcraft | merged | Merged PR #3841 in commit e03a971b3, adding a patchelf-based ELF file patcher ported from Snapcraft 6.x for CRAFT-1191. | |
| #3514 elf: add fallback methods to detect library dependencies | snapcraft | merged | Merged in snapcore/snapcraft#3514 (commit 76ca948c4): ELF dependency detection now falls back from ldd to host-libc6 preloading and loader tracing before warning. | |
| #2830 elf: properly handle corrupted ELF files | snapcraft | merged | Merged #2830 as commit 727ffbdb0, making Snapcraft warn and continue when corrupted ELF files are encountered during priming. |