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

Reply via email to