diff options
| author | 2023-10-14 15:21:23 -0400 | |
|---|---|---|
| committer | 2023-10-14 15:21:23 -0400 | |
| commit | 838cd9b2eef8e210a46a51b0cd77dfee5d595635 (patch) | |
| tree | 0fabc7fe6f90aaedc77d338c62414b4005cf7f29 | |
| parent | 14e2f2a0e1b4cca43e00d4f354be04378e1e78b0 (diff) | |
| download | kiwi-descriptions-838cd9b2eef8e210a46a51b0cd77dfee5d595635.tar.gz kiwi-descriptions-838cd9b2eef8e210a46a51b0cd77dfee5d595635.zip | |
Initial import of descriptions
| l--------- | Fedora-Linux.kiwi | 1 | ||||
| -rw-r--r-- | README.md | 17 | ||||
| -rw-r--r-- | components/boot.xml | 22 | ||||
| -rw-r--r-- | components/desktop-environments.xml | 37 | ||||
| -rw-r--r-- | components/liveinstall.xml | 30 | ||||
| -rw-r--r-- | components/users.xml | 6 | ||||
| -rwxr-xr-x | config.sh | 121 | ||||
| -rw-r--r-- | config.xml | 29 | ||||
| -rw-r--r-- | grub.cfg.iso-template | 44 | ||||
| -rwxr-xr-x | kiwi-build | 64 | ||||
| -rw-r--r-- | platforms/cloud.xml | 101 | ||||
| -rw-r--r-- | platforms/vagrant.xml | 34 | ||||
| -rw-r--r-- | platforms/workstation.xml | 12 | ||||
| -rw-r--r-- | repositories/core-nonrawhide.xml | 12 | ||||
| -rw-r--r-- | repositories/core-rawhide.xml | 7 | ||||
| l--------- | repositories/core.xml | 1 | ||||
| -rwxr-xr-x | root/etc/fstab.script | 10 | ||||
| -rw-r--r-- | root/etc/sysconfig/kernel | 6 |
18 files changed, 554 insertions, 0 deletions
diff --git a/Fedora-Linux.kiwi b/Fedora-Linux.kiwi new file mode 120000 index 0000000..2288558 --- /dev/null +++ b/Fedora-Linux.kiwi @@ -0,0 +1 @@ +config.xml
\ No newline at end of file @@ -6,6 +6,23 @@ The `rawhide` branch is used for Fedora Rawhide images and each release branch i All changes should be made via the PR workflow. +## Image variants + +* Cloud Edition (image type: `oem`, image profiles: `Cloud-OpenStack`/`Cloud-AmazonEC2`/`Cloud-Azure`/`Cloud-GCE`) +* Workstation Edition (image type: `iso`, image profiles: `Workstation-Live`) +* KDE Spin (image type: `iso`, image profiles: `KDE-Live`) + +## Image build quickstart + +Set up your development environment and run the image build (substitute `<image_type>` and `<image_profile>` for the appropriate settings): + +```bash +# Install kiwi +[]$ sudo dnf --assumeyes install kiwi +# Run the image build +[]$ sudo ./kiwi-build --image-type=<image_type> --image-profile=<image_profile> --output-dir ./outdir +``` + ## Licensing This is free software: you can redistribute it and/or modify diff --git a/components/boot.xml b/components/boot.xml new file mode 100644 index 0000000..f2352a5 --- /dev/null +++ b/components/boot.xml @@ -0,0 +1,22 @@ +<image> + <profiles> + <profile name="BootCore" description="Boot core packages"/> + </profiles> + <packages type="image" patternType="plusRecommended" profiles="BootCore"> + <package name="grub2-efi-aa64" arch="aarch64"/> + <package name="grub2-efi-aa64-modules" arch="aarch64"/> + <package name="grub2-efi-x64" arch="x86_64"/> + <package name="grub2-efi-x64-modules" arch="x86_64"/> + <package name="grub2-pc" arch="x86_64"/> + <package name="grub2-pc-modules" arch="x86_64"/> + <package name="shim-signed-aa64" arch="aarch64"/> + <package name="shim-signed-x64" arch="x86_64"/> + <package name="kernel-core"/> + <package name="systemd-oomd-defaults"/> + <package name="systemd-resolved"/> + </packages> + <packages type="iso" patternType="plusRecommended" profiles="BootCore"> + <package name="grub2-efi-aa64-cdboot" arch="aarch64"/> + <package name="grub2-efi-x64-cdboot" arch="x86_64"/> + </packages> +</image> diff --git a/components/desktop-environments.xml b/components/desktop-environments.xml new file mode 100644 index 0000000..0761912 --- /dev/null +++ b/components/desktop-environments.xml @@ -0,0 +1,37 @@ +<image> + <profiles> + <profile name="DesktopCommon" description="Common desktop packages"/> + <profile name="GNOME-Desktop" description="GNOME Desktop"> + <requires profile="DesktopCommon"/> + </profile> + <profile name="KDE-Desktop" description="KDE Plasma Desktop"> + <requires profile="DesktopCommon"/> + </profile> + </profiles> + <packages type="image" patternType="plusRecommended" profiles="DesktopCommon"> + <namedCollection name="internet-browser"/> + <namedCollection name="fonts"/> + <namedCollection name="multimedia"/> + <namedCollection name="networkmanager-submodules"/> + <namedCollection name="office-suite"/> + <namedCollection name="hardware-support"/> + <namedCollection name="print-client"/> + <namedCollection name="guest-desktop-agents"/> + <namedCollection name="standard"/> + </packages> + <packages type="image" patternType="plusRecommended" profiles="GNOME-Desktop"> + <namedCollection name="workstation-product-environment"/> + <package name="fedora-release-workstation"/> + </packages> + <packages type="image" patternType="plusRecommended" profiles="KDE-Desktop"> + <namedCollection name="kde-desktop-environment"/> + <namedCollection name="kde-apps"/> + <namedCollection name="kde-media"/> + <package name="fuse"/> + <package name="fedora-release-kde"/> + <package name="kde-l10n"/> + <ignore name="@admin-tools"/> + <ignore name="gnome-disk-utility"/> + <ignore name="system-config-printer"/> + </packages> +</image> diff --git a/components/liveinstall.xml b/components/liveinstall.xml new file mode 100644 index 0000000..ca7106d --- /dev/null +++ b/components/liveinstall.xml @@ -0,0 +1,30 @@ +<image> + <profiles> + <profile name="LiveInstall" description="Live Install ISO"> + <requires profile="BootCore"/> + </profile> + </profiles> + <preferences profiles="LiveInstall"> + <type image="iso" publisher="Fedora Project" volid="Fedora_Linux" primary="true" flags="dmsquash" firmware="uefi" kernelcmdline="quiet rhgb" mediacheck="false"> + <bootloader name="grub2" grub_template="grub.cfg.iso-template" console="console" timeout="10"/> + </type> + </preferences> + <packages type="iso" patternType="plusRecommended" profiles="LiveInstall"> + <!-- The point of a live image is to install --> + <namedCollection name="anaconda-tools"/> + <package name="anaconda"/> + <package name="anaconda-install-env-deps"/> + <package name="anaconda-live"/> + <!-- Need this for SVG release note images --> + <package name="aajohan-comfortaa-fonts"/> + <package name="dracut-live"/> + <package name="glibc-all-langpacks"/> + <package name="kernel"/> + <package name="kernel-modules"/> + <package name="kernel-modules-extra"/> + <package name="livesys-scripts"/> + <package name="btrfs-progs"/> + <package name="udisks2-btrfs"/> + <ignore name="gfs2-utils"/> + </packages> +</image> diff --git a/components/users.xml b/components/users.xml new file mode 100644 index 0000000..08b91a1 --- /dev/null +++ b/components/users.xml @@ -0,0 +1,6 @@ +<image> + <users profiles="Cloud-Azure,Cloud-AmazonEC2,Cloud-GCE,Cloud-OpenStack,LiveInstall"> + <!-- The password here does not matter, it will be erased in config.sh --> + <user name="root" groups="root" password="linux" home="/root" pwdformat="plain" /> + </users> +</image> diff --git a/config.sh b/config.sh new file mode 100755 index 0000000..67c2cad --- /dev/null +++ b/config.sh @@ -0,0 +1,121 @@ +#!/bin/bash + +set -euxo pipefail + +#====================================== +# Functions... +#-------------------------------------- +test -f /.kconfig && . /.kconfig +test -f /.profile && . /.profile + +#====================================== +# Greeting... +#-------------------------------------- +echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." + +#====================================== +# Set SELinux booleans +#-------------------------------------- +## Fixes KDE Plasma, see rhbz#2058657 +setsebool -P selinuxuser_execmod 1 + +#====================================== +# Clear machine specific configuration +#-------------------------------------- +## Clear machine-id on pre generated images +rm -f /etc/machine-id +echo 'uninitialized' > /etc/machine-id +## remove random seed, the newly installed instance should make its own +rm -f /var/lib/systemd/random-seed + +#====================================== +# Configure grub correctly +#-------------------------------------- +## Works around issues with grub-bls +## See: https://github.com/OSInside/kiwi/issues/2198 +echo "GRUB_DEFAULT=saved" >> /etc/default/grub +## Disable submenus to match Fedora +echo "GRUB_DISABLE_SUBMENU=true" >> /etc/default/grub +## Disable recovery entries to match Fedora +echo "GRUB_DISABLE_RECOVERY=true" >> /etc/default/grub + +#====================================== +# Delete & lock the root user password +#-------------------------------------- +if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then + passwd -d root + passwd -l root +fi + +#====================================== +# Setup default services +#-------------------------------------- + +if [[ "$kiwi_profiles" == *"Live"* ]]; then + ## Configure livesys session + if [[ "$kiwi_profiles" == *"GNOME"* ]]; then + echo 'livesys_session="gnome"' > /etc/sysconfig/livesys + fi + if [[ "$kiwi_profiles" == *"KDE"* ]]; then + echo 'livesys_session="kde"' > /etc/sysconfig/livesys + fi +fi + +#====================================== +# Setup default target +#-------------------------------------- +if [[ "$kiwi_profiles" == *"GNOME"* ]] || [[ "$kiwi_profiles" == *"KDE"* ]]; then + systemctl set-default graphical.target +else + systemctl set-default multi-user.target +fi + +#====================================== +# Setup default customizations +#-------------------------------------- + +if [[ "$kiwi_profiles" == *"Azure"* ]]; then +cat > /etc/ssh/sshd_config.d/50-client-alive-interval.conf << EOF +ClientAliveInterval 120 +EOF + +cat >> /etc/chrony.conf << EOF +# Azure's virtual time source: +# https://docs.microsoft.com/en-us/azure/virtual-machines/linux/time-sync#check-for-ptp-clock-source +refclock PHC /dev/ptp_hyperv poll 3 dpoll -2 offset 0 +EOF +fi + +if [[ "$kiwi_profiles" == *"GCE"* ]]; then +cat <<EOF > /etc/NetworkManager/conf.d/gcp-mtu.conf +# In GCP it is recommended to use 1460 as the MTU. +# Set it to 1460 for all connections. +# https://cloud.google.com/network-connectivity/docs/vpn/concepts/mtu-considerations +[connection] +ethernet.mtu = 1460 +EOF +fi + +if [[ "$kiwi_profiles" == *"Vagrant"* ]]; then +sed -e 's/.*UseDNS.*/UseDNS no/' -i /etc/ssh/sshd_config +mkdir -m 0700 -p ~vagrant/.ssh +cat > ~vagrant/.ssh/authorized_keys << EOKEYS +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key +EOKEYS +chmod 600 ~vagrant/.ssh/authorized_keys +chown -R vagrant:vagrant ~vagrant/.ssh/ + +cat > /etc/ssh/sshd_config.d/10-vagrant-insecure-rsa-key.conf <<EOF +# For now the vagrant insecure key is an rsa key +# https://github.com/hashicorp/vagrant/issues/11783 +PubkeyAcceptedKeyTypes=+ssh-rsa +EOF + +# Further suggestion from @purpleidea (James Shubin) - extend key to root users as well +mkdir -m 0700 -p /root/.ssh +cp /home/vagrant/.ssh/authorized_keys /root/.ssh/authorized_keys +chmod 600 /root/.ssh/authorized_keys +chown -R root:root /root/.ssh +fi + +exit 0 diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..d2d6b61 --- /dev/null +++ b/config.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> + +<image schemaversion="7.4" name="Fedora-Linux"> + <description type="system"> + <author>Fedora Project Contributors</author> + <contact>devel@lists.fedoraproject.org</contact> + <specification>Fedora Linux</specification> + </description> + <preferences> + <version>0.0.0</version> + <packagemanager>dnf</packagemanager> + <locale>en_US</locale> + <keytable>us</keytable> + <timezone>UTC</timezone> + <release-version>rawhide</release-version> + </preferences> + <include from="this://./repositories/core.xml"/> + <include from="this://./components/boot.xml"/> + <include from="this://./components/desktop-environments.xml"/> + <include from="this://./components/liveinstall.xml"/> + <include from="this://./components/users.xml"/> + <include from="this://./platforms/cloud.xml"/> + <include from="this://./platforms/vagrant.xml"/> + <include from="this://./platforms/workstation.xml"/> + <packages type="bootstrap"> + <package name="basesystem"/> + <package name="filesystem"/> + </packages> +</image> diff --git a/grub.cfg.iso-template b/grub.cfg.iso-template new file mode 100644 index 0000000..b0f6aee --- /dev/null +++ b/grub.cfg.iso-template @@ -0,0 +1,44 @@ +# Inspired by the config used for lorax-built live media + +set default=${default_boot} + +if [ "$$grub_platform" == "efi" ]; then + function load_video { + insmod efi_gop + insmod efi_uga + insmod video_bochs + insmod video_cirrus + insmod all_video + } + set basicgfx="nomodeset" +else + function load_video { + insmod all_video + } + set basicgfx="nomodeset vga=791" +fi + +load_video +set gfxpayload=keep +insmod gzio +insmod part_gpt +insmod ext2 + +terminal_input console +terminal_output ${terminal_setup} + +set timeout=${boot_timeout} +set timeout_style=${boot_timeout_style} + +search ${search_params} + +menuentry "Start ${title}" --class fedora --class gnu-linux --class gnu --class os { + linux ($$root)${bootpath}/${kernel_file} ${boot_options} + initrd ($$root)${bootpath}/${initrd_file} +} +submenu "Troubleshooting -->" { + menuentry "Start ${title} in basic graphics mode" --class fedora --class gnu-linux --class gnu --class os { + linux ($$root)${bootpath}/${kernel_file} ${boot_options} $${basicgfx} + initrd ($$root)${bootpath}/${initrd_file} + } +} diff --git a/kiwi-build b/kiwi-build new file mode 100755 index 0000000..ebca496 --- /dev/null +++ b/kiwi-build @@ -0,0 +1,64 @@ +#!/bin/bash + +# Simple wrapper to call kiwi properly for image builds +# Author: Neal Gompa <ngompa@fedoraproject.org> + +set -eu -o pipefail + +kiwibuildsh="$(basename "$0")" + +usage() { + echo >&2 "usage: $kiwibuildsh --output-dir=DIR --image-type=TYPE --image-profile=PROFILE [--debug]" + echo >&2 " eg: $kiwibuildsh --output-dir=/var/tmp/work --image-type=oem --image-profile=cloud --debug" + echo >&2 " eg: $kiwibuildsh --output-dir=/var/tmp/work --image-type=oem --image-profile=cloud" + exit 255 +} + +optTemp=$(getopt --options '+o:,t:,p:,d,h' --longoptions 'output-dir:,image-type:,image-profile:,debug,help' --name "$kiwibuildsh" -- "$@") +eval set -- "$optTemp" +unset optTemp + +output_dir= +image_type= +image_profile= +debug= + +while true; do + case "$1" in + -o|--output-dir) output_dir="$2" ; shift 2 ;; + -t|--image-type) image_type="$2" ; shift 2 ;; + -p|--image-profile) image_profile="$2" ; shift 2 ;; + -d|--debug) debug="--debug" ; shift ;; + -h|--help) usage ;; + --) shift ; break ;; + esac +done + +if [ -z "$output_dir" ] || [ -z "$image_type" ] || [ -z "$image_profile" ]; then + echo "Options not set!" + usage +fi + +if [ -e "/sys/fs/selinux/enforce" ]; then + # Disable SELinux enforcement during the image build if it's enforcing + selinux_enforcing="$(cat /sys/fs/selinux/enforce)" + if [ "$selinux_enforcing" = "1" ]; then + setenforce 0 + fi +fi + +pushd kiwi-desc + set +e + kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --color-output system build --description "./" --target-dir "${output_dir}" + kiwi_status=$? + set -e +popd + +if [ -e "/sys/fs/selinux/enforce" ]; then + # Re-enable SELinux enforcement now that image build is done + if [ "$selinux_enforcing" = "1" ]; then + setenforce 1 + fi +fi + +exit $kiwi_status diff --git a/platforms/cloud.xml b/platforms/cloud.xml new file mode 100644 index 0000000..5d450d7 --- /dev/null +++ b/platforms/cloud.xml @@ -0,0 +1,101 @@ +<image> + <profiles> + <profile name="CloudCore" description="Cloud spin core packages"> + <requires profile="BootCore"/> + </profile> + <profile name="Cloud-Azure" description="Azure Guest Image"> + <requires profile="CloudCore"/> + </profile> + <profile name="Cloud-AmazonEC2" description="Amazon EC2 HVM Guest Image"> + <requires profile="CloudCore"/> + </profile> + <profile name="Cloud-GCE" description="GCE Guest Image"> + <requires profile="CloudCore"/> + </profile> + <profile name="Cloud-OpenStack" description="OpenStack Guest Image"> + <requires profile="CloudCore"/> + </profile> + </profiles> + <preferences profiles="Cloud-Azure"> + <type image="oem" filesystem="btrfs" kernelcmdline="no_timer_check net.ifnames=0 console=tty1 console=ttyS0,115200n8" devicepersistency="by-uuid" formatoptions="force_size" format="vhd-fixed" bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi" fsmountoptions="compress=zstd:1" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" rootfs_label="fedora"> + <bootloader name="grub2" console="serial" timeout="0"/> + <systemdisk> + <volume name="@root=root"/> + <volume name="home" parent="/"/> + <volume name="var" parent="/"/> + </systemdisk> + <size unit="G">5</size> + <oemconfig> + <oem-resize>false</oem-resize> + </oemconfig> + </type> + </preferences> + <preferences profiles="Cloud-AmazonEC2"> + <type image="oem" filesystem="btrfs" kernelcmdline="no_timer_check net.ifnames=0 console=tty1 console=ttyS0,115200n8" devicepersistency="by-uuid" bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi" fsmountoptions="compress=zstd:1" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" rootfs_label="fedora"> + <bootloader name="grub2" timeout="0"/> + <size unit="G">5</size> + <systemdisk> + <volume name="@root=root"/> + <volume name="home" parent="/"/> + <volume name="var" parent="/"/> + </systemdisk> + <oemconfig> + <oem-resize>false</oem-resize> + </oemconfig> + </type> + </preferences> + <preferences profiles="Cloud-GCE"> + <type image="oem" filesystem="btrfs" kernelcmdline="no_timer_check net.ifnames=0 console=ttyS0,38400n8d" devicepersistency="by-uuid" bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" format="gce" firmware="uefi" fsmountoptions="compress=zstd:1" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" rootfs_label="fedora"> + <bootloader name="grub2" timeout="0"/> + <size unit="G">5</size> + <systemdisk> + <volume name="@root=root"/> + <volume name="home" parent="/"/> + <volume name="var" parent="/"/> + </systemdisk> + <oemconfig> + <oem-resize>false</oem-resize> + </oemconfig> + </type> + </preferences> + <preferences profiles="Cloud-OpenStack"> + <type image="oem" filesystem="btrfs" kernelcmdline="no_timer_check net.ifnames=0 console=tty1 console=ttyS0,115200n8" devicepersistency="by-uuid" bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi" format="qcow2" fsmountoptions="compress=zstd:1" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" rootfs_label="fedora"> + <bootloader name="grub2" timeout="0"/> + <size unit="G">5</size> + <systemdisk> + <volume name="@root=root"/> + <volume name="home" parent="/"/> + <volume name="var" parent="/"/> + </systemdisk> + <oemconfig> + <oem-resize>false</oem-resize> + </oemconfig> + </type> + </preferences> + <packages type="image" patternType="plusRecommended" profiles="CloudCore"> + <namedCollection name="cloud-server-environment"/> + <ignore name="dracut-config-rescue"/> + <ignore name="firewalld"/> + <ignore name="kernel"/> + <ignore name="*-firmware"/> + <ignore name="geolite2-city"/> + <ignore name="geolite2-country"/> + <ignore name="plymouth"/> + <package name="python3-dnf-plugin-tracer"/> + <package name="glibc-langpack-en"/> + </packages> + <packages type="image" patternType="plusRecommended" profiles="Cloud-Azure"> + <package name="WALinuxAgent"/> + </packages> + <packages type="image" patternType="plusRecommended" profiles="Cloud-GCE"> + <package name="google-compute-engine-guest-configs"/> + <package name="google-compute-engine-oslogin"/> + <package name="google-guest-agent"/> + </packages> + <packages type="image" patternType="plusRecommended" profiles="Cloud-OpenStack"> + <package name="qemu-guest-agent"/> + </packages> + <packages type="uninstall" profiles="Cloud-GCE"> + <package name="cloud-init"/> + </packages> +</image> diff --git a/platforms/vagrant.xml b/platforms/vagrant.xml new file mode 100644 index 0000000..dbcfc12 --- /dev/null +++ b/platforms/vagrant.xml @@ -0,0 +1,34 @@ +<image> + <profiles> + <profile name="Vagrant" description="Vagrant guest image"> + <requires profile="CloudCore"/> + </profile> + </profiles> + <preferences profiles="Vagrant"> + <type image="oem" filesystem="btrfs" kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0" devicepersistency="by-uuid" bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi" format="vagrant" fsmountoptions="compress=zstd:1" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" rootfs_label="fedora"> + <bootloader name="grub2" console="serial" timeout="1"/> + <size unit="G">5</size> + <systemdisk> + <volume name="@root=root"/> + <volume name="home" parent="/"/> + <volume name="var" parent="/"/> + </systemdisk> + <oemconfig> + <oem-resize>false</oem-resize> + </oemconfig> + </type> + </preferences> + <users profiles="Vagrant"> + <!-- Standard password for the vagrant user, used by all images --> + <user name="vagrant" groups="vagrant" password="vagrant" home="/home/vagrant" pwdformat="plain" /> + <user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/> + </users> + <packages type="image" patternType="plusRecommended" profiles="Vagrant"> + <package name="dnf-yum"/> + <package name="rsync"/> + <package name="fuse-sshfs"/> + <package name="gdisk"/> + <package name="glibc-langpack-en"/> + <package name="qemu-guest-agent"/> + </packages> +</image> diff --git a/platforms/workstation.xml b/platforms/workstation.xml new file mode 100644 index 0000000..3108f76 --- /dev/null +++ b/platforms/workstation.xml @@ -0,0 +1,12 @@ +<image> + <profiles> + <profile name="Workstation-Live" description="Workstation Edition Live DVD"> + <requires profile="GNOME-Desktop"/> + <requires profile="LiveInstall"/> + </profile> + <profile name="KDE-Live" description="KDE Plasma Spin Live DVD"> + <requires profile="KDE-Desktop"/> + <requires profile="LiveInstall"/> + </profile> + </profiles> +</image> diff --git a/repositories/core-nonrawhide.xml b/repositories/core-nonrawhide.xml new file mode 100644 index 0000000..d6ed79f --- /dev/null +++ b/repositories/core-nonrawhide.xml @@ -0,0 +1,12 @@ +<image> + <repository type="rpm-md" alias="fedora" sourcetype="metalink"> + <source path="https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch"> + <signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary"/> + </source> + </repository> + <repository type="rpm-md" alias="updates" sourcetype="metalink"> + <source path="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch"> + <signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary"/> + </source> + </repository> +</image> diff --git a/repositories/core-rawhide.xml b/repositories/core-rawhide.xml new file mode 100644 index 0000000..c2ae124 --- /dev/null +++ b/repositories/core-rawhide.xml @@ -0,0 +1,7 @@ +<image> + <repository type="rpm-md" alias="rawhide" sourcetype="metalink"> + <source path="https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=$basearch"> + <signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary"/> + </source> + </repository> +</image> diff --git a/repositories/core.xml b/repositories/core.xml new file mode 120000 index 0000000..95dc008 --- /dev/null +++ b/repositories/core.xml @@ -0,0 +1 @@ +core-rawhide.xml
\ No newline at end of file diff --git a/root/etc/fstab.script b/root/etc/fstab.script new file mode 100755 index 0000000..94e99db --- /dev/null +++ b/root/etc/fstab.script @@ -0,0 +1,10 @@ +#!/bin/sh + +# Set ESP mount options to match what Fedora does +# https://github.com/OSInside/kiwi/issues/2201 +gawk -i inplace '$2 == "/boot/efi" { $4 = $4",umask=0077,shortname=winnt" } { print $0 }' /etc/fstab + +# Run selinux relabel at the right time +# https://github.com/OSInside/kiwi/issues/2192 +# https://github.com/OSInside/kiwi/pull/2282#issuecomment-1514399308 +setfiles -F -p -c /etc/selinux/targeted/policy/policy.* -e /proc -e /sys -e /dev /etc/selinux/targeted/contexts/files/file_contexts / diff --git a/root/etc/sysconfig/kernel b/root/etc/sysconfig/kernel new file mode 100644 index 0000000..8da1970 --- /dev/null +++ b/root/etc/sysconfig/kernel @@ -0,0 +1,6 @@ +# UPDATEDEFAULT specifies if kernel-install should make +# new kernels the default +UPDATEDEFAULT=yes + +# DEFAULTKERNEL specifies the default kernel package type +DEFAULTKERNEL=kernel-core |