aboutsummaryrefslogtreecommitdiff
diff options
from:
to:
context:
space:
mode:
authorGravatar Davide Cavalca <dcavalca@fedoraproject.org> 2024-08-30 11:30:26 -0700
committerGravatar Davide Cavalca <dcavalca@fedoraproject.org> 2024-09-28 15:10:02 -0700
commit03aacd1818f24ff945f206ac580699b6b23cef11 (patch)
treeab592b4bf8af72050efa511af6d2c7dfd5ecf65f
parent5fe8b10e986e41eec9cde4e0004c8ac28dc4b76c (diff)
downloadkiwi-descriptions-03aacd1818f24ff945f206ac580699b6b23cef11.tar.gz
kiwi-descriptions-03aacd1818f24ff945f206ac580699b6b23cef11.zip
Add FEX-RootFS definition
Add a new definition for a RootFS to be used by FEX (https://src.fedoraproject.org/rpms/fex-emu). This is based on the upstream manifest (https://github.com/FEX-Emu/RootFS/blob/main/Configs/Fedora_40.json). Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
-rw-r--r--Fedora.kiwi1
-rw-r--r--VARIANTS.md1
-rwxr-xr-xconfig.sh8
-rw-r--r--fex-excludes.yaml34
-rw-r--r--teams/asahi.xml162
-rw-r--r--tmt/plans/asahi/build-fex-rootfs.fmf12
6 files changed, 214 insertions, 4 deletions
diff --git a/Fedora.kiwi b/Fedora.kiwi
index d19c4a9..b19d43f 100644
--- a/Fedora.kiwi
+++ b/Fedora.kiwi
@@ -47,6 +47,7 @@
<include from="this://./teams/sway.xml"/>
<include from="this://./teams/budgie.xml"/>
<include from="this://./teams/miraclewm.xml"/>
+ <include from="this://./teams/asahi.xml"/>
<packages type="bootstrap">
<package name="basesystem"/>
<package name="filesystem"/>
diff --git a/VARIANTS.md b/VARIANTS.md
index fb67c7b..4b8bf3a 100644
--- a/VARIANTS.md
+++ b/VARIANTS.md
@@ -14,6 +14,7 @@
| | | `Container-Base-Generic-Minimal` |
| | | `Container-Base-Generic` |
| Toolbox Container | `oci` | `Container-Toolbox` |
+| RootFS for FEX | `erofs` | `FEX-RootFS` |
| KDE Spin | `iso` | `KDE-Desktop-Live` |
| | `oem` | `KDE-Desktop-Disk` |
| KDE Mobile Spin | `iso` | `KDE-Mobile-Live` |
diff --git a/config.sh b/config.sh
index 0f090d5..800247b 100755
--- a/config.sh
+++ b/config.sh
@@ -16,7 +16,7 @@ echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..."
#======================================
# Set SELinux booleans
#--------------------------------------
-if [[ "$kiwi_profiles" != *"Container"* ]]; then
+if [[ "$kiwi_profiles" != *"Container"* ]] && [[ "$kiwi_profiles" != *"FEX"* ]]; then
## Fixes KDE Plasma, see rhbz#2058657
setsebool -P selinuxuser_execmod 1
fi
@@ -33,7 +33,7 @@ rm -f /var/lib/systemd/random-seed
#======================================
# Configure grub correctly
#--------------------------------------
-if [[ "$kiwi_profiles" != *"Container"* ]]; then
+if [[ "$kiwi_profiles" != *"Container"* ]] && [[ "$kiwi_profiles" != *"FEX"* ]]; then
## Works around issues with grub-bls
## See: https://github.com/OSInside/kiwi/issues/2198
echo "GRUB_DEFAULT=saved" >> /etc/default/grub
@@ -111,7 +111,7 @@ fi
#======================================
# Setup default target
#--------------------------------------
-if [[ "$kiwi_profiles" != *"Container"* ]]; then
+if [[ "$kiwi_profiles" != *"Container"* ]] && [[ "$kiwi_profiles" != *"FEX"* ]]; then
if [[ "$kiwi_profiles" == *"Desktop"* ]]; then
systemctl set-default graphical.target
else
@@ -192,7 +192,7 @@ chmod 600 /root/.ssh/authorized_keys
chown -R root:root /root/.ssh
fi
-if [[ "$kiwi_profiles" == *"Container"* ]]; then
+if [[ "$kiwi_profiles" == *"Container"* ]] || [[ "$kiwi_profiles" == *"FEX"* ]]; then
# Set install langs macro so that new rpms that get installed will
# only install langs that we limit it to.
LANG="en_US"
diff --git a/fex-excludes.yaml b/fex-excludes.yaml
new file mode 100644
index 0000000..2619ae6
--- /dev/null
+++ b/fex-excludes.yaml
@@ -0,0 +1,34 @@
+exclude:
+- /dev
+- /sys
+- /proc
+- /etc/hosts
+- /etc/resolv.conf
+- /etc/timezone
+- /etc/localtime
+- /etc/passwd
+- /etc/passwd-
+- /etc/group
+- /etc/group-
+- /etc/shadow
+- /etc/shadow-
+- /etc/gshadow
+- /etc/gshadow-
+- /etc/fstab
+- /etc/mtab
+- /etc/subuid
+- /etc/subgid
+- /etc/machine-id
+- /boot
+- /home
+- /media
+- /mnt
+- /root
+- /srv
+- /tmp
+- /run
+- /opt
+- /var/tmp
+- /var/run
+- /var/lock
+- /var/lib/dbus/machine-id
diff --git a/teams/asahi.xml b/teams/asahi.xml
new file mode 100644
index 0000000..d5766ab
--- /dev/null
+++ b/teams/asahi.xml
@@ -0,0 +1,162 @@
+<image>
+ <profiles>
+ <profile name="FEX-RootFS" description="FEX RootFS packages"/>
+ </profiles>
+ <preferences profiles="FEX-RootFS" arch="x86_64">
+ <type image="erofs" erofscompression="lz4"/>
+ <timezone>Etc/UTC</timezone>
+ <locale>en_US</locale>
+ <rpm-locale-filtering>true</rpm-locale-filtering>
+ <rpm-excludedocs>true</rpm-excludedocs>
+ </preferences>
+ <packages type="image" profiles="FEX-RootFS">
+ <file name="fex-excludes.yaml" target="image/exclude_files.yaml"/>
+ </packages>
+ <packages type="bootstrap" profiles="FEX-RootFS">
+ <package name="dnf5-plugins"/>
+ <package name="util-linux-core"/>
+ <package name="sudo"/>
+ <package name="rsync"/>
+ <package name="glibc.x86_64"/>
+ <package name="glibc.i686"/>
+ <package name="dbus"/>
+ <package name="systemd.x86_64"/>
+ <package name="systemd.i686"/>
+ <package name="systemd-libs.x86_64"/>
+ <package name="systemd-libs.i686"/>
+ <package name="pulseaudio.x86_64"/>
+ <package name="mesa-libGL.x86_64"/>
+ <package name="mesa-libGL.i686"/>
+ <package name="mesa-libEGL.x86_64"/>
+ <package name="mesa-libEGL.i686"/>
+ <package name="mesa-libGLU.x86_64"/>
+ <package name="mesa-libGLU.i686"/>
+ <package name="mesa-dri-drivers.x86_64"/>
+ <package name="mesa-dri-drivers.i686"/>
+ <package name="mesa-vulkan-drivers.x86_64"/>
+ <package name="mesa-vulkan-drivers.i686"/>
+ <package name="mesa-va-drivers.x86_64"/>
+ <package name="mesa-va-drivers.i686"/>
+ <package name="mesa-demos.x86_64"/>
+ <package name="libglvnd-opengl.x86_64"/>
+ <package name="libglvnd-opengl.i686"/>
+ <package name="libglvnd-egl.x86_64"/>
+ <package name="libglvnd-egl.i686"/>
+ <package name="libglvnd-gles.x86_64"/>
+ <package name="libglvnd-gles.i686"/>
+ <package name="libatomic.x86_64"/>
+ <package name="libatomic.i686"/>
+ <package name="libatomic_ops.x86_64"/>
+ <package name="libatomic_ops.i686"/>
+ <package name="libunwind.x86_64"/>
+ <package name="libunwind.i686"/>
+ <package name="libnsl.x86_64"/>
+ <package name="libnsl.i686"/>
+ <package name="flac-libs.x86_64"/>
+ <package name="flac-libs.i686"/>
+ <package name="SDL2.x86_64"/>
+ <package name="SDL2.i686"/>
+ <package name="sdl12-compat.x86_64"/>
+ <package name="sdl12-compat.i686"/>
+ <package name="protobuf-compiler.x86_64"/>
+ <package name="protobuf-compiler.i686"/>
+ <package name="protobuf-c.x86_64"/>
+ <package name="protobuf-c.i686"/>
+ <package name="openal-soft.x86_64"/>
+ <package name="openal-soft.i686"/>
+ <package name="speex.x86_64"/>
+ <package name="speex.i686"/>
+ <package name="libvorbis.x86_64"/>
+ <package name="libvorbis.i686"/>
+ <package name="usbutils"/>
+ <package name="pciutils"/>
+ <package name="libpciaccess.x86_64"/>
+ <package name="libpciaccess.x86_64"/>
+ <package name="glew-devel.x86_64"/>
+ <package name="glew-devel.i686"/>
+ <package name="libX11-xcb.x86_64"/>
+ <package name="libX11-xcb.i686"/>
+ <package name="xcb-util.x86_64"/>
+ <package name="xcb-util.i686"/>
+ <package name="xcb-util-cursor.x86_64"/>
+ <package name="xcb-util-cursor.i686"/>
+ <package name="xcb-util-image.x86_64"/>
+ <package name="xcb-util-image.i686"/>
+ <package name="xcb-util-keysyms.x86_64"/>
+ <package name="xcb-util-keysyms.i686"/>
+ <package name="xcb-util-xrm.x86_64"/>
+ <package name="xcb-util-xrm.i686"/>
+ <package name="libxkbcommon.x86_64"/>
+ <package name="libxkbcommon.i686"/>
+ <package name="libwayland-client.x86_64"/>
+ <package name="libwayland-client.i686"/>
+ <package name="libwayland-egl.x86_64"/>
+ <package name="libwayland-egl.i686"/>
+ <package name="libXext.x86_64"/>
+ <package name="libXext.i686"/>
+ <package name="libXdamage.x86_64"/>
+ <package name="libXdamage.i686"/>
+ <package name="libxcb.x86_64"/>
+ <package name="libxcb.i686"/>
+ <package name="libxshmfence.x86_64"/>
+ <package name="libxshmfence.i686"/>
+ <package name="libXxf86vm.x86_64"/>
+ <package name="libXxf86vm.i686"/>
+ <package name="libXrandr.x86_64"/>
+ <package name="libXrandr.i686"/>
+ <package name="llvm-libs.x86_64"/>
+ <package name="llvm-libs.i686"/>
+ <package name="llvm14-libs.x86_64"/>
+ <package name="llvm14-libs.i686"/>
+ <package name="llvm15-libs.x86_64"/>
+ <package name="llvm15-libs.i686"/>
+ <package name="libclc.x86_64"/>
+ <package name="libclc.i686"/>
+ <package name="spirv-tools-devel.x86_64"/>
+ <package name="spirv-tools-devel.i686"/>
+ <package name="spirv-llvm-translator.x86_64"/>
+ <package name="spirv-llvm-translator.i686"/>
+ <package name="harfbuzz.x86_64"/>
+ <package name="harfbuzz.i686"/>
+ <package name="libva.x86_64"/>
+ <package name="libva.i686"/>
+ <package name="libvdpau.x86_64"/>
+ <package name="libvdpau.i686"/>
+ <package name="fuse-libs.x86_64"/>
+ <package name="fuse-libs.i686"/>
+ <package name="fuse3-libs.x86_64"/>
+ <package name="fuse3-libs.i686"/>
+ <package name="ibus-libs.x86_64"/>
+ <package name="ibus-libs.i686"/>
+ <package name="mangohud.x86_64"/>
+ <package name="mangohud.i686"/>
+ <package name="nss.x86_64"/>
+ <package name="nss.i686"/>
+ <package name="nspr.x86_64"/>
+ <package name="nspr.i686"/>
+ <package name="python3.x86_64"/>
+ <package name="python3.i686"/>
+ <package name="openssl-libs.x86_64"/>
+ <package name="openssl-libs.i686"/>
+ <package name="curl"/>
+ <package name="xterm"/>
+ <package name="zenity"/>
+ <package name="xz"/>
+ <package name="xdg-desktop-portal.x86_64"/>
+ <package name="xdg-desktop-portal.i686"/>
+ <package name="xdg-desktop-portal-gtk"/>
+ <package name="wine.x86_64"/>
+ <package name="wine.i686"/>
+ <package name="vulkan-tools"/>
+ <package name="vulkan-loader.i686"/>
+ <package name="vulkan-loader.x86_64"/>
+ <package name="pkgconf.x86_64"/>
+ <package name="pkgconf.i686"/>
+ <package name="clinfo"/>
+ <package name="gobject-introspection"/>
+ <package name="kbd-misc"/>
+ <package name="glibc-langpack-en"/>
+ <package name="zlib-ng.x86_64"/>
+ <package name="zlib-ng.i686"/>
+ </packages>
+</image>
diff --git a/tmt/plans/asahi/build-fex-rootfs.fmf b/tmt/plans/asahi/build-fex-rootfs.fmf
new file mode 100644
index 0000000..30313f9
--- /dev/null
+++ b/tmt/plans/asahi/build-fex-rootfs.fmf
@@ -0,0 +1,12 @@
+summary: Build FEX RootFS
+discover:
+ how: fmf
+adjust:
+ enabled: false
+ when: arch != x86_64
+environment:
+ image_type: erofs
+ image_profile: FEX-RootFS
+ kiwi_file: Fedora.kiwi
+execute:
+ how: tmt