Hi, On Sat, 2024-01-06 at 20:39 +0300, Dmitry Shachnev wrote: > On Mon, Dec 18, 2023 at 08:14:55PM +0100, Ansgar wrote: > > If anything, only applications should require specific interfaces. > > A library like python3-secretstorage cannot know whether its use is > > essential (in which case dbus should probably be a dependency) or > > totally optional (in which case dbus should be > > suggested/recommended). > > I am confused. In version 3.3.3-2, python3-secretstorage changed > dependency from dbus to default-dbus-session-bus | dbus-session-bus. > > And you filed this bug against the new version, 3.3.3-2. Is that a > mistake? Or the new dependency is still not good?
That doesn't help much unless one takes special care. This is what installing python3-poetry in a Podman container looks like: % podman run --rm -it debian:unstable root@6663e6910965:/# apt update Get:1 http://deb.debian.org/debian unstable InRelease [198 kB] Get:2 http://deb.debian.org/debian unstable/main amd64 Packages [9642 kB] Fetched 9840 kB in 2s (5939 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done 39 packages can be upgraded. Run 'apt list --upgradable' to see them. root@6663e6910965:/# apt install python3-poetry Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: adduser adwaita-icon-theme at-spi2-common at-spi2-core binutils binutils-common binutils-x86-64-linux-gnu bsdutils build-essential bzip2 ca-certificates cpp cpp-13 dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dconf-gsettings-backend dconf-service dirmngr dmsetup dpkg dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono g++ g++-13 gcc gcc-13 gcr gnome-keyring gnome-keyring-pkcs11 gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme javascript-common krb5-locales libabsl20220623 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libapparmor1 libargon2-1 libasan8 libassuan0 libatk-bridge2.0-0 libatk1.0-0 libatomic1 libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libavif16 libbinutils libblkid1 libbrotli1 libbsd0 libbz2-1.0 libc-dev-bin libc-devtools libc6-dev libcairo-gobject2 libcairo2 libcc1-0 libcloudproviders0 libcolord2 libcrypt-dev libcrypt1 libcryptsetup12 libctf-nobfd0 libctf0 libcups2 libdatrie1 libdav1d7 libdbus-1-3 libdconf1 libde265-0 libdeflate0 libdevmapper1.02.1 libdpkg-perl libepoxy0 libexpat1 libexpat1-dev libfakeroot libfdisk1 libfile-fcntllock-perl libfontconfig1 libfreetype6 libfribidi0 libgav1-1 libgcc-13-dev libgck-1-0 libgcr-base-3-1 libgcr-ui-3-1 libgd3 libgdbm-compat4 libgdbm6 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libglib2.0-0 libglib2.0-data libgomp1 libgpm2 libgprofng0 libgraphite2-3 libgssapi-krb5-2 libgtk-3-0 libgtk-3-bin libgtk-3-common libharfbuzz0b libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265 libheif-plugin-x265 libheif1 libhwasan0 libicu72 libisl23 libitm1 libjansson4 libjbig0 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore libjson-c5 libk5crypto3 libkeyutils1 libkmod2 libkrb5-3 libkrb5support0 libksba8 liblcms2-2 libldap-2.5-0 libldap-common liblerc4 liblocale-gettext-perl liblsan0 liblzma5 libmount1 libmpc3 libmpfr6 libncursesw6 libnpth0 libnsl-dev libnsl2 libnss-systemd libnuma1 libp11-kit0 libpam-gnome-keyring libpam-systemd libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libperl5.36 libpixman-1-0 libpng16-16 libproc2-0 libpython3-dev libpython3-stdlib libpython3.11 libpython3.11-dev libpython3.11-minimal libpython3.11-stdlib libquadmath0 librav1e0 libreadline8 librsvg2-2 librsvg2-common libsasl2-2 libsasl2-modules libsasl2-modules-db libsecret-1-0 libsecret-common libsframe1 libsharpyuv0 libsmartcols1 libsqlite3-0 libstdc++-13-dev libsvtav1enc1d1 libsystemd-shared libsystemd0 libthai-data libthai0 libtiff6 libtirpc-common libtirpc-dev libtirpc3 libtsan2 libubsan1 libudev1 libuuid1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libx11-6 libx11-data libx265-199 libxau6 libxcb-render0 libxcb-shm0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2 libxpm4 libxrandr2 libxrender1 libxtst6 libyuv0 linux-libc-dev make manpages manpages-dev media-types mount netbase openssl p11-kit p11-kit-modules patch perl perl-base perl-modules-5.36 pinentry-gnome3 procps psmisc python-pkginfo-doc python3 python3-build python3-cachecontrol python3-certifi python3-cffi-backend python3-chardet python3-charset-normalizer python3-cleo python3-crashtest python3-cryptography python3-dev python3-distlib python3-distutils python3-dulwich python3-fastimport python3-fastjsonschema python3-filelock python3-idna python3-importlib-metadata python3-installer python3-jaraco.classes python3-jeepney python3-keyring python3-lib2to3 python3-lockfile python3-minimal python3-more-itertools python3-msgpack python3-packaging python3-pexpect python3-pip-whl python3-pkg-resources python3-pkginfo python3-platformdirs python3-poetry-core python3-ptyprocess python3-pylev python3-pyproject-hooks python3-requests python3-requests-toolbelt python3-secretstorage python3-setuptools-whl python3-shellingham python3-shtab python3-six python3-toml python3-tomlkit python3-trove-classifiers python3-urllib3 python3-virtualenv python3-wheel python3-wheel-whl python3-zipp python3.11 python3.11-dev python3.11-minimal readline-common rpcsvc-proto shared-mime-info systemd systemd-dev systemd-sysv systemd-timesyncd util-linux x11-common xdg-user-dirs xkb-data xz-utils zlib1g-dev Suggested packages: cron quota binutils-doc gprofng-gui bzip2-doc cpp-doc gcc-13-locales cpp-13-doc tor debsig-verify debian-keyring g++-multilib g++-13-multilib gcc-13-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-13-multilib parcimonie xloadimage scdaemon apache2 | lighttpd | httpd glibc-doc colord cups-common sensible-utils git bzr libgd-tools gdbm-l10n low-memory-monitor gpm krb5-doc krb5-user gvfs libheif-plugin-ffmpegdec libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc liblcms2-utils cryptsetup-bin librsvg2-bin libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql libstdc++-13-doc make-doc man-browser nfs-common ed diffutils-doc perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl libtap-harness-archive-perl pinentry-doc python3-doc python3-tk python3-venv python3-pip python-charset-normalizer-doc python-cleo-doc python-cryptography-doc python3-cryptography-vectors python3-gpg git-core python-fastjsonschema-doc python-installer-doc gir1.2-secret-1 libkf5wallet-bin python3-dbus python3-gi python3-keyrings.alt python-lockfile-doc python-pexpect-doc python3-setuptools python3-openssl python3-socks python-requests-doc python-secretstorage-doc python3-brotli python3.11-venv python3.11-doc binfmt-support readline-doc systemd-container systemd-homed systemd-userdbd systemd-boot systemd-resolved libfido2-1 libip4tc2 libqrencode4 libtss2-esys-3.0.2-0 libtss2-mu0 libtss2-rc0 polkitd dosfstools kbd util-linux-extra util-linux-locales Recommended packages: bsdextrautils uuid-runtime sensible-utils The following NEW packages will be installed: adduser adwaita-icon-theme at-spi2-common at-spi2-core binutils binutils-common binutils-x86-64-linux-gnu build-essential bzip2 ca-certificates cpp cpp-13 dbus dbus-bin dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session dconf-gsettings-backend dconf-service dirmngr dmsetup dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono g++ g++-13 gcc gcc-13 gcr gnome-keyring gnome-keyring-pkcs11 gnupg gnupg-l10n gnupg-utils gpg gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme javascript-common krb5-locales libabsl20220623 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libaom3 libapparmor1 libargon2-1 libasan8 libassuan0 libatk-bridge2.0-0 libatk1.0-0 libatomic1 libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libavif16 libbinutils libbrotli1 libbsd0 libc-dev-bin libc-devtools libc6-dev libcairo-gobject2 libcairo2 libcc1-0 libcloudproviders0 libcolord2 libcrypt-dev libcryptsetup12 libctf-nobfd0 libctf0 libcups2 libdatrie1 libdav1d7 libdbus-1-3 libdconf1 libde265-0 libdeflate0 libdevmapper1.02.1 libdpkg-perl libepoxy0 libexpat1 libexpat1-dev libfakeroot libfdisk1 libfile-fcntllock-perl libfontconfig1 libfreetype6 libfribidi0 libgav1-1 libgcc-13-dev libgck-1-0 libgcr-base-3-1 libgcr-ui-3-1 libgd3 libgdbm-compat4 libgdbm6 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libglib2.0-0 libglib2.0-data libgomp1 libgpm2 libgprofng0 libgraphite2-3 libgssapi-krb5-2 libgtk-3-0 libgtk-3-bin libgtk-3-common libharfbuzz0b libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265 libheif-plugin-x265 libheif1 libhwasan0 libicu72 libisl23 libitm1 libjansson4 libjbig0 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore libjson-c5 libk5crypto3 libkeyutils1 libkmod2 libkrb5-3 libkrb5support0 libksba8 liblcms2-2 libldap-2.5-0 libldap-common liblerc4 liblocale-gettext-perl liblsan0 libmpc3 libmpfr6 libncursesw6 libnpth0 libnsl-dev libnsl2 libnss-systemd libnuma1 libpam-gnome-keyring libpam-systemd libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libperl5.36 libpixman-1-0 libpng16-16 libproc2-0 libpython3-dev libpython3-stdlib libpython3.11 libpython3.11-dev libpython3.11-minimal libpython3.11-stdlib libquadmath0 librav1e0 libreadline8 librsvg2-2 librsvg2-common libsasl2-2 libsasl2-modules libsasl2-modules-db libsecret-1-0 libsecret-common libsframe1 libsharpyuv0 libsqlite3-0 libstdc++-13-dev libsvtav1enc1d1 libsystemd-shared libthai-data libthai0 libtiff6 libtirpc-common libtirpc-dev libtirpc3 libtsan2 libubsan1 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libx11-6 libx11-data libx265-199 libxau6 libxcb-render0 libxcb-shm0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon0 libxml2 libxpm4 libxrandr2 libxrender1 libxtst6 libyuv0 linux-libc-dev make manpages manpages-dev media-types netbase openssl p11-kit p11-kit-modules patch perl perl-modules-5.36 pinentry-gnome3 procps psmisc python-pkginfo-doc python3 python3-build python3-cachecontrol python3-certifi python3-cffi-backend python3-chardet python3-charset-normalizer python3-cleo python3-crashtest python3-cryptography python3-dev python3-distlib python3-distutils python3-dulwich python3-fastimport python3-fastjsonschema python3-filelock python3-idna python3-importlib-metadata python3-installer python3-jaraco.classes python3-jeepney python3-keyring python3-lib2to3 python3-lockfile python3-minimal python3-more-itertools python3-msgpack python3-packaging python3-pexpect python3-pip-whl python3-pkg-resources python3-pkginfo python3-platformdirs python3-poetry python3-poetry-core python3-ptyprocess python3-pylev python3-pyproject-hooks python3-requests python3-requests-toolbelt python3-secretstorage python3-setuptools-whl python3-shellingham python3-shtab python3-six python3-toml python3-tomlkit python3-trove-classifiers python3-urllib3 python3-virtualenv python3-wheel python3-wheel-whl python3-zipp python3.11 python3.11-dev python3.11-minimal readline-common rpcsvc-proto shared-mime-info systemd systemd-dev systemd-sysv systemd-timesyncd x11-common xdg-user-dirs xkb-data xz-utils zlib1g-dev The following packages will be upgraded: bsdutils dpkg libblkid1 libbz2-1.0 libcrypt1 liblzma5 libmount1 libp11-kit0 libsmartcols1 libsystemd0 libudev1 libuuid1 mount perl-base util-linux 15 upgraded, 307 newly installed, 0 to remove and 24 not upgraded. Need to get 178 MB of archives. After this operation, 697 MB of additional disk space will be used. Now try not to install an init system, dbus, ... in a application container wanting to use python3-poetry to install some Python application. And this still doesn't ensure that: 1. dbus is actually running in the context where python3-secretstorage is used, 2. the Dbus interface python3-secretstorage wants to talk to is actually provided by a service (For 2. it doesn't even have a Depends: gnome-keyring | alternatives either which is inconsistent with the dependency on Dbus...) Also it's unknown whether that is actually useful or not (as python3- secretstorage is just a library that could not be relevant at all as the application's user might not actually want to manage secrets via keepassxc). It seems excessive to *always* require all of this to be installed for *any* use of python3-poetry (which can optionally use python3- secretstorage if that is even required). bash doesn't depend on gnome- terminal either just because one needs some terminal to run it in ;-) Ansgar