Compare commits

...

55 Commits

Author SHA1 Message Date
a6c751a7e6
Add f41-p550 riscv64 repo
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-25 10:23:18 +02:00
e688663235
Fix typo
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-17 13:36:16 +02:00
48be60f4b2
Do not setup containers on non-RISCVServer image
Same as in previous commit. This showed up while building default cloud
image. We need a better way to solve this later on.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-04 13:24:31 +02:00
5234af45ee
tmptfs and haveged bits are for HW only
These changes are only needed on physical hardware there we don't have
enough memory and potentially RNG.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-04 13:12:52 +02:00
f37c684e84
Fix another repo link
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-02 15:06:04 +02:00
fcd4b7670c
Fix repo location
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-12-02 15:04:03 +02:00
886e78943e
Remove change and use core.xmk symlink
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-11-28 16:34:12 +02:00
de1a80f184
Initial draft for riscv64 (F41)
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
2024-11-28 16:31:59 +02:00
Adam Williamson
d01a6e9612 Fix a line ordering error in lxde.xml
Signed-off-by: Adam Williamson <awilliam@redhat.com>
(cherry picked from commit 4943dc58a8c6d42a7219731b7c75963183753e22)
2024-11-23 18:04:20 -05:00
Neal Gompa
ed3032e4e6 scripts/fedora-live-iso-label-generator: Add Workstation->WS mapping
This ensures that live media produced for Workstation Edition has a
valid volume ID.

(cherry picked from commit 21a2d09ca27e67dde8a546879e603153ec2c92a8)
2024-11-23 17:08:11 -05:00
Neal Gompa
b63dcbd806 scripts/fedora-live-iso-label-generator: Account for unknown profiles
This way it does not fail and produces something that makes sense.

(cherry picked from commit b1359b9f68513a1aada447c3f419d056fc206555)
2024-11-23 17:08:11 -05:00
Neal Gompa
18ae9533f6 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.

(cherry picked from commit 6816c7d501b80cf886560e716a2435399ba04150)
2024-11-23 16:45:11 -05:00
Neal Gompa
b25a6440f9 tmt: Purge work area contents to free up space on archiving
We only need to preserve the log file anyway.

(cherry picked from commit c5971107d5ac03129a6e7480aef79bfa8d57c2f3)
2024-11-23 15:44:35 -05:00
Miroslav Vadkerti
87740c8234 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>
(cherry picked from commit 067338f7db3ca39a7ba5677c4d8fea33f827e758)
2024-11-23 15:22:43 -05:00
Neal Gompa
35ef7342b1 components/liveinstall: Use plain squashfs instead of ext4-in-squashfs
It results in higher compression ratios.

(cherry picked from commit 5486849837974ffc941b226269ae4025bb2b5ff3)
2024-11-23 15:07:38 -05:00
Neal Gompa
8e214f7b8b components/desktops/common: Ensure Fedora Media Writer is installed
We want this on all deliverables.

(cherry picked from commit 58210badb5a83d11f9fe088f20c913981d3013f9)
2024-11-23 12:58:29 -05:00
Neal Gompa
f85dc42331 components/liveinstall: Exclude uncommon and unneeded storage tools
This saves some space and brings us closer to the old Lorax-based
live media.

(cherry picked from commit 93220f3c232fdddc4abf2ff058f2175fbbf874a8)
2024-11-23 12:58:29 -05:00
Neal Gompa
ffdf71cfe7 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.

(cherry picked from commit cc9d69ca35c866b570392e91c592471ee0decb55)
2024-11-23 12:58:29 -05:00
Neal Gompa
05215885c4 components/desktops/kde: Install KDE PIM
This was always supposed to be present, but was somehow missed.

(cherry picked from commit d469b72759939548b6a06ed1788d10eb0fe11ba2)
2024-11-23 12:58:29 -05:00
Neal Gompa
0d618398aa 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.

(cherry picked from commit a634dbdc8042d67ea6df29d0935fd5611d8d286c)
2024-11-17 17:25:15 -05:00
Neal Gompa
ae610b2441 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.

(cherry picked from commit 2c5cf67014f3c755c2f1b42794f804388a64e35c)
2024-11-16 22:34:31 -05:00
Timothée Ravier
54592ad455 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 17:04:10 +02:00
Neal Gompa
8caf9d87f8 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-05 02:19:36 -04:00
Troy Dawson
17a1dca46c 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-29 23:44:32 -04:00
Neal Gompa
b1d905c6ea 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:12:31 -04:00
Neal Gompa
e11b7102d1 repositories: Fix formatting of non-rawhide repo XML
Somehow the updates repo was using spaces instead of tabs for
indentation.
2024-08-29 04:12:31 -04:00
Neal Gompa
8f20ace625 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:03:50 -04:00
Neal Gompa
bc0235a07c components/liveinstall: Enable mediacheck for live ISOs
This brings us to full parity with official Fedora ISOs produced
by Lorax.
2024-08-27 15:58:55 -04:00
Neal Gompa
9cc3ccd1d9 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 09:12:40 -04:00
Adam Williamson
3a2e2397f3 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:33:23 -07:00
Neal Gompa
11a037fb0f components/liveinstall: Set a default application ID
This way we do not get an incomprehensible value here.
2024-08-22 17:38:30 -04:00
Troy Dawson
a0134369eb 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:24:16 -07:00
Neal Gompa
64e7bc2e03 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:29 -04:00
Neal Gompa
2b2f7ab4d5 Add initial configuration for MiracleWM spin
Reference: https://fedoraproject.org/wiki/Changes/FedoraMiracle
2024-08-22 11:21:47 -04:00
Samyak Jain
8203a65b0c Branch Fedora 41 from Rawhide
Signed-off-by: Samyak Jain <samyak.jn11@gmail.com>
2024-08-12 18:11:18 +05:30
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
54 changed files with 970 additions and 129 deletions

View File

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

55
Fedora.kiwi Normal file
View File

@ -0,0 +1,55 @@
<?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/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/liveinstall.xml"/>
<include from="this://./components/users.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/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/riscv.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,21 @@
## 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` |
| Base Container | `oci` | `Container-Base-Generic-Init` |
| | | `Container-Base-Generic-Minimal` |
| | | `Container-Base-Generic` |
| Toolbox Container | `oci` | `Container-Toolbox` |
| 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` |

View File

@ -2,13 +2,73 @@
<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,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="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 +77,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 +85,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"/>
@ -33,5 +95,18 @@
<packages type="iso" patternType="plusRecommended" profiles="BootCore">
<package name="grub2-efi-aa64-cdboot" arch="aarch64"/>
<package name="grub2-efi-x64-cdboot" arch="x86_64"/>
<package name="grub2-efi-riscv64-cdboot" arch="riscv64"/>
</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>

View File

@ -10,6 +10,7 @@
<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

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

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

@ -4,9 +4,41 @@
<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" 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" 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" 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,10 @@
<!-- 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="RISCVServer">
<!-- The password here does not matter, it will be erased in config.sh -->
<user name="root" groups="root" password="linux" home="/root" pwdformat="plain" />
<user name="riscv" groups="wheel,mock" password="fedora_rocks!" home="/home/riscv" pwdformat="plain" />
</users>
</image>

117
config.sh
View File

@ -46,7 +46,7 @@ fi
#======================================
# Delete & lock the root user password
#--------------------------------------
if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then
if [[ "$kiwi_profiles" == *"Cloud"* ]] || [[ "$kiwi_profiles" == *"Disk"* ]] || [[ "$kiwi_profiles" == *"Live"* ]]; then
passwd -d root
passwd -l root
fi
@ -81,6 +81,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,6 +95,19 @@ if [[ "$kiwi_profiles" == *"Live"* ]]; then
fi
fi
#======================================
# Setup firstboot initial setup
#--------------------------------------
if [[ "$kiwi_profiles" == *"Disk"* ]]; then
if [[ "$kiwi_profiles" != *"GNOME"* ]]; then
## Enable initial-setup
systemctl enable initial-setup.service
## Enable reconfig mode
touch /etc/reconfigSys
fi
fi
#======================================
# Setup default target
#--------------------------------------
@ -107,6 +123,15 @@ 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" == *"Azure"* ]]; then
cat > /etc/ssh/sshd_config.d/50-client-alive-interval.conf << EOF
ClientAliveInterval 120
@ -277,4 +302,94 @@ EOF
/usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
fi
# Find the architecture we are on
installarch=$(uname -m)
# Do custom Fedora/RISCV changes
if [[ $installarch == "riscv64" ]]; then
# Disable default branched fedora repos
# We only want to have Fedora/RISCV Koji repos
sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/{fedora.repo,fedora-updates.repo,fedora-updates-testing.repo,fedora-cisco-openh264.repo}
# Create Fedora/RISCV repos
cat << EOF > /etc/yum.repos.d/fedora-riscv.repo
[fedora-riscv]
name=Fedora RISC-V
baseurl=http://fedora.riscv.rocks/repos-dist/f41-staging/latest/riscv64/
enabled=1
gpgcheck=0
[fedora-riscv-debuginfo]
name=Fedora RISC-V - Debug
baseurl=http://fedora.riscv.rocks/repos-dist/f41-staging/latest/riscv64/debug/
enabled=0
gpgcheck=0
[fedora-riscv-source]
name=Fedora RISC-V - Source
baseurl=http://fedora.riscv.rocks/repos-dist/f41-staging/latest/src/
enabled=0
gpgcheck=0
EOF
# Create Fedora/RISC-V Koji repo (pulling directly from Koji)
cat << EOF > /etc/yum.repos.d/fedora-riscv-koji.repo
[fedora-riscv-koji]
name=Fedora RISC-V Koji
baseurl=http://fedora.riscv.rocks/repos/f41-staging/latest/riscv64/
enabled=0
gpgcheck=0
EOF
# Update login message
cat << EOF | tee /etc/issue /etc/issue.net
Welcome to the Fedora/RISC-V disk image
https://fedoraproject.org/wiki/Architectures/RISC-V
Build date: $(date --utc)
\S
Kernel \r on an \m (\l)
User 'root' with password is 'linux'.
User 'riscv' with password 'fedora_rocks!' in 'wheel'
and 'mock' groups.
For updates and latest information read:
https://fedoraproject.org/wiki/Architectures/RISC-V
Fedora/RISC-V
-------------
Koji: http://fedora.riscv.rocks/koji/
SCM: http://fedora.riscv.rocks:3000/
Distribution rep.: http://fedora.riscv.rocks/repos-dist/
Koji internal rep.: http://fedora.riscv.rocks/repos/
EOF
if [[ "$kiwi_profiles" == *"RISCVServer"* ]]; 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
# Setup toolbox container to use
cat << EOF | tee -a /etc/containers/toolbox.conf
image = "fedora.riscv.rocks:3000/davidlt/fedora-toolbox:41"
EOF
# Add insecure (HTTP) Fedora/RISCV registry (Gitea)
cat << EOF | tee -a /etc/containers/registries.conf
[[registry]]
location="fedora.riscv.rocks:3000"
insecure=true
EOF
# Add Fedora/RISCV registry for search
sed -i -r 's/(unqualified-search-registries = \[")/\1fedora.riscv.rocks:3000", "/' /etc/containers/registries.conf
fi # RISCVServer
fi
exit 0

View File

@ -1,52 +0,0 @@
<?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>Rawhide</version>
<packagemanager>dnf</packagemanager>
<locale>en_US</locale>
<keytable>us</keytable>
<timezone>UTC</timezone>
<release-version>rawhide</release-version>
</preferences>
<include from="this://./repositories/core.xml"/>
<include from="this://./components/boot.xml"/>
<include from="this://./components/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/liveinstall.xml"/>
<include from="this://./components/users.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/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"/>
<packages type="bootstrap">
<package name="basesystem"/>
<package name="filesystem"/>
</packages>
</image>

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" ]

View File

@ -4,9 +4,17 @@
<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">
<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">
<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>
-->
</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/$releasever/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-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">
<source path="http://fedora.riscv.rocks/repos/$releasever/latest/$basearch"/>
</repository>
-->
</image>

View File

@ -1 +1 @@
core-rawhide.xml
core-riscv64.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,107 @@
#!/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",
"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}")

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,9 +199,15 @@
<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="kernel-modules"/>

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,10 @@
<ignore name="glibc-langpack-en"/>
<ignore name="langpacks-en"/>
<ignore name="tzdata"/>
<package name="microdnf"/>
<package name="dnf5"/>
<package name="glibc-minimal-langpack"/>
</packages>
<packages type="bootstrap" profiles="Container-Base-Generic">
<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 +173,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 +214,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 +242,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"/>

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>

62
teams/riscv.xml Normal file
View File

@ -0,0 +1,62 @@
<image>
<profiles>
<profile name="RISCVServer" description="RISC-V Server Disk Image">
<requires profile="BootCore"/>
</profile>
</profiles>
<preferences profiles="RISCVServer">
<type image="oem"
filesystem="btrfs" btrfs_root_is_subvolume="true" btrfs_set_default_volume="false" fsmountoptions="x-systemd.growfs,compress=zstd:1"
kernelcmdline="earlycon"
devicepersistency="by-uuid"
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="500" firmware="uefi"
rootfs_label="fedora"
>
<bootloader name="grub2" console="serial" timeout="5" timeout_style="menu"/>
<size unit="G">5</size>
<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>
<packages type="bootstrap" patternType="plusRecommended" profiles="RISCVServer">
<package name="fedora-release-server"/>
</packages>
<packages type="image" patternType="plusRecommended" profiles="RISCVServer">
<namedCollection name="container-management"/>
<namedCollection name="server-product-environment"/>
<namedCollection name="core"/>
<namedCollection name="standard"/>
<namedCollection name="hardware-support"/>
<namedCollection name="networkmanager-submodules"/>
<package name="chrony"/>
<package name="lm_sensors"/>
<package name="mtd-utils"/>
<package name="bdsync"/>
<package name="htop"/>
<package name="mock"/>
<package name="toolbox"/>
<package name="cloud-utils-growpart"/>
<package name="zstd"/>
<package name="haveged"/>
<package name="pciutils"/>
<package name="nvme-cli"/>
<package name="efibootmgr"/>
<package name="kernel"/>
<package name="kernel-core"/>
<package name="kernel-modules"/>
<package name="kernel-modules-core"/>
<package name="kernel-modules-extra"/>
<package name="kernel-tools"/>
<package name="opensbi-unstable" arch="riscv64"/>
<package name="glibc-langpack-en"/>
<ignore name="dracut-config-rescue"/>
<package name="uboot-images-riscv64" arch="riscv64"/>
<package name="uboot-tools"/>
</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,12 @@
<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>
</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

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

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

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