Package: src:python-blessed Version: 1.21.0-1 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:python-blessed, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --with sphinxdoc --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild I: pybuild base:317: python3.14 setup.py clean /<<PKGBUILDDIR>>/setup.py:22: DeprecationWarning: codecs.open() is deprecated. Use open() instead. return codecs.open(fname, 'r', 'utf8').read() /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: MIT License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. [... snipped ...] tests/test_sequences.py::test_split_seqs_term_right[xterm] [32mPASSED[0m[32m [ 80%][0m tests/test_sequences.py::test_split_seqs_term_right[screen] [32mPASSED[0m[32m [ 80%][0m tests/test_sequences.py::test_split_seqs_term_right[ansi] [32mPASSED[0m[32m [ 80%][0m tests/test_sequences.py::test_split_seqs_term_right[vt220] [32mPASSED[0m[32m [ 80%][0m tests/test_sequences.py::test_split_seqs_term_right[rxvt] [32mPASSED[0m[32m [ 81%][0m tests/test_sequences.py::test_split_seqs_term_right[cons25] [32mPASSED[0m[32m [ 81%][0m tests/test_sequences.py::test_split_seqs_term_right[linux] [32mPASSED[0m[32m [ 81%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[xterm] [32mPASSED[0m[32m [ 81%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[screen] [32mPASSED[0m[32m [ 82%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[ansi] [32mPASSED[0m[32m [ 82%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[vt220] [32mPASSED[0m[32m [ 82%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[rxvt] [32mPASSED[0m[32m [ 82%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[cons25] [32mPASSED[0m[32m [ 83%][0m tests/test_sequences.py::test_split_seqs_maxsplit3_and_term_right[linux] [32mPASSED[0m[32m [ 83%][0m tests/test_sequences.py::test_formatting_other_string[xterm] [32mPASSED[0m[32m [ 83%][0m tests/test_sequences.py::test_formatting_other_string[screen] [32mPASSED[0m[32m [ 83%][0m tests/test_sequences.py::test_formatting_other_string[ansi] [32mPASSED[0m[32m [ 84%][0m tests/test_sequences.py::test_formatting_other_string[vt220] [32mPASSED[0m[32m [ 84%][0m tests/test_sequences.py::test_formatting_other_string[rxvt] [32mPASSED[0m[32m [ 84%][0m tests/test_sequences.py::test_formatting_other_string[cons25] [32mPASSED[0m[32m [ 84%][0m tests/test_sequences.py::test_formatting_other_string[linux] [32mPASSED[0m[32m [ 84%][0m tests/test_sequences.py::test_termcap_match_optional [32mPASSED[0m[32m [ 85%][0m tests/test_sequences.py::test_truncate[xterm] [32mPASSED[0m[32m [ 85%][0m tests/test_sequences.py::test_truncate[screen] [32mPASSED[0m[32m [ 85%][0m tests/test_sequences.py::test_truncate[ansi] [32mPASSED[0m[32m [ 85%][0m tests/test_sequences.py::test_truncate[vt220] [32mPASSED[0m[32m [ 86%][0m tests/test_sequences.py::test_truncate[rxvt] [32mPASSED[0m[32m [ 86%][0m tests/test_sequences.py::test_truncate[cons25] [32mPASSED[0m[32m [ 86%][0m tests/test_sequences.py::test_truncate[linux] [32mPASSED[0m[32m [ 86%][0m tests/test_sequences.py::test_truncate_wide_end[xterm] [32mPASSED[0m[32m [ 87%][0m tests/test_sequences.py::test_truncate_wide_end[screen] [32mPASSED[0m[32m [ 87%][0m tests/test_sequences.py::test_truncate_wide_end[ansi] [32mPASSED[0m[32m [ 87%][0m tests/test_sequences.py::test_truncate_wide_end[vt220] [32mPASSED[0m[32m [ 87%][0m tests/test_sequences.py::test_truncate_wide_end[rxvt] [32mPASSED[0m[32m [ 88%][0m tests/test_sequences.py::test_truncate_wide_end[cons25] [32mPASSED[0m[32m [ 88%][0m tests/test_sequences.py::test_truncate_wide_end[linux] [32mPASSED[0m[32m [ 88%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[xterm] [32mPASSED[0m[32m [ 88%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[screen] [32mPASSED[0m[32m [ 88%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[ansi] [32mPASSED[0m[32m [ 89%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[vt220] [32mPASSED[0m[32m [ 89%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[rxvt] [32mPASSED[0m[32m [ 89%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[cons25] [32mPASSED[0m[32m [ 89%][0m tests/test_sequences.py::test_truncate_wcwidth_clipping[linux] [32mPASSED[0m[32m [ 90%][0m tests/test_sequences.py::test_truncate_padding[xterm] [32mPASSED[0m[32m [ 90%][0m tests/test_sequences.py::test_truncate_padding[screen] [32mPASSED[0m[32m [ 90%][0m tests/test_sequences.py::test_truncate_padding[ansi] [32mPASSED[0m[32m [ 90%][0m tests/test_sequences.py::test_truncate_padding[vt220] [32mPASSED[0m[32m [ 91%][0m tests/test_sequences.py::test_truncate_padding[rxvt] [32mPASSED[0m[32m [ 91%][0m tests/test_sequences.py::test_truncate_padding[cons25] [32mPASSED[0m[32m [ 91%][0m tests/test_sequences.py::test_truncate_padding[linux] [32mPASSED[0m[32m [ 91%][0m tests/test_sequences.py::test_truncate_default[xterm] [32mPASSED[0m[32m [ 92%][0m tests/test_sequences.py::test_truncate_default[screen] [32mPASSED[0m[32m [ 92%][0m tests/test_sequences.py::test_truncate_default[ansi] [32mPASSED[0m[32m [ 92%][0m tests/test_sequences.py::test_truncate_default[vt220] [32mPASSED[0m[32m [ 92%][0m tests/test_sequences.py::test_truncate_default[rxvt] [32mPASSED[0m[32m [ 92%][0m tests/test_sequences.py::test_truncate_default[cons25] [32mPASSED[0m[32m [ 93%][0m tests/test_sequences.py::test_truncate_default[linux] [32mPASSED[0m[32m [ 93%][0m tests/test_sequences.py::test_supports_index[xterm] [32mPASSED[0m[32m [ 93%][0m tests/test_sequences.py::test_supports_index[screen] [32mPASSED[0m[32m [ 93%][0m tests/test_sequences.py::test_supports_index[ansi] [32mPASSED[0m[32m [ 94%][0m tests/test_sequences.py::test_supports_index[vt220] [32mPASSED[0m[32m [ 94%][0m tests/test_sequences.py::test_supports_index[rxvt] [32mPASSED[0m[32m [ 94%][0m tests/test_sequences.py::test_supports_index[cons25] [32mPASSED[0m[32m [ 94%][0m tests/test_sequences.py::test_supports_index[linux] [32mPASSED[0m[32m [ 95%][0m tests/test_wrap.py::test_SequenceWrapper_invalid_width [32mPASSED[0m[32m [ 95%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs0] [32mPASSED[0m[32m [ 95%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs1] [32mPASSED[0m[32m [ 95%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs2] [32mPASSED[0m[32m [ 96%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs3] [32mPASSED[0m[32m [ 96%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs4] [32mPASSED[0m[32m [ 96%][0m tests/test_wrap.py::test_SequenceWrapper[1-kwargs5] [31mFAILED[0m[31m [ 96%][0m =================================== FAILURES =================================== [31m[1m_______________________ test_SequenceWrapper[1-kwargs5] ________________________[0m many_columns = 1 kwargs = {'break_long_words': True, 'drop_whitespace': True, 'subsequent_indent': ''} [0m[37m@pytest[39;49;00m.mark.parametrize([33m"[39;49;00m[33mkwargs[39;49;00m[33m"[39;49;00m, TEXTWRAP_KEYWORD_COMBINATIONS)[90m[39;49;00m [94mdef[39;49;00m [92mtest_SequenceWrapper[39;49;00m(many_columns, kwargs):[90m[39;49;00m [90m [39;49;00m[33m"""Test that text wrapping matches internal extra options."""[39;49;00m[90m[39;49;00m [37m@as_subprocess[39;49;00m[90m[39;49;00m [94mdef[39;49;00m [92mchild[39;49;00m(width, pgraph, kwargs):[90m[39;49;00m [90m# build a test paragraph, along with a very colorful version[39;49;00m[90m[39;49;00m term = TestTerminal()[90m[39;49;00m attributes = ([33m'[39;49;00m[33mbright_red[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mon_bright_blue[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33munderline[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mreverse[39;49;00m[33m'[39;49;00m,[90m[39;49;00m [33m'[39;49;00m[33mred_reverse[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mred_on_white[39;49;00m[33m'[39;49;00m, [33m'[39;49;00m[33mon_bright_white[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.bright_red([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.on_bright_blue([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.underline([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.reverse([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.red_reverse([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.red_on_white([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m term.on_bright_white([33m'[39;49;00m[33mx[39;49;00m[33m'[39;49;00m)[90m[39;49;00m [90m[39;49;00m pgraph_colored = [33mu[39;49;00m[33m'[39;49;00m[33m'[39;49;00m.join([90m[39;49;00m [96mgetattr[39;49;00m(term, (attributes[idx % [96mlen[39;49;00m(attributes)]))(char)[90m[39;49;00m [94mif[39;49;00m char != [33mu[39;49;00m[33m'[39;49;00m[33m [39;49;00m[33m'[39;49;00m [94melse[39;49;00m [33mu[39;49;00m[33m'[39;49;00m[33m [39;49;00m[33m'[39;49;00m[90m[39;49;00m [94mfor[39;49;00m idx, char [95min[39;49;00m [96menumerate[39;49;00m(pgraph))[90m[39;49;00m [90m[39;49;00m internal_wrapped = textwrap.wrap(pgraph, width=width, **kwargs)[90m[39;49;00m my_wrapped = term.wrap(pgraph, width=width, **kwargs)[90m[39;49;00m my_wrapped_colored = term.wrap(pgraph_colored, width=width, **kwargs)[90m[39;49;00m [90m[39;49;00m [90m# ensure we textwrap ascii the same as python[39;49;00m[90m[39;49;00m [94massert[39;49;00m internal_wrapped == my_wrapped[90m[39;49;00m [90m[39;49;00m [90m# ensure content matches for each line, when the sequences are[39;49;00m[90m[39;49;00m [90m# stripped back off of each line[39;49;00m[90m[39;49;00m [94mfor[39;49;00m left, right [95min[39;49;00m [96mzip[39;49;00m(internal_wrapped, my_wrapped_colored):[90m[39;49;00m [94massert[39;49;00m left == term.strip_seqs(right)[90m[39;49;00m [90m[39;49;00m [90m# ensure our colored textwrap is the same paragraph length[39;49;00m[90m[39;49;00m [94massert[39;49;00m ([96mlen[39;49;00m(internal_wrapped) == [96mlen[39;49;00m(my_wrapped_colored))[90m[39;49;00m [90m[39;49;00m > child(width=many_columns, kwargs=kwargs,[90m[39;49;00m pgraph=[33mu[39;49;00m[33m'[39;49;00m[33m Z! a bc defghij klmnopqrstuvw<<>>xyz012345678900 [39;49;00m[33m'[39;49;00m * [94m2[39;49;00m)[90m[39;49;00m [1m[31mtests/test_wrap.py[0m:88: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <tests.accessories.as_subprocess object at 0x7feb0c1e9680>, args = () kwargs = {'kwargs': {'break_long_words': True, 'drop_whitespace': True, 'subsequent_indent': ''}, 'pgraph': ' Z! a bc defghij klmnopqrstuvw<<>>xyz012345678900 Z! a bc defghij klmnopqrstuvw<<>>xyz012345678900 ', 'width': 1} pid_testrunner = 345, pid = 1097, master_fd = 11 _exc = b' File "/<<PKGBUILDDIR>>/tests/accessories.py", line 78, in __call__\r\n self.f... \',\x1b[39;49;00m\x1b[90m\x1b[39;49;00m...\r\n \r\n ...Full output truncated (89 lines hidden), use \'-vv\' to show' [0m[94mdef[39;49;00m [92m__call__[39;49;00m([96mself[39;49;00m, *args, **kwargs): [90m# pylint: disable=too-many-locals,too-complex[39;49;00m[90m[39;49;00m [94mif[39;49;00m IS_WINDOWS:[90m[39;49;00m [96mself[39;49;00m.func(*args, **kwargs)[90m[39;49;00m [94mreturn[39;49;00m[90m[39;49;00m [90m[39;49;00m pid_testrunner = os.getpid()[90m[39;49;00m pid, master_fd = pty.fork() [90m# pylint: disable=possibly-used-before-assignment[39;49;00m[90m[39;49;00m [94mif[39;49;00m pid == [96mself[39;49;00m._CHILD_PID:[90m[39;49;00m [90m# child process executes function, raises exception[39;49;00m[90m[39;49;00m [90m# if failed, causing a non-zero exit code, using the[39;49;00m[90m[39;49;00m [90m# protected _exit() function of ``os``; to prevent the[39;49;00m[90m[39;49;00m [90m# 'SystemExit' exception from being thrown.[39;49;00m[90m[39;49;00m cov = init_subproc_coverage([90m[39;49;00m [33m"[39;49;00m[33m@as_subprocess-[39;49;00m[33m{pid}[39;49;00m[33m;[39;49;00m[33m{func_name}[39;49;00m[33m(*[39;49;00m[33m{args}[39;49;00m[33m, **[39;49;00m[33m{kwargs}[39;49;00m[33m)[39;49;00m[33m"[39;49;00m[90m[39;49;00m .format(pid=os.getpid(), func_name=[96mself[39;49;00m.func,[90m[39;49;00m args=args, kwargs=kwargs))[90m[39;49;00m [94mtry[39;49;00m:[90m[39;49;00m [96mself[39;49;00m.func(*args, **kwargs)[90m[39;49;00m [94mexcept[39;49;00m [96mException[39;49;00m: [90m# pylint: disable=broad-except[39;49;00m[90m[39;49;00m e_type, e_value, e_tb = sys.exc_info()[90m[39;49;00m o_err = [line.rstrip().encode([33m'[39;49;00m[33mutf-8[39;49;00m[33m'[39;49;00m) [94mfor[39;49;00m line [95min[39;49;00m traceback.format_tb(e_tb)][90m[39;49;00m o_err.append(([33m'[39;49;00m[33m-=[39;49;00m[33m'[39;49;00m * [94m20[39;49;00m).encode([33m'[39;49;00m[33mascii[39;49;00m[33m'[39;49;00m))[90m[39;49;00m o_err.extend([_exc.rstrip().encode([33m'[39;49;00m[33mutf-8[39;49;00m[33m'[39;49;00m) [94mfor[39;49;00m _exc [95min[39;49;00m[90m[39;49;00m traceback.format_exception_only([90m[39;49;00m e_type, e_value)])[90m[39;49;00m os.write(sys.__stdout__.fileno(), [33mb[39;49;00m[33m'[39;49;00m[33m\n[39;49;00m[33m'[39;49;00m.join(o_err))[90m[39;49;00m os.close(sys.__stdout__.fileno())[90m[39;49;00m os.close(sys.__stderr__.fileno())[90m[39;49;00m os.close(sys.__stdin__.fileno())[90m[39;49;00m [94mif[39;49;00m cov [95mis[39;49;00m [95mnot[39;49;00m [94mNone[39;49;00m:[90m[39;49;00m cov.stop()[90m[39;49;00m cov.save()[90m[39;49;00m os._exit([94m1[39;49;00m)[90m[39;49;00m [94melse[39;49;00m:[90m[39;49;00m [94mif[39;49;00m cov [95mis[39;49;00m [95mnot[39;49;00m [94mNone[39;49;00m:[90m[39;49;00m cov.stop()[90m[39;49;00m cov.save()[90m[39;49;00m os._exit([94m0[39;49;00m)[90m[39;49;00m [90m[39;49;00m [90m# detect rare fork in test runner, when bad bugs happen[39;49;00m[90m[39;49;00m [94mif[39;49;00m pid_testrunner != os.getpid():[90m[39;49;00m [96mprint[39;49;00m([33m'[39;49;00m[33mTEST RUNNER HAS FORKED, [39;49;00m[33m{0}[39;49;00m[33m=>[39;49;00m[33m{1}[39;49;00m[33m: EXIT[39;49;00m[33m'[39;49;00m[90m[39;49;00m .format(pid_testrunner, os.getpid()), file=sys.stderr)[90m[39;49;00m os._exit([94m1[39;49;00m)[90m[39;49;00m [90m[39;49;00m exc_output = TextType()[90m[39;49;00m decoder = codecs.getincrementaldecoder([96mself[39;49;00m.encoding)()[90m[39;49;00m [94mwhile[39;49;00m [94mTrue[39;49;00m:[90m[39;49;00m [94mtry[39;49;00m:[90m[39;49;00m _exc = os.read(master_fd, [94m65534[39;49;00m)[90m[39;49;00m [94mexcept[39;49;00m [96mOSError[39;49;00m:[90m[39;49;00m [90m# linux EOF[39;49;00m[90m[39;49;00m [94mbreak[39;49;00m[90m[39;49;00m [94mif[39;49;00m [95mnot[39;49;00m _exc:[90m[39;49;00m [90m# bsd EOF[39;49;00m[90m[39;49;00m [94mbreak[39;49;00m[90m[39;49;00m exc_output += decoder.decode(_exc)[90m[39;49;00m [90m[39;49;00m [90m# parent process asserts exit code is 0, causing test[39;49;00m[90m[39;49;00m [90m# to fail if child process raised an exception/assertion[39;49;00m[90m[39;49;00m pid, status = os.waitpid(pid, [94m0[39;49;00m)[90m[39;49;00m os.close(master_fd)[90m[39;49;00m [90m[39;49;00m [90m# Display any output written by child process[39;49;00m[90m[39;49;00m [90m# (esp. any AssertionError exceptions written to stderr).[39;49;00m[90m[39;49;00m exc_output_msg = [33m'[39;49;00m[33mOutput in child process:[39;49;00m[33m\n[39;49;00m[33m%s[39;49;00m[33m\n[39;49;00m[33m%s[39;49;00m[33m\n[39;49;00m[33m%s[39;49;00m[33m'[39;49;00m % ([90m[39;49;00m [33mu[39;49;00m[33m'[39;49;00m[33m=[39;49;00m[33m'[39;49;00m * [94m40[39;49;00m, exc_output, [33mu[39;49;00m[33m'[39;49;00m[33m=[39;49;00m[33m'[39;49;00m * [94m40[39;49;00m,)[90m[39;49;00m > [94massert[39;49;00m exc_output == > [33m'[39;49;00m[33m'[39;49;00m, exc_output_msg[90m[39;49;00m ^^^^^^^^^^^^^^^^[90m[39;49;00m [1m[31mE AssertionError: Output in child process:[0m [1m[31mE ========================================[0m [1m[31mE File "/<<PKGBUILDDIR>>/tests/accessories.py", line 78, in __call__ [0m [1m[31mE self.func(*args, **kwargs) [0m [1m[31mE ~~~~~~~~~^^^^^^^^^^^^^^^^^ [0m [1m[31mE File "/<<PKGBUILDDIR>>/tests/test_wrap.py", line 78, in child [0m [1m[31mE assert internal_wrapped == my_wrapped [0m [1m[31mE -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= [0m [1m[31mE AssertionError: assert ['Z', '!', 'a...'c', 'd', ...] == [' ', 'Z', '!...'b', 'c', ...] [0m [1m[31mE [0m [1m[31mE At index 0 diff: [0m[33m'[39;49;00m[33mZ[39;49;00m[33m'[39;49;00m[90m[39;49;00m != [0m[33m'[39;49;00m[33m [39;49;00m[33m'[39;49;00m[90m[39;49;00m [0m [1m[31mE Right contains one more item: [0m[33m'[39;49;00m[33m0[39;49;00m[33m'[39;49;00m[90m[39;49;00m [0m [1m[31mE [0m [1m[31mE Full diff: [0m [1m[31mE [0m[90m [39;49;00m [[90m[39;49;00m [0m [1m[31mE [91m- ' ',[39;49;00m[90m[39;49;00m... [0m [1m[31mE [0m [1m[31mE ...Full output truncated (89 lines hidden), use '-vv' to show[0m [1m[31mE ========================================[0m [1m[31mtests/accessories.py[0m:128: AssertionError - generated xml file: /<<PKGBUILDDIR>>/.tox/results.{envname}.xml - ---------- coverage: platform linux, python 3.13.11-final-0 ---------- Coverage XML written to file coverage.xml [36m[1m=========================== short test summary info ============================[0m [33mSKIPPED[0m [1] tests/test_full_keyboard.py:40: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:85: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:135: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:147: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:159: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:172: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:185: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:199: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:213: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:244: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:284: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:317: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:351: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:379: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:410: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:444: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:478: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:511: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:546: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:581: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:596: TEST_RAW not specified [33mSKIPPED[0m [1] tests/test_full_keyboard.py:621: TEST_RAW not specified [33mSKIPPED[0m [1] tests/test_full_keyboard.py:649: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:664: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:684: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:700: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:715: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:727: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:741: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:757: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:769: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:783: Timing-sensitive tests please do not run on build farms. [33mSKIPPED[0m [1] tests/test_full_keyboard.py:799: Timing-sensitive tests please do not run on build farms. [31m!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!![0m [31m================== [31m[1m1 failed[0m, [32m377 passed[0m, [33m33 skipped[0m[31m in 14.04s[0m[31m ==================[0m E: pybuild pybuild:389: test: plugin custom failed with: exit code=1: python3.13 -m pytest -v -x -rs dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make[1]: *** [debian/rules:17: override_dh_auto_test] Error 25 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:7: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

