On Fri, Jan 15, 2021 at 10:58 PM Neal Gompa <ngomp...@gmail.com> wrote:

> On Fri, Jan 15, 2021 at 3:57 PM Ben Cotton <bcot...@redhat.com> wrote:
> >
> > https://fedoraproject.org/wiki/Changes/Remove_Python2_RPM_Macros
> >
> >
> > == Summary ==
> > The {{package|python2-rpm-macros}} package (containing
> > `/usr/lib/rpm/macros.d/macros.python2`) will be removed from Fedora 34
> > and newer. The python2 RPM macros will ceases to exist. Python 2
> > packages are already not allowed. Around a dozen of packages use the
> > macros in Fedora and will need to be adjusted either by expanding them
> > or by no longer using Python 2. The `python2.7dist()` and
> > `python2dist()` automatic provides/requires will no longer be
> > automatically generated.
> >
> > == Owner ==
> > * Name: [[User:Churchyard|Miro Hrončok]]
> > * Email: mhron...@redhat.com
> >
> >
> > == Detailed Description ==
> > Python 2 is upstream dead, usage in Fedora packages is forbidden,
> > except for several package with an explicit FESCo approved exception.
> > The Python Maintenance team no longer wishes to support the python2
> > RPM macros from the {{package|python2-rpm-macros}} package (located at
> > `/usr/lib/rpm/macros.d/macros.python2`) and hence decided to remove
> > the package. The following macros will be undefined:
> >
> >  %{python2_sitelib}
> >  %{python2_sitearch}
> >  %{python2_version}
> >  %{python2_version_nodots}
> >  %{python2_platform}
> >  %{py2_shbang_opts}
> >  %{py2_shbang_opts_nodash}
> >  %{py2_shebang_flags}
> >  %py2_shebang_fix
> >  %py2_build
> >  %py2_build_egg
> >  %py2_build_wheel
> >  %py2_install
> >  %py2_install_egg
> >  %py2_install_wheel
> >
> > The following macros will remain defined for the time being to not
> > break packages that are using Python 2 as build-time only dependency
> > (which is also not allowed, but happens more often):
> >
> >  %{__python2}
> >  %{python2}
> >
> > The [
> https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_python_2_packages
> > Python 2 section of Python packaging guidelines] will be removed.
> >
> > {{package|python2.7}} will no longer require
> > {{package|python2-rpm-macros}} and {{package|python3-rpm-generators}}.
> >
> > Provides/requires like this will no longer be automatically generated:
> >
> >  python2dist(...)
> >  python2.7dist(...)
> >
> > The changes will happen after the Fedora 34 mass rebuild and before
> branching.
> >
> > Packages that used to use those macros in Fedora will need to be
> > adapted to expand the macros or switch to Python 3. In January 2021,
> > we have:
> >
> > * several Python 2 trac plugins, but {{package|trac}} uses Python 3 now
> > ** only those require `python2dist(...)`
> > * several Python 2 sugar packages, but they already don't build and/or
> > install as {{package|sugar}} uses Python 3 now
> > * 13 other affected packages in Fedora (some of them co-owned by Python
> Maint):
> > ** avahi
> > ** gimp-layer-via-copy-cut
> > ** gimp-resynthesizer
> > ** chromium
> > ** NFStest
> > ** offlineimap
> > ** pygobject2
> > ** pygtk2
> > ** python-psutil
> > ** python-six
> > ** python2-cairo
> > ** python2-dns
> > ** python2-setuptools
> >
> > Note: Many other packages use the macros in a disabled `%if` section.
> > Some of the listed ones might as well (and hence are not really
> > impacted), the list is an intersection of packages that (Build)Require
> > Python 2 and are greppable for the macros.
> >
> > The removed macros and migration plan:
> >
> > === %{python2_sitelib} ===
> >
> > Affected Fedora packages:
> >
> > * avahi
> > * NFStest
> > * offlineimap
> > * python2-dns
> > * python2-setuptools
> > * python-six
> >
> > Migration plan if not possible to switch to Python 3 / retire: Use
> > `%{_prefix}/lib/python2.7/site-packages`.
> >
> > === %{python2_sitearch} ===
> >
> > Affected Fedora packages:
> >
> > * chromium
> > * offlineimap
> > * pygobject2
> > * pygtk2
> > * python2-cairo
> > * python-psutil
> >
> > Migration plan if not possible to switch to Python 3 / retire: Use
> > `%{_libdir}/python2.7/site-packages`.
> >
> > === %{python2_version} ===
> >
> > Affected Fedora packages:
> >
> > * offlineimap
> > * pygtk2
> > * python2-setuptools
> >
> > Migration plan if not possible to switch to Python 3 / retire: Use `2.7`.
> >
> > === %{python2_version_nodots} ===
> >
> > No affected Fedora packages.
> >
> > Migration plan: Use `27`.
> >
> > === %{python2_platform} ===
> >
> > No affected Fedora packages.
> >
> > Migration plan: Use a glob like `linux-*`.
> >
> > === %{py2_shbang_opts}, %{py2_shbang_opts_nodash},
> > %{py2_shebang_flags}, %py2_shebang_fix ===
> >
> > Affected Fedora packages:
> >
> > * gimp-layer-via-copy-cut
> > * gimp-resynthesizer
> > * offlineimap
> >
> > All use `pathfix.py -pni "%{__python2} %{py2_shbang_opts}" ...`
> >
> > Migration plan: `pathfix.py -pni "%{_bindir}/python2" -kas ...`
> >
> > === %py2_build, %py2_install ===
> >
> > Affected Fedora packages:
> >
> > * NFStest
> > * offlineimap
> > * python2-cairo
> > * python2-dns
> > * python2-setuptools
> > * python-psutil
> > * python-six
> >
> > Migration plan:
> >
> >  %build
> >  %set_build_flags
> >  python2 setup.py build
> >
> >  %install
> >  python2 setup.py install --skip-build --root %{buildroot}
> >
> > Note: Add additional `sleep 1` after/before the build if you also
> > build for Python 3.
> >
> > === %py2_build_egg, %py2_build_wheel, %py2_install_egg,
> %py2_install_wheel ===
> >
> > No affected Fedora packages. There are no build dependencies in Fedora
> > to build a Python 2 wheel or install it.
> >
> > Migration plan for egg: Please don't use this!
> >
> >  %build
> >  %set_build_flags
> >  python2 setup.py bdist_egg
> >
> >  %install
> >  python2 -m easy_install -m --prefix %{buildroot}%{_prefix} -Z
> <path_to_egg>
> >
> >
> > == Benefit to Fedora ==
> > We tried to keep the macros as similar to their Python 3 counterparts
> > as possible, but we have decided that it is not worth it for 13
> > packages. We want to discourage building Python 2 packages. We want to
> > remove the package from RHEL 9 as well.
> >
> > == Scope ==
> > * Proposal owners:
> > ** Drop the macros. Disable the `python2dist()`/`python2.7dist()`
> > dependency generators.
> > ** No longer require {{package|python2-rpm-macros}} and
> > {{package|python3-rpm-generators}} from {{package|python2.7}}.
> > ** Fix packages with FESCo exceptions (except already broken trac
> > plugins), leave the other affected packages broken for the maintainers
> > to fix.
> >
> > * Other developers:
> > ** Fix their packages by migrating to Python 3 or expanding the macros.
> > * Release engineering: no impact on Release Engineering is anticipated
> > * Policies and guidelines: the Python 2 guidelines will be deleted
> > * Trademark approval: Not neccessary.
> > * Alignment with Objectives: Not really.
> >
> >
> > == Upgrade/compatibility impact ==
> > None.
> >
> > == How To Test ==
> > Check the macros are not defined.
> >
> > == Packager Experience ==
> > Mildly annoying (for the affected packagers), but expected to be
> > temporary as the number of Python 2 packages constantly decreases.
> >
> > == Dependencies ==
> > None.
> >
> > == Contingency Plan ==
> > * Contingency mechanism: If this fails, we'll introduce the macros as
> > a separate component and orphan it.
> > * Contingency deadline: Beta freeze
> > * Blocks release? No
> > * Blocks product? No
> >
> > == Documentation ==
> > This page is the documentation for the affected packagers.
> >
>
> I would really rather not have this happen until we're going to retire
> Python 2 entirely. The Python 2 macros are already separate from the
> Python 3 ones, so we could just leave them alone until we're ready to
> just remove Python 2 entirely.
>
> Moving the Python 2 macro files (and the python2-rpm-macros package)
> from the python-rpm-macros package to the python27 package would also
> simplify this eventual retirement.
>

Fully agree here, unless we are really going to drop python2 stuff
completely from distribution.


>
>
>
> --
> 真実はいつも一つ!/ Always, there's only one truth!
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct:
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives:
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
>
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to