The TMT namespaced environment variables are not referenced anywhere
else and were recently removed from Podman too [1]. It's confusing to
have a long list of variables, which are either unused or don't need to
be explicitly preserved within the child session started by su(1).
ROOTLESS_USER is used when invoking su(1) and there's no need for it
within the child session started by su(1).
[1] Fedora podman commit b972298be7d228f4
https://src.fedoraproject.org/rpms/podman/c/b972298be7d228f4https://src.fedoraproject.org/rpms/toolbox/pull-request/36
... and fix CVE-2025-23266, CVE-2025-23267, and GHSA-fv92-fjc5-jj9h or
GO-2025-3787.
The following rpmlint warning was silenced:
toolbox.spec: W: no-%check-section
The timeout for the CI was increased to prevent it from timing out. The
upstream CI runs the test suite in three parallel batches, with each
batch having a timeout of 2 hours. The downstream CI doesn't run
parallelly, so a timeout of 4 hours was chosen.
https://src.fedoraproject.org/rpms/toolbox/pull-request/33
The CI needs to be run without 'p11-kit server' because the lingering
singleton process causes Bats to hang when tearing down the suite of
system tests [1]. To terminate the 'p11-kit server' instance run by the
system tests, it needs to be distinguishable from the instance run by
'normal' use of Toolbx by the user. One way to do this is to isolate
the host operating system's XDG_RUNTIME_DIR from the system tests.
Unfortunately, this is easier said than done [2]. So, this workaround
has to suffice until the problem is solved.
With the recent expansion of the test suite, it's necessary to increase
the timeout to prevent the CI from timing out.
[1] https://bats-core.readthedocs.io/en/stable/writing-tests.html
[2] https://github.com/containers/toolbox/pull/1652https://src.fedoraproject.org/rpms/toolbox/pull-request/30
Podman 5.0 switched to using pasta(1), instead of slirp4netns(1), by
default for rootless containers. This change has led to a regression
causing 'skopeo copy' to get stuck uploading an OCI image to the local
temporary Docker registry run by the tests as a Podman container [1],
which breaks the test suite on Fedora 40 onwards.
This was worked around by forcing the use of slirp4netns(1).
The slirp4nets package needs to be explicitly installed on Fedora 40
onwards, because the dependency in containers-common-extra changed from
Recommends to Suggests [2]. Otherwise, it led to:
1..320
# test suite: Set up
# test suite: Tear down
not ok 1 setup_suite
# (from function `assert_success' in file
./libs/bats-assert/src/assert.bash, line 114,
# from function `_setup_docker_registry' in file ./libs/helpers.bash,
line 208,
# from function `setup_suite' in test file ./setup_suite.bash, line
59)
# `_setup_docker_registry' failed
#
# -- command failed --
# status : 127
# output : Error: could not find slirp4netns, the network namespace
can't be configured: exec: "slirp4netns": executable file not
found in $PATH
# --
#
# Untagged: quay.io/toolbox_tests/registry:latest
# Deleted: fea5a12cde107bb407bc44ede6dd9edea1d2b4171cd8e52b0cb330bf45e517e1
# bats warning: Executed 1 instead of expected 320 tests
The missing dependency on the slirp4netns package in toolbox-tests
doesn't affect Podman's downstream Fedora CI, which runs toolbox-tests,
because it separately installs slirp4netns for other tests [3].
Fallout from d8388da39e
[1] https://github.com/containers/podman/issues/22575
[2] Fedora containers-common commit 17934d87b2686ab5
Fedora containers-common commit 13c232f064113860
https://src.fedoraproject.org/rpms/containers-common/c/17934d87b2686ab5https://src.fedoraproject.org/rpms/containers-common/c/13c232f064113860
[3] Fedora podman commit 9667d0f5b5069acb
https://src.fedoraproject.org/rpms/podman/c/9667d0f5b5069acbhttps://src.fedoraproject.org/rpms/toolbox/pull-request/20
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Toolbx's system tests download several images when setting up the test
suite, and cache them for later use by the tests [1]. This saves time
and avoids hitting rate limits imposed by OCI registries by not
downloading the same images repeatedly for several tests, but at the
cost of increased use of storage space to cache the images.
The images are cached under BATS_TMPDIR. It defaults to the TMPDIR
environment variable, and if that's not set then to /tmp [2]. Normally,
TMPDIR isn't set, and the images end up getting cached under /tmp. Now,
/tmp is typically on tmpfs backed by RAM or swap, which means that it
should be used for smaller size-bounded files only, and /var/tmp should
be used for everything else [3].
The images are big enough that a collection of them can't be described
as smaller and size-bounded, and it led to:
1..306
# test suite: Set up
# test suite: Tear down
not ok 1 setup_suite
# (from function `setup_suite' in test file ./setup_suite.bash, line
55)
# `_pull_and_cache_distro_image fedora "$((system_version-1))" ||
false' failed
# Failed to cache image registry.fedoraproject.org/fedora-toolbox:40
to /tmp/bats-run-IPz4Cn/image-cache/fedora-toolbox-40
# time="2024-02-19T11:41:43Z" level=fatal msg="copying system image
from manifest list: writing blob: write
/tmp/bats-run-IPz4Cn/image-cache/fedora-toolbox-40/dir-put-blob607392514:
no space left on device"
# bats warning: Executed 1 instead of expected 306 tests
So, change the default location of the BATS_TMPDIR environment variable
to /var/tmp by setting TMPDIR.
[1] Toolbx commit 50683c9d9a78adc9
50683c9d9ahttps://github.com/containers/toolbox/pull/375
[2] https://bats-core.readthedocs.io/en/stable/writing-tests.html
[3] https://systemd.io/TEMPORARY_DIRECTORIES/https://src.fedoraproject.org/rpms/toolbox/pull-request/20
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The test.environment variable was removed from the variables defined in
tests.yml in commit 1b207227f3, but it's still used, which causes
Ansible to break:
The task includes an option with an undefined variable. The error was:
'dict object' has no attribute 'environment'. 'dict object' has no
attribute 'environment'
https://src.fedoraproject.org/rpms/toolbox/pull-request/19