Compare commits

...

96 Commits

Author SHA1 Message Date
660af63010
Add short commit to release and add OCI support
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2025-01-30 13:48:52 +02:00
Andrea Bolognani
8fcc007ebf hack: Introduce simple-kiwi-build script
Just a tiny wrapper that makes things more convenient by
automatically figuring out most of the options that need to be
passed to kiwi.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-29 18:21:39 +01:00
Andrea Bolognani
1b89edaa2b p550: Use countdown for grub timeout
For whatever reason, serial output is really slow on P550, to
the point where drawing the grub menu takes an annoyingly long
amount of time and really gets in the way.

To avoid that issue, use the countdown timeout instead. This
still gives users a chance to enter the full menu if they need
to while making things a lot faster for regular boots.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-29 18:21:39 +01:00
Andrea Bolognani
22cbd2d58e p550: Disable initial-setup
We keep hitting this situation on P550 where
systemd-vconsole-setup runs after initial-setup has already
been started. This causes virtual consoles to be re-initialized,
and as a consequence initial-setup stops accepting input and
becomes effectively stuck. This doesn't seem to be a problem on
other hardware, e.g. VF2.

Generally speaking having initial-setup run during the first
boot provides a good user experience and matches what other
architectures are doing, so we want to keep doing it, but the
issue mentioned above makes it a no-go for P550.

Until we've figured out how to prevent this from happening,
don't enable initial-setup and keep the default root password
around so that the machine can still be logged into.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-29 18:21:39 +01:00
Andrea Bolognani
288fbcef1e p550: Set DTB information for grub
The vendor firmware for P550 doesn't know how to pick up the
DTB automatically from /boot, and we've been having trouble
getting that combination to work correctly anyway.

While we work on a more standard solution, get things to boot
by telling grub where the DTB is so that it will automatically
add a "devicetree" command to all boot entries.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-29 18:21:39 +01:00
Andrea Bolognani
b496bca18a p550: Add kiwi file
P550 needs a custom kernel, which is only available through a
special repo. Since repos are configured very eary in the image
building process, before profiles are considered, we need a
whole separate kiwi file to make things work.

This unfortunately requires a bit of duplication, but thankfully
we can keep the P550 part quite minimal since we don't need to
worry about things like non-riscv64 variants of the various
profiles, or cloud images.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-29 18:21:37 +01:00
Andrea Bolognani
167e732f09 teams: Turn server into a directory
Same as already happens for cloud. This will allow us to add
more files.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-28 12:07:24 +01:00
Andrea Bolognani
3aa6be5399 server: Use btrfs for riscv64
The Fedora RISC-V maintainers have a strong preference for this
filesystem over the lvm+xfs combo used by other server images.

Additionally, use ext4 for the boot filesystem. This not only
matches what is done for other btrfs-using images, but is
particularly useful on riscv64 because u-boot, which is used as
the firmware on most hardware, doesn't support booting off xfs.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-28 12:07:24 +01:00
67597e25bb Initial draft for riscv64 (F41)
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2025-01-28 12:07:24 +01:00
Samyak Jain
c7024688bf Branch Fedora 41 from Rawhide
Signed-off-by: Samyak Jain <samyak.jn11@gmail.com>
(cherry picked from commit 8203a65b0c0e347efb0de9b56a1410d77f2f6486)

We want to build Fedora 41 images, so we need to change these
values back.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2025-01-28 12:07:24 +01: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 1457e97008f15064dcc30aaca9977ffa1ec66572.
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
Jeremy Cline
5fe8b10e98
Azure: include azure-vm-utils package in the image
This package is intended to be the place for Azure utilities along with
the various udev rules that currently live in the WALinuxAgent package.

At the moment it just contains the `azure-nvme-id` binary and udev rules
for providing symlinks in /dev/disk/azure/ for local, data, and
OS disks.
2024-09-25 08:52:25 -07:00
Miroslav Vadkerti
067338f7db Improve test time for kde/build-desktop-live
Larger disk means more IO performance.

Require more CPUs to aid mksquashfs performance.

Signed-off-by: Miroslav Vadkerti <mvadkert@redhat.com>
2024-09-12 18:55:53 +02:00
Neal Gompa
44a53fbca6 components/boot-eln: Add full kernel to BootDiskCore
The boot environment for non-cloud disk images was incomplete,
leading to images not bootable on real hardware. This change
adds the missing packages to fix that.
2024-09-05 09:25:36 -04:00
Neal Gompa
5994d4352b components/boot: Add full kernel and btrfs stack to BootDiskCore
The boot environment for non-cloud disk images was incomplete,
leading to images not bootable on real hardware. This change
adds the missing packages to fix that.
2024-09-04 22:53:26 -04:00
Davide Cavalca
2eeafcedb6 Add gitignore 2024-08-30 18:29:53 +00:00
Neal Gompa
2df162e797 ELN: Set description version to "0"
This value is overridden by Koji with the value set by Pungi for
the target RHEL version. Not having it here removes the assumption
that a valid version is being tracked here.
2024-08-30 14:25:19 -04:00
Troy Dawson
9a186d41a4 Do not use 4096 blocksize
4096 blocksize is required for Macs, and some newer machines can see it,
but many other machines are not able to use the 4096 blocksize.

Signed-off-by: Troy Dawson <tdawson@redhat.com>
2024-08-30 02:27:37 +00:00
Neal Gompa
65dbdf3ec5 ELN: Include the container manifest
This was missing, preventing the container builds from working.
2024-08-29 22:26:13 -04:00
Neal Gompa
82336ed294 repositories: Add disabled repository for test updates for non-rawhide
This lets people easily turn on content from test update repositories
for their image builds.
2024-08-29 04:11:38 -04:00
Neal Gompa
747d490071 repositories: Fix formatting of non-rawhide repo XML
Somehow the updates repo was using spaces instead of tabs for
indentation.
2024-08-29 04:07:26 -04:00
Neal Gompa
f5c0d732ac components/desktops/kde: Add initial setup group for KDE Mobile
It's not the most ideal option, but it works and unblocks the disk
image.
2024-08-27 16:00:29 -04:00
Neal Gompa
f9fbfc24e0 components/liveinstall: Enable mediacheck for live ISOs
This brings us to full parity with official Fedora ISOs produced
by Lorax.
2024-08-27 15:53:33 -04:00
Neal Gompa
6c69287ea5 config.sh: Drop fixboot Anaconda scriptlet
We should no longer need this because kiwi has been adjusted to
delete this file before finalizing the image.
2024-08-25 08:24:46 -04:00
Neal Gompa
56ecbf971e ELN: Set the target RHEL version as the version of the description
Otherwise this turns into "Fedora-ELN-ELN", which is not what we
want. And this represents RHEL 11 anyway.
2024-08-24 13:21:03 -04:00
Adam Williamson
5717cc3604 application_id: no spaces
We discovered Neal got the regex for this wrong in the Kiwi
schema upstream. While he fixes that up, let's just ditch the
spaces here for now so it passes validation.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-08-22 18:29:36 -07:00
Neal Gompa
70edf9c301 components/liveinstall: Set a default application ID
This way we do not get an incomprehensible value here.
2024-08-22 17:36:49 -04:00
Troy Dawson
3368dece03 Fix packages installed on KDE Mobile Live
Fix boot after install for all Live builds

Signed-off-by: Troy Dawson <tdawson@redhat.com>
2024-08-22 09:25:45 -07:00
Neal Gompa
6561c0307a config.sh: Add livesys configuration for MiracleWM spin
This ensures livesys-scripts loads the correct session information
when making the MiracleWM spin.
2024-08-22 11:54:00 -04:00
Neal Gompa
4a1dfbe178 Add initial configuration for MiracleWM spin
Reference: https://fedoraproject.org/wiki/Changes/FedoraMiracle
2024-08-22 11:20:22 -04:00
Stephen Gallagher
8af7cf6d8b Add cloud image support for ELN
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2024-08-22 10:20:33 -04:00
Stephen Gallagher
7f81d5bf32 Add ELN container
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2024-08-22 10:17:35 -04:00
Stephen Gallagher
2242194e9b Add initial framework for ELN images
The bootable image support for ELN differs from boot.xml in
several ways:

* The images use XFS
* Several packages are dropped that are not present in ELN

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2024-08-22 10:17:35 -04:00
Neal Gompa
b77585ea3f Rename config.xml to Fedora.kiwi
This ensures that there is a single unambiguous filename for the
root description.
2024-08-09 11:17:35 -04:00
Neal Gompa
c4d19f7f8e kiwi-build, tmt: Require setting the kiwi filename for the build
In preparation for having multiple top-level kiwi description files,
expose the ability to define which file to read.

Additionally, tests are updated to use this new flag.
2024-08-09 11:17:35 -04:00
Troy Dawson
40e3039216 Initial KDE Plasma Mobile Spin import
Signed-off-by: Troy Dawson <tdawson@redhat.com>
2024-07-31 15:25:37 -07:00
Neal Gompa
316fb431ce components/liveinstall: Support all expected architectures properly
We want to be able to produce live ISOs for AArch64 and POWER with
the correct GRUB configuration. This also sets us up to handle any
quirks for each architecture platform as needed later.

This also includes a change to bump the EFI partition size for ISOs
to 30MB so everything fits.
2024-07-24 08:28:25 -04:00
Neal Gompa
3af429672c teams/kde: Rework to add disk image build
This adds a disk image build profile to produce Fedora KDE images.
Additionally, these profiles are now tested in CI.
2024-07-24 07:13:41 -04:00
Neal Gompa
c8229ee61f components/boot: Add common configuration for disk images
This introduces a core disk configuration profile "BootDiskCore"
that can be used for creating non-cloud bootable disks.
2024-07-24 07:13:41 -04:00
Troy Dawson
afdd23f510 Use ${terminal_output} instead of ${terminal_setup}
The newer kiwi has cleaned up its grub configurations.
One of the changes was the variable terminal_output, which you set for your terminal_output.  Much more logical.
This changes to the new way.
2024-07-23 16:26:30 -04:00
Neal Gompa
72e7153694 components/desktops/kde: Add plasma-welcome-fedora
This adds an extra panel for Plasma Welcome to enable third party
sources on initial login.
2024-07-22 14:12:40 -04:00
Romain Geissler
d16b188a4d Introduce a new "fedora-init" image, which is fedora + systemd.
This is similar to "ubi-init" on UBI/RHEL side.

Fixes BZ 2278884.
2024-07-01 07:58:26 +00:00
Pavel Raiskup
0f501932e7 Add dnf5-plugins into the generic container
[root@ba1ab1388008 /]# dnf5 install dnf5-plugins  --setopt=install_weak_deps=False
...
Total size of inbound packages is 2 MiB. Need to download 2 MiB.
After this operation 13 MiB will be used (install 13 MiB, remove 0 B).
...

Fixes: https://pagure.io/releng/issue/12105
Fixes: https://pagure.io/releng/issue/12106
2024-07-01 09:22:08 +02:00
Dan Horák
dcc4f3c6f9 cloud: updates for s390x
updates for "virtual image" usable under KVM
- don't use 4k block size
- don't use CDL partitioning
- don't use DASD related kernel parameters
2024-06-03 15:36:44 +00:00
Dan Horák
7ba0ead9bd cloud: don't use 4k block size on ppc64le 2024-06-03 16:02:34 +02:00
Marcus Schäfer
818914d495
Allow isolated build via kiwi's boxbuild
The kiwi boxbuild plugin allows to build the image as normal user
inside of a KVM box. The boxes are provided by the plugin and
fetched once or on update. This is useful to decouple the build
from host operating system requirements. The calling user must
have permissions to run KVM instances. Also see:
https://osinside.github.io/kiwi/plugins/self_contained.html
for setting up the sshfs sharing backend
2024-05-31 15:05:28 +02:00
Timothée Ravier
7ddf908a6f VARIANTS: Use a table to list image variants
This should make the list of avaiable image variants more readable.
2024-05-24 10:40:33 +02:00
Adam Williamson
47dd0aa761 Disable systemd-firstboot on Cloud images via cmdline (#2282195)
systemd 256 added a new feature which wants to create users on
boot if none exist yet:
3ccadbce33
We don't want that, cloud-init handles this situation. So let's
disable it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-22 08:15:12 -07:00
Major Hayden
60ddd0e466 AmazonEC2: Add more helpful packages
The amazon-ec2-utils package includes udev rules that make it easier to
identify block storage devices and sets some configuration for other
storage devices.

Users can run awscli2 to manage their AWS cloud resources.

The ec2-instance-connect package allows one click console access to a
Fedora instance from the AWS console (website).

Signed-off-by: Major Hayden <major@redhat.com>
2024-05-10 11:39:20 +00:00
Dominik Wombacher
bc2caa6751 docs(README): Fix broken link to VARIANTS.md 2024-05-09 20:59:21 +00:00
Adam Williamson
678ee6243c Adjust configs for SwitchToDnf5 Change
dnf5 (in obsoleting-dnf mode) provides /usr/bin/yum and obsoletes
yum, so we should drop the 'dnf-yum' entries (which installed
yum). dnf5 also appears to provide and obsolete microdnf, so we
should replace microdnf with dnf5 in the minimal image, I guess.
dnf5-plugins seems the logical replacement for dnf-plugins-core
(which is not removed yet, but is specific to dnf4).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-09 06:10:06 +00:00
Clement Verna
9e7435cee5 Add the container=oci environment variable
This variable was dropped when switching to kiwi.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2278652

Signed-off-by: Clement Verna <cverna@tutanota.com>
2024-05-07 13:27:54 +02:00
Adam Williamson
391d65ff7f Add btrfs-progs to Cloud images
It was previously being pulled in via weak dependencies of fwupd,
but we removed fwupd in #47 and now it's not there any more. It
is needed for the first boot resize by cloud-init to work, since
we use a btrfs filesystem.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-03 13:22:57 -07:00
76 changed files with 2301 additions and 91 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
outdir-build/
outdir/

25
Fedora-ELN.kiwi Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.4" name="Fedora-ELN">
<description type="system">
<author>Fedora Project Contributors</author>
<contact>devel@lists.fedoraproject.org</contact>
<specification>Fedora ELN</specification>
</description>
<preferences>
<version>0</version>
<packagemanager>dnf5</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<release-version>eln</release-version>
</preferences>
<include from="this://./components/boot-eln.xml"/>
<include from="this://./repositories/core-eln.xml"/>
<include from="this://./teams/eln/cloud.xml"/>
<include from="this://./teams/eln/container.xml"/>
<packages type="bootstrap">
<package name="basesystem"/>
<package name="filesystem"/>
</packages>
</image>

View File

@ -7,14 +7,15 @@
<specification>Fedora Linux</specification>
</description>
<preferences>
<version>Rawhide</version>
<packagemanager>dnf</packagemanager>
<version>41</version>
<packagemanager>dnf5</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<release-version>rawhide</release-version>
<release-version>41</release-version>
</preferences>
<include from="this://./repositories/core.xml"/>
<include from="this://./repositories/core-p550.xml"/>
<include from="this://./components/common.xml"/>
<include from="this://./components/boot.xml"/>
<include from="this://./components/desktops/common.xml"/>
<include from="this://./components/desktops/gnome.xml"/>
@ -29,11 +30,15 @@
<include from="this://./components/desktops/phosh.xml"/>
<include from="this://./components/desktops/sway.xml"/>
<include from="this://./components/desktops/budgie.xml"/>
<include from="this://./components/desktops/miraclewm.xml"/>
<include from="this://./components/desktops/cosmic.xml"/>
<include from="this://./components/liveinstall.xml"/>
<include from="this://./components/users.xml"/>
<include from="this://./teams/base.xml"/>
<include from="this://./teams/cloud/cloud.xml"/>
<include from="this://./teams/cloud/container.xml"/>
<include from="this://./teams/cloud/vagrant.xml"/>
<include from="this://./teams/server/premier-p550.xml"/>
<include from="this://./teams/workstation.xml"/>
<include from="this://./teams/kde.xml"/>
<include from="this://./teams/xfce.xml"/>
@ -45,6 +50,11 @@
<include from="this://./teams/soas.xml"/>
<include from="this://./teams/sway.xml"/>
<include from="this://./teams/budgie.xml"/>
<include from="this://./teams/miraclewm.xml"/>
<include from="this://./teams/cosmic.xml"/>
<include from="this://./teams/asahi.xml"/>
<include from="this://./teams/python.xml"/>
<include from="this://./teams/scitech.xml"/>
<packages type="bootstrap">
<package name="basesystem"/>
<package name="filesystem"/>

View File

@ -1 +0,0 @@
config.xml

62
Fedora.kiwi Normal file
View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="7.4" name="Fedora">
<description type="system">
<author>Fedora Project Contributors</author>
<contact>devel@lists.fedoraproject.org</contact>
<specification>Fedora Linux</specification>
</description>
<preferences>
<version>41</version>
<packagemanager>dnf5</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<release-version>41</release-version>
</preferences>
<include from="this://./repositories/core.xml"/>
<include from="this://./components/common.xml"/>
<include from="this://./components/boot.xml"/>
<include from="this://./components/desktops/common.xml"/>
<include from="this://./components/desktops/gnome.xml"/>
<include from="this://./components/desktops/kde.xml"/>
<include from="this://./components/desktops/xfce.xml"/>
<include from="this://./components/desktops/cinnamon.xml"/>
<include from="this://./components/desktops/mate.xml"/>
<include from="this://./components/desktops/i3.xml"/>
<include from="this://./components/desktops/lxqt.xml"/>
<include from="this://./components/desktops/lxde.xml"/>
<include from="this://./components/desktops/soas.xml"/>
<include from="this://./components/desktops/phosh.xml"/>
<include from="this://./components/desktops/sway.xml"/>
<include from="this://./components/desktops/budgie.xml"/>
<include from="this://./components/desktops/miraclewm.xml"/>
<include from="this://./components/desktops/cosmic.xml"/>
<include from="this://./components/liveinstall.xml"/>
<include from="this://./components/users.xml"/>
<include from="this://./teams/base.xml"/>
<include from="this://./teams/cloud/cloud.xml"/>
<include from="this://./teams/cloud/container.xml"/>
<include from="this://./teams/cloud/vagrant.xml"/>
<include from="this://./teams/server/server.xml"/>
<include from="this://./teams/workstation.xml"/>
<include from="this://./teams/kde.xml"/>
<include from="this://./teams/xfce.xml"/>
<include from="this://./teams/cinnamon.xml"/>
<include from="this://./teams/mate.xml"/>
<include from="this://./teams/i3.xml"/>
<include from="this://./teams/lxqt.xml"/>
<include from="this://./teams/lxde.xml"/>
<include from="this://./teams/soas.xml"/>
<include from="this://./teams/sway.xml"/>
<include from="this://./teams/budgie.xml"/>
<include from="this://./teams/miraclewm.xml"/>
<include from="this://./teams/cosmic.xml"/>
<include from="this://./teams/asahi.xml"/>
<include from="this://./teams/python.xml"/>
<include from="this://./teams/scitech.xml"/>
<packages type="bootstrap">
<package name="basesystem"/>
<package name="filesystem"/>
</packages>
</image>

View File

@ -2,13 +2,13 @@
This project is used to manage the Fedora KIWI image descriptions used in composing Fedora release images.
The `rawhide` branch is used for Fedora Rawhide images and each release branch is used by that release.
The `41` branch is used for Fedora 41 images.
All changes should be made via the PR workflow.
## Image variants
Please look at [`VARIANTS`](/VARIANTS.md) for details on the available
Please look at [`VARIANTS`](VARIANTS.md) for details on the available
configurations that can be built.
## Image build quickstart
@ -19,7 +19,7 @@ Set up your development environment and run the image build (substitute `<image_
# 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
[]$ sudo ./kiwi-build --kiwi-file=Fedora.kiwi --image-type=<image_type> --image-profile=<image_profile> --output-dir ./outdir
```
## CI information

View File

@ -1,9 +1,24 @@
## Image variants
* Base Cloud Edition for clouds (image type: `oem`, image profiles: `Cloud-Base-Generic`/`Cloud-Base-AmazonEC2`/`Cloud-Base-Azure`/`Cloud-Base-GCE`)
* Base Cloud Edition for Vagrant (image type: `oem`, image profiles: `Cloud-Base-Vagrant-libvirt`/`Cloud-Base-Vagrant-VirtualBox`)
* Base Container (image type: `oci`, image profiles `Container-Base-Generic-Minimal`/`Container-Base-Generic`)
* Toolbox Container (image type: `oci`, image profiles `Container-Toolbox`)
* KDE Spin (image type: `iso`, image profiles: `KDE-Live`)
* Workstation Edition (image type: `iso`, image profiles: `Workstation-Live`)
### For the `Fedora.kiwi` kiwi file
| Name | Image type | Image profiles |
|--------------------------------|------------|----------------------------------|
| Base Cloud Edition for clouds | `oem` | `Cloud-Base-Generic` |
| | | `Cloud-Base-AmazonEC2` |
| | | `Cloud-Base-Azure` |
| | | `Cloud-Base-GCE` |
| Base Cloud Edition for Vagrant | `oem` | `Cloud-Base-Vagrant-libvirt` |
| | | `Cloud-Base-Vagrant-VirtualBox` |
| Server Edition as a VM guest | `oem` | `Server-Guest-Generic` |
| Server Edition as a hypervisor | `oem` | `Server-Host-Generic` |
| Base Container | `oci` | `Container-Base-Generic-Init` |
| | | `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` |
| | `oem` | `KDE-Mobile-Disk` |
| Workstation Edition | `iso` | `Workstation-Live` |

85
components/boot-eln.xml Normal file
View File

@ -0,0 +1,85 @@
<image>
<profiles>
<profile name="BootCore" description="Boot core packages"/>
<profile name="BootCoreUKI" description="Boot core packages for UKI"/>
<profile name="BootDiskCore" description="Boot disk core configuration">
<requires profile="BootCore"/>
</profile>
</profiles>
<preferences profiles="BootDiskCore" arch="x86_64,aarch64">
<type image="oem"
filesystem="xfs"
kernelcmdline="rhgb quiet" devicepersistency="by-uuid" target_blocksize="4096"
bootpartition="true" bootpartsize="1024" bootfilesystem="xfs" efipartsize="500" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="BootDiskCore" arch="ppc64le">
<type image="oem"
filesystem="xfs"
kernelcmdline="rhgb quiet" devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" firmware="ofw"
rootfs_label="fedora"
>
<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="BootDiskCore" arch="s390x">
<type image="oem"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs"
rootfs_label="fedora"
>
<bootloader name="zipl" timeout="1"/>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<packages type="bootstrap" patternType="plusRecommended" profiles="BootCore,BootCoreUKI">
<package name="grubby"/>
</packages>
<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="grub2-ppc64le" arch="ppc64le"/>
<package name="s390utils-base" arch="s390x"/>
<package name="shim-signed-aa64" arch="aarch64"/>
<package name="shim-signed-x64" arch="x86_64"/>
<package name="kernel-core"/>
<package name="systemd-resolved"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="BootCoreUKI">
<package name="shim-signed-aa64" arch="aarch64"/>
<package name="shim-signed-x64" arch="x86_64"/>
<package name="systemd-oomd-defaults"/>
<package name="systemd-resolved"/>
<package name="kernel-uki-virt"/>
<package name="python3-virt-firmware"/>
<package name="uki-direct"/>
</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>
<packages type="image" patternType="plusRecommended" profiles="BootDiskCore">
<package name="glibc-all-langpacks"/>
<package name="kernel"/>
<package name="kernel-modules"/>
<package name="kernel-modules-extra"/>
</packages>
</image>

View File

@ -2,13 +2,92 @@
<profiles>
<profile name="BootCore" description="Boot core packages"/>
<profile name="BootCoreUKI" description="Boot core packages for UKI"/>
<profile name="BootDiskCore" description="Boot disk core configuration">
<requires profile="BaseCommon"/>
<requires profile="BootCore"/>
</profile>
</profiles>
<preferences profiles="BootDiskCore" arch="x86_64,riscv64">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="rhgb quiet" devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1024" bootfilesystem="ext4" efipartsize="500" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>
<systemdisk name="fedora">
<volume name="@root=root"/>
<volume name="home" parent="/"/>
<volume name="var" parent="/"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="BootDiskCore" arch="aarch64">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="rhgb quiet" devicepersistency="by-uuid" force_mbr="true"
bootpartition="true" bootpartsize="1024" bootfilesystem="ext4" efipartsize="500" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>
<systemdisk name="fedora">
<volume name="@root=root"/>
<volume name="home" parent="/"/>
<volume name="var" parent="/"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="BootDiskCore" arch="ppc64le">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="rhgb quiet" devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" firmware="ofw"
rootfs_label="fedora"
>
<bootloader name="grub2" console="console" timeout="1" timeout_style="hidden"/>
<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="BootDiskCore" arch="s390x">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4"
rootfs_label="fedora"
>
<bootloader name="zipl" timeout="1"/>
<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="bootstrap" patternType="plusRecommended" profiles="BootCore,BootCoreUKI">
<package name="grubby"/>
</packages>
<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-riscv64" arch="riscv64"/>
<package name="grub2-efi-riscv64-modules" arch="riscv64"/>
<package name="grub2-efi-x64" arch="x86_64"/>
<package name="grub2-efi-x64-modules" arch="x86_64"/>
<package name="grub2-pc" arch="x86_64"/>
@ -17,6 +96,7 @@
<package name="s390utils-base" arch="s390x"/>
<package name="shim-signed-aa64" arch="aarch64"/>
<package name="shim-signed-x64" arch="x86_64"/>
<package name="shim-unsigned-riscv64" arch="riscv64"/>
<package name="kernel-core"/>
<package name="systemd-oomd-defaults"/>
<package name="systemd-resolved"/>
@ -24,6 +104,7 @@
<packages type="image" patternType="plusRecommended" profiles="BootCoreUKI">
<package name="shim-signed-aa64" arch="aarch64"/>
<package name="shim-signed-x64" arch="x86_64"/>
<package name="shim-unsigned-riscv64" arch="riscv64"/>
<package name="systemd-oomd-defaults"/>
<package name="systemd-resolved"/>
<package name="kernel-uki-virt"/>
@ -32,6 +113,19 @@
</packages>
<packages type="iso" patternType="plusRecommended" profiles="BootCore">
<package name="grub2-efi-aa64-cdboot" arch="aarch64"/>
<package name="grub2-efi-riscv64-cdboot" arch="riscv64"/>
<package name="grub2-efi-x64-cdboot" arch="x86_64"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="BootDiskCore">
<package name="arm-image-installer" arch="aarch64"/>
<package name="bcm283x-firmware" arch="aarch64"/>
<package name="glibc-all-langpacks"/>
<package name="kernel"/>
<package name="kernel-modules"/>
<package name="kernel-modules-extra"/>
<package name="btrfs-progs"/>
<package name="udisks2-btrfs"/>
<package name="uboot-images-armv8" arch="aarch64"/>
<package name="uboot-images-riscv64" arch="riscv64"/>
</packages>
</image>

9
components/common.xml Normal file
View File

@ -0,0 +1,9 @@
<image>
<profiles>
<profile name="BaseCommon" description="Base common packages"/>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="BaseCommon">
<namedCollection name="standard"/>
<ignore name="qemu-user-static"/> <!-- Saves ~100MB -->
</packages>
</image>

View File

@ -1,6 +1,8 @@
<image>
<profiles>
<profile name="DesktopCommon" description="Common desktop packages"/>
<profile name="DesktopCommon" description="Common desktop packages">
<requires profile="BaseCommon"/>
</profile>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="DesktopCommon">
<namedCollection name="fonts"/>
@ -9,7 +11,7 @@
<namedCollection name="hardware-support"/>
<namedCollection name="printing"/>
<namedCollection name="guest-desktop-agents"/>
<namedCollection name="standard"/>
<package name="mediawriter"/>
<ignore name="gfs2-utils"/>
<ignore name="reiserfs-utils"/>
</packages>

View File

@ -0,0 +1,11 @@
<image>
<profiles>
<profile name="COSMIC-Desktop" description="COSMIC Desktop">
<requires profile="DesktopCommon"/>
</profile>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="COSMIC-Desktop">
<!-- install env-group to resolve RhBug:1891500 -->
<namedCollection name="cosmic-desktop-environment"/>
</packages>
</image>

View File

@ -4,12 +4,32 @@
<profile name="KDE-Desktop" description="KDE Plasma Desktop">
<requires profile="DesktopCommon"/>
</profile>
<profile name="KDE-Mobile" description="KDE Plasma Mobile">
<requires profile="DesktopCommon"/>
</profile>
</profiles>
<!-- Common exclusions for KDE variants -->
<packages type="image" patternType="plusRecommended" profiles="KDE-Desktop,KDE-Mobile">
<ignore name="gnome-disk-utility"/> <!-- redundant with kde partitionmanager -->
<ignore name="mariadb-server-utils"/> <!-- Not needed on desktops (pagure.io:fedora-kde/SIG#566) -->
<ignore name="system-config-language"/> <!-- redundant with kcms -->
<ignore name="system-config-printer"/> <!-- redundant with kcms -->
<!-- drop tracker stuff pulled in by gtk3 (pagureio:fedora-kde/SIG#124) -->
<ignore name="tracker"/>
<ignore name="tracker-miners"/>
<!-- space issues -->
<ignore name="digikam"/> <!-- digikam has duplicate functionality with gwenview (~28 megs) -->
<ignore name="k3b"/> <!-- ~15 megs -->
<ignore name="kipi-plugins"/> <!-- ~8 megs + drags in marble -->
<ignore name="krusader"/> <!-- ~4 megs -->
<ignore name="ktorrent"/> <!-- ~15 megs -->
</packages>
<packages type="image" patternType="plusRecommended" profiles="KDE-Desktop">
<!-- install env-group to resolve RhBug:1891500 -->
<namedCollection name="kde-desktop-environment"/>
<namedCollection name="kde-apps"/>
<namedCollection name="kde-media"/>
<namedCollection name="kde-pim"/>
<namedCollection name="kde-spin-initial-setup"/>
<namedCollection name="firefox"/>
<namedCollection name="libreoffice"/>
@ -17,8 +37,16 @@
<package name="libreoffice-math"/>
<package name="fuse"/>
<package name="kde-l10n"/>
<ignore name="@admin-tools"/>
<ignore name="gnome-disk-utility"/>
<ignore name="system-config-printer"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="KDE-Mobile">
<!-- install env-group to resolve RhBug:1891500 -->
<namedCollection name="kde-mobile-environment"/>
<!-- not ideal, but the best we can do for now -->
<namedCollection name="kde-spin-initial-setup"/>
<namedCollection name="firefox"/>
<package name="fuse"/>
<package name="kde-l10n"/>
<ignore name="plasma-welcome"/>
<ignore name="plasma-welcome-fedora"/>
</packages>
</image>

View File

@ -23,10 +23,14 @@
<ignore name="adobe-source-han-sans-cn-fonts"/> <!-- Simplified Chinese: replaced by above -->
<ignore name="adobe-source-han-sans-tw-fonts"/> <!-- Traditional Chinese: replaced by above -->
<ignore name="pt-sans-fonts"/> <!-- Cyrillic (already supported by DejaVu) -->
<!-- these do not currently work: https://pagure.io/fedora-kiwi-descriptions/issue/112
<ignore name="@input-methods"/>
<ignore name="@admin-tools"/>
-->
<!-- because the input-methods group exclusion doesn't work, these aren't safe
<ignore name="scim*"/>
<ignore name="m17n*"/>
<ignore name="iok"/>
-->
</packages>
</image>

View File

@ -0,0 +1,15 @@
<image>
<profiles>
<profile name="DesktopCommon" description="Common desktop packages"/>
<profile name="MiracleWM-Desktop" description="MiracleWM Desktop">
<requires profile="DesktopCommon"/>
</profile>
</profiles>
<packages type="image" patternType="plusRecommended" profiles="MiracleWM-Desktop">
<!-- install env-group to resolve RhBug:1891500 -->
<namedCollection name="miraclewm-desktop-environment"/>
<namedCollection name="firefox"/>
<package name="initial-setup-gui"/>
<package name="initial-setup-gui-wayland-miraclewm"/>
</packages>
</image>

View File

@ -1,12 +1,44 @@
<image>
<profiles>
<profile name="LiveInstall" description="Live Install ISO">
<requires profile="BaseCommon"/>
<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"/>
<preferences profiles="LiveInstall" arch="x86_64">
<type image="iso"
publisher="Fedora Project" volid="Fedora_Linux" application_id="Fedora_Linux"
primary="true" flags="dmsquash" filesystem="squashfs" squashfscompression="xz" mediacheck="true"
firmware="uefi" efiparttable="gpt" efifatimagesize="30" kernelcmdline="quiet rhgb"
>
<bootloader name="grub2" grub_template="grub-x86.cfg.iso-template" console="console" timeout="10"/>
</type>
</preferences>
<preferences profiles="LiveInstall" arch="aarch64">
<type image="iso"
publisher="Fedora Project" volid="Fedora_Linux" application_id="Fedora_Linux"
primary="true" flags="dmsquash" filesystem="squashfs" squashfscompression="xz" mediacheck="true"
firmware="uefi" efiparttable="gpt" efifatimagesize="30" kernelcmdline="quiet rhgb"
>
<bootloader name="grub2" grub_template="grub-arm.cfg.iso-template" console="console" timeout="10"/>
</type>
</preferences>
<preferences profiles="LiveInstall" arch="riscv64">
<type image="iso"
publisher="Fedora Project" volid="Fedora_Linux" application_id="Fedora_Linux"
primary="true" flags="dmsquash" filesystem="squashfs" squashfscompression="xz" mediacheck="true"
firmware="uefi" efiparttable="gpt" efifatimagesize="30" kernelcmdline="quiet rhgb"
>
<bootloader name="grub2" grub_template="grub-riscv64.cfg.iso-template" console="console" timeout="10"/>
</type>
</preferences>
<preferences profiles="LiveInstall" arch="ppc64le">
<type image="iso"
publisher="Fedora Project" volid="Fedora_Linux" application_id="Fedora_Linux"
primary="true" flags="dmsquash" filesystem="squashfs" squashfscompression="xz" mediacheck="true"
firmware="ofw" kernelcmdline="quiet rhgb"
>
<bootloader name="grub2" grub_template="grub-ppc.cfg.iso-template" console="console" timeout="10"/>
</type>
</preferences>
<packages type="iso" patternType="plusRecommended" profiles="LiveInstall">
@ -19,12 +51,15 @@
<package name="aajohan-comfortaa-fonts"/>
<package name="dracut-live"/>
<package name="glibc-all-langpacks"/>
<package name="isomd5sum"/>
<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="device-mapper-multipath"/>
<ignore name="fcoe-utils"/>
<ignore name="gfs2-utils"/>
</packages>
</image>

View File

@ -3,4 +3,8 @@
<!-- 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>
<users profiles="Server-Host-PremierP550">
<!-- Same as above, but the password is retained in the installed system -->
<user name="root" groups="root" password="linux" home="/root" pwdformat="plain" />
</users>
</image>

160
config.sh
View File

@ -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
@ -43,12 +43,30 @@ if [[ "$kiwi_profiles" != *"Container"* ]]; then
echo "GRUB_DISABLE_RECOVERY=true" >> /etc/default/grub
fi
if [[ "$kiwi_profiles" == *"PremierP550"* ]]; then
echo 'GRUB_DEFAULT_DTB="dtb/eswin/eic7700-hifive-premier-p550.dtb"' >> /etc/default/grub
fi
#======================================
# Resize root partition on first boot
#--------------------------------------
if [[ "$kiwi_profiles" == *"Disk"* ]]; then
mkdir -p /etc/repart.d/
cat > /etc/repart.d/50-root.conf << EOF
[Partition]
Type=root
EOF
fi
#======================================
# Delete & lock the root user password
#--------------------------------------
if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then
passwd -d root
passwd -l root
if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Disk"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then
if [[ "$kiwi_profiles" != *"PremierP550"* ]]; then
passwd -d root
passwd -l root
fi
fi
#======================================
@ -69,6 +87,9 @@ if [[ "$kiwi_profiles" == *"Live"* ]]; then
if [[ "$kiwi_profiles" == *"Cinnamon"* ]]; then
echo 'livesys_session="cinnamon"' > /etc/sysconfig/livesys
fi
if [[ "$kiwi_profiles" == *"COSMIC"* ]]; then
echo 'livesys_session="cosmic"' > /etc/sysconfig/livesys
fi
if [[ "$kiwi_profiles" == *"i3"* ]]; then
echo 'livesys_session="i3"' > /etc/sysconfig/livesys
fi
@ -81,6 +102,9 @@ if [[ "$kiwi_profiles" == *"Live"* ]]; then
if [[ "$kiwi_profiles" == *"MATE_Compiz"* ]]; then
echo 'livesys_session="mate"' > /etc/sysconfig/livesys
fi
if [[ "$kiwi_profiles" == *"MiracleWM"* ]]; then
echo 'livesys_session="miraclewm"' > /etc/sysconfig/livesys
fi
if [[ "$kiwi_profiles" == *"Sway"* ]]; then
echo 'livesys_session="sway"' > /etc/sysconfig/livesys
fi
@ -92,10 +116,23 @@ if [[ "$kiwi_profiles" == *"Live"* ]]; then
fi
fi
#======================================
# Setup firstboot initial setup
#--------------------------------------
if [[ "$kiwi_profiles" == *"Disk"* ]]; then
if [[ "$kiwi_profiles" != *"GNOME"* ]] && [[ "$kiwi_profiles" != *"PremierP550"* ]]; then
## Enable initial-setup
systemctl enable initial-setup.service
## Enable reconfig mode
touch /etc/reconfigSys
fi
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
@ -107,6 +144,22 @@ fi
# Setup default customizations
#--------------------------------------
if [[ "$kiwi_profiles" == *"Disk"* ]]; then
# Find the architecture we are on
installarch=$(uname -m)
# Setup Raspberry Pi firmware
if [[ $installarch == "aarch64" ]]; then
cp -a /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin
fi
fi
if [[ "$kiwi_profiles" == *"Server"* ]]; then
# Trigger lvm-devices-import.path and .service to create
# a new /etc/lvm/devices/system.devices for the root VG.
rm -f /etc/lvm/devices/system.devices
touch /etc/lvm/devices/auto-import-rootvg
fi
if [[ "$kiwi_profiles" == *"Azure"* ]]; then
cat > /etc/ssh/sshd_config.d/50-client-alive-interval.conf << EOF
ClientAliveInterval 120
@ -167,7 +220,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"
@ -277,4 +330,97 @@ EOF
/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
fi
if [[ "$kiwi_profiles" == *"FEX"* ]]; then
# Remove most things except libraries used by FEX and wine stuff.
# Most binaries that are present in non-x86 architectures should be removed,
# so they do not run under emulation.
# rm mingw static libs and headers
rm -rf /usr/{x86_64,i686}-w64-mingw32/sys-root/mingw/{lib,include}
# rm everything in libexec
rm -rf /usr/libexec
# rm everything in /usr/share except wine and mesa related stuff
find /usr/share -mindepth 1 -maxdepth 1 \
\! -name wine -a \
\! -name mesa-demos -a \
\! -name drirc.d -a \
\! -name vulkan \
\! -name licenses \
-exec rm -rf {} \;
# rm everything in /etc except /etc/alternatives and ld stuff
find /etc -mindepth 1 -maxdepth 1 \
\! -name alternatives -a \
\! -name 'ld.so*' -a \
\! -name '*.kiwi' \
-exec rm -rf {} \;
# rm non-libs in lib/lib64
rm -rf /usr/{lib,lib64}/{locale,tmpfiles.d,systemd,modprobe.d,kbd,cmake}
rm -rf /usr/{lib,lib64}/python*
# lib/clc and lib64/clc are identical, replace with a symlink
rm -rf /usr/lib/clc
ln -s ../lib64/clc /usr/lib/clc
# rm sbin except for ldconfig, we don't even have root in some setups
find /usr/sbin -mindepth 1 -maxdepth 1 \
\! -name 'ldconfig' \
-exec rm -rf {} \;
# rm misc stuff
rm -rf /usr/{include,games,local,src,tmp}
# Finally, remove most binaries except Wine stuff, Mesa stuff, the shell,
# path-related stuff, and system info tools.
find /usr/bin -mindepth 1 -maxdepth 1 \
\! -name 'wine*' -a \
\! -name 'mango*' -a \
\! -name notepad -a \
\! -name 'msi*' -a \
\! -name regedit -a \
\! -name regsvr32 -a \
\! -name 'vulkan*' -a \
\! -name 'vk*' -a \
\! -name clinfo -a \
\! -name eglinfo -a \
\! -name glxinfo -a \
\! -name ulimit -a \
\! -name ldd -a \
\! -name env -a \
\! -name sh -a \
\! -name bash -a \
\! -name ls -a \
\! -name stat -a \
\! -name dirname -a \
\! -name realpath -a \
\! -name readlink -a \
\! -name basename -a \
\! -name nproc -a \
\! -name uname -a \
\! -name arch -a \
\! -name rm \
-exec rm -rf {} \;
# Do this last for obvious reasons.
rm /usr/bin/rm
fi
# Find the architecture we are on
installarch=$(uname -m)
# Do custom Fedora/RISCV changes
if [[ $installarch == "riscv64" ]]; then
if [[ "$kiwi_profiles" == *"Disk"* ]]; then
# Disable tmpfs for /tmp
# Most boards don't have a lot of RAM.
systemctl mask tmp.mount
# We most likely don't have HW random number generator
systemctl enable haveged.service
fi
fi
exit 0

15
fex-excludes.yaml Normal file
View File

@ -0,0 +1,15 @@
exclude:
- /afs
- /boot
- /dev
- /home
- /media
- /mnt
- /opt
- /proc
- /root
- /run
- /srv
- /sys
- /tmp
- /var

41
grub-arm.cfg.iso-template Normal file
View File

@ -0,0 +1,41 @@
# Inspired by the config used for lorax-built live media
set default="1"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
set basicgfx="nomodeset"
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
terminal_input console
terminal_output ${terminal_output}
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}
}
menuentry "Test this media & start ${title}" --class fedora --class gnu-linux --class gnu --class os {
linux ($$root)${bootpath}/${kernel_file} ${boot_options} rd.live.check
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}
}
}

30
grub-ppc.cfg.iso-template Normal file
View File

@ -0,0 +1,30 @@
# Inspired by the config used for lorax-built live media
set default="1"
insmod gzio
insmod part_gpt
insmod ext2
terminal_input console
terminal_output ${terminal_output}
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}
}
menuentry "Test this media & start ${title}" --class fedora --class gnu-linux --class gnu --class os {
linux ($$root)${bootpath}/${kernel_file} ${boot_options} rd.live.check
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}
}
}

View File

@ -0,0 +1,41 @@
# Inspired by the config used for lorax-built live media
set default="1"
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
set basicgfx="nomodeset"
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
terminal_input console
terminal_output ${terminal_output}
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}
}
menuentry "Test this media & start ${title}" --class fedora --class gnu-linux --class gnu --class os {
linux ($$root)${bootpath}/${kernel_file} ${boot_options} rd.live.check
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}
}
}

View File

@ -1,6 +1,6 @@
# Inspired by the config used for lorax-built live media
set default=${default_boot}
set default="1"
if [ "$$grub_platform" == "efi" ]; then
function load_video {
@ -25,7 +25,7 @@ insmod part_gpt
insmod ext2
terminal_input console
terminal_output ${terminal_setup}
terminal_output ${terminal_output}
set timeout=${boot_timeout}
set timeout_style=${boot_timeout_style}
@ -36,6 +36,10 @@ menuentry "Start ${title}" --class fedora --class gnu-linux --class gnu --class
linux ($$root)${bootpath}/${kernel_file} ${boot_options}
initrd ($$root)${bootpath}/${initrd_file}
}
menuentry "Test this media & start ${title}" --class fedora --class gnu-linux --class gnu --class os {
linux ($$root)${bootpath}/${kernel_file} ${boot_options} rd.live.check
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}

View File

@ -6,42 +6,65 @@
set -eu -o pipefail
kiwibuildsh="$(basename "$0")"
kiwibuild_scriptdir="$(dirname "$0")"
usage() {
echo >&2 "usage: $kiwibuildsh [--kiwi-description-dir=DIR] --output-dir=DIR --image-type=TYPE --image-profile=PROFILE [--debug]"
echo >&2 " eg: $kiwibuildsh --kiwi-description-dir=/var/tmp/desc --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"
echo >&2 "usage: $kiwibuildsh [--kiwi-description-dir=DIR] [--kiwi-file=FILE] [--isolated] --output-dir=DIR --image-type=TYPE --image-profile=PROFILE [--image-release=RELEASEID] [--debug]"
echo >&2 " eg: $kiwibuildsh --kiwi-description-dir=/var/tmp/desc --kiwi-file=config.kiwi --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic --image-release=0 --debug"
echo >&2 " eg: $kiwibuildsh --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic"
echo >&2 " eg: $kiwibuildsh --isolated --output-dir=/var/tmp/work --image-type=oem --image-profile=Cloud-Base-Generic"
exit 255
}
optTemp=$(getopt --options '+k:,o:,t:,p:,d,h' --longoptions 'kiwi-description-dir:,output-dir:,image-type:,image-profile:,debug,help' --name "$kiwibuildsh" -- "$@")
optTemp=$(getopt --options '+k:,f:,i,o:,t:,p:,r:,d,h' --longoptions 'kiwi-description-dir:,kiwi-file:,isolated,output-dir:,image-type:,image-profile:,image-release:,debug,help' --name "$kiwibuildsh" -- "$@")
eval set -- "$optTemp"
unset optTemp
kiwi_description_dir="./"
output_dir=
image_type=
image_profile=
image_release=
debug=
kiwi_isolated=
# For compatibility with older scripts where these did not exist
kiwi_description_dir="./"
kiwi_file="Fedora.kiwi"
kiwibuild_extra_args=
while true; do
case "$1" in
-i|--isolated) kiwi_isolated=1; shift ;;
-k|--kiwi-description-dir) kiwi_description_dir="$2" ; shift 2 ;;
-f|--kiwi-file) kiwi_file="$2" ; shift 2 ;;
-o|--output-dir) output_dir="$2" ; shift 2 ;;
-t|--image-type) image_type="$2" ; shift 2 ;;
-p|--image-profile) image_profile="$2" ; shift 2 ;;
-r|--image-release) image_release="$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
if [ -z "$output_dir" ] || [ -z "$image_type" ] || [ -z "$image_profile" ] || [ -z "$kiwi_file" ]; then
echo "Options not set!"
usage
fi
if [ -e "/sys/fs/selinux/enforce" ]; then
# Set the bundle format after we know the profile
kiwi_bundle_format=$("${kiwibuild_scriptdir}/scripts/fedora-kiwi-bundle-format-generator" "${kiwi_file}" "${image_profile}")
if [ "$image_type" = "iso" ]; then
# Add parameters for embedded ISO IDs
kiwibuild_extra_args=$("${kiwibuild_scriptdir}/scripts/fedora-live-iso-label-generator" "${kiwi_file}" "${image_profile}" --output-kiwi-args)
fi
if [ "$image_type" = "oci" ]; then
# Extend for OCI images
kiwi_bundle_format="${kiwi_bundle_format}.%T"
fi
if [ ! ${kiwi_isolated} ] && [ -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
@ -50,15 +73,22 @@ if [ -e "/sys/fs/selinux/enforce" ]; then
fi
set +e
kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --color-output system build --description "${kiwi_description_dir}" --target-dir "${output_dir}"
if [ ! ${kiwi_isolated} ]; then
kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --kiwi-file="${kiwi_file}" --color-output system build --description "${kiwi_description_dir}" --target-dir "${output_dir}-build" ${kiwibuild_extra_args}
else
kiwi-ng ${debug} --type="${image_type}" --profile="${image_profile}" --kiwi-file="${kiwi_file}" --color-output system boxbuild --box universal --sshfs-sharing -- --description "${kiwi_description_dir}" --target-dir "${output_dir}-build" ${kiwibuild_extra_args}
fi
kiwi_status=$?
set -e
if [ -e "/sys/fs/selinux/enforce" ]; then
if [ ! ${kiwi_isolated} ] && [ -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
if [ "${kiwi_status}" = "0" ] && [ -n "$image_release" ]; then
kiwi-ng ${debug} result bundle --bundle-format="${kiwi_bundle_format}" --target-dir "${output_dir}-build" --bundle-dir "${output_dir}" --id="${image_release}"
fi
exit $kiwi_status

View File

@ -16,6 +16,10 @@ maintainers = [ "Mukundan Ragavan", "Kevin Fenzi", "Adam Miller" ]
fas = [ "rdieter", "marcdeop", "ngompa" ]
maintainers = [ "Rex Dieter", "Marc Deop", "Neal Gompa" ]
[spins.kde-mobile.x86_64]
fas = [ "tdawson", "ngompa" ]
maintainers = [ "Troy Dawson", "Neal Gompa" ]
[spins.cinnamon.x86_64]
fas = [ "grinnz" ]
maintainers = [ "Dan Book" ]

22
repositories/core-eln.xml Normal file
View File

@ -0,0 +1,22 @@
<image>
<repository type="rpm-md" alias="extras" sourcetype="metalink">
<source path="https://mirrors.fedoraproject.org/metalink?repo=eln-extras-1&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary"/>
</source>
</repository>
<repository type="rpm-md" alias="crb" sourcetype="metalink">
<source path="https://mirrors.fedoraproject.org/metalink?repo=eln-crb-1&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary"/>
</source>
</repository>
<repository type="rpm-md" alias="appstream" sourcetype="metalink">
<source path="https://mirrors.fedoraproject.org/metalink?repo=eln-appstream-1&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary"/>
</source>
</repository>
<repository type="rpm-md" alias="baseos" sourcetype="metalink">
<source path="https://mirrors.fedoraproject.org/metalink?repo=eln-baseos-1&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-rawhide-primary"/>
</source>
</repository>
</image>

View File

@ -1,12 +1,29 @@
<image>
<repository type="rpm-md" alias="fedora" sourcetype="metalink">
<repository type="rpm-md" alias="fedora" sourcetype="metalink" arch="x86_64,aarch64,ppc64le,s390x">
<source path="https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&amp;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&amp;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" arch="x86_64,aarch64,ppc64le,s390x">
<source path="https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary"/>
</source>
</repository>
<!-- For folks to enable for building images with content in test update repositories -->
<!--
<repository type="rpm-md" alias="updates-testing" sourcetype="metalink" arch="x86_64,aarch64,ppc64le,s390x">
<source path="https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&amp;arch=$basearch">
<signing key="file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary"/>
</source>
</repository>
-->
<repository type="rpm-md" alias="fedora" sourcetype="baseurl" arch="riscv64">
<source path="http://fedora.riscv.rocks/repos-dist/f$releasever-staging/latest/$basearch"/>
</repository>
<!-- For folks to enable for building images with content in Koji working repos -->
<!--
<repository type="rpm-md" alias="fedora-koji" sourcetype="baseurl" arch="riscv64">
<source path="http://fedora.riscv.rocks/repos/f$releasever-staging/latest/$basearch"/>
</repository>
-->
</image>

View File

@ -0,0 +1,11 @@
<image>
<repository type="rpm-md" alias="fedora" sourcetype="baseurl">
<source path="http://fedora.riscv.rocks/repos-dist/f$releasever-p550/latest/$basearch"/>
</repository>
<!-- For folks to enable for building images with content in Koji working repos -->
<!--
<repository type="rpm-md" alias="fedora-koji" sourcetype="baseurl">
<source path="http://fedora.riscv.rocks/repos/f$releasever-staging/latest/$basearch"/>
</repository>
-->
</image>

View File

@ -1 +1 @@
core-rawhide.xml
core-nonrawhide.xml

View File

@ -0,0 +1,31 @@
#!/usr/bin/env python3
# Simple tool to generate bundle formats for kiwi image builds
# Author: Neal Gompa <ngompa@fedoraproject.org>
# SPDX-3.0-License-Identifier: GPL-3.0-or-later
# SPDX-2.0-License-Identifier: GPL-3.0+
from argparse import ArgumentParser
from pathlib import Path
import xml.etree.ElementTree as ET
parser = ArgumentParser(description="Generator of kiwi bundle formats for Fedora image builds")
parser.add_argument("kiwi_file", type=Path, default="Fedora.kiwi", help="kiwi description file")
parser.add_argument("image_profile", type=str, help="kiwi image profile")
parser.add_argument("--oci-variant", "-o", action="store_true", help="generate oci variant")
args = parser.parse_args()
xml_tree = ET.parse(args.kiwi_file)
image_root = xml_tree.getroot()
image_basename = image_root.attrib["name"]
image_profile = args.image_profile
image_bundle_format = f"{image_basename}-{image_profile}-%v.%I.%A"
if args.oci_variant:
print(f"{image_bundle_format}.%T")
else:
print(image_bundle_format)

View File

@ -0,0 +1,108 @@
#!/usr/bin/env python3
# Simple tool to generate volume IDs and application IDs for ISOs for kiwi image builds
# Author: Neal Gompa <ngompa@fedoraproject.org>
# SPDX-3.0-License-Identifier: GPL-3.0-or-later
# SPDX-2.0-License-Identifier: GPL-3.0+
# Used to map kiwi profiles to application IDs (which may also
# may be used for connecting to volume ID substitutions).
profile_to_application_id = {
"KDE-Desktop": "KDE_Desktop",
"KDE-Mobile": "KDE_Mobile",
}
# Used by Pungi to replace "Cloud" with "C" (etc.) in ISO volume IDs.
# There is a hard 32-character limit on ISO volume IDs, so we use
# these to try and produce short enough but legible IDs. Note this is
# duplicated in Koji for live images, as livemedia-creator does not
# allow Pungi to tell it what volume ID to use. Note:
# https://fedoraproject.org/wiki/User:Adamwill/Draft_fedora_image_naming_policy
# "-Workstation-" is a temporary workaround. See
# https://pagure.io/pungi-fedora/pull-request/525
# Replace "Cloud" with "C" in volume id etc.
# WARNING: This list *MUST* remain in sync with pungi-fedora!
# https://pagure.io/pungi-fedora/blob/main/f/general.conf
volume_id_substitutions = {
"Beta": "B",
"Rawhide": "rawh",
"Astronomy_KDE": "AstK",
"Silverblue": "SB",
"Kinoite": "Knt",
"Cinnamon": "Cinn",
"Cloud": "C",
"Comp_Neuro": "CNr",
"COSMIC": "COSMIC",
"Design_suite": "Dsgn",
"Electronic_Lab": "Elec",
"Everything": "E",
"Games": "Game",
"Images": "img",
"Jam_KDE": "Jam",
"KDE_Desktop": "KDE",
"KDE_Mobile": "KDEM",
"MATE_Compiz": "MATE",
"MiracleWM": "MirWM",
"Onyx": "Onyx",
# Note https://pagure.io/pungi-fedora/issue/533
"Python-Classroom": "Clss",
"Python_Classroom": "Clss",
"Robotics": "Robo",
"Scientific_KDE": "SciK",
"Security": "Sec",
"Sericea": "Src",
"Server": "S",
"Workstation": "WS",
"-Workstation-": "-WS-",
}
from argparse import ArgumentParser
from pathlib import Path
import xml.etree.ElementTree as ET
parser = ArgumentParser(description="Generator of ISO labels for Fedora live media builds")
parser.add_argument("kiwi_file", type=Path, default="Fedora.kiwi", help="kiwi description file")
parser.add_argument("image_profile", type=str, help="kiwi image profile")
parser.add_argument("--output-kiwi-args", "-k", action="store_true", help="generate kiwi args instead of csv")
args = parser.parse_args()
xml_tree = ET.parse(args.kiwi_file)
image_root = xml_tree.getroot()
image_basename = image_root.attrib["name"]
image_version = image_root.find("preferences/version").text
image_volid_version = image_version
if image_volid_version == "Rawhide":
image_volid_version = "rawh"
image_profile = args.image_profile
if image_profile.endswith("-Live"):
image_profile_baseprefix = image_profile[:-5]
else:
image_profile_baseprefix = image_profile
image_profile_variant_appid_prefix = image_profile_baseprefix
if image_profile_baseprefix in profile_to_application_id.keys():
image_profile_variant_appid_prefix = profile_to_application_id[image_profile_baseprefix]
else:
image_profile_variant_appid_prefix = image_profile_baseprefix
if image_profile_variant_appid_prefix in volume_id_substitutions.keys():
image_profile_variant_volid_prefix = volume_id_substitutions[image_profile_variant_appid_prefix]
else:
image_profile_variant_volid_prefix = image_profile_variant_appid_prefix
image_appid = f"{image_basename}-{image_profile_variant_appid_prefix}-Live-{image_version}"
image_volid = f"{image_basename}-{image_profile_variant_volid_prefix}-Live-{image_volid_version}"
if args.output_kiwi_args:
print(f"--set-type-attr=application_id={image_appid} --set-type-attr=volid={image_volid}")
else:
print(f"application_id,{image_appid},volid,{image_volid}")

38
simple-kiwi-build Executable file
View File

@ -0,0 +1,38 @@
#!/bin/sh
set -e
image_profile="$1"
shift
if [ -z "${image_profile}" ]; then
echo "Usage: $0 PROFILE [KIWI-OPTIONS...]" >&2
exit 1
fi
case "${image_profile}" in
*P550*) kiwi_file="Fedora-P550.kiwi" ;;
*) kiwi_file="Fedora.kiwi" ;;
esac
case "${image_profile}" in
*Live*) image_type="iso" ;;
*Container*) image_type="oci" ;;
* ) image_type="oem" ;;
esac
commit="$(git rev-parse --short=12 HEAD)"
today="$(date '+%Y%m%d')"
outdir="${today}-${image_profile}-${commit}"
rm -rf "${outdir}-build" "${outdir}"
./kiwi-build \
--output-dir="${outdir}" \
--kiwi-file="${kiwi_file}" \
--image-type="${image_type}" \
--image-profile="${image_profile}" \
--image-release="${today}-${commmit}" \
"$@"
rm -rf "${outdir}-build"

185
teams/asahi.xml Normal file
View File

@ -0,0 +1,185 @@
<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="glibc.x86_64"/>
<package name="glibc.i686"/>
<package name="dbus-libs.x86_64"/>
<package name="dbus-libs.i686"/>
<package name="systemd.x86_64"/>
<package name="systemd.i686"/>
<package name="systemd-libs.x86_64"/>
<package name="systemd-libs.i686"/>
<package name="pulseaudio-libs.x86_64"/>
<package name="pulseaudio-libs.i686"/>
<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-compat.x86_64"/>
<package name="sdl2-compat.i686"/>
<package name="SDL2_gfx.x86_64"/>
<package name="SDL2_gfx.i686"/>
<package name="SDL2_ttf.x86_64"/>
<package name="SDL2_ttf.i686"/>
<package name="SDL2_image.x86_64"/>
<package name="SDL2_image.i686"/>
<package name="SDL2_mixer.x86_64"/>
<package name="SDL2_mixer.i686"/>
<package name="SDL2_net.x86_64"/>
<package name="SDL2_net.i686"/>
<package name="SDL2_sound.x86_64"/>
<package name="SDL2_sound.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="libGLEW.x86_64"/>
<package name="libGLEW.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-wm.x86_64"/>
<package name="xcb-util-wm.i686"/>
<package name="xcb-util-xrm.x86_64"/>
<package name="xcb-util-xrm.i686"/>
<package name="xcb-imdkit.x86_64"/>
<package name="xcb-imdkit.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="clang-libs.x86_64"/>
<package name="clang-libs.i686"/>
<package name="clang18-libs.x86_64"/>
<package name="clang18-libs.i686"/>
<package name="llvm-libs.x86_64"/>
<package name="llvm-libs.i686"/>
<package name="llvm18-libs.x86_64"/>
<package name="llvm18-libs.i686"/>
<package name="libclc.x86_64"/>
<package name="libclc.i686"/>
<package name="spirv-tools-libs.x86_64"/>
<package name="spirv-tools-libs.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="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="xz"/>
<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"/> <!-- needed by kiwi -->
<package name="glibc-langpack-en"/> <!-- needed by kiwi -->
<package name="zlib-ng.x86_64"/>
<package name="zlib-ng.i686"/>
<package name="libxslt.x86_64"/>
<package name="libxslt.i686"/>
<!--
Remove these if we choose to drop GTK2/GTK3 (currently there are other dependencies above).
These are useful for muvm X11 passthrough. Modern apps should use Wayland protocols, so
other IM support packages are hopefully not needed in the rootfs.
-->
<package name="gtk2-immodule-xim.x86_64"/>
<package name="gtk2-immodule-xim.i686"/>
<package name="gtk3-immodule-xim.x86_64"/>
<!-- unavailable <package name="gtk3-immodule-xim.i686"/> -->
</packages>
</image>

17
teams/base.xml Normal file
View File

@ -0,0 +1,17 @@
<image>
<profiles>
<profile name="Minimal-Disk" description="Minimal Install Disk">
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Minimal-Disk">
<package name="fedora-release"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Minimal-Disk">
<namedCollection name="core"/>
<namedCollection name="standard"/>
<namedCollection name="networkmanager-submodules"/>
<package name="initial-setup"/>
<ignore name="initial-setup-gui"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="Budgie-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Budgie-Disk" description="Budgie Spin Install Disk">
<requires profile="Budgie-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Budgie-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="Budgie-Live,Budgie-Disk">
<package name="fedora-release-budgie"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="Cinnamon-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Cinnamon-Disk" description="Cinnamon Spin Install Disk">
<requires profile="Cinnamon-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Cinnamon-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="Cinnamon-Live,Cinnamon-Disk">
<package name="fedora-release-cinnamon"/>
</packages>
</image>

View File

@ -31,7 +31,7 @@
<preferences profiles="Cloud-Base-Azure" arch="x86_64,aarch64">
<type image="oem" format="vhd-fixed" formatoptions="force_size"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
@ -51,7 +51,7 @@
<preferences profiles="Cloud-Base-AmazonEC2" arch="x86_64,aarch64">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
@ -71,7 +71,7 @@
<preferences profiles="Cloud-Base-GCE" arch="x86_64,aarch64">
<type image="oem" format="gce"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=ttyS0,38400n8d"
kernelcmdline="no_timer_check console=ttyS0,38400n8d systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
@ -89,10 +89,10 @@
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-Generic" arch="x86_64,aarch64">
<preferences profiles="Cloud-Base-Generic" arch="x86_64,aarch64,riscv64">
<type image="oem" format="qcow2"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
@ -112,8 +112,8 @@
<preferences profiles="Cloud-Base-Generic" arch="ppc64le">
<type image="oem" format="qcow2"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid" target_blocksize="4096"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" firmware="ofw"
rootfs_label="fedora"
>
@ -132,12 +132,12 @@
<preferences profiles="Cloud-Base-Generic" arch="s390x">
<type image="oem" format="qcow2"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 dasd_mod.dasd=ipldev"
devicepersistency="by-uuid" target_blocksize="4096"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4"
rootfs_label="fedora"
>
<bootloader name="zipl" targettype="CDL" timeout="1"/>
<bootloader name="zipl" timeout="1"/>
<size unit="G">5</size>
<systemdisk>
<volume name="@root=root"/>
@ -149,11 +149,12 @@
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-UEFI-UKI" arch="x86_64,aarch64">
<preferences profiles="Cloud-Base-UEFI-UKI" arch="x86_64,aarch64,riscv64">
<type image="oem" format="qcow2"
firmware="uefi" efipartsize="1000"
bootpartition="false"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="true"
kernelcmdline="systemd.firstboot=off"
devicepersistency="by-uuid"
rootfs_label="fedora"
initrd_system="none"
@ -184,6 +185,7 @@
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<ignore name="plymouth"/>
<package name="btrfs-progs"/>
<package name="python3-dnf-plugin-tracer"/>
<package name="glibc-langpack-en"/>
</packages>
@ -197,11 +199,18 @@
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<ignore name="plymouth"/>
<package name="btrfs-progs"/>
<package name="python3-dnf-plugin-tracer"/>
<package name="glibc-langpack-en"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-AmazonEC2">
<package name="amazon-ec2-utils"/>
<package name="awscli2"/>
<package name="ec2-instance-connect"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-Azure">
<package name="WALinuxAgent"/>
<package name="azure-vm-utils"/>
<package name="kernel-modules"/>
<package name="hyperv-daemons"/>
</packages>

View File

@ -8,13 +8,16 @@
<profile name="Container-Base-Generic" description="Generic Base Container Image">
<requires profile="ContainerCore"/>
</profile>
<profile name="Container-Base-Generic-Init" description="Generic Init Base Container Image">
<requires profile="ContainerCore"/>
</profile>
<profile name="Container-Toolbox" description="Toolbox Container Image"/>
</profiles>
<preferences profiles="Container-Base-Generic">
<type image="oci">
<containerconfig
name="fedora"
tag="rawhide"
tag="41"
maintainer="Fedora Project Contributors &lt;devel@lists.fedoraproject.org&gt;"
>
<subcommand execute="/bin/bash"/>
@ -23,13 +26,16 @@
<label name="org.opencontainers.image.url" value="https://fedoraproject.org/"/>
<label name="org.opencontainers.image.license" value="MIT"/>
<label name="org.opencontainers.image.name" value="fedora"/>
<label name="org.opencontainers.image.version" value="rawhide"/>
<label name="org.opencontainers.image.version" value="41"/>
<!-- Legacy attributes for backward compatibility -->
<label name="vendor" value="Fedora Project"/>
<label name="license" value="MIT"/>
<label name="name" value="fedora"/>
<label name="version" value="rawhide"/>
<label name="version" value="41"/>
</labels>
<environment>
<env name="container" value="oci"/>
</environment>
</containerconfig>
</type>
<timezone>Etc/UTC</timezone>
@ -41,7 +47,7 @@
<type image="oci">
<containerconfig
name="fedora-minimal"
tag="rawhide"
tag="41"
maintainer="Fedora Project Contributors &lt;devel@lists.fedoraproject.org&gt;"
>
<subcommand execute="/bin/bash"/>
@ -50,13 +56,44 @@
<label name="org.opencontainers.image.url" value="https://fedoraproject.org/"/>
<label name="org.opencontainers.image.license" value="MIT"/>
<label name="org.opencontainers.image.name" value="fedora-minimal"/>
<label name="org.opencontainers.image.version" value="rawhide"/>
<label name="org.opencontainers.image.version" value="41"/>
<!-- Legacy attributes for backward compatibility -->
<label name="vendor" value="Fedora Project"/>
<label name="license" value="MIT"/>
<label name="name" value="fedora-minimal"/>
<label name="version" value="rawhide"/>
<label name="version" value="41"/>
</labels>
<environment>
<env name="container" value="oci"/>
</environment>
</containerconfig>
</type>
<timezone>Etc/UTC</timezone>
<locale>en_US</locale>
<rpm-locale-filtering>true</rpm-locale-filtering>
<rpm-excludedocs>true</rpm-excludedocs>
</preferences>
<preferences profiles="Container-Base-Generic-Init">
<type image="oci">
<containerconfig
name="fedora-init"
tag="41"
maintainer="Fedora Project Contributors &lt;devel@lists.fedoraproject.org&gt;"
>
<subcommand execute="/sbin/init"/>
<labels>
<label name="org.opencontainers.image.vendor" value="Fedora Project"/>
<label name="org.opencontainers.image.url" value="https://fedoraproject.org/"/>
<label name="org.opencontainers.image.license" value="MIT"/>
<label name="org.opencontainers.image.name" value="fedora-init"/>
<label name="org.opencontainers.image.version" value="41"/>
<!-- Legacy attributes for backward compatibility -->
<label name="vendor" value="Fedora Project"/>
<label name="license" value="MIT"/>
<label name="name" value="fedora-init"/>
<label name="version" value="41"/>
</labels>
<stopsignal>SIGRTMIN+3</stopsignal>
</containerconfig>
</type>
<timezone>Etc/UTC</timezone>
@ -68,7 +105,7 @@
<type image="oci">
<containerconfig
name="fedora-toolbox"
tag="rawhide"
tag="41"
maintainer="Fedora Project Contributors &lt;devel@lists.fedoraproject.org&gt;"
>
<subcommand execute="/bin/bash"/>
@ -77,14 +114,17 @@
<label name="org.opencontainers.image.url" value="https://fedoraproject.org/"/>
<label name="org.opencontainers.image.license" value="MIT"/>
<label name="org.opencontainers.image.name" value="fedora-toolbox"/>
<label name="org.opencontainers.image.version" value="rawhide"/>
<label name="org.opencontainers.image.version" value="41"/>
<label name="com.github.containers.toolbox" value="true"/>
<!-- Legacy attributes for backward compatibility -->
<label name="vendor" value="Fedora Project"/>
<label name="license" value="MIT"/>
<label name="name" value="fedora-toolbox"/>
<label name="version" value="rawhide"/>
<label name="version" value="41"/>
</labels>
<environment>
<env name="container" value="oci"/>
</environment>
</containerconfig>
</type>
<timezone>Etc/UTC</timezone>
@ -121,10 +161,14 @@
<ignore name="glibc-langpack-en"/>
<ignore name="langpacks-en"/>
<ignore name="tzdata"/>
<package name="microdnf"/>
<package name="dnf5"/>
<package name="glibc-minimal-langpack"/>
<package name="systemd-standalone-sysusers"/>
</packages>
<packages type="bootstrap" profiles="Container-Base-Generic">
<package name="systemd-standalone-sysusers"/>
</packages>
<packages type="bootstrap" profiles="Container-Base-Generic,Container-Base-Generic-Init">
<ignore name="glibc-langpack-en"/>
<ignore name="langpacks-en"/>
<package name="bzip2"/>
@ -133,13 +177,18 @@
<package name="rootfiles"/>
<package name="tar"/> <!-- https://bugzilla.redhat.com/show_bug.cgi?id=1409920 -->
<package name="vim-minimal"/>
<package name="dnf"/>
<package name="dnf-yum"/> <!-- https://pagure.io/fesco/issue/1312#comment-30991 -->
<package name="dnf5"/>
<package name="dnf5-plugins"/>
<package name="glibc-minimal-langpack"/>
<package name="tzdata"/>
<package name="xz"/>
<package name="zstd"/>
</packages>
<packages type="image" profiles="Container-Base-Generic-Init">
<package name="glibc-langpack-en"/>
<package name="kbd"/>
<package name="systemd"/>
</packages>
<packages type="bootstrap" patternType="plusRecommended" profiles="Container-Toolbox">
<ignore name="dosfstools"/>
<ignore name="e2fsprogs"/>
@ -169,9 +218,8 @@
<package name="curl"/>
<package name="default-editor"/>
<package name="diffutils"/>
<package name="dnf"/>
<package name="dnf-yum"/> <!-- https://pagure.io/fesco/issue/1312#comment-30991 -->
<package name="dnf-plugins-core"/>
<package name="dnf5"/>
<package name="dnf5-plugins"/>
<package name="fedora-release-toolbx"/>
<package name="file"/>
<package name="findutils"/>
@ -198,7 +246,7 @@
<package name="man-db"/>
<package name="man-pages"/>
<package name="mesa-dri-drivers"/>
<package name="mesa-va-drivers" arch="aarch64,ppc64le,x86_64"/> <!-- doesn't exist in s390x -->
<package name="mesa-va-drivers" arch="aarch64,ppc64le,x86_64,riscv64"/> <!-- doesn't exist in s390x -->
<package name="mesa-vulkan-drivers"/>
<package name="mtr"/>
<package name="nss-mdns"/>

View File

@ -58,7 +58,6 @@
<user password="$1$wYJUgpM5$RXMMeASDc035eX.NbYWFl0" home="/root" name="root" groups="root"/>
</users>
<packages type="image" patternType="plusRecommended" profiles="VagrantCore">
<package name="dnf-yum"/>
<package name="rsync"/>
<package name="fuse-sshfs"/>
<package name="gdisk"/>

15
teams/cosmic.xml Normal file
View File

@ -0,0 +1,15 @@
<image>
<profiles>
<profile name="COSMIC-Live" description="COSMIC Spin Live DVD">
<requires profile="COSMIC-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="COSMIC-Disk" description="COSMIC Spin Install Disk">
<requires profile="COSMIC-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="COSMIC-Live,COSMIC-Disk">
<package name="fedora-release-cosmic"/>
</packages>
</image>

197
teams/eln/cloud.xml Normal file
View File

@ -0,0 +1,197 @@
<image>
<profiles>
<profile name="CloudCore" description="Cloud spin core packages">
<requires profile="BootCore"/>
</profile>
<profile name="CloudCoreUKI" description="Cloud spin core packages for UKI">
<requires profile="BootCoreUKI"/>
</profile>
<profile name="Cloud-Base-Azure" description="Azure Base Guest Image">
<requires profile="CloudCore"/>
</profile>
<profile name="Cloud-Base-AmazonEC2" description="Amazon EC2 HVM Base Guest Image">
<requires profile="CloudCore"/>
</profile>
<profile name="Cloud-Base-GCE" description="GCE Base Guest Image">
<requires profile="CloudCore"/>
</profile>
<profile name="Cloud-Base-Generic" description="Generic Base Guest Image">
<requires profile="CloudCore"/>
</profile>
<profile name="Cloud-Base-UEFI-UKI" description="UEFI Base Guest Image using UKIs">
<requires profile="CloudCoreUKI"/>
</profile>
<profile name="Cloud-Base-OpenStack" description="OpenStack Base Guest Image">
<requires profile="Cloud-Base-Generic"/>
</profile>
<profile name="Cloud-Base-Oracle" description="Oracle Cloud Base Guest Image">
<requires profile="Cloud-Base-Generic"/>
</profile>
</profiles>
<preferences profiles="Cloud-Base-Azure" arch="x86_64,aarch64">
<type image="oem" format="vhd-fixed" formatoptions="force_size"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-AmazonEC2" arch="x86_64,aarch64">
<type image="oem"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" timeout="0"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-GCE" arch="x86_64,aarch64">
<type image="oem" format="gce"
filesystem="xfs"
kernelcmdline="no_timer_check console=ttyS0,38400n8d systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" timeout="0"/>
<!-- GCP engineers have told us the disk images have bad performance if they are anything less than 10G -->
<size unit="G">10</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-Generic" arch="x86_64,aarch64">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-Generic" arch="ppc64le">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" firmware="ofw"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-Generic" arch="s390x">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8 systemd.firstboot=off"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs"
rootfs_label="fedora"
>
<bootloader name="zipl" timeout="1"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="Cloud-Base-UEFI-UKI" arch="x86_64,aarch64">
<type image="oem" format="qcow2"
firmware="uefi" efipartsize="1000"
bootpartition="false"
filesystem="xfs"
kernelcmdline="systemd.firstboot=off"
devicepersistency="by-uuid"
rootfs_label="fedora"
initrd_system="none"
editbootconfig="uki-editbootconfig.sh"
>
<bootloader name="custom"/>
<size unit="G">5</size>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<packages type="bootstrap" patternType="plusRecommended" profiles="CloudCore,CloudCoreUKI">
<package name="fedora-release-eln"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="CloudCore">
<namedCollection name="cloud-server-environment"/>
<ignore name="dracut-config-rescue"/>
<ignore name="firewalld"/>
<ignore name="fwupd"/>
<ignore name="kernel"/>
<ignore name="*-firmware"/>
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<ignore name="plymouth"/>
<package name="glibc-langpack-en"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="CloudCoreUKI">
<namedCollection name="cloud-server-environment"/>
<ignore name="dracut-config-rescue"/>
<ignore name="firewalld"/>
<ignore name="fwupd"/>
<ignore name="kernel"/>
<ignore name="[a-oq-z]*-firmware"/>
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<ignore name="plymouth"/>
<package name="glibc-langpack-en"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-AmazonEC2">
<package name="awscli2"/>
<!-- These packages aren't available in Fedora ELN
<package name="amazon-ec2-utils"/>
<package name="ec2-instance-connect"/>
-->
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-Azure">
<package name="WALinuxAgent"/>
<package name="kernel-modules"/>
<package name="hyperv-daemons"/>
</packages>
<!-- These packages aren't available in Fedora ELN
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-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-Base-Generic">
<package name="qemu-guest-agent"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Cloud-Base-UEFI-UKI">
<package name="qemu-guest-agent"/>
</packages>
<!-- We don't have the Google support tools above, so we need cloud-init
<packages type="uninstall" profiles="Cloud-Base-GCE">
<package name="cloud-init"/>
</packages>
-->
</image>

80
teams/eln/container.xml Normal file
View File

@ -0,0 +1,80 @@
<image>
<profiles>
<profile name="ContainerCore" description="Container core packages">
</profile>
<profile name="Container-Base-Generic" description="Generic Base Container Image">
<requires profile="ContainerCore"/>
</profile>
</profiles>
<preferences profiles="Container-Base-Generic">
<type image="oci">
<containerconfig
name="fedora"
tag="eln"
maintainer="Fedora Project Contributors &lt;devel@lists.fedoraproject.org&gt;"
>
<subcommand execute="/bin/bash"/>
<labels>
<label name="org.opencontainers.image.vendor" value="Fedora Project"/>
<label name="org.opencontainers.image.url" value="https://fedoraproject.org/"/>
<label name="org.opencontainers.image.license" value="MIT"/>
<label name="org.opencontainers.image.name" value="fedora"/>
<label name="org.opencontainers.image.version" value="eln"/>
<!-- Legacy attributes for backward compatibility -->
<label name="vendor" value="Fedora Project"/>
<label name="license" value="MIT"/>
<label name="name" value="fedora"/>
<label name="version" value="eln"/>
</labels>
<environment>
<env name="container" value="oci"/>
</environment>
</containerconfig>
</type>
<timezone>Etc/UTC</timezone>
<locale>en_US</locale>
<rpm-locale-filtering>true</rpm-locale-filtering>
<rpm-excludedocs>true</rpm-excludedocs>
</preferences>
<packages type="bootstrap" profiles="ContainerCore">
<ignore name="dosfstools"/>
<ignore name="e2fsprogs"/>
<ignore name="fuse-libs"/>
<ignore name="gnupg2-smime"/>
<ignore name="libss"/>
<ignore name="kernel"/>
<ignore name="*-firmware"/>
<ignore name="geolite2-city"/>
<ignore name="geolite2-country"/>
<ignore name="pinentry"/>
<ignore name="shared-mime-info"/>
<ignore name="pinentry"/>
<ignore name="trousers"/>
<ignore name="xkeyboard-config"/>
<ignore name="grubby"/>
<ignore name="langpacks-en_GB"/>
<ignore name="sssd-client"/>
<package name="fedora-release-eln"/>
<package name="bash"/>
<package name="coreutils"/>
<package name="rpm"/>
<package name="util-linux-core"/>
</packages>
<packages type="bootstrap" profiles="Container-Base-Generic">
<ignore name="glibc-langpack-en"/>
<ignore name="langpacks-en"/>
<package name="bzip2"/>
<package name="gzip"/>
<package name="sudo"/>
<package name="rootfiles"/>
<package name="tar"/>
<package name="vim-minimal"/>
<package name="dnf5"/>
<package name="dnf5-plugins"/>
<package name="glibc-minimal-langpack"/>
<package name="systemd-standalone-sysusers"/>
<package name="tzdata"/>
<package name="xz"/>
<package name="zstd"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="i3-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="i3-Disk" description="i3 Spin Install Disk">
<requires profile="i3-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="i3-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="i3-Live,i3-Disk">
<package name="fedora-release-i3"/>
</packages>
</image>

View File

@ -1,11 +1,29 @@
<image>
<profiles>
<profile name="KDE-Live" description="KDE Plasma Spin Live DVD">
<profile name="KDE-Desktop-Live" description="KDE Plasma Desktop Spin Live DVD">
<requires profile="KDE-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="KDE-Desktop-Disk" description="KDE Plasma Desktop Spin Install Disk">
<requires profile="BootDiskCore"/>
<requires profile="KDE-Desktop"/>
</profile>
<profile name="KDE-Mobile-Live" description="KDE Plasma Mobile Spin Live DVD">
<requires profile="KDE-Mobile"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="KDE-Mobile-Disk" description="KDE Plasma Mobile Spin Install Disk">
<requires profile="BootDiskCore"/>
<requires profile="KDE-Mobile"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="KDE-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="KDE-Desktop-Disk,KDE-Desktop-Live">
<package name="fedora-release-kde"/>
</packages>
<packages type="bootstrap" patternType="plusRecommended" profiles="KDE-Mobile-Disk,KDE-Mobile-Live">
<package name="fedora-release-kde-mobile"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="KDE-Desktop-Disk,KDE-Desktop-Live">
<package name="plasma-welcome-fedora"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="LXDE-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="LXDE-Disk" description="LXDE Spin Install Disk">
<requires profile="LXDE-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="LXDE-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="LXDE-Live,LXDE-Disk">
<package name="fedora-release-lxde"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="LXQt-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="LXQt-Disk" description="LXQt Spin Install Disk">
<requires profile="LXQt-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="LXQt-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="LXQt-Live,LXQt-Disk">
<package name="fedora-release-lxqt"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="MATE-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="MATE_Compiz-Disk" description="MATE-Compiz Spin Install Disk">
<requires profile="MATE-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="MATE_Compiz-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="MATE_Compiz-Live,MATE_Compiz-Disk">
<package name="fedora-release-matecompiz"/>
</packages>
</image>

15
teams/miraclewm.xml Normal file
View File

@ -0,0 +1,15 @@
<image>
<profiles>
<profile name="MiracleWM-Live" description="MiracleWM Spin Live DVD">
<requires profile="MiracleWM-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="MiracleWM-Disk" description="MiracleWM Spin Install Disk">
<requires profile="BootDiskCore"/>
<requires profile="MiracleWM-Desktop"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="MiracleWM-Live,MiracleWM-Disk">
<package name="fedora-release-miraclewm"/>
</packages>
</image>

96
teams/python.xml Normal file
View File

@ -0,0 +1,96 @@
<image>
<profiles>
<profile name="PythonClassroomCore" description="Core packages for Python Classroom">
</profile>
<profile name="PythonClassroomGNOMEDesktop" description="Desktop packages for Python Classroom">
<requires profile="PythonClassroomCore"/>
<requires profile="DesktopCommon"/>
</profile>
<profile name="Python-Classroom-Live" description="Python Classroom Lab Live DVD">
<requires profile="PythonClassroomGNOMEDesktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Python-Classroom-Disk" description="Python Classroom Lab Install Disk">
<requires profile="PythonClassroomGNOMEDesktop"/>
<requires profile="BootDiskCore"/>
</profile>
<profile name="Python-Classroom-Vagrant-libvirt" description="Python Classroom Lab Vagrant box for libvirt">
<requires profile="PythonClassroomCore"/>
<requires profile="Cloud-Base-Vagrant-libvirt"/>
</profile>
<profile name="Python-Classroom-Vagrant-VirtualBox" description="Python Classroom Lab Vagrant box for VirtualBox">
<requires profile="PythonClassroomCore"/>
<requires profile="Cloud-Base-Vagrant-VirtualBox"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="PythonClassroomCore">
<package name="fedora-release"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="PythonClassroomCore">
<namedCollection name="core"/>
<namedCollection name="standard"/>
<namedCollection name="python-classroom"/>
<namedCollection name="python-science"/>
<package name="langpacks-en"/>
<package name="nano"/>
<package name="openssh-clients"/>
<package name="vim-enhanced"/>
<package name="wget2-wget"/>
<!-- No abrt -->
<ignore name="abrt*"/>
<!-- No legacy crontab -->
<ignore name="cron*"/>
<!-- Block unwanted Pythons from being installed with tox -->
<ignore name="python2*"/>
<ignore name="pypy"/>
<ignore name="pypy2*"/>
<!-- Block unnecessary extra Pythons from being installed with tox -->
<ignore name="python3.8"/>
<ignore name="python3.9"/>
<ignore name="pypy3.9"/>
<ignore name="python3.10"/>
<ignore name="python3.11"/>
<ignore name="python3.12"/>
<!-- Remove LaTeX stack (rhbz#1862450, rhbz#1902354) -->
<ignore name="texlive-base"/>
<ignore name="texlive-latex"/>
<!-- Remove gdal and proj to save ~600MB of space -->
<!-- Cf. https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/LGC5IMMHZ4DM7GQNPAFC6GU362PPTN7O/ -->
<ignore name="python3-gdal"/>
<ignore name="proj"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="PythonClassroomGNOMEDesktop">
<namedCollection name="base-graphical"/>
<namedCollection name="desktop-accessibility"/>
<namedCollection name="firefox"/>
<namedCollection name="gnome-desktop"/>
<namedCollection name="guest-desktop-agents"/>
<namedCollection name="networkmanager-submodules"/>
<package name="emacs"/>
<package name="python3-matplotlib-tk"/>
<package name="python3-pillow-tk"/>
<package name="desktop-backgrounds-gnome"/>
<!-- No printing -->
<ignore name="system-config-printer*"/>
<!-- No user docs -->
<ignore name="gnome-user-docs"/>
<!-- No inkscape -->
<ignore name="inkscape*"/>
<ignore name="GraphicsMagick*"/>
<ignore name="ImageMagick*"/>
<!-- Block extra GNOME applications -->
<ignore name="gnome-boxes"/>
<ignore name="gnome-calendar"/>
<ignore name="gnome-clocks"/>
<ignore name="gnome-contacts"/>
<ignore name="gnome-disk-utility"/>
<ignore name="gnome-documents"/>
<ignore name="gnome-font-viewer"/>
<ignore name="gnome-maps"/>
<ignore name="gnome-photos"/>
<ignore name="gnome-weather"/>
<ignore name="grilo-plugins"/>
<ignore name="totem"/>
<ignore name="totem-nautilus"/>
</packages>
</image>

168
teams/scitech.xml Normal file
View File

@ -0,0 +1,168 @@
<image>
<profiles>
<profile name="ScientificCore" description="Core packages for Scientific">
</profile>
<profile name="ScientificDesktop" description="Desktop packages for Scientific">
<requires profile="ScientificCore"/>
<requires profile="KDE-Desktop"/>
</profile>
<profile name="Scientific_KDE-Live" description="Scientific KDE Lab Live DVD">
<requires profile="ScientificDesktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Scientific_KDE-Disk" description="Scientific KDE Lab Install Disk">
<requires profile="ScientificDesktop"/>
<requires profile="BootDiskCore"/>
</profile>
<profile name="Scientific-Vagrant-libvirt" description="Scientific Lab Vagrant box for libvirt">
<requires profile="ScientificCore"/>
<requires profile="VagrantCore"/>
</profile>
<profile name="Scientific-Vagrant-VirtualBox" description="Scientific Lab Vagrant box for VirtualBox">
<requires profile="ScientificCore"/>
<requires profile="VagrantCore"/>
</profile>
</profiles>
<preferences profiles="Scientific-Vagrant-libvirt" arch="x86_64,aarch64">
<type image="oem" format="vagrant"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="1"/>
<size unit="G">30</size>
<vagrantconfig provider="libvirt" virtualsize="30"/>
<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="Scientific-Vagrant-VirtualBox" arch="x86_64">
<type image="oem" format="vagrant"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="compress=zstd:1"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="1"/>
<size unit="G">30</size>
<vagrantconfig provider="virtualbox" virtualbox_guest_additions_present="true" virtualsize="30"/>
<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="bootstrap" patternType="plusRecommended" profiles="ScientificDesktop">
<package name="fedora-release-kde"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="ScientificCore">
<namedCollection name="core"/>
<namedCollection name="standard"/>
<namedCollection name="engineering-and-scientific"/>
<!-- Install the mandatory packages from dev-tools and dev-libs -->
<namedCollection name="development-tools"/>
<namedCollection name="development-libs"/>
<namedCollection name="c-development"/>
<namedCollection name="rpm-development-tools"/>
<package name="langpacks-en"/>
<!-- Other C++ libraries not included in groups -->
<package name="blitz-devel"/>
<package name="armadillo-devel"/>
<!-- Misc related utilities -->
<package name="ddd"/>
<package name="valgrind"/>
<!-- Python 3 and tools/libraries not included from the groups -->
<package name="python3"/>
<package name="python3-tools"/>
<package name="python3-matplotlib"/>
<package name="python3-scipy"/>
<package name="python3-numpy"/>
<package name="python3-ipython"/>
<package name="python3-ipython-console"/>
<package name="python3-ipython-notebook"/>
<package name="python3-sympy"/>
<package name="python3-networkx"/>
<package name="python3-pandas"/>
<!-- Include Java development tools -->
<namedCollection name="java-development"/>
<package name="apache-commons-math"/>
<!-- fortran compiler -->
<package name="gcc-gfortran"/>
<!-- Julia -->
<package name="julia" arch="x86_64"/>
<package name="julia-doc" arch="x86_64"/>
<package name="julia-devel" arch="x86_64"/>
<!-- <package name="python3-spyder"/> --> <!-- FTI with Python 3.12, see rhbz#2220598 -->
<package name="python3-spyder-kernels"/>
<!-- writing & publishing -->
<package name="emacs-nw"/>
<package name="emacs-color-theme"/>
<package name="vim-enhanced"/>
<!-- Presentation, Bibliography & Document arrangement tools -->
<package name="BibTool"/>
<package name="pdfshuffler"/>
<!-- Parallel/Distributed computing libraries/tools -->
<package name="openmpi"/>
<package name="openmpi-devel"/>
<package name="valgrind-openmpi"/>
<package name="libgomp"/>
<package name="python3-mpi4py-openmpi"/>
<package name="python3-mpi4py-mpich"/>
<!-- Version control - A GUI for each as well -->
<package name="subversion"/>
<package name="git"/>
<package name="mercurial"/>
<!-- Deal with conflict between openmpi and emacs -->
<!-- Cf. https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/3HFNRNDK52FP3O2IEX5MUBQEFS56U5PZ/ -->
<package name="libotf"/>
<package name="root"/>
<!-- Misc tools -->
<package name="screen"/>
<package name="tmux"/>
<package name="rlwrap"/>
<package name="fig2ps"/>
<package name="hevea"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="ScientificDesktop">
<namedCollection name="firefox"/>
<!-- Matplotlib backend -->
<package name="python3-matplotlib-qt6"/>
<!-- GUI for R -->
<package name="rkward"/>
<!-- writing & publishing -->
<package name="emacs"/>
<package name="scribus"/>
<package name="lyx"/>
<package name="kile"/>
<!-- Version control GUIs -->
<package name="rapidsvn"/>
<package name="git-gui"/>
<package name="mercurial-hgk"/>
<package name="backintime-qt"/>
<package name="root-gui-fitpanel"/>
<!-- Drawing, picture viewing tools, visualization tools -->
<package name="dia"/>
<package name="inkscape"/>
<package name="xzgv"/>
<package name="gimp"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Scientific-Vagrant-libvirt">
<package name="qemu-guest-agent"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Scientific-Vagrant-VirtualBox">
<package name="virtualbox-guest-additions"/>
</packages>
</image>

View File

@ -0,0 +1,56 @@
<image>
<profiles>
<profile name="ServerCore" description="Server Edition core packages">
<requires profile="BaseCommon"/>
<requires profile="BootCore"/>
</profile>
<profile name="ServerDisk" description="Server Edition disk configuration">
<requires profile="ServerCore"/>
</profile>
<profile name="Server-Host-PremierP550" description="SiFive HiFive Premier P550 Server Host Image">
<requires profile="ServerDisk"/>
</profile>
</profiles>
<preferences profiles="ServerDisk" arch="riscv64">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="earlycon console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="3" timeout_style="countdown"/>
<size unit="G">10</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="bootstrap" patternType="plusRecommended" profiles="ServerCore">
<package name="fedora-release-server"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="ServerCore">
<namedCollection name="server-product-environment"/>
<namedCollection name="domain-client"/>
<namedCollection name="arm-tools" arch="aarch64"/>
<ignore name="initial-setup-gui"/>
<ignore name="plymouth"/>
<package name="btrfs-progs" arch="riscv64"/>
<package name="glibc-all-langpacks"/>
<package name="haveged" arch="riscv64"/>
<package name="initial-setup"/>
<package name="lvm2"/>
<package name="xfsprogs"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Server-Host-PremierP550">
<namedCollection name="container-management"/>
<package name="dracut-config-rescue"/>
<package name="kernel"/>
<package name="linux-firmware"/>
</packages>
</image>

212
teams/server/server.xml Normal file
View File

@ -0,0 +1,212 @@
<image>
<profiles>
<profile name="ServerCore" description="Server Edition core packages">
<requires profile="BaseCommon"/>
<requires profile="BootCore"/>
</profile>
<profile name="ServerVMDisk" description="Server Edition VM disk configuration">
<requires profile="ServerCore"/>
</profile>
<profile name="ServerDisk" description="Server Edition disk configuration">
<requires profile="ServerCore"/>
</profile>
<profile name="Server-Guest-Generic" description="Generic Server Guest Image">
<requires profile="ServerVMDisk"/>
</profile>
<profile name="Server-Host-Generic" description="Generic Server Host Image">
<requires profile="ServerDisk"/>
</profile>
</profiles>
<preferences profiles="ServerVMDisk" arch="x86_64,aarch64">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerVMDisk" arch="ppc64le">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" firmware="ofw"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerVMDisk" arch="s390x">
<type image="oem" format="qcow2"
filesystem="xfs"
kernelcmdline="no_timer_check console=tty1 console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs"
rootfs_label="fedora"
>
<bootloader name="zipl" timeout="1"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerVMDisk" arch="riscv64">
<type image="oem" format="qcow2"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="earlycon console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="0"/>
<size unit="G">10</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="ServerDisk" arch="x86_64">
<type image="oem"
filesystem="xfs"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="3" timeout_style="menu"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerDisk" arch="aarch64">
<type image="oem"
filesystem="xfs"
devicepersistency="by-uuid" force_mbr="true"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="3" timeout_style="menu"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerDisk" arch="ppc64le">
<type image="oem"
filesystem="xfs"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs" firmware="ofw"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="3" timeout_style="menu"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerDisk" arch="s390x">
<type image="oem"
filesystem="xfs"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="xfs"
rootfs_label="fedora"
>
<bootloader name="zipl" timeout="3"/>
<size unit="G">10</size>
<systemdisk>
<volume name="@root"/>
</systemdisk>
<oemconfig>
<oem-resize>false</oem-resize>
</oemconfig>
</type>
</preferences>
<preferences profiles="ServerDisk" arch="riscv64">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="earlycon console=ttyS0,115200n8"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="100" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="3" timeout_style="menu"/>
<size unit="G">10</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="bootstrap" patternType="plusRecommended" profiles="ServerCore">
<package name="fedora-release-server"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="ServerCore">
<namedCollection name="server-product-environment"/>
<namedCollection name="domain-client"/>
<namedCollection name="arm-tools" arch="aarch64"/>
<ignore name="initial-setup-gui"/>
<ignore name="plymouth"/>
<package name="btrfs-progs" arch="riscv64"/>
<package name="glibc-all-langpacks"/>
<package name="haveged" arch="riscv64"/>
<package name="initial-setup"/>
<package name="lvm2"/>
<package name="xfsprogs"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Server-Guest-Generic">
<ignore name="dracut-config-rescue"/>
<ignore name="kernel"/>
<ignore name="*-firmware"/>
<ignore name="smartmontools"/>
<ignore name="smartmontools-selinux"/>
<namedCollection name="guest-agents"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Server-Host-Generic">
<namedCollection name="container-management"/>
<package name="dracut-config-rescue"/>
<package name="kernel"/>
<package name="linux-firmware"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="SoaS-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="SoaS-Disk" description="Sugar on a Stick Install Disk">
<requires profile="SoaS-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="SoaS-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="SoaS-Live,SoaS-Disk">
<package name="fedora-release-soas"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="Sway-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Sway-Disk" description="Sway Spin Install Disk">
<requires profile="Sway-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Sway-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="Sway-Live,Sway-Disk">
<package name="fedora-release-sway"/>
</packages>
</image>

View File

@ -4,8 +4,15 @@
<requires profile="GNOME-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Workstation-Disk" description="Workstation Edition Install Disk">
<requires profile="GNOME-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Workstation-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="Workstation-Live,Workstation-Disk">
<package name="fedora-release-workstation"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="Workstation-Live">
<package name="anaconda-webui"/>
</packages>
</image>

View File

@ -4,8 +4,12 @@
<requires profile="Xfce-Desktop"/>
<requires profile="LiveInstall"/>
</profile>
<profile name="Xfce-Disk" description="Xfce Spin Install Disk">
<requires profile="Xfce-Desktop"/>
<requires profile="BootDiskCore"/>
</profile>
</profiles>
<packages type="bootstrap" patternType="plusRecommended" profiles="Xfce-Live">
<packages type="bootstrap" patternType="plusRecommended" profiles="Xfce-Live,Xfce-Disk">
<package name="fedora-release-xfce"/>
</packages>
</image>

View File

@ -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

View File

@ -0,0 +1,9 @@
summary: Build Minimal disk image
discover:
how: fmf
environment:
image_type: oem
image_profile: Minimal-Disk
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-AmazonEC2
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-Azure
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-GCE
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-Generic
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-UEFI-UKI
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -0,0 +1,9 @@
summary: Build Init Generic base container image
discover:
how: fmf
environment:
image_type: oci
image_profile: Container-Base-Generic-Init
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oci
image_profile: Container-Base-Generic-Minimal
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oci
image_profile: Container-Base-Generic
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oci
image_profile: Container-Toolbox
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -0,0 +1,9 @@
summary: Build KDE Desktop disk image
discover:
how: fmf
environment:
image_type: oem
image_profile: KDE-Desktop-Disk
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -0,0 +1,18 @@
summary: Build KDE Desktop live image
discover:
how: fmf
environment:
image_type: iso
image_profile: KDE-Desktop-Live
kiwi_file: Fedora.kiwi
execute:
how: tmt
provision:
how: artemis
hardware:
cpu:
# Add more CPUs to make mksquashfs faster
processors: ">= 8"
disk:
# Increase disk size for better IO performance
- size: '>=500 GiB'

View File

@ -0,0 +1,9 @@
summary: Build Workstation disk image
discover:
how: fmf
environment:
image_type: oem
image_profile: Workstation-Disk
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -0,0 +1,18 @@
summary: Build Workstation live image
discover:
how: fmf
environment:
image_type: iso
image_profile: Workstation-Live
kiwi_file: Fedora.kiwi
execute:
how: tmt
provision:
how: artemis
hardware:
cpu:
# Add more CPUs to make mksquashfs faster
processors: ">= 8"
disk:
# Increase disk size for better IO performance
- size: '>=500 GiB'

View File

@ -0,0 +1,9 @@
summary: Build Generic guest image
discover:
how: fmf
environment:
image_type: oem
image_profile: Server-Guest-Generic
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -0,0 +1,9 @@
summary: Build Generic host image
discover:
how: fmf
environment:
image_type: oem
image_profile: Server-Host-Generic
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -4,5 +4,6 @@ discover:
environment:
image_type: oem
image_profile: Cloud-Base-Vagrant-libvirt
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -7,5 +7,6 @@ adjust:
environment:
image_type: oem
image_profile: Cloud-Base-Vagrant-VirtualBox
kiwi_file: Fedora.kiwi
execute:
how: tmt

View File

@ -9,6 +9,7 @@ require:
framework: shell
path: /
test: |
./kiwi-build --debug --image-type="$image_type" --image-profile="$image_profile" --kiwi-description-dir="${TMT_TREE}" --output-dir="${TMT_TEST_DATA}"
rm -rf "${TMT_TEST_DATA}/build/image-root"
./kiwi-build --debug --image-type="$image_type" --image-profile="$image_profile" --kiwi-description-dir="${TMT_TREE}" --kiwi-file="$kiwi_file" --output-dir="${TMT_TEST_DATA}" --image-release="$(date --utc +'%Y%m%d.%H%M')"
mv ${TMT_TEST_DATA}-build/build/image-root.log ${TMT_TEST_DATA}
rm -rf "${TMT_TEST_DATA}-build"
duration: 60m

View File

@ -3,8 +3,9 @@ echo "###" "$0" "$@"
# set arch-specific variables
case "$(uname -m)" in
aarch64) arch="aa64"; ARCH="AA64";;
x86_64) arch="x64"; ARCH="X64";;
aarch64) arch="aa64"; ARCH="AA64";;
riscv64) arch="riscv64"; ARCH="RISCV64";;
x86_64) arch="x64"; ARCH="X64";;
esac
# figure where shim.efi and BOOT.CSV are located