Package: src:python-pyhanko-certvalidator Version: 0.26.3-5 Severity: important Tags: ftbfs forky sid User: [email protected] Usertags: ftbfs-during-forky-support-period
Dear maintainer: During a rebuild of all packages in unstable with the system clock set at 2030-08-09 (estimated to be three years after the release date of forky), 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/ftbfs-future/ About the archive rebuild: This is an effort to keep forky free from FTBFS bugs during its lifetime as a supported distribution, as explained here for trixie: https://lists.debian.org/debian-devel/2024/05/msg00414.html This category of bugs is considered to be RC for forky, but I will wait two months from now before raising to serious to give people a little bit more time to fix them. The build was made 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:python-pyhanko-certvalidator, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] tests/test_validate.py::test_nist_pkits[41413 (valid_onlycontainscacerts_crl_test13)] PASSED [ 86%] tests/test_validate.py::test_nist_pkits[41414 (invalid_onlycontainsattributecerts_crl_test14)] PASSED [ 86%] tests/test_validate.py::test_nist_pkits[41415 (invalid_onlysomereasons_test15)] PASSED [ 86%] tests/test_validate.py::test_nist_pkits[41416 (invalid_onlysomereasons_test16)] PASSED [ 87%] tests/test_validate.py::test_nist_pkits[41417 (invalid_onlysomereasons_test17)] PASSED [ 87%] tests/test_validate.py::test_nist_pkits[41418 (valid_onlysomereasons_test18)] PASSED [ 87%] tests/test_validate.py::test_nist_pkits[41419 (valid_onlysomereasons_test19)] PASSED [ 87%] tests/test_validate.py::test_nist_pkits[41420 (invalid_onlysomereasons_test20)] PASSED [ 88%] tests/test_validate.py::test_nist_pkits[41421 (invalid_onlysomereasons_test21)] PASSED [ 88%] tests/test_validate.py::test_nist_pkits[41422 (valid_idp_with_indirectcrl_test22)] PASSED [ 88%] tests/test_validate.py::test_nist_pkits[41423 (invalid_idp_with_indirectcrl_test23)] PASSED [ 89%] tests/test_validate.py::test_nist_pkits[41424 (valid_idp_with_indirectcrl_test24)] PASSED [ 89%] tests/test_validate.py::test_nist_pkits[41425 (valid_idp_with_indirectcrl_test25)] PASSED [ 89%] tests/test_validate.py::test_nist_pkits[41426 (invalid_idp_with_indirectcrl_test26)] PASSED [ 89%] tests/test_validate.py::test_nist_pkits[41427 (invalid_crlissuer_test27)] PASSED [ 90%] tests/test_validate.py::test_nist_pkits[41428 (valid_crlissuer_test28)] PASSED [ 90%] tests/test_validate.py::test_nist_pkits[41429 (valid_crlissuer_test29)] PASSED [ 90%] tests/test_validate.py::test_nist_pkits[41430 (valid_crlissuer_test30)] PASSED [ 91%] tests/test_validate.py::test_nist_pkits[41431 (invalid_crlissuer_test31)] PASSED [ 91%] tests/test_validate.py::test_nist_pkits[41432 (invalid_crlissuer_test32)] PASSED [ 91%] tests/test_validate.py::test_nist_pkits[41433 (valid_crlissuer_test33)] PASSED [ 91%] tests/test_validate.py::test_nist_pkits[41434 (invalid_crlissuer_test34)] PASSED [ 92%] tests/test_validate.py::test_nist_pkits[41435 (invalid_crlissuer_test35)] PASSED [ 92%] tests/test_validate.py::test_nist_pkits[41501 (invalid_deltacrlindicator_no_base_set_test1)] PASSED [ 92%] tests/test_validate.py::test_nist_pkits[41502 (valid_deltacrl_test2)] PASSED [ 93%] tests/test_validate.py::test_nist_pkits[41503 (invalid_deltacrl_test3)] PASSED [ 93%] tests/test_validate.py::test_nist_pkits[41504 (invalid_deltacrl_test4)] PASSED [ 93%] tests/test_validate.py::test_nist_pkits[41505 (valid_deltacrl_test5)] PASSED [ 93%] tests/test_validate.py::test_nist_pkits[41506 (invalid_deltacrl_test6)] PASSED [ 94%] tests/test_validate.py::test_nist_pkits[41507 (valid_deltacrl_test7)] PASSED [ 94%] tests/test_validate.py::test_nist_pkits[41508 (valid_deltacrl_test8)] PASSED [ 94%] tests/test_validate.py::test_nist_pkits[41509 (invalid_deltacrl_test9)] PASSED [ 94%] tests/test_validate.py::test_nist_pkits[41510 (invalid_deltacrl_test10)] PASSED [ 95%] tests/test_validate.py::test_nist_pkits[41601 (valid_unknown_not_critical_certificate_extension_test1)] PASSED [ 95%] tests/test_validate.py::test_nist_pkits[41602 (invalid_unknown_critical_certificate_extension_test2)] PASSED [ 95%] tests/test_validate.py::test_nist_pkits_user_notice[40815 (user_notice_qualifier_test15)] PASSED [ 96%] tests/test_validate.py::test_nist_pkits_user_notice[40816 (user_notice_qualifier_test16)] PASSED [ 96%] tests/test_validate.py::test_nist_pkits_user_notice[40817 (user_notice_qualifier_test17)] PASSED [ 96%] tests/test_validate.py::test_nist_pkits_user_notice[40818 (user_notice_qualifier_test18_q4)] PASSED [ 96%] tests/test_validate.py::test_nist_pkits_user_notice[40818 (user_notice_qualifier_test18_q5)] PASSED [ 97%] tests/test_validate.py::test_nist_pkits_user_notice[40818 (user_notice_qualifier_test19)] PASSED [ 97%] tests/test_validate.py::test_nist_pkits_user_notice[41012 (valid_policy_mapping_test12_with_testpol1)] PASSED [ 97%] tests/test_validate.py::test_nist_pkits_user_notice[41012 (valid_policy_mapping_test12_with_testpol2)] PASSED [ 98%] tests/test_validate.py::test_408020_cps_pointer_qualifier_test20 PASSED [ 98%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order0] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [ 98%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order1] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [ 98%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order2] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [ 99%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order3] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [ 99%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order4] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [ 99%] tests/test_validate.py::test_building_trust_path_with_pkcs7_in_different_orders[cert_order5] -------------------------------- live log call --------------------------------- 2030-08-09 12:00:36 INFO Retrieving issuer certs for Common Name: FREDERICO SCHARDONG:00489369014; Organizational Unit: RFB e-CPF A3, ARSERPRO, Secretaria da Receita Federal do Brasil - RFB, 33683111000107, videoconferencia; Organization: ICP-Brasil; Country: BR... PASSED [100%] =================================== FAILURES =================================== __________________ test_basic_ac_validation_aacontrols_norev ___________________ @pytest.mark.asyncio async def test_basic_ac_validation_aacontrols_norev(): ac = load_attr_cert( os.path.join(basic_aa_dir, 'aa', 'alice-role-norev.attr.crt') ) root = load_cert(os.path.join(basic_aa_dir, 'root', 'root.crt')) interm = load_cert(os.path.join(basic_aa_dir, 'root', 'interm-role.crt')) role_aa = load_cert(os.path.join(basic_aa_dir, 'interm', 'role-aa.crt')) vc = ValidationContext( trust_roots=[root], other_certs=[interm, role_aa], ) > result = await validate.async_validate_ac(ac, vc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_ac_validate.py:60: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyhanko_certvalidator/validate.py:721: in async_validate_ac _check_validity( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ validity = <asn1crypto.x509.Validity 140599064714832 b'0"\x18\x0f20100101000000Z\x18\x0f20300101000000Z'> moment = datetime.datetime(2030, 8, 9, 12, 0, 34, 261911, tzinfo=datetime.timezone.utc) tolerance = datetime.timedelta(seconds=1) proc_state = <pyhanko_certvalidator._state.ValProcState object at 0x7fdfc54edbd0> def _check_validity( validity: Validity, moment, tolerance, proc_state: ValProcState ): if moment < validity['not_before'].native - tolerance: raise NotYetValidError.format( valid_from=validity['not_before'].native, proc_state=proc_state ) if moment > validity['not_after'].native + tolerance: > raise ExpiredError.format( expired_dt=validity['not_after'].native, proc_state=proc_state ) E pyhanko_certvalidator.errors.ExpiredError: The path could not be validated because intermediate certificate 0 expired 2030-01-01 00:00:00Z pyhanko_certvalidator/validate.py:1215: ExpiredError _________________ test_basic_ac_validation_good_targeting_name _________________ @pytest.mark.asyncio async def test_basic_ac_validation_good_targeting_name(): root, interm, aa, ac = _load_targeted_ac() vc = ValidationContext( trust_roots=[root], other_certs=[interm, aa], acceptable_ac_targets=ACTargetDescription( validator_names=[ x509.GeneralName( name='directory_name', value=x509.Name.build( { 'country_name': 'XX', 'organization_name': 'Testing Attribute Authority', 'organizational_unit_name': 'Validators', 'common_name': 'Validator', } ), ) ] ), ) > result = await validate.async_validate_ac(ac, vc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_ac_validate.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyhanko_certvalidator/validate.py:721: in async_validate_ac _check_validity( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ validity = <asn1crypto.x509.Validity 140599069102640 b'0"\x18\x0f20100101000000Z\x18\x0f20300101000000Z'> moment = datetime.datetime(2030, 8, 9, 12, 0, 34, 324929, tzinfo=datetime.timezone.utc) tolerance = datetime.timedelta(seconds=1) proc_state = <pyhanko_certvalidator._state.ValProcState object at 0x7fdfc57bbd50> def _check_validity( validity: Validity, moment, tolerance, proc_state: ValProcState ): if moment < validity['not_before'].native - tolerance: raise NotYetValidError.format( valid_from=validity['not_before'].native, proc_state=proc_state ) if moment > validity['not_after'].native + tolerance: > raise ExpiredError.format( expired_dt=validity['not_after'].native, proc_state=proc_state ) E pyhanko_certvalidator.errors.ExpiredError: The path could not be validated because intermediate certificate 0 expired 2030-01-01 00:00:00Z pyhanko_certvalidator/validate.py:1215: ExpiredError ________________ test_basic_ac_validation_good_targeting_group _________________ @pytest.mark.asyncio async def test_basic_ac_validation_good_targeting_group(): root, interm, aa, ac = _load_targeted_ac() vc = ValidationContext( trust_roots=[root], other_certs=[interm, aa], acceptable_ac_targets=ACTargetDescription( group_memberships=[ x509.GeneralName( name='directory_name', value=x509.Name.build( { 'country_name': 'XX', 'organization_name': 'Testing Attribute Authority', 'organizational_unit_name': 'Validators', } ), ) ] ), ) > result = await validate.async_validate_ac(ac, vc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_ac_validate.py:315: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyhanko_certvalidator/validate.py:721: in async_validate_ac _check_validity( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ validity = <asn1crypto.x509.Validity 140599067718272 b'0"\x18\x0f20100101000000Z\x18\x0f20300101000000Z'> moment = datetime.datetime(2030, 8, 9, 12, 0, 34, 342966, tzinfo=datetime.timezone.utc) tolerance = datetime.timedelta(seconds=1) proc_state = <pyhanko_certvalidator._state.ValProcState object at 0x7fdfc54fd4f0> def _check_validity( validity: Validity, moment, tolerance, proc_state: ValProcState ): if moment < validity['not_before'].native - tolerance: raise NotYetValidError.format( valid_from=validity['not_before'].native, proc_state=proc_state ) if moment > validity['not_after'].native + tolerance: > raise ExpiredError.format( expired_dt=validity['not_after'].native, proc_state=proc_state ) E pyhanko_certvalidator.errors.ExpiredError: The path could not be validated because intermediate certificate 0 expired 2030-01-01 00:00:00Z pyhanko_certvalidator/validate.py:1215: ExpiredError _____________________________ test_match_holder_ac _____________________________ @pytest.mark.asyncio async def test_match_holder_ac(): ac = load_attr_cert( os.path.join(basic_aa_dir, 'aa', 'alice-role-norev.attr.crt') ) root = load_cert(os.path.join(basic_aa_dir, 'root', 'root.crt')) interm = load_cert(os.path.join(basic_aa_dir, 'root', 'interm-role.crt')) role_aa = load_cert(os.path.join(basic_aa_dir, 'interm', 'role-aa.crt')) alice = load_cert(os.path.join(basic_aa_dir, 'people-ca', 'alice.crt')) vc = ValidationContext( trust_roots=[root], other_certs=[interm, role_aa], ) > await validate.async_validate_ac(ac, vc, holder_cert=alice) tests/test_ac_validate.py:338: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pyhanko_certvalidator/validate.py:721: in async_validate_ac _check_validity( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ validity = <asn1crypto.x509.Validity 140599065110608 b'0"\x18\x0f20100101000000Z\x18\x0f20300101000000Z'> moment = datetime.datetime(2030, 8, 9, 12, 0, 34, 360304, tzinfo=datetime.timezone.utc) tolerance = datetime.timedelta(seconds=1) proc_state = <pyhanko_certvalidator._state.ValProcState object at 0x7fdfc54dec10> def _check_validity( validity: Validity, moment, tolerance, proc_state: ValProcState ): if moment < validity['not_before'].native - tolerance: raise NotYetValidError.format( valid_from=validity['not_before'].native, proc_state=proc_state ) if moment > validity['not_after'].native + tolerance: > raise ExpiredError.format( expired_dt=validity['not_after'].native, proc_state=proc_state ) E pyhanko_certvalidator.errors.ExpiredError: The path could not be validated because intermediate certificate 0 expired 2030-01-01 00:00:00Z pyhanko_certvalidator/validate.py:1215: ExpiredError =========================== short test summary info ============================ FAILED tests/test_ac_validate.py::test_basic_ac_validation_aacontrols_norev FAILED tests/test_ac_validate.py::test_basic_ac_validation_good_targeting_name FAILED tests/test_ac_validate.py::test_basic_ac_validation_good_targeting_group FAILED tests/test_ac_validate.py::test_match_holder_ac - pyhanko_certvalidato... =========== 4 failed, 350 passed, 4 skipped, 10 deselected in 2.26s ============ E: pybuild pybuild:483: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pyhanko-certvalidator/build; python3.13 -m pytest -k 'not test_basic_certificate_validator_tls_aia and not test_fetch_requests and not test_fetch_ocsp_requests and not test_fetch_crl_aiohttp and not test_fetch_ocsp_aiohttp' dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:7: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

