Package: cherrypy3 Version: 18.9.0-1 X-Debbugs-CC: Jeroen Ploemen <j...@debian.org>
Hi, I'm clear that the Ubuntu issues around universe/main dependencies [1] are not important to Debian, but that kind of checks at least made me spot the impact of the recently added dependency to python3-objgraph from cherryp3. cherrypy3 (18.9.0-1) unstable; urgency=medium ... * Control: add recommended dep on python3-objgraph, optional import in cherrypy/lib/gctools.py. I only can see it used for testing (and in that context it is correctly pulled in by d/t/control already). AFAICS upstream itself only depends on it for tests [2] and for further comparison also in fedora [3] there is no such dependency. It pulls quite much as it is not only python3-objgraph but then through further recommends even all of graphviz and xdot - and then in turn even more like gtk. That pulled in every place that cherryp3 is used seems too much especially for a seemingly mostly test-only dependency. I compared the behavior on bullseye, bookworm and trixie containers if this is really as much as it feels. Even bullseye to bookworm grew a bit, but not that much. # bullseye root@d11:~# apt install python3-cherrypy3 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: ca-certificates javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libmpdec3 libpython3-stdlib libpython3.9-minimal libpython3.9-stdlib libreadline8 libsqlite3-0 media-types openssl python3 python3-cffi-backend python3-cryptography python3-minimal python3-openssl python3-pkg-resources python3-repoze.lru python3-routes python3-simplejson python3-six python3-webob python3.9 python3.9-minimal readline-common Suggested packages: apache2 | lighttpd | httpd python3-doc python3-tk python3-venv python-cryptography-doc python3-cryptography-vectors python-openssl-doc python3-openssl-dbg python3-setuptools python3-paste python-webob-doc python3.9-venv python3.9-doc binutils binfmt-support readline-doc The following NEW packages will be installed: ca-certificates javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libmpdec3 libpython3-stdlib libpython3.9-minimal libpython3.9-stdlib libreadline8 libsqlite3-0 media-types openssl python3 python3-cffi-backend python3-cherrypy3 python3-cryptography python3-minimal python3-openssl python3-pkg-resources python3-repoze.lru python3-routes python3-simplejson python3-six python3-webob python3.9 python3.9-minimal readline-common 0 upgraded, 28 newly installed, 0 to remove and 0 not upgraded. Need to get 8800 kB of archives. After this operation, 30.7 MB of additional disk space will be used. # bookworm root@d12:~# apt install python3-cherrypy3 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: ca-certificates javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libnsl2 libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libreadline8 libsqlite3-0 media-types openssl python3 python3-autocommand python3-cffi-backend python3-cheroot python3-cryptography python3-inflect python3-jaraco.classes python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-minimal python3-more-itertools python3-openssl python3-pkg-resources python3-portend python3-repoze.lru python3-routes python3-simplejson python3-six python3-tempora python3-tz python3-webob python3-zc.lockfile python3.11 python3.11-minimal readline-common Suggested packages: apache2 | lighttpd | httpd python3-doc python3-tk python3-venv python-cryptography-doc python3-cryptography-vectors python-openssl-doc python3-openssl-dbg python3-setuptools python3-paste python-webob-doc python3.11-venv python3.11-doc binutils binfmt-support readline-doc The following NEW packages will be installed: ca-certificates javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore libnsl2 libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libreadline8 libsqlite3-0 media-types openssl python3 python3-autocommand python3-cffi-backend python3-cheroot python3-cherrypy3 python3-cryptography python3-inflect python3-jaraco.classes python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-minimal python3-more-itertools python3-openssl python3-pkg-resources python3-portend python3-repoze.lru python3-routes python3-simplejson python3-six python3-tempora python3-tz python3-webob python3-zc.lockfile python3.11 python3.11-minimal readline-common 0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded. Need to get 10.5 MB of archives. After this operation, 36.8 MB of additional disk space will be used. # trixie / sid root@d13:~# apt install python3-cherrypy3 Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: adwaita-icon-theme at-spi2-common at-spi2-core ca-certificates dconf-gsettings-backend dconf-service fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono fonts-liberation fonts-liberation-sans-narrow fonts-liberation2 gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 graphviz gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme javascript-common libabsl20220623 libann0 libaom3 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libavif16 libblas3 libbrotli1 libcairo-gobject2 libcairo2 libcdt5 libcgraph6 libcloudproviders0 libcolord2 libcups2 libdatrie1 libdav1d7 libdconf1 libde265-0 libdeflate0 libepoxy0 libfontconfig1 libfreetype6 libfribidi0 libgav1-1 libgd3 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgfortran5 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin libgtk-3-common libgts-0.7-5 libgts-bin libgvc6 libgvpr2 libharfbuzz0b libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265 libheif-plugin-x265 libheif1 libice6 libicu72 libjbig0 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore liblab-gamut1 liblapack3 liblcms2-2 liblerc4 libltdl7 libnsl2 libnuma1 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpathplan4 libpixman-1-0 libpng16-16 libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libpython3.12-minimal libpython3.12-stdlib librav1e0 libreadline8 librsvg2-2 librsvg2-common libsharpyuv0 libsm6 libsqlite3-0 libsvtav1enc1d1 libthai-data libthai0 libtiff6 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libx265-199 libxaw7 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 libxtst6 libyuv0 media-types openssl python3 python3-autocommand python3-cairo python3-cffi-backend python3-cheroot python3-cryptography python3-gi python3-gi-cairo python3-graphviz python3-inflect python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-minimal python3-more-itertools python3-numpy python3-objgraph python3-openssl python3-pkg-resources python3-portend python3-pydantic python3-repoze.lru python3-routes python3-simplejson python3-six python3-tempora python3-typing-extensions python3-tz python3-webob python3-zc.lockfile python3.11 python3.11-minimal python3.12 python3.12-minimal readline-common shared-mime-info x11-common xdg-user-dirs xdot xkb-data Suggested packages: gsfonts graphviz-doc apache2 | lighttpd | httpd colord cups-common libgd-tools low-memory-monitor gvfs libheif-plugin-ffmpegdec libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc liblcms2-utils librsvg2-bin python3-doc python3-tk python3-venv python-cryptography-doc python3-cryptography-vectors gcc gfortran python3-dev python3-pytest python-objgraph-doc python-openssl-doc python3-openssl-dbg python3-setuptools python3-paste python-webob-doc python3.11-venv python3.11-doc binutils binfmt-support python3.12-venv python3.12-doc readline-doc The following NEW packages will be installed: adwaita-icon-theme at-spi2-common at-spi2-core ca-certificates dconf-gsettings-backend dconf-service fontconfig fontconfig-config fonts-dejavu-core fonts-dejavu-mono fonts-liberation fonts-liberation-sans-narrow fonts-liberation2 gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 graphviz gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme javascript-common libabsl20220623 libann0 libaom3 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3 libavif16 libblas3 libbrotli1 libcairo-gobject2 libcairo2 libcdt5 libcgraph6 libcloudproviders0 libcolord2 libcups2 libdatrie1 libdav1d7 libdconf1 libde265-0 libdeflate0 libepoxy0 libfontconfig1 libfreetype6 libfribidi0 libgav1-1 libgd3 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgfortran5 libgirepository-1.0-1 libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin libgtk-3-common libgts-0.7-5 libgts-bin libgvc6 libgvpr2 libharfbuzz0b libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265 libheif-plugin-x265 libheif1 libice6 libicu72 libjbig0 libjpeg62-turbo libjs-jquery libjs-sphinxdoc libjs-underscore liblab-gamut1 liblapack3 liblcms2-2 liblerc4 libltdl7 libnsl2 libnuma1 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpangoxft-1.0-0 libpathplan4 libpixman-1-0 libpng16-16 libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libpython3.12-minimal libpython3.12-stdlib librav1e0 libreadline8 librsvg2-2 librsvg2-common libsharpyuv0 libsm6 libsqlite3-0 libsvtav1enc1d1 libthai-data libthai0 libtiff6 libwayland-client0 libwayland-cursor0 libwayland-egl1 libwebp7 libx265-199 libxaw7 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 libxtst6 libyuv0 media-types openssl python3 python3-autocommand python3-cairo python3-cffi-backend python3-cheroot python3-cherrypy3 python3-cryptography python3-gi python3-gi-cairo python3-graphviz python3-inflect python3-jaraco.collections python3-jaraco.context python3-jaraco.functools python3-jaraco.text python3-minimal python3-more-itertools python3-numpy python3-objgraph python3-openssl python3-pkg-resources python3-portend python3-pydantic python3-repoze.lru python3-routes python3-simplejson python3-six python3-tempora python3-typing-extensions python3-tz python3-webob python3-zc.lockfile python3.11 python3.11-minimal python3.12 python3.12-minimal readline-common shared-mime-info x11-common xdg-user-dirs xdot xkb-data 0 upgraded, 181 newly installed, 0 to remove and 0 not upgraded. Need to get 78.6 MB of archives. After this operation, 363 MB of additional disk space will be used. And as I wrote at the beginning, I think this isn't just a Ubuntu component mismatch problem. I couldn't find a use case of objgraph with cherrypy3 that is important enough to add all of this as dependency. Therefore now I wonder: - Is there a use case that I overlooked that makes it worth having this dependency? - Or if not - would you be ok to also reduce it to a Suggests as I've done in Ubuntu [4]? [1]: https://bugs.launchpad.net/ubuntu/+source/cherrypy3/+bug/2047821 [2]: https://github.com/cherrypy/cherrypy/blob/30d9a141c67ecb958ce305810203d89d60ef318b/setup.py#L89 [3]: https://src.fedoraproject.org/rpms/python-cherrypy/blob/rawhide/f/python-cherrypy.spec [4]: https://git.launchpad.net/~paelzer/ubuntu/+source/cherrypy3/commit/?id=f64dcc0f0c01b29a6b622e330cccce5cf2ee4dce -- Christian Ehrhardt