Skip to content

Commit 465bf8c

Browse files
author
alexdesiqueira
committed
Add recipe for Fedora 40
Signed-off-by: alexdesiqueira <[email protected]>
1 parent ed14cd4 commit 465bf8c

File tree

5 files changed

+291
-0
lines changed

5 files changed

+291
-0
lines changed

images/fedora/f40/Containerfile

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
FROM registry.fedoraproject.org/fedora:40
2+
3+
ARG NAME=fedora-toolbox
4+
ARG VERSION=40
5+
LABEL com.github.containers.toolbox="true" \
6+
com.redhat.component="$NAME" \
7+
name="$NAME" \
8+
version="$VERSION" \
9+
usage="This image is meant to be used with the toolbox(1) command" \
10+
summary="Image for creating Fedora Toolbx containers" \
11+
maintainer="Debarshi Ray <[email protected]>"
12+
13+
COPY README.md /
14+
15+
RUN rm /etc/rpm/macros.image-language-conf
16+
RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf
17+
18+
RUN dnf -y upgrade
19+
RUN dnf -y swap coreutils-single coreutils-full
20+
RUN dnf -y swap glibc-minimal-langpack glibc-all-langpacks
21+
22+
COPY missing-docs /
23+
RUN dnf -y reinstall $(<missing-docs)
24+
RUN rm /missing-docs
25+
26+
COPY extra-packages /
27+
RUN dnf -y install $(<extra-packages)
28+
RUN rm /extra-packages
29+
30+
COPY ensure-files /
31+
RUN ret_val=0; \
32+
while read file; do \
33+
if ! compgen -G "$file" >/dev/null; then \
34+
echo "$file: No such file or directory" >&2; \
35+
ret_val=1; \
36+
break; \
37+
fi; \
38+
done <ensure-files; \
39+
if [ "$ret_val" -ne 0 ]; then \
40+
false; \
41+
fi
42+
RUN rm /ensure-files
43+
44+
RUN broken_packages="$(rpm --all --query --state --queryformat "PACKAGE: %{NAME}\n" \
45+
| sed --quiet --regexp-extended '/PACKAGE: /{s/PACKAGE: // ; h ; b }; /^not installed/ { g; p }' \
46+
| uniq \
47+
| sort)"; \
48+
if [ "$broken_packages" != "" ]; then \
49+
echo "Packages with missing files:" >&2; \
50+
echo "$broken_packages" >&2; \
51+
false; \
52+
fi
53+
54+
RUN dnf clean all

images/fedora/f40/README.md

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
[Toolbx](https://containertoolbx.org/) is a tool for Linux, which allows the
2+
use of interactive command line environments for software development and
3+
troubleshooting the host operating system, without having to install software
4+
on the host. It is built on top of [Podman](https://podman.io/) and other
5+
standard container technologies from [OCI](https://opencontainers.org/).
6+
7+
Toolbx environments have seamless access to the user's home directory,
8+
the Wayland and X11 sockets, networking (including Avahi), removable devices
9+
(like USB sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the
10+
udev database, etc..
11+
12+
This is particularly useful on
13+
[OSTree](https://ostreedev.github.io/ostree/) based operating systems like
14+
[Fedora CoreOS](https://fedoraproject.org/coreos/) and
15+
[Silverblue](https://fedoraproject.org/silverblue/). The intention of these
16+
systems is to discourage installation of software on the host, and instead
17+
install software as (or in) containers — they mostly don't even have package
18+
managers like DNF or YUM. This makes it difficult to set up a development
19+
environment or troubleshoot the operating system in the usual way.
20+
21+
Toolbx solves this problem by providing a fully mutable container within
22+
which one can install their favourite development and troubleshooting tools,
23+
editors and SDKs. For example, it's possible to do `yum install ansible`
24+
without affecting the base operating system.
25+
26+
However, this tool doesn't *require* using an OSTree based system. It works
27+
equally well on Fedora Workstation and Server, and that's a useful way to
28+
incrementally adopt containerization.
29+
30+
The Toolbx environment is based on an [OCI](https://www.opencontainers.org/)
31+
image. On Fedora this is the `fedora-toolbox` image. This image is used to
32+
create a Toolbx container that offers the interactive command line
33+
environment.
34+
35+
Note that Toolbx makes no promise about security beyond what's already
36+
available in the usual command line environment on the host that everybody is
37+
familiar with.
38+
39+
40+
## Installation & Use
41+
42+
See our guides on
43+
[installing & getting started](https://containertoolbx.org/install/) with
44+
Toolbx and [Linux distro support](https://containertoolbx.org/distros/).

images/fedora/f40/ensure-files

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/usr/share/man/man1/bash.1*
2+
/usr/share/man/man1/cd.1*
3+
/usr/share/man/man1/export.1*
4+
5+
/usr/share/man/man1/cat.1*
6+
/usr/share/man/man1/cp.1*
7+
/usr/share/man/man1/ls.1*
8+
9+
/usr/share/cracklib/cracklib-small.pwd*
10+
/usr/share/cracklib/pw_dict.pwd*
11+
12+
/usr/share/man/man8/dnf.8*
13+
/usr/share/man/man5/dnf.conf.5*
14+
15+
/usr/share/locale/de/LC_MESSAGES/elfutils.mo
16+
/usr/share/locale/ja/LC_MESSAGES/elfutils.mo
17+
18+
/usr/share/locale/fr/LC_MESSAGES/gawk.mo
19+
/usr/share/locale/ko/LC_MESSAGES/gawk.mo
20+
21+
/usr/share/man/man1/gpg2.1*
22+
/usr/share/man/man7/gnupg2.7*
23+
24+
/usr/share/info/nettle.info*
25+
26+
/usr/share/locale/fr/LC_MESSAGES/popt.mo
27+
/usr/share/locale/ja/LC_MESSAGES/popt.mo
28+
29+
/usr/share/man/fr/man1/pstree.1*
30+
/usr/share/man/ko/man1/pstree.1*
31+
/usr/share/man/man1/pstree.1*
32+
33+
/usr/share/info/history.info*
34+
35+
/usr/share/man/man8/rpm.8*
36+
/usr/share/man/man8/rpm2cpio.8*
37+
38+
/usr/share/man/fr/man8/useradd.8*
39+
/usr/share/man/ja/man8/useradd.8*
40+
/usr/share/man/man8/useradd.8*
41+
42+
/usr/share/man/man1/cal.1.*
43+
/usr/share/man/man1/getopt.1*
44+
/usr/share/man/man1/hexdump.1*
45+
46+
/usr/share/man/man1/kill.1*
47+
/usr/share/man/man8/mount.8*
48+
49+
/usr/share/man/fr/man1/xz.1*
50+
/usr/share/man/ko/man1/xz.1*
51+
/usr/share/man/man1/xz.1*

images/fedora/f40/extra-packages

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
bash-completion
2+
bc
3+
bzip2
4+
cracklib-dicts
5+
diffutils
6+
dnf-plugins-core
7+
findutils
8+
flatpak-spawn
9+
fpaste
10+
gawk-all-langpacks
11+
git
12+
glibc-gconv-extra
13+
gnupg2
14+
gnupg2-smime
15+
gvfs-client
16+
hostname
17+
iproute
18+
iputils
19+
keyutils
20+
krb5-libs
21+
less
22+
lsof
23+
man-db
24+
man-pages
25+
mesa-dri-drivers
26+
mesa-vulkan-drivers
27+
mtr
28+
nano-default-editor
29+
nss-mdns
30+
openssh-clients
31+
passwd
32+
pigz
33+
procps-ng
34+
psmisc
35+
rsync
36+
shadow-utils
37+
sudo
38+
tcpdump
39+
time
40+
traceroute
41+
tree
42+
unzip
43+
util-linux
44+
vte-profile
45+
vulkan-loader
46+
wget
47+
which
48+
whois
49+
words
50+
xorg-x11-xauth
51+
xz
52+
zip

images/fedora/f40/missing-docs

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
acl
2+
alternatives
3+
audit-libs
4+
authselect
5+
authselect-libs
6+
bash
7+
ca-certificates
8+
coreutils-common
9+
cracklib
10+
crypto-policies
11+
curl
12+
cyrus-sasl-lib
13+
dnf
14+
dnf-data
15+
elfutils-libelf
16+
expat
17+
file-libs
18+
filesystem
19+
findutils
20+
gawk
21+
glib2
22+
gmp
23+
gnupg2
24+
gnutls
25+
grep
26+
gzip
27+
ima-evm-utils
28+
keyutils-libs
29+
krb5-libs
30+
libarchive
31+
libassuan
32+
libblkid
33+
libcap
34+
libcap-ng
35+
libcomps
36+
libdb
37+
libdnf
38+
libeconf
39+
libevent
40+
libffi
41+
libgcrypt
42+
libgomp
43+
libgpg-error
44+
libidn2
45+
libksba
46+
libmodulemd
47+
libpwquality
48+
librepo
49+
libsemanage
50+
libsigsegv
51+
libsolv
52+
libssh
53+
libtasn1
54+
libtirpc
55+
libunistring
56+
libverto
57+
libxcrypt
58+
libxml2
59+
libyaml
60+
lz4-libs
61+
mpfr
62+
ncurses-base
63+
nettle
64+
openldap
65+
openssl
66+
p11-kit
67+
pam
68+
pcre2-syntax
69+
popt
70+
python3
71+
python3-libs
72+
python3-rpm
73+
readline
74+
rpm
75+
rpm-sequoia
76+
sed
77+
setup
78+
shadow-utils
79+
sqlite-libs
80+
sudo
81+
systemd
82+
systemd-libs
83+
tar
84+
tpm2-tss
85+
tzdata
86+
util-linux-core
87+
vim-minimal
88+
yum
89+
zchunk-libs
90+
zlib

0 commit comments

Comments
 (0)