Compare commits

...
Sign in to create a new pull request.

15 commits

Author SHA1 Message Date
e30b5ff22c Add all the iconv converter modules for glibc
Currently, the glibc package mentions glibc-gconv-extra, which contains
the iconv converter modules that are not commonly used, as a weak
dependency [1].  However, the glibc package is part of the fedora base
image, which doesn't include weak dependencies [2], and that leads to
glibc-gconv-extra going missing.

[1] Fedora glibc commit 51ca5d3334c3cd35
    https://src.fedoraproject.org/rpms/glibc/c/51ca5d3334c3cd35
    https://src.fedoraproject.org/rpms/glibc/pull-request/36
    https://bugzilla.redhat.com/show_bug.cgi?id=1812191

[2] fedora-kickstarts commit 1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/c/1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/pull-request/551
    https://pagure.io/releng/issue/8530

https://github.com/containers/toolbox/pull/1456
2024-02-22 02:48:32 +01:00
0b4920fbbd Tweak the 'usage' label
https://github.com/containers/toolbox/pull/1456
2024-02-22 02:47:01 +01:00
209968478f Tweak the 'summary' label
The concept of a 'base' image for creating Toolbx containers hasn't
existed since Toolbx 0.0.10, when the Buildah dependency and the
user-specific customized image were dropped [1].  That was a long time
ago.  Toolbx containers created before that were never supported by the
Go implementation [2].

Therefore, it's time to update the terminology.

[1] Toolbx commit 8b84b5e4604921fa
    8b84b5e460
    https://github.com/containers/toolbox/pull/160

[2] Toolbx commit 238f2451e7d7d54a
    238f2451e7
    https://github.com/containers/toolbox/pull/318

https://github.com/containers/toolbox/pull/1456
2024-02-22 02:45:43 +01:00
d7fcb30a3d Add translations for gawk
Currently, the gawk package mentions gawk-all-langpacks, which contains
the translations, as a weak dependency [1].  However, the gawk package
is part of the fedora base image, which doesn't include weak
dependencies [2], and that leads to gawk-all-langpacks going missing.

[1] Fedora gawk commit ef1d4dbefb5ccbe6
    https://src.fedoraproject.org/rpms/gawk/c/ef1d4dbefb5ccbe6

[2] fedora-kickstarts commit 1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/c/1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/pull-request/551
    https://pagure.io/releng/issue/8530

https://github.com/containers/toolbox/pull/1456
2024-02-22 02:42:43 +01:00
9f1a9c5971 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.

Some exceptions:

  * The code repository is still https://github.com/containers/toolbox.
    It will be renamed after giving a heads-up to other contributors.

  * The name of the binary is still 'toolbox'.  The name is embedded
    into existing Toolbx containers as their entry point, which is bind
    mounted from the host operating system when the containers are
    started.  Trivially renaming the binary will prevent these
    containers from starting.

  * The label used to identify Toolbx containers and images is still
    called com.github.containers.toolbox.  There are many existing
    Toolbx containers, and many Toolbx images beyond the control of the
    Toolbx project that use this label to identity themselves.  Simply
    renaming the label will prevent these containers and images from
    being recognized.

  * The names of the built-in Toolbx images still retain the word
    'toolbox'.  Images under the new name need to be published on the
    OCI registries and the toolbox(1) binary needs to be taught to
    handle both old and new names, wherever necessary, for backwards
    compatibility.

https://github.com/containers/toolbox/issues/1399
2024-02-22 02:42:13 +01:00
c36ca58a44 Update missing-docs
Otherwise the image fails to build with:
  $ podman build images/fedora/f38
  ...
  Packages with missing files:
  libcomps
  ...

https://github.com/containers/toolbox/issues/1351
2024-02-01 20:02:49 +01:00
b915fe5991 Add cracklib-dicts
Currently, the libpwquality package mentions cracklib-dicts as a weak
dependency [1,2].  However, the libpwquality package is part of the
fedora base image, which doesn't include weak dependencies [3], and that
leads to cracklib-dicts going missing.

The absence of the cracklib-dicts package causes various operations that
go through libpwquality (eg., pwmake(1)) to fail [1], and sometimes in
confusing ways [4].

[1] Fedora libpwquality commit f84a5e3ba6c166e5
    https://src.fedoraproject.org/rpms/libpwquality/c/f84a5e3ba6c166e5
    https://bugzilla.redhat.com/show_bug.cgi?id=2158891

[2] Fedora libpwquality commit 303154338d6d3650
    https://src.fedoraproject.org/rpms/libpwquality/c/303154338d6d3650
    https://bugzilla.redhat.com/show_bug.cgi?id=2006063

[3] fedora-kickstarts commit 1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/c/1c39c0adb0d44866
    https://pagure.io/fedora-kickstarts/pull-request/551
    https://pagure.io/releng/issue/8530

[4] https://github.com/libpwquality/libpwquality/pull/85

https://github.com/containers/toolbox/issues/1351
2024-02-01 19:22:10 +01:00
bd32a3502a Unbreak OSTree URL
No need to issue a build just for this.

https://github.com/containers/toolbox/issues/1417
2024-02-01 19:20:59 +01:00
2e826371c6 Ensure that documentation and translations are present
This should finally ensure that the fedora-toolbox image doesn't have
any package that had its content, such as documentation or translations,
stripped out by the fedora base image.

Until now, missing-docs had a hand-maintained list of packages that had
their content stripped out by the fedora base image.  These packages are
reinstalled when building the fedora-toolbox image to restore the lost
content.  Unfortunately, this list was incomplete because it was only
updated when someone noticed that something is missing.

Now, the list is generated with:
  $ rpm --all --query --state --queryformat "PACKAGE: %{NAME}\n"

... to ensure that it's always complete.

The existing built-in test to ensure that the desired files are actually
present in the final image was extended to cover some of those that were
absent.  A new built-in test, based on the above rpm(1) command, was
added as a fallback to ensure that the final image doesn't have any
package with missing content.

As suggested by Brian Campbell.

https://github.com/containers/toolbox/issues/603
2023-11-01 15:29:10 +01:00
5797ed67a3 Ensure that the useradd(8), etc. manuals are available
The shadow-utils package has always been part of the fedora base image.
It's explicitly listed in extra-packages as a safeguard against losing
useradd(8) and usermod(8) by mistake because they are needed by the
entry point of a Toolbx container [1].  Hence, the need to restore the
shadow-utils documentation that was stripped out in the base image.

[1] Toolbx commit c6772f0f112e8004
    c6772f0f11

https://github.com/containers/toolbox/pull/1394
2023-10-27 20:32:52 +02:00
ef46475784 Add psmisc
It's currently being pulled in as a dependency of iproute.  However,
since it's explicitly mentioned in the list of default packages on
Fedora Silverblue and Workstation [1], it should be mentioned here too.

The psmisc package marks the translations for its manuals with %lang().
Therefore, it's a very good example for testing that the fedora-toolbox
image is localized just like Fedora Silverblue and Workstation.

This is unlike the xz package, whose translations for manuals were added
to the tests recently [2].  The xz package doesn't mark its translated
manuals with %lang() [3], which means that they are going to get
installed regardless of whether RPM has been configured to not install
localization files or not.  eg., through the %_install_langs macro.  So,
they aren't a good candidate for the tests until this is fixed.

No need to issue a build just for this.

[1] fedora-comps commit e4ed54dfcc497fd0
    https://pagure.io/fedora-comps/c/e4ed54dfcc497fd0
    https://pagure.io/fedora-comps/pull-request/379

[2] Toolbx commit 20188a097a1a7a16
    20188a097a
    https://github.com/containers/toolbox/pull/1384

[3] https://src.fedoraproject.org/rpms/xz/pull-request/10

https://github.com/containers/toolbox/pull/1390
2023-10-20 13:48:07 +02:00
12fb914786 Ensure that the manuals from extra-packages are available
Until now, only the packages that are present in the fedora base image,
and had their documentation stripped out, were being tested for the
availability of documentation.  There were no tests for the extra
packages that get added to the base image to form the fedora-toolbox
image.

The util-linux and xz packages were picked as examples for these new
tests.  The xz package is a particularly good example because it has
translations for its manuals.  It can help test that the fedora-toolbox
image is localized just like Fedora Silverblue and Workstation.

https://github.com/containers/toolbox/pull/1384
2023-10-09 15:34:20 +02:00
583f94d9ce Reorder alphabetically
Fallout from a6eb542608

https://github.com/containers/toolbox/pull/1384
2023-10-09 15:32:59 +02:00
97dbcea491 Attempt to fix the use of ARG
... because the image failed to build with:
  Error in plugin orchestrate_build:
    {"x86_64": {"docker_api": "ARG requires exactly one argument"},
     "aarch64": {"docker_api": "Dockerfile parse error line 4: ARG
                  requires exactly one argument"}}.

Fallout from 4245e2cfc7
2023-03-01 13:10:02 +01:00
Timothée Ravier
4245e2cfc7 Use ARG instead of ENV to avoid leaking variables
We only need those temporary variables for the container build and for
the LABELS. We do not want to set those specific environment variables
for the container environment itself.

Using ARG instead of ENV lets us do that.

See: https://github.com/containers/toolbox/issues/188
See: https://github.com/containers/docs/pull/15
2023-03-01 13:06:17 +01:00
5 changed files with 134 additions and 12 deletions

View file

@ -1,12 +1,13 @@
FROM registry.fedoraproject.org/fedora:38
ENV NAME=fedora-toolbox VERSION=38
ARG NAME=fedora-toolbox
ARG VERSION=38
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" \
usage="This image is meant to be used with the toolbox(1) command" \
summary="Image for creating Fedora Toolbx containers" \
maintainer="Debarshi Ray <rishi@fedoraproject.org>"
COPY README.md /
@ -40,4 +41,14 @@ RUN ret_val=0; \
fi
RUN rm /ensure-files
RUN broken_packages="$(rpm --all --query --state --queryformat "PACKAGE: %{NAME}\n" \
| sed --quiet --regexp-extended '/PACKAGE: /{s/PACKAGE: // ; h ; b }; /^not installed/ { g; p }' \
| uniq \
| sort)"; \
if [ "$broken_packages" != "" ]; then \
echo "Packages with missing files:" >&2; \
echo "$broken_packages" >&2; \
false; \
fi
RUN dnf clean all

View file

@ -1,16 +1,16 @@
[Toolbox](https://containertoolbx.org/) is a tool for Linux, which allows the
[Toolbx](https://containertoolbx.org/) 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](https://podman.io/) and other
standard container technologies from [OCI](https://opencontainers.org/).
Toolbox environments have seamless access to the user's home directory,
Toolbx environments have seamless access to the user's home directory,
the Wayland and X11 sockets, networking (including Avahi), removable devices
(like USB sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the
udev database, etc..
This is particularly useful on
[OSTree](https://ostree.readthedocs.io/en/latest/) based operating systems like
[OSTree](https://ostreedev.github.io/ostree/) 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
@ -18,7 +18,7 @@ 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 troubleshoot the operating system in the usual way.
Toolbox solves this problem by providing a fully mutable container within
Toolbx solves this problem by providing a fully mutable container within
which one can install their favourite development and troubleshooting tools,
editors and SDKs. For example, it's possible to do `yum install ansible`
without affecting the base operating system.
@ -27,12 +27,12 @@ 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/)
The Toolbx 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 offers the interactive command line
create a Toolbx container that offers the interactive command line
environment.
Note that Toolbox makes no promise about security beyond what's already
Note that Toolbx makes no promise about security beyond what's already
available in the usual command line environment on the host that everybody is
familiar with.
@ -41,4 +41,4 @@ familiar with.
See our guides on
[installing & getting started](https://containertoolbx.org/install/) with
Toolbox and [Linux distro support](https://containertoolbx.org/distros/).
Toolbx and [Linux distro support](https://containertoolbx.org/distros/).

View file

@ -6,12 +6,47 @@
/usr/share/man/man1/cp.1*
/usr/share/man/man1/ls.1*
/usr/share/cracklib/cracklib-small.pwd*
/usr/share/cracklib/pw_dict.pwd*
/usr/share/man/man8/dnf.8*
/usr/share/man/man5/dnf.conf.5*
/usr/share/locale/de/LC_MESSAGES/elfutils.mo
/usr/share/locale/ja/LC_MESSAGES/elfutils.mo
/usr/share/locale/fr/LC_MESSAGES/gawk.mo
/usr/share/locale/ko/LC_MESSAGES/gawk.mo
/usr/share/man/man1/gpg2.1*
/usr/share/man/man7/gnupg2.7*
/usr/share/info/nettle.info*
/usr/share/locale/fr/LC_MESSAGES/popt.mo
/usr/share/locale/ja/LC_MESSAGES/popt.mo
/usr/share/man/fr/man1/pstree.1*
/usr/share/man/ko/man1/pstree.1*
/usr/share/man/man1/pstree.1*
/usr/share/info/history.info*
/usr/share/man/fr/man8/rpm.8*
/usr/share/man/ja/man8/rpm.8*
/usr/share/man/man8/rpm.8*
/usr/share/man/fr/man8/useradd.8*
/usr/share/man/ja/man8/useradd.8*
/usr/share/man/man8/useradd.8*
/usr/share/man/man1/cal.1.*
/usr/share/man/man1/getopt.1*
/usr/share/man/man1/hexdump.1*
/usr/share/man/man1/kill.1*
/usr/share/man/man8/mount.8*
/usr/share/man/fr/man1/xz.1*
/usr/share/man/ko/man1/xz.1*
/usr/share/man/man1/xz.1*

View file

@ -1,19 +1,21 @@
bash-completion
bc
bzip2
cracklib-dicts
diffutils
dnf-plugins-core
findutils
flatpak-spawn
fpaste
gawk-all-langpacks
git
glibc-gconv-extra
gnupg2
gnupg2-smime
gvfs-client
hostname
iproute
iputils
whois
keyutils
krb5-libs
less
@ -29,6 +31,7 @@ openssh-clients
passwd
pigz
procps-ng
psmisc
rsync
shadow-utils
sudo
@ -42,6 +45,7 @@ vte-profile
vulkan-loader
wget
which
whois
words
xorg-x11-xauth
xz

View file

@ -1,20 +1,92 @@
acl
alternatives
audit-libs
authselect
authselect-libs
bash
ca-certificates
coreutils-common
cracklib
crypto-policies
curl
cyrus-sasl-lib
dnf
dnf-data
elfutils-libelf
expat
file-libs
filesystem
findutils
gawk
glib2
gmp
gnupg2
gnutls
gpgme
grep
gzip
ima-evm-utils
keyutils-libs
krb5-libs
libarchive
libassuan
libblkid
libcap
libcap-ng
libcomps
libdb
libdnf
libeconf
libevent
libffi
libgcrypt
libgomp
libgpg-error
libidn2
libksba
libmodulemd
libpwquality
librepo
libsemanage
libsigsegv
libsolv
libssh
libtasn1
libtirpc
libunistring
libunistring1.0
libverto
libxcrypt
libxml2
libyaml
lz4-libs
mpfr
ncurses-base
nettle
openldap
openssl
p11-kit
pam
pcre2-syntax
popt
python3
python3-libs
python3-rpm
readline
rpm
rpm-sequoia
sed
setup
shadow-utils
sqlite-libs
sudo
systemd
systemd-libs
tar
tpm2-tss
tzdata
util-linux-core
vim-minimal
yum
zchunk-libs
zlib