Source: onboard Version: 1.4.1-8 Severity: serious Tags: patch ftbfs Justification: fails to build from source (but built successfully in the past) X-Debbugs-Cc: debian-ri...@lists.debian.org User: debian-ri...@lists.debian.org Usertags: riscv64
Dear maintainer, onboard fails to build with a testsuite error on riscv64 since it has been enabled in version 1.4.1-6: | I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_onboard/build; python3.12 -m pytest | task-0: ============================= test session starts ============================== | task-0: platform linux -- Python 3.12.4, pytest-8.2.2, pluggy-1.5.0 | task-0: rootdir: /<<PKGBUILDDIR>> | task-0: collected 7 items | task-0: | task-0: Onboard/test/test_LayoutLoaderSVG.py .... [ 57%] | task-0: Onboard/test/test_migration.py F. [ 85%] | task-0: Onboard/test/test_translations.py . [100%] | task-0: | task-0: =================================== FAILURES =================================== | task-0: ____________________ TestMigration.test_migrate_user_model _____________________ | task-0: | task-0: self = <Onboard.test.test_migration.TestMigration testMethod=test_migrate_user_model> | task-0: | task-0: def test_migrate_user_model(self): | task-0: tests = [ | task-0: [ | task-0: # old user.lm becomes new model of system language | task-0: [ | task-0: ['user.lm', 1], | task-0: ], | task-0: [ | task-0: ['en_US.lm', 1], | task-0: ] | task-0: ], | task-0: [ | task-0: # a backup model is renamed too | task-0: [ | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ], | task-0: [ | task-0: ['en_US.lm', 1], | task-0: ['en_US.lm.bak', 2], | task-0: ] | task-0: ], | task-0: [ | task-0: # a backup alone is ignored | task-0: [ | task-0: ['user.lm.bak', 2], | task-0: ], | task-0: [ | task-0: ['user.lm.bak', 2], | task-0: ] | task-0: ], | task-0: [ | task-0: # must not overwrite existing files | task-0: [ | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ['en_US.lm', 3], | task-0: ['en_US.lm.bak', 4], | task-0: ], | task-0: [ | task-0: ['en_US.lm', 3], | task-0: ['en_US.lm.bak', 4], | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ] | task-0: ], | task-0: [ | task-0: # must not overwrite existing backup model | task-0: [ | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ['en_US.lm.bak', 4], | task-0: ], | task-0: [ | task-0: ['en_US.lm', 1], | task-0: ['en_US.lm.bak', 4], | task-0: ['user.lm.bak', 2], | task-0: ] | task-0: ], | task-0: [ | task-0: # must not overwrite existing model | task-0: [ | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ['en_US.lm', 3], | task-0: ], | task-0: [ | task-0: ['en_US.lm', 3], | task-0: ['user.lm', 1], | task-0: ['user.lm.bak', 2], | task-0: ] | task-0: ], | task-0: ] | task-0: | task-0: os.mkdir(self._user_dir) # foil user dir migration | task-0: os.mkdir(self._model_dir) | task-0: | task-0: for i, (_input, _output) in enumerate(tests): | task-0: for fn, size in _input: | task-0: self._touch(os.path.join(self._model_dir, fn), size) | task-0: | task-0: with self._run_onboard() as p: | task-0: > self.assertEqual(_output, | task-0: self._get_model_files(), "test " + str(i)) | task-0: E AssertionError: Lists differ: [['en_US.lm', 1]] != [['user.lm', 1]] | task-0: E | task-0: E First differing element 0: | task-0: E ['en_US.lm', 1] | task-0: E ['user.lm', 1] | task-0: E | task-0: E - [['en_US.lm', 1]] | task-0: E ? ^^^^ | task-0: E | task-0: E + [['user.lm', 1]] | task-0: E ? ++ ^ | task-0: E : test 0 | task-0: | task-0: Onboard/test/test_migration.py:125: AssertionError | task-0: =============================== warnings summary =============================== | task-0: ../../../../../../usr/lib/python3/dist-packages/gi/overrides/Gio.py:239 | task-0: /usr/lib/python3/dist-packages/gi/overrides/Gio.py:239: DeprecationWarning: Gio.Settings.list_keys is deprecated | task-0: return key in self.list_keys() | task-0: | task-0: -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html | task-0: =========================== short test summary info ============================ | task-0: FAILED Onboard/test/test_migration.py::TestMigration::test_migrate_user_model | task-0: ==================== 1 failed, 6 passed, 1 warning in 6.35s ==================== | E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_onboard/build; python3.12 -m pytest A full build log is available here: https://buildd.debian.org/status/fetch.php?pkg=onboard&arch=riscv64&ver=1.4.1-8&stamp=1721643296&raw=0 I have debugged the issue and it appears to be a timing issue. onboard is killed after running for 1 second, which is not enough for it to act on the riscv64 buildds. Increasing this timeout to 3 second like in the patch below fixes the issue: --- onboard-1.4.1.orig/Onboard/test/test_migration.py +++ onboard-1.4.1/Onboard/test/test_migration.py @@ -141,7 +141,7 @@ class TestMigration(unittest.TestCase): env["LANG"] = "en_US.UTF-8" p = subprocess.Popen(["./onboard"], env=env) - time.sleep(1) + time.sleep(3) yield p finally: Regards Aurelien