Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linters: specify which package offers a missing library #4293

Conversation

sergio-costas
Copy link
Contributor

@sergio-costas sergio-costas commented Jul 26, 2023

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)

  • Have you followed the guidelines for contributing?
  • Have you signed the CLA?
  • Have you successfully run make lint?
  • Have you successfully run pytest tests/unit?

@sergio-costas sergio-costas force-pushed the linters-specify-which-package-offers-a-missing-library branch 3 times, most recently from 33d2632 to f3726bd Compare July 26, 2023 14:46
@hellsworth
Copy link

Oh man this will be a nice feature to have!

@sergio-costas sergio-costas force-pushed the linters-specify-which-package-offers-a-missing-library branch 2 times, most recently from 4e2e2e4 to 49d3b1b Compare July 27, 2023 10:49
@sergio-costas
Copy link
Contributor Author

@sergiusens I locally pass all the tests, but in github there is that failure that I can't reproduce, and there is no clue of what is causing it because the test doesn't show the error. What can I do to enable verbosity?

@sergio-costas sergio-costas marked this pull request as ready for review July 27, 2023 13:42
Copy link
Collaborator

@sergiusens sergiusens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, but I don't see any modifications to unit tests, all our linter unit tests are probably running dpkg -S now, which could also be why this fails.

snapcraft/linters/library_linter.py Outdated Show resolved Hide resolved
snapcraft/linters/library_linter.py Outdated Show resolved Hide resolved
snapcraft/linters/library_linter.py Outdated Show resolved Hide resolved
snapcraft/linters/library_linter.py Outdated Show resolved Hide resolved
Copy link
Collaborator

@sergiusens sergiusens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this, it was a missing delta since we moved to linters. It's almost there!

@sergio-costas sergio-costas force-pushed the linters-specify-which-package-offers-a-missing-library branch from f9e572d to 1b03979 Compare August 4, 2023 18:17
@sergio-costas
Copy link
Contributor Author

Ops... I did a push --force to rebase master... sorry

@sergio-costas
Copy link
Contributor Author

About the tests, I did change the "expected_linter_output.txt" file to take into account the changes...

@sergiusens
Copy link
Collaborator

I understand you updated the spread (integration) tests, but not the unit tests

@sergio-costas
Copy link
Contributor Author

I think that the errors are in other place... I'll try to rebase the code...

sergio-costas and others added 6 commits September 11, 2023 12:07
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)
@sergio-costas sergio-costas force-pushed the linters-specify-which-package-offers-a-missing-library branch from 6349656 to f16c40f Compare September 11, 2023 10:08
@sergio-costas
Copy link
Contributor Author

sergio-costas commented Sep 11, 2023

I don't know why it fails... Locally, I have the same errors both passing the tests in "main" than in this branch.

for path in glob.glob("/usr/lib/**", recursive=True):
if os.path.basename(path) == library_name:
try:
output = subprocess.run(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are not mocking this anywhere, which explains why the tests fail, try in a clean environment, perhaps 20.04 and you will be able to reproduce

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Spread Tests with google:ubuntu-22.04-64 is passed sometimes, so I think that it isn't a problem of my patch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, the TOX/Linters error is in a different file. I think that with a rebase it will pass. May I...?

@codecov-commenter
Copy link

codecov-commenter commented Oct 18, 2023

Codecov Report

Merging #4293 (87e2df1) into main (c8e9b2e) will decrease coverage by 0.07%.
Report is 29 commits behind head on main.
The diff coverage is 70.58%.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

@@            Coverage Diff             @@
##             main    #4293      +/-   ##
==========================================
- Coverage   89.22%   89.15%   -0.07%     
==========================================
  Files         301      321      +20     
  Lines       20688    21622     +934     
==========================================
+ Hits        18458    19277     +819     
- Misses       2230     2345     +115     
Files Coverage Δ
snapcraft/linters/library_linter.py 84.84% <70.58%> (-3.11%) ⬇️

... and 39 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@sergio-costas
Copy link
Contributor Author

The Spread Tests with google:ubuntu-22.04-64 is passed sometimes, so I think that it isn't a problem of my patch.

@syu-w
Copy link
Contributor

syu-w commented Oct 31, 2023

Hi @sergio-costas , I made an improved version at #4430 , please review.

@sergio-costas
Copy link
Contributor Author

@syu-w I presume that this can be closed, since your MR has been merged...

@sergiusens
Copy link
Collaborator

yes

@sergiusens sergiusens closed this Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants