From ad7ceee60d85bbb065dda13708ac57ef1fbc6e3d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 07:41:42 +0000 Subject: [PATCH 01/36] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- toolbox.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index 2c71d92..9d635f1 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.5 %endif %endif -Release: 13%{?dist} +Release: 14%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -206,6 +206,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 0.0.99.5-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Thu Jul 11 2024 Debarshi Ray - 0.0.99.5-13 - Silence 'rpminspect --tests=stack-prot' From c8c1f44f2ea9c3b78f69d07175541d507c08a677 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 26 Jul 2024 13:05:47 -0700 Subject: [PATCH 02/36] tests: Don't use undefined variable The test.environment variable was removed from the variables defined in tests.yml in commit 1b207227f3981193, 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 --- tests/roles/run_bats_tests/tasks/run_one_test.yml | 3 +-- toolbox.spec | 5 ++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/roles/run_bats_tests/tasks/run_one_test.yml b/tests/roles/run_bats_tests/tasks/run_one_test.yml index b44ed42..a58477d 100644 --- a/tests/roles/run_bats_tests/tasks/run_one_test.yml +++ b/tests/roles/run_bats_tests/tasks/run_one_test.yml @@ -15,7 +15,6 @@ 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 @@ -31,7 +30,7 @@ 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) }}" + environment: "{{ local_environment }}" - name: "{{ test.name }} | pull logs" fetch: diff --git a/toolbox.spec b/toolbox.spec index 9d635f1..5c00629 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.5 %endif %endif -Release: 14%{?dist} +Release: 15%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -206,6 +206,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Fri Jul 26 2024 Adam Williamson - 0.0.99.5-15 +- Fix CI test (hopefully) + * Sat Jul 20 2024 Fedora Release Engineering - 0.0.99.5-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 859832513212b4076aeec62749bd0f029d7adf18 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 29 Jul 2024 14:38:34 -0700 Subject: [PATCH 03/36] tests: Avoid running out of storage space 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 https://github.com/containers/toolbox/commit/50683c9d9a78adc9 https://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 --- tests/roles/run_bats_tests/tasks/run_one_test.yml | 1 + toolbox.spec | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/roles/run_bats_tests/tasks/run_one_test.yml b/tests/roles/run_bats_tests/tasks/run_one_test.yml index a58477d..bf45754 100644 --- a/tests/roles/run_bats_tests/tasks/run_one_test.yml +++ b/tests/roles/run_bats_tests/tasks/run_one_test.yml @@ -15,6 +15,7 @@ local_environment: TEST_NAME: "{{ test.name }}" TEST_PACKAGE: "{{ test.package }}" + TMPDIR: "/var/tmp" - name: "{{ test.name }} | setup/teardown helper | see if exists" local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh diff --git a/toolbox.spec b/toolbox.spec index 5c00629..0853af1 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,3 +1,4 @@ + %global __brp_check_rpaths %{nil} Name: toolbox @@ -31,7 +32,7 @@ Version: 0.0.99.5 %endif %endif -Release: 15%{?dist} +Release: 16%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -206,6 +207,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Wed Jul 31 2024 Debarshi Ray - 0.0.99.5-16 +- Avoid running out of storage space when running the tests + * Fri Jul 26 2024 Adam Williamson - 0.0.99.5-15 - Fix CI test (hopefully) From ee2fa0eab4519ab48e8c8d17701e41fadf2c12ca Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 29 Jul 2024 15:28:50 -0700 Subject: [PATCH 04/36] tests: Ensure slirp4netns(1) is installed 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 d8388da39eaf8ca11dd723ab2565f5a3b7c28fe6 [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/17934d87b2686ab5 https://src.fedoraproject.org/rpms/containers-common/c/13c232f064113860 [3] Fedora podman commit 9667d0f5b5069acb https://src.fedoraproject.org/rpms/podman/c/9667d0f5b5069acb https://src.fedoraproject.org/rpms/toolbox/pull-request/20 Signed-off-by: Adam Williamson --- tests/roles/run_bats_tests/tasks/main.yml | 3 +++ toolbox.spec | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/roles/run_bats_tests/tasks/main.yml b/tests/roles/run_bats_tests/tasks/main.yml index da79a4c..533e2e9 100644 --- a/tests/roles/run_bats_tests/tasks/main.yml +++ b/tests/roles/run_bats_tests/tasks/main.yml @@ -3,6 +3,9 @@ - name: initialize test.log file copy: dest=/tmp/test.log content='' force=yes mode=0666 +- name: install slirp4netns + dnf: name="slirp4netns" state=installed + - name: execute tests include: run_one_test.yml with_items: "{{ tests }}" diff --git a/toolbox.spec b/toolbox.spec index 0853af1..6d13d0c 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -32,7 +32,7 @@ Version: 0.0.99.5 %endif %endif -Release: 16%{?dist} +Release: 17%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -115,6 +115,7 @@ Requires: grep Requires: httpd-tools Requires: openssl Requires: skopeo +Requires: slirp4netns %if ! 0%{?rhel} Requires: bats >= 1.7.0 %endif @@ -207,6 +208,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Thu Aug 08 2024 Debarshi Ray - 0.0.99.5-17 +- Ensure slirp4netns(1) is installed + * Wed Jul 31 2024 Debarshi Ray - 0.0.99.5-16 - Avoid running out of storage space when running the tests From adcdf19861784e1edecae712a4d634611fbf6545 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 8 Aug 2024 17:45:54 +0200 Subject: [PATCH 05/36] tests: Silence deprecation warning Otherwise, Ansible in Fedora CI would complain: # STDERR: ---v---v---v---v---v--- [DEPRECATION WARNING]: "include" is deprecated, use include_tasks/import_tasks instead. See https://docs.ansible.com/ansible-core/2.14/user_guide/playbooks_reuse_includes.html for details. This feature will be removed in version 2.16. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg. https://src.fedoraproject.org/rpms/toolbox/pull-request/21 --- tests/roles/run_bats_tests/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/roles/run_bats_tests/tasks/main.yml b/tests/roles/run_bats_tests/tasks/main.yml index 533e2e9..c073f66 100644 --- a/tests/roles/run_bats_tests/tasks/main.yml +++ b/tests/roles/run_bats_tests/tasks/main.yml @@ -7,7 +7,7 @@ dnf: name="slirp4netns" state=installed - name: execute tests - include: run_one_test.yml + include_tasks: run_one_test.yml with_items: "{{ tests }}" loop_control: loop_var: test From 1f9f142ef1efff9c73f32a978f7a03fe7e92f540 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 9 Aug 2024 18:42:08 +0200 Subject: [PATCH 06/36] Remove stray newline There's no need to do a build just for this. Fallout from 859832513212b4076aeec62749bd0f029d7adf18 --- toolbox.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index 6d13d0c..30d41ca 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,4 +1,3 @@ - %global __brp_check_rpaths %{nil} Name: toolbox From c4f11e98871601879eb59f95428aa1b4b31b958a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 9 Aug 2024 18:46:57 +0200 Subject: [PATCH 07/36] Unify the build with RHEL There's no need to do a build just for this. --- toolbox.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolbox.spec b/toolbox.spec index 30d41ca..47957dc 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -25,9 +25,9 @@ Version: 0.0.99.5 %if 0%{?rhel} %if 0%{?rhel} == 9 -%global toolbx_go 1.21.7 +%global toolbx_go 1.22.5 %elif 0%{?rhel} == 10 -%global toolbx_go 1.21.3 +%global toolbx_go 1.22.5 %endif %endif From bba451ece16ad5c89627e3bf71452e433361fe53 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 12 Sep 2024 18:05:21 +0200 Subject: [PATCH 08/36] Rebuild against shadow-utils-subid ABI version 5.0.0 The runtime dependency on shadow-utils-subid should have already been part of commit 95d6ea86892b903b to ensure that Toolbx >= 0.0.99.4 would be able to dlopen(3) the library. It only worked in practice because the podman RPM also required it. --- toolbox.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/toolbox.spec b/toolbox.spec index 47957dc..28fc03b 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.5 %endif %endif -Release: 17%{?dist} +Release: 18%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -60,7 +60,7 @@ BuildRequires: go-md2man BuildRequires: golang >= %{toolbx_go} BuildRequires: meson >= 0.58.0 BuildRequires: pkgconfig(bash-completion) -BuildRequires: shadow-utils-subid-devel +BuildRequires: shadow-utils-subid-devel >= 4.16.0 BuildRequires: systemd BuildRequires: systemd-rpm-macros %if ! 0%{?rhel} @@ -90,6 +90,7 @@ Requires: podman >= 1.6.4 %if ! 0%{?rhel} Requires: flatpak-session-helper %endif +Requires: shadow-utils-subid%{?_isa} >= 4.16.0 %description @@ -207,6 +208,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Thu Sep 12 2024 Debarshi Ray - 0.0.99.5-18 +- Rebuild against shadow-utils-subid ABI version 5.0.0 + * Thu Aug 08 2024 Debarshi Ray - 0.0.99.5-17 - Ensure slirp4netns(1) is installed From e447d41208358916b11090a3d90c5a08ac18ca96 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 30 Sep 2024 15:37:33 +0200 Subject: [PATCH 09/36] Update to 0.0.99.6 Start using the golang-ipath(...) virtual Provides for BuildRequires because they use the top-level import paths and are closer to what is listed in the upstream go.mod. The golang(...) virtual Provides mention each individual Go package within a Go module, and bigger modules can have several packages in them. It is noisy and tedious to keep up with the list of packages that are currently in use, by looking at all the Go source files, and then to list them as BuildRequires. Update the compiler and linker flags for Fedora by incorporating some of the changes to the distribution's defaults up to Fedora 39, which is the oldest supported Fedora. Switch to using the GO_BUILDTAGS and GO_LDFLAGS environment variables, because their unprefixed counterparts have been deprecated [1], and start annotating the toolbox(1) binary with an ELF note that identifies the RPM for which it was built [2]. However, the change to use the RPM's %{name}, %{version}, %{release} and the SOURCE_DATE_EPOCH environment variable [3], instead of /dev/urandom, to generate the build ID annotation for the toolbox(1) binary [4] was left out. It will need more work to propagate the RPM's %{name}, %{version} and %{release} to Meson. Stop carrying the downstream patch for the compiler and linker flags for PPC64. The architecture was already discontinued from Fedora 29 [5], even before the patch was added [6]. It was added purely for the sake of completeness, and in the last four years since it was introduced, it hasn't been tested or used. At this point it's becoming too much of a maintenance burden, and removing it silences the %ifarch-applied-patch warning from rpmlint. Fill in some of the missing Requires for the toolbox-tests sub-package. [1] go-rpm-macros commit bc7e5cc55c4709e8 https://pagure.io/go-rpm-macros/c/bc7e5cc55c4709e8 [2] Fedora redhat-rpm-config commit 57edf0cad7b089ed https://src.fedoraproject.org/rpms/redhat-rpm-config/c/57edf0cad7b089ed https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects [3] https://reproducible-builds.org/docs/source-date-epoch/ [4] go-rpm-macros commit 1980932bf3a21890 https://pagure.io/go-rpm-macros/c/1980932bf3a21890 https://fedoraproject.org/wiki/Changes/ReproduciblePackageBuilds [5] https://fedoraproject.org/wiki/Changes/DiscontinuePPC64 [6] Commit ba60453d216a9226 https://src.fedoraproject.org/rpms/toolbox/pull-request/22 --- .gitignore | 1 + sources | 2 +- ...ags-match-Fedora-s-gobuild-for-PPC64.patch | 54 -- ...e-build-flags-match-Fedora-s-gobuild.patch | 27 +- ...books-test-system-bats-1.11-podman-5.patch | 161 ---- ...nbreak-Podman-s-downstream-Fedora-CI.patch | 208 ---- toolbox-test-system-new.patch | 894 ------------------ toolbox.spec | 55 +- 8 files changed, 39 insertions(+), 1363 deletions(-) delete mode 100644 toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch delete mode 100644 toolbox-playbooks-test-system-bats-1.11-podman-5.patch delete mode 100644 toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch delete mode 100644 toolbox-test-system-new.patch diff --git a/.gitignore b/.gitignore index 6787941..8751077 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /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 diff --git a/sources b/sources index df91c99..a7670e1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.0.99.5-vendored.tar.xz) = d82666e9abcbac2d01de440dfb8d57801bb97ec0854a9859c64689c47c6a1344b846fb151ffa9371d0a9a2c85c8f61c96cf8f546449ec63c9a44d85ef328b745 +SHA512 (toolbox-0.0.99.6-vendored.tar.xz) = 9ecec200069e8e2536e5ece43d411f9025dba6f60573e7939a0fc26deef29f0297d405a44fd409e978879b0579ab0a79ace97228a199584854c638213fa219d7 diff --git a/toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch b/toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch deleted file mode 100644 index 35ecc83..0000000 --- a/toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4f8b443ab925c84d059d894ddcfcf4dcf66a747e Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -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 - diff --git a/toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch b/toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch index c290d36..27fd99d 100644 --- a/toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch +++ b/toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch @@ -1,20 +1,17 @@ -From 3175ef2fab1f61f5784361070ac338dabda3c04e Mon Sep 17 00:00:00 2001 +From 7dc70160c8ff531473004e879dd57ec303789d71 Mon Sep 17 00:00:00 2001 From: Debarshi Ray 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(-) + 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 c572d6dfb02b..0e6a2efa6853 100755 +index a5a1a6a508fb..5978422e9aed 100755 --- a/src/go-build-wrapper +++ b/src/go-build-wrapper @@ -33,9 +33,9 @@ if ! cd "$1"; then @@ -22,27 +19,23 @@ index c572d6dfb02b..0e6a2efa6853 100755 fi -tags="" -+tags="-tags rpm_crashtraceback,${BUILDTAGS:-}" ++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 -@@ -70,11 +70,17 @@ fi +@@ -114,9 +114,14 @@ dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basen - 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" \ + -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 \ @@ -50,5 +43,5 @@ index c572d6dfb02b..0e6a2efa6853 100755 exit "$?" -- -2.43.0 +2.46.1 diff --git a/toolbox-playbooks-test-system-bats-1.11-podman-5.patch b/toolbox-playbooks-test-system-bats-1.11-podman-5.patch deleted file mode 100644 index 7834933..0000000 --- a/toolbox-playbooks-test-system-bats-1.11-podman-5.patch +++ /dev/null @@ -1,161 +0,0 @@ -From 6626b11e1565412e411f585657ebe9615ec58cad Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 17 Apr 2024 16:58:32 +0200 -Subject: [PATCH 1/2] playbooks: Show the Bats version - -Ansible's built-in 'package' module doesn't show any details when -installing the RPMs. All that can be seen is: - TASK [Install RPM packages] - fedora-rawhide | changed - -Therefore, there's no way to know what version of the packages got -installed. - -In this case, not knowing the Bats version being used by the CI makes it -difficult to know why the tests are generating this spew on Fedora -Rawhide [1]: - TASK [Run system tests] - test/system/libs/helpers.bash: line 7: TEMP_BASE_DIR: readonly variable - test/system/libs/helpers.bash: line 8: TEMP_STORAGE_DIR: readonly variable - test/system/libs/helpers.bash: line 10: IMAGE_CACHE_DIR: readonly variable - test/system/libs/helpers.bash: line 11: ROOTLESS_PODMAN_STORE_DIR: readonly variable - test/system/libs/helpers.bash: line 12: ROOTLESS_PODMAN_RUNROOT_DIR: readonly variable - test/system/libs/helpers.bash: line 13: PODMAN_STORE_CONFIG_FILE: readonly variable - test/system/libs/helpers.bash: line 14: DOCKER_REG_ROOT: readonly variable - test/system/libs/helpers.bash: line 15: DOCKER_REG_CERTS_DIR: readonly variable - test/system/libs/helpers.bash: line 16: DOCKER_REG_AUTH_DIR: readonly variable - test/system/libs/helpers.bash: line 17: DOCKER_REG_URI: readonly variable - test/system/libs/helpers.bash: line 18: DOCKER_REG_NAME: readonly variable - test/system/libs/helpers.bash: line 21: PODMAN: readonly variable - test/system/libs/helpers.bash: line 22: TOOLBX: readonly variable - test/system/libs/helpers.bash: line 23: SKOPEO: readonly variable - ... - fedora-rawhide | 1..340 - -[1] https://github.com/bats-core/bats-core/pull/904 - -https://github.com/containers/toolbox/pull/1482 ---- - playbooks/dependencies-centos-9-stream.yaml | 2 +- - playbooks/dependencies-fedora.yaml | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/playbooks/dependencies-centos-9-stream.yaml b/playbooks/dependencies-centos-9-stream.yaml -index ffbc6d9903cb..d058d314b7b3 100644 ---- a/playbooks/dependencies-centos-9-stream.yaml -+++ b/playbooks/dependencies-centos-9-stream.yaml -@@ -54,7 +54,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo -+ command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - - - name: Show podman versions - command: podman version -diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml -index d493bd0729ea..ade169917cbe 100644 ---- a/playbooks/dependencies-fedora.yaml -+++ b/playbooks/dependencies-fedora.yaml -@@ -54,7 +54,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo -+ command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - - - name: Show podman versions - command: podman version --- -2.44.0 - - -From b58f9a51088afbfc22edb0b25776cfa2c4d8cc40 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Mon, 25 Mar 2024 23:04:23 +0100 -Subject: [PATCH 2/2] playbooks, test/system: Work around bug in pasta(1) - networks - -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. - -Work around this by forcing the use of slirp4netns(1). - -Note that 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]. - -[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/17934d87b2686ab5 - https://src.fedoraproject.org/rpms/containers-common/c/13c232f064113860 - -https://github.com/containers/toolbox/pull/1468 ---- - playbooks/dependencies-centos-9-stream.yaml | 3 ++- - playbooks/dependencies-fedora.yaml | 3 ++- - test/system/libs/helpers.bash | 1 + - 3 files changed, 5 insertions(+), 2 deletions(-) - -diff --git a/playbooks/dependencies-centos-9-stream.yaml b/playbooks/dependencies-centos-9-stream.yaml -index d058d314b7b3..5c1194c03583 100644 ---- a/playbooks/dependencies-centos-9-stream.yaml -+++ b/playbooks/dependencies-centos-9-stream.yaml -@@ -13,6 +13,7 @@ - - podman - - shadow-utils-subid-devel - - skopeo -+ - slirp4netns - - systemd - - udisks2 - -@@ -54,7 +55,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo -+ command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns - - - name: Show podman versions - command: podman version -diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml -index ade169917cbe..76ce655bf9d3 100644 ---- a/playbooks/dependencies-fedora.yaml -+++ b/playbooks/dependencies-fedora.yaml -@@ -35,6 +35,7 @@ - - podman - - shadow-utils-subid-devel - - skopeo -+ - slirp4netns - - systemd - - udisks2 - -@@ -54,7 +55,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo -+ command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns - - - name: Show podman versions - command: podman version -diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash -index 66278888cbe2..c056c601ab94 100644 ---- a/test/system/libs/helpers.bash -+++ b/test/system/libs/helpers.bash -@@ -202,6 +202,7 @@ function _setup_docker_registry() { - -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ - -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ - -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ -+ --network slirp4netns \ - -p 50000:443 \ - "${IMAGES[docker-reg]}" - assert_success --- -2.44.0 - diff --git a/toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch b/toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch deleted file mode 100644 index 1956003..0000000 --- a/toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch +++ /dev/null @@ -1,208 +0,0 @@ -From a859f73d075ec0505994d8ce0f371ec28e466983 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -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 -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 - diff --git a/toolbox-test-system-new.patch b/toolbox-test-system-new.patch deleted file mode 100644 index 9800b15..0000000 --- a/toolbox-test-system-new.patch +++ /dev/null @@ -1,894 +0,0 @@ -From f51c4a4cd8ff1c51a68073a10eaddab8f16fdaf6 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -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 -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 -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 -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 - diff --git a/toolbox.spec b/toolbox.spec index 28fc03b..d825b80 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.0.99.5 +Version: 0.0.99.6 %global goipath github.com/containers/%{name} @@ -31,7 +31,7 @@ Version: 0.0.99.5 %endif %endif -Release: 18%{?dist} +Release: 1%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -41,14 +41,8 @@ Source0: https://github.com/containers/%{name}/releases/download/%{version # RHEL specific Source1: %{name}.conf -# Upstream -Patch0: toolbox-test-system-new.patch -Patch1: toolbox-test-system-Unbreak-Podman-s-downstream-Fedora-CI.patch -Patch2: toolbox-playbooks-test-system-bats-1.11-podman-5.patch - # Fedora specific 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-s-gobuild.patch @@ -65,21 +59,27 @@ BuildRequires: systemd BuildRequires: systemd-rpm-macros %if ! 0%{?rhel} BuildRequires: golang(github.com/HarryMichal/go-version) >= 1.0.1 +BuildRequires: golang-ipath(github.com/NVIDIA/go-nvlib) >= 0.6.1 +BuildRequires: golang-ipath(github.com/NVIDIA/go-nvml) >= 0.12.4.0 +BuildRequires: golang-ipath(github.com/NVIDIA/nvidia-container-toolkit) >= 1.16.1 BuildRequires: golang(github.com/acobaugh/osrelease) >= 0.1.0 -BuildRequires: golang(github.com/briandowns/spinner) >= 1.17.0 +BuildRequires: golang(github.com/briandowns/spinner) >= 1.18.0 BuildRequires: golang(github.com/docker/go-units) >= 0.5.0 -BuildRequires: golang(github.com/fsnotify/fsnotify) >= 1.5.1 +BuildRequires: golang(github.com/fsnotify/fsnotify) >= 1.7.0 +BuildRequires: golang(github.com/go-logfmt/logfmt) >= 0.5.0 BuildRequires: golang(github.com/godbus/dbus) >= 5.0.6 -BuildRequires: golang(github.com/sirupsen/logrus) >= 1.8.1 +BuildRequires: golang(github.com/google/renameio/v2) >= 2.0.0 +BuildRequires: golang(github.com/sirupsen/logrus) >= 1.9.3 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-ipath(golang.org/x/sys) >= 0.22.0 BuildRequires: golang(golang.org/x/text) >= 0.3.8 -BuildRequires: golang(gopkg.in/yaml.v3) >= 3.0.0 +BuildRequires: golang-ipath(gopkg.in/yaml.v3) >= 3.0.1 +BuildRequires: golang-ipath(tags.cncf.io/container-device-interface) >= 0.8.0 BuildRequires: pkgconfig(fish) # for tests # BuildRequires: codespell -# BuildRequires: golang(github.com/stretchr/testify) >= 1.7.0 +# BuildRequires: golang(github.com/stretchr/testify) >= 1.9.0 # BuildRequires: ShellCheck %endif @@ -95,9 +95,9 @@ Requires: shadow-utils-subid%{?_isa} >= 4.16.0 %description Toolbx is a tool for Linux, which allows the use of interactive command line -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. +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. Toolbx environments have seamless access to the user's home directory, the Wayland and X11 sockets, networking (including Avahi), removable devices (like @@ -110,14 +110,18 @@ Summary: Tests for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Requires: coreutils +Requires: diffutils +# for gdbus(1) +Requires: glib2 Requires: grep -# for htpasswd +# for htpasswd(1) Requires: httpd-tools Requires: openssl +Requires: python3 Requires: skopeo Requires: slirp4netns %if ! 0%{?rhel} -Requires: bats >= 1.7.0 +Requires: bats >= 1.10.0 %endif @@ -128,16 +132,8 @@ The %{name}-tests package contains system tests for %{name}. %prep %setup -q -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 - %if 0%{?fedora} -%ifnarch ppc64 %patch -P100 -p1 -%else -%patch -P101 -p1 -%endif %endif %if 0%{?rhel} @@ -189,7 +185,7 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %files -%doc CODE-OF-CONDUCT.md NEWS README.md SECURITY.md +%doc CODE-OF-CONDUCT.md CONTRIBUTING.md GOALS.md NEWS README.md SECURITY.md %license COPYING %{?rhel:src/vendor/modules.txt} %{_bindir}/%{name} %{_datadir}/bash-completion @@ -208,6 +204,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Mon Sep 30 2024 Debarshi Ray - 0.0.99.6-1 +- Update to 0.0.99.6 + * Thu Sep 12 2024 Debarshi Ray - 0.0.99.5-18 - Rebuild against shadow-utils-subid ABI version 5.0.0 From f81e991c0ae5aca8fcac5f9a7163668d0d6ff98e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 Oct 2024 21:22:34 +0200 Subject: [PATCH 10/36] Silence 'rpminspect --tests=elf' With Toolbx 0.0.99.6, 'rpminspect --tests=elf', run by the Fedora CI, fails with: /usr/bin/toolbox lost full GNU_RELRO security protection This is because from version 0.0.99.6 onwards, toolbox(1) is only built with the '-z relro' linker flag, but not '-z now' [1]. Fallout from e447d41208358916b11090a3d90c5a08ac18ca96 [1] Upstream commit 83f28c52e47c2d44 https://github.com/containers/toolbox/commit/83f28c52e47c2d44 https://github.com/containers/toolbox/pull/1548 --- rpminspect.yaml | 3 +++ toolbox.spec | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rpminspect.yaml b/rpminspect.yaml index ab3e59b..f0d9c5c 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -7,6 +7,9 @@ annocheck: extra_opts: hardened: --skip-run-path --skip-stack-prot +elf: + exclude_path: /usr/bin/toolbox + runpath: allowed_paths: - /run/host/usr/lib diff --git a/toolbox.spec b/toolbox.spec index d825b80..cd49e8a 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.6 %endif %endif -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -204,6 +204,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Wed Oct 02 2024 Debarshi Ray - 0.0.99.6-2 +- Silence 'rpminspect --tests=elf' + * Mon Sep 30 2024 Debarshi Ray - 0.0.99.6-1 - Update to 0.0.99.6 From 8da835d84a4bb1a614bfd986afcf52df1f17345c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 3 Oct 2024 14:56:46 +0200 Subject: [PATCH 11/36] Unbreak the downstream Fedora CI Fallout from e447d41208358916b11090a3d90c5a08ac18ca96 --- ...-system-Unbreak-downstream-Fedora-CI.patch | 104 ++++++++++++++++++ toolbox.spec | 9 +- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 toolbox-test-system-Unbreak-downstream-Fedora-CI.patch diff --git a/toolbox-test-system-Unbreak-downstream-Fedora-CI.patch b/toolbox-test-system-Unbreak-downstream-Fedora-CI.patch new file mode 100644 index 0000000..b743f2d --- /dev/null +++ b/toolbox-test-system-Unbreak-downstream-Fedora-CI.patch @@ -0,0 +1,104 @@ +From 1e90c721858b3119702b93445f535f9c23af88e6 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Wed, 2 Oct 2024 22:43:37 +0200 +Subject: [PATCH] test/system: Unbreak the downstream Fedora CI + +The working directory from which bats(1) is invoked might not be part of +the Toolbx container. eg., the downstream Fedora CI invokes the tests +as: + $ cd /path/to/toolbox/test/system + $ bats . + +... and it led to: + not ok 8 help: Try unknown command (forwarded to host) + # tags: commands-options + # (from function `assert_line' in file + ./libs/bats-assert/src/assert.bash, line 488, + # in test file ./002-help.bats, line 135) + # `assert_line --index 0 + "Error: unknown command \"foo\" for \"toolbox\""' failed + # + # -- line differs -- + # index : 0 + # expected : Error: unknown command "foo" for "toolbox" + # actual : 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 + # -- + # + +https://github.com/containers/toolbox/pull/1560 +--- + test/system/002-help.bats | 2 ++ + test/system/501-create.bats | 2 ++ + test/system/504-run.bats | 2 ++ + test/system/505-enter.bats | 2 ++ + 4 files changed, 8 insertions(+) + +diff --git a/test/system/002-help.bats b/test/system/002-help.bats +index 57e918a04d22..a8bfbc2c79d2 100644 +--- a/test/system/002-help.bats ++++ b/test/system/002-help.bats +@@ -25,9 +25,11 @@ setup() { + bats_require_minimum_version 1.10.0 + _setup_environment + cleanup_all ++ pushd "$HOME" || return 1 + } + + teardown() { ++ popd || return 1 + cleanup_all + } + +diff --git a/test/system/501-create.bats b/test/system/501-create.bats +index 3f50f98e6bf3..cfb676b7001b 100644 +--- a/test/system/501-create.bats ++++ b/test/system/501-create.bats +@@ -25,9 +25,11 @@ setup() { + bats_require_minimum_version 1.8.0 + _setup_environment + cleanup_all ++ pushd "$HOME" || return 1 + } + + teardown() { ++ popd || return 1 + cleanup_all + } + +diff --git a/test/system/504-run.bats b/test/system/504-run.bats +index cc5f6fa8bb09..6ee3e86af1ff 100644 +--- a/test/system/504-run.bats ++++ b/test/system/504-run.bats +@@ -25,9 +25,11 @@ setup() { + bats_require_minimum_version 1.8.0 + _setup_environment + cleanup_all ++ pushd "$HOME" || return 1 + } + + teardown() { ++ popd || return 1 + cleanup_all + } + +diff --git a/test/system/505-enter.bats b/test/system/505-enter.bats +index 405d184f145e..57e58651623d 100644 +--- a/test/system/505-enter.bats ++++ b/test/system/505-enter.bats +@@ -25,9 +25,11 @@ setup() { + bats_require_minimum_version 1.8.0 + _setup_environment + cleanup_all ++ pushd "$HOME" || return 1 + } + + teardown() { ++ popd || return 1 + cleanup_all + } + +-- +2.46.1 + diff --git a/toolbox.spec b/toolbox.spec index cd49e8a..c663c6e 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.6 %endif %endif -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -41,6 +41,9 @@ Source0: https://github.com/containers/%{name}/releases/download/%{version # RHEL specific Source1: %{name}.conf +# Upstream +Patch0: toolbox-test-system-Unbreak-downstream-Fedora-CI.patch + # Fedora specific Patch100: toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch @@ -131,6 +134,7 @@ The %{name}-tests package contains system tests for %{name}. %prep %setup -q +%patch -P0 -p1 %if 0%{?fedora} %patch -P100 -p1 @@ -204,6 +208,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Thu Oct 03 2024 Debarshi Ray - 0.0.99.6-3 +- Unbreak the downstream Fedora CI + * Wed Oct 02 2024 Debarshi Ray - 0.0.99.6-2 - Silence 'rpminspect --tests=elf' From 5ff63e6c804b067d11cb2be56b9b023805d3910d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 4 Oct 2024 15:08:39 +0200 Subject: [PATCH 12/36] Use the fedora-toolbox:40 image for Fedora Asahi Remix hosts https://bugzilla.redhat.com/show_bug.cgi?id=2316312 --- ...-fallback-release-to-40-for-non-fedo.patch | 30 +++++++++++++++++++ toolbox.spec | 7 ++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 toolbox-Update-fallback-release-to-40-for-non-fedo.patch diff --git a/toolbox-Update-fallback-release-to-40-for-non-fedo.patch b/toolbox-Update-fallback-release-to-40-for-non-fedo.patch new file mode 100644 index 0000000..7bad62f --- /dev/null +++ b/toolbox-Update-fallback-release-to-40-for-non-fedo.patch @@ -0,0 +1,30 @@ +From b524f4cebd8c65746089f898e14a99c7cfded306 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Thu, 3 Oct 2024 22:08:04 +0200 +Subject: [PATCH] pkg/utils: Update fallback release to 40 for non-fedora hosts + +Fedora 38 reached End of Life on 21st May 2024: +https://docs.fedoraproject.org/en-US/releases/eol/ + +https://bugzilla.redhat.com/show_bug.cgi?id=2316312 +https://github.com/containers/toolbox/pull/1561 +--- + src/pkg/utils/utils.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pkg/utils/utils.go b/src/pkg/utils/utils.go +index eefcd1eeb2cc..37a49fedf772 100644 +--- a/src/pkg/utils/utils.go ++++ b/src/pkg/utils/utils.go +@@ -64,7 +64,7 @@ const ( + containerNamePrefixFallback = "fedora-toolbox" + distroFallback = "fedora" + idTruncLength = 12 +- releaseFallback = "38" ++ releaseFallback = "40" + ) + + const ( +-- +2.46.1 + diff --git a/toolbox.spec b/toolbox.spec index c663c6e..9d39455 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.6 %endif %endif -Release: 3%{?dist} +Release: 4%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -43,6 +43,7 @@ Source1: %{name}.conf # Upstream Patch0: toolbox-test-system-Unbreak-downstream-Fedora-CI.patch +Patch1: toolbox-Update-fallback-release-to-40-for-non-fedo.patch # Fedora specific Patch100: toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch @@ -135,6 +136,7 @@ The %{name}-tests package contains system tests for %{name}. %prep %setup -q %patch -P0 -p1 +%patch -P1 -p1 %if 0%{?fedora} %patch -P100 -p1 @@ -208,6 +210,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Fri Oct 04 2024 Debarshi Ray - 0.0.99.6-4 +- Use the fedora-toolbox:40 image for Fedora Asahi Remix hosts + * Thu Oct 03 2024 Debarshi Ray - 0.0.99.6-3 - Unbreak the downstream Fedora CI From 2334d4ee5f410eaa9ff02d5349e2c21ba1f27eab Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 7 Oct 2024 16:02:21 +0200 Subject: [PATCH 13/36] Unify the build with RHEL 9 There's no need to do a build just for this. --- ...ation-paths-for-coreos-toolbox-users.patch | 49 ++++++++++--------- toolbox.spec | 2 +- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch index 88003a3..9f470cd 100644 --- a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch +++ b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch @@ -1,4 +1,4 @@ -From d461caa5b1a278124d039df93140d2d5bf4eabe7 Mon Sep 17 00:00:00 2001 +From c25ad44b7cb50d470b1533931b7808cc194f0d50 Mon Sep 17 00:00:00 2001 From: Debarshi Ray 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 7657ffa50821..23d422623b14 100644 +index 719c0d6abb20..92a097283f38 100644 --- a/src/cmd/run.go +++ b/src/cmd/run.go -@@ -501,6 +501,7 @@ func constructExecArgs(container, preserveFDs string, +@@ -566,6 +566,7 @@ func constructExecArgs(container, preserveFDs string, execArgs = append(execArgs, envOptions...) execArgs = append(execArgs, []string{ @@ -22,10 +22,10 @@ index 7657ffa50821..23d422623b14 100644 "--preserve-fds", preserveFDs, }...) -- -2.39.2 +2.46.1 -From 3c2c67752e8f88f72058799cbce3612fc937b230 Mon Sep 17 00:00:00 2001 +From e7877a4d1d38dc35aa6da6c012ec9a23397b7aa4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 10 Dec 2021 13:42:15 +0100 Subject: [PATCH 2/2] test/system: Update to test the migration path for @@ -36,36 +36,39 @@ 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 | 11 ----------- + test/system/002-help.bats | 14 -------------- test/system/100-root.bats | 27 +++++++++++++++++++++++++++ - 2 files changed, 27 insertions(+), 11 deletions(-) + 2 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 test/system/100-root.bats diff --git a/test/system/002-help.bats b/test/system/002-help.bats -index 7e4565e9d23d..58a4c2c87ece 100644 +index a8bfbc2c79d2..5dd14025ea0b 100644 --- a/test/system/002-help.bats +++ b/test/system/002-help.bats -@@ -23,17 +23,6 @@ setup() { - _setup_environment +@@ -33,20 +33,6 @@ teardown() { + cleanup_all } --@test "help: Try to run toolbox with no command" { -- run $TOOLBOX +-@test "help: Smoke test" { +- run --keep-empty-lines --separate-stderr "$TOOLBX" - - assert_failure +- assert [ ${#lines[@]} -eq 0 ] +- lines=("${stderr_lines[@]}") - assert_line --index 0 "Error: missing command" -- 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." +- 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 ] -} - - @test "help: Run command 'help'" { + @test "help: Command 'help'" { if ! command -v man 2>/dev/null; then - skip "Test works only if man is in PATH" + skip "not found man(1)" diff --git a/test/system/100-root.bats b/test/system/100-root.bats new file mode 100644 -index 000000000000..32d87904213e +index 000000000000..cf35d60ac25c --- /dev/null +++ b/test/system/100-root.bats @@ -0,0 +1,27 @@ @@ -77,15 +80,15 @@ index 000000000000..32d87904213e + +setup() { + _setup_environment -+ cleanup_containers ++ cleanup_all +} + +teardown() { -+ cleanup_containers ++ cleanup_all +} + +@test "root: Try to enter the default container with no containers created" { -+ run $TOOLBOX <<< "n" ++ run "$TOOLBX" <<< "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." @@ -97,5 +100,5 @@ index 000000000000..32d87904213e + skip "Testing of entering toolboxes is not implemented" +} -- -2.39.2 +2.46.1 diff --git a/toolbox.spec b/toolbox.spec index 9d39455..ee2f102 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -91,10 +91,10 @@ Recommends: skopeo Requires: containers-common Requires: podman >= 1.6.4 +Requires: shadow-utils-subid%{?_isa} >= 4.16.0 %if ! 0%{?rhel} Requires: flatpak-session-helper %endif -Requires: shadow-utils-subid%{?_isa} >= 4.16.0 %description From ea36bd0bb0dbcde2c8392b9b980235ab6d7d98b7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 7 Oct 2024 16:06:55 +0200 Subject: [PATCH 14/36] Unify the build with RHEL There's no need to do a build just for this. --- ...d.patch => toolbox-Make-the-build-flags-match-Fedora.patch | 0 ...ora-CI.patch => toolbox-Unbreak-downstream-Fedora-CI.patch | 0 toolbox.spec | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch => toolbox-Make-the-build-flags-match-Fedora.patch (100%) rename toolbox-test-system-Unbreak-downstream-Fedora-CI.patch => toolbox-Unbreak-downstream-Fedora-CI.patch (100%) diff --git a/toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch b/toolbox-Make-the-build-flags-match-Fedora.patch similarity index 100% rename from toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch rename to toolbox-Make-the-build-flags-match-Fedora.patch diff --git a/toolbox-test-system-Unbreak-downstream-Fedora-CI.patch b/toolbox-Unbreak-downstream-Fedora-CI.patch similarity index 100% rename from toolbox-test-system-Unbreak-downstream-Fedora-CI.patch rename to toolbox-Unbreak-downstream-Fedora-CI.patch diff --git a/toolbox.spec b/toolbox.spec index ee2f102..93e9854 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -42,11 +42,11 @@ Source0: https://github.com/containers/%{name}/releases/download/%{version Source1: %{name}.conf # Upstream -Patch0: toolbox-test-system-Unbreak-downstream-Fedora-CI.patch +Patch0: toolbox-Unbreak-downstream-Fedora-CI.patch Patch1: toolbox-Update-fallback-release-to-40-for-non-fedo.patch # Fedora specific -Patch100: toolbox-Make-the-build-flags-match-Fedora-s-gobuild.patch +Patch100: toolbox-Make-the-build-flags-match-Fedora.patch # RHEL specific Patch200: toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch From 1d3597789e9f3cc56bb7e5f2fbd9bd78b9345313 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 7 Oct 2024 16:19:11 +0200 Subject: [PATCH 15/36] Unify the build with RHEL There's no need to do a build just for this. --- ...x-Make-the-build-flags-match-RHEL-10.patch | 71 +++++++++++++++++++ ...ox-Make-the-build-flags-match-RHEL-9.patch | 50 +++++++++++++ ...flags-match-RHEL-s-gobuild-for-PPC64.patch | 55 -------------- ...the-build-flags-match-RHEL-s-gobuild.patch | 55 -------------- toolbox.spec | 10 +-- 5 files changed, 127 insertions(+), 114 deletions(-) create mode 100644 toolbox-Make-the-build-flags-match-RHEL-10.patch create mode 100644 toolbox-Make-the-build-flags-match-RHEL-9.patch delete mode 100644 toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch delete mode 100644 toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch diff --git a/toolbox-Make-the-build-flags-match-RHEL-10.patch b/toolbox-Make-the-build-flags-match-RHEL-10.patch new file mode 100644 index 0000000..e43e0eb --- /dev/null +++ b/toolbox-Make-the-build-flags-match-RHEL-10.patch @@ -0,0 +1,71 @@ +From f08f64c0d5f2019055381c3c00426fe8545e5e31 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +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.46.1 + diff --git a/toolbox-Make-the-build-flags-match-RHEL-9.patch b/toolbox-Make-the-build-flags-match-RHEL-9.patch new file mode 100644 index 0000000..2c15142 --- /dev/null +++ b/toolbox-Make-the-build-flags-match-RHEL-9.patch @@ -0,0 +1,50 @@ +From ff1320fa869f1e4952836436ab2ad928cbba0987 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +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.46.1 + diff --git a/toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch b/toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch deleted file mode 100644 index 15b52a8..0000000 --- a/toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 973600219168f3c4efeb627c103085555327eaa5 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -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 - diff --git a/toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch b/toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch deleted file mode 100644 index 1fed4da..0000000 --- a/toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch +++ /dev/null @@ -1,55 +0,0 @@ -From aeaa8cd30a8c5ad33ee1fe6b9e84ecbb28f7264c Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -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 - diff --git a/toolbox.spec b/toolbox.spec index 93e9854..1f0815c 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -49,8 +49,8 @@ Patch1: toolbox-Update-fallback-release-to-40-for-non-fedo.patch Patch100: toolbox-Make-the-build-flags-match-Fedora.patch # RHEL specific -Patch200: toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch -Patch201: toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch +Patch200: toolbox-Make-the-build-flags-match-RHEL-9.patch +Patch201: toolbox-Make-the-build-flags-match-RHEL-10.patch Patch202: toolbox-Add-migration-paths-for-coreos-toolbox-users.patch BuildRequires: gcc @@ -143,9 +143,11 @@ The %{name}-tests package contains system tests for %{name}. %endif %if 0%{?rhel} -%ifnarch ppc64 +%if 0%{?rhel} == 9 %patch -P200 -p1 -%else +%endif + +%if 0%{?rhel} == 10 %patch -P201 -p1 %endif From d91d2c85231a7808d58d96287fb905d9d734738b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 7 Oct 2024 16:39:14 +0200 Subject: [PATCH 16/36] Don't use slirp4netns(1) in tests to work around bug in pasta(1) --- tests/roles/run_bats_tests/tasks/main.yml | 3 - toolbox-Revert-Work-around-bug-in-past.patch | 81 ++++++++++++++++++++ toolbox.spec | 8 +- 3 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 toolbox-Revert-Work-around-bug-in-past.patch diff --git a/tests/roles/run_bats_tests/tasks/main.yml b/tests/roles/run_bats_tests/tasks/main.yml index c073f66..adc72f2 100644 --- a/tests/roles/run_bats_tests/tasks/main.yml +++ b/tests/roles/run_bats_tests/tasks/main.yml @@ -3,9 +3,6 @@ - name: initialize test.log file copy: dest=/tmp/test.log content='' force=yes mode=0666 -- name: install slirp4netns - dnf: name="slirp4netns" state=installed - - name: execute tests include_tasks: run_one_test.yml with_items: "{{ tests }}" diff --git a/toolbox-Revert-Work-around-bug-in-past.patch b/toolbox-Revert-Work-around-bug-in-past.patch new file mode 100644 index 0000000..5597a9f --- /dev/null +++ b/toolbox-Revert-Work-around-bug-in-past.patch @@ -0,0 +1,81 @@ +From ed14cd483ae45c5f4cf5596b11c384f4b42bb53b Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Fri, 4 Oct 2024 22:09:03 +0200 +Subject: [PATCH] Revert "playbooks, test/system: Work around bug in pasta(1) + networks" + +The bug in pasta(1) that necessitated this workaround has since been +fixed in passt 2024_05_10.7288448 [1]. Some host operating systems like +CentOS Stream 10 no longer have slirp4netns(1), and it's generally +better to test the defaults. + +This reverts commit b58f9a51088afbfc22edb0b25776cfa2c4d8cc40. + +[1] https://github.com/containers/podman/issues/22575 + https://archives.passt.top/passt-dev/20240508090338.2735208-1-sbrivio@redhat.com/ + https://archives.passt.top/passt-user/20240510225714.6aa8e6c0@elisabeth/ + +https://github.com/containers/toolbox/pull/1562 +--- + playbooks/dependencies-centos-9-stream.yaml | 3 +-- + playbooks/dependencies-fedora.yaml | 3 +-- + test/system/libs/helpers.bash | 1 - + 3 files changed, 2 insertions(+), 5 deletions(-) + +diff --git a/playbooks/dependencies-centos-9-stream.yaml b/playbooks/dependencies-centos-9-stream.yaml +index 5c1194c03583..d058d314b7b3 100644 +--- a/playbooks/dependencies-centos-9-stream.yaml ++++ b/playbooks/dependencies-centos-9-stream.yaml +@@ -13,7 +13,6 @@ + - podman + - shadow-utils-subid-devel + - skopeo +- - slirp4netns + - systemd + - udisks2 + +@@ -55,7 +54,7 @@ + chdir: '{{ zuul.project.src_dir }}' + + - name: Check versions of crucial packages +- command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns ++ command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo + + - name: Show podman versions + command: podman version +diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml +index ea605135a4c2..8007ce958ddb 100644 +--- a/playbooks/dependencies-fedora.yaml ++++ b/playbooks/dependencies-fedora.yaml +@@ -35,7 +35,6 @@ + - podman + - shadow-utils-subid-devel + - skopeo +- - slirp4netns + - systemd + - udisks2 + use: "{{ 'dnf' if zuul.attempts > 1 else 'auto' }}" +@@ -56,7 +55,7 @@ + chdir: '{{ zuul.project.src_dir }}' + + - name: Check versions of crucial packages +- command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns ++ command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo + + - name: Show podman versions + command: podman version +diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash +index dfd6236c2943..2d05641f5d0a 100644 +--- a/test/system/libs/helpers.bash ++++ b/test/system/libs/helpers.bash +@@ -195,7 +195,6 @@ function _setup_docker_registry() { + --env REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ + --env REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ + --name "${DOCKER_REG_NAME}" \ +- --network slirp4netns \ + --privileged \ + --publish 50000:5000 \ + --rm \ +-- +2.46.1 + diff --git a/toolbox.spec b/toolbox.spec index 1f0815c..5d4bd3e 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -31,7 +31,7 @@ Version: 0.0.99.6 %endif %endif -Release: 4%{?dist} +Release: 5%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -44,6 +44,7 @@ Source1: %{name}.conf # Upstream Patch0: toolbox-Unbreak-downstream-Fedora-CI.patch Patch1: toolbox-Update-fallback-release-to-40-for-non-fedo.patch +Patch2: toolbox-Revert-Work-around-bug-in-past.patch # Fedora specific Patch100: toolbox-Make-the-build-flags-match-Fedora.patch @@ -123,7 +124,6 @@ Requires: httpd-tools Requires: openssl Requires: python3 Requires: skopeo -Requires: slirp4netns %if ! 0%{?rhel} Requires: bats >= 1.10.0 %endif @@ -137,6 +137,7 @@ The %{name}-tests package contains system tests for %{name}. %setup -q %patch -P0 -p1 %patch -P1 -p1 +%patch -P2 -p1 %if 0%{?fedora} %patch -P100 -p1 @@ -212,6 +213,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Mon Oct 07 2024 Debarshi Ray - 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 - 0.0.99.6-4 - Use the fedora-toolbox:40 image for Fedora Asahi Remix hosts From 8805e4b239bc4a83318257a51d16b3f1294c84ea Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 7 Oct 2024 17:43:14 -0400 Subject: [PATCH 17/36] Fix ELN build Otherwise, it fails with: Processing files: toolbox-debugsource-0.0.99.6-5.eln143.x86_64 RPM build errors: error: Empty %files file /builddir/build/BUILD/toolbox-0.0.99.6-build/toolbox-0.0.99.6/debugsourcefiles.list Empty %files file /builddir/build/BUILD/toolbox-0.0.99.6-build/toolbox-0.0.99.6/debugsourcefiles.list Child return code was: 1 https://src.fedoraproject.org/rpms/toolbox/pull-request/23 --- toolbox.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index 5d4bd3e..8fa6d3f 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -28,6 +28,8 @@ Version: 0.0.99.6 %global toolbx_go 1.22.5 %elif 0%{?rhel} == 10 %global toolbx_go 1.22.5 +%elif 0%{?rhel} > 10 +%global toolbx_go 1.23.1 %endif %endif @@ -148,7 +150,7 @@ The %{name}-tests package contains system tests for %{name}. %patch -P200 -p1 %endif -%if 0%{?rhel} == 10 +%if 0%{?rhel} >= 10 %patch -P201 -p1 %endif From 120a6ce1a658995ad0a2d1ed9bfbc9e760654f20 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 16 Oct 2024 12:29:10 +0200 Subject: [PATCH 18/36] Recommend fuse-overlayfs because old containers created with it need it ... and: * containers-common removed fuse-overlayfs as even a weak dependency [1] * there are still several such containers out there in the wild [2,3] This should be removed once Toolbx can detect the situation and offer users a migration path. [1] Fedora containers-common commit 447945e59a01cb67 https://src.fedoraproject.org/rpms/containers-common/c/447945e59a01cb67 [2] https://discussion.fedoraproject.org/t/rpm-ostree-update-breaks-toolbox-fedora-40 [3] https://github.com/containers/toolbox/issues/1512 https://bugzilla.redhat.com/show_bug.cgi?id=2319121 --- toolbox.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index 8fa6d3f..f7adb02 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -33,7 +33,7 @@ Version: 0.0.99.6 %endif %endif -Release: 5%{?dist} +Release: 6%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -90,6 +90,7 @@ BuildRequires: pkgconfig(fish) # BuildRequires: ShellCheck %endif +Recommends: fuse-overlayfs Recommends: skopeo Requires: containers-common @@ -215,6 +216,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Wed Oct 16 2024 Debarshi Ray - 0.0.99.6-6 +- Recommend fuse-overlayfs because old containers created with it need it + * Mon Oct 07 2024 Debarshi Ray - 0.0.99.6-5 - Don't use slirp4netns(1) in tests to work around bug in pasta(1) From 6f1c1c40528ddeeb97327fcdb297c99b75ff75f2 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 22 Oct 2024 22:07:21 +0200 Subject: [PATCH 19/36] Update to 0.1.0 ... and update the BuildRequires on golang to reflect reality. --- .gitignore | 1 + sources | 2 +- toolbox-Revert-Work-around-bug-in-past.patch | 81 -------------- toolbox-Unbreak-downstream-Fedora-CI.patch | 104 ------------------ ...-fallback-release-to-40-for-non-fedo.patch | 30 ----- toolbox.spec | 21 ++-- 6 files changed, 11 insertions(+), 228 deletions(-) delete mode 100644 toolbox-Revert-Work-around-bug-in-past.patch delete mode 100644 toolbox-Unbreak-downstream-Fedora-CI.patch delete mode 100644 toolbox-Update-fallback-release-to-40-for-non-fedo.patch diff --git a/.gitignore b/.gitignore index 8751077..f6ada90 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /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 diff --git a/sources b/sources index a7670e1..6105f3e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.0.99.6-vendored.tar.xz) = 9ecec200069e8e2536e5ece43d411f9025dba6f60573e7939a0fc26deef29f0297d405a44fd409e978879b0579ab0a79ace97228a199584854c638213fa219d7 +SHA512 (toolbox-0.1.0-vendored.tar.xz) = c3bfdbb6dfeabc0e7165605ef2beabf4b7d98fb68fb5f7bc59e21994c8d9a9efc5fd21f0dc5f15c37f30cbde24d3cac356fc901a651e9608cbe9731728a032a8 diff --git a/toolbox-Revert-Work-around-bug-in-past.patch b/toolbox-Revert-Work-around-bug-in-past.patch deleted file mode 100644 index 5597a9f..0000000 --- a/toolbox-Revert-Work-around-bug-in-past.patch +++ /dev/null @@ -1,81 +0,0 @@ -From ed14cd483ae45c5f4cf5596b11c384f4b42bb53b Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Fri, 4 Oct 2024 22:09:03 +0200 -Subject: [PATCH] Revert "playbooks, test/system: Work around bug in pasta(1) - networks" - -The bug in pasta(1) that necessitated this workaround has since been -fixed in passt 2024_05_10.7288448 [1]. Some host operating systems like -CentOS Stream 10 no longer have slirp4netns(1), and it's generally -better to test the defaults. - -This reverts commit b58f9a51088afbfc22edb0b25776cfa2c4d8cc40. - -[1] https://github.com/containers/podman/issues/22575 - https://archives.passt.top/passt-dev/20240508090338.2735208-1-sbrivio@redhat.com/ - https://archives.passt.top/passt-user/20240510225714.6aa8e6c0@elisabeth/ - -https://github.com/containers/toolbox/pull/1562 ---- - playbooks/dependencies-centos-9-stream.yaml | 3 +-- - playbooks/dependencies-fedora.yaml | 3 +-- - test/system/libs/helpers.bash | 1 - - 3 files changed, 2 insertions(+), 5 deletions(-) - -diff --git a/playbooks/dependencies-centos-9-stream.yaml b/playbooks/dependencies-centos-9-stream.yaml -index 5c1194c03583..d058d314b7b3 100644 ---- a/playbooks/dependencies-centos-9-stream.yaml -+++ b/playbooks/dependencies-centos-9-stream.yaml -@@ -13,7 +13,6 @@ - - podman - - shadow-utils-subid-devel - - skopeo -- - slirp4netns - - systemd - - udisks2 - -@@ -55,7 +54,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns -+ command: rpm -qa ShellCheck bats codespell *kernel* gcc *glibc* golang golang-github-cpuguy83-md2man shadow-utils-subid-devel podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - - - name: Show podman versions - command: podman version -diff --git a/playbooks/dependencies-fedora.yaml b/playbooks/dependencies-fedora.yaml -index ea605135a4c2..8007ce958ddb 100644 ---- a/playbooks/dependencies-fedora.yaml -+++ b/playbooks/dependencies-fedora.yaml -@@ -35,7 +35,6 @@ - - podman - - shadow-utils-subid-devel - - skopeo -- - slirp4netns - - systemd - - udisks2 - use: "{{ 'dnf' if zuul.attempts > 1 else 'auto' }}" -@@ -56,7 +55,7 @@ - chdir: '{{ zuul.project.src_dir }}' - - - name: Check versions of crucial packages -- command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo slirp4netns -+ command: rpm -qa ShellCheck bash bats codespell *kernel* gcc *glibc* shadow-utils-subid-devel golang golang-github-cpuguy83-md2man podman conmon containernetworking-plugins containers-common container-selinux crun fuse-overlayfs flatpak-session-helper skopeo - - - name: Show podman versions - command: podman version -diff --git a/test/system/libs/helpers.bash b/test/system/libs/helpers.bash -index dfd6236c2943..2d05641f5d0a 100644 ---- a/test/system/libs/helpers.bash -+++ b/test/system/libs/helpers.bash -@@ -195,7 +195,6 @@ function _setup_docker_registry() { - --env REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \ - --env REGISTRY_HTTP_TLS_KEY=/certs/domain.key \ - --name "${DOCKER_REG_NAME}" \ -- --network slirp4netns \ - --privileged \ - --publish 50000:5000 \ - --rm \ --- -2.46.1 - diff --git a/toolbox-Unbreak-downstream-Fedora-CI.patch b/toolbox-Unbreak-downstream-Fedora-CI.patch deleted file mode 100644 index b743f2d..0000000 --- a/toolbox-Unbreak-downstream-Fedora-CI.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 1e90c721858b3119702b93445f535f9c23af88e6 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Wed, 2 Oct 2024 22:43:37 +0200 -Subject: [PATCH] test/system: Unbreak the downstream Fedora CI - -The working directory from which bats(1) is invoked might not be part of -the Toolbx container. eg., the downstream Fedora CI invokes the tests -as: - $ cd /path/to/toolbox/test/system - $ bats . - -... and it led to: - not ok 8 help: Try unknown command (forwarded to host) - # tags: commands-options - # (from function `assert_line' in file - ./libs/bats-assert/src/assert.bash, line 488, - # in test file ./002-help.bats, line 135) - # `assert_line --index 0 - "Error: unknown command \"foo\" for \"toolbox\""' failed - # - # -- line differs -- - # index : 0 - # expected : Error: unknown command "foo" for "toolbox" - # actual : 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 - # -- - # - -https://github.com/containers/toolbox/pull/1560 ---- - test/system/002-help.bats | 2 ++ - test/system/501-create.bats | 2 ++ - test/system/504-run.bats | 2 ++ - test/system/505-enter.bats | 2 ++ - 4 files changed, 8 insertions(+) - -diff --git a/test/system/002-help.bats b/test/system/002-help.bats -index 57e918a04d22..a8bfbc2c79d2 100644 ---- a/test/system/002-help.bats -+++ b/test/system/002-help.bats -@@ -25,9 +25,11 @@ setup() { - bats_require_minimum_version 1.10.0 - _setup_environment - cleanup_all -+ pushd "$HOME" || return 1 - } - - teardown() { -+ popd || return 1 - cleanup_all - } - -diff --git a/test/system/501-create.bats b/test/system/501-create.bats -index 3f50f98e6bf3..cfb676b7001b 100644 ---- a/test/system/501-create.bats -+++ b/test/system/501-create.bats -@@ -25,9 +25,11 @@ setup() { - bats_require_minimum_version 1.8.0 - _setup_environment - cleanup_all -+ pushd "$HOME" || return 1 - } - - teardown() { -+ popd || return 1 - cleanup_all - } - -diff --git a/test/system/504-run.bats b/test/system/504-run.bats -index cc5f6fa8bb09..6ee3e86af1ff 100644 ---- a/test/system/504-run.bats -+++ b/test/system/504-run.bats -@@ -25,9 +25,11 @@ setup() { - bats_require_minimum_version 1.8.0 - _setup_environment - cleanup_all -+ pushd "$HOME" || return 1 - } - - teardown() { -+ popd || return 1 - cleanup_all - } - -diff --git a/test/system/505-enter.bats b/test/system/505-enter.bats -index 405d184f145e..57e58651623d 100644 ---- a/test/system/505-enter.bats -+++ b/test/system/505-enter.bats -@@ -25,9 +25,11 @@ setup() { - bats_require_minimum_version 1.8.0 - _setup_environment - cleanup_all -+ pushd "$HOME" || return 1 - } - - teardown() { -+ popd || return 1 - cleanup_all - } - --- -2.46.1 - diff --git a/toolbox-Update-fallback-release-to-40-for-non-fedo.patch b/toolbox-Update-fallback-release-to-40-for-non-fedo.patch deleted file mode 100644 index 7bad62f..0000000 --- a/toolbox-Update-fallback-release-to-40-for-non-fedo.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b524f4cebd8c65746089f898e14a99c7cfded306 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Thu, 3 Oct 2024 22:08:04 +0200 -Subject: [PATCH] pkg/utils: Update fallback release to 40 for non-fedora hosts - -Fedora 38 reached End of Life on 21st May 2024: -https://docs.fedoraproject.org/en-US/releases/eol/ - -https://bugzilla.redhat.com/show_bug.cgi?id=2316312 -https://github.com/containers/toolbox/pull/1561 ---- - src/pkg/utils/utils.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pkg/utils/utils.go b/src/pkg/utils/utils.go -index eefcd1eeb2cc..37a49fedf772 100644 ---- a/src/pkg/utils/utils.go -+++ b/src/pkg/utils/utils.go -@@ -64,7 +64,7 @@ const ( - containerNamePrefixFallback = "fedora-toolbox" - distroFallback = "fedora" - idTruncLength = 12 -- releaseFallback = "38" -+ releaseFallback = "40" - ) - - const ( --- -2.46.1 - diff --git a/toolbox.spec b/toolbox.spec index f7adb02..212cc19 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.0.99.6 +Version: 0.1.0 %global goipath github.com/containers/%{name} @@ -20,7 +20,7 @@ Version: 0.0.99.6 %global toolbx_go 1.20 %if 0%{?fedora} -%global toolbx_go 1.22 +%global toolbx_go 1.22.7 %endif %if 0%{?rhel} @@ -33,7 +33,7 @@ Version: 0.0.99.6 %endif %endif -Release: 6%{?dist} +Release: 1%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -43,11 +43,6 @@ Source0: https://github.com/containers/%{name}/releases/download/%{version # RHEL specific Source1: %{name}.conf -# Upstream -Patch0: toolbox-Unbreak-downstream-Fedora-CI.patch -Patch1: toolbox-Update-fallback-release-to-40-for-non-fedo.patch -Patch2: toolbox-Revert-Work-around-bug-in-past.patch - # Fedora specific Patch100: toolbox-Make-the-build-flags-match-Fedora.patch @@ -90,8 +85,10 @@ BuildRequires: pkgconfig(fish) # BuildRequires: ShellCheck %endif -Recommends: fuse-overlayfs Recommends: skopeo +%if ! 0%{?rhel} +Recommends: fuse-overlayfs +%endif Requires: containers-common Requires: podman >= 1.6.4 @@ -138,9 +135,6 @@ The %{name}-tests package contains system tests for %{name}. %prep %setup -q -%patch -P0 -p1 -%patch -P1 -p1 -%patch -P2 -p1 %if 0%{?fedora} %patch -P100 -p1 @@ -216,6 +210,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Tue Oct 22 2024 Debarshi Ray - 0.1.0-1 +- Update to 0.1.0 + * Wed Oct 16 2024 Debarshi Ray - 0.0.99.6-6 - Recommend fuse-overlayfs because old containers created with it need it From 8ec06e58caef451a542c5c70684af9c2dfddcc8f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 4 Nov 2024 15:50:36 +0100 Subject: [PATCH 20/36] Update to 0.1.1 https://bugzilla.redhat.com/show_bug.cgi?id=2323150 --- .gitignore | 1 + sources | 2 +- toolbox.spec | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f6ada90..f8a0e7d 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ /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 diff --git a/sources b/sources index 6105f3e..a197a89 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.1.0-vendored.tar.xz) = c3bfdbb6dfeabc0e7165605ef2beabf4b7d98fb68fb5f7bc59e21994c8d9a9efc5fd21f0dc5f15c37f30cbde24d3cac356fc901a651e9608cbe9731728a032a8 +SHA512 (toolbox-0.1.1-vendored.tar.xz) = dc3aa19f504de49addfe85fa800a0e553c65292cf0d48bca60946251fb8d7ba8bc53c9411a7db5f83f1d256ec960b0f22d2d5798f022be5b704c2bf3531f4ba1 diff --git a/toolbox.spec b/toolbox.spec index 212cc19..356b732 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.1.0 +Version: 0.1.1 %global goipath github.com/containers/%{name} @@ -63,7 +63,7 @@ BuildRequires: systemd-rpm-macros BuildRequires: golang(github.com/HarryMichal/go-version) >= 1.0.1 BuildRequires: golang-ipath(github.com/NVIDIA/go-nvlib) >= 0.6.1 BuildRequires: golang-ipath(github.com/NVIDIA/go-nvml) >= 0.12.4.0 -BuildRequires: golang-ipath(github.com/NVIDIA/nvidia-container-toolkit) >= 1.16.1 +BuildRequires: golang-ipath(github.com/NVIDIA/nvidia-container-toolkit) >= 1.16.2 BuildRequires: golang(github.com/acobaugh/osrelease) >= 0.1.0 BuildRequires: golang(github.com/briandowns/spinner) >= 1.18.0 BuildRequires: golang(github.com/docker/go-units) >= 0.5.0 @@ -74,7 +74,7 @@ BuildRequires: golang(github.com/google/renameio/v2) >= 2.0.0 BuildRequires: golang(github.com/sirupsen/logrus) >= 1.9.3 BuildRequires: golang(github.com/spf13/cobra) >= 1.3.0 BuildRequires: golang(github.com/spf13/viper) >= 1.10.1 -BuildRequires: golang-ipath(golang.org/x/sys) >= 0.22.0 +BuildRequires: golang-ipath(golang.org/x/sys) >= 0.24.0 BuildRequires: golang(golang.org/x/text) >= 0.3.8 BuildRequires: golang-ipath(gopkg.in/yaml.v3) >= 3.0.1 BuildRequires: golang-ipath(tags.cncf.io/container-device-interface) >= 0.8.0 @@ -210,6 +210,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Mon Nov 04 2024 Debarshi Ray - 0.1.1-1 +- Update to 0.1.1 + * Tue Oct 22 2024 Debarshi Ray - 0.1.0-1 - Update to 0.1.0 From d61e4b81c982975b0fa7b97492347b515636aa89 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 13:06:21 +0000 Subject: [PATCH 21/36] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- toolbox.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index 356b732..919c346 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -33,7 +33,7 @@ Version: 0.1.1 %endif %endif -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -210,6 +210,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Sun Jan 19 2025 Fedora Release Engineering - 0.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Mon Nov 04 2024 Debarshi Ray - 0.1.1-1 - Update to 0.1.1 From d6c4d7c587f9959e8785783ea43318e38c7dcc2f Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 22 Jan 2025 19:34:20 +0100 Subject: [PATCH 22/36] Use RPM macros for shell completions and clean up directory ownership ... as recommended by the Fedora packaging guidelines [1,2]. This was made possible by two recent developments. First, the parent directories for shell completions are now owned by the filesystem RPM [3,4]. So, there won't be any unowned directories, if the toolbox RPM doesn't own them without depending on some other package that owns those directories. Second, there are now RPM macros for the parent directories for shell completions [5]. [1] https://docs.fedoraproject.org/es/packaging-guidelines/ShellCompletions/ [2] https://docs.fedoraproject.org/es/packaging-guidelines/UnownedDirectories/ [3] Fedora filesystem commit 47d37ac94192f792 https://src.fedoraproject.org/rpms/filesystem/c/47d37ac94192f792 https://bugzilla.redhat.com/show_bug.cgi?id=1312594 [4] Fedora filesystem commit 4c45982cd067557e https://src.fedoraproject.org/rpms/filesystem/c/4c45982cd067557e https://bugzilla.redhat.com/show_bug.cgi?id=1504616 [5] Fedora redhat-rpm-config commit 483a3b89d74c6f0b https://src.fedoraproject.org/rpms/redhat-rpm-config/c/483a3b89d74c6f0b --- toolbox.spec | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/toolbox.spec b/toolbox.spec index 919c346..1cea2aa 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -33,7 +33,7 @@ Version: 0.1.1 %endif %endif -Release: 2%{?dist} +Release: 3%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -164,14 +164,14 @@ export CGO_CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_ %meson \ %if 0%{?rhel} - -Dfish_completions_dir=%{_datadir}/fish/vendor_completions.d \ + -Dfish_completions_dir=%{fish_completions_dir} \ %if 0%{?rhel} <= 9 -Dmigration_path_for_coreos_toolbox=true \ %endif %endif -Dprofile_dir=%{_sysconfdir}/profile.d \ -Dtmpfiles_dir=%{_tmpfilesdir} \ - -Dzsh_completions_dir=%{_datadir}/zsh/site-functions + -Dzsh_completions_dir=%{zsh_completions_dir} %meson_build @@ -194,15 +194,15 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %doc CODE-OF-CONDUCT.md CONTRIBUTING.md GOALS.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} %files tests @@ -210,6 +210,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Wed Jan 22 2025 Debarshi Ray - 0.1.1-3 +- Use RPM macros for shell completions and clean up directory ownership + * Sun Jan 19 2025 Fedora Release Engineering - 0.1.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 0cbcff3ba45a4c92dd10382f891b84b78503e9ba Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Thu, 23 Jan 2025 15:24:12 +0530 Subject: [PATCH 23/36] TMT: Initial enablement This PR will enable test runs using TMT. These tests can be maintained here for starters and fetched and reused in the podman rpm for toolbox tests on bodhi updates. https://src.fedoraproject.org/rpms/toolbox/pull-request/24 --- .fmf/version | 1 + plans/main.fmf | 4 ++ tests/main.fmf | 10 +++ tests/roles/nonroot_user/tasks/main.yml | 7 -- .../run_bats_tests/files/run_bats_tests.sh | 72 ------------------- tests/roles/run_bats_tests/tasks/main.yml | 37 ---------- .../run_bats_tests/tasks/run_one_test.yml | 52 -------------- tests/rootless-test.sh | 11 +++ tests/tests.yml | 12 ---- tests/tmt-envvars | 18 +++++ 10 files changed, 44 insertions(+), 180 deletions(-) create mode 100644 .fmf/version create mode 100644 plans/main.fmf create mode 100644 tests/main.fmf delete mode 100644 tests/roles/nonroot_user/tasks/main.yml delete mode 100755 tests/roles/run_bats_tests/files/run_bats_tests.sh delete mode 100644 tests/roles/run_bats_tests/tasks/main.yml delete mode 100644 tests/roles/run_bats_tests/tasks/run_one_test.yml create mode 100644 tests/rootless-test.sh delete mode 100644 tests/tests.yml create mode 100644 tests/tmt-envvars diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/main.fmf b/plans/main.fmf new file mode 100644 index 0000000..e6427de --- /dev/null +++ b/plans/main.fmf @@ -0,0 +1,4 @@ +discover: + how: fmf +execute: + how: tmt diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..c489385 --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,10 @@ +environment: + ROOTLESS_USER: "fedora" + TMPDIR: /var/tmp +require: + - toolbox-tests + +/rootless: + summary: rootless test + test: bash ./rootless-test.sh + duration: 120m diff --git a/tests/roles/nonroot_user/tasks/main.yml b/tests/roles/nonroot_user/tasks/main.yml deleted file mode 100644 index 51bf44a..0000000 --- a/tests/roles/nonroot_user/tasks/main.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: create nonroot user - user: - name: testuser - shell: /bin/bash -- name: enable linger - command: loginctl enable-linger testuser diff --git a/tests/roles/run_bats_tests/files/run_bats_tests.sh b/tests/roles/run_bats_tests/files/run_bats_tests.sh deleted file mode 100755 index e9f5f5f..0000000 --- a/tests/roles/run_bats_tests/files/run_bats_tests.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/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 diff --git a/tests/roles/run_bats_tests/tasks/main.yml b/tests/roles/run_bats_tests/tasks/main.yml deleted file mode 100644 index adc72f2..0000000 --- a/tests/roles/run_bats_tests/tasks/main.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -# 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_tasks: 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" diff --git a/tests/roles/run_bats_tests/tasks/run_one_test.yml b/tests/roles/run_bats_tests/tasks/run_one_test.yml deleted file mode 100644 index bf45754..0000000 --- a/tests/roles/run_bats_tests/tasks/run_one_test.yml +++ /dev/null @@ -1,52 +0,0 @@ ---- -- 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 }}" - TMPDIR: "/var/tmp" - -- 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 }}" - -- 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 diff --git a/tests/rootless-test.sh b/tests/rootless-test.sh new file mode 100644 index 0000000..16da9fe --- /dev/null +++ b/tests/rootless-test.sh @@ -0,0 +1,11 @@ +#!/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 ." diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index e7ff188..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- hosts: localhost - tags: classic - vars: - - artifacts: ./artifacts - roles: - - role: nonroot_user - - role: run_bats_tests - tests: - - name: toolbox - package: toolbox - become: true diff --git a/tests/tmt-envvars b/tests/tmt-envvars new file mode 100644 index 0000000..6b4b747 --- /dev/null +++ b/tests/tmt-envvars @@ -0,0 +1,18 @@ +TMT_TREE +TMT_PLAN_DATA +TMT_VERSION +TMT_TEST_NAME +TMT_TEST_DATA +TMT_TEST_SERIAL_NUMBER +TMT_TEST_ITERATION_ID +TMT_TEST_METADATA +TMT_SOURCE_DIR +TMT_REBOOT_COUNT +TMT_TEST_RESTART_COUNT +TMT_TOPOLOGY_BASH +TMT_TOPOLOGY_YAML +TMT_TEST_PIDFILE +TMT_TEST_PIDFILE_LOCK +TMT_TEST_PIDFILE_ROOT +ROOTLESS_USER +TMPDIR From a3506a3263d8003ac1803ac7b48876ec40cb4f82 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 2 Jun 2025 17:04:56 +0200 Subject: [PATCH 24/36] Update to 0.1.2 Switch to vendored dependencies on Fedora because the package for github.com/spf13/viper (ie., golang-github-spf13-viper) currently has broken dependencies because a number of Go packages were recently orphaned and retired. Hopefully, this is aligned with the direction the Go ecosystem in Fedora is taking [1], and won't lead to too many problems. This further unifies Fedora with RHEL, which was already using vendored dependencies. Now that all the Go dependencies are in the src/vendor directory, there's no need to mess around with the GO111MODULE (ie., gomodulesmode) and GOPATH environment variables. Those were probably already not needed on RHEL. [1] https://fedoraproject.org/wiki/Changes/GolangPackagesVendoredByDefault https://bugzilla.redhat.com/show_bug.cgi?id=2370151 --- .gitignore | 1 + sources | 2 +- ...ox-Make-the-build-flags-match-Fedora.patch | 19 +++++++++-- ...x-Make-the-build-flags-match-RHEL-10.patch | 4 +-- ...ox-Make-the-build-flags-match-RHEL-9.patch | 4 +-- toolbox.spec | 33 +++++-------------- 6 files changed, 31 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index f8a0e7d..4222058 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ /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 diff --git a/sources b/sources index a197a89..fc880e6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.1.1-vendored.tar.xz) = dc3aa19f504de49addfe85fa800a0e553c65292cf0d48bca60946251fb8d7ba8bc53c9411a7db5f83f1d256ec960b0f22d2d5798f022be5b704c2bf3531f4ba1 +SHA512 (toolbox-0.1.2-vendored.tar.xz) = 1d1b461b84d0c995c4f793eb154815c1ed68ce3545dfb8e711a0061484efb988e796bca43f7ada3c8d9eb0673c6c1fe9f923226eff6e7bc3de9e4b2e2e44485e diff --git a/toolbox-Make-the-build-flags-match-Fedora.patch b/toolbox-Make-the-build-flags-match-Fedora.patch index 27fd99d..92123b4 100644 --- a/toolbox-Make-the-build-flags-match-Fedora.patch +++ b/toolbox-Make-the-build-flags-match-Fedora.patch @@ -1,11 +1,26 @@ -From 7dc70160c8ff531473004e879dd57ec303789d71 Mon Sep 17 00:00:00 2001 +From 767c59c40128dda3d29191be8289ff16af888187 Mon Sep 17 00:00:00 2001 From: Debarshi Ray 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(-) @@ -43,5 +58,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.46.1 +2.49.0 diff --git a/toolbox-Make-the-build-flags-match-RHEL-10.patch b/toolbox-Make-the-build-flags-match-RHEL-10.patch index e43e0eb..5677d56 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-10.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-10.patch @@ -1,4 +1,4 @@ -From f08f64c0d5f2019055381c3c00426fe8545e5e31 Mon Sep 17 00:00:00 2001 +From 2090a139dc6b9be6d51fbd7875fda06b6502cda0 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 10's %{gobuildflags} @@ -67,5 +67,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.46.1 +2.49.0 diff --git a/toolbox-Make-the-build-flags-match-RHEL-9.patch b/toolbox-Make-the-build-flags-match-RHEL-9.patch index 2c15142..0804f78 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-9.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-9.patch @@ -1,4 +1,4 @@ -From ff1320fa869f1e4952836436ab2ad928cbba0987 Mon Sep 17 00:00:00 2001 +From 3603ef5eff9615b7df2bf665fd5edc9434d99f6e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 9's %{gobuildflags} @@ -46,5 +46,5 @@ index a5a1a6a508fb..0a2c7526f210 100755 exit "$?" -- -2.46.1 +2.49.0 diff --git a/toolbox.spec b/toolbox.spec index 1cea2aa..f03f005 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.1.1 +Version: 0.1.2 %global goipath github.com/containers/%{name} @@ -33,7 +33,7 @@ Version: 0.1.1 %endif %endif -Release: 3%{?dist} +Release: 1%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -60,31 +60,13 @@ BuildRequires: shadow-utils-subid-devel >= 4.16.0 BuildRequires: systemd BuildRequires: systemd-rpm-macros %if ! 0%{?rhel} -BuildRequires: golang(github.com/HarryMichal/go-version) >= 1.0.1 -BuildRequires: golang-ipath(github.com/NVIDIA/go-nvlib) >= 0.6.1 -BuildRequires: golang-ipath(github.com/NVIDIA/go-nvml) >= 0.12.4.0 -BuildRequires: golang-ipath(github.com/NVIDIA/nvidia-container-toolkit) >= 1.16.2 -BuildRequires: golang(github.com/acobaugh/osrelease) >= 0.1.0 -BuildRequires: golang(github.com/briandowns/spinner) >= 1.18.0 -BuildRequires: golang(github.com/docker/go-units) >= 0.5.0 -BuildRequires: golang(github.com/fsnotify/fsnotify) >= 1.7.0 -BuildRequires: golang(github.com/go-logfmt/logfmt) >= 0.5.0 -BuildRequires: golang(github.com/godbus/dbus) >= 5.0.6 -BuildRequires: golang(github.com/google/renameio/v2) >= 2.0.0 -BuildRequires: golang(github.com/sirupsen/logrus) >= 1.9.3 -BuildRequires: golang(github.com/spf13/cobra) >= 1.3.0 -BuildRequires: golang(github.com/spf13/viper) >= 1.10.1 -BuildRequires: golang-ipath(golang.org/x/sys) >= 0.24.0 -BuildRequires: golang(golang.org/x/text) >= 0.3.8 -BuildRequires: golang-ipath(gopkg.in/yaml.v3) >= 3.0.1 -BuildRequires: golang-ipath(tags.cncf.io/container-device-interface) >= 0.8.0 BuildRequires: pkgconfig(fish) # for tests # BuildRequires: codespell -# BuildRequires: golang(github.com/stretchr/testify) >= 1.9.0 # BuildRequires: ShellCheck %endif +Recommends: p11-kit-server Recommends: skopeo %if ! 0%{?rhel} Recommends: fuse-overlayfs @@ -154,12 +136,10 @@ The %{name}-tests package contains system tests for %{name}. %endif %endif -%gomkdir -s %{_builddir}/%{extractdir}/src %{?rhel:-k} +%gomkdir -s %{_builddir}/%{extractdir}/src -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 \ @@ -192,7 +172,7 @@ 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 %{?rhel:src/vendor/modules.txt} +%license COPYING src/vendor/modules.txt %{_bindir}/%{name} %{_mandir}/man1/%{name}.1* %{_mandir}/man1/%{name}-*.1* @@ -210,6 +190,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Tue Jun 03 2025 Debarshi Ray - 0.1.2-1 +- Update to 0.1.2 + * Wed Jan 22 2025 Debarshi Ray - 0.1.1-3 - Use RPM macros for shell completions and clean up directory ownership From 23a91e7031864e06fb59cb9845ceb34994b6aa8b Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 16 Jun 2025 16:04:11 +0200 Subject: [PATCH 25/36] Update the baseline BuildRequires on golang ... to match what Toolbx 0.1.2 actually needs [1]. There's no need to do a build just for this. Fallout from a3506a3263d8003ac1803ac7b48876ec40cb4f82 [1] Upstream commit 82e85bac9f5e69a5 https://github.com/containers/toolbox/commit/82e85bac9f5e69a5 https://github.com/containers/toolbox/pull/1614 --- toolbox.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index f03f005..54391fe 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -17,7 +17,7 @@ Version: 0.1.2 %endif %endif -%global toolbx_go 1.20 +%global toolbx_go 1.21 %if 0%{?fedora} %global toolbx_go 1.22.7 From cf4d77aa240641d4491233190ba6fed4d6aaf302 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 16 Jun 2025 16:21:06 +0200 Subject: [PATCH 26/36] Update the BuildRequires on golang for Fedora and ELN to reflect reality There's no need to do a build just for this. --- toolbox.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toolbox.spec b/toolbox.spec index 54391fe..8597843 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -20,7 +20,7 @@ Version: 0.1.2 %global toolbx_go 1.21 %if 0%{?fedora} -%global toolbx_go 1.22.7 +%global toolbx_go 1.23.9 %endif %if 0%{?rhel} @@ -29,7 +29,7 @@ Version: 0.1.2 %elif 0%{?rhel} == 10 %global toolbx_go 1.22.5 %elif 0%{?rhel} > 10 -%global toolbx_go 1.23.1 +%global toolbx_go 1.24.3 %endif %endif From 07f1db2b0d3a912118493fcd263da74bdf5f3844 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 16 Jun 2025 19:47:18 +0200 Subject: [PATCH 27/36] Revert "Don't 'Requires: flatpak-session-helper' on RHEL" The org.freedesktop.Flatpak D-Bus service provided by the flatpak-session-helper RPM is not just needed to use containers created by Toolbx < 0.0.97 [1,2]. It's needed on the host when toolbox(1) invocations inside a container are forwarded to the host with 'flatpak-spawn --host ...'. This has been true since Toolbx >= 0.0.6 [3], and, hence, flatpak-session-helper is needed on RHEL. There's no need to do a build just for this. This reverts commit a8b4975b5ccc52a4161a9ff21a2e9a2f6c0f7407. [1] Upstream commit 82c32bea742621a3 https://github.com/containers/toolbox/commit/82c32bea742621a3 https://github.com/containers/toolbox/pull/591 https://github.com/containers/toolbox/issues/267 [2] Upstream commit 71b5c8c0a235249b https://github.com/containers/toolbox/commit/71b5c8c0a235249b https://github.com/containers/toolbox/pull/591 https://github.com/containers/toolbox/issues/267 [3] Upstream commit 5b3d234c9e9ef45f https://github.com/containers/toolbox/commit/5b3d234c9e9ef45f https://github.com/containers/toolbox/pull/54 --- toolbox.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/toolbox.spec b/toolbox.spec index 8597843..f86b99d 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -73,11 +73,9 @@ 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 From 3a4c4677a1f943fe519fecdd37486777f92b5cd7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 16 Jun 2025 22:29:28 +0200 Subject: [PATCH 28/36] Unify the build with RHEL There's no need to do a build just for this. --- ...igration-paths-for-coreos-toolbox-users.patch | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch index 9f470cd..c21625e 100644 --- a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch +++ b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch @@ -1,4 +1,4 @@ -From c25ad44b7cb50d470b1533931b7808cc194f0d50 Mon Sep 17 00:00:00 2001 +From 401abbfb6f820670bc14ca5c555151a0a657b67b Mon Sep 17 00:00:00 2001 From: Debarshi Ray 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 719c0d6abb20..92a097283f38 100644 +index 7094c3a4eec9..f6c7acffe76a 100644 --- a/src/cmd/run.go +++ b/src/cmd/run.go -@@ -566,6 +566,7 @@ func constructExecArgs(container, preserveFDs string, +@@ -573,6 +573,7 @@ func constructExecArgs(container, preserveFDs string, execArgs = append(execArgs, envOptions...) execArgs = append(execArgs, []string{ @@ -22,10 +22,10 @@ index 719c0d6abb20..92a097283f38 100644 "--preserve-fds", preserveFDs, }...) -- -2.46.1 +2.49.0 -From e7877a4d1d38dc35aa6da6c012ec9a23397b7aa4 Mon Sep 17 00:00:00 2001 +From a5d5fdfe8539af0a23af5a5503197389a0a4d0dd Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 10 Dec 2021 13:42:15 +0100 Subject: [PATCH 2/2] test/system: Update to test the migration path for @@ -42,10 +42,10 @@ ca899c8a561f357ae32c6ba6813520fd8b682abb and the parts of commit create mode 100644 test/system/100-root.bats diff --git a/test/system/002-help.bats b/test/system/002-help.bats -index a8bfbc2c79d2..5dd14025ea0b 100644 +index 921c23b51a44..192603d71aba 100644 --- a/test/system/002-help.bats +++ b/test/system/002-help.bats -@@ -33,20 +33,6 @@ teardown() { +@@ -34,20 +34,6 @@ teardown_file() { cleanup_all } @@ -100,5 +100,5 @@ index 000000000000..cf35d60ac25c + skip "Testing of entering toolboxes is not implemented" +} -- -2.46.1 +2.49.0 From 63c067cd193cf43db8e33524c4176c2e8c666c7e Mon Sep 17 00:00:00 2001 From: Lokesh Mandvekar Date: Wed, 4 Jun 2025 09:06:16 -0400 Subject: [PATCH 29/36] TMT: Prevent Bats from hanging when tearing down the test suite 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/1652 https://src.fedoraproject.org/rpms/toolbox/pull-request/30 --- tests/main.fmf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/main.fmf b/tests/main.fmf index c489385..77df303 100644 --- a/tests/main.fmf +++ b/tests/main.fmf @@ -6,5 +6,7 @@ require: /rootless: summary: rootless test - test: bash ./rootless-test.sh - duration: 120m + test: | + rpm --erase p11-kit-server + bash ./rootless-test.sh + duration: 150m From db0197b744b08122eb5d9ab457859412c7194377 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 19:26:32 +0000 Subject: [PATCH 30/36] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- toolbox.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index f86b99d..0013af4 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -33,7 +33,7 @@ Version: 0.1.2 %endif %endif -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -188,6 +188,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Fri Jul 25 2025 Fedora Release Engineering - 0.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jun 03 2025 Debarshi Ray - 0.1.2-1 - Update to 0.1.2 From 1ba0b4876e184cae824334c38617553b025a6d7d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Sat, 9 Aug 2025 12:24:26 +0200 Subject: [PATCH 31/36] Update to 0.2 ... 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 --- .gitignore | 1 + sources | 2 +- tests/main.fmf | 2 +- ...-migration-paths-for-coreos-toolbox-users.patch | 14 +++++++------- toolbox-Make-the-build-flags-match-Fedora.patch | 4 ++-- toolbox-Make-the-build-flags-match-RHEL-10.patch | 4 ++-- toolbox-Make-the-build-flags-match-RHEL-9.patch | 4 ++-- toolbox.rpmlintrc | 1 + toolbox.spec | 10 +++++++--- 9 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 toolbox.rpmlintrc diff --git a/.gitignore b/.gitignore index 4222058..596c5d0 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /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 diff --git a/sources b/sources index fc880e6..c80564e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.1.2-vendored.tar.xz) = 1d1b461b84d0c995c4f793eb154815c1ed68ce3545dfb8e711a0061484efb988e796bca43f7ada3c8d9eb0673c6c1fe9f923226eff6e7bc3de9e4b2e2e44485e +SHA512 (toolbox-0.2-vendored.tar.xz) = 670737a5911d62c0492fcc27cbee51fbfa909ad2f6dbc4ea035048b122857e8c0f37294db0ce29503c7e5c01e12eb90c30f7f6ce7b2e54662f3332c076cd77bd diff --git a/tests/main.fmf b/tests/main.fmf index 77df303..25a6fe7 100644 --- a/tests/main.fmf +++ b/tests/main.fmf @@ -9,4 +9,4 @@ require: test: | rpm --erase p11-kit-server bash ./rootless-test.sh - duration: 150m + duration: 4h diff --git a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch index c21625e..9ff5bb8 100644 --- a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch +++ b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch @@ -1,4 +1,4 @@ -From 401abbfb6f820670bc14ca5c555151a0a657b67b Mon Sep 17 00:00:00 2001 +From b0f4d55b16e59375012ea0ffbfe31086cbef2fef Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 18 Aug 2021 17:55:21 +0200 Subject: [PATCH 1/2] cmd/run: Make sosreport work by setting the HOST @@ -10,7 +10,7 @@ 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 7094c3a4eec9..f6c7acffe76a 100644 +index 389ea1615234..2e78a3ba3ecd 100644 --- a/src/cmd/run.go +++ b/src/cmd/run.go @@ -573,6 +573,7 @@ func constructExecArgs(container, preserveFDs string, @@ -22,10 +22,10 @@ index 7094c3a4eec9..f6c7acffe76a 100644 "--preserve-fds", preserveFDs, }...) -- -2.49.0 +2.50.1 -From a5d5fdfe8539af0a23af5a5503197389a0a4d0dd Mon Sep 17 00:00:00 2001 +From d4e03324f5d263fdb7c9b10270dd7ed251d5aa9e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 10 Dec 2021 13:42:15 +0100 Subject: [PATCH 2/2] test/system: Update to test the migration path for @@ -42,10 +42,10 @@ ca899c8a561f357ae32c6ba6813520fd8b682abb and the parts of commit create mode 100644 test/system/100-root.bats diff --git a/test/system/002-help.bats b/test/system/002-help.bats -index 921c23b51a44..192603d71aba 100644 +index f7cd3f5480ab..7ad5f72e792f 100644 --- a/test/system/002-help.bats +++ b/test/system/002-help.bats -@@ -34,20 +34,6 @@ teardown_file() { +@@ -33,20 +33,6 @@ teardown_file() { cleanup_all } @@ -100,5 +100,5 @@ index 000000000000..cf35d60ac25c + skip "Testing of entering toolboxes is not implemented" +} -- -2.49.0 +2.50.1 diff --git a/toolbox-Make-the-build-flags-match-Fedora.patch b/toolbox-Make-the-build-flags-match-Fedora.patch index 92123b4..f536fde 100644 --- a/toolbox-Make-the-build-flags-match-Fedora.patch +++ b/toolbox-Make-the-build-flags-match-Fedora.patch @@ -1,4 +1,4 @@ -From 767c59c40128dda3d29191be8289ff16af888187 Mon Sep 17 00:00:00 2001 +From 2ad3ed22992dd74c3deb697bdf165bf1e37479ae Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match Fedora's %{gobuildflags} @@ -58,5 +58,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.49.0 +2.50.1 diff --git a/toolbox-Make-the-build-flags-match-RHEL-10.patch b/toolbox-Make-the-build-flags-match-RHEL-10.patch index 5677d56..180135c 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-10.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-10.patch @@ -1,4 +1,4 @@ -From 2090a139dc6b9be6d51fbd7875fda06b6502cda0 Mon Sep 17 00:00:00 2001 +From e39af9ab2105d7d7b49b22d22895b3799efee2ef Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 10's %{gobuildflags} @@ -67,5 +67,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.49.0 +2.50.1 diff --git a/toolbox-Make-the-build-flags-match-RHEL-9.patch b/toolbox-Make-the-build-flags-match-RHEL-9.patch index 0804f78..867e860 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-9.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-9.patch @@ -1,4 +1,4 @@ -From 3603ef5eff9615b7df2bf665fd5edc9434d99f6e Mon Sep 17 00:00:00 2001 +From 26bef6542102509a9706bf97122a7ff2130383f8 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 9's %{gobuildflags} @@ -46,5 +46,5 @@ index a5a1a6a508fb..0a2c7526f210 100755 exit "$?" -- -2.49.0 +2.50.1 diff --git a/toolbox.rpmlintrc b/toolbox.rpmlintrc new file mode 100644 index 0000000..150b710 --- /dev/null +++ b/toolbox.rpmlintrc @@ -0,0 +1 @@ +addFilter(r'no-%check-section') diff --git a/toolbox.spec b/toolbox.spec index 0013af4..d4d47d5 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.1.2 +Version: 0.2 %global goipath github.com/containers/%{name} @@ -17,7 +17,7 @@ Version: 0.1.2 %endif %endif -%global toolbx_go 1.21 +%global toolbx_go 1.22 %if 0%{?fedora} %global toolbx_go 1.23.9 @@ -33,7 +33,7 @@ Version: 0.1.2 %endif %endif -Release: 2%{?dist} +Release: 1%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -188,6 +188,10 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Sat Aug 09 2025 Debarshi Ray - 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 - 0.1.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 94a6775aac40d4a6712e6be9defc3664620c6cff Mon Sep 17 00:00:00 2001 From: Maxwell G Date: Fri, 15 Aug 2025 18:43:04 -0500 Subject: [PATCH 32/36] Rebuild for golang-1.25.0 --- toolbox.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index d4d47d5..7cc0233 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -33,7 +33,7 @@ Version: 0.2 %endif %endif -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -188,6 +188,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Fri Aug 15 2025 Maxwell G - 0.2-2 +- Rebuild for golang-1.25.0 + * Sat Aug 09 2025 Debarshi Ray - 0.2-1 - Update to 0.2 - Fix CVE-2025-23266, CVE-2025-23267, and GHSA-fv92-fjc5-jj9h or GO-2025-3787 From f46fb3ba3ccf7bc8c41e3a88a600a324f98e087a Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 17 Sep 2025 20:22:25 +0200 Subject: [PATCH 33/36] tests: Don't needlessly preserve environment variables in su(1) sessions 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/b972298be7d228f4 https://src.fedoraproject.org/rpms/toolbox/pull-request/36 --- tests/tmt-envvars | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/tests/tmt-envvars b/tests/tmt-envvars index 6b4b747..6f3176e 100644 --- a/tests/tmt-envvars +++ b/tests/tmt-envvars @@ -1,18 +1 @@ -TMT_TREE -TMT_PLAN_DATA -TMT_VERSION -TMT_TEST_NAME -TMT_TEST_DATA -TMT_TEST_SERIAL_NUMBER -TMT_TEST_ITERATION_ID -TMT_TEST_METADATA -TMT_SOURCE_DIR -TMT_REBOOT_COUNT -TMT_TEST_RESTART_COUNT -TMT_TOPOLOGY_BASH -TMT_TOPOLOGY_YAML -TMT_TEST_PIDFILE -TMT_TEST_PIDFILE_LOCK -TMT_TEST_PIDFILE_ROOT -ROOTLESS_USER TMPDIR From a2c786de0b39f6a5c02952a4efb2541626848f46 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 17 Sep 2025 21:41:04 +0200 Subject: [PATCH 34/36] Update to 0.3 ... and update the BuildRequires on golang to reflect reality. https://src.fedoraproject.org/rpms/toolbox/pull-request/39 --- .gitignore | 1 + sources | 2 +- ...dd-migration-paths-for-coreos-toolbox-users.patch | 12 ++++++------ toolbox-Make-the-build-flags-match-Fedora.patch | 4 ++-- toolbox-Make-the-build-flags-match-RHEL-10.patch | 4 ++-- toolbox-Make-the-build-flags-match-RHEL-9.patch | 4 ++-- toolbox.spec | 11 +++++++---- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 596c5d0..2625054 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ /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 diff --git a/sources b/sources index c80564e..f30b3d7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (toolbox-0.2-vendored.tar.xz) = 670737a5911d62c0492fcc27cbee51fbfa909ad2f6dbc4ea035048b122857e8c0f37294db0ce29503c7e5c01e12eb90c30f7f6ce7b2e54662f3332c076cd77bd +SHA512 (toolbox-0.3-vendored.tar.xz) = e464aba1c40b37b0ed027a560a0685e5dc8f07684d33d0e2bac5f0ba8c2b2c2a4c585db8847b23bd0753e33d37e3e88c87ab71d3999c3afedf315717f468c0ba diff --git a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch index 9ff5bb8..aec1779 100644 --- a/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch +++ b/toolbox-Add-migration-paths-for-coreos-toolbox-users.patch @@ -1,4 +1,4 @@ -From b0f4d55b16e59375012ea0ffbfe31086cbef2fef Mon Sep 17 00:00:00 2001 +From 4649e50c28321185cbaa81a37efbd317b84ae840 Mon Sep 17 00:00:00 2001 From: Debarshi Ray 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 389ea1615234..2e78a3ba3ecd 100644 +index ceb277a3640a..72b673f506b3 100644 --- a/src/cmd/run.go +++ b/src/cmd/run.go -@@ -573,6 +573,7 @@ func constructExecArgs(container, preserveFDs string, +@@ -576,6 +576,7 @@ func constructExecArgs(container, preserveFDs string, execArgs = append(execArgs, envOptions...) execArgs = append(execArgs, []string{ @@ -22,10 +22,10 @@ index 389ea1615234..2e78a3ba3ecd 100644 "--preserve-fds", preserveFDs, }...) -- -2.50.1 +2.51.0 -From d4e03324f5d263fdb7c9b10270dd7ed251d5aa9e Mon Sep 17 00:00:00 2001 +From b2ba8445bee988143d546bc15fa3a8a8c019aa2e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 10 Dec 2021 13:42:15 +0100 Subject: [PATCH 2/2] test/system: Update to test the migration path for @@ -100,5 +100,5 @@ index 000000000000..cf35d60ac25c + skip "Testing of entering toolboxes is not implemented" +} -- -2.50.1 +2.51.0 diff --git a/toolbox-Make-the-build-flags-match-Fedora.patch b/toolbox-Make-the-build-flags-match-Fedora.patch index f536fde..5ee5fd4 100644 --- a/toolbox-Make-the-build-flags-match-Fedora.patch +++ b/toolbox-Make-the-build-flags-match-Fedora.patch @@ -1,4 +1,4 @@ -From 2ad3ed22992dd74c3deb697bdf165bf1e37479ae Mon Sep 17 00:00:00 2001 +From a1bb7d53fab70899c991feb9276cf93a12280750 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match Fedora's %{gobuildflags} @@ -58,5 +58,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.50.1 +2.51.0 diff --git a/toolbox-Make-the-build-flags-match-RHEL-10.patch b/toolbox-Make-the-build-flags-match-RHEL-10.patch index 180135c..9528088 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-10.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-10.patch @@ -1,4 +1,4 @@ -From e39af9ab2105d7d7b49b22d22895b3799efee2ef Mon Sep 17 00:00:00 2001 +From f79f96fb8f3ec528952b9719f356e871837987df Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 10's %{gobuildflags} @@ -67,5 +67,5 @@ index a5a1a6a508fb..5978422e9aed 100755 exit "$?" -- -2.50.1 +2.51.0 diff --git a/toolbox-Make-the-build-flags-match-RHEL-9.patch b/toolbox-Make-the-build-flags-match-RHEL-9.patch index 867e860..492268a 100644 --- a/toolbox-Make-the-build-flags-match-RHEL-9.patch +++ b/toolbox-Make-the-build-flags-match-RHEL-9.patch @@ -1,4 +1,4 @@ -From 26bef6542102509a9706bf97122a7ff2130383f8 Mon Sep 17 00:00:00 2001 +From 2d1b4b2492c65abd0d0bf0c71c971f550447412d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 29 Jun 2020 17:57:47 +0200 Subject: [PATCH] build: Make the build flags match RHEL 9's %{gobuildflags} @@ -46,5 +46,5 @@ index a5a1a6a508fb..0a2c7526f210 100755 exit "$?" -- -2.50.1 +2.51.0 diff --git a/toolbox.spec b/toolbox.spec index 7cc0233..3047f84 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,7 +1,7 @@ %global __brp_check_rpaths %{nil} Name: toolbox -Version: 0.2 +Version: 0.3 %global goipath github.com/containers/%{name} @@ -20,7 +20,7 @@ Version: 0.2 %global toolbx_go 1.22 %if 0%{?fedora} -%global toolbx_go 1.23.9 +%global toolbx_go 1.24.7 %endif %if 0%{?rhel} @@ -29,11 +29,11 @@ Version: 0.2 %elif 0%{?rhel} == 10 %global toolbx_go 1.22.5 %elif 0%{?rhel} > 10 -%global toolbx_go 1.24.3 +%global toolbx_go 1.24.4 %endif %endif -Release: 2%{?dist} +Release: 1%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -188,6 +188,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Wed Sep 17 2025 Debarshi Ray - 0.3-1 +- Update to 0.3 + * Fri Aug 15 2025 Maxwell G - 0.2-2 - Rebuild for golang-1.25.0 From 0f5c4c381d56b5b82af89d5248f372c6f33c0e82 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 7 Oct 2025 15:13:09 +0200 Subject: [PATCH 35/36] Unify the build with RHEL 9 There's no need to do a build just for this. --- toolbox.spec | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/toolbox.spec b/toolbox.spec index 3047f84..abb4f57 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -1,5 +1,14 @@ %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 From edd229876930a9907c6b9cda6246640647dc2f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= Date: Fri, 10 Oct 2025 15:13:52 +0200 Subject: [PATCH 36/36] rebuild --- toolbox.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/toolbox.spec b/toolbox.spec index abb4f57..09e3785 100644 --- a/toolbox.spec +++ b/toolbox.spec @@ -42,7 +42,7 @@ Version: 0.3 %endif %endif -Release: 1%{?dist} +Release: 2%{?dist} Summary: Tool for interactive command line environments on Linux License: Apache-2.0 @@ -197,6 +197,9 @@ install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf %changelog +* Fri Oct 10 2025 Alejandro Sáez - 0.3-2 +- rebuild + * Wed Sep 17 2025 Debarshi Ray - 0.3-1 - Update to 0.3