Commit Graph
262 Commits
Author SHA1 Message Date
Simon de Vlieger 32a5d56825 naming: rename minimal -> tiny
This renames the minimal profile to "tiny", it's useful to have a
profile that builds quickly and provides a small artifact. However, the
minimal name mirrors the Fedora Minimal spin name and might confuse
people building images about what they're actually building.

The Tiny descriptions do not replicate the Fedora Minimal spin.

Signed-off-by: Simon de Vlieger <supakeen@redhat.com>
2025-02-18 13:08:03 +00:00
Neal Gompa a442d1b21e components/desktops/kde: Add x86-emulation group for AArch64 images
Reference: https://fedoraproject.org/wiki/Changes/FEX
2025-02-17 19:30:30 -05:00
Asahi Lina 737d8274e0 teams/asahi: Add libgpg-error
This is a tiny package (250kB) that seems to be a relatively common
dependency (it just provides error codes and some common helpers, used
by stuff other than gpg itself).
2025-02-09 18:50:43 +09:00
Adam Williamson c0a77191ff Drop basesystem from bootstrap (obsoleted by filesystem)
We decided we don't need two packages like this. See
https://src.fedoraproject.org/rpms/filesystem/c/3f741bf2a89c9e1bb685943c41fd298e6683dd50?branch=rawhide

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-02-07 09:12:30 -08:00
David Abdurachmanov b5d377d912 Initial riscv64 support
Most of the changes are self-explanatory and just follow what's
already happening for existing architectures.

Two things are worth pointing out:

  * we need to use shim-unsigned instead of shim-signed because
    riscv64 is not fully integrated into Fedora yet and so we
    can't do Secure Boot signing for the time being;

  * we use ext4 as bootfilesystem since in most cases the
    underlying firmware is going to be U-Boot, which needs to be
    able to load the board's DTB from /boot and doesn't support
    XFS.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2025-02-07 15:06:22 +01:00
Jeremy Cline 4b4a83b33f Add a WSL definition and config snippets
This introduces the beginnings of an image definition for Windows
Subsystem for Linux (WSL).

The package list is based on the core and standard grouplists. Some
packages, like the kernel, dracut, and so on, are omitted as they are
unnecessary. Others, like audit, don't work in the environment. Finally,
many packages are omitted since I thought "people probably won't want
that", so the package list is completely up for debate. This is just a
reasonable starting point that works.

Build/test instructions:

To build the tarball:

  $ ./kiwi-build --image-profile=WSL-Base --image-type=tbz --output-dir=./build/

Get it to a Windows host with WSL installed. To boot it with cgroupsv2,
add the following to `.wslconfig` in the Windows host home folder:

[wsl2]
kernelCommandLine=systemd.unified_cgroup_hierarchhy=1 cgroup_no_v1=all

This assumes the latest WSL release is installed, at least version 2.4.4:

  $ wsl --install --from-file .\path\to\the\fedora.tar.xz

Alternatively, if you're using something prior to version 2.4.4:

  $ wsl --import --version=2 Fedora C:\path\to\storage\Fedora\ .\path\to\the\fedora.tar.xz

Finally, run it with:

  $ wsl -d Fedora

If you are using 2.4.4+, you will be prompted for a username and then
dropped into an interactive shell with that user and passwordless sudo
access.

If you're using an older version, you need to do:

  $ wsl -d Fedora -u root
  # /usr/libexec/wsl/oobe.sh

Signed-off-by: Jeremy Cline <jeremycline@linux.microsoft.com>
2025-01-31 10:52:54 -05:00
Neal Gompa 90f4f3a820 Add Fedora Scientific variants
This is ported over from the kickstart definitions.
2025-01-27 19:38:49 -05:00
Andrea Bolognani b81b830770 server: Set bootloader timeout to 3s and show menu
While cloud images can usually be booted without any issues and
for workstation installs we want a visually polished experience,
in the case of server installs on real hardware it is generally
expected to have convenient access to the bootloader menu for
troubleshooting purposes.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-27 14:36:05 +01:00
Andrea Bolognani d33836e560 config: Resize root partition on first boot
Disk images are usually flashed to media which is much larger
than they are, and all that additional space goes unused until
the user intervenes.

Configure things so that systemd-repart, which runs by default,
automatically takes care of resizing the root partition.
systemd-growfs, which also runs by default, will subsequently
take care of resizing the filesystem to fill the newly-enlarged
partition.

Note that we don't do this for cloud images, since in that
case cloud-init takes care of resizing the root filesystem and
the underlying partition together with all the other setup
tasks.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-24 16:23:26 +01:00
Yaakov Selkowitz 9fed79138a teams/eln/container: Install standalone sysusers for base containers
This avoids a dependency on the full systemd package for non-init
containers.
2025-01-23 18:46:23 -05:00
Neal Gompa a74ebe5098 Add Minimal disk image
This is an example that can be used for creating small disk images
to verify that the basics work.
2025-01-22 19:58:08 +00:00
Neal Gompa 1f35331b84 teams/cloud/container: Install standalone sysusers for base containers
This avoids a dependency on the full systemd package for non-init
containers.
2025-01-22 13:01:27 -05:00
Neal Gompa 01b6f436c2 Add Python Classroom Lab variant
This is a port over from the kickstart definitions.
2025-01-14 12:30:13 -05:00
Neal Gompa fe9f770c85 teams/workstation: Use web-based Anaconda UI by default for live media
Reference: https://fedoraproject.org/wiki/Changes/AnacondaWebUIforFedoraWorkstation
2025-01-13 11:47:38 -05:00
Neal Gompa 9aeb2773a9 tmt: Add build verification for Fedora Workstation 2025-01-13 13:55:28 +00:00
Neal Gompa e69c665481 teams/asahi: FEX: Switch SDL2 for sdl2-compat
Reference: https://fedoraproject.org/wiki/Changes/SDL2onSDL3
2025-01-13 08:37:54 -05:00
Neal Gompa 7f04952a02 Add COSMIC spin variants
Reference: https://fedoraproject.org/wiki/Changes/FedoraCOSMIC
2025-01-10 15:11:08 -05:00
Asahi Lina 88b268c9f1 teams/asahi: Add readlink binary
Potentially needed for path resolution to work properly in scripts.
2024-12-18 21:21:48 +09:00
Neal Gompa a10cb63d95 components/liveinstall: Use GPT for UEFI-enabled ISO images
This mimics the previous state with Lorax-based images.
2024-12-16 06:03:28 -05:00
Neal Gompa f8b3926a82 components/common: Exclude qemu-user-static
This metapackage pulls in tons of unwanted emulators which can
add up to 100MB of additional space.
2024-12-13 10:18:06 -05:00
Neal Gompa 1f496fc743 components: Introduce a BaseCommon profile
This is where the lowest level common denominator configuration
goes for most images go.
2024-12-13 10:18:06 -05:00
Asahi Lina ed9909ea20 teams/asahi: FEX: Add glxinfo/eglinfo/clinfo to bin includes 2024-12-12 00:18:35 +09:00
Asahi Lina 9f4dd7cb88 teams/asahi: FEX: Minimize rootfs by removing most data files and executables
We only really need i686/x86_64 libraries, and executables which do not exist
(or do not work equivalently) on the arm64 host system.

In particular, removing libexec avoids situations where random dbus services
are started under emulation for no reason.
2024-12-09 20:00:23 +00:00
Asahi Lina bb3a746dda teams/asahi: FEX: Add xim support for GTK2/3
We're currently shipping GTK2/3 libs in the rootfs. While we're doing
that, let's also install XIM support, which actually works through X11
passthrough with muvm. This should generally make legacy GTK x86_64
apps have input method support the old-fashioned way.

Modern apps should use the Wayland input method protocol stuff, which is
already built into GTK3/GTK4 and should not require any extra shared
libraries for FEX. For muvm, that will work once we have Wayland
passthrough.
2024-12-09 23:53:30 +09:00
Adam Williamson f4fe89ae90 Disable group and related exclusions in LXQt definition
Per #112, excluding group specs just does not work in Kiwi at
present. For LXQt this is especially a problem because it means
the image fails to compose. The exclusion of m17n* *does* work
as it's a package spec, but because the exclusion of the
input-methods group does not work, dnf wants to install
ibus-typing-booster (part of input-methods), which requires
m17n-lib, and these conflicting requirements cause it to blow up.
So at least until the problem of not being able to exclude
groups is resolved, we should drop these.

Arguably, we should permanently stop excluding input-methods, at
least. Space constraints aren't as huge of a deal these days as
they used to be, on the whole; lots of folks have decent bandwidth,
lots of disk space, and large USB sticks. Input methods are
critical for CJK users; leaving them off the image makes it more or
less useless for them, which is a significant impairment. (Unless,
that is, input methods don't work properly in LXQt even if included
- I haven't tested this).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-11-27 16:37:13 -08:00
Neal Gompa 649ac3e121 teams/server: Split out ServerDisk aarch64 profile to force MBR
Many of the older supported AArch64 systems (particularly single
board computers) require a legacy MBR (Master Boot Record) type
partitioning to successfully boot.
2024-11-26 06:40:06 -05:00
Neal Gompa e81733710d components/boot: Split out BootDiskCore aarch64 profile to force MBR
Many of the older supported AArch64 systems (particularly single
board computers) require a legacy MBR (Master Boot Record) type
partitioning to successfully boot.
2024-11-26 06:39:45 -05:00
Adam Williamson 4943dc58a8 Fix a line ordering error in lxde.xml
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-11-23 15:02:47 -08:00
Neal Gompa 21a2d09ca2 scripts/fedora-live-iso-label-generator: Add Workstation->WS mapping
This ensures that live media produced for Workstation Edition has a
valid volume ID.
2024-11-23 17:06:55 -05:00
Neal Gompa b1359b9f68 scripts/fedora-live-iso-label-generator: Account for unknown profiles
This way it does not fail and produces something that makes sense.
2024-11-23 17:04:40 -05:00
Neal Gompa 6816c7d501 teams: Add install disk profiles for all desktop teams
KDE and MiracleWM teams already have it, so this just fills it in
for the rest of them.
2024-11-23 16:41:30 -05:00
Neal Gompa c5971107d5 tmt: Purge work area contents to free up space on archiving
We only need to preserve the log file anyway.
2024-11-23 15:43:20 -05:00
Neal Gompa 58210badb5 components/desktops/common: Ensure Fedora Media Writer is installed
We want this on all deliverables.
2024-11-23 12:50:14 -05:00
Neal Gompa 93220f3c23 components/liveinstall: Exclude uncommon and unneeded storage tools
This saves some space and brings us closer to the old Lorax-based
live media.
2024-11-23 12:50:14 -05:00
Neal Gompa cc9d69ca35 components/desktops/kde: Refactor and flesh out package exclusions
Group exclusions do not seem to work anymore with DNF5, so explicitly
filter out unwanted packages. Additionally, add missing unwanted
packages from the kickstarts and refactor it to apply to both
KDE Desktop and KDE Mobile profiles.
2024-11-23 10:17:50 -05:00
Neal Gompa d469b72759 components/desktops/kde: Install KDE PIM
This was always supposed to be present, but was somehow missed.
2024-11-23 10:00:59 -05:00
Neal Gompa 5486849837 components/liveinstall: Use plain squashfs instead of ext4-in-squashfs
It results in higher compression ratios.
2024-11-23 07:54:54 -05:00
Neal Gompa 244874c5e3 Revert "components/liveinstall: Switch to EROFS for live media"
As it currently stands, this doubles the size of the live ISOs,
which is completely unacceptable.

We will need to make the switch eventually, but we need to figure
out how to compress better first.

This reverts commit 1457e97008.
2024-11-22 18:11:22 -05:00
Neal Gompa a634dbdc80 scripts/fedora-kiwi-bundle-format-generator: Fix program description
This script was cloned from the iso label generator, but the
program description in the argument parser was not changed.
2024-11-17 17:23:54 -05:00
Neal Gompa 1457e97008 components/liveinstall: Switch to EROFS for live media
EROFS is newer, more performant filesystem that emphasizes speed
and integrity over SquashFS. It is also much better maintained and
friendlier for flash-based storage that live media is typically
run from these days.
2024-11-17 12:32:31 -05:00
Asahi Lina 2efe56a38f teams/asahi: FEX: Clean up some redundant FEX packages
ibus: This is an input method, which is a user choice. It doesn't make
sense to ship some input method libs and not others. These libs
typically communicate with the main IM daemon over UNIX sockets, so this
won't work anyway without additional work. (This might cause some
spurious errors as the guest tries to load the nonexistent IM, but we
can ignore them since it wouldn't work anyway).

xdg-desktop-portal: This is just data and executables, no libraries, so
it makes no sense for FEX.

glibc-langpack-en, kbd-misc: Only needed for kiwi, add a comment

zenity: Used by Steam but it's just a binary, so this should be an
aarch64 dependency, not run emulated.

llvm 14 & 15: I don't think there's a good reason to ship these? Any
reasonable binary-packaged app shouldn't be depending on specific LLVM
versions like this. Let's keep llvm18 & 19 since 18 is used by our Mesa
builds.

sudo & rsync: Binaries only (and sudo doesn't even work, neither under
emulation nor plain in muvm).

dbus: What we really need is the libs, so replace with that. dbus
probably won't do what we want inside the container, but for many use
cases dbus is not critical so it's okay for things to fail as long as
the libs are there.

spirv-tools-devel: Replace with spirv-tools-libs (dep)
glew-devel: Replace with libGLEW (dep)
2024-11-17 17:14:46 +00:00
Neal Gompa 2c5cf67014 kiwi-build: Update to mimic production builds more closely
Production builds in Fedora have a couple extra features:

* ISOs have custom overrides to set the correct volume/app IDs
* Image filenames are structured to follow roughly NVRA format

Now we support these features with extra helper scripts. If a
"image release" value is passed in, then we fully mimic the
production image build process.

This will be particularly useful for making respins of Fedora images
with updates applied.
2024-11-16 20:18:31 -05:00
Neal Gompa 400c842f0a Add Fedora Server generic guest and host image descriptions
This is loosely based on the Server kickstart and ELN descriptions.
This covers both the disk image for running on ARM hardware as well
as the VM image for running on various hypervisor platforms.
2024-11-13 18:30:06 +00:00
Stephen Gallagher c50ee8707d ELN: switch to metalink repo URLs
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2024-11-01 14:41:01 -04:00
Asahi Lina b5ce3af2e2 Add missing SDL2 libs to rootfs
Besides the base lib, apps sometimes need the add-on ones.
2024-10-30 19:12:09 +09:00
Janne Grunau e5064bf42a FEX: exclude /usr/share/fonts to avoid shadowing the host fonts 2024-10-11 13:39:41 +00:00
Timothée Ravier 6f48f41e96 components/desktops/kde: Ignore mariadb-server-utils
This package depends on Perl and is not needed for desktop use cases.

See: https://pagure.io/fedora-kde/SIG/issue/566
See: https://pagure.io/fedora-kickstarts/pull-request/1066
2024-10-11 15:25:35 +02:00
Davide Cavalca 003ec5a583 Add some more missing libs to FEX rootfs 2024-10-06 08:32:44 -07:00
Asahi Lina 304fb73f74 Add missing libs to FEX rootfs
These are used by random i686/x86_64 software, particularly things
built with Qt (which usually ship Qt itself but not these).
2024-10-02 12:36:44 +02:00
Davide Cavalca 03aacd1818 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>
2024-09-28 15:10:02 -07:00