Compare commits

..

15 commits

Author SHA1 Message Date
Debarshi Ray
bd9d775656 Unbreak Podman's downstream Fedora CI (part 2)
... and backport some new upstream tests.

https://bugzilla.redhat.com/show_bug.cgi?id=2263968
2024-02-27 19:52:47 +01:00
Debarshi Ray
ce1386fb6a Unbreak Podman's downstream Fedora CI
https://bugzilla.redhat.com/show_bug.cgi?id=2263968
2024-02-13 23:09:35 +01:00
Debarshi Ray
0446d7052e Update to 0.0.99.5
Start using Toolbx as the name of the project, instead of Toolbox.

https://src.fedoraproject.org/rpms/toolbox/pull-request/17
2024-01-12 19:39:01 +01:00
Debarshi Ray
d33e1d938b tests: Remove trailing whitespace
https://src.fedoraproject.org/rpms/toolbox/pull-request/17
2024-01-12 19:38:56 +01:00
Debarshi Ray
ffcb738dfa tests: Remove redundant environment variable
There's no need to explicitly set the PODMAN environment variable to its
default value of /usr/bin/podman.

https://src.fedoraproject.org/rpms/toolbox/pull-request/17
2024-01-12 19:38:53 +01:00
Debarshi Ray
1460581a23 Require openssl(1) for the system tests in the tests subpackage
https://src.fedoraproject.org/rpms/toolbox/pull-request/17
2024-01-12 19:38:50 +01:00
Adam Williamson
540420181b tests subpackage: require httpd-tools for htpasswd
https://src.fedoraproject.org/rpms/toolbox/pull-request/17
2024-01-12 19:38:41 +01:00
Debarshi Ray
ee8ec7a10f Drop the custom /etc/containers/toolbox.conf from RHEL 10 onwards
Complete support for RHEL Toolbx images based on the Red Hat Universal
Base Images (or UBI) was only recently added to Toolbx [1], in version
0.0.99.4.  Before that, Toolbx would only pick the image for RHEL 8,
and even before that, it would pick the base 'ubi8' image, which isn't
designed for interactive command line use.

Due to this, RHEL >= 8.5 shipped a custom configuration file
in /etc/containers/toolbox.conf to specify the image.

However, that's not necessary anymore.  RHEL 10 is going to be a fresh
new operating system, and it will be better if we don't ship any custom
configuration that's not needed, because it will ensure consistency with
non-RHEL operating systems, including Fedora.

There's no need to do a build just for this.

[1] Upstream commit 0a29b374e649437
    0a29b374e6
    https://github.com/containers/toolbox/issues/1065
2023-12-05 17:02:24 +01:00
Debarshi Ray
e30100fd71 Fix the conditionals for 'if RHEL <= 9'
'%if 0%{?rhel} <= 9' is the wrong way to express 'if RHEL <= 9'.  On
Fedora, %rhel won't be defined.  So, %{?rhel} will expand to nothing,
and leave only a 0 on the left hand side, making the condition TRUE on
Fedora.

Note, that conditions like '%if 0%{?rhel}', and other relational
operators like ==, > and >= work as expected.  The problem is only with
< and <=.

There's no need to do a build just for this, because this regression
didn't make it into any previous build.

Fallout from 864fea28d5
2023-12-05 16:43:23 +01:00
Debarshi Ray
864fea28d5 Clarify that %golang_arches_future are meant for RHEL 10
Since the RHEL conditional was only targeting RHEL 9, it wasn't clear
whether it needed updating for RHEL 10.  So, it's better to say that
%golang_arches are for RHEL 9 and older, and %golang_arches_future are
for Fedora and RHEL 10 onwards.

This doesn't change any behaviour of the built artifacts, because the
build is only shared with RHEL 9 onwards.  Hence, a conditional checking
for RHEL 9 is the same as one checking for RHEL 9 and older.

There's no need to do a build just for this.
2023-11-10 16:25:53 +01:00
Debarshi Ray
219b17881c Silence 'rpminspect --tests=runpath' on i686 2023-11-10 16:05:08 +01:00
Debarshi Ray
5ae6f8c470 Silence 'rpminspect --tests=annocheck' and 'rpminspect --tests=runpath'
The DT_RPATH or DT_RUNPATH value of /run/host%{_libdir} that's present
in %{_bindir}/toolbox is intentional [1].

[1] Upstream commit 6063eb27b9893994
    6063eb27b9
    https://github.com/containers/toolbox/issues/821
2023-11-09 12:35:27 +01:00
Debarshi Ray
0243af25ba Drop github.com/coreos/toolbox compatibility from RHEL 10 onwards
Some limited compatibility with github.com/coreos/toolbox was added to
RHEL 8.5 when the implementation of the toolbox RPM was changed from
github.com/coreos/toolbox to github.com/containers/toolbox.  This was
carried forward to RHEL 9 to give everybody some extra time to adjust.

This compatibility involved setting the HOST environment variable inside
the Toolbx containers for 'sos report' to work, and replicating the
command line interface from github.com/coreos/toolbox.

The problem with setting the HOST environment variable in Toolbx
containers is that it's a very generic name without any namespacing.
Not every user is going to use 'sos report', and it can easily conflict
with a variable of the same name being used for a different purpose.
This is similar to the NAME and VERSION environment variables that used
to be set inside Toolbx containers due to outdated or wrong information
in Fedora's container guidelines [1].  They were a constant source of
complaints and were recently fixed [2].  The same logic applies to HOST.

Instead of expecting the Toolbx container to have the HOST environment
variable, sos(1) should be taught how to work inside a Toolbx container
without requiring any extra configuration [3].

The problem with replicating the command line interface from
github.com/coreos/toolbox is that it's difficult to document it, because
it's so different from the native interface that users on non-RHEL
operating systems, including Fedora, have come to expect.  So, it's an
undocumented easter egg that receives very limited, if any, testing.

RHEL 8.5 was released on the 9th of November in 2021, which was almost
two years ago.  RHEL 10 is going to be a fresh new operating system.
It's time to ship a version of sos(1) in RHEL that works without any
extra configuration inside Toolbx containers, and to inform RHEL users
to adapt to the native command line interface.

[1] https://docs.fedoraproject.org/en-US/containers/guidelines/creation/

[2] Upstream commit 9506173f88dc26bf
    9506173f88
    https://github.com/containers/toolbox/issues/188

[3] https://github.com/sosreport/sos/pull/3370
2023-10-24 00:05:57 +02:00
Debarshi Ray
02e331098f Add two upstream patches that are already in CentOS Stream 9 2023-10-24 00:04:25 +02:00
Debarshi Ray
08fdf875ae Unify the build with RHEL
This pulls in an extra patch [1] that's necessary to fix the build on
only CentOS Stream 9, not Fedora.  While not needed, it also doesn't
hurt Fedora and has the added benefit of keeping the build unified with
RHEL.

There's no need to do a build just for this.

[1] Upstream commit f555029304415a06
    f555029304
    https://github.com/containers/toolbox/issues/1246
2023-10-24 00:02:51 +02:00
25 changed files with 1671 additions and 429 deletions

View file

@ -1 +0,0 @@
1

6
.gitignore vendored
View file

@ -31,9 +31,3 @@
/toolbox-0.0.99.3-vendor.tar.xz
/toolbox-0.0.99.4-vendored.tar.xz
/toolbox-0.0.99.5-vendored.tar.xz
/toolbox-0.0.99.6-vendored.tar.xz
/toolbox-0.1.0-vendored.tar.xz
/toolbox-0.1.1-vendored.tar.xz
/toolbox-0.1.2-vendored.tar.xz
/toolbox-0.2-vendored.tar.xz
/toolbox-0.3-vendored.tar.xz

View file

@ -1,4 +0,0 @@
discover:
how: fmf
execute:
how: tmt

View file

@ -4,11 +4,7 @@
---
annocheck:
extra_opts:
hardened: --skip-run-path --skip-stack-prot
elf:
exclude_path: /usr/bin/toolbox
- hardened: --ignore-unknown --verbose --skip-run-path
runpath:
allowed_paths:

View file

@ -1 +1 @@
SHA512 (toolbox-0.3-vendored.tar.xz) = e464aba1c40b37b0ed027a560a0685e5dc8f07684d33d0e2bac5f0ba8c2b2c2a4c585db8847b23bd0753e33d37e3e88c87ab71d3999c3afedf315717f468c0ba
SHA512 (toolbox-0.0.99.5-vendored.tar.xz) = d82666e9abcbac2d01de440dfb8d57801bb97ec0854a9859c64689c47c6a1344b846fb151ffa9371d0a9a2c85c8f61c96cf8f546449ec63c9a44d85ef328b745

View file

@ -1,12 +0,0 @@
environment:
ROOTLESS_USER: "fedora"
TMPDIR: /var/tmp
require:
- toolbox-tests
/rootless:
summary: rootless test
test: |
rpm --erase p11-kit-server
bash ./rootless-test.sh
duration: 4h

View file

@ -0,0 +1,7 @@
---
- name: create nonroot user
user:
name: testuser
shell: /bin/bash
- name: enable linger
command: loginctl enable-linger testuser

View file

@ -0,0 +1,72 @@
#!/bin/bash
#
# Run bats tests for a given $TEST_PACKAGE, e.g. buildah, podman
#
# This is invoked by the 'run_bats_tests' role; we assume that
# the package foo has a foo-tests subpackage which provides the
# directory /usr/share/foo/test/system, containing one or more .bats
# test files.
#
export PATH=/usr/local/bin:/usr/sbin:/usr/bin
FULL_LOG=/tmp/test.debug.log
BATS_LOG=/tmp/test.bats.log
rm -f $FULL_LOG $BATS_LOG
touch $FULL_LOG $BATS_LOG
exec &> $FULL_LOG
# Log program versions
echo "Packages:"
rpm -q ${TEST_PACKAGE} ${TEST_PACKAGE}-tests
echo "------------------------------"
printenv | sort
testdir=/usr/share/${TEST_PACKAGE}/test/system
if ! cd $testdir; then
echo "FAIL ${TEST_NAME} : cd $testdir" >> /tmp/test.log
exit 0
fi
if [ -e /tmp/helper.sh ]; then
echo "------------------------------"
echo ". /tmp/helper.sh"
. /tmp/helper.sh
fi
if [ "$(type -t setup)" = "function" ]; then
echo "------------------------------"
echo "\$ setup"
setup
if [ $? -ne 0 ]; then
echo "FAIL ${TEST_NAME} : setup" >> /tmp/test.log
exit 0
fi
fi
echo "------------------------------"
echo "\$ bats ."
bats . &> $BATS_LOG
rc=$?
echo "------------------------------"
echo "bats completed with status $rc"
status=PASS
if [ $rc -ne 0 ]; then
status=FAIL
fi
echo "${status} ${TEST_NAME}" >> /tmp/test.log
if [ "$(type -t teardown)" = "function" ]; then
echo "------------------------------"
echo "\$ teardown"
teardown
fi
# FIXME: for CI purposes, always exit 0. This allows subsequent tests.
exit 0

View file

@ -0,0 +1,37 @@
---
# Create empty results file, world-writable
- name: initialize test.log file
copy: dest=/tmp/test.log content='' force=yes mode=0666
- name: execute tests
include: run_one_test.yml
with_items: "{{ tests }}"
loop_control:
loop_var: test
- name: pull test.log results
fetch:
src: "/tmp/test.log"
dest: "{{ artifacts }}/test.log"
flat: yes
# Copied from standard-test-basic
- name: check results
shell: grep "^FAIL" /tmp/test.log
register: test_fails
# Never fail at this step. Just store result of tests.
failed_when: False
- name: preserve results
set_fact:
role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}"
role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}"
- name: display results
vars:
msg: |
Tests failed: {{ role_result_failed|d('Undefined') }}
Tests msg: {{ role_result_msg|d('None') }}
debug:
msg: "{{ msg.split('\n') }}"
failed_when: "role_result_failed|bool"

View file

@ -0,0 +1,52 @@
---
- name: "{{ test.name }} | install test packages"
dnf: name="{{ test.package }}-tests" state=installed
- name: "{{ test.name }} | define helper variables"
set_fact:
test_name_oneword: "{{ test.name | replace(' ','-') }}"
# UGH. This is necessary because our caller sets some environment variables
# and we need to set a few more based on other caller variables; then we
# need to combine the two dicts when running the test. This seems to be
# the only way to do it in ansible.
- name: "{{ test.name }} | define local environment"
set_fact:
local_environment:
TEST_NAME: "{{ test.name }}"
TEST_PACKAGE: "{{ test.package }}"
TEST_ENV: "{{ test.environment }}"
- name: "{{ test.name }} | setup/teardown helper | see if exists"
local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh
register: helper
- name: "{{ test.name }} | setup/teardown helper | install"
copy: src=helper.{{ test_name_oneword }}.sh dest=/tmp/helper.sh
when: helper.stat.exists
- name: "{{ test.name }} | run test"
script: ./run_bats_tests.sh
args:
chdir: /usr/share/{{ test.package }}/test/system
become: "{{ true if test.become is defined else false }}"
become_user: testuser
environment: "{{ local_environment | combine(test.environment) }}"
- name: "{{ test.name }} | pull logs"
fetch:
src: "/tmp/test.{{ item }}.log"
dest: "{{ artifacts }}/test.{{ test_name_oneword }}.{{ item }}.log"
flat: yes
with_items:
- bats
- debug
- name: "{{ test.name }} | remove remote logs and helpers"
file:
dest=/tmp/{{ item }}
state=absent
with_items:
- test.bats.log
- test.debug.log
- helper.sh

View file

@ -1,11 +0,0 @@
#!/usr/bin/env bash
set -exo pipefail
uname -r
loginctl enable-linger "$ROOTLESS_USER"
rpm -q containers-common-extra podman toolbox
su --whitelist-environment=$(cat ./tmt-envvars | tr '\n' ',') - "$ROOTLESS_USER" -c "whoami && cd /usr/share/toolbox/test/system && bats ."

12
tests/tests.yml Normal file
View file

@ -0,0 +1,12 @@
---
- hosts: localhost
tags: classic
vars:
- artifacts: ./artifacts
roles:
- role: nonroot_user
- role: run_bats_tests
tests:
- name: toolbox
package: toolbox
become: true

View file

@ -1 +0,0 @@
TMPDIR

View file

@ -1,4 +1,4 @@
From 4649e50c28321185cbaa81a37efbd317b84ae840 Mon Sep 17 00:00:00 2001
From d461caa5b1a278124d039df93140d2d5bf4eabe7 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Wed, 18 Aug 2021 17:55:21 +0200
Subject: [PATCH 1/2] cmd/run: Make sosreport work by setting the HOST
@ -10,10 +10,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1940037
1 file changed, 1 insertion(+)
diff --git a/src/cmd/run.go b/src/cmd/run.go
index ceb277a3640a..72b673f506b3 100644
index 7657ffa50821..23d422623b14 100644
--- a/src/cmd/run.go
+++ b/src/cmd/run.go
@@ -576,6 +576,7 @@ func constructExecArgs(container, preserveFDs string,
@@ -501,6 +501,7 @@ func constructExecArgs(container, preserveFDs string,
execArgs = append(execArgs, envOptions...)
execArgs = append(execArgs, []string{
@ -22,10 +22,10 @@ index ceb277a3640a..72b673f506b3 100644
"--preserve-fds", preserveFDs,
}...)
--
2.51.0
2.39.2
From b2ba8445bee988143d546bc15fa3a8a8c019aa2e Mon Sep 17 00:00:00 2001
From 3c2c67752e8f88f72058799cbce3612fc937b230 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Fri, 10 Dec 2021 13:42:15 +0100
Subject: [PATCH 2/2] test/system: Update to test the migration path for
@ -36,39 +36,36 @@ This reverts the changes to the tests made in commit
ca899c8a561f357ae32c6ba6813520fd8b682abb and the parts of commit
3aeb7cf288319e35eb9c5e26ea18d97452462c1e that were removed.
---
test/system/002-help.bats | 14 --------------
test/system/002-help.bats | 11 -----------
test/system/100-root.bats | 27 +++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 14 deletions(-)
2 files changed, 27 insertions(+), 11 deletions(-)
create mode 100644 test/system/100-root.bats
diff --git a/test/system/002-help.bats b/test/system/002-help.bats
index f7cd3f5480ab..7ad5f72e792f 100644
index 7e4565e9d23d..58a4c2c87ece 100644
--- a/test/system/002-help.bats
+++ b/test/system/002-help.bats
@@ -33,20 +33,6 @@ teardown_file() {
cleanup_all
@@ -23,17 +23,6 @@ setup() {
_setup_environment
}
-@test "help: Smoke test" {
- run --keep-empty-lines --separate-stderr "$TOOLBX"
-@test "help: Try to run toolbox with no command" {
- run $TOOLBOX
-
- assert_failure
- assert [ ${#lines[@]} -eq 0 ]
- lines=("${stderr_lines[@]}")
- assert_line --index 0 "Error: missing command"
- assert_line --index 2 "create Create a new Toolbx container"
- assert_line --index 3 "enter Enter an existing Toolbx container"
- assert_line --index 4 "list List all existing Toolbx containers and images"
- assert_line --index 6 "Run 'toolbox --help' for usage."
- assert [ ${#stderr_lines[@]} -eq 7 ]
- assert_line --index 1 "create Create a new toolbox container"
- assert_line --index 2 "enter Enter an existing toolbox container"
- assert_line --index 3 "list List all existing toolbox containers and images"
- assert_line --index 4 "Run 'toolbox --help' for usage."
-}
-
@test "help: Command 'help'" {
@test "help: Run command 'help'" {
if ! command -v man 2>/dev/null; then
skip "not found man(1)"
skip "Test works only if man is in PATH"
diff --git a/test/system/100-root.bats b/test/system/100-root.bats
new file mode 100644
index 000000000000..cf35d60ac25c
index 000000000000..32d87904213e
--- /dev/null
+++ b/test/system/100-root.bats
@@ -0,0 +1,27 @@
@ -80,15 +77,15 @@ index 000000000000..cf35d60ac25c
+
+setup() {
+ _setup_environment
+ cleanup_all
+ cleanup_containers
+}
+
+teardown() {
+ cleanup_all
+ cleanup_containers
+}
+
+@test "root: Try to enter the default container with no containers created" {
+ run "$TOOLBX" <<< "n"
+ run $TOOLBOX <<< "n"
+
+ assert_success
+ assert_line --index 0 "No toolbox containers found. Create now? [y/N] A container can be created later with the 'create' command."
@ -100,5 +97,5 @@ index 000000000000..cf35d60ac25c
+ skip "Testing of entering toolboxes is not implemented"
+}
--
2.51.0
2.39.2

View file

@ -0,0 +1,54 @@
From 4f8b443ab925c84d059d894ddcfcf4dcf66a747e Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match Fedora's %{gobuildflags}
for PPC64
The Go toolchain also doesn't like the LDFLAGS environment variable as
exported by Fedora's %{meson} RPM macro.
Note that these flags are only meant for the "ppc64" CPU architecture,
and should be kept updated to match Fedora's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
---
src/go-build-wrapper | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index c572d6dfb02b..cae2de426a96 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-}"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -70,11 +70,16 @@ fi
dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
+unset LDFLAGS
+
# shellcheck disable=SC2086
go build \
+ -compiler gc \
$tags \
- -trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.43.0

View file

@ -0,0 +1,54 @@
From 3175ef2fab1f61f5784361070ac338dabda3c04e Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match Fedora's %{gobuildflags}
The Go toolchain doesn't like the LDFLAGS environment variable as
exported by Fedora's %{meson} RPM macro.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match Fedora's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
---
src/go-build-wrapper | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index c572d6dfb02b..0e6a2efa6853 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-}"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -70,11 +70,17 @@ fi
dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
+unset LDFLAGS
+
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
- -trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.43.0

View file

@ -1,62 +0,0 @@
From a1bb7d53fab70899c991feb9276cf93a12280750 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match Fedora's %{gobuildflags}
These reflect the defaults for Fedora 39, which is the oldest supported
Fedora, barring some exceptions mentioned below.
The change to use the RPM's %{name}, %{version}, %{release} and the
SOURCE_DATE_EPOCH environment variable [1], instead of /dev/urandom, to
generate the build ID annotation for the toolbox(1) binary [2] was left
out. It will need more work to propagate the RPM's %{name}, %{version}
and %{release} to Meson.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match Fedora's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
[1] https://reproducible-builds.org/docs/source-date-epoch/
[2] go-rpm-macros commit 1980932bf3a21890
https://pagure.io/go-rpm-macros/c/1980932bf3a21890
https://fedoraproject.org/wiki/Changes/ReproduciblePackageBuilds
---
src/go-build-wrapper | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index a5a1a6a508fb..5978422e9aed 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${GO_BUILDTAGS:-}"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -114,9 +114,14 @@ dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basen
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
-trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.51.0

View file

@ -1,71 +0,0 @@
From f79f96fb8f3ec528952b9719f356e871837987df Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match RHEL 10's %{gobuildflags}
These reflect the defaults for RHEL 10.0 Beta, because RHEL 10.0 is
still early in its development cycle and the defaults may be in a state
of flux. Some exceptions are mentioned below.
The '-z pack-relative-relocs' linker flag was left out. It's currently
not supported on s390x, so using it would require architecture specific
patches, which is a hassle. Support for aarch64 was recently added [1],
so hopefully s390x will also be supported soon.
The change to use the RPM's %{name}, %{version}, %{release} and the
SOURCE_DATE_EPOCH environment variable [2], instead of /dev/urandom, to
generate the build ID annotation for the toolbox(1) binary [2] was left
out. It will need more work to propagate the RPM's %{name}, %{version}
and %{release} to Meson.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match RHEL 10's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
[1] CentOS Stream redhat-rpm-config commit 3c5a6b17540b2a0b
https://gitlab.com/redhat/centos-stream/rpms/redhat-rpm-config/-/commit/3c5a6b17540b2a0b
https://gitlab.com/redhat/centos-stream/rpms/redhat-rpm-config/-/merge_requests/42
https://issues.redhat.com/browse/RHEL-40379
[2] go-rpm-macros commit 1980932bf3a21890
https://pagure.io/go-rpm-macros/c/1980932bf3a21890
https://fedoraproject.org/wiki/Changes/ReproduciblePackageBuilds
---
src/go-build-wrapper | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index a5a1a6a508fb..5978422e9aed 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${GO_BUILDTAGS:-}"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -114,9 +114,14 @@ dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basen
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
-trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.51.0

View file

@ -1,50 +0,0 @@
From 2d1b4b2492c65abd0d0bf0c71c971f550447412d Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match RHEL 9's %{gobuildflags}
These reflect the defaults for RHEL 9.5, because RHEL 9.6 is still early
in its development cycle and the defaults may be in a state of flux.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match RHEL 9's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
---
src/go-build-wrapper | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index a5a1a6a508fb..0a2c7526f210 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${GO_BUILDTAGS:-},libtrust_openssl"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -114,9 +114,14 @@ dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basen
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
-trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${GO_LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname -Wl,--export-dynamic -Wl,--unresolved-symbols=ignore-in-object-files' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.51.0

View file

@ -0,0 +1,55 @@
From 973600219168f3c4efeb627c103085555327eaa5 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match RHEL's %{gobuildflags} for
PPC64
The Go toolchain also doesn't like the LDFLAGS environment variable as
exported by RHEL's %{meson} RPM macro, and RHEL's RPM toolchain doesn't
like the compressed DWARF data generated by the Go toolchain.
Note that these flags are only meant for the "ppc64" CPU architecture,
and should be kept updated to match RHEL's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
---
src/go-build-wrapper | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index c572d6dfb02b..86f174716608 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-},libtrust_openssl"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -70,11 +70,16 @@ fi
dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
+unset LDFLAGS
+
# shellcheck disable=SC2086
go build \
+ -compiler gc \
$tags \
- -trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.39.2

View file

@ -0,0 +1,55 @@
From aeaa8cd30a8c5ad33ee1fe6b9e84ecbb28f7264c Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
Subject: [PATCH] build: Make the build flags match RHEL's %{gobuildflags}
The Go toolchain doesn't like the LDFLAGS environment variable as
exported by RHEL's %{meson} RPM macro, and RHEL's RPM toolchain doesn't
like the compressed DWARF data generated by the Go toolchain.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match RHEL's Go guidelines. Use
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
---
src/go-build-wrapper | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
index c572d6dfb02b..d39764fda0c1 100755
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
@@ -33,9 +33,9 @@ if ! cd "$1"; then
exit 1
fi
-tags=""
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-},libtrust_openssl"
if $7; then
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -70,11 +70,17 @@ fi
dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
+unset LDFLAGS
+
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
- -trimpath \
- -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
+ -a \
+ -v \
+ -x \
-o "$2/$3"
exit "$?"
--
2.39.2

View file

@ -0,0 +1,208 @@
From a859f73d075ec0505994d8ce0f371ec28e466983 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Tue, 13 Feb 2024 21:56:06 +0100
Subject: [PATCH 1/2] test/system: Unbreak Podman's downstream Fedora CI
The paths to bats-assert and bats-support are broken, if bats(1) is
invoked from any other location than the parent directory of the 'tests'
directory. eg., Podman's downstream Fedora CI invokes the tests as:
$ cd /path/to/toolbox/test/system
$ bats .
... and it led to [1]:
1..306
# test suite: Set up
# Missing dependencies
# Forgot to run 'git submodule init' and 'git submodule update' ?
# test suite: Tear down
not ok 1 setup_suite
# (from function `setup_suite' in test file ./setup_suite.bash, line 33)
# `return 1' failed
# bats warning: Executed 1 instead of expected 306 tests
Fallout from 2c0960660330dc6be6861502988695f9812c475a
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2263968
https://github.com/containers/toolbox/pull/1448
---
test/system/setup_suite.bash | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/system/setup_suite.bash b/test/system/setup_suite.bash
index e4edf232bcd8..01985b7f9afc 100644
--- a/test/system/setup_suite.bash
+++ b/test/system/setup_suite.bash
@@ -17,7 +17,7 @@
missing_dependencies=false
-if [ -f test/system/libs/bats-assert/load.bash ] && [ -f test/system/libs/bats-support/load.bash ]; then
+if [ -f "$BATS_TEST_DIRNAME/libs/bats-assert/load.bash" ] && [ -f "$BATS_TEST_DIRNAME/libs/bats-support/load.bash" ]; then
load 'libs/helpers'
else
missing_dependencies=true
--
2.43.0
From a183876eae2bb4ffd84bca4303fc28be6725ebc2 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Fri, 23 Feb 2024 10:38:16 +0100
Subject: [PATCH 2/2] test/system: Unbreak Podman's downstream Fedora CI (part
2)
The working directory from which bats(1) is invoked might not be part of
the Toolbx container. eg., Podman's downstream Fedora CI invokes the
tests as:
$ cd /path/to/toolbox/test/system
$ bats .
... and it led to [1]:
not ok 110 run: Smoke test with true(1)
# (from function `assert_output' in file
./libs/bats-assert/src/assert.bash, line 255,
# in test file ./104-run.bats, line 38)
# `assert_output ""' failed
#
# -- output differs --
# expected (0 lines):
#
# actual (3 lines):
# Error: crun: chdir to `/usr/share/toolbox/test/system`: No such
file or directory: OCI runtime attempted to invoke a command that
was not found
# Error: directory /usr/share/toolbox/test/system not found in
container fedora-toolbox-41
# Using /home/testuser instead.
# --
#
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2263968
https://github.com/containers/toolbox/pull/1457
---
test/system/104-run.bats | 2 ++
test/system/201-ipc.bats | 2 ++
test/system/203-network.bats | 2 ++
test/system/206-user.bats | 2 ++
test/system/210-ulimit.bats | 2 ++
test/system/211-dbus.bats | 2 ++
test/system/220-environment-variables.bats | 2 ++
7 files changed, 14 insertions(+)
diff --git a/test/system/104-run.bats b/test/system/104-run.bats
index ff11a8477062..a0cb89fdeeca 100644
--- a/test/system/104-run.bats
+++ b/test/system/104-run.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/201-ipc.bats b/test/system/201-ipc.bats
index 15c791dec86d..09200b41d06c 100644
--- a/test/system/201-ipc.bats
+++ b/test/system/201-ipc.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/203-network.bats b/test/system/203-network.bats
index db1ba561f314..012374e3317f 100644
--- a/test/system/203-network.bats
+++ b/test/system/203-network.bats
@@ -35,9 +35,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index 2df7862f259e..473a6b40905a 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/210-ulimit.bats b/test/system/210-ulimit.bats
index ea0c46685df1..ea08feea1513 100644
--- a/test/system/210-ulimit.bats
+++ b/test/system/210-ulimit.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/211-dbus.bats b/test/system/211-dbus.bats
index 295bb71b2789..61c543a56005 100644
--- a/test/system/211-dbus.bats
+++ b/test/system/211-dbus.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index 5b51d17dee55..c24e07d146ee 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -23,9 +23,11 @@ setup() {
bats_require_minimum_version 1.7.0
_setup_environment
cleanup_containers
+ pushd "$HOME" || return 1
}
teardown() {
+ popd || return 1
cleanup_containers
}
--
2.43.0

View file

@ -0,0 +1,894 @@
From f51c4a4cd8ff1c51a68073a10eaddab8f16fdaf6 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 8 Feb 2024 22:18:33 +0100
Subject: [PATCH 1/4] test/system: Ensure that the user is part of a group with
the same name
https://github.com/containers/toolbox/pull/1447
---
test/system/206-user.bats | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index c295d8a61f39..cdd38c146024 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -434,6 +434,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^(sudo|wheel):x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -447,6 +448,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -460,6 +462,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -473,6 +476,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^wheel:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -486,6 +490,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -499,6 +504,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
@@ -512,6 +518,7 @@ teardown() {
run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 cat /etc/group
assert_success
+ assert_line --regexp "^$USER:x:[[:digit:]]+:$USER$"
assert_line --regexp "^sudo:x:[[:digit:]]+:$USER$"
assert [ ${#lines[@]} -gt 1 ]
--
2.43.0
From b2d64fad1a23a07919efdb70de9247645e44f973 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 8 Feb 2024 22:51:43 +0100
Subject: [PATCH 2/4] test/system: Ensure that process started by 'podman exec'
has all groups
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Commit 15173f8c25c81244 exposed a bug in crun(1) [1] where the process
started directly by 'podman exec --user ...' inside the Toolbx container
would not have the supplementary groups attached to the user by the
entry point.
This could be observed by differences in id(1):
⬢$ id
uid=1000(user) gid=1000(user) groups=1000(user)
⬢$ id user
uid=1000(user) gid=1000(user) groups=1000(user),10(wheel)
... and could be worked around by starting a new session with sudo(8).
[1] crun commit 9effaebb429a1aed
https://github.com/containers/crun/commit/9effaebb429a1aed
https://github.com/containers/crun/issues/644
https://github.com/containers/podman/issues/9986
https://github.com/containers/toolbox/issues/608
---
test/system/206-user.bats | 231 ++++++++++++++++++++++++++++++++++++++
1 file changed, 231 insertions(+)
diff --git a/test/system/206-user.bats b/test/system/206-user.bats
index cdd38c146024..2df7862f259e 100644
--- a/test/system/206-user.bats
+++ b/test/system/206-user.bats
@@ -525,3 +525,234 @@ teardown() {
# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}
+
+@test "user: id(1) for $USER inside the default container" {
+ create_default_container
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside RHEL 8.7" {
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "user: id(1) for $USER inside Ubuntu 20.04" {
+ create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 id
+
+ assert_success
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ local output_id="${lines[0]}"
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 id "$USER"
+
+ assert_success
+ assert_line --index 0 "$output_id"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ # shellcheck disable=SC2154
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
--
2.43.0
From da2555d04f9ff677b3f2033ff36390f75c3a509d Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 18 Jan 2024 19:53:02 +0100
Subject: [PATCH 3/4] test/system: Group by higher-level objective, not
distribution
Fallout from 51ffd2793d882ffab45ace44c03edfdaeb3f138c
https://github.com/containers/toolbox/pull/1436
---
test/system/220-environment-variables.bats | 152 ++++++++++-----------
1 file changed, 76 insertions(+), 76 deletions(-)
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index 0e1356654468..dd74b1dc5142 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -1,6 +1,6 @@
# shellcheck shell=bats
#
-# Copyright © 2023 Red Hat, Inc.
+# Copyright © 2023 2024 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -57,25 +57,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside the default container" {
- skip "https://pagure.io/setup/pull-request/48"
-
- create_default_container
+@test "environment variables: HISTFILESIZE inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
- if [ "$HISTSIZE" = "" ]; then
+ # shellcheck disable=SC2031
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -87,8 +86,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Arch Linux" {
- create_distro_container arch latest arch-toolbox-latest
+@test "environment variables: HISTFILESIZE inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
@@ -101,7 +100,7 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -116,24 +115,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Arch Linux" {
- create_distro_container arch latest arch-toolbox-latest
+@test "environment variables: HISTFILESIZE inside RHEL 8.7" {
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
# shellcheck disable=SC2031
- if [ "$HISTSIZE" = "" ]; then
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -145,8 +144,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Fedora 34" {
- create_distro_container fedora 34 fedora-toolbox-34
+@test "environment variables: HISTFILESIZE inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
@@ -159,7 +158,8 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -174,26 +174,25 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Fedora 34" {
- skip "https://pagure.io/setup/pull-request/48"
-
- create_distro_container fedora 34 fedora-toolbox-34
+@test "environment variables: HISTFILESIZE inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
# shellcheck disable=SC2031
- if [ "$HISTSIZE" = "" ]; then
+ if [ "$HISTFILESIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTSIZE=1001
+ HISTFILESIZE=1001
else
- ((HISTSIZE++))
+ ((HISTFILESIZE++))
fi
- export HISTSIZE
+ export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
- assert_line --index 0 "$HISTSIZE"
+ assert_line --index 0 "$HISTFILESIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -205,12 +204,11 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside RHEL 8.7" {
- create_distro_container rhel 8.7 rhel-toolbox-8.7
+@test "environment variables: HISTFILESIZE inside Ubuntu 20.04" {
+ create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
# shellcheck disable=SC2031
if [ "$HISTFILESIZE" = "" ]; then
- # shellcheck disable=SC2030
HISTFILESIZE=1001
else
((HISTFILESIZE++))
@@ -219,7 +217,8 @@ teardown() {
export HISTFILESIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 \
+ bash -c 'echo "$HISTFILESIZE"'
assert_success
assert_line --index 0 "$HISTFILESIZE"
@@ -234,12 +233,11 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside RHEL 8.7" {
+@test "environment variables: HISTSIZE inside the default container" {
skip "https://pagure.io/setup/pull-request/48"
- create_distro_container rhel 8.7 rhel-toolbox-8.7
+ create_default_container
- # shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
HISTSIZE=1001
@@ -250,7 +248,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -265,25 +263,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 16.04" {
- create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+@test "environment variables: HISTSIZE inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
+ if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTFILESIZE=1001
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -295,8 +292,10 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Ubuntu 16.04" {
- create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+@test "environment variables: HISTSIZE inside Fedora 34" {
+ skip "https://pagure.io/setup/pull-request/48"
+
+ create_distro_container fedora 34 fedora-toolbox-34
# shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
@@ -309,7 +308,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -324,25 +323,26 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 18.04" {
- create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+@test "environment variables: HISTSIZE inside RHEL 8.7" {
+ skip "https://pagure.io/setup/pull-request/48"
+
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
+ if [ "$HISTSIZE" = "" ]; then
# shellcheck disable=SC2030
- HISTFILESIZE=1001
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
@@ -354,8 +354,8 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTSIZE inside Ubuntu 18.04" {
- create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+@test "environment variables: HISTSIZE inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
# shellcheck disable=SC2031
if [ "$HISTSIZE" = "" ]; then
@@ -368,7 +368,7 @@ teardown() {
export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HISTSIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HISTSIZE"'
assert_success
assert_line --index 0 "$HISTSIZE"
@@ -383,24 +383,24 @@ teardown() {
assert [ ${#stderr_lines[@]} -eq 0 ]
}
-@test "environment variables: HISTFILESIZE inside Ubuntu 20.04" {
- create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
+@test "environment variables: HISTSIZE inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
# shellcheck disable=SC2031
- if [ "$HISTFILESIZE" = "" ]; then
- HISTFILESIZE=1001
+ if [ "$HISTSIZE" = "" ]; then
+ # shellcheck disable=SC2030
+ HISTSIZE=1001
else
- ((HISTFILESIZE++))
+ ((HISTSIZE++))
fi
- export HISTFILESIZE
+ export HISTSIZE
# shellcheck disable=SC2016
- run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 \
- bash -c 'echo "$HISTFILESIZE"'
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HISTSIZE"'
assert_success
- assert_line --index 0 "$HISTFILESIZE"
+ assert_line --index 0 "$HISTSIZE"
if check_bats_version 1.10.0; then
assert [ ${#lines[@]} -eq 1 ]
--
2.43.0
From ee2c92299d5488bab4e54cb04d9a120e0b9ed405 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Thu, 18 Jan 2024 20:17:50 +0100
Subject: [PATCH 4/4] test/system: Test that the HOSTNAME environment variable
is set
Bash automatically sets the HOSTNAME environment variable to the name of
the current host [1] as returned by gethostname(2), which is the same as
hostname(1).
However, on Fedora, from Fedora 33 onwards, /etc/profile sets the
HOSTNAME environment variable to 'hostnamectl --transient' [2], and,
from Fedora 35 onwards, it has a fallback to hostname(1) [3]. These two
approaches return different values when used inside a Toolbx container.
The former picks up the hostname of the host operating system, while the
fallback gets the name that was set when creating the container with
'podman create --hostname toolbox ...'.
Hence, the value of HOSTNAME inside a Toolbx container for Fedora
depends on whether the corresponding version of the fedora-toolbox image
contained hostnamectl(1) or not.
[1] https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
[2] setup commit eb9cc4dce89be24f
https://pagure.io/setup/c/eb9cc4dce89be24f
https://bugzilla.redhat.com/show_bug.cgi?id=1745245
[3] setup commit ddd74b5d971a734c
https://pagure.io/setup/c/ddd74b5d971a734c
https://pagure.io/setup/pull-request/28
https://bugzilla.redhat.com/show_bug.cgi?id=1938223
https://github.com/containers/toolbox/issues/558
---
test/system/220-environment-variables.bats | 126 +++++++++++++++++++++
1 file changed, 126 insertions(+)
diff --git a/test/system/220-environment-variables.bats b/test/system/220-environment-variables.bats
index dd74b1dc5142..5b51d17dee55 100644
--- a/test/system/220-environment-variables.bats
+++ b/test/system/220-environment-variables.bats
@@ -439,3 +439,129 @@ teardown() {
# shellcheck disable=SC2154
assert [ ${#stderr_lines[@]} -eq 0 ]
}
+
+@test "environment variables: HOSTNAME inside the default container" {
+ create_default_container
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 --regexp "^(toolbox|$HOSTNAME)$"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Arch Linux" {
+ create_distro_container arch latest arch-toolbox-latest
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro arch bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Fedora 34" {
+ create_distro_container fedora 34 fedora-toolbox-34
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro fedora --release 34 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "$HOSTNAME"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside RHEL 8.7" {
+ create_distro_container rhel 8.7 rhel-toolbox-8.7
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro rhel --release 8.7 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 16.04" {
+ create_distro_container ubuntu 16.04 ubuntu-toolbox-16.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 16.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 18.04" {
+ create_distro_container ubuntu 18.04 ubuntu-toolbox-18.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 18.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
+
+@test "environment variables: HOSTNAME inside Ubuntu 20.04" {
+ create_distro_container ubuntu 20.04 ubuntu-toolbox-20.04
+
+ # shellcheck disable=SC2016
+ run --keep-empty-lines --separate-stderr "$TOOLBOX" run --distro ubuntu --release 20.04 bash -c 'echo "$HOSTNAME"'
+
+ assert_success
+ assert_line --index 0 "toolbox"
+
+ if check_bats_version 1.10.0; then
+ assert [ ${#lines[@]} -eq 1 ]
+ else
+ assert [ ${#lines[@]} -eq 2 ]
+ fi
+
+ assert [ ${#stderr_lines[@]} -eq 0 ]
+}
--
2.43.0

View file

@ -1 +0,0 @@
addFilter(r'no-%check-section')

View file

@ -1,16 +1,7 @@
%global __brp_check_rpaths %{nil}
%if 0%{?rhel}
%if 0%{?rhel} <= 9
%{!?bash_completions_dir: %global bash_completions_dir %{_datadir}/bash-completion/completions}
%{!?fish_completions_dir: %global fish_completions_dir %{_datadir}/fish/vendor_completions.d}
%{!?zsh_completions_dir: %global zsh_completions_dir %{_datadir}/zsh/site-functions}
%endif
%endif
Name: toolbox
Version: 0.3
Version: 0.0.99.5
%global goipath github.com/containers/%{name}
@ -26,98 +17,168 @@ Version: 0.3
%endif
%endif
%global toolbx_go 1.22
%if 0%{?fedora}
%global toolbx_go 1.24.7
%endif
%if 0%{?rhel}
%if 0%{?rhel} == 9
%global toolbx_go 1.22.5
%elif 0%{?rhel} == 10
%global toolbx_go 1.22.5
%elif 0%{?rhel} > 10
%global toolbx_go 1.24.4
%endif
%endif
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Tool for interactive command line environments on Linux
License: Apache-2.0
License: ASL 2.0
URL: https://containertoolbx.org/
Source0: https://github.com/containers/%{name}/releases/download/%{version}/%{name}-%{version}-vendored.tar.xz
# RHEL specific
Source1: %{name}.conf
# Upstream
Patch0: toolbox-test-system-new.patch
Patch1: toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch
# Fedora specific
Patch100: toolbox-Make-the-build-flags-match-Fedora.patch
Patch100: toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch
Patch101: toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch
# RHEL specific
Patch200: toolbox-Make-the-build-flags-match-RHEL-9.patch
Patch201: toolbox-Make-the-build-flags-match-RHEL-10.patch
Patch200: toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch
Patch201: toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch
Patch202: toolbox-Add-migration-paths-for-coreos-toolbox-users.patch
BuildRequires: gcc
BuildRequires: go-md2man
BuildRequires: golang >= %{toolbx_go}
BuildRequires: golang >= 1.20
BuildRequires: meson >= 0.58.0
BuildRequires: pkgconfig(bash-completion)
BuildRequires: shadow-utils-subid-devel >= 4.16.0
BuildRequires: shadow-utils-subid-devel
BuildRequires: systemd
BuildRequires: systemd-rpm-macros
%if ! 0%{?rhel}
BuildRequires: golang(github.com/HarryMichal/go-version) >= 1.0.1
BuildRequires: golang(github.com/acobaugh/osrelease) >= 0.1.0
BuildRequires: golang(github.com/briandowns/spinner) >= 1.17.0
BuildRequires: golang(github.com/docker/go-units) >= 0.5.0
BuildRequires: golang(github.com/fsnotify/fsnotify) >= 1.5.1
BuildRequires: golang(github.com/godbus/dbus) >= 5.0.6
BuildRequires: golang(github.com/sirupsen/logrus) >= 1.8.1
BuildRequires: golang(github.com/spf13/cobra) >= 1.3.0
BuildRequires: golang(github.com/spf13/viper) >= 1.10.1
BuildRequires: golang(golang.org/x/sys/unix) >= 0.1.0
BuildRequires: golang(golang.org/x/text) >= 0.3.8
BuildRequires: golang(gopkg.in/yaml.v3) >= 3.0.0
BuildRequires: pkgconfig(fish)
# for tests
# BuildRequires: codespell
# BuildRequires: golang(github.com/stretchr/testify) >= 1.7.0
# BuildRequires: ShellCheck
%endif
Recommends: p11-kit-server
Recommends: skopeo
%if ! 0%{?rhel}
Recommends: fuse-overlayfs
%endif
Requires: containers-common
Requires: flatpak-session-helper
Requires: podman >= 1.6.4
Requires: shadow-utils-subid%{?_isa} >= 4.16.0
%if ! 0%{?rhel}
Requires: flatpak-session-helper
%endif
%description
Toolbx is a tool for Linux, which allows the use of interactive command line
environments for software development and troubleshooting the host operating
system, without having to install software on the host. It is built on top of
Podman and other standard container technologies from OCI.
environments for development and troubleshooting the host operating system,
without having to install software on the host. It is built on top of Podman
and other standard container technologies from OCI.
Toolbx environments have seamless access to the user's home directory, the
Wayland and X11 sockets, networking (including Avahi), removable devices (like
USB sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev
database, etc..
%if ! 0%{?rhel}
# The list of requires packages for -support and -experience should be in sync with:
# https://github.com/containers/toolbox/blob/master/images/fedora/f33/extra-packages
%package support
Summary: Required packages for the container image to support %{name}
# These are really required to make the image work with toolbox
Requires: passwd
Requires: shadow-utils
Requires: util-linux
Requires: vte-profile
%description support
The %{name}-support package contains all the required packages that are needed
to be installed in the OCI image to make it work with %{name}.
The %{name}-support package should be typically installed from the Dockerfile
if the image isn't based on the fedora-toolbox image.
%package experience
Summary: Set of packages to enhance the %{name} experience
Requires: %{name}-support = %{version}-%{release}
Requires: bash-completion
Requires: bc
Requires: bzip2
Requires: diffutils
Requires: dnf-plugins-core
Requires: findutils
Requires: flatpak-spawn
Requires: fpaste
Requires: git
Requires: gnupg
Requires: gnupg2-smime
Requires: gvfs-client
Requires: hostname
Requires: iproute
Requires: iputils
Requires: jwhois
Requires: keyutils
Requires: krb5-libs
Requires: less
Requires: lsof
Requires: man-db
Requires: man-pages
Requires: mtr
Requires: nano-default-editor
Requires: nss-mdns
Requires: openssh-clients
Requires: pigz
Requires: procps-ng
Requires: rsync
Requires: sudo
Requires: tcpdump
Requires: time
Requires: traceroute
Requires: tree
Requires: unzip
Requires: wget
Requires: which
Requires: words
Requires: xorg-x11-xauth
Requires: xz
Requires: zip
%description experience
The %{name}-experience package contains all the packages that should be
installed in the container to provide the same default experience as working
on the host.
The %{name}-experience package should be typically installed from the
Dockerfile if the image isn't based on the fedora-toolbox image.
%endif
%package tests
Summary: Tests for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: coreutils
Requires: diffutils
# for gdbus(1)
Requires: glib2
Requires: grep
# for htpasswd(1)
# for htpasswd
Requires: httpd-tools
Requires: openssl
Requires: python3
Requires: skopeo
%if ! 0%{?rhel}
Requires: bats >= 1.10.0
Requires: bats >= 1.7.0
%endif
%description tests
The %{name}-tests package contains system tests for %{name}.
@ -125,40 +186,47 @@ The %{name}-tests package contains system tests for %{name}.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%if 0%{?fedora}
%patch -P100 -p1
%ifnarch ppc64
%patch100 -p1
%else
%patch101 -p1
%endif
%endif
%if 0%{?rhel}
%if 0%{?rhel} == 9
%patch -P200 -p1
%endif
%if 0%{?rhel} >= 10
%patch -P201 -p1
%ifnarch ppc64
%patch200 -p1
%else
%patch201 -p1
%endif
%if 0%{?rhel} <= 9
%patch -P202 -p1
%patch202 -p1
%endif
%endif
%gomkdir -s %{_builddir}/%{extractdir}/src -k
%gomkdir -s %{_builddir}/%{extractdir}/src %{?rhel:-k}
%build
export %{gomodulesmode}
export GOPATH=%{gobuilddir}:%{gopath}
export CGO_CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
%meson \
%if 0%{?rhel}
-Dfish_completions_dir=%{fish_completions_dir} \
-Dfish_completions_dir=%{_datadir}/fish/vendor_completions.d \
%if 0%{?rhel} <= 9
-Dmigration_path_for_coreos_toolbox=true \
%endif
%endif
-Dprofile_dir=%{_sysconfdir}/profile.d \
-Dtmpfiles_dir=%{_tmpfilesdir} \
-Dzsh_completions_dir=%{zsh_completions_dir}
-Dzsh_completions_dir=%{_datadir}/zsh/site-functions
%meson_build
@ -178,155 +246,55 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf
%files
%doc CODE-OF-CONDUCT.md CONTRIBUTING.md GOALS.md NEWS README.md SECURITY.md
%license COPYING src/vendor/modules.txt
%doc CODE-OF-CONDUCT.md NEWS README.md SECURITY.md
%license COPYING %{?rhel:src/vendor/modules.txt}
%{_bindir}/%{name}
%{_datadir}/bash-completion
%{_datadir}/fish
%{_datadir}/zsh
%{_mandir}/man1/%{name}.1*
%{_mandir}/man1/%{name}-*.1*
%{_mandir}/man5/%{name}.conf.5*
%config(noreplace) %{_sysconfdir}/containers/%{name}.conf
%{_sysconfdir}/profile.d/%{name}.sh
%{_tmpfilesdir}/%{name}.conf
%{bash_completions_dir}/%{name}.bash
%{fish_completions_dir}/%{name}.fish
%{zsh_completions_dir}/_%{name}
%if ! 0%{?rhel}
%files support
%files experience
%endif
%files tests
%{_datadir}/%{name}
%changelog
* Fri Oct 10 2025 Alejandro Sáez <asm@redhat.com> - 0.3-2
- rebuild
* Wed Sep 17 2025 Debarshi Ray <rishi@fedoraproject.org> - 0.3-1
- Update to 0.3
* Fri Aug 15 2025 Maxwell G <maxwell@gtmx.me> - 0.2-2
- Rebuild for golang-1.25.0
* Sat Aug 09 2025 Debarshi Ray <rishi@fedoraproject.org> - 0.2-1
- Update to 0.2
- Fix CVE-2025-23266, CVE-2025-23267, and GHSA-fv92-fjc5-jj9h or GO-2025-3787
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Debarshi Ray <rishi@fedoraproject.org> - 0.1.2-1
- Update to 0.1.2
* Wed Jan 22 2025 Debarshi Ray <rishi@fedoraproject.org> - 0.1.1-3
- Use RPM macros for shell completions and clean up directory ownership
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Mon Nov 04 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.1.1-1
- Update to 0.1.1
* Tue Oct 22 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.1.0-1
- Update to 0.1.0
* Wed Oct 16 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-6
- Recommend fuse-overlayfs because old containers created with it need it
* Mon Oct 07 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-5
- Don't use slirp4netns(1) in tests to work around bug in pasta(1)
* Fri Oct 04 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-4
- Use the fedora-toolbox:40 image for Fedora Asahi Remix hosts
* Thu Oct 03 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-3
- Unbreak the downstream Fedora CI
* Wed Oct 02 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-2
- Silence 'rpminspect --tests=elf'
* Mon Sep 30 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.6-1
- Update to 0.0.99.6
* Thu Sep 12 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-18
- Rebuild against shadow-utils-subid ABI version 5.0.0
* Thu Aug 08 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-17
- Ensure slirp4netns(1) is installed
* Wed Jul 31 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-16
- Avoid running out of storage space when running the tests
* Fri Jul 26 2024 Adam Williamson <awilliam@redhat.com> - 0.0.99.5-15
- Fix CI test (hopefully)
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.99.5-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Thu Jul 11 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-13
- Silence 'rpminspect --tests=stack-prot'
* Thu Jul 11 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-12
- Silence 'rpminspect --tests=annocheck' (part 2)
* Tue May 07 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-11
- Unbreak the tests with Podman 5.0
* Tue Mar 26 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-10
- Specify the golang versions for RHEL 9 and 10
* Tue Mar 05 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-9
- Conditionalize the BuildRequires on golang
* Tue Feb 27 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-8
* Tue Feb 27 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-3
- Unbreak Podman's downstream Fedora CI (part 2)
- Backport some new upstream tests
* Tue Feb 13 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-7
* Tue Feb 13 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-2
- Unbreak Podman's downstream Fedora CI
- Update the BuildRequires on golang to reflect reality
* Sun Feb 11 2024 Maxwell G <maxwell@gtmx.me> - 0.0.99.5-6
- Rebuild for golang 1.22.0
* Wed Feb 07 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-5
- Migrate to SPDX license
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.99.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 11 2024 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-3
- Drop 'Recommends: subscription-manager'
* Tue Dec 19 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-2
- Drop the experience and support subpackages
* Tue Dec 19 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.5-1
- Update to 0.0.99.5
* Tue Dec 19 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-10
* Tue Dec 19 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-6
- Require openssl(1) for the system tests in the tests subpackage
* Wed Dec 06 2023 Adam Williamson <awilliam@redhat.com> - 0.0.99.4-9
* Wed Dec 06 2023 Adam Williamson <awilliam@redhat.com> - 0.0.99.4-5
- tests subpackage: require httpd-tools for htpasswd
* Tue Dec 05 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-8
- Fix the conditionals for 'if RHEL <= 9'
* Thu Nov 30 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-7
- Track the active container on Fedora Linux Asahi Remix
* Thu Nov 09 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-6
- Drop the custom /etc/containers/toolbox.conf from RHEL 10 onwards
* Mon Oct 02 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-5
* Mon Oct 02 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-4
- Drop github.com/coreos/toolbox compatibility from RHEL 10 onwards
* Mon Oct 02 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-4
* Mon Oct 02 2023 Debarshi Ray <rishi@fedoraproject.org> - 0.0.99.4-3
- Be aware of security hardened mount points
- Simplify removing the user's password
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.99.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Mar 8 2023 Nieves Montero <nmontero@redhat.com> - 0.0.99.4-2
- Sprinkle a debug log