From 48e2c3b5598de32f6dabfb5d1985d17aeab97d58 Mon Sep 17 00:00:00 2001 From: Samyak Jain Date: Thu, 8 Jun 2023 11:36:08 +0530 Subject: [PATCH] init: kickstart for fedora-container-toolbox Signed-off-by: Samyak Jain --- fedora-container-toolbox.ks | 160 ++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 fedora-container-toolbox.ks diff --git a/fedora-container-toolbox.ks b/fedora-container-toolbox.ks new file mode 100644 index 0000000..97c0c48 --- /dev/null +++ b/fedora-container-toolbox.ks @@ -0,0 +1,160 @@ +# Kickstart file for Fedora Toolbox + +# See fedora-container-common.ks for details on how to hack on container image kickstarts +# This base is a standard Fedora image with python3 and dnf + +%include fedora-container-common.ks + +# Install packages +%packages --excludedocs --inst-langs=en --nocore --exclude-weakdeps +@standard +@core +rootfiles +tar # https://bugzilla.redhat.com/show_bug.cgi?id=1409920 +vim-enhanced +dnf +dnf-yum # https://fedorahosted.org/fesco/ticket/1312#comment:29 +sudo +-glibc-minimal-langpack +-glibc-all-langpacks +acl +bash +coreutils-common +curl +findutils +gawk +gnupg2 +grep +gzip +libcap +openssl +p11-kit +pam +python3 +rpm +sed +systemd +util-linux-core +bash-completion +bc +bzip2 +diffutils +dnf-plugins-core +flatpak-spawn +fpaste +git +gnupg2-smime +gvfs-client +hostname +iproute +iputils +whois +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 +tcpdump +time +traceroute +tree +unzip +util-linux +vte-profile +vulkan-loader +wget +which +words +xorg-x11-xauth +xz +zip +%end + +# Pre-installation commands +%pre +# Copy README.md +cp /README.md /mnt/sysimage/README.md + +# Remove macros.image-language-conf file +rm -f /mnt/sysimage/etc/rpm/macros.image-language-conf + +# Remove 'tsflags=nodocs' line from dnf.conf +sed -i '/tsflags=nodocs/d' /mnt/sysimage/etc/dnf/dnf.conf + +# https://bugzilla.redhat.com/show_bug.cgi?id=1343138 +# Fix /run/lock breakage since it's not tmpfs in docker +# This unmounts /run (tmpfs) and then recreates the files +# in the /run directory on the root filesystem of the container +# +# We ignore the return code of the systemd-tmpfiles command because +# at this point we have already removed the /etc/machine-id and all +# tmpfiles lines with %m in them will fail and cause a bad return +# code. Example failure: +# [/usr/lib/tmpfiles.d/systemd.conf:26] Failed to replace specifiers: /run/log/journal/%m +# +umount /run +rm -f /run/nologin # https://pagure.io/atomic-wg/issue/316 + +# Final pruning +rm -rfv /var/cache/* /var/log/* /tmp/* + +%end + +# Perform any necessary post-installation configurations specific to Fedora Toolbox (nochroot environment) +# Post-installation commands + +%post --nochroot --erroronfail --log=/mnt/sysimage/root/anaconda-post-nochroot.log +set -eux + +# Swap coreutils-single with coreutils-full +dnf -y swap coreutils-single coreutils-full + +# Swap glibc-minimal-langpack with glibc-all-langpacks +dnf -y swap glibc-minimal-langpack glibc-all-langpacks + +# Check if specified files exist +declare -a files=( + "/usr/share/man/man1/bash.1*" + "/usr/share/man/man1/cd.1*" + "/usr/share/man/man1/export.1*" + "/usr/share/man/man1/cat.1*" + "/usr/share/man/man1/cp.1*" + "/usr/share/man/man1/ls.1*" + "/usr/share/man/man1/gpg2.1*" + "/usr/share/man/man7/gnupg2.7*" + "/usr/share/man/fr/man8/rpm.8*" + "/usr/share/man/ja/man8/rpm.8*" + "/usr/share/man/man8/rpm.8*" + "/usr/share/man/man1/kill.1*" + "/usr/share/man/man8/mount.8*" +) + +ret_val=0 +for file in "${files[@]}"; do + if ! compgen -G "$file" >/dev/null; then + echo "$file: No such file or directory" >&2 + ret_val=1 + break + fi +done + +if [ "$ret_val" -ne 0 ]; then + false +fi + +# Clean up dnf cache +dnf clean all + +%end