--- Begin Message ---
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
--- End Message ---