sources: support "deb" sources
Metadata
Current evaluation
Merged. Adds deb source support by unpacking packages via dpkg-deb and refactors extract_deb() for reuse. Resolves CRAFT-117, approved by one reviewer, passes CI, and changes +289/-10 lines across seven files.
Suggested action: —
No scores available.
Issue body
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
Unpack deb packages in the same way that the stage-packages DebPackage
does (via dpkg-deb). This motivates a small refactoring to move
"extract_deb()" to a place that both handlers can use.
A lot of the code on this PR comes from a work-in-progress branch by @cmatsuoka . Thanks!
-----
CRAFT-117
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Adds deb source support by unpacking packages via dpkg-deb and refactors extract_deb() for reuse. Resolves CRAFT-117, approved by one reviewer, passes CI, and changes +289/-10 lines across seven files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Implements deb source support by unpacking packages via dpkg-deb, mirroring stage-packages behavior. Refactored extract_deb() for handler reuse. Code primarily authored by @cmatsuoka. Addresses CRAFT-117. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #811 Support deb files as sources | snapcraft | merged | Merged support for using .deb files as sources. The change integrates a minimal test deb package, modifies seven files, and was approved by a reviewer. Resolves LP #1604669. | |
| #48 packages: add deb support | craft-parts | merged | Merged, adding Ubuntu deb repository support to refresh package lists, fetch stage packages, and install build packages. Approved by two reviewers, passed CI checks, and introduced 1,313 lines across seven files. | |
| #963 sources: refactor deb source into module. | snapcraft | merged | Merged refactoring changes that extract Deb source logic into a dedicated module at sources/_deb.py. This restructuring advances progress on Launchpad bug #1648906 and passes CI checks with maintained code coverage. | |
| #1729 sources: use arfile to extract debs | snapcraft | merged | Merged a fix replacing DebFile with ArFile to extract .deb packages, resolving apt_inst import failures on non-Debian hosts. Approved and merged after passing CI checks. | |
| #1878 repo: use debian.arfile instead of dpkg-deb | snapcraft | merged | Merged a fix replacing dpkg-deb with debian.arfile in the repo source handler to bypass a tar and sshfs bug. Reviewers approved the change and suggested extracting shared extraction logic in a follow-up. | |
| #217 repo: add support for package repositories | rockcraft | merged | Added support for package repositories. Merged after approval by two reviewers and passing CI checks. Modified 16 files (+346/-31), resolving CRAFT-1553 and enabling downstream testing. |