← Back to issue list

linters: specify which package offers a missing library

View original Github issue

Metadata

Project
snapcraft
Number
#4293
Type
pull request
State
closed
Author
sergio-costas
Labels
—
Created
Updated
Closed

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.
79%
#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.
72%