>>> ostree-push: Building community/ostree-push 1.2.0-r0 (using abuild 3.15.0-r0) started Sun, 12 Oct 2025 05:56:33 +0000 >>> ostree-push: Validating /home/udu/aports/community/ostree-push/APKBUILD... >>> ostree-push: Analyzing dependencies... >>> ostree-push: Installing for build: build-base openssh-client ostree ostree-gir py3-gobject3 py3-yaml python3 cairo-dev py3-gobject3-dev py3-gpep517 py3-setuptools py3-wheel python3-dev pytest WARNING: opening /home/udu/packages//community: No such file or directory WARNING: opening /home/udu/packages//main: No such file or directory fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz (1/130) Installing openssh-keygen (10.0_p1-r9) (2/130) Installing libedit (20250104.3.1-r1) (3/130) Installing openssh-client-common (10.0_p1-r9) (4/130) Installing openssh-client-default (10.0_p1-r9) (5/130) Installing lz4-libs (1.10.0-r0) (6/130) Installing libarchive (3.8.1-r0) (7/130) Installing fuse3-libs (3.16.2-r1) (8/130) Installing libeconf (0.6.3-r0) (9/130) Installing libblkid (2.41-r9) (10/130) Installing libmount (2.41-r9) (11/130) Installing glib (2.84.4-r0) (12/130) Installing libgpg-error (1.55-r0) (13/130) Installing libassuan (2.5.7-r0) (14/130) Installing pinentry (1.3.1-r0) Executing pinentry-1.3.1-r0.post-install (15/130) Installing libgcrypt (1.10.3-r1) (16/130) Installing gnupg-gpgconf (2.4.7-r0) (17/130) Installing nettle (3.10.1-r0) (18/130) Installing libtasn1 (4.20.0-r0) (19/130) Installing p11-kit (0.25.5-r2) (20/130) Installing gnutls (3.8.8-r0) (21/130) Installing libksba (1.6.7-r0) (22/130) Installing libsasl (2.1.28-r8) (23/130) Installing libldap (2.6.8-r0) (24/130) Installing npth (1.8-r0) (25/130) Installing gnupg-dirmngr (2.4.7-r0) (26/130) Installing gnupg-keyboxd (2.4.7-r0) (27/130) Installing gpg (2.4.7-r0) (28/130) Installing gpg-agent (2.4.7-r0) (29/130) Installing gpgsm (2.4.7-r0) (30/130) Installing gpgme (1.24.2-r1) (31/130) Installing ostree (2025.2-r0) (32/130) Installing gobject-introspection (1.84.0-r0) (33/130) Installing ostree-gir (2025.2-r0) (34/130) Upgrading python3 (3.12.11-r0 -> 3.12.12-r0) (35/130) Upgrading python3-pycache-pyc0 (3.12.11-r0 -> 3.12.12-r0) (36/130) Installing py3-gobject3-pyc (3.52.3-r1) (37/130) Upgrading python3-pyc (3.12.11-r0 -> 3.12.12-r0) (38/130) Installing libxau (1.0.12-r0) (39/130) Installing libmd (1.1.0-r0) (40/130) Installing libbsd (0.12.2-r0) (41/130) Installing libxdmcp (1.1.5-r1) (42/130) Installing libxcb (1.17.0-r0) (43/130) Installing libx11 (1.8.11-r0) (44/130) Installing libxext (1.3.6-r2) (45/130) Installing libxrender (0.9.12-r0) (46/130) Installing libpng (1.6.47-r0) (47/130) Installing freetype (2.13.3-r0) (48/130) Installing fontconfig (2.15.0-r3) (49/130) Installing pixman (0.46.4-r0) (50/130) Installing cairo (1.18.4-r0) (51/130) Installing cairo-gobject (1.18.4-r0) (52/130) Installing py3-gobject3 (3.52.3-r1) (53/130) Installing yaml (0.2.5-r2) (54/130) Installing py3-yaml (6.0.2-r0) (55/130) Installing py3-yaml-pyc (6.0.2-r0) (56/130) Installing cairo-tools (1.18.4-r0) (57/130) Installing expat (2.7.3-r0) (58/130) Installing expat-dev (2.7.3-r0) (59/130) Installing bzip2-dev (1.0.8-r6) (60/130) Installing brotli (1.1.0-r2) (61/130) Installing brotli-dev (1.1.0-r2) (62/130) Installing zlib-dev (1.3.1-r2) (63/130) Installing libpng-dev (1.6.47-r0) (64/130) Installing freetype-dev (2.13.3-r0) (65/130) Installing fontconfig-dev (2.15.0-r3) (66/130) Installing xorgproto (2024.1-r0) (67/130) Installing libxau-dev (1.0.12-r0) (68/130) Installing xcb-proto (1.17.0-r0) (69/130) Installing xcb-proto-pyc (1.17.0-r0) (70/130) Installing libxdmcp-dev (1.1.5-r1) (71/130) Installing libxcb-dev (1.17.0-r0) (72/130) Installing xtrans (1.5.2-r0) (73/130) Installing libx11-dev (1.8.11-r0) (74/130) Installing libxext-dev (1.3.6-r2) (75/130) Installing libxrender-dev (0.9.12-r0) (76/130) Installing pixman-dev (0.46.4-r0) (77/130) Installing util-macros (1.20.1-r0) (78/130) Installing xcb-util (0.4.1-r3) (79/130) Installing xcb-util-dev (0.4.1-r3) (80/130) Installing libxml2 (2.13.9-r0) (81/130) Installing libxml2-utils (2.13.9-r0) (82/130) Installing docbook-xml (4.5-r10) Executing docbook-xml-4.5-r10.post-install (83/130) Installing libxslt (1.1.43-r3) (84/130) Installing docbook-xsl-ns (1.79.2-r11) Executing docbook-xsl-ns-1.79.2-r11.post-install (85/130) Installing docbook-xsl-nons (1.79.2-r11) Executing docbook-xsl-nons-1.79.2-r11.post-install (86/130) Installing docbook-xsl (1.79.2-r11) (87/130) Installing xz (5.8.1-r0) (88/130) Installing gettext-asprintf (0.24.1-r0) (89/130) Installing gettext-libs (0.24.1-r0) (90/130) Installing gettext (0.24.1-r0) (91/130) Installing gettext-dev (0.24.1-r0) (92/130) Installing py3-parsing (3.2.3-r0) (93/130) Installing py3-parsing-pyc (3.2.3-r0) (94/130) Installing py3-packaging (25.0-r0) (95/130) Installing py3-packaging-pyc (25.0-r0) (96/130) Installing linux-headers (6.14.2-r0) (97/130) Installing libffi-dev (3.4.8-r0) (98/130) Installing bsd-compat-headers (0.7.2-r6) (99/130) Installing libedit-dev (20250104.3.1-r1) (100/130) Installing libpcre2-16 (10.43-r1) (101/130) Installing libpcre2-32 (10.43-r1) (102/130) Installing pcre2-dev (10.43-r1) (103/130) Installing libuuid (2.41-r9) (104/130) Installing libfdisk (2.41-r9) (105/130) Installing liblastlog2 (2.41-r9) (106/130) Installing libsmartcols (2.41-r9) (107/130) Installing sqlite (3.49.2-r1) (108/130) Installing sqlite-dev (3.49.2-r1) (109/130) Installing util-linux-dev (2.41-r9) (110/130) Installing glib-dev (2.84.4-r0) (111/130) Installing cairo-dev (1.18.4-r0) (112/130) Installing py3-gobject3-dev (3.52.3-r1) (113/130) Installing py3-installer (0.7.0-r2) (114/130) Installing py3-installer-pyc (0.7.0-r2) (115/130) Installing py3-gpep517 (19-r0) (116/130) Installing py3-gpep517-pyc (19-r0) (117/130) Installing py3-setuptools (80.9.0-r0) (118/130) Installing py3-setuptools-pyc (80.9.0-r0) (119/130) Installing py3-wheel (0.46.1-r0) (120/130) Installing py3-wheel-pyc (0.46.1-r0) (121/130) Installing python3-dev (3.12.12-r0) (122/130) Installing py3-iniconfig (2.1.0-r0) (123/130) Installing py3-iniconfig-pyc (2.1.0-r0) (124/130) Installing py3-pluggy (1.5.0-r0) (125/130) Installing py3-pluggy-pyc (1.5.0-r0) (126/130) Installing py3-py (1.11.0-r4) (127/130) Installing py3-py-pyc (1.11.0-r4) (128/130) Installing py3-pytest (8.3.5-r0) (129/130) Installing py3-pytest-pyc (8.3.5-r0) (130/130) Installing .makedepends-ostree-push (20251012.055633) Executing busybox-1.37.0-r19.trigger Executing glib-2.84.4-r0.trigger No schema files found: doing nothing. OK: 450 MiB in 216 packages >>> ostree-push: Cleaning up srcdir >>> ostree-push: Cleaning up pkgdir >>> ostree-push: Cleaning up tmpdir >>> ostree-push: Fetching ostree-push-v1.2.0.tar.gz::https://github.com/dbnicholson/ostree-push/archive/refs/tags/v1.2.0.tar.gz >>> ostree-push: Fetching ostree-push-v1.2.0.tar.gz::https://github.com/dbnicholson/ostree-push/archive/refs/tags/v1.2.0.tar.gz >>> ostree-push: Checking sha512sums... ostree-push-v1.2.0.tar.gz: OK >>> ostree-push: Unpacking /var/cache/distfiles/ostree-push-v1.2.0.tar.gz... 2025-10-12 05:56:35,778 gpep517 INFO Building wheel via backend setuptools.build_meta /usr/lib/python3.12/site-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 :: GNU General Public License v2 or later (GPLv2+) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 2025-10-12 05:56:35,788 root INFO running bdist_wheel 2025-10-12 05:56:35,795 root INFO running build 2025-10-12 05:56:35,795 root INFO running build_py 2025-10-12 05:56:35,797 root INFO creating build/lib/otpush 2025-10-12 05:56:35,797 root INFO copying otpush/push.py -> build/lib/otpush 2025-10-12 05:56:35,797 root INFO copying otpush/receive_legacy.py -> build/lib/otpush 2025-10-12 05:56:35,798 root INFO copying otpush/__init__.py -> build/lib/otpush 2025-10-12 05:56:35,798 root INFO copying otpush/receive.py -> build/lib/otpush 2025-10-12 05:56:35,798 root INFO running build_scripts 2025-10-12 05:56:35,798 root INFO creating build/scripts-3.12 2025-10-12 05:56:35,798 root INFO copying and adjusting scripts/ostree-receive-shell -> build/scripts-3.12 2025-10-12 05:56:35,798 root INFO changing mode of build/scripts-3.12/ostree-receive-shell from 644 to 755 2025-10-12 05:56:35,801 root INFO installing to build/bdist.linux-x86_64/wheel 2025-10-12 05:56:35,801 root INFO running install 2025-10-12 05:56:35,806 root INFO running install_lib 2025-10-12 05:56:35,807 root INFO creating build/bdist.linux-x86_64/wheel 2025-10-12 05:56:35,807 root INFO creating build/bdist.linux-x86_64/wheel/otpush 2025-10-12 05:56:35,807 root INFO copying build/lib/otpush/push.py -> build/bdist.linux-x86_64/wheel/./otpush 2025-10-12 05:56:35,807 root INFO copying build/lib/otpush/receive_legacy.py -> build/bdist.linux-x86_64/wheel/./otpush 2025-10-12 05:56:35,807 root INFO copying build/lib/otpush/__init__.py -> build/bdist.linux-x86_64/wheel/./otpush 2025-10-12 05:56:35,807 root INFO copying build/lib/otpush/receive.py -> build/bdist.linux-x86_64/wheel/./otpush 2025-10-12 05:56:35,808 root INFO running install_egg_info 2025-10-12 05:56:35,809 root INFO running egg_info 2025-10-12 05:56:35,810 root INFO creating ostree_push.egg-info 2025-10-12 05:56:35,810 root INFO writing ostree_push.egg-info/PKG-INFO 2025-10-12 05:56:35,810 root INFO writing dependency_links to ostree_push.egg-info/dependency_links.txt 2025-10-12 05:56:35,811 root INFO writing entry points to ostree_push.egg-info/entry_points.txt 2025-10-12 05:56:35,811 root INFO writing requirements to ostree_push.egg-info/requires.txt 2025-10-12 05:56:35,811 root INFO writing top-level names to ostree_push.egg-info/top_level.txt 2025-10-12 05:56:35,811 root INFO writing manifest file 'ostree_push.egg-info/SOURCES.txt' 2025-10-12 05:56:35,812 root INFO reading manifest file 'ostree_push.egg-info/SOURCES.txt' 2025-10-12 05:56:35,812 root INFO reading manifest template 'MANIFEST.in' 2025-10-12 05:56:35,813 root INFO adding license file 'COPYING' 2025-10-12 05:56:35,813 root INFO writing manifest file 'ostree_push.egg-info/SOURCES.txt' 2025-10-12 05:56:35,813 root INFO Copying ostree_push.egg-info to build/bdist.linux-x86_64/wheel/./ostree_push-1.2.0-py3.12.egg-info 2025-10-12 05:56:35,814 root INFO running install_scripts 2025-10-12 05:56:35,814 root INFO creating build/bdist.linux-x86_64/wheel/ostree_push-1.2.0.data/scripts 2025-10-12 05:56:35,814 root INFO copying build/scripts-3.12/ostree-receive-shell -> build/bdist.linux-x86_64/wheel/ostree_push-1.2.0.data/scripts 2025-10-12 05:56:35,814 root INFO changing mode of build/bdist.linux-x86_64/wheel/ostree_push-1.2.0.data/scripts/ostree-receive-shell to 755 2025-10-12 05:56:35,814 root INFO creating build/bdist.linux-x86_64/wheel/ostree_push-1.2.0.dist-info/WHEEL 2025-10-12 05:56:35,815 wheel INFO creating '/home/udu/aports/community/ostree-push/src/ostree-push-1.2.0/.dist/.tmp-7cq9goy8/ostree_push-1.2.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it 2025-10-12 05:56:35,815 wheel INFO adding 'ostree_push-1.2.0.data/scripts/ostree-receive-shell' 2025-10-12 05:56:35,815 wheel INFO adding 'ostree_push-1.2.0.dist-info/licenses/COPYING' 2025-10-12 05:56:35,815 wheel INFO adding 'otpush/__init__.py' 2025-10-12 05:56:35,815 wheel INFO adding 'otpush/push.py' 2025-10-12 05:56:35,815 wheel INFO adding 'otpush/receive.py' 2025-10-12 05:56:35,815 wheel INFO adding 'otpush/receive_legacy.py' 2025-10-12 05:56:35,816 wheel INFO adding 'ostree_push-1.2.0.dist-info/METADATA' 2025-10-12 05:56:35,816 wheel INFO adding 'ostree_push-1.2.0.dist-info/WHEEL' 2025-10-12 05:56:35,816 wheel INFO adding 'ostree_push-1.2.0.dist-info/entry_points.txt' 2025-10-12 05:56:35,816 wheel INFO adding 'ostree_push-1.2.0.dist-info/top_level.txt' 2025-10-12 05:56:35,816 wheel INFO adding 'ostree_push-1.2.0.dist-info/RECORD' 2025-10-12 05:56:35,816 root INFO removing build/bdist.linux-x86_64/wheel 2025-10-12 05:56:35,816 gpep517 INFO The backend produced .dist/ostree_push-1.2.0-py3-none-any.whl ostree_push-1.2.0-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.12, pytest-8.3.5, pluggy-1.5.0 -- /home/udu/aports/community/ostree-push/src/ostree-push-1.2.0/.testenv/bin/python3 cachedir: .pytest_cache rootdir: /home/udu/aports/community/ostree-push/src/ostree-push-1.2.0 configfile: pytest.ini collecting ... collected 99 items tests/test_full.py::test_no_commits SKIPPED (OpenSSH sshd version 7....) [ 1%] tests/test_full.py::test_basic SKIPPED (OpenSSH sshd version 7.8+ re...) [ 2%] tests/test_full.py::test_dry_run SKIPPED (OpenSSH sshd version 7.8+ ...) [ 3%] tests/test_full.py::test_scp_dest SKIPPED (OpenSSH sshd version 7.8+...) [ 4%] tests/test_full.py::test_command_abspath SKIPPED (OpenSSH sshd versi...) [ 5%] tests/test_full.py::test_unversioned SKIPPED (OpenSSH sshd version 7...) [ 6%] tests/test_push.py::TestRepoServer::test_missing PASSED [ 7%] tests/test_push.py::TestRepoServer::test_non_context FAILED [ 8%] tests/test_push.py::TestRepoServer::test_context FAILED [ 9%] tests/test_push.py::TestRepoServer::test_pull FAILED [ 10%] tests/test_push.py::TestSSHMultiplexer::test_socket_exists SKIPPED (...) [ 11%] tests/test_push.py::TestSSHMultiplexer::test_master_non_context SKIPPED [ 12%] tests/test_push.py::TestSSHMultiplexer::test_master_context SKIPPED [ 13%] tests/test_push.py::TestSSHMultiplexer::test_forward_port SKIPPED (O...) [ 14%] tests/test_push.py::TestSSHMultiplexer::test_run SKIPPED (OpenSSH ss...) [ 15%] tests/test_push.py::TestPushRefs::test_no_refs SKIPPED (OpenSSH sshd...) [ 16%] tests/test_push.py::TestPushRefs::test_refs SKIPPED (OpenSSH sshd ve...) [ 17%] tests/test_push.py::TestPushRefs::test_missing_ref SKIPPED (OpenSSH ...) [ 18%] tests/test_push.py::TestPushRefs::test_summary SKIPPED (OpenSSH sshd...) [ 19%] tests/test_push.py::TestPushRefs::test_dry_run SKIPPED (OpenSSH sshd...) [ 20%] tests/test_push.py::TestPushRefs::test_commands SKIPPED (OpenSSH ssh...) [ 21%] tests/test_push.py::TestParseDest::test_bad_scheme PASSED [ 22%] tests/test_push.py::TestParseDest::test_missing_repo PASSED [ 23%] tests/test_push.py::TestParseDest::test_empty_dest PASSED [ 24%] tests/test_push.py::TestParseDest::test_missing_host PASSED [ 25%] tests/test_push.py::TestParseDest::test_invalid_host PASSED [ 26%] tests/test_push.py::TestParseDest::test_invalid_port PASSED [ 27%] tests/test_push.py::TestParseDest::test_good_dest PASSED [ 28%] tests/test_push.py::TestArgParser::test_no_dest PASSED [ 29%] tests/test_push.py::TestArgParser::test_defaults PASSED [ 30%] tests/test_push.py::TestArgParser::test_dest PASSED [ 31%] tests/test_push.py::TestArgParser::test_refs PASSED [ 32%] tests/test_push.py::TestArgParser::test_port PASSED [ 33%] tests/test_push.py::TestArgParser::test_port_and_dest_port PASSED [ 34%] tests/test_push.py::TestArgParser::test_dry_run PASSED [ 35%] tests/test_push.py::TestArgParser::test_log_level PASSED [ 36%] tests/test_push.py::TestArgParser::test_repo PASSED [ 37%] tests/test_push.py::TestArgParser::test_commands PASSED [ 38%] tests/test_push.py::TestArgParser::test_ssh_options PASSED [ 39%] tests/test_receive.py::TestReceiveRepo::test_cleanup ERROR [ 40%] tests/test_receive.py::TestReceiveRepo::test_missing_repo PASSED [ 41%] tests/test_receive.py::TestReceiveRepo::test_get_commit_timestamp ERROR [ 42%] tests/test_receive.py::TestReceiveRepo::test_is_flatpak_repo ERROR [ 43%] tests/test_receive.py::TestReceiveRepo::test_pull_commits ERROR [ 44%] tests/test_receive.py::TestReceiveRepo::test_copy_commit ERROR [ 45%] tests/test_receive.py::TestReceiveRepo::test_receive ERROR [ 46%] tests/test_receive.py::TestReceiveRepo::test_receive_update ERROR [ 47%] tests/test_receive.py::TestReceiveRepo::test_receive_update_hook ERROR [ 48%] tests/test_receive.py::TestReceiveRepo::test_receive_gpg_sign ERROR [ 49%] tests/test_receive.py::TestReceiveRepo::test_receive_gpg_verify ERROR [ 50%] tests/test_receive.py::TestReceiveRepo::test_receive_ed25519_sign ERROR [ 51%] tests/test_receive.py::TestReceiveRepo::test_receive_ed25519_verify ERROR [ 52%] tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata ERROR [ 53%] tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata_flatpak SKIPPED [ 54%] tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata_gpg_sign ERROR [ 55%] tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata_ed25519_sign ERROR [ 56%] tests/test_receive.py::TestReceiveRepo::test_update_repo_hook ERROR [ 57%] tests/test_receive.py::TestReceiveRepo::test_receive_missing ERROR [ 58%] tests/test_receive.py::TestReceiveRepo::test_receive_specific ERROR [ 59%] tests/test_receive.py::TestReceiveRepo::test_receive_all ERROR [ 60%] tests/test_receive.py::TestReceiveRepo::test_receive_dry_run ERROR [ 61%] tests/test_receive.py::TestReceiveRepo::test_receive_force ERROR [ 62%] tests/test_receive.py::TestReceiver::test_default_config PASSED [ 63%] tests/test_receive.py::TestReceiver::test_receive ERROR [ 64%] tests/test_receive.py::TestRepoConfig::test_defaults PASSED [ 65%] tests/test_receive.py::TestRepoConfig::test_required PASSED [ 66%] tests/test_receive.py::TestConfig::test_defaults PASSED [ 67%] tests/test_receive.py::TestConfig::test_invalid PASSED [ 68%] tests/test_receive.py::TestConfig::test_default_paths PASSED [ 69%] tests/test_receive.py::TestConfig::test_load_valid PASSED [ 70%] tests/test_receive.py::TestConfig::test_load_none PASSED [ 71%] tests/test_receive.py::TestConfig::test_load_empty PASSED [ 72%] tests/test_receive.py::TestConfig::test_load_missing PASSED [ 73%] tests/test_receive.py::TestConfig::test_load_multiple PASSED [ 74%] tests/test_receive.py::TestConfig::test_load_unknown PASSED [ 75%] tests/test_receive.py::TestConfig::test_load_invalid PASSED [ 76%] tests/test_receive.py::TestConfig::test_load_env PASSED [ 77%] tests/test_receive.py::TestConfig::test_load_args PASSED [ 78%] tests/test_receive.py::TestConfig::test_load_args_invalid PASSED [ 79%] tests/test_receive.py::TestConfig::test_load_conf_and_args PASSED [ 80%] tests/test_receive.py::TestConfig::test_repo_config PASSED [ 81%] tests/test_receive.py::TestArgParser::test_no_repo PASSED [ 82%] tests/test_receive.py::TestArgParser::test_no_url PASSED [ 83%] tests/test_receive.py::TestArgParser::test_defaults PASSED [ 84%] tests/test_receive.py::TestArgParser::test_refs PASSED [ 85%] tests/test_receive.py::TestArgParser::test_update PASSED [ 86%] tests/test_receive.py::TestArgParser::test_dry_run PASSED [ 87%] tests/test_receive.py::TestArgParser::test_force PASSED [ 88%] tests/test_receive.py::TestArgParser::test_log_level PASSED [ 89%] tests/test_receive.py::test_compat_main PASSED [ 90%] tests/test_receive_legacy.py::test_noop ERROR [ 91%] tests/test_receive_legacy.py::test_update ERROR [ 92%] tests/test_receive_shell.py::test_command_args PASSED [ 93%] tests/test_receive_shell.py::test_auto_path PASSED [ 94%] tests/test_receive_shell.py::test_no_interactive PASSED [ 95%] tests/test_receive_shell.py::test_wrong_args PASSED [ 96%] tests/test_receive_shell.py::test_allowed_commands PASSED [ 97%] tests/test_receive_shell.py::test_exec_errors PASSED [ 98%] tests/test_sshd.py::test_basic SKIPPED (OpenSSH sshd version 7.8+ re...) [100%] ==================================== ERRORS ==================================== ________________ ERROR at setup of TestReceiveRepo.test_cleanup ________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_cleanup0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_cleanup0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df8682c0 (GLocalFile at 0x7ae5dfb00df0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _________ ERROR at setup of TestReceiveRepo.test_get_commit_timestamp __________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_get_commit_timestamp0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_get_commit_timestamp0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df60d6c0 (GLocalFile at 0x7ae5dfb00d90)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ____________ ERROR at setup of TestReceiveRepo.test_is_flatpak_repo ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_is_flatpak_repo0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_is_flatpak_repo0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df409b00 (GLocalFile at 0x7ae5df6528f0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _____________ ERROR at setup of TestReceiveRepo.test_pull_commits ______________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_pull_commits0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_pull_commits0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df3842c0 (GLocalFile at 0x7ae5df652ad0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ______________ ERROR at setup of TestReceiveRepo.test_copy_commit ______________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_copy_commit0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_copy_commit0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df12f340 (GLocalFile at 0x7ae5df652aa0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ________________ ERROR at setup of TestReceiveRepo.test_receive ________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df3a3cc0 (GLocalFile at 0x7ae5dfb00d90)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ____________ ERROR at setup of TestReceiveRepo.test_receive_update _____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_update0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_update0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2336c0 (GLocalFile at 0x7ae5df652800)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error __________ ERROR at setup of TestReceiveRepo.test_receive_update_hook __________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_update_hook0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_update_hook0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2e9340 (GLocalFile at 0x7ae5df652ad0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ___________ ERROR at setup of TestReceiveRepo.test_receive_gpg_sign ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_gpg_sign0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_gpg_sign0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df3ce040 (GLocalFile at 0x7ae5df652a70)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error __________ ERROR at setup of TestReceiveRepo.test_receive_gpg_verify ___________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_gpg_verify0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_gpg_verify0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2e2540 (GLocalFile at 0x7ae5df6529b0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _________ ERROR at setup of TestReceiveRepo.test_receive_ed25519_sign __________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_ed25519_sign0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_ed25519_sign0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df41b900 (GLocalFile at 0x7ae5df652500)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ________ ERROR at setup of TestReceiveRepo.test_receive_ed25519_verify _________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_ed25519_verify0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_ed25519_verify0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2af580 (GLocalFile at 0x7ae5df6526e0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _________ ERROR at setup of TestReceiveRepo.test_update_repo_metadata __________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df606a40 (GLocalFile at 0x7ae5df652800)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _____ ERROR at setup of TestReceiveRepo.test_update_repo_metadata_gpg_sign _____ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata_gpg_0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata_gpg_0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df136180 (GLocalFile at 0x7ae5df652350)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ___ ERROR at setup of TestReceiveRepo.test_update_repo_metadata_ed25519_sign ___ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata_ed250') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_metadata_ed250/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df12de40 (GLocalFile at 0x7ae5df652620)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ___________ ERROR at setup of TestReceiveRepo.test_update_repo_hook ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_hook0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update_repo_hook0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df5fccc0 (GLocalFile at 0x7ae5df652950)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ____________ ERROR at setup of TestReceiveRepo.test_receive_missing ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_missing0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_missing0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2619c0 (GLocalFile at 0x7ae5df6525f0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ___________ ERROR at setup of TestReceiveRepo.test_receive_specific ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_specific0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_specific0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df150440 (GLocalFile at 0x7ae5df6524d0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ______________ ERROR at setup of TestReceiveRepo.test_receive_all ______________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_all0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_all0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df257880 (GLocalFile at 0x7ae5df652a70)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ____________ ERROR at setup of TestReceiveRepo.test_receive_dry_run ____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_dry_run0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_dry_run0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df869980 (GLocalFile at 0x7ae5df6523b0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _____________ ERROR at setup of TestReceiveRepo.test_receive_force _____________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_force0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive_force0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df249c80 (GLocalFile at 0x7ae5df6526e0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _________________ ERROR at setup of TestReceiver.test_receive __________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive1') tmp_files_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive1/files') @pytest.fixture def source_repo(tmp_path, tmp_files_path): repo_path = tmp_path / 'source-repo' > repo = TmpRepo(repo_path, collection_id=None) tests/conftest.py:100: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_receive1/source-repo') collection_id = None, kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df408880 (GLocalFile at 0x7ae5df6524a0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error _________________________ ERROR at setup of test_noop __________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_noop0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_noop0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2a2800 (GLocalFile at 0x7ae5dfb00f10)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error ________________________ ERROR at setup of test_update _________________________ tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update0') @pytest.fixture def dest_repo(tmp_path): repo_path = tmp_path / 'dest-repo' > return TmpRepo(repo_path) tests/conftest.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_update0/dest-repo') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df2542c0 (GLocalFile at 0x7ae5df652620)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error =================================== FAILURES =================================== _______________________ TestRepoServer.test_non_context ________________________ self = tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_non_context0') def test_non_context(self, tmp_path): # Without context manager self.repo = tmp_path / 'repo' self.populate_repo() self.server = push.RepoServer(self.repo) assert self.server.path == self.repo assert self.server.proc is None assert self.server.address is None assert self.server.url is None # This should do nothing self.server.stop() # Make sure to clean up so the tests don't hang if there are failures try: > self.server.start() tests/test_push.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ otpush/push.py:136: in start addr_queue = multiprocessing.Queue() /usr/lib/python3.12/multiprocessing/context.py:103: in Queue return Queue(maxsize, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/queues.py:43: in __init__ self._rlock = ctx.Lock() /usr/lib/python3.12/multiprocessing/context.py:68: in Lock return Lock(ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:169: in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 1 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError _________________________ TestRepoServer.test_context __________________________ self = tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_context0') def test_context(self, tmp_path): self.repo = tmp_path / 'repo' self.populate_repo() > with push.RepoServer(self.repo) as self.server: tests/test_push.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ otpush/push.py:114: in __enter__ self.start() otpush/push.py:136: in start addr_queue = multiprocessing.Queue() /usr/lib/python3.12/multiprocessing/context.py:103: in Queue return Queue(maxsize, ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/queues.py:43: in __init__ self._rlock = ctx.Lock() /usr/lib/python3.12/multiprocessing/context.py:68: in Lock return Lock(ctx=self.get_context()) /usr/lib/python3.12/multiprocessing/synchronize.py:169: in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , kind = 1, value = 1, maxvalue = 1 def __init__(self, kind, value, maxvalue, *, ctx): if ctx is None: ctx = context._default_context.get_context() self._is_fork_ctx = ctx.get_start_method() == 'fork' unlink_now = sys.platform == 'win32' or self._is_fork_ctx for i in range(100): try: > sl = self._semlock = _multiprocessing.SemLock( kind, value, maxvalue, self._make_name(), unlink_now) E PermissionError: [Errno 13] Permission denied /usr/lib/python3.12/multiprocessing/synchronize.py:57: PermissionError ___________________________ TestRepoServer.test_pull ___________________________ self = tmp_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_pull0') tmp_files_path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_pull0/files') def test_pull(self, tmp_path, tmp_files_path): > local_repo = TmpRepo(tmp_path / 'local') tests/test_push.py:88: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = path = PosixPath('/tmp/pytest-of-udu/pytest-0/test_pull0/local') collection_id = 'com.example.Test', kwargs = {} repo_file = <__gi__.GLocalFile object at 0x7ae5df4db400 (GLocalFile at 0x7ae5dfb7f8b0)> def __init__(self, path, collection_id=COLLECTION_ID, **kwargs): self.path = path self.path.mkdir() repo_file = Gio.File.new_for_path(str(self.path)) super().__init__(path=repo_file, **kwargs) if collection_id: self.set_collection_id(collection_id) > self.create(OSTree.RepoMode.ARCHIVE) E gi.repository.GLib.GError: g-file-error-quark: opening repo: Failed to open file “/proc/sys/kernel/random/boot_id”: No such file or directory (4) tests/util.py:184: Error =========================== short test summary info ============================ FAILED tests/test_push.py::TestRepoServer::test_non_context - PermissionError... FAILED tests/test_push.py::TestRepoServer::test_context - PermissionError: [E... FAILED tests/test_push.py::TestRepoServer::test_pull - gi.repository.GLib.GEr... ERROR tests/test_receive.py::TestReceiveRepo::test_cleanup - gi.repository.GL... ERROR tests/test_receive.py::TestReceiveRepo::test_get_commit_timestamp - gi.... ERROR tests/test_receive.py::TestReceiveRepo::test_is_flatpak_repo - gi.repos... ERROR tests/test_receive.py::TestReceiveRepo::test_pull_commits - gi.reposito... ERROR tests/test_receive.py::TestReceiveRepo::test_copy_commit - gi.repositor... ERROR tests/test_receive.py::TestReceiveRepo::test_receive - gi.repository.GL... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_update - gi.reposi... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_update_hook - gi.r... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_gpg_sign - gi.repo... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_gpg_verify - gi.re... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_ed25519_sign - gi.... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_ed25519_verify - g... ERROR tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata - gi.... ERROR tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata_gpg_sign ERROR tests/test_receive.py::TestReceiveRepo::test_update_repo_metadata_ed25519_sign ERROR tests/test_receive.py::TestReceiveRepo::test_update_repo_hook - gi.repo... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_missing - gi.repos... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_specific - gi.repo... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_all - gi.repositor... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_dry_run - gi.repos... ERROR tests/test_receive.py::TestReceiveRepo::test_receive_force - gi.reposit... ERROR tests/test_receive.py::TestReceiver::test_receive - gi.repository.GLib.... ERROR tests/test_receive_legacy.py::test_noop - gi.repository.GLib.GError: g-... ERROR tests/test_receive_legacy.py::test_update - gi.repository.GLib.GError: ... ============= 3 failed, 53 passed, 19 skipped, 24 errors in 0.90s ============== >>> ERROR: ostree-push: check failed >>> ostree-push: Uninstalling dependencies... (1/127) Purging .makedepends-ostree-push (20251012.055633) (2/127) Purging ostree (2025.2-r0) (3/127) Purging ostree-gir (2025.2-r0) (4/127) Purging py3-gobject3-pyc (3.52.3-r1) (5/127) Purging py3-gobject3 (3.52.3-r1) (6/127) Purging gobject-introspection (1.84.0-r0) (7/127) Purging py3-yaml-pyc (6.0.2-r0) (8/127) Purging py3-yaml (6.0.2-r0) (9/127) Purging cairo-dev (1.18.4-r0) (10/127) Purging cairo-tools (1.18.4-r0) (11/127) Purging xcb-util-dev (0.4.1-r3) (12/127) Purging util-macros (1.20.1-r0) (13/127) Purging xcb-util (0.4.1-r3) (14/127) Purging cairo-gobject (1.18.4-r0) (15/127) Purging cairo (1.18.4-r0) (16/127) Purging py3-gobject3-dev (3.52.3-r1) (17/127) Purging py3-gpep517-pyc (19-r0) (18/127) Purging py3-gpep517 (19-r0) (19/127) Purging py3-installer-pyc (0.7.0-r2) (20/127) Purging py3-installer (0.7.0-r2) (21/127) Purging py3-setuptools-pyc (80.9.0-r0) (22/127) Purging py3-setuptools (80.9.0-r0) (23/127) Purging py3-wheel-pyc (0.46.1-r0) (24/127) Purging py3-wheel (0.46.1-r0) (25/127) Purging python3-dev (3.12.12-r0) (26/127) Purging fontconfig-dev (2.15.0-r3) (27/127) Purging fontconfig (2.15.0-r3) (28/127) Purging freetype-dev (2.13.3-r0) (29/127) Purging freetype (2.13.3-r0) (30/127) Purging fuse3-libs (3.16.2-r1) (31/127) Purging glib-dev (2.84.4-r0) (32/127) Purging bzip2-dev (1.0.8-r6) (33/127) Purging docbook-xsl (1.79.2-r11) (34/127) Purging docbook-xsl-ns (1.79.2-r11) Executing docbook-xsl-ns-1.79.2-r11.pre-deinstall (35/127) Purging docbook-xsl-nons (1.79.2-r11) Executing docbook-xsl-nons-1.79.2-r11.pre-deinstall (36/127) Purging docbook-xml (4.5-r10) Executing docbook-xml-4.5-r10.pre-deinstall (37/127) Purging gettext-dev (0.24.1-r0) (38/127) Purging xz (5.8.1-r0) (39/127) Purging gettext-asprintf (0.24.1-r0) (40/127) Purging gettext (0.24.1-r0) (41/127) Purging libxml2-utils (2.13.9-r0) (42/127) Purging libxslt (1.1.43-r3) (43/127) Purging gpgme (1.24.2-r1) (44/127) Purging gpg (2.4.7-r0) (45/127) Purging gnupg-dirmngr (2.4.7-r0) (46/127) Purging gnupg-keyboxd (2.4.7-r0) (47/127) Purging gpg-agent (2.4.7-r0) (48/127) Purging gpgsm (2.4.7-r0) (49/127) Purging gnupg-gpgconf (2.4.7-r0) (50/127) Purging pinentry (1.3.1-r0) (51/127) Purging libarchive (3.8.1-r0) (52/127) Purging libassuan (2.5.7-r0) (53/127) Purging libffi-dev (3.4.8-r0) (54/127) Purging linux-headers (6.14.2-r0) (55/127) Purging libgcrypt (1.10.3-r1) (56/127) Purging libksba (1.6.7-r0) (57/127) Purging libldap (2.6.8-r0) (58/127) Purging libpng-dev (1.6.47-r0) (59/127) Purging libpng (1.6.47-r0) (60/127) Purging libsasl (2.1.28-r8) (61/127) Purging libxext-dev (1.3.6-r2) (62/127) Purging libxext (1.3.6-r2) (63/127) Purging libxml2 (2.13.9-r0) (64/127) Purging libxrender-dev (0.9.12-r0) (65/127) Purging libxrender (0.9.12-r0) (66/127) Purging lz4-libs (1.10.0-r0) (67/127) Purging npth (1.8-r0) (68/127) Purging openssh-client-default (10.0_p1-r9) (69/127) Purging openssh-keygen (10.0_p1-r9) (70/127) Purging openssh-client-common (10.0_p1-r9) (71/127) Purging pcre2-dev (10.43-r1) (72/127) Purging libedit-dev (20250104.3.1-r1) (73/127) Purging bsd-compat-headers (0.7.2-r6) (74/127) Purging libedit (20250104.3.1-r1) (75/127) Purging zlib-dev (1.3.1-r2) (76/127) Purging libpcre2-16 (10.43-r1) (77/127) Purging libpcre2-32 (10.43-r1) (78/127) Purging pixman-dev (0.46.4-r0) (79/127) Purging pixman (0.46.4-r0) (80/127) Purging py3-iniconfig-pyc (2.1.0-r0) (81/127) Purging py3-packaging-pyc (25.0-r0) (82/127) Purging py3-parsing-pyc (3.2.3-r0) (83/127) Purging py3-pluggy-pyc (1.5.0-r0) (84/127) Purging py3-py-pyc (1.11.0-r4) (85/127) Purging py3-pytest-pyc (8.3.5-r0) (86/127) Purging py3-pytest (8.3.5-r0) (87/127) Purging py3-iniconfig (2.1.0-r0) (88/127) Purging py3-packaging (25.0-r0) (89/127) Purging py3-parsing (3.2.3-r0) (90/127) Purging py3-pluggy (1.5.0-r0) (91/127) Purging py3-py (1.11.0-r4) (92/127) Purging util-linux-dev (2.41-r9) (93/127) Purging libfdisk (2.41-r9) (94/127) Purging liblastlog2 (2.41-r9) (95/127) Purging libsmartcols (2.41-r9) (96/127) Purging libuuid (2.41-r9) (97/127) Purging xcb-proto-pyc (1.17.0-r0) (98/127) Purging yaml (0.2.5-r2) (99/127) Purging brotli-dev (1.1.0-r2) (100/127) Purging brotli (1.1.0-r2) (101/127) Purging expat-dev (2.7.3-r0) (102/127) Purging expat (2.7.3-r0) (103/127) Purging gettext-libs (0.24.1-r0) (104/127) Purging glib (2.84.4-r0) (105/127) Purging gnutls (3.8.8-r0) (106/127) Purging libmount (2.41-r9) (107/127) Purging libblkid (2.41-r9) (108/127) Purging libx11-dev (1.8.11-r0) (109/127) Purging xtrans (1.5.2-r0) (110/127) Purging libx11 (1.8.11-r0) (111/127) Purging libxcb-dev (1.17.0-r0) (112/127) Purging xcb-proto (1.17.0-r0) (113/127) Purging libxcb (1.17.0-r0) (114/127) Purging libxdmcp-dev (1.1.5-r1) (115/127) Purging libxdmcp (1.1.5-r1) (116/127) Purging libbsd (0.12.2-r0) (117/127) Purging libeconf (0.6.3-r0) (118/127) Purging libgpg-error (1.55-r0) (119/127) Purging libmd (1.1.0-r0) (120/127) Purging p11-kit (0.25.5-r2) (121/127) Purging libtasn1 (4.20.0-r0) (122/127) Purging libxau-dev (1.0.12-r0) (123/127) Purging libxau (1.0.12-r0) (124/127) Purging nettle (3.10.1-r0) (125/127) Purging sqlite-dev (3.49.2-r1) (126/127) Purging sqlite (3.49.2-r1) (127/127) Purging xorgproto (2024.1-r0) Executing busybox-1.37.0-r19.trigger OK: 296 MiB in 89 packages