Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Tim Orling <ticotimo@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [RFC PATCH 00/26] deprecation of distutils
Date: Thu, 25 Nov 2021 20:35:39 -0800	[thread overview]
Message-ID: <cover.1637900380.git.timothy.t.orling@intel.com> (raw)

distutils is deprecated in Python 3.10 and will be removed in Python
3.12 (~October 2023).

This series inserts a deprecation warning into the distutils*.bbclasses
and drops or replaces distutils usage wherever possible.

Instead of distutils3-base, we introduce setuptools3-base, which also
incorporates distutils-common-base.

Remaining usage is in:
  * lib/recipetool/create_buildsys_python.py until we are ready to
    factor it out (and add pyproject.toml and setup.cfg handling)
  * oeqa selftests which are testing distutils3 functionality
  * glib-2.0: upstream is still using distutils.version.LooseVersion
  * gpgme: Still checks for distutils in m4/ax_python_devel.m4
  * python3-numpy: upstream still has a distutils/ module
  * python3-setuptools has a vendored _distutils

I might have missed something else.

No attempt has been made to look at layers outside of oe-core.

The intent is to let this percolate for a few weeks and then drop
distutils*.bbclasses (and move them to meta-python, but with the
warnings).

[YOCTO #14610]

The following changes since commit 6fca075a8d87d033359f81d476c8506df66ad53d:

  gcc: Drop no longer needed patch (2021-11-25 21:53:44 +0000)

are available in the Git repository at:

  git://push.openembedded.org/openembedded-core-contrib timo/core-deprecate-distutils_14610

Tim Orling (26):
  classes/distutils-*: add warning of deprecation
  setuptools: refactor for no distutils bbclasses
  python3-cython: DISTUTILS_* -> SETUPTOOLS_*
  dnf: inherit setuptools3-base instead of distutils
  libdnf: inherit setuptoools3-base not distutils
  python3-dbus: inherit setuptools3-base not distuils
  gpgme: inherit setuptools-base not distutils
  python3-pip: inherit setuptools3 not distutils3
  systemtap: use setuptools-base not distutils
  libcomps: inherit setuptools3-base not distutils
  createrepo-c: inherit setuptools3-base not distutils
  librepo: inherit setuptools3-base not distutils
  btrfs-tools: use setuptools3-base not distutils
  scripts/buildhistory-diff: drop use of distutils
  python3-pygobject: setuptools instead of distutils
  bind: inherit setuptools3-base instead of distutils
  python3-setuptools: do not depend on distutils
  sanity.bbclass: drop usage of distutils
  gstreamer1.0-python: inherit setuptools3-base
  recipetool/create_buildsys_python.py: less distutils
  waf.bbclass: drop usage of distutils
  dnf: drop python3-disutils dependency
  python3: refactor python-config patch
  lib/oe/terminal.py: use bb.version.LooseVersion
  python3native.bbclass: distutils -> sysconfig
  rootfs_rpm.bbclass: distutils -> sysconfig module

 meta/classes/distutils-common-base.bbclass    |  3 +
 meta/classes/distutils3-base.bbclass          |  3 +
 meta/classes/distutils3.bbclass               |  4 ++
 meta/classes/python3native.bbclass            |  2 +-
 meta/classes/rootfs_rpm.bbclass               |  2 +-
 meta/classes/sanity.bbclass                   | 16 ++---
 meta/classes/setuptools3-base.bbclass         | 31 +++++++++
 meta/classes/setuptools3.bbclass              | 67 +++++++++++++++++-
 meta/classes/waf.bbclass                      |  2 +-
 meta/lib/oe/terminal.py                       |  2 +-
 .../recipes-connectivity/bind/bind_9.16.23.bb |  2 +-
 .../btrfs-tools/btrfs-tools_5.15.bb           |  2 +-
 .../createrepo-c/createrepo-c_0.17.7.bb       |  2 +-
 meta/recipes-devtools/dnf/dnf_4.10.0.bb       |  3 +-
 .../libcomps/libcomps_0.1.18.bb               |  2 +-
 meta/recipes-devtools/libdnf/libdnf_0.65.0.bb |  2 +-
 .../librepo/librepo_1.14.2.bb                 |  2 +-
 .../python/python3-cython_0.29.24.bb          |  2 +-
 .../python/python3-dbus_1.2.18.bb             |  2 +-
 .../python/python3-pip_21.3.1.bb              |  2 +-
 .../python/python3-pygobject_3.42.0.bb        |  2 +-
 .../python/python3-setuptools_59.2.0.bb       |  1 -
 ...n-implement-legacy-disutils-behavior.patch | 68 +++++++++++++++++++
 .../python/python3/python-config.patch        | 55 ---------------
 .../recipes-devtools/python/python3_3.10.0.bb |  2 +-
 .../recipes-kernel/systemtap/systemtap_git.bb |  2 +-
 .../gstreamer/gstreamer1.0-python_1.18.5.bb   |  2 +-
 meta/recipes-support/gpgme/gpgme_1.16.0.bb    |  2 +-
 scripts/buildhistory-diff                     |  5 --
 .../lib/recipetool/create_buildsys_python.py  |  4 +-
 30 files changed, 204 insertions(+), 92 deletions(-)
 create mode 100644 meta/classes/setuptools3-base.bbclass
 create mode 100644 meta/recipes-devtools/python/python3/0001-python-config.in-implement-legacy-disutils-behavior.patch
 delete mode 100644 meta/recipes-devtools/python/python3/python-config.patch

-- 
2.30.2



             reply	other threads:[~2021-11-26  4:36 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-26  4:35 Tim Orling [this message]
2021-11-26  4:35 ` [RFC PATCH 01/26] classes/distutils-*: add warning of deprecation Tim Orling
2021-11-26  4:35 ` [RFC PATCH 02/26] setuptools: refactor for no distutils bbclasses Tim Orling
2021-11-26  7:37   ` [OE-core] " Konrad Weihmann
2021-11-26 16:07     ` Tim Orling
2021-11-26  4:35 ` [RFC PATCH 03/26] python3-cython: DISTUTILS_* -> SETUPTOOLS_* Tim Orling
2021-11-26  4:35 ` [RFC PATCH 04/26] dnf: inherit setuptools3-base instead of distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 05/26] libdnf: inherit setuptoools3-base not distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 06/26] python3-dbus: inherit setuptools3-base not distuils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 07/26] gpgme: inherit setuptools-base not distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 08/26] python3-pip: inherit setuptools3 not distutils3 Tim Orling
2021-11-26  4:35 ` [RFC PATCH 09/26] systemtap: use setuptools-base not distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 10/26] libcomps: inherit setuptools3-base " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 11/26] createrepo-c: " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 12/26] librepo: " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 13/26] btrfs-tools: use " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 14/26] scripts/buildhistory-diff: drop use of distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 15/26] python3-pygobject: setuptools instead " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 16/26] bind: inherit setuptools3-base " Tim Orling
2021-11-26  4:35 ` [RFC PATCH 17/26] python3-setuptools: do not depend on distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 18/26] sanity.bbclass: drop usage of distutils Tim Orling
2021-11-26  4:35 ` [RFC PATCH 19/26] gstreamer1.0-python: inherit setuptools3-base Tim Orling
2021-11-26  4:35 ` [RFC PATCH 20/26] recipetool/create_buildsys_python.py: less distutils Tim Orling
2021-11-26  4:36 ` [RFC PATCH 21/26] waf.bbclass: drop usage of distutils Tim Orling
2021-11-26  4:36 ` [RFC PATCH 22/26] dnf: drop python3-disutils dependency Tim Orling
2021-11-26  4:36 ` [RFC PATCH 23/26] python3: refactor python-config patch Tim Orling
2021-11-26  4:36 ` [RFC PATCH 24/26] lib/oe/terminal.py: use bb.version.LooseVersion Tim Orling
2021-11-26  4:36 ` [RFC PATCH 25/26] python3native.bbclass: distutils -> sysconfig Tim Orling
2021-11-26  4:36 ` [RFC PATCH 26/26] rootfs_rpm.bbclass: distutils -> sysconfig module Tim Orling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1637900380.git.timothy.t.orling@intel.com \
    --to=ticotimo@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox