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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions