Drop the "fedora" prefix and rename the project as just "toolbox"
The "fedora" prefix was used because this project was specifically incubated to make it easier to hack on Fedora Silverblue. That and the mix of upstream technologies (ie., Buildah and Podman) made it uniquely "Fedora". However, over time it has gotten clear that other groups, currently Fedora downstreams like RHEL, are interested in it too. It won't be surprising if in future it transcends the Fedora universe altogether. Moreover, this project was inspired by coreos/toolbox [1]. There are good reasons and enough interest to have a unified toolbox project that addresses the needs of both Fedora CoreOS and Silverblue. Therefore, it is best to drop the "fedora" prefix and call the whole thing just "toolbox". No extra effort was made to retain compatibility with the older name due to the project's young age. Its userbase is limited to the earliest of early adopters, and the benefits of a clean break outweigh the loss of compatibility. The OCI images and the toolbox container still retain the "fedora" prefix to disambiguate them from their counterparts from other operating systems. [1] https://github.com/coreos/toolbox https://github.com/debarshiray/toolbox/issues/8
This commit is contained in:
parent
05f3530421
commit
c6b5a4836f
7 changed files with 36 additions and 35 deletions
23
README.md
23
README.md
|
@ -1,8 +1,8 @@
|
||||||
# Fedora Toolbox — Unprivileged development environment
|
# Toolbox — Unprivileged development environment
|
||||||
|
|
||||||
[Fedora Toolbox](https://github.com/debarshiray/fedora-toolbox) is a tool that
|
[Toolbox](https://github.com/debarshiray/toolbox) is a tool that offers a
|
||||||
offers a familiar RPM based environment for developing and debugging software
|
familiar RPM based environment for developing and debugging software that runs
|
||||||
that runs fully unprivileged using [Podman](https://podman.io/).
|
fully unprivileged using [Podman](https://podman.io/).
|
||||||
|
|
||||||
The toolbox container is a fully *mutable* container; when you see
|
The toolbox container is a fully *mutable* container; when you see
|
||||||
`yum install ansible` for example, that's something you can do inside your
|
`yum install ansible` for example, that's something you can do inside your
|
||||||
|
@ -18,23 +18,24 @@ However this project doesn't *require* using an OSTree based system — it
|
||||||
works equally well if you're running e.g. existing Fedora Workstation or
|
works equally well if you're running e.g. existing Fedora Workstation or
|
||||||
Server, and that's a useful way to incrementally adopt containerization.
|
Server, and that's a useful way to incrementally adopt containerization.
|
||||||
|
|
||||||
The toolbox environment is based on the `fedora-toolbox` image. This image is
|
The toolbox environment is based on an OCI image. On Fedora this is the
|
||||||
then customized for the current user to create a toolbox container that
|
`fedora-toolbox` image. This image is then customized for the current user to
|
||||||
seamlessly integrates with the rest of the operating system.
|
create a toolbox container thatseamlessly integrates with the rest of the
|
||||||
|
operating system.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Create your Fedora Toolbox container:
|
### Create your toolbox container:
|
||||||
```
|
```
|
||||||
[user@hostname ~]$ fedora-toolbox create
|
[user@hostname ~]$ toolbox create
|
||||||
[user@hostname ~]$
|
[user@hostname ~]$
|
||||||
```
|
```
|
||||||
This will create a container, and an image, called
|
This will create a container, and an image, called
|
||||||
`fedora-toolbox-<your-username>:<version-id>` that's specifically customised
|
`fedora-toolbox-<your-username>:<version-id>` that's specifically customised
|
||||||
for your host user.
|
for your host user.
|
||||||
|
|
||||||
### Enter the Toolbox:
|
### Enter the toolbox:
|
||||||
```
|
```
|
||||||
[user@hostname ~]$ fedora-toolbox enter
|
[user@hostname ~]$ toolbox enter
|
||||||
🔹[user@toolbox ~]$
|
🔹[user@toolbox ~]$
|
||||||
```
|
```
|
||||||
|
|
|
@ -4,7 +4,7 @@ ENV NAME=fedora-toolbox VERSION=28
|
||||||
LABEL com.redhat.component="$NAME" \
|
LABEL com.redhat.component="$NAME" \
|
||||||
name="$FGC/$NAME" \
|
name="$FGC/$NAME" \
|
||||||
version="$VERSION" \
|
version="$VERSION" \
|
||||||
usage="This image is meant to be used with the fedora-toolbox command" \
|
usage="This image is meant to be used with the toolbox command" \
|
||||||
summary="Base image for creating Fedora toolbox containers" \
|
summary="Base image for creating Fedora toolbox containers" \
|
||||||
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ ENV NAME=fedora-toolbox VERSION=29
|
||||||
LABEL com.redhat.component="$NAME" \
|
LABEL com.redhat.component="$NAME" \
|
||||||
name="$FGC/$NAME" \
|
name="$FGC/$NAME" \
|
||||||
version="$VERSION" \
|
version="$VERSION" \
|
||||||
usage="This image is meant to be used with the fedora-toolbox command" \
|
usage="This image is meant to be used with the toolbox command" \
|
||||||
summary="Base image for creating Fedora toolbox containers" \
|
summary="Base image for creating Fedora toolbox containers" \
|
||||||
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ ENV NAME=fedora-toolbox VERSION=30
|
||||||
LABEL com.redhat.component="$NAME" \
|
LABEL com.redhat.component="$NAME" \
|
||||||
name="$FGC/$NAME" \
|
name="$FGC/$NAME" \
|
||||||
version="$VERSION" \
|
version="$VERSION" \
|
||||||
usage="This image is meant to be used with the fedora-toolbox command" \
|
usage="This image is meant to be used with the toolbox command" \
|
||||||
summary="Base image for creating Fedora toolbox containers" \
|
summary="Base image for creating Fedora toolbox containers" \
|
||||||
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
project(
|
project(
|
||||||
'fedora-toolbox',
|
'toolbox',
|
||||||
version: '0.0.5',
|
version: '0.0.5',
|
||||||
license: 'ASL 2.0',
|
license: 'ASL 2.0',
|
||||||
meson_version: '>= 0.40.0',
|
meson_version: '>= 0.40.0',
|
||||||
)
|
)
|
||||||
|
|
||||||
install_data(
|
install_data(
|
||||||
'fedora-toolbox',
|
'toolbox',
|
||||||
install_dir: get_option('bindir'),
|
install_dir: get_option('bindir'),
|
||||||
)
|
)
|
||||||
|
|
|
@ -212,7 +212,7 @@ create()
|
||||||
(
|
(
|
||||||
dbus_system_bus_address="unix:path=/var/run/dbus/system_bus_socket"
|
dbus_system_bus_address="unix:path=/var/run/dbus/system_bus_socket"
|
||||||
tmpfs_size=$((64 * 1024 * 1024)) # 64 MiB
|
tmpfs_size=$((64 * 1024 * 1024)) # 64 MiB
|
||||||
working_container_name="fedora-toolbox-working-container-$(uuidgen --time)"
|
working_container_name="toolbox-working-container-$(uuidgen --time)"
|
||||||
|
|
||||||
if [ "$DBUS_SYSTEM_BUS_ADDRESS" != "" ]; then
|
if [ "$DBUS_SYSTEM_BUS_ADDRESS" != "" ]; then
|
||||||
dbus_system_bus_address=$DBUS_SYSTEM_BUS_ADDRESS
|
dbus_system_bus_address=$DBUS_SYSTEM_BUS_ADDRESS
|
||||||
|
@ -231,7 +231,7 @@ create()
|
||||||
localhost/$base_toolbox_image >/dev/null 2>&42; then
|
localhost/$base_toolbox_image >/dev/null 2>&42; then
|
||||||
echo "$base_toolbox_command: looking for image $registry/$fgc/$base_toolbox_image" >&42
|
echo "$base_toolbox_command: looking for image $registry/$fgc/$base_toolbox_image" >&42
|
||||||
|
|
||||||
if spinner_directory=$(mktemp --directory --tmpdir fedora-toolbox-spinner-XXXXXXXXXX 2>&42); then
|
if spinner_directory=$(mktemp --directory --tmpdir toolbox-spinner-XXXXXXXXXX 2>&42); then
|
||||||
spinner_message="$base_toolbox_command: pulling from $registry: "
|
spinner_message="$base_toolbox_command: pulling from $registry: "
|
||||||
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
||||||
spinner_directory=""
|
spinner_directory=""
|
||||||
|
@ -258,7 +258,7 @@ create()
|
||||||
|
|
||||||
echo "$base_toolbox_command: trying to configure working container $working_container_name" >&42
|
echo "$base_toolbox_command: trying to configure working container $working_container_name" >&42
|
||||||
|
|
||||||
if spinner_directory=$(mktemp --directory --tmpdir fedora-toolbox-spinner-XXXXXXXXXX 2>&42); then
|
if spinner_directory=$(mktemp --directory --tmpdir toolbox-spinner-XXXXXXXXXX 2>&42); then
|
||||||
spinner_message="$base_toolbox_command: configuring working container: "
|
spinner_message="$base_toolbox_command: configuring working container: "
|
||||||
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
||||||
spinner_directory=""
|
spinner_directory=""
|
||||||
|
@ -282,7 +282,7 @@ create()
|
||||||
|
|
||||||
echo "$base_toolbox_command: trying to create image $toolbox_image" >&42
|
echo "$base_toolbox_command: trying to create image $toolbox_image" >&42
|
||||||
|
|
||||||
if spinner_directory=$(mktemp --directory --tmpdir fedora-toolbox-spinner-XXXXXXXXXX 2>&42); then
|
if spinner_directory=$(mktemp --directory --tmpdir toolbox-spinner-XXXXXXXXXX 2>&42); then
|
||||||
spinner_message="$base_toolbox_command: creating image $toolbox_image: "
|
spinner_message="$base_toolbox_command: creating image $toolbox_image: "
|
||||||
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
||||||
spinner_directory=""
|
spinner_directory=""
|
||||||
|
@ -326,7 +326,7 @@ create()
|
||||||
|
|
||||||
echo "$base_toolbox_command: trying to create container $toolbox_container" >&42
|
echo "$base_toolbox_command: trying to create container $toolbox_container" >&42
|
||||||
|
|
||||||
if spinner_directory=$(mktemp --directory --tmpdir fedora-toolbox-spinner-XXXXXXXXXX 2>&42); then
|
if spinner_directory=$(mktemp --directory --tmpdir toolbox-spinner-XXXXXXXXXX 2>&42); then
|
||||||
spinner_message="$base_toolbox_command: creating container $toolbox_container: "
|
spinner_message="$base_toolbox_command: creating container $toolbox_container: "
|
||||||
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
if ! spinner_start "$spinner_directory" "$spinner_message"; then
|
||||||
spinner_directory=""
|
spinner_directory=""
|
||||||
|
@ -436,7 +436,7 @@ list_images()
|
||||||
| column --separator $'\t' --table --table-columns "IMAGE ID,IMAGE NAME,CREATED")
|
| column --separator $'\t' --table --table-columns "IMAGE ID,IMAGE NAME,CREATED")
|
||||||
|
|
||||||
if [ "$output" != "" ]; then
|
if [ "$output" != "" ]; then
|
||||||
echo -e "${LBC}Images created by fedora-toolbox${NC}"
|
echo -e "${LBC}Images created by toolbox${NC}"
|
||||||
echo "$output"
|
echo "$output"
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
@ -455,7 +455,7 @@ list_containers()
|
||||||
--table-columns "CONTAINER ID,CONTAINER NAME,CREATED,STATUS,IMAGE NAME" 2>&42)
|
--table-columns "CONTAINER ID,CONTAINER NAME,CREATED,STATUS,IMAGE NAME" 2>&42)
|
||||||
|
|
||||||
if [ "$output" != "" ]; then
|
if [ "$output" != "" ]; then
|
||||||
echo -e "${LBC}Containers created by fedora-toolbox${NC}"
|
echo -e "${LBC}Containers created by toolbox${NC}"
|
||||||
echo "$output" | head --lines 1 2>&42
|
echo "$output" | head --lines 1 2>&42
|
||||||
(
|
(
|
||||||
echo "$output" | tail --lines +2 2>&42
|
echo "$output" | tail --lines +2 2>&42
|
||||||
|
@ -495,18 +495,18 @@ exit_if_unrecognized_option()
|
||||||
|
|
||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
echo "Usage: fedora-toolbox [--container <name>]"
|
echo "Usage: toolbox [--container <name>]"
|
||||||
echo " [--release <release>]"
|
echo " [--release <release>]"
|
||||||
echo " [-v | --verbose]"
|
echo " [-v | --verbose]"
|
||||||
echo " create [--candidate-registry]"
|
echo " create [--candidate-registry]"
|
||||||
echo " [--image <name>]"
|
echo " [--image <name>]"
|
||||||
echo " or: fedora-toolbox [--container <name>]"
|
echo " or: toolbox [--container <name>]"
|
||||||
echo " [--release <release>]"
|
echo " [--release <release>]"
|
||||||
echo " [-v | --verbose]"
|
echo " [-v | --verbose]"
|
||||||
echo " enter"
|
echo " enter"
|
||||||
echo " or: fedora-toolbox list [-c | --containers]"
|
echo " or: toolbox list [-c | --containers]"
|
||||||
echo " [-i | --images]"
|
echo " [-i | --images]"
|
||||||
echo " or: fedora-toolbox --help"
|
echo " or: toolbox --help"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue