mbox

[v2,00/22] deprecation of distutils

Message ID cover.1641920605.git.tim.orling@konsulko.com
State Not Applicable, archived
Headers show

Pull-request

git://git.yoctoproject.org/git/poky-contrib timo/deprecate_distutils_14610_v2

Message

Tim Orling Jan. 11, 2022, 7:01 p.m. UTC
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]

Changes in v2:
  - dropped the import of distutils.version into bb. in favor of
    bb.utils.vercmp_string_op()
  - dropped some patches that have been addressed already
  - update email
  - fix typos
  - drop already merged scripts/buildhistory-diff patch
The following changes since commit 16110cdca7211b0efc59464afbb253527c033cad:

  oeqa/sstate: Fix allarch samesigs test (2022-01-11 15:48:11 +0000)

are available in the Git repository at:

  git://git.yoctoproject.org/git/poky-contrib timo/deprecate_distutils_14610_v2
  http://git.yoctoproject.org/cgit.cgi/git/poky-contrib/log/?h=timo/deprecate_distutils_14610_v2

Tim Orling (22):
  classes/distutils-*: add warning of deprecation
  setuptools3: refactor for no distutils bbclasses
  python3-cython: DISTUTILS_* -> SETUPTOOLS_*
  dnf: inherit setuptools3-base instead of distutils
  libdnf: inherit setuptools3-base not distutils
  python3-dbus: inherit setuptools3-base not distuils
  gpgme: inherit setuptools-base not distuils
  python3-pip: inherit setuptools3 not distuils3
  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
  python3-pygobject: setuptools instead of distuils
  bind: inherit setuptools3-base instead of distutils
  python3-setuptools: do not depend on distutils
  gstreamer1.0-python: inherit setuptools3-base
  recipetool/create_buildsys_python.py: less distutils
  waf.bbclass: drop usage of distutils
  dnf: drop python3-distutils dependency
  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/setuptools3-base.bbclass         | 31 +++++++++
 meta/classes/setuptools3.bbclass              | 66 ++++++++++++++++++-
 meta/classes/waf.bbclass                      |  3 +-
 .../recipes-connectivity/bind/bind_9.16.24.bb |  2 +-
 .../btrfs-tools/btrfs-tools_5.15.1.bb         |  2 +-
 .../createrepo-c/createrepo-c_0.18.0.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.26.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.5.0.bb       |  1 -
 .../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 +-
 .../lib/recipetool/create_buildsys_python.py  |  8 ++-
 24 files changed, 129 insertions(+), 23 deletions(-)
 create mode 100644 meta/classes/setuptools3-base.bbclass

Comments

Alexander Kanavin Jan. 11, 2022, 7:37 p.m. UTC | #1
Thanks Tim, does this address the issue of building items that don't ship a
setup.py anymore?

Alex

On Tue, 11 Jan 2022 at 20:01, Tim Orling <ticotimo@gmail.com> wrote:

> 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]
>
> Changes in v2:
>   - dropped the import of distutils.version into bb. in favor of
>     bb.utils.vercmp_string_op()
>   - dropped some patches that have been addressed already
>   - update email
>   - fix typos
>   - drop already merged scripts/buildhistory-diff patch
> The following changes since commit
> 16110cdca7211b0efc59464afbb253527c033cad:
>
>   oeqa/sstate: Fix allarch samesigs test (2022-01-11 15:48:11 +0000)
>
> are available in the Git repository at:
>
>   git://git.yoctoproject.org/git/poky-contrib
> timo/deprecate_distutils_14610_v2
>
> http://git.yoctoproject.org/cgit.cgi/git/poky-contrib/log/?h=timo/deprecate_distutils_14610_v2
>
> Tim Orling (22):
>   classes/distutils-*: add warning of deprecation
>   setuptools3: refactor for no distutils bbclasses
>   python3-cython: DISTUTILS_* -> SETUPTOOLS_*
>   dnf: inherit setuptools3-base instead of distutils
>   libdnf: inherit setuptools3-base not distutils
>   python3-dbus: inherit setuptools3-base not distuils
>   gpgme: inherit setuptools-base not distuils
>   python3-pip: inherit setuptools3 not distuils3
>   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
>   python3-pygobject: setuptools instead of distuils
>   bind: inherit setuptools3-base instead of distutils
>   python3-setuptools: do not depend on distutils
>   gstreamer1.0-python: inherit setuptools3-base
>   recipetool/create_buildsys_python.py: less distutils
>   waf.bbclass: drop usage of distutils
>   dnf: drop python3-distutils dependency
>   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/setuptools3-base.bbclass         | 31 +++++++++
>  meta/classes/setuptools3.bbclass              | 66 ++++++++++++++++++-
>  meta/classes/waf.bbclass                      |  3 +-
>  .../recipes-connectivity/bind/bind_9.16.24.bb |  2 +-
>  .../btrfs-tools/btrfs-tools_5.15.1.bb         |  2 +-
>  .../createrepo-c/createrepo-c_0.18.0.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.26.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.5.0.bb       |  1 -
>  .../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 +-
>  .../lib/recipetool/create_buildsys_python.py  |  8 ++-
>  24 files changed, 129 insertions(+), 23 deletions(-)
>  create mode 100644 meta/classes/setuptools3-base.bbclass
>
> --
> 2.30.2
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#160436):
> https://lists.openembedded.org/g/openembedded-core/message/160436
> Mute This Topic: https://lists.openembedded.org/mt/88356412/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Tim Orling Jan. 11, 2022, 8:04 p.m. UTC | #2
On Tue, Jan 11, 2022 at 11:38 AM Alexander Kanavin <alex.kanavin@gmail.com>
wrote:

> Thanks Tim, does this address the issue of building items that don't ship
> a setup.py anymore?
>
>
No. That falls under the PEP 517 work which is in a much rougher raw state.

The approach for that is expected to be supporting setup.cfg and
pyproject.toml as first class citizens.


> Alex
>
> On Tue, 11 Jan 2022 at 20:01, Tim Orling <ticotimo@gmail.com> wrote:
>
>> 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]
>>
>> Changes in v2:
>>   - dropped the import of distutils.version into bb. in favor of
>>     bb.utils.vercmp_string_op()
>>   - dropped some patches that have been addressed already
>>   - update email
>>   - fix typos
>>   - drop already merged scripts/buildhistory-diff patch
>> The following changes since commit
>> 16110cdca7211b0efc59464afbb253527c033cad:
>>
>>   oeqa/sstate: Fix allarch samesigs test (2022-01-11 15:48:11 +0000)
>>
>> are available in the Git repository at:
>>
>>   git://git.yoctoproject.org/git/poky-contrib
>> timo/deprecate_distutils_14610_v2
>>
>> http://git.yoctoproject.org/cgit.cgi/git/poky-contrib/log/?h=timo/deprecate_distutils_14610_v2
>>
>> Tim Orling (22):
>>   classes/distutils-*: add warning of deprecation
>>   setuptools3: refactor for no distutils bbclasses
>>   python3-cython: DISTUTILS_* -> SETUPTOOLS_*
>>   dnf: inherit setuptools3-base instead of distutils
>>   libdnf: inherit setuptools3-base not distutils
>>   python3-dbus: inherit setuptools3-base not distuils
>>   gpgme: inherit setuptools-base not distuils
>>   python3-pip: inherit setuptools3 not distuils3
>>   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
>>   python3-pygobject: setuptools instead of distuils
>>   bind: inherit setuptools3-base instead of distutils
>>   python3-setuptools: do not depend on distutils
>>   gstreamer1.0-python: inherit setuptools3-base
>>   recipetool/create_buildsys_python.py: less distutils
>>   waf.bbclass: drop usage of distutils
>>   dnf: drop python3-distutils dependency
>>   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/setuptools3-base.bbclass         | 31 +++++++++
>>  meta/classes/setuptools3.bbclass              | 66 ++++++++++++++++++-
>>  meta/classes/waf.bbclass                      |  3 +-
>>  .../recipes-connectivity/bind/bind_9.16.24.bb |  2 +-
>>  .../btrfs-tools/btrfs-tools_5.15.1.bb         |  2 +-
>>  .../createrepo-c/createrepo-c_0.18.0.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.26.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.5.0.bb       |  1 -
>>  .../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 +-
>>  .../lib/recipetool/create_buildsys_python.py  |  8 ++-
>>  24 files changed, 129 insertions(+), 23 deletions(-)
>>  create mode 100644 meta/classes/setuptools3-base.bbclass
>>
>> --
>> 2.30.2
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#160436):
>> https://lists.openembedded.org/g/openembedded-core/message/160436
>> Mute This Topic: https://lists.openembedded.org/mt/88356412/1686489
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
>> alex.kanavin@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>>