From 014b5ef40a51051d03f1b07359351a77d7782aec Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 8 Aug 2025 00:50:32 +0200 Subject: [PATCH 01/11] Fix resolving /etc/localtime Detected by https://www.shellcheck.net/: Line 1255: if ! localtime_target=$(readlink /etc/localtime >/dev/null 2>&3) \ ^-- SC2327 (warning): This command substitution will be empty because the command's output gets redirected away. ^-- SC2328 (error): This redirection takes output away from the command substitution. See: https://www.shellcheck.net/wiki/SC2327 https://www.shellcheck.net/wiki/SC2328 Fallout from 8db414ddc2d73719c628ca56f345556281e33ebf https://github.com/containers/toolbox/pull/1701 https://github.com/containers/toolbox/pull/1739 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit d32dd5d32250ee96f2e83941054540d3075adce3) (cherry picked from commit a67f614dedc2a41a59a6e14ab560c14ea021c26f) --- toolbox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolbox b/toolbox index c6d86e2b5..3f77193c2 100755 --- a/toolbox +++ b/toolbox @@ -1252,7 +1252,7 @@ init_container() fi if [ -d /run/host/monitor ] 2>&3; then - if ! localtime_target=$(readlink /etc/localtime >/dev/null 2>&3) \ + if ! localtime_target=$(readlink /etc/localtime 2>&3) \ || [ "$localtime_target" != "/run/host/monitor/localtime" ] 2>&3; then echo "$base_toolbox_command: redirecting /etc/localtime to /run/host/monitor/localtime" >&3 From 9a24ed3e873427d15181da655fbafddb6f8cb19e Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 27 Jan 2026 14:24:57 +0100 Subject: [PATCH 02/11] test/system: Unbreak the line count checks with Bats >= 1.10.0 Until Bats 1.10.0, 'run --keep-empty-lines' had a bug where it counted the trailing newline on the last line as a separate line [1]. However, Bats 1.10.0 is only available in Fedora >= 39 and is absent from Fedoras 37 and 38. [1] Bats commit 6648e2143bffb933 https://github.com/bats-core/bats-core/commit/6648e2143bffb933 https://github.com/bats-core/bats-core/issues/708 https://github.com/containers/toolbox/pull/1352 https://github.com/containers/toolbox/pull/1387 https://github.com/containers/toolbox/pull/1744 (backported from commits f716b23914b2429d1284b7c0c68e9d14f29bbd73 and 7abfa706f3a9ee92e395396c392411daca29e06f) --- test/system/102-list.bats | 48 ++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/test/system/102-list.bats b/test/system/102-list.bats index f3c478d9a..6ba9db0f4 100644 --- a/test/system/102-list.bats +++ b/test/system/102-list.bats @@ -70,7 +70,13 @@ teardown() { assert_success assert_line --index 1 --partial "" - assert [ ${#lines[@]} -eq 3 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 2 ] + else + assert [ ${#lines[@]} -eq 3 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi @@ -91,7 +97,13 @@ teardown() { assert_success assert_line --index 1 --partial "$default_image" assert_line --index 2 --partial "$default_image-copy" - assert [ ${#lines[@]} -eq 4 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 3 ] + else + assert [ ${#lines[@]} -eq 4 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi @@ -113,7 +125,13 @@ teardown() { assert_success assert_line --index 1 --partial "fedora-toolbox:34" assert_line --index 2 --partial "$(get_system_id)-toolbox:$(get_system_version)" - assert [ ${#lines[@]} -eq 4 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 3 ] + else + assert [ ${#lines[@]} -eq 4 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi @@ -125,7 +143,13 @@ teardown() { assert_line --index 1 --partial "$(get_system_id)-toolbox-$(get_system_version)" assert_line --index 2 --partial "non-default-one" assert_line --index 3 --partial "non-default-two" - assert [ ${#lines[@]} -eq 5 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 4 ] + else + assert [ ${#lines[@]} -eq 5 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi @@ -139,7 +163,13 @@ teardown() { assert_line --index 5 --partial "$(get_system_id)-toolbox-$(get_system_version)" assert_line --index 6 --partial "non-default-one" assert_line --index 7 --partial "non-default-two" - assert [ ${#lines[@]} -eq 9 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 8 ] + else + assert [ ${#lines[@]} -eq 9 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi @@ -159,7 +189,13 @@ teardown() { assert_line --index 1 --partial "" assert_line --index 2 --partial "fedora-toolbox:34" assert_line --index 3 --partial "$default_image" - assert [ ${#lines[@]} -eq 5 ] + + if check_bats_version 1.10.0; then + assert [ ${#lines[@]} -eq 4 ] + else + assert [ ${#lines[@]} -eq 5 ] + fi + if check_bats_version 1.7.0; then assert [ ${#stderr_lines[@]} -eq 0 ] fi From 0af06181b683e36ef770ff848e81b335c3bc495a Mon Sep 17 00:00:00 2001 From: Dalibor Kricka Date: Thu, 7 Aug 2025 10:59:59 +0200 Subject: [PATCH 03/11] test/system: Unbreak the 'toolbox run /etc' tests with Bash >= 5.3 Bash 5.3.0 changed the error messages shown by its exec built-in [1]. With Bash 5.2.37: $ exec /etc bash: /etc: Is a directory bash: exec: /etc: cannot execute: Is a directory With Bash 5.3.0: $ exec /etc bash: /etc: Is a directory The 'assert' function cannot directly handle compound commands. So, those need to be wrapped in 'bash -c "..."' [2]. [1] Bash commit b8c60bc9ca365f82 See how exec_builtin() handles EX_NOEXEC and EISDIR from shell_execve() to avoid printing a duplicate error message. https://cgit.git.savannah.gnu.org/cgit/bash.git/commit/?id=b8c60bc9ca365f82 [2] https://github.com/bats-core/bats-assert https://github.com/containers/toolbox/pull/1688 https://github.com/containers/toolbox/pull/1699 https://github.com/containers/toolbox/pull/1739 https://github.com/containers/toolbox/pull/1744 (backported from commit 6c98db6ba29d97e733e55b733a86dbfc9e800ba1) (cherry picked from commit 00908937f457fa268325391c5e5269339ad0a764) --- test/system/104-run.bats | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/test/system/104-run.bats b/test/system/104-run.bats index a7080de56..1f2a88e87 100644 --- a/test/system/104-run.bats +++ b/test/system/104-run.bats @@ -355,9 +355,15 @@ teardown() { assert [ ${#lines[@]} -eq 0 ] lines=("${stderr_lines[@]}") assert_line --index 0 "bash: line 1: /etc: Is a directory" - assert_line --index 1 "bash: line 1: exec: /etc: cannot execute: Is a directory" - assert_line --index 2 "Error: failed to invoke command /etc in container $(get_latest_container_name)" - assert [ ${#stderr_lines[@]} -eq 3 ] + + if [ ${#stderr_lines[@]} -eq 2 ]; then + assert_line --index 1 "Error: failed to invoke command /etc in container $(get_latest_container_name)" + elif [ ${#stderr_lines[@]} -eq 3 ]; then + assert_line --index 1 "bash: line 1: exec: /etc: cannot execute: Is a directory" + assert_line --index 2 "Error: failed to invoke command /etc in container $(get_latest_container_name)" + else + assert bash -c "[ ${#stderr_lines[@]} -eq 2 ] || [ ${#stderr_lines[@]} -eq 3 ]" + fi } @test "run: Try a non-existent command" { From ef52b2c72003d2287e698998ee02677b17038919 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 16 Mar 2023 17:52:23 +0100 Subject: [PATCH 04/11] .zuul: Enable testing on Fedora 38 https://github.com/containers/toolbox/pull/1265 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit 6b6cb1b2f952385eb8e930977d902f240d1db628) --- .zuul.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.zuul.yaml b/.zuul.yaml index 71d85c39d..dad0e2413 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,5 +1,5 @@ # -# Copyright © 2020 – 2022 Red Hat, Inc. +# Copyright © 2020 – 2023 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. @@ -48,6 +48,17 @@ pre-run: playbooks/setup-env.yaml run: playbooks/system-test.yaml +- job: + name: system-test-fedora-38 + description: Run Toolbx's system tests in Fedora 38 + timeout: 2400 + nodeset: + nodes: + - name: fedora-38 + label: cloud-fedora-38 + pre-run: playbooks/setup-env.yaml + run: playbooks/system-test.yaml + - job: name: system-test-fedora-37 description: Run Toolbx's system tests in Fedora 37 @@ -74,6 +85,7 @@ periodic: jobs: - system-test-fedora-rawhide + - system-test-fedora-38 - system-test-fedora-37 - system-test-fedora-36 check: @@ -81,6 +93,7 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - system-test-fedora-rawhide + - system-test-fedora-38 - system-test-fedora-37 - system-test-fedora-36 gate: @@ -88,5 +101,6 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - system-test-fedora-rawhide + - system-test-fedora-38 - system-test-fedora-37 - system-test-fedora-36 From b66ffe4414062450fc9b76055963f0b19aa59b47 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 13 Jun 2023 09:59:00 +0200 Subject: [PATCH 05/11] .zuul: Drop testing on Fedora 36 Fedora 36 reached End of Life on 16th May 2023: https://docs.fedoraproject.org/en-US/releases/eol/ https://github.com/containers/toolbox/pull/1313 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit 0676eb98eacb90e7ea418c73d79914e37a89690e) --- .zuul.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index dad0e2413..7986c55d7 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -70,24 +70,12 @@ pre-run: playbooks/setup-env.yaml run: playbooks/system-test.yaml -- job: - name: system-test-fedora-36 - description: Run Toolbx's system tests in Fedora 36 - timeout: 2400 - nodeset: - nodes: - - name: fedora-36 - label: cloud-fedora-36 - pre-run: playbooks/setup-env.yaml - run: playbooks/system-test.yaml - - project: periodic: jobs: - system-test-fedora-rawhide - system-test-fedora-38 - system-test-fedora-37 - - system-test-fedora-36 check: jobs: - unit-test @@ -95,7 +83,6 @@ - system-test-fedora-rawhide - system-test-fedora-38 - system-test-fedora-37 - - system-test-fedora-36 gate: jobs: - unit-test @@ -103,4 +90,3 @@ - system-test-fedora-rawhide - system-test-fedora-38 - system-test-fedora-37 - - system-test-fedora-36 From 72e634465ee275fca6341272e960c1d077f6c9a7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 6 Oct 2023 12:43:09 +0200 Subject: [PATCH 06/11] .zuul: Enable testing on Fedora 39 https://github.com/containers/toolbox/pull/1385 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit 53a0316472969c3f1080f4be9172a0f7ac07c89f) --- .zuul.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.zuul.yaml b/.zuul.yaml index 7986c55d7..ed56484be 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -48,6 +48,17 @@ pre-run: playbooks/setup-env.yaml run: playbooks/system-test.yaml +- job: + name: system-test-fedora-39 + description: Run Toolbx's system tests in Fedora 39 + timeout: 2400 + nodeset: + nodes: + - name: fedora-39 + label: cloud-fedora-39 + pre-run: playbooks/setup-env.yaml + run: playbooks/system-test.yaml + - job: name: system-test-fedora-38 description: Run Toolbx's system tests in Fedora 38 @@ -74,6 +85,7 @@ periodic: jobs: - system-test-fedora-rawhide + - system-test-fedora-39 - system-test-fedora-38 - system-test-fedora-37 check: @@ -81,6 +93,7 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - system-test-fedora-rawhide + - system-test-fedora-39 - system-test-fedora-38 - system-test-fedora-37 gate: @@ -88,5 +101,6 @@ - unit-test - unit-test-migration-path-for-coreos-toolbox - system-test-fedora-rawhide + - system-test-fedora-39 - system-test-fedora-38 - system-test-fedora-37 From 147b3d14884293d86b3ba4ba32f9d6cc35f66c16 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 11 Oct 2023 20:44:56 +0200 Subject: [PATCH 07/11] .zuul: Try to prevent the CI from timing out on Fedora With the recent expansion of the test suite, it's necessary to increase the timeout for all Fedora nodes to prevent the CI from timing out. https://github.com/containers/toolbox/pull/1387 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit b8138e0b544f2f553a26901ddd2b0cd9b2aa5257) --- .zuul.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index ed56484be..ba1363034 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -40,7 +40,7 @@ - job: name: system-test-fedora-rawhide description: Run Toolbox's system tests in Fedora Rawhide - timeout: 3600 + timeout: 4800 nodeset: nodes: - name: fedora-rawhide @@ -51,7 +51,7 @@ - job: name: system-test-fedora-39 description: Run Toolbx's system tests in Fedora 39 - timeout: 2400 + timeout: 3000 nodeset: nodes: - name: fedora-39 @@ -62,7 +62,7 @@ - job: name: system-test-fedora-38 description: Run Toolbx's system tests in Fedora 38 - timeout: 2400 + timeout: 3000 nodeset: nodes: - name: fedora-38 @@ -73,7 +73,7 @@ - job: name: system-test-fedora-37 description: Run Toolbx's system tests in Fedora 37 - timeout: 2400 + timeout: 3000 nodeset: nodes: - name: fedora-37 From b911fa67581811494f5fbfaae39c051ff62a5c06 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 12 Dec 2023 15:34:11 +0100 Subject: [PATCH 08/11] .zuul: Drop testing on Fedora 37 Fedora 37 reached End of Life on 15th November 2023: https://docs.fedoraproject.org/en-US/releases/eol/ https://github.com/containers/toolbox/pull/1418 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit 9c2b5e9a4bac9ae3152fa8d808797de76c5c873c) --- .zuul.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index ba1363034..471ab6dea 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -70,24 +70,12 @@ pre-run: playbooks/setup-env.yaml run: playbooks/system-test.yaml -- job: - name: system-test-fedora-37 - description: Run Toolbx's system tests in Fedora 37 - timeout: 3000 - nodeset: - nodes: - - name: fedora-37 - label: cloud-fedora-37 - pre-run: playbooks/setup-env.yaml - run: playbooks/system-test.yaml - - project: periodic: jobs: - system-test-fedora-rawhide - system-test-fedora-39 - system-test-fedora-38 - - system-test-fedora-37 check: jobs: - unit-test @@ -95,7 +83,6 @@ - system-test-fedora-rawhide - system-test-fedora-39 - system-test-fedora-38 - - system-test-fedora-37 gate: jobs: - unit-test @@ -103,4 +90,3 @@ - system-test-fedora-rawhide - system-test-fedora-39 - system-test-fedora-38 - - system-test-fedora-37 From f5d52386196a3a2d5cde0f2598050530d3db1ebf Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 2 Feb 2024 19:25:34 +0100 Subject: [PATCH 09/11] .zuul: Try to prevent the CI from timing out on Fedora 38 and 39 With the recent expansion of the test suite, it's necessary to increase the timeout for the Fedora 38 and 39 nodes to prevent the CI from timing out. https://github.com/containers/toolbox/pull/1445 https://github.com/containers/toolbox/pull/1739 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit ce66b0b86b0749b8b2005747f3d604d6b8c95638) (cherry picked from commit 754feeabff3888f5125e617c70b0af410e24ef43) --- .zuul.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 471ab6dea..1e8594c99 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -51,7 +51,7 @@ - job: name: system-test-fedora-39 description: Run Toolbx's system tests in Fedora 39 - timeout: 3000 + timeout: 3600 nodeset: nodes: - name: fedora-39 @@ -62,7 +62,7 @@ - job: name: system-test-fedora-38 description: Run Toolbx's system tests in Fedora 38 - timeout: 3000 + timeout: 3600 nodeset: nodes: - name: fedora-38 From 874c291f9934c923aa054db1aae45d9a37cd39c4 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 27 Jan 2026 19:35:07 +0100 Subject: [PATCH 10/11] images: Remove the image definitions Stable branches for old Toolbx releases are only about the toolbox(1) executable. It doesn't make sense to have old "stable" versions of the image definitions, because the registries will have only one set of images built from the definitions in the main branch, and all supported versions of toolbox(1) must work with them. https://github.com/containers/toolbox/pull/1739 https://github.com/containers/toolbox/pull/1744 (cherry picked from commit f2b2a18ddef288a3da2a69afa700f2009493e954) --- images/fedora/f28/Containerfile | 27 ----- images/fedora/f28/README.md | 1 - images/fedora/f28/extra-packages | 40 ------- images/fedora/f28/missing-docs | 22 ---- images/fedora/f29/Containerfile | 27 ----- images/fedora/f29/README.md | 1 - images/fedora/f29/extra-packages | 40 ------- images/fedora/f29/missing-docs | 20 ---- images/fedora/f30/Containerfile | 27 ----- images/fedora/f30/README.md | 1 - images/fedora/f30/extra-packages | 40 ------- images/fedora/f30/missing-docs | 18 ---- images/fedora/f31/Containerfile | 27 ----- images/fedora/f31/README.md | 1 - images/fedora/f31/extra-packages | 42 -------- images/fedora/f31/missing-docs | 18 ---- images/fedora/f32/Containerfile | 26 ----- images/fedora/f32/README.md | 163 ----------------------------- images/fedora/f32/extra-packages | 42 -------- images/fedora/f32/missing-docs | 18 ---- images/fedora/f33/Containerfile | 26 ----- images/fedora/f33/README.md | 167 ------------------------------ images/fedora/f33/extra-packages | 45 -------- images/fedora/f33/missing-docs | 15 --- images/fedora/f34/Containerfile | 25 ----- images/fedora/f34/README.md | 167 ------------------------------ images/fedora/f34/extra-packages | 45 -------- images/fedora/f34/missing-docs | 15 --- images/fedora/f35/Containerfile | 25 ----- images/fedora/f35/README.md | 167 ------------------------------ images/fedora/f35/extra-packages | 48 --------- images/fedora/f35/missing-docs | 15 --- images/fedora/f36/Containerfile | 43 -------- images/fedora/f36/README.md | 44 -------- images/fedora/f36/ensure-files | 17 --- images/fedora/f36/extra-packages | 48 --------- images/fedora/f36/missing-docs | 20 ---- images/fedora/f37/Containerfile | 43 -------- images/fedora/f37/README.md | 44 -------- images/fedora/f37/ensure-files | 17 --- images/fedora/f37/extra-packages | 48 --------- images/fedora/f37/missing-docs | 20 ---- images/fedora/f38/Containerfile | 43 -------- images/fedora/f38/README.md | 44 -------- images/fedora/f38/ensure-files | 17 --- images/fedora/f38/extra-packages | 48 --------- images/fedora/f38/missing-docs | 20 ---- images/fedora/f39/Containerfile | 43 -------- images/fedora/f39/README.md | 44 -------- images/fedora/f39/ensure-files | 17 --- images/fedora/f39/extra-packages | 48 --------- images/fedora/f39/missing-docs | 20 ---- images/rhel/8.5/Containerfile | 28 ----- images/rhel/8.5/README.md | 44 -------- images/rhel/8.5/extra-packages | 45 -------- images/rhel/8.5/missing-docs | 14 --- images/rhel/8.6/Containerfile | 28 ----- images/rhel/8.6/README.md | 44 -------- images/rhel/8.6/extra-packages | 50 --------- images/rhel/8.6/missing-docs | 14 --- images/rhel/8.7/Containerfile | 28 ----- images/rhel/8.7/README.md | 44 -------- images/rhel/8.7/extra-packages | 50 --------- images/rhel/8.7/missing-docs | 14 --- images/rhel/9.1/Containerfile | 28 ----- images/rhel/9.1/README.md | 44 -------- images/rhel/9.1/extra-packages | 48 --------- images/rhel/9.1/missing-docs | 14 --- images/test/busybox/Containerfile | 2 - images/test/busybox/README.md | 4 - 70 files changed, 2592 deletions(-) delete mode 100644 images/fedora/f28/Containerfile delete mode 120000 images/fedora/f28/README.md delete mode 100644 images/fedora/f28/extra-packages delete mode 100644 images/fedora/f28/missing-docs delete mode 100644 images/fedora/f29/Containerfile delete mode 120000 images/fedora/f29/README.md delete mode 100644 images/fedora/f29/extra-packages delete mode 100644 images/fedora/f29/missing-docs delete mode 100644 images/fedora/f30/Containerfile delete mode 120000 images/fedora/f30/README.md delete mode 100644 images/fedora/f30/extra-packages delete mode 100644 images/fedora/f30/missing-docs delete mode 100644 images/fedora/f31/Containerfile delete mode 120000 images/fedora/f31/README.md delete mode 100644 images/fedora/f31/extra-packages delete mode 100644 images/fedora/f31/missing-docs delete mode 100644 images/fedora/f32/Containerfile delete mode 100644 images/fedora/f32/README.md delete mode 100644 images/fedora/f32/extra-packages delete mode 100644 images/fedora/f32/missing-docs delete mode 100644 images/fedora/f33/Containerfile delete mode 100644 images/fedora/f33/README.md delete mode 100644 images/fedora/f33/extra-packages delete mode 100644 images/fedora/f33/missing-docs delete mode 100644 images/fedora/f34/Containerfile delete mode 100644 images/fedora/f34/README.md delete mode 100644 images/fedora/f34/extra-packages delete mode 100644 images/fedora/f34/missing-docs delete mode 100644 images/fedora/f35/Containerfile delete mode 100644 images/fedora/f35/README.md delete mode 100644 images/fedora/f35/extra-packages delete mode 100644 images/fedora/f35/missing-docs delete mode 100644 images/fedora/f36/Containerfile delete mode 100644 images/fedora/f36/README.md delete mode 100644 images/fedora/f36/ensure-files delete mode 100644 images/fedora/f36/extra-packages delete mode 100644 images/fedora/f36/missing-docs delete mode 100644 images/fedora/f37/Containerfile delete mode 100644 images/fedora/f37/README.md delete mode 100644 images/fedora/f37/ensure-files delete mode 100644 images/fedora/f37/extra-packages delete mode 100644 images/fedora/f37/missing-docs delete mode 100644 images/fedora/f38/Containerfile delete mode 100644 images/fedora/f38/README.md delete mode 100644 images/fedora/f38/ensure-files delete mode 100644 images/fedora/f38/extra-packages delete mode 100644 images/fedora/f38/missing-docs delete mode 100644 images/fedora/f39/Containerfile delete mode 100644 images/fedora/f39/README.md delete mode 100644 images/fedora/f39/ensure-files delete mode 100644 images/fedora/f39/extra-packages delete mode 100644 images/fedora/f39/missing-docs delete mode 100644 images/rhel/8.5/Containerfile delete mode 100644 images/rhel/8.5/README.md delete mode 100644 images/rhel/8.5/extra-packages delete mode 100644 images/rhel/8.5/missing-docs delete mode 100644 images/rhel/8.6/Containerfile delete mode 100644 images/rhel/8.6/README.md delete mode 100644 images/rhel/8.6/extra-packages delete mode 100644 images/rhel/8.6/missing-docs delete mode 100644 images/rhel/8.7/Containerfile delete mode 100644 images/rhel/8.7/README.md delete mode 100644 images/rhel/8.7/extra-packages delete mode 100644 images/rhel/8.7/missing-docs delete mode 100644 images/rhel/9.1/Containerfile delete mode 100644 images/rhel/9.1/README.md delete mode 100644 images/rhel/9.1/extra-packages delete mode 100644 images/rhel/9.1/missing-docs delete mode 100644 images/test/busybox/Containerfile delete mode 100644 images/test/busybox/README.md diff --git a/images/fedora/f28/Containerfile b/images/fedora/f28/Containerfile deleted file mode 100644 index c1ba5ad77..000000000 --- a/images/fedora/f28/Containerfile +++ /dev/null @@ -1,27 +0,0 @@ -FROM registry.fedoraproject.org/fedora:28 - -ENV NAME=fedora-toolbox VERSION=28 -LABEL com.github.containers.toolbox="true" \ - com.redhat.component="$NAME" \ - name="$FGC/$NAME" \ - version="$VERSION" \ - usage="This image is meant to be used with the toolbox command" \ - summary="Base image for creating Fedora toolbox containers" \ - maintainer="Debarshi Ray " - -COPY README.md / - -RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf -RUN dnf -y swap coreutils-single coreutils-full - -COPY missing-docs / -RUN dnf -y reinstall $( - -[![Zuul](https://zuul-ci.org/gated.svg)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers/toolbox) -[![Daily Pipeline](https://softwarefactory-project.io/zuul/api/tenant/local/badge?project=containers/toolbox&pipeline=periodic)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers%2Ftoolbox&pipeline=periodic) - -[![Arch Linux package](https://img.shields.io/archlinux/v/community/x86_64/toolbox)](https://www.archlinux.org/packages/community/x86_64/toolbox/) -[![Fedora package](https://img.shields.io/fedora/v/toolbox/rawhide)](https://src.fedoraproject.org/rpms/toolbox/) - -[Toolbox](https://github.com/containers/toolbox) is a tool for Linux operating -systems, which allows the use of containerized command line environments. It is -built on top of [Podman](https://podman.io/) and other standard container -technologies from [OCI](https://opencontainers.org/). - -This is particularly useful on -[OSTree](https://ostree.readthedocs.io/en/latest/) based operating systems like -[Fedora CoreOS](https://coreos.fedoraproject.org/) and -[Silverblue](https://silverblue.fedoraproject.org/). The intention of these -systems is to discourage installation of software on the host, and instead -install software as (or in) containers — they mostly don't even have package -managers like DNF or YUM. This makes it difficult to set up a development -environment or install tools for debugging in the usual way. - -Toolbox solves this problem by providing a fully mutable container within -which one can install their favourite development and debugging tools, editors -and SDKs. For example, it's possible to do `yum install ansible` without -affecting the base operating system. - -However, this tool doesn't *require* using an OSTree based system. It works -equally well on Fedora Workstation and Server, and that's a useful way to -incrementally adopt containerization. - -The toolbox environment is based on an [OCI](https://www.opencontainers.org/) -image. On Fedora this is the `fedora-toolbox` image. This image is used to -create a toolbox container that seamlessly integrates with the rest of the -operating system by providing access to the user's home directory, the Wayland -and X11 sockets, SSH agent, etc.. - -## Installation - -Toolbox is installed by default on Fedora Silverblue. On other operating -systems it's just a matter of installing the `toolbox` package. - -## Usage - -### Create your toolbox container: -```console -[user@hostname ~]$ toolbox create -Created container: fedora-toolbox-33 -Enter with: toolbox enter -[user@hostname ~]$ -``` -This will create a container called `fedora-toolbox-`. - -### Enter the toolbox: -```console -[user@hostname ~]$ toolbox enter -⬢[user@toolbox ~]$ -``` - -### Remove a toolbox container: -```console -[user@hostname ~]$ toolbox rm fedora-toolbox-33 -[user@hostname ~]$ -``` - -## Dependencies and Building - -Toolbox requires at least Podman 1.4.0 to work, and uses the Meson build -system. - -The following dependencies are required to build it: -- meson -- go-md2man -- systemd -- go -- ninja - -The following dependencies enable various optional features: -- bash-completion - -It can be built and installed as any other typical Meson-based project: -```console -[user@hostname toolbox]$ meson -Dprofile_dir=/etc/profile.d builddir -[user@hostname toolbox]$ ninja -C builddir -[user@hostname toolbox]$ sudo ninja -C builddir install -``` - -Toolbox is written in Go. Consult the -[src/go.mod](https://github.com/containers/toolbox/blob/main/src/go.mod) file -for a full list of all the Go dependencies. - -By default, Toolbox uses Go modules and all the required Go packages are -automatically downloaded as part of the build. There's no need to worry about -the Go dependencies, unless the build environment doesn't have network access -or any such peculiarities. - -## Distro support - -By default, Toolbox creates the container using an -[OCI](https://www.opencontainers.org/) image called -`-toolbox:`, where `` and `` are taken from the -host's `/usr/lib/os-release`. For example, the default image on a Fedora 33 -host would be `fedora-toolbox:33`. - -This default can be overridden by the `--image` option in `toolbox create`, -but operating system distributors should provide an adequately configured -default image to ensure a smooth user experience. - -## Image requirements - -Toolbox customizes newly created containers in a certain way. This requires -certain tools and paths to be present and have certain characteristics inside -the OCI image. - -Tools: -* `getent(1)` -* `id(1)` -* `ln(1)` -* `mkdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `passwd(1)` -* `readlink(1)` -* `rm(1)` -* `rmdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `sleep(1)` -* `test(1)` -* `touch(1)` -* `unlink(1)` -* `useradd(8)` -* `usermod(8)` - -Paths: -* `/etc/host.conf`: optional, if present not a bind mount -* `/etc/hosts`: optional, if present not a bind mount -* `/etc/krb5.conf.d`: directory, not a bind mount -* `/etc/localtime`: optional, if present not a bind mount -* `/etc/resolv.conf`: optional, if present not a bind mount -* `/etc/timezone`: optional, if present not a bind mount - -Toolbox enables `sudo(8)` access inside containers. The following is necessary -for that to work: - -* The image should have `sudo(8)` enabled for users belonging to either the - `sudo` or `wheel` groups, and the group itself should exist. File an - [issue](https://github.com/containers/toolbox/issues/new) if you really need - support for a different group. However, it's preferable to keep this list as - short as possible. - -* The image should allow empty passwords for `sudo(8)`. This can be achieved - by either adding the `nullok` option to the `PAM(8)` configuration, or by - add the `NOPASSWD` tag to the `sudoers(5)` configuration. - -Since Toolbox only works with OCI images that fulfill certain requirements, -it will refuse images that aren't tagged with -`com.github.containers.toolbox="true"` and -`com.github.debarshiray.toolbox="true"` labels. These labels are meant to be -used by the maintainer of the image to indicate that they have read this -document and tested that the image works with Toolbox. You can use the -following snippet in a Dockerfile for this: -```Dockerfile -LABEL com.github.containers.toolbox="true" -``` -The label `com.github.debarshiray.toolbox="true"` was used in previous versions -of toolbox but is currently deprecated. diff --git a/images/fedora/f32/extra-packages b/images/fedora/f32/extra-packages deleted file mode 100644 index 942271c74..000000000 --- a/images/fedora/f32/extra-packages +++ /dev/null @@ -1,42 +0,0 @@ -bash-completion -bzip2 -diffutils -dnf-plugins-core -findutils -flatpak-spawn -fpaste -git -gnupg -gnupg2-smime -gvfs-client -hostname -iputils -jwhois -keyutils -krb5-libs -less -lsof -man-db -man-pages -mlocate -mtr -nss-mdns -openssh-clients -passwd -pigz -procps-ng -rsync -shadow-utils -sudo -tcpdump -time -traceroute -tree -unzip -vte-profile -wget -which -words -xorg-x11-xauth -xz -zip diff --git a/images/fedora/f32/missing-docs b/images/fedora/f32/missing-docs deleted file mode 100644 index f1f56bc08..000000000 --- a/images/fedora/f32/missing-docs +++ /dev/null @@ -1,18 +0,0 @@ -acl -bash -chkconfig -curl -dbus-daemon -gawk -grep -gzip -libcap -openssl -p11-kit -pam -python3 -rpm -rpm-plugin-systemd-inhibit -sed -systemd -tar diff --git a/images/fedora/f33/Containerfile b/images/fedora/f33/Containerfile deleted file mode 100644 index c638d9571..000000000 --- a/images/fedora/f33/Containerfile +++ /dev/null @@ -1,26 +0,0 @@ -FROM registry.fedoraproject.org/fedora:33 - -ENV NAME=fedora-toolbox VERSION=33 -LABEL com.github.containers.toolbox="true" \ - com.redhat.component="$NAME" \ - name="$NAME" \ - version="$VERSION" \ - usage="This image is meant to be used with the toolbox command" \ - summary="Base image for creating Fedora toolbox containers" \ - maintainer="Debarshi Ray " - -COPY README.md / - -RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf - -COPY missing-docs / -RUN dnf -y reinstall $( - -[![Zuul](https://zuul-ci.org/gated.svg)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers/toolbox) -[![Daily Pipeline](https://softwarefactory-project.io/zuul/api/tenant/local/badge?project=containers/toolbox&pipeline=periodic)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers%2Ftoolbox&pipeline=periodic) - -[![Arch Linux package](https://img.shields.io/archlinux/v/community/x86_64/toolbox)](https://www.archlinux.org/packages/community/x86_64/toolbox/) -[![Fedora package](https://img.shields.io/fedora/v/toolbox/rawhide)](https://src.fedoraproject.org/rpms/toolbox/) - -[Toolbox](https://github.com/containers/toolbox) is a tool for Linux operating -systems, which allows the use of containerized command line environments. It is -built on top of [Podman](https://podman.io/) and other standard container -technologies from [OCI](https://opencontainers.org/). - -This is particularly useful on -[OSTree](https://ostree.readthedocs.io/en/latest/) based operating systems like -[Fedora CoreOS](https://coreos.fedoraproject.org/) and -[Silverblue](https://silverblue.fedoraproject.org/). The intention of these -systems is to discourage installation of software on the host, and instead -install software as (or in) containers — they mostly don't even have package -managers like DNF or YUM. This makes it difficult to set up a development -environment or install tools for debugging in the usual way. - -Toolbox solves this problem by providing a fully mutable container within -which one can install their favourite development and debugging tools, editors -and SDKs. For example, it's possible to do `yum install ansible` without -affecting the base operating system. - -However, this tool doesn't *require* using an OSTree based system. It works -equally well on Fedora Workstation and Server, and that's a useful way to -incrementally adopt containerization. - -The toolbox environment is based on an [OCI](https://www.opencontainers.org/) -image. On Fedora this is the `fedora-toolbox` image. This image is used to -create a toolbox container that seamlessly integrates with the rest of the -operating system by providing access to the user's home directory, the Wayland -and X11 sockets, networking (including Avahi), removable devices (like USB -sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev -database, etc.. - - -## Installation - -Toolbox is installed by default on Fedora Silverblue. On other operating -systems it's just a matter of installing the `toolbox` package. - -## Usage - -### Create your toolbox container: -```console -[user@hostname ~]$ toolbox create -Created container: fedora-toolbox-33 -Enter with: toolbox enter -[user@hostname ~]$ -``` -This will create a container called `fedora-toolbox-`. - -### Enter the toolbox: -```console -[user@hostname ~]$ toolbox enter -⬢[user@toolbox ~]$ -``` - -### Remove a toolbox container: -```console -[user@hostname ~]$ toolbox rm fedora-toolbox-33 -[user@hostname ~]$ -``` - -## Dependencies and Building - -Toolbox requires at least Podman 1.4.0 to work, and uses the Meson build -system. - -The following dependencies are required to build it: -- meson -- go-md2man -- systemd -- go -- ninja - -The following dependencies enable various optional features: -- bash-completion - -It can be built and installed as any other typical Meson-based project: -```console -[user@hostname toolbox]$ meson -Dprofile_dir=/etc/profile.d builddir -[user@hostname toolbox]$ ninja -C builddir -[user@hostname toolbox]$ sudo ninja -C builddir install -``` - -Toolbox is written in Go. Consult the -[src/go.mod](https://github.com/containers/toolbox/blob/main/src/go.mod) file -for a full list of all the Go dependencies. - -By default, Toolbox uses Go modules and all the required Go packages are -automatically downloaded as part of the build. There's no need to worry about -the Go dependencies, unless the build environment doesn't have network access -or any such peculiarities. - -## Distro support - -By default, Toolbox creates the container using an -[OCI](https://www.opencontainers.org/) image called -`-toolbox:`, where `` and `` are taken from the -host's `/usr/lib/os-release`. For example, the default image on a Fedora 33 -host would be `fedora-toolbox:33`. - -This default can be overridden by the `--image` option in `toolbox create`, -but operating system distributors should provide an adequately configured -default image to ensure a smooth user experience. - -## Image requirements - -Toolbox customizes newly created containers in a certain way. This requires -certain tools and paths to be present and have certain characteristics inside -the OCI image. - -Tools: -* `getent(1)` -* `id(1)` -* `ln(1)` -* `mkdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `passwd(1)` -* `readlink(1)` -* `rm(1)` -* `rmdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `sleep(1)` -* `test(1)` -* `touch(1)` -* `unlink(1)` -* `useradd(8)` -* `usermod(8)` - -Paths: -* `/etc/host.conf`: optional, if present not a bind mount -* `/etc/hosts`: optional, if present not a bind mount -* `/etc/krb5.conf.d`: directory, not a bind mount -* `/etc/localtime`: optional, if present not a bind mount -* `/etc/machine-id`: optional, not a bind mount -* `/etc/resolv.conf`: optional, if present not a bind mount -* `/etc/timezone`: optional, if present not a bind mount - -Toolbox enables `sudo(8)` access inside containers. The following is necessary -for that to work: - -* The image should have `sudo(8)` enabled for users belonging to either the - `sudo` or `wheel` groups, and the group itself should exist. File an - [issue](https://github.com/containers/toolbox/issues/new) if you really need - support for a different group. However, it's preferable to keep this list as - short as possible. - -* The image should allow empty passwords for `sudo(8)`. This can be achieved - by either adding the `nullok` option to the `PAM(8)` configuration, or by - add the `NOPASSWD` tag to the `sudoers(5)` configuration. - -Since Toolbox only works with OCI images that fulfill certain requirements, -it will refuse images that aren't tagged with -`com.github.containers.toolbox="true"` and -`com.github.debarshiray.toolbox="true"` labels. These labels are meant to be -used by the maintainer of the image to indicate that they have read this -document and tested that the image works with Toolbox. You can use the -following snippet in a Dockerfile for this: -```Dockerfile -LABEL com.github.containers.toolbox="true" -``` -The label `com.github.debarshiray.toolbox="true"` was used in previous versions -of toolbox but is currently deprecated. diff --git a/images/fedora/f33/extra-packages b/images/fedora/f33/extra-packages deleted file mode 100644 index 34ee15652..000000000 --- a/images/fedora/f33/extra-packages +++ /dev/null @@ -1,45 +0,0 @@ -bash-completion -bc -bzip2 -diffutils -dnf-plugins-core -findutils -flatpak-spawn -fpaste -git -gnupg -gnupg2-smime -gvfs-client -hostname -iproute -iputils -jwhois -keyutils -krb5-libs -less -lsof -man-db -man-pages -mlocate -mtr -nano-default-editor -nss-mdns -openssh-clients -passwd -pigz -procps-ng -rsync -shadow-utils -sudo -tcpdump -time -traceroute -tree -unzip -vte-profile -wget -which -words -xorg-x11-xauth -xz -zip diff --git a/images/fedora/f33/missing-docs b/images/fedora/f33/missing-docs deleted file mode 100644 index b634f27b6..000000000 --- a/images/fedora/f33/missing-docs +++ /dev/null @@ -1,15 +0,0 @@ -acl -bash -curl -gawk -grep -gzip -libcap -openssl -p11-kit -pam -python3 -rpm -sed -systemd -tar diff --git a/images/fedora/f34/Containerfile b/images/fedora/f34/Containerfile deleted file mode 100644 index 8208c44cf..000000000 --- a/images/fedora/f34/Containerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM registry.fedoraproject.org/fedora:34 - -ENV NAME=fedora-toolbox VERSION=34 -LABEL com.github.containers.toolbox="true" \ - com.redhat.component="$NAME" \ - name="$NAME" \ - version="$VERSION" \ - usage="This image is meant to be used with the toolbox command" \ - summary="Base image for creating Fedora toolbox containers" \ - maintainer="Debarshi Ray " - -COPY README.md / - -RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf -RUN dnf -y swap coreutils-single coreutils-full - -COPY missing-docs / -RUN dnf -y reinstall $( - -[![Zuul](https://zuul-ci.org/gated.svg)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers/toolbox) -[![Daily Pipeline](https://softwarefactory-project.io/zuul/api/tenant/local/badge?project=containers/toolbox&pipeline=periodic)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers%2Ftoolbox&pipeline=periodic) - -[![Arch Linux package](https://img.shields.io/archlinux/v/community/x86_64/toolbox)](https://www.archlinux.org/packages/community/x86_64/toolbox/) -[![Fedora package](https://img.shields.io/fedora/v/toolbox/rawhide)](https://src.fedoraproject.org/rpms/toolbox/) - -[Toolbox](https://github.com/containers/toolbox) is a tool for Linux operating -systems, which allows the use of containerized command line environments. It is -built on top of [Podman](https://podman.io/) and other standard container -technologies from [OCI](https://opencontainers.org/). - -This is particularly useful on -[OSTree](https://ostree.readthedocs.io/en/latest/) based operating systems like -[Fedora CoreOS](https://coreos.fedoraproject.org/) and -[Silverblue](https://silverblue.fedoraproject.org/). The intention of these -systems is to discourage installation of software on the host, and instead -install software as (or in) containers — they mostly don't even have package -managers like DNF or YUM. This makes it difficult to set up a development -environment or install tools for debugging in the usual way. - -Toolbox solves this problem by providing a fully mutable container within -which one can install their favourite development and debugging tools, editors -and SDKs. For example, it's possible to do `yum install ansible` without -affecting the base operating system. - -However, this tool doesn't *require* using an OSTree based system. It works -equally well on Fedora Workstation and Server, and that's a useful way to -incrementally adopt containerization. - -The toolbox environment is based on an [OCI](https://www.opencontainers.org/) -image. On Fedora this is the `fedora-toolbox` image. This image is used to -create a toolbox container that seamlessly integrates with the rest of the -operating system by providing access to the user's home directory, the Wayland -and X11 sockets, networking (including Avahi), removable devices (like USB -sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev -database, etc.. - - -## Installation - -Toolbox is installed by default on Fedora Silverblue. On other operating -systems it's just a matter of installing the `toolbox` package. - -## Usage - -### Create your toolbox container: -```console -[user@hostname ~]$ toolbox create -Created container: fedora-toolbox-33 -Enter with: toolbox enter -[user@hostname ~]$ -``` -This will create a container called `fedora-toolbox-`. - -### Enter the toolbox: -```console -[user@hostname ~]$ toolbox enter -⬢[user@toolbox ~]$ -``` - -### Remove a toolbox container: -```console -[user@hostname ~]$ toolbox rm fedora-toolbox-33 -[user@hostname ~]$ -``` - -## Dependencies and Building - -Toolbox requires at least Podman 1.4.0 to work, and uses the Meson build -system. - -The following dependencies are required to build it: -- meson -- go-md2man -- systemd -- go -- ninja - -The following dependencies enable various optional features: -- bash-completion - -It can be built and installed as any other typical Meson-based project: -```console -[user@hostname toolbox]$ meson -Dprofile_dir=/etc/profile.d builddir -[user@hostname toolbox]$ ninja -C builddir -[user@hostname toolbox]$ sudo ninja -C builddir install -``` - -Toolbox is written in Go. Consult the -[src/go.mod](https://github.com/containers/toolbox/blob/main/src/go.mod) file -for a full list of all the Go dependencies. - -By default, Toolbox uses Go modules and all the required Go packages are -automatically downloaded as part of the build. There's no need to worry about -the Go dependencies, unless the build environment doesn't have network access -or any such peculiarities. - -## Distro support - -By default, Toolbox creates the container using an -[OCI](https://www.opencontainers.org/) image called -`-toolbox:`, where `` and `` are taken from the -host's `/usr/lib/os-release`. For example, the default image on a Fedora 33 -host would be `fedora-toolbox:33`. - -This default can be overridden by the `--image` option in `toolbox create`, -but operating system distributors should provide an adequately configured -default image to ensure a smooth user experience. - -## Image requirements - -Toolbox customizes newly created containers in a certain way. This requires -certain tools and paths to be present and have certain characteristics inside -the OCI image. - -Tools: -* `getent(1)` -* `id(1)` -* `ln(1)` -* `mkdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `passwd(1)` -* `readlink(1)` -* `rm(1)` -* `rmdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `sleep(1)` -* `test(1)` -* `touch(1)` -* `unlink(1)` -* `useradd(8)` -* `usermod(8)` - -Paths: -* `/etc/host.conf`: optional, if present not a bind mount -* `/etc/hosts`: optional, if present not a bind mount -* `/etc/krb5.conf.d`: directory, not a bind mount -* `/etc/localtime`: optional, if present not a bind mount -* `/etc/machine-id`: optional, not a bind mount -* `/etc/resolv.conf`: optional, if present not a bind mount -* `/etc/timezone`: optional, if present not a bind mount - -Toolbox enables `sudo(8)` access inside containers. The following is necessary -for that to work: - -* The image should have `sudo(8)` enabled for users belonging to either the - `sudo` or `wheel` groups, and the group itself should exist. File an - [issue](https://github.com/containers/toolbox/issues/new) if you really need - support for a different group. However, it's preferable to keep this list as - short as possible. - -* The image should allow empty passwords for `sudo(8)`. This can be achieved - by either adding the `nullok` option to the `PAM(8)` configuration, or by - add the `NOPASSWD` tag to the `sudoers(5)` configuration. - -Since Toolbox only works with OCI images that fulfill certain requirements, -it will refuse images that aren't tagged with -`com.github.containers.toolbox="true"` and -`com.github.debarshiray.toolbox="true"` labels. These labels are meant to be -used by the maintainer of the image to indicate that they have read this -document and tested that the image works with Toolbox. You can use the -following snippet in a Dockerfile for this: -```Dockerfile -LABEL com.github.containers.toolbox="true" -``` -The label `com.github.debarshiray.toolbox="true"` was used in previous versions -of toolbox but is currently deprecated. diff --git a/images/fedora/f34/extra-packages b/images/fedora/f34/extra-packages deleted file mode 100644 index 52bf3f31b..000000000 --- a/images/fedora/f34/extra-packages +++ /dev/null @@ -1,45 +0,0 @@ -bash-completion -bc -bzip2 -diffutils -dnf-plugins-core -findutils -flatpak-spawn -fpaste -git -gnupg -gnupg2-smime -gvfs-client -hostname -iproute -iputils -jwhois -keyutils -krb5-libs -less -lsof -man-db -man-pages -mtr -nano-default-editor -nss-mdns -openssh-clients -passwd -pigz -procps-ng -rsync -shadow-utils -sudo -tcpdump -time -traceroute -tree -unzip -util-linux -vte-profile -wget -which -words -xorg-x11-xauth -xz -zip diff --git a/images/fedora/f34/missing-docs b/images/fedora/f34/missing-docs deleted file mode 100644 index b634f27b6..000000000 --- a/images/fedora/f34/missing-docs +++ /dev/null @@ -1,15 +0,0 @@ -acl -bash -curl -gawk -grep -gzip -libcap -openssl -p11-kit -pam -python3 -rpm -sed -systemd -tar diff --git a/images/fedora/f35/Containerfile b/images/fedora/f35/Containerfile deleted file mode 100644 index d84894b5a..000000000 --- a/images/fedora/f35/Containerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM registry.fedoraproject.org/fedora:35 - -ENV NAME=fedora-toolbox VERSION=35 -LABEL com.github.containers.toolbox="true" \ - com.redhat.component="$NAME" \ - name="$NAME" \ - version="$VERSION" \ - usage="This image is meant to be used with the toolbox command" \ - summary="Base image for creating Fedora toolbox containers" \ - maintainer="Debarshi Ray " - -COPY README.md / - -RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf -RUN dnf -y swap coreutils-single coreutils-full - -COPY missing-docs / -RUN dnf -y reinstall $( - -[![Zuul](https://zuul-ci.org/gated.svg)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers/toolbox) -[![Daily Pipeline](https://softwarefactory-project.io/zuul/api/tenant/local/badge?project=containers/toolbox&pipeline=periodic)](https://softwarefactory-project.io/zuul/t/local/builds?project=containers%2Ftoolbox&pipeline=periodic) - -[![Arch Linux package](https://img.shields.io/archlinux/v/community/x86_64/toolbox)](https://www.archlinux.org/packages/community/x86_64/toolbox/) -[![Fedora package](https://img.shields.io/fedora/v/toolbox/rawhide)](https://src.fedoraproject.org/rpms/toolbox/) - -[Toolbox](https://github.com/containers/toolbox) is a tool for Linux operating -systems, which allows the use of containerized command line environments. It is -built on top of [Podman](https://podman.io/) and other standard container -technologies from [OCI](https://opencontainers.org/). - -This is particularly useful on -[OSTree](https://ostree.readthedocs.io/en/latest/) based operating systems like -[Fedora CoreOS](https://coreos.fedoraproject.org/) and -[Silverblue](https://silverblue.fedoraproject.org/). The intention of these -systems is to discourage installation of software on the host, and instead -install software as (or in) containers — they mostly don't even have package -managers like DNF or YUM. This makes it difficult to set up a development -environment or install tools for debugging in the usual way. - -Toolbox solves this problem by providing a fully mutable container within -which one can install their favourite development and debugging tools, editors -and SDKs. For example, it's possible to do `yum install ansible` without -affecting the base operating system. - -However, this tool doesn't *require* using an OSTree based system. It works -equally well on Fedora Workstation and Server, and that's a useful way to -incrementally adopt containerization. - -The toolbox environment is based on an [OCI](https://www.opencontainers.org/) -image. On Fedora this is the `fedora-toolbox` image. This image is used to -create a toolbox container that seamlessly integrates with the rest of the -operating system by providing access to the user's home directory, the Wayland -and X11 sockets, networking (including Avahi), removable devices (like USB -sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev -database, etc.. - - -## Installation - -Toolbox is installed by default on Fedora Silverblue. On other operating -systems it's just a matter of installing the `toolbox` package. - -## Usage - -### Create your toolbox container: -```console -[user@hostname ~]$ toolbox create -Created container: fedora-toolbox-33 -Enter with: toolbox enter -[user@hostname ~]$ -``` -This will create a container called `fedora-toolbox-`. - -### Enter the toolbox: -```console -[user@hostname ~]$ toolbox enter -⬢[user@toolbox ~]$ -``` - -### Remove a toolbox container: -```console -[user@hostname ~]$ toolbox rm fedora-toolbox-33 -[user@hostname ~]$ -``` - -## Dependencies and Building - -Toolbox requires at least Podman 1.4.0 to work, and uses the Meson build -system. - -The following dependencies are required to build it: -- meson -- go-md2man -- systemd -- go -- ninja - -The following dependencies enable various optional features: -- bash-completion - -It can be built and installed as any other typical Meson-based project: -```console -[user@hostname toolbox]$ meson -Dprofile_dir=/etc/profile.d builddir -[user@hostname toolbox]$ ninja -C builddir -[user@hostname toolbox]$ sudo ninja -C builddir install -``` - -Toolbox is written in Go. Consult the -[src/go.mod](https://github.com/containers/toolbox/blob/main/src/go.mod) file -for a full list of all the Go dependencies. - -By default, Toolbox uses Go modules and all the required Go packages are -automatically downloaded as part of the build. There's no need to worry about -the Go dependencies, unless the build environment doesn't have network access -or any such peculiarities. - -## Distro support - -By default, Toolbox creates the container using an -[OCI](https://www.opencontainers.org/) image called -`-toolbox:`, where `` and `` are taken from the -host's `/usr/lib/os-release`. For example, the default image on a Fedora 33 -host would be `fedora-toolbox:33`. - -This default can be overridden by the `--image` option in `toolbox create`, -but operating system distributors should provide an adequately configured -default image to ensure a smooth user experience. - -## Image requirements - -Toolbox customizes newly created containers in a certain way. This requires -certain tools and paths to be present and have certain characteristics inside -the OCI image. - -Tools: -* `getent(1)` -* `id(1)` -* `ln(1)` -* `mkdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `passwd(1)` -* `readlink(1)` -* `rm(1)` -* `rmdir(1)`: for hosts where `/home` is a symbolic link to `/var/home` -* `sleep(1)` -* `test(1)` -* `touch(1)` -* `unlink(1)` -* `useradd(8)` -* `usermod(8)` - -Paths: -* `/etc/host.conf`: optional, if present not a bind mount -* `/etc/hosts`: optional, if present not a bind mount -* `/etc/krb5.conf.d`: directory, not a bind mount -* `/etc/localtime`: optional, if present not a bind mount -* `/etc/machine-id`: optional, not a bind mount -* `/etc/resolv.conf`: optional, if present not a bind mount -* `/etc/timezone`: optional, if present not a bind mount - -Toolbox enables `sudo(8)` access inside containers. The following is necessary -for that to work: - -* The image should have `sudo(8)` enabled for users belonging to either the - `sudo` or `wheel` groups, and the group itself should exist. File an - [issue](https://github.com/containers/toolbox/issues/new) if you really need - support for a different group. However, it's preferable to keep this list as - short as possible. - -* The image should allow empty passwords for `sudo(8)`. This can be achieved - by either adding the `nullok` option to the `PAM(8)` configuration, or by - add the `NOPASSWD` tag to the `sudoers(5)` configuration. - -Since Toolbox only works with OCI images that fulfill certain requirements, -it will refuse images that aren't tagged with -`com.github.containers.toolbox="true"` and -`com.github.debarshiray.toolbox="true"` labels. These labels are meant to be -used by the maintainer of the image to indicate that they have read this -document and tested that the image works with Toolbox. You can use the -following snippet in a Dockerfile for this: -```Dockerfile -LABEL com.github.containers.toolbox="true" -``` -The label `com.github.debarshiray.toolbox="true"` was used in previous versions -of toolbox but is currently deprecated. diff --git a/images/fedora/f35/extra-packages b/images/fedora/f35/extra-packages deleted file mode 100644 index cdd2aa10e..000000000 --- a/images/fedora/f35/extra-packages +++ /dev/null @@ -1,48 +0,0 @@ -bash-completion -bc -bzip2 -diffutils -dnf-plugins-core -findutils -flatpak-spawn -fpaste -git -gnupg -gnupg2-smime -gvfs-client -hostname -iproute -iputils -jwhois -keyutils -krb5-libs -less -lsof -man-db -man-pages -mesa-dri-drivers -mesa-vulkan-drivers -mtr -nano-default-editor -nss-mdns -openssh-clients -passwd -pigz -procps-ng -rsync -shadow-utils -sudo -tcpdump -time -traceroute -tree -unzip -util-linux -vte-profile -vulkan-loader -wget -which -words -xorg-x11-xauth -xz -zip diff --git a/images/fedora/f35/missing-docs b/images/fedora/f35/missing-docs deleted file mode 100644 index b634f27b6..000000000 --- a/images/fedora/f35/missing-docs +++ /dev/null @@ -1,15 +0,0 @@ -acl -bash -curl -gawk -grep -gzip -libcap -openssl -p11-kit -pam -python3 -rpm -sed -systemd -tar diff --git a/images/fedora/f36/Containerfile b/images/fedora/f36/Containerfile deleted file mode 100644 index 0136d837a..000000000 --- a/images/fedora/f36/Containerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM registry.fedoraproject.org/fedora:36 - -ENV NAME=fedora-toolbox VERSION=36 -LABEL com.github.containers.toolbox="true" \ - com.redhat.component="$NAME" \ - name="$NAME" \ - version="$VERSION" \ - usage="This image is meant to be used with the toolbox command" \ - summary="Base image for creating Fedora toolbox containers" \ - maintainer="Debarshi Ray " - -COPY README.md / - -RUN rm /etc/rpm/macros.image-language-conf -RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf - -RUN dnf -y upgrade -RUN dnf -y swap coreutils-single coreutils-full -RUN dnf -y swap glibc-minimal-langpack glibc-all-langpacks - -COPY missing-docs / -RUN dnf -y reinstall $(/dev/null; then \ - echo "$file: No such file or directory" >&2; \ - ret_val=1; \ - break; \ - fi; \ - done /dev/null; then \ - echo "$file: No such file or directory" >&2; \ - ret_val=1; \ - break; \ - fi; \ - done /dev/null; then \ - echo "$file: No such file or directory" >&2; \ - ret_val=1; \ - break; \ - fi; \ - done /dev/null; then \ - echo "$file: No such file or directory" >&2; \ - ret_val=1; \ - break; \ - fi; \ - done Date: Mon, 26 Jan 2026 02:10:31 +0100 Subject: [PATCH 11/11] .zuul: Drop one "o" and rename the project as "Toolbx" This is meant to make the project more searchable on the Internet. More and more people have been pointing out that "toolbox" is terribly difficult to search for, and it's impossible to find any decent Internet real estate by that name. https://github.com/containers/toolbox/issues/1399 https://github.com/containers/toolbox/pull/1740 https://github.com/containers/toolbox/pull/1744 (backported from commit c3403dae8cb0544ecaa94abdcd5eb3c896851b90) (backported from commit e7043ea3abec0cb2673c52cc45e3358f801fb874) --- .zuul.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 1e8594c99..49c6479cb 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -17,7 +17,7 @@ --- - job: name: unit-test - description: Run Toolbox's unit tests declared in Meson + description: Run Toolbx's unit tests declared in Meson timeout: 1800 nodeset: nodes: @@ -28,7 +28,7 @@ - job: name: unit-test-migration-path-for-coreos-toolbox - description: Run Toolbox's unit tests declared in Meson when built with -Dmigration_path_for_coreos_toolbox + description: Run Toolbx's unit tests declared in Meson when built with -Dmigration_path_for_coreos_toolbox timeout: 600 nodeset: nodes: @@ -39,7 +39,7 @@ - job: name: system-test-fedora-rawhide - description: Run Toolbox's system tests in Fedora Rawhide + description: Run Toolbx's system tests in Fedora Rawhide timeout: 4800 nodeset: nodes: