Your message dated Thu, 18 Dec 2025 16:05:36 +0000
with message-id <[email protected]>
and subject line Bug#1123348: fixed in soupsieve 2.8.1-1
has caused the Debian Bug report #1123348,
regarding soupsieve: FTBFS: dh_auto_test: error: pybuild --test --test-pytest 
-i python{version} -p "3.14 3.13" returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1123348: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123348
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:soupsieve
Version: 2.7-2
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

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

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 cannot 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 add an affects on src:soupsieve, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --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:131: Building wheel for python3.14 with "build" 
module
I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_soupsieve  
* Building wheel...
Successfully built soupsieve-2.7-py3-none-any.whl

[... snipped ...]

        """Test that we don't count `iframe` as root."""
    
>       self.assert_selector(
            self.MARKUP_IFRAME,
            ":root div",
            ["div", "div2", "other-div"],
            flags=util.PYHTML
        )

tests/test_level3/test_root.py:85: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/util.py:124: in assert_selector
    self.assertEqual(sorted(ids), sorted(expected_ids))
E   AssertionError: Lists differ: ['div', 'other-div'] != ['div', 'div2', 
'other-div']
E   
E   First differing element 1:
E   'other-div'
E   'div2'
E   
E   Second list contains 1 additional elements.
E   First extra element 2:
E   'other-div'
E   
E   - ['div', 'other-div']
E   + ['div', 'div2', 'other-div']
E   ?        ++++++++
----------------------------- Captured stdout call -----------------------------
----Running Selector Test----
PATTERN:  :root div
## PARSING: ':root div'
TOKEN: 'pseudo_class' --> ':root' at position 0
TOKEN: 'combine' --> ' ' at position 5
TOKEN: 'tag' --> 'div' at position 6
## END PARSING

====PARSER:  html.parser
TAG:  div
TAG:  div
__________________________ TestRoot.test_root_iframe ___________________________

self = <tests.test_level3.test_root.TestRoot testMethod=test_root_iframe>

    def test_root_iframe(self):
        """Test root."""
    
        # Root in HTML is `<html>`
>       self.assert_selector(
            self.MARKUP_IFRAME,
            ":root",
            ["root", "root2"],
            flags=util.PYHTML
        )

tests/test_level3/test_root.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/util.py:124: in assert_selector
    self.assertEqual(sorted(ids), sorted(expected_ids))
E   AssertionError: Lists differ: ['root'] != ['root', 'root2']
E   
E   Second list contains 1 additional elements.
E   First extra element 1:
E   'root2'
E   
E   - ['root']
E   + ['root', 'root2']
----------------------------- Captured stdout call -----------------------------
----Running Selector Test----
PATTERN:  :root
## PARSING: ':root'
TOKEN: 'pseudo_class' --> ':root' at position 0
## END PARSING

====PARSER:  html.parser
TAG:  html
___________________________ TestDefault.test_iframe ____________________________

self = <tests.test_level4.test_default.TestDefault testMethod=test_iframe>

    def test_iframe(self):
        """Test with `iframe`."""
    
        markup = """
        <html>
        <body>
        <form>
        <button id="d1" type="submit">default1</button>
        </form>
    
        <form>
        <iframe>
        <html>
        <body>
        <button id="d2" type="submit">default2</button>
        </body>
        </html>
        </iframe>
        <button id="d3" type="submit">default3</button>
        </form>
    
        <iframe>
        <html>
        <body>
        <form>
        <button id="d4" type="submit">default4</button>
        </form>
        </body>
        </html>
        </iframe>
        </body>
        </html>
        """
    
>       self.assert_selector(
            markup,
            ":default",
            ['d1', 'd3', 'd4'],
            flags=util.PYHTML
        )

tests/test_level4/test_default.py:113: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/util.py:124: in assert_selector
    self.assertEqual(sorted(ids), sorted(expected_ids))
E   AssertionError: Lists differ: ['d1', 'd3'] != ['d1', 'd3', 'd4']
E   
E   Second list contains 1 additional elements.
E   First extra element 2:
E   'd4'
E   
E   - ['d1', 'd3']
E   + ['d1', 'd3', 'd4']
E   ?            ++++++
----------------------------- Captured stdout call -----------------------------
----Running Selector Test----
PATTERN:  :default
## PARSING: ':default'
TOKEN: 'pseudo_class' --> ':default' at position 0
## END PARSING

====PARSER:  html.parser
TAG:  button
TAG:  button
_____________________________ TestDir.test_iframe ______________________________

self = <tests.test_level4.test_dir.TestDir testMethod=test_iframe>

    def test_iframe(self):
        """Test direction in `iframe`."""
    
        markup = """
        <html>
        <head></head>
        <body>
        <div id="1" dir="auto">
        <iframe>
        <html>
        <body>
        <div id="2" dir="auto">
        <!-- comment -->עִבְרִית
        <span id="5" dir="auto">()</span></div>
        </div>
        </body>
        </html>
        </iframe>
        </body>
        </html>
        """
    
        self.assert_selector(
            markup,
            "div:dir(ltr)",
            ['1'],
            flags=util.PYHTML
        )
    
>       self.assert_selector(
            markup,
            "div:dir(rtl)",
            ['2'],
            flags=util.PYHTML
        )

tests/test_level4/test_dir.py:169: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/util.py:124: in assert_selector
    self.assertEqual(sorted(ids), sorted(expected_ids))
E   AssertionError: Lists differ: [] != ['2']
E   
E   Second list contains 1 additional elements.
E   First extra element 0:
E   '2'
E   
E   - []
E   + ['2']
----------------------------- Captured stdout call -----------------------------
----Running Selector Test----
PATTERN:  div:dir(ltr)
## PARSING: 'div:dir(ltr)'
TOKEN: 'tag' --> 'div' at position 0
TOKEN: 'pseudo_dir' --> ':dir(ltr)' at position 3
## END PARSING

====PARSER:  html.parser
TAG:  div
----Running Selector Test----
PATTERN:  div:dir(rtl)
## PARSING: 'div:dir(rtl)'
TOKEN: 'tag' --> 'div' at position 0
TOKEN: 'pseudo_dir' --> ':dir(rtl)' at position 3
## END PARSING

====PARSER:  html.parser
________________________ TestIndeterminate.test_iframe _________________________

self = <tests.test_level4.test_indeterminate.TestIndeterminate 
testMethod=test_iframe>

    def test_iframe(self):
        """Test indeterminate when `iframe` is involved."""
    
        markup = """
        <form>
            <input type="radio" name="test" id="radio1">
            <label for="radio1">This label starts out lime.</label>
    
            <iframe>
            <html>
            <body>
            <input type="radio" name="test" id="radio2" checked>
            <label for="radio2">This label starts out lime.</label>
    
            <input type="radio" name="other" id="radio3">
            <label for="radio3">This label starts out lime.</label>
            </body>
            </html>
            </iframe></form>"""
    
>       self.assert_selector(
            markup,
            ":indeterminate",
            ['radio1', 'radio3'],
            flags=util.PYHTML
        )

tests/test_level4/test_indeterminate.py:68: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/util.py:124: in assert_selector
    self.assertEqual(sorted(ids), sorted(expected_ids))
E   AssertionError: Lists differ: ['radio1'] != ['radio1', 'radio3']
E   
E   Second list contains 1 additional elements.
E   First extra element 1:
E   'radio3'
E   
E   - ['radio1']
E   + ['radio1', 'radio3']
----------------------------- Captured stdout call -----------------------------
----Running Selector Test----
PATTERN:  :indeterminate
## PARSING: ':indeterminate'
TOKEN: 'pseudo_class' --> ':indeterminate' at position 0
## END PARSING

====PARSER:  html.parser
TAG:  input
=========================== short test summary info ============================
FAILED 
tests/test_extra/test_soup_contains.py::TestSoupContains::test_contains_iframe
FAILED tests/test_level2/test_lang.py::TestLang::test_iframe - AssertionError...
FAILED tests/test_level3/test_root.py::TestRoot::test_iframe - TypeError: Exp...
FAILED tests/test_level3/test_root.py::TestRoot::test_no_iframe - AssertionEr...
FAILED tests/test_level3/test_root.py::TestRoot::test_root_iframe - Assertion...
FAILED tests/test_level4/test_default.py::TestDefault::test_iframe - Assertio...
FAILED tests/test_level4/test_dir.py::TestDir::test_iframe - AssertionError: ...
FAILED tests/test_level4/test_indeterminate.py::TestIndeterminate::test_iframe
======================== 8 failed, 378 passed in 1.01s =========================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_soupsieve/build; python3.13 -m pytest 
tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: soupsieve
Source-Version: 2.8.1-1
Done: Stefano Rivera <[email protected]>

We believe that the bug you reported is fixed in the latest version of
soupsieve, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stefano Rivera <[email protected]> (supplier of updated soupsieve package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Thu, 18 Dec 2025 10:10:28 -0400
Source: soupsieve
Architecture: source
Version: 2.8.1-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Stefano Rivera <[email protected]>
Closes: 1123348
Changes:
 soupsieve (2.8.1-1) unstable; urgency=medium
 .
   * New upstream release.
     - Adds support for Python 3.11.10 and 3.14.1. (Closes: #1123348)
   * Drop Rules-Require-Root: no, this is now the default.
Checksums-Sha1:
 240e0382e9204286163e16f23dab7695638848df 1708 soupsieve_2.8.1-1.dsc
 89e8d399e4044614d047bcf746426eda9ca184bb 117856 soupsieve_2.8.1.orig.tar.gz
 81fd4d48d7258d3200e694a6ff82998d475cd6af 4100 soupsieve_2.8.1-1.debian.tar.xz
 0283081d42886e68547c051dde46a1cd7f74293b 5942 
soupsieve_2.8.1-1_source.buildinfo
Checksums-Sha256:
 76d12a29b6195f6d0cc9857838e4a944c85b8c911d241b5bfde5bffbe3e461a3 1708 
soupsieve_2.8.1-1.dsc
 4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350 117856 
soupsieve_2.8.1.orig.tar.gz
 7f20e5705d17b6652284e34d8258eecd72770aeececb2335c35f2e57c05146fc 4100 
soupsieve_2.8.1-1.debian.tar.xz
 6974b78e64d2086ddfe7b95bf356067c5d5f03272f58bbd043a54a64d116c476 5942 
soupsieve_2.8.1-1_source.buildinfo
Files:
 aec925e182f58f8c54a6bdd07cc093cc 1708 python optional soupsieve_2.8.1-1.dsc
 ec2c755903968868cb307512203ef3c5 117856 python optional 
soupsieve_2.8.1.orig.tar.gz
 30079fca701cc6a863e805b6ea810539 4100 python optional 
soupsieve_2.8.1-1.debian.tar.xz
 834578141bcfa7177055bdd818aaf355 5942 python optional 
soupsieve_2.8.1-1_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iIoEARYKADIWIQTumtb5BSD6EfafSCRHew2wJjpU2AUCaUQMJxQcc3RlZmFub3JA
ZGViaWFuLm9yZwAKCRBHew2wJjpU2AfUAP9q81jY034P3L+VEMkCCrGM+C6APYPS
Gg+8UdKjJ3F8WgEA/lNyKTgjCD2bC42uoSTU1N5p63wESQrUIFFHF7bDMwE=
=iOh/
-----END PGP SIGNATURE-----

Attachment: pgplUZzwgj6pq.pgp
Description: PGP signature


--- End Message ---

Reply via email to