diff mbox series

[3/4] python3-setuptools: upgrade 83.0.0 -> 84.0.0

Message ID 20260809202935.1904858-3-richard.purdie@linuxfoundation.org
State Under Review
Headers show
Series [1/4] libffi: upgrade 3.7.1 -> 3.8.0 | expand

Commit Message

Richard Purdie Aug. 9, 2026, 8:29 p.m. UTC
https://setuptools.pypa.io/en/latest/history.html

v84.0.0
=======

Features

    Newline-separated keywords and platforms, which are invalid and corrupt the generated metadata
    (pypa/setuptools#4887), are now handled forgivingly: each line is treated as a separate item and
    a deprecation warning is emitted. Newlines were never a valid separator for these fields – the
    old specification separated items with spaces and the current one uses commas. (#4887)

    Extension is now a dataclass, exposing type annotations for its constructor arguments so subclasses
    (e.g. in Setuptools) can inherit them without redeclaring each parameter. Passing unknown keyword
    arguments is now deprecated. (pypa/distutils#373) (#5022)

    The C compiler modules now emit log messages through their own compilers.C.* loggers instead of the
    distutils root logger, part of decoupling the compilers package from distutils. The logger names are
    normalized to a stable compilers.C.* prefix so they remain constant as the package migrates toward a
    standalone compilers.C distribution. (#5266)

    The C compilers gained a Compiler.call method – a thin wrapper over subprocess.check_call (with macOS
    deployment-target env injection) that is the modern replacement for Compiler.spawn. The compilers no
    longer depend on distutils.spawn, distutils.dir_util, distutils.file_util, distutils._modified, or
    distutils.util.execute/split_quoted: the generic newer/newer_group and split_quoted helpers are
    vendored into the compilers package, and Compiler.mkpath/move_file/execute are implemented directly
    on the standard library (os.makedirs/shutil.move). The methods are retained for backward
    compatibility. (#5267)

    The compilers no longer depend on distutils.util, distutils.version, distutils.compat, or
    distutils._macos_compat. The platform-identification helpers (get_platform/get_host_platform/is_mingw)
    now live in distutils.compilers.platform.detect and the macOS deployment-target logic and compiler_fixup
    in distutils.compilers.platform.macos; CygwinCCompiler.gcc_version returns a packaging.version.Version.
    distutils.util re-exports the platform/macOS helpers from their new homes for backward compatibility
    rather than keeping duplicate copies. (sysconfig lookups still route through distutils pending its
    own decoupling.) (#5268)

    The compilers now read their build configuration from the standard library’s sysconfig instead of
    distutils.sysconfig. Per-compiler customization – previously distutils.sysconfig.customize_compiler
    – has moved into Compiler.configure_system(): a no-op on the base class, with UnixCCompiler
    applying the compiler/flag/archiver settings CPython recorded in sysconfig (and the usual
    CC/CFLAGS/LDSHARED/… environment overrides). distutils.sysconfig.customize_compiler is retained
    as a thin wrapper that calls compiler.configure_system(). (#5269)

Bugfixes

    The MSVC linker now passes its arguments through a response file when the command line would exceed
    the Windows maximum length, fixing failures when linking a large number of objects. (#4177)

    The Cygwin and MinGW compilers now pass -O1 instead of a bare -O. The two are equivalent to GCC,
    but cc1 rejected the bare form when building 32-bit extensions with -m32. – by @dchaudhari7177 (#4873)

    copy_file now preserves the full precision of the source’s modification time, so a copy is no longer
    considered older than its source on filesystems with sub-second timestamp resolution.
    (pypa/distutils#379) (#5079)

    Setuptools wheels no longer bundled the project’s own test modules. – by @itscloud0 (#5212)

    build_ext no longer fails when cross-compiling with a compiler other than MSVC (such as MinGW). Compiler now
    provides a no-op initialize() that non-MSVC compilers inherit. (pypa/distutils#399)

Improved Documentation

    Clarified what “correspond exactly to the directory structure” means in the packages section of the
    Package Discovery user guide. (#4109)

    Documented how bdist_wheel’s py_limited_api option controls abi3 wheel tagging for extension modules –
    by @Himanshuagrawal4 (#4741)

Deprecations and Removals

    Compiler.spawn is deprecated in favor of the new Compiler.call. call raises native subprocess exceptions;
    spawn remains as a shim that emits a DeprecationWarning and translates them to DistutilsExecError. The
    MSVC spawn compatibility shim for third-party monkeypatches predating the env argument (numpy.distutils
    before 1.19, per pypa/distutils#15) has been removed. distutils.spawn.spawn is likewise reduced to a thin
    wrapper around subprocess.check_call: it no longer resolves cmd[0] via shutil.which (subprocess searches
    PATH itself) nor injects MACOSX_DEPLOYMENT_TARGET (that now lives with the compilers, the only callers
    to which it applied). (#5267)

    Building an extension with a MACOSX_DEPLOYMENT_TARGET lower than the interpreter’s configured value now
    raises compilers.errors.PlatformError instead of distutils.errors.DistutilsPlatformError (the macOS
    dep loyment-target check moved into the compilers package). CygwinCCompiler.gcc_version returns a
    packaging.version.Version rather than the removed distutils.version.LooseVersion. Completing the
    transition begun in pypa/distutils#246, UnixCCompiler.runtime_library_dir_option now returns the
    ["-Wl,--enable-new-dtags", "-Wl,-rpath,<dir>"] list directly for GNU ld rather than collapsing it
    into a single string, and the temporary distutils.compat.consolidate_linker_args shim has been removed. (#5268)

    The compilers now define their own exception vocabulary instead of borrowing distutils’ framework errors.
    Language-agnostic exceptions (Error, UnknownFileType, and a new PlatformError) live at
    distutils.compilers.errors, leaving room for future compilers.<language> siblings; the
    C/C++-specific CompileError/LinkError/LibError/PreprocessError remain in distutils.compilers.C.errors.
    The compilers now raise compilers.errors.PlatformError where they previously raised
    distutils.errors.DistutilsPlatformError/DistutilsModuleError, and compilers._modified.newer raises the stdlib
    FileNotFoundError. distutils.errors keeps its own framework exceptions and re-exports the compiler ones
    (CCompilerError, CompileError, etc.) for backward compatibility; because CCompilerError is compilers.errors.Error,
    code catching it (as distutils’ top-level handlers do) still catches the new PlatformError. (#5270)

    customize_compiler now asserts that the compiler-related config variables (CC, CXX, CFLAGS, etc.) resolve
    to strings, raising AssertionError if any are unexpectedly None rather than failing later with a less
    clear error. (pypa/distutils#363)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 ...1-_distutils-sysconfig.py-make-it-possible-to-substite.patch | 2 +-
 ...ython3-setuptools_83.0.0.bb => python3-setuptools_84.0.0.bb} | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/python/{python3-setuptools_83.0.0.bb => python3-setuptools_84.0.0.bb} (94%)

Comments

patchtest@automation.yoctoproject.org Aug. 9, 2026, 8:47 p.m. UTC | #1
Thank you for your submission. Patchtest identified one
or more issues with the patch. Please see the log below for
more information:

---
Testing patch /home/patchtest/share/mboxes/3-4-python3-setuptools-upgrade-83.0.0---84.0.0.patch

FAIL: test commit message user tags: Mbox includes one or more GitHub-style username tags. Ensure that any "@" symbols are stripped out of usernames (test_mbox.TestMbox.test_commit_message_user_tags)

PASS: pretest src uri left files (test_metadata.TestMetadata.pretest_src_uri_left_files)
PASS: test CVE check ignore (test_metadata.TestMetadata.test_cve_check_ignore)
PASS: test Signed-off-by presence (test_mbox.TestMbox.test_signed_off_by_presence)
PASS: test auh changelog truncation notice (test_mbox.TestMbox.test_auh_changelog_truncation_notice)
PASS: test author valid (test_mbox.TestMbox.test_author_valid)
PASS: test commit message presence (test_mbox.TestMbox.test_commit_message_presence)
PASS: test lic files chksum modified not mentioned (test_metadata.TestMetadata.test_lic_files_chksum_modified_not_mentioned)
PASS: test max line length (test_metadata.TestMetadata.test_max_line_length)
PASS: test mbox format (test_mbox.TestMbox.test_mbox_format)
PASS: test non-AUH upgrade (test_mbox.TestMbox.test_non_auh_upgrade)
PASS: test shortlog format (test_mbox.TestMbox.test_shortlog_format)
PASS: test shortlog length (test_mbox.TestMbox.test_shortlog_length)
PASS: test src uri left files (test_metadata.TestMetadata.test_src_uri_left_files)
PASS: test target mailing list (test_mbox.TestMbox.test_target_mailing_list)

SKIP: pretest pylint: No python related patches, skipping test (test_python_pylint.PyLint.pretest_pylint)
SKIP: test CVE tag format: No new source patches introduced (test_patch.TestPatch.test_cve_tag_format)
SKIP: test Signed-off-by presence: No new source patches introduced (test_patch.TestPatch.test_signed_off_by_presence)
SKIP: test Upstream-Status presence: No new source patches introduced (test_patch.TestPatch.test_upstream_status_presence_format)
SKIP: test bugzilla entry format: No bug ID found (test_mbox.TestMbox.test_bugzilla_entry_format)
SKIP: test lic files chksum presence: No added recipes, skipping test (test_metadata.TestMetadata.test_lic_files_chksum_presence)
SKIP: test license presence: No added recipes, skipping test (test_metadata.TestMetadata.test_license_presence)
SKIP: test pylint: No python related patches, skipping test (test_python_pylint.PyLint.test_pylint)
SKIP: test series merge on head: Merge test is disabled for now (test_mbox.TestMbox.test_series_merge_on_head)
SKIP: test summary presence: No added recipes, skipping test (test_metadata.TestMetadata.test_summary_presence)

---

Please address the issues identified and
submit a new revision of the patch, or alternatively, reply to this
email with an explanation of why the patch should be accepted. If you
believe these results are due to an error in patchtest, please submit a
bug at https://bugzilla.yoctoproject.org/ (use the 'Patchtest' category
under 'Yocto Project Subprojects'). For more information on specific
failures, see: https://wiki.yoctoproject.org/wiki/Patchtest. Thank
you!
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
index 6e240c47d20..f6313fb1a98 100644
--- a/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
+++ b/meta/recipes-devtools/python/python3-setuptools/0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch
@@ -1,4 +1,4 @@ 
-From 015ff68e79298c5148350cf3bf0b72d1d409ba4b Mon Sep 17 00:00:00 2001
+From fe651521b9d970a84432b37d2731932a4862deb2 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Wed, 11 May 2022 21:41:14 +0200
 Subject: [PATCH] _distutils/sysconfig.py: make it possible to substite the
diff --git a/meta/recipes-devtools/python/python3-setuptools_83.0.0.bb b/meta/recipes-devtools/python/python3-setuptools_84.0.0.bb
similarity index 94%
rename from meta/recipes-devtools/python/python3-setuptools_83.0.0.bb
rename to meta/recipes-devtools/python/python3-setuptools_84.0.0.bb
index e5593c9f73d..648b084a27c 100644
--- a/meta/recipes-devtools/python/python3-setuptools_83.0.0.bb
+++ b/meta/recipes-devtools/python/python3-setuptools_84.0.0.bb
@@ -11,7 +11,7 @@  CVE_PRODUCT = "python3-setuptools python:setuptools"
 SRC_URI += " \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef"
+SRC_URI[sha256sum] = "f4695c21257f0d9b537ec2692c941d02ee143b7cc1276941349a546573b2ef73"
 
 do_install:append() {
 	# setuptools ships Windows launcher executables (cli*.exe, gui*.exe).