Package: src:meson-python
Version: 0.16.0-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules binary
dh binary --with sphinxdoc --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel 
--outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy --config-setting 
compile-args=--verbose --config-setting setup-args=--wrap-mode=nodownload --config-setting 
setup-args=--prefix=/usr --config-setting setup-args=--sysconfdir=/etc --config-setting 
setup-args=--localstatedir=/var --config-setting setup-args=--libdir=lib/x86_64-linux-gnu
* Building wheel...
+ meson setup /<<PKGBUILDDIR>> /<<PKGBUILDDIR>>/.mesonpy-mextfi3j -Dbuildtype=release 
-Db_ndebug=if-release -Db_vscrt=md --wrap-mode=nodownload --prefix=/usr --sysconfdir=/etc --localstatedir=/var 
--libdir=lib/x86_64-linux-gnu 
--native-file=/<<PKGBUILDDIR>>/.mesonpy-mextfi3j/meson-python-native-file.ini
The Meson build system
Version: 1.6.0
Source dir: /<<PKGBUILDDIR>>
Build dir: /<<PKGBUILDDIR>>/.mesonpy-mextfi3j
Build type: native build
Project name: meson-python
Project version: 0.16.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program python found: YES (/usr/bin/python3.12)
Build targets in project: 0

meson-python 0.16.0

  User defined options
    Native files : 
/<<PKGBUILDDIR>>/.mesonpy-mextfi3j/meson-python-native-file.ini
    b_ndebug     : if-release
    b_vscrt      : md
    buildtype    : release
    libdir       : lib/x86_64-linux-gnu
    localstatedir: /var
    prefix       : /usr
    sysconfdir   : /etc
    wrap_mode    : nodownload

Found ninja-1.12.1 at /usr/bin/ninja
+ /usr/bin/ninja --verbose
ninja: no work to do.
[1/7] /<<PKGBUILDDIR>>/mesonpy/__init__.py
[2/7] /<<PKGBUILDDIR>>/mesonpy/_compat.py
[3/7] /<<PKGBUILDDIR>>/mesonpy/_editable.py
[4/7] /<<PKGBUILDDIR>>/mesonpy/_rpath.py
[5/7] /<<PKGBUILDDIR>>/mesonpy/_tags.py
[6/7] /<<PKGBUILDDIR>>/mesonpy/_util.py
[7/7] /<<PKGBUILDDIR>>/mesonpy/_wheelfile.py
Successfully built meson_python-0.16.0-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
   debian/rules execute_after_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
PYTHONPATH=. http_proxy='127.0.0.1:9' python3 -m sphinx -N -bhtml docs/ 
build/html
Running Sphinx v7.4.7
loading translations [en]... done
making output directory... done
loading intersphinx inventory 'python' from 
https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
writing output...
building [html]: targets for 18 source files that are out of date
updating environment: [new config] 18 added, 0 changed, 0 removed
reading sources... [  6%] about
reading sources... [ 11%] changelog
reading sources... [ 17%] contributing/index
reading sources... [ 22%] contributing/release-process
reading sources... [ 28%] explanations/default-options
reading sources... [ 33%] explanations/design-old
reading sources... [ 39%] how-to-guides/config-settings
reading sources... [ 44%] how-to-guides/debug-builds
reading sources... [ 50%] how-to-guides/editable-installs
reading sources... [ 56%] how-to-guides/meson-args
reading sources... [ 61%] index
reading sources... [ 67%] projects-using-meson-python
reading sources... [ 72%] reference/config-settings
reading sources... [ 78%] reference/environment-variables
reading sources... [ 83%] reference/limitations
reading sources... [ 89%] reference/meson-compatibility
reading sources... [ 94%] reference/pyproject-settings
reading sources... [100%] tutorials/introduction

looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
copying assets...
copying static files... done
copying extra files... done
copying assets: done
writing output... [  6%] about
writing output... [ 11%] changelog
writing output... [ 17%] contributing/index
writing output... [ 22%] contributing/release-process
writing output... [ 28%] explanations/default-options
writing output... [ 33%] explanations/design-old
writing output... [ 39%] how-to-guides/config-settings
writing output... [ 44%] how-to-guides/debug-builds
writing output... [ 50%] how-to-guides/editable-installs
writing output... [ 56%] how-to-guides/meson-args
writing output... [ 61%] index
writing output... [ 67%] projects-using-meson-python
writing output... [ 72%] reference/config-settings
writing output... [ 78%] reference/environment-variables
writing output... [ 83%] reference/limitations
writing output... [ 89%] reference/meson-compatibility
writing output... [ 94%] reference/pyproject-settings
writing output... [100%] tutorials/introduction

generating indices... genindex done
writing additional pages... search done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.

The HTML pages are in build/html.
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build; 
python3.12 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build
configfile: pyproject.toml
plugins: mock-3.14.0, typeguard-4.3.0
collected 113 items

tests/test_consistency.py .                                              [  0%]
tests/test_editable.py ................                                  [ 15%]
tests/test_examples.py .                                                 [ 15%]
tests/test_metadata.py ....F                                             [ 20%]
tests/test_options.py ...                                                [ 23%]
tests/test_output.py .........                                           [ 30%]
tests/test_pep517.py .............                                       [ 42%]
tests/test_project.py ............ssssss                                 [ 58%]
tests/test_sdist.py FFF.....                                             [ 65%]
tests/test_tags.py .sss.....                                             [ 73%]
tests/test_wheel.py ...............ss..........                          [ 97%]
tests/test_wheelfile.py ...                                              [100%]

=================================== FAILURES ===================================
_____________________________ test_missing_version _____________________________

package_missing_version = 
PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/missing-version')

    def test_missing_version(package_missing_version):
        pyproject = {'project': {
            'name': 'missing-version',
        }}
        match = '|'.join((
            re.escape('Required "project.version" field is missing'),
            # pyproject-metatadata 0.8.0 and later
            re.escape('Field "project.version" missing and "version" not specified in 
"project.dynamic"'),
        ))
        with pytest.raises(pyproject_metadata.ConfigurationError, match=match):
          Metadata.from_pyproject(pyproject, pathlib.Path())

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/test_metadata.py:58:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/mesonpy/__init__.py:256: 
in from_pyproject
    metadata = super().from_pyproject(data, project_dir)
/usr/lib/python3/dist-packages/pyproject_metadata/__init__.py:360: in 
from_pyproject
    pyproject.config_error(msg, key="project.version")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = PyProjectReader(collect_errors=False, errors=[])
msg = 'Field "project.version" missing and \'version\' not specified in 
"project.dynamic"'
key = 'project.version', got = None, got_type = None, warn = False, kwargs = {}

    def config_error(
        self,
        msg: str,
        *,
        key: str | None = None,
        got: typing.Any = None,
        got_type: type[typing.Any] | None = None,
        warn: bool = False,
        **kwargs: typing.Any,
    ) -> None:
        """Raise a configuration error, or add it to the error list."""
        msg = msg.format(key=f'"{key}"', **kwargs)
        if got is not None:
            msg = f"{msg} (got {got!r})"
        if got_type is not None:
            msg = f"{msg} (got {got_type.__name__})"
if warn:
            warnings.warn(msg, ConfigurationWarning, stacklevel=3)
        elif self.collect_errors:
            self.errors.append(ConfigurationError(msg, key=key))
        else:
          raise ConfigurationError(msg, key=key)
E           pyproject_metadata.errors.ConfigurationError: Field "project.version" missing 
and 'version' not specified in "project.dynamic"

/usr/lib/python3/dist-packages/pyproject_metadata/errors.py:103: 
ConfigurationError

During handling of the above exception, another exception occurred:

package_missing_version = 
PosixPath('/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/missing-version')

    def test_missing_version(package_missing_version):
        pyproject = {'project': {
            'name': 'missing-version',
        }}
        match = '|'.join((
            re.escape('Required "project.version" field is missing'),
            # pyproject-metatadata 0.8.0 and later
            re.escape('Field "project.version" missing and "version" not specified in 
"project.dynamic"'),
        ))
      with pytest.raises(pyproject_metadata.ConfigurationError, match=match):
E       AssertionError: Regex pattern did not match.
E        Regex: 'Required\\ "project\\.version"\\ field\\ is\\ missing|Field\\ 
"project\\.version"\\ missing\\ and\\ "version"\\ not\\ specified\\ in\\ 
"project\\.dynamic"'
E        Input: 'Field "project.version" missing and \'version\' not specified in 
"project.dynamic"'

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/test_metadata.py:57:
 AssertionError
________________________________ test_no_pep621 ________________________________

sdist_library = 
PosixPath('/tmp/pytest-of-buildd/pytest-0/test0/mesonpy-test-n04ixm0s/library-1.0.0.tar.gz')

    def test_no_pep621(sdist_library):
        with tarfile.open(sdist_library, 'r:gz') as sdist:
            sdist_pkg_info = 
sdist.extractfile('library-1.0.0/PKG-INFO').read().decode()
      assert sdist_pkg_info == textwrap.dedent('''\
            Metadata-Version: 2.1
            Name: library
            Version: 1.0.0
        ''')
E       AssertionError: assert 'Metadata-Ver...on: 1.0.0\n\n' == 
'Metadata-Ver...sion: 1.0.0\n'
E
E         Skipping 40 identical leading characters in diff, use -v to show
E           ion: 1.0.0
E         +

tests/test_sdist.py:23: AssertionError
---------------------------- Captured stdout setup -----------------------------
Initialized empty Git repository in 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.git/
+ meson setup /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.mesonpy-7exs2i81 
-Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md 
--native-file=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.mesonpy-7exs2i81/meson-python-native-file.ini
The Meson build system
Version: 1.6.0
Source dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library
Build dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.mesonpy-7exs2i81
Build type: native build
Project name: library
Project version: 1.0.0
C compiler for the host machine: cc (gcc 14.2.0 "cc (Debian 14.2.0-7) 14.2.0")
C linker for the host machine: cc ld.bfd 2.43.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 2

library 1.0.0

  User defined options
    Native files: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.mesonpy-7exs2i81/meson-python-native-file.ini
    b_ndebug    : if-release
    b_vscrt     : md
    buildtype   : release

Found ninja-1.12.1 at /usr/bin/ninja
+ meson dist --allow-dirty --no-tests --formats gztar
Created 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/library/.mesonpy-7exs2i81/meson-dist/library-1.0.0.tar.gz
_________________________________ test_pep621 __________________________________

sdist_full_metadata = 
PosixPath('/tmp/pytest-of-buildd/pytest-0/test0/mesonpy-test-n04ixm0s/full_metadata-1.2.3.tar.gz')

    def test_pep621(sdist_full_metadata):
        with tarfile.open(sdist_full_metadata, 'r:gz') as sdist:
            sdist_pkg_info = 
sdist.extractfile('full_metadata-1.2.3/PKG-INFO').read().decode()
metadata = re.escape(textwrap.dedent('''\
            Metadata-Version: 2.1
            Name: full-metadata
            Version: 1.2.3
            Summary: Some package with all of the PEP 621 metadata
            Keywords: full metadata
            Home-page: https://example.com
            Author: Jane Doe
            Author-Email: Unknown <jhon....@example.com>
            Maintainer-Email: Jane Doe <jane....@example.com>
            License: some license
            Classifier: Development Status :: 4 - Beta
            Classifier: Programming Language :: Python
            Project-URL: Homepage, https://example.com
            Project-URL: Documentation, https://readthedocs.org
            Project-URL: Repository, https://github.com/mesonbuild/meson-python
            Project-URL: Changelog, 
https://github.com/mesonbuild/meson-python/blob/master/CHANGELOG.rst
            Requires-Python: >=3.7
            Requires-Dist: a
            Requires-Dist: b>1
            Requires-Dist: c>2; os_name != "nt"
            Requires-Dist: d<3; extra == "test"
            Requires-Dist: e[all]; extra == "test"
            Provides-Extra: test
            Description-Content-Type: text/markdown
<!--
            SPDX-FileCopyrightText: 2021 The meson-python developers
SPDX-License-Identifier: MIT
            -->
# full-metadata An example package with all of the PEP 621 metadata!
        '''))
# pyproject-metadata 0.8.0 and later uses a comma to separate keywords
        expr = metadata.replace(r'Keywords:\ full\ metadata', r'Keywords:\ 
full[ ,]metadata')
      assert re.fullmatch(expr, sdist_pkg_info)
E       AssertionError: assert None
E        +  where None = <function fullmatch at 
0x7f2326100a40>('Metadata\\-Version:\\ 2\\.1\\\nName:\\ full\\-metadata\\\nVersion:\\ 
1\\.2\\.3\\\nSummary:\\ Some\\ package\\ with\\ ...\\-\\->\\\n\\\n\\#\\ 
full\\-metadata\\\n\\\nAn\\ example\\ package\\ with\\ all\\ of\\ the\\ PEP\\ 621\\ 
metadata!\\\n', 'Metadata-Version: 2.1\nName: full-metadata\nVersion: 1.2.3\nSummary: Some 
package with all of the PEP 621 metadata\nK...pers\n\nSPDX-License-Identifier: 
MIT\n-->\n\n# full-metadata\n\nAn example package with all of the PEP 621 metadata!\n')
E        +    where <function fullmatch at 0x7f2326100a40> = re.fullmatch

tests/test_sdist.py:73: AssertionError
---------------------------- Captured stdout setup -----------------------------
Initialized empty Git repository in 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.git/
+ meson setup /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.mesonpy-42l0rsh8 
-Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md 
--native-file=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.mesonpy-42l0rsh8/meson-python-native-file.ini
The Meson build system
Version: 1.6.0
Source dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata
Build dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.mesonpy-42l0rsh8
Build type: native build
Project name: full-metadata
Project version: 1.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 0

full-metadata 1.0.0

  User defined options
    Native files: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.mesonpy-42l0rsh8/meson-python-native-file.ini
    b_ndebug    : if-release
    b_vscrt     : md
    buildtype   : release

Found ninja-1.12.1 at /usr/bin/ninja
+ meson dist --allow-dirty --no-tests --formats gztar
Created 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/full-metadata/.mesonpy-42l0rsh8/meson-dist/full-metadata-1.0.0.tar.gz
_____________________________ test_dynamic_version _____________________________

sdist_dynamic_version = 
PosixPath('/tmp/pytest-of-buildd/pytest-0/test0/mesonpy-test-n04ixm0s/dynamic_version-1.0.0.tar.gz')

    def test_dynamic_version(sdist_dynamic_version):
        with tarfile.open(sdist_dynamic_version, 'r:gz') as sdist:
            sdist_pkg_info = 
sdist.extractfile('dynamic_version-1.0.0/PKG-INFO').read().decode()
      assert sdist_pkg_info == textwrap.dedent('''\
            Metadata-Version: 2.1
            Name: dynamic-version
            Version: 1.0.0
        ''')
E       AssertionError: assert 'Metadata-Ver...on: 1.0.0\n\n' == 
'Metadata-Ver...sion: 1.0.0\n'
E
E         Skipping 48 identical leading characters in diff, use -v to show
E           ion: 1.0.0
E         +

tests/test_sdist.py:80: AssertionError
---------------------------- Captured stdout setup -----------------------------
Initialized empty Git repository in 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.git/
+ meson setup /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.mesonpy-jt_y31j_ 
-Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md 
--native-file=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.mesonpy-jt_y31j_/meson-python-native-file.ini
The Meson build system
Version: 1.6.0
Source dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version
Build dir: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.mesonpy-jt_y31j_
Build type: native build
Project name: dynamic-version
Project version: 1.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 0

dynamic-version 1.0.0

  User defined options
    Native files: 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.mesonpy-jt_y31j_/meson-python-native-file.ini
    b_ndebug    : if-release
    b_vscrt     : md
    buildtype   : release

Found ninja-1.12.1 at /usr/bin/ninja
+ meson dist --allow-dirty --no-tests --formats gztar
Created 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build/tests/packages/dynamic-version/.mesonpy-jt_y31j_/meson-dist/dynamic-version-1.0.0.tar.gz
=========================== short test summary info ============================
SKIPPED [1] tests/test_project.py:204: Requires MSVC
SKIPPED [3] tests/test_project.py:216: macOS specific test
SKIPPED [2] tests/test_project.py:233: macOS specific test
SKIPPED [1] tests/test_tags.py:47: macOS specific test
SKIPPED [1] tests/test_tags.py:59: macOS specific test
SKIPPED [1] tests/test_tags.py:69: macOS specific test
SKIPPED [2] tests/test_wheel.py:249: macOS specific test
FAILED tests/test_metadata.py::test_missing_version - AssertionError: Regex p...
FAILED tests/test_sdist.py::test_no_pep621 - AssertionError: assert 'Metadata...
FAILED tests/test_sdist.py::test_pep621 - AssertionError: assert None
FAILED tests/test_sdist.py::test_dynamic_version - AssertionError: assert 'Me...
================== 4 failed, 98 passed, 11 skipped in 50.10s ===================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_mesonpy/build; python3.12 -m pytest 
tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.12 
returned exit code 13
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202410/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

Reply via email to