[packages/python-sympy] - up to 1.7.1, python 2 no longer supported

Jakub Bogusz qboosh at pld-linux.org
Sat Mar 13 22:17:30 CET 2021


On Fri, Mar 12, 2021 at 10:25:36AM +0100, Jan Rękorajski wrote:
> On Fri, Mar 12, 2021 at 9:55 AM Elan Ruusamäe <glen at pld-linux.org> wrote:
> 
> >
> > On 12.03.2021 00:32, baggins wrote:
> > > commit a7afb2642f193eb728569b130fd57bdc8acadd02
> > > Author: Jan Rękorajski <baggins at pld-linux.org>
> > > Date:   Thu Mar 11 23:32:30 2021 +0100
> > >
> > >      - up to 1.7.1, python 2 no longer supported
> > >
> > >   python-sympy-nodisplay.patch | 25 -------------------------
> > >   python-sympy.spec            |  8 +++-----
> > >   2 files changed, 3 insertions(+), 30 deletions(-)
> > > ---
> > > diff --git a/python-sympy.spec b/python-sympy.spec
> > > index cb6d2e4..6c9214c 100644
> > > --- a/python-sympy.spec
> > > +++ b/python-sympy.spec
> > > @@ -2,20 +2,19 @@
> > >   # Conditional build:
> > >   %bcond_without      doc     # HTML and PDF documentation
> > >   %bcond_without      tests   # unit tests
> > > -%bcond_without       python2 # CPython 2.x module
> > > +%bcond_with  python2 # CPython 2.x module
> > >   %bcond_without      python3 # CPython 3.x module
> > >
> >
> > i agree with what qboosh has been doing in this cases:
> >
> > 1. git ssh copy python-foo to python3-foo
> >
> > 2. update python3-foo to be python3 only
> >
> > 3. update python3-foo to new version, stb
> >
> > 4. disable python3 from python-foo, relup, stb
> >
> 
> And I very much do not agree with that.
> Python 2 must die. If upstream decides to drop python2 support, we should
> too,
> we should not keep old odd versions indefinitely[1].  This creates chaos
> because
> we end up with inconsistent mess.
> 
> [1] We may, but only for a very strong reasons, ex. a ton of packages would
> break.

Python 2 is dying, more and more (mostly very common) packages are dropping support,
but there are still/will be "long tails" of not ported single packages.

Mainstream is slowly porting from gtk+ 3 to gtk 4 and we still have gtk+ 1.

Ofc, there is no sense to keep all active forever, python2 packages can
fade out from the "loose" (non-required) ends.

For the active cases - as we didn't go Fedora way with renaming all
python 2.x packages to python2-*, I see two possibilities:

a) python-foo.spec with python2-only module/version of module or python2/3 modules
  and python3-foo.spec with python3-only module/version of module

b) python-foo.spec:master branch with python3-only module/version of module or python2/3 modules
  and python-foo.spec:PYTHON2 branch with last supported python2 version

I personally prefer a) because:
- we can build all active packages from repo heads (I am aware of just two
  exceptions from this "rule": kernel.spec and php.spec)

- in case of python3-only spec, we need only one package preamble
  (b) case requires dummy base package and "-n python3-foo" subpackage)

In case of b), in python3-only cases apidocs should be packaged as
"%package -n python3-*-apidocs", not "%package apidocs".

> it takes extra steps to do that, but i think it's worth the effort in
> > long term.
> >
> > it's weird to have python-foo to build python3-foo,
> > and the python3-foo will be cleaner without having to support two python
> > versions.
> >
> 
> What we should do here is to just drop python2 from python-foo, what I'll
> do once
> the dust after current 3.9 / rpm deps rebuild settles.

Keeping dead python2 boilerplate in spec (just with bcond off) after updating
to python3-only version makes no sense...


As for establishing some python2/3 packaging/migration policy - where to
Obsolete python-* packages after dropping python2 variants?


-- 
Jakub Bogusz    http://qboosh.pl/


More information about the pld-devel-en mailing list