repo: rollback to using dpkg-deb for deb extraction
Metadata
Current evaluation
Merged as commit c008b93be: reverts fa287bec3 (#1878), restoring dpkg-deb for deb extraction after debian.arfile caused severe build slowdowns (18s vs 5m10s pull). Fixes LP #1767119.
Resolution: closed resolved
Reason: The PR was merged into snapcraft as commit c008b93be ('repo: rollback to using dpkg-deb for deb extraction'), reverting fa287bec3 from #1878 because debian.arfile-based deb extraction made builds drastically slower. Maintainer sergiusens provided benchmarking showing the dpkg-deb run finishing the pull step in ~19s versus over 5 minutes with arfile.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Revert "repo: use debian.arfile instead of dpkg-deb (#1878)"
This reverts commit fa287bec3376293e791e24ead3e666b11cddfef6.
LP: #1767119
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`?
-----
The first run is using `dpkg-deb`, the ssecond run using arfile (didn't even wait for it to finish, but the numbers speak for themselves).
```
(snapcraft) ubuntu@snapcraft-xenial-dev:~/source/vlc/extras/package/snap$ time snapcraft build
DEPRECATED: The 'prepare' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn7 for more information.
DEPRECATED: The 'build' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn8 for more information.
DEPRECATED: The 'install' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn9 for more information.
Skipping pull desktop-qt5-vlc (already ran)
Skipping build desktop-qt5-vlc (already ran)
Skipping stage desktop-qt5-vlc (already ran)
Skipping pull wrapper (already ran)
Skipping pull vlc (already ran)
Preparing to build wrapper
Building wrapper
Preparing to build vlc
Building vlc
cmake too old
ragel not found
protoc not found
ant not found
nasm not found
To-be-built packages: cmake ragel protoc ant nasm
curl -f -L -- "http://downloads.videolan.org/pub/contrib/protobuf/protobuf-3.1.0.tar.gz" > "protobuf-3.1.0.tar.gz.tmp" && touch protobuf-3.1.0.tar.gz.tmp && mv protobuf-3.1.0.tar.gz.tmp protobuf-3.1.0.tar.gz || ( curl -f -L -- "https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-cpp-3.1.0.tar.gz" > "protobuf-3.1.0.tar.gz.tmp" && touch protobuf-3.1.0.tar.gz.tmp && mv protobuf-3.1.0.tar.gz.tmp protobuf-3.1.0.tar.gz && echo "Please upload package protobuf-3.1.0.tar.gz to our FTP" ) && grep protobuf-3.1.0.tar.gz SHA512SUMS| shasum -a 512 -c
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0^Ctools.mak:298: recipe for target 'protobuf-3.1.0.tar.gz' failed
make: *** [protobuf-3.1.0.tar.gz] Interrupt
Aborted!
real 0m18.712s
user 0m14.700s
sys 0m3.663s
(snapcraft) ubuntu@snapcraft-xenial-dev:~/source/vlc/extras/package/snap$ time snapcraft build
DEPRECATED: The 'prepare' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn7 for more information.
DEPRECATED: The 'build' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn8 for more information.
DEPRECATED: The 'install' keyword has been replaced by 'override-build'
See http://snapcraft.io/docs/deprecation-notices/dn9 for more information.
Skipping pull desktop-qt5-vlc (already ran)
Skipping build desktop-qt5-vlc (already ran)
Skipping stage desktop-qt5-vlc (already ran)
Skipping pull vlc (already ran)
Skipping pull wrapper (already ran)
Skipping build wrapper (already ran)
Preparing to build vlc
^C
Aborted!
real 5m10.762s
user 5m7.907s
sys 0m2.493s
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as commit c008b93be: reverts fa287bec3 (#1878), restoring dpkg-deb for deb extraction after debian.arfile caused severe build slowdowns (18s vs 5m10s pull). Fixes LP #1767119. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #2111 (c008b93be), reverting #1878/fa287bec3 and restoring faster dpkg-deb extraction after debian.arfile caused severe build performance regressions. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged a revert restoring dpkg-deb for deb extraction after debian.arfile caused severe performance regressions. The change addresses LP #1767119 by switching back to the faster dpkg-deb tool, resolving the build slowdown. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged revert restoring dpkg-deb for deb extraction after debian.arfile caused severe performance degradation, increasing build times from 18 seconds to over 5 minutes. Addresses Launchpad bug #1767119. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/snapcraft#1878
(confidence 98%)
Merged commit fa287bec3 introduced debian.arfile for deb extraction; this PR reverts it wholesale
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1878 repo: use debian.arfile instead of dpkg-deb | snapcraft | merged | Merged as commit fa287bec3: snapcraft/internal/sources/_deb.py stopped shelling out to dpkg-deb and used debian.arfile to extract debs, avoiding tar/sshfs utime failures. Later reverted by #2111 (c008b93be). | |
| #3083 repo: revert logic to get deb_arch | snapcraft | merged | Merged #3083 as 5d20937cb, reverting host-side deb_arch lookup to avoid requiring dpkg-architecture before entering the build environment (SNAPCRAFT-1K1). |