linters: specify which package offers a missing library
Metadata
Current evaluation
Package ownership details for missing-library warnings landed via merged PR #4430 (commit 09edca316), replacing the unmerged implementation in #4293.
Resolution: closed superseded
Reason: PR #4430 provided an improved implementation and was merged into main as commit 09edca316. The contributor and maintainer confirmed on #4293 that it could be closed after #4430 merged.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Currently, when an ELF binary in a created snap lacks a required library, snapcraft notifies the user about it; unfortunately, it is the user who has to check which package (if any) includes that/those missing library/libraries.
Since it is common that the "libXXX-dev" package used during build also installs the corresponding "libXXX" package, the missing library is usually installed in the building system. This patch takes advantage of that to search each missing library in the build system and check which package contains that file, appending that information to the warning message.
Here is an example of the new output:
```
Running linter: library
Lint warnings:
- library: usr/bin/gnome-control-center: missing dependency 'libaccountsservice.so.0' (provided by libaccountsservice0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcrack.so.2' (provided by libcrack2). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libdcerpc-binding.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgnome-bluetooth-ui-3.0.so.13' (provided by libgnome-bluetooth-ui-3.0-13). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgtop-2.0.so.11' (provided by libgtop-2.0-11). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libjansson.so.4' (provided by libjansson4). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libldb.so.2' (provided by libldb2). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libmm-glib.so.0' (provided by libmm-glib0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libndr-krb5pac.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libndr-nbt.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libndr-standard.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libndr.so.2' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libnm.so.0' (provided by libnm0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libpwquality.so.1' (provided by libpwquality1). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-credentials.so.1' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-errors.so.1' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-hostconfig.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-util.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamdb.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsmbclient.so.0' (provided by libsmbclient). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsmbconf.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtalloc.so.2' (provided by libtalloc2). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtevent-util.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtevent.so.0' (provided by libtevent0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libudisks2.so.0' (provided by libudisks2-0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libupower-glib.so.3' (provided by libupower-glib3). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libwbclient.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libCHARSET3.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libMESSAGING-SEND.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libaddns.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libasn1-samba4.so.8' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libasn1util.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libauthkrb5.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcli-cldap.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcli-ldap-common.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcli-nbt.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcli-smb-common.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcliauth.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libclidns.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcom_err-samba4.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libcommon-auth.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libdbwrap.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libdcerpc-samba.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libflag-mapping.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgenrand.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgensec.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgse.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libgssapi-samba4.so.2' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libhcrypto-samba4.so.5' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libheimbase-samba4.so.1' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libhx509-samba4.so.5' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libinterfaces.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libiov-buf.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libkrb5-samba4.so.26' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libkrb5samba.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libldbsamba.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'liblibcli-lsa3.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'liblibsmb.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libmessages-dgm.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libmessages-util.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libmsghdr.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libmsrpc3.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libndr-samba.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libreplace.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libroken-samba4.so.19' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-debug.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-modules.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-security.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba-sockets.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamba3-util.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsamdb-common.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsecrets3.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libserver-id-db.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libserver-role.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsmb-transport.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsmbd-shim.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsocket-blocking.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libsys-rw.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtalloc-report-printf.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtdb-wrap.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libtime-basic.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libutil-reg.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libutil-setid.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libutil-tdb.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libwinbind-client.so.0' (provided by libwbclient0). (https://snapcraft.io/docs/linters-library)
- library: usr/bin/gnome-control-center: missing dependency 'libwind-samba4.so.0' (provided by samba-libs). (https://snapcraft.io/docs/linters-library)
- library: usr/lib/x86_64-linux-gnu/libnma-gtk4.so.0.0.0: missing dependency 'libnm.so.0' (provided by libnm0). (https://snapcraft.io/docs/linters-library)
- library: usr/lib/x86_64-linux-gnu/libnma.so.0.0.0: missing dependency 'libnm.so.0' (provided by libnm0). (https://snapcraft.io/docs/linters-library)
- library: usr/libexec/gnome-control-center-goa-helper: missing dependency 'libgoa-backend-1.0.so.1' (provided by libgoa-backend-1.0-1). (https://snapcraft.io/docs/linters-library)
- library: usr/libexec/gnome-control-center-goa-helper: missing dependency 'libsnapd-glib.so.1' (provided by libsnapd-glib1). (https://snapcraft.io/docs/linters-library)
```
- [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`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Package ownership details for missing-library warnings landed via merged PR #4430 (commit 09edca316), replacing the unmerged implementation in #4293. | |
| stealth/space-bunny-alpha | — | closed superseded | Closed unmerged as superseded by PR #4430, merged in commit 09edca316 to report which packages provide missing libraries in linter warnings. | |
| qwen/qwen3.6-35b-a3b | — | — | Superseded by PR #4430, which was merged. The library linter improvement was replaced by an updated implementation and the request was closed. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Enhanced linter warnings to identify packages providing missing libraries were abandoned due to test failures. The feature was superseded by an improved implementation merged in PR #4430. |
Update history
No update history recorded yet.
Related work
-
Superseded By:
canonical/snapcraft#4430
(confidence 100%)
Merged replacement for #4293, adding the missing-library package provider details in commit 09edca316.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #4430 feat(linter): show missing libraries corresponding package | snapcraft | merged | Merged #4430 into main, adding system-package ownership details for missing-library linter findings; commit 09edca316 superseded the earlier #4293 implementation. | |
| #3989 linters: don't list dynamic linker as missing library | snapcraft | merged | Merged PR #3989 fixed the library linter so it no longer reports the dynamic linker as a missing library; landed as commit 97ce08c66. |