Control: severity -1 normal
Control: tags -1 wontfix

On Fri, Sep 06, 2024 at 11:39:44PM +0300, Adrian Bunk wrote:
> Looking at CVE-2024-5569 and the potential of future CVEs,
> I wonder whether there is any reason why reverse dependencies
> still need this package or whether they could use the version
> vendored in src:python3.*
> 
> If there is a reason, feel free to lower the severity but
> keep the bug open as wontfix to document it (or close the
> bug with a package description update).

I spent some time looking through this today.  TL;DR: it might be
_possible_ to avoid it in many cases, but that will get easier as older
versions of Python fall out of upstream support and I'm not convinced
it's worth the effort to accelerate that.  However, it's also not clear
that the use of this package will naturally fall to zero over time in
upstream packages due to rolling addition of features.  I don't think
it's viable to completely eliminate this package.

  $ reverse-depends -b src:python-zipp
  Reverse-Testsuite-Triggers
  ==========================
  * python-mercantile             (for python3-zipp)
  
  Reverse-Build-Depends
  =====================
  * cpplint                       (for python3-zipp)
  * importlib-resources           (for python3-zipp)
  * python-importlib-metadata     (for python3-zipp)
  
  Reverse-Build-Depends-Indep
  ===========================
  * python-mercantile             (for python3-zipp)
  
  $ reverse-depends src:python-zipp
  Reverse-Depends
  ===============
  * python3-catalogue [amd64 arm64 armel armhf i386 mips64el ppc64el riscv64 
s390x]
  * python3-evtx                  (for python3-zipp)
  * python3-importlib-metadata    (for python3-zipp)
  * python3-importlib-resources   (for python3-zipp)
  * python3-mercantile            (for python3-zipp)
  * python3-setuptools            (for python3-zipp)

Going through each of these:

 * cpplint

   Might be easy to remove; it's in test-requirements, but it's hard to
   see why.

 * importlib-resources

   I removed its explicit run-time Depends, although pybuild still adds
   a dependency on "python3-zipp | python3-supported-min (>= 3.10)" to
   match the upstream requirements.

   There's still a Build-Depends, because the test suite explicitly uses
   zipp.CompleteDirs which is not public API in zipfile.

 * python-catalogue

   Actually just "python3-zipp | python3-supported-min (>= 3.8)", so
   should go away once dh-python >= 6.20240825 is released and it's
   rebuild with that since that suppresses dependencies that would be
   satisfied by python3 >= 3.9.

 * python-evtx

   Might be easy to remove; it's in setup.py, but it's hard to see why.

 * python-importlib-metadata

   Would require patching, since it explicitly uses zipp without a
   zipfile alternative.

 * python-mercantile

   Would require patching.

 * setuptools

   I think this has a dependency because it vendors importlib_metadata.

The big deal here will be
https://salsa.debian.org/python-team/tools/dh-python/-/commit/4baa3c5714cebe0ffd457939ec4e7048462c650b;
that should make a lot of the dependencies on
python3-importlib-{metadata,resources} go away, and then this will be a
lot easier.  But there'd still be lots of stragglers.

More broadly, https://pypi.org/project/zipp/ indicates that this package
isn't just a static backport, but can provide new features to older
versions of Python ahead of the version in the standard library.  This
suggests to me that it may not be the sort of thing that ever completely
goes away; if a package needs something from (say) zipp 3.18 today then
it won't get that until Python 3.13 is the default, so upstreams may
continue adding dependencies on it.  For example,
https://github.com/python/importlib_metadata/commit/56b61b3dd90df2dba2da445a8386029b54fdebf3
recently added a dependency on zipp>=3.20.  The same sort of thing is
true for importlib_resources and importlib_metadata, which each have
their own compatibility tables with the standard library.

-- 
Colin Watson (he/him)                              [cjwat...@debian.org]

Reply via email to