Go to file
Davide Cavalca e672f281ef Drop the selinux relabel workaround 2024-04-20 16:22:08 +00:00
.fmf Add Zuul CI configuration 2023-12-18 16:16:38 -05:00
components components/boot: Force grubby at bootstrap phase 2024-04-08 22:48:27 -04:00
platforms Install fedora-release-* at bootstrap phase for various images 2024-04-08 22:46:36 -04:00
repositories repositories: Correctly handle repository configuration and signing keys 2023-10-17 13:56:12 -04:00
root/etc Drop the selinux relabel workaround 2024-04-20 16:22:08 +00:00
tmt tmt: Install the kiwi system deps for disk images 2024-04-10 23:21:54 -04:00
.gitignore builder: use a consistent build version to avoid conflicts 2023-07-20 11:42:27 -07:00
.zuul.yaml Add Zuul CI configuration 2023-12-18 16:16:38 -05:00
COPYING Initial commit 2022-09-17 08:16:13 -04:00
README.md README: Add note about CI under Contributing section 2023-12-20 08:40:40 -05:00
builder.py builder.py: Use TMT_TEST_DATA for storing artifacts for CI 2023-12-20 22:11:49 -05:00
config.sh config.sh: Drop unneeded configuration 2024-04-08 22:53:03 -04:00
config.xml Use correct displayname now that Fedora Asahi name is approved 2023-04-24 22:14:23 -04:00
make-asahi-installer-package.sh correct typo 2024-01-08 01:00:12 +01:00
post_bootstrap.sh Touch flag file to disable ESP autodetection 2022-12-23 07:23:14 +00:00
pre_disk_sync.sh Move /etc/X11/xorg.conf.d creation to a later hook 2023-09-30 16:19:26 -07:00

README.md

Fedora Asahi Remix KIWI descriptions

This contains the KIWI descriptions for building the Fedora Asahi Remix.

This repository has multiple branches, one for each supported Fedora release. The default branch is rawhide, and is probably not what you want.

Spin variants

  • Minimal (image type: oem, image profiles: Minimal)
  • Server (image type: oem, image profiles: Server)
  • Workstation GNOME (image type: oem, image profiles: Workstation-GNOME)
  • Workstation KDE (image type: oem, image profiles: Workstation-KDE)

Spin build quickstart

Pre-requisites for non-AArch64 hosts

On non-AArch64 hosts, install qemu-user-static and restart the binfmt service:

$ sudo dnf --assumeyes install qemu-user-static
$ sudo systemctl restart systemd-binfmt.service

Note that building non-aarch64 is untested and likely to expose bugs.

Podman

The instructions below will use the podman command. Only Podman is supported for this workflow.

First, pull down the container of the required environment (Fedora Linux 36 or higher works). We'll use Fedora Linux 37.

$ sudo podman pull registry.fedoraproject.org/fedora:37-aarch64

Assuming you're in the root directory of the Git checkout, set up the container:

$ sudo podman run --privileged --rm -it -v $PWD:/code:z -w /code registry.fedoraproject.org/fedora:37-aarch64 /bin/bash

Once in the container environment, set up your development environment and run the image build (substitute <image_type> and <image_profile> for the appropriate settings):

# Install kiwi
[]$ dnf --assumeyes install kiwi
# Run the image build
[]$ kiwi-ng --type=<image_type> --profile=<image_profile> --color-output system build --description ./ --target-dir ./outdir

For example, to build the --profile=Workstation-GNOME profile:

[]$ kiwi-ng --debug --type=oem --profile=Workstation-GNOME --color-output system build --description ./ --target-dir ./outdir

We also provide a script to generate an Asahi Installer package from the raw image that kiwi produces:

# Install prerequsites
[]$ dnf --assumeyes install fatcat gawk p7zip-plugins rpmdistro-repoquery util-linux zip zstd
# Build the package
[]$ ./make-asahi-installer-package.sh outdir/Fedora-Asahi-Remix.aarch64-0.0.0.raw package.zip

Contributing

Please default to submitting PRs against the rawhide branch. Release branches should generally merge from rawhide and only deviate where absolutely necessary.

This project is tested using the Software Factory Zuul CI instance using the Test Management Tool.

Licensing

This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, under version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.