Skip to content

[BUG] setuptools 77.0.2 legacy build_meta fails with TypeError #4902

@reallistic

Description

@reallistic

setuptools version

setuptools==77.0.3

Python version

Python 3.10.16

OS

macos + ubuntu jammy

Additional environment information

$ uv --version
uv 0.6.8 (c1ef48276 2025-03-18)

Description

When attempting to build an sdist using uv the following error is displayed:

<see full output below>
running check
Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 449, in build_sdist
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 407, in _build_with_temp_dir
    self.run_setup()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in run_setup
    exec(code, locals())
  File "<string>", line 1, in <module>
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 186, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
    dist.run_commands()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
    self.run_command(cmd)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/dist.py", line 1105, in run_command
    super().run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
    cmd_obj.run()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/command/sdist.py", line 67, in run
    self.run_command(cmd_name)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
    self.distribution.run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/dist.py", line 1105, in run_command
    super().run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj = self.get_command_obj(command)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 885, in get_command_obj
    cmd_obj = self.command_obj[command] = klass(self)
                                          ^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setupmeta/__init__.py", line 786, in meta_command_init
    setuptools.Command.__init__(self, dist, **kwargs)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/__init__.py", line 175, in __init__
    super().__init__(dist)
    ^^^^^^^
TypeError: super(type, obj): obj must be an instance or subtype of type
  × Failed to build `/Users/michase/workspace/ntflx/scratch/repro-setuptools-77-0-3`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
      hint: This usually indicates a problem with the package or the build environment.

Expected behavior

I expect the sdist to be generated without error.

How to Reproduce

First, ensure uv and python 3.10 are installed.

Use the following pyproject.toml file:

[project]
name = "repro-setuptools-7703"
version = "0.0.1"

[build-system]
requires = ["setuptools == 77.0.3", "setupmeta"]
build-backend = "setuptools.build_meta"

Command:

uv build --index-url https://pypi.org/simple -o . --sdist -p 3.10 .

Output

uv build --index-url https://pypi.org/simple -o . --sdist -p 3.10 .
Building source distribution...
running egg_info
creating repro_setuptools_7703.egg-info
writing repro_setuptools_7703.egg-info/PKG-INFO
writing dependency_links to repro_setuptools_7703.egg-info/dependency_links.txt
writing top-level names to repro_setuptools_7703.egg-info/top_level.txt
writing manifest file 'repro_setuptools_7703.egg-info/SOURCES.txt'
reading manifest file 'repro_setuptools_7703.egg-info/SOURCES.txt'
writing manifest file 'repro_setuptools_7703.egg-info/SOURCES.txt'
running sdist
running egg_info
writing repro_setuptools_7703.egg-info/PKG-INFO
writing dependency_links to repro_setuptools_7703.egg-info/dependency_links.txt
writing top-level names to repro_setuptools_7703.egg-info/top_level.txt
reading manifest file 'repro_setuptools_7703.egg-info/SOURCES.txt'
writing manifest file 'repro_setuptools_7703.egg-info/SOURCES.txt'
warning: sdist: standard file not found: should have one of README, README.rst, README.txt, README.md

running check
Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 449, in build_sdist
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 407, in _build_with_temp_dir
    self.run_setup()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in run_setup
    exec(code, locals())
  File "<string>", line 1, in <module>
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/__init__.py", line 117, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 186, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
    dist.run_commands()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1002, in run_commands
    self.run_command(cmd)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/dist.py", line 1105, in run_command
    super().run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1021, in run_command
    cmd_obj.run()
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/command/sdist.py", line 67, in run
    self.run_command(cmd_name)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 357, in run_command
    self.distribution.run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/dist.py", line 1105, in run_command
    super().run_command(command)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
    cmd_obj = self.get_command_obj(command)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 885, in get_command_obj
    cmd_obj = self.command_obj[command] = klass(self)
                                          ^^^^^^^^^^^
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setupmeta/__init__.py", line 786, in meta_command_init
    setuptools.Command.__init__(self, dist, **kwargs)
  File "/Users/michase/.cache/uv/builds-v0/.tmpJ345uf/lib/python3.11/site-packages/setuptools/__init__.py", line 175, in __init__
    super().__init__(dist)
    ^^^^^^^
TypeError: super(type, obj): obj must be an instance or subtype of type
  × Failed to build `/Users/michase/workspace/ntflx/scratch/repro-setuptools-77-0-3`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_sdist` failed (exit status: 1)
      hint: This usually indicates a problem with the package or the build environment.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy