6b449c657f
We need a VM for both the compose-dry-run and the compose-base tests thus to avoid spawning two VMs in Zuul, let's keep everything in a single job to save money. |
||
---|---|---|
ci | ||
.gitignore | ||
.gitlab-ci.yml | ||
.zuul.yaml | ||
bootupd.yaml | ||
budgie-desktop-pkgs.yaml | ||
cinnamon-desktop-pkgs.yaml | ||
comps-sync-exclude-list.yml | ||
comps-sync.py | ||
deepin-desktop-pkgs.yaml | ||
fedora-41-updates.repo | ||
fedora-41.repo | ||
fedora-base.yaml | ||
fedora-cinnamon.yaml | ||
fedora-common-ostree-pkgs.yaml | ||
fedora-common-ostree.yaml | ||
fedora-deepin.yaml | ||
fedora-kinoite.yaml | ||
fedora-lazurite.yaml | ||
fedora-mate.yaml | ||
fedora-onyx.yaml | ||
fedora-rawhide.repo | ||
fedora-sericea.yaml | ||
fedora-silverblue.yaml | ||
fedora-vauxite.yaml | ||
gnome-desktop-pkgs.yaml | ||
group | ||
justfile | ||
kde-desktop-pkgs.yaml | ||
LICENSE | ||
lxqt-desktop-pkgs.yaml | ||
mate-desktop-pkgs.yaml | ||
passwd | ||
postprocess.sh | ||
README.md | ||
sway-desktop-pkgs.yaml | ||
xfce-desktop-pkgs.yaml |
Manifests for Fedora Atomic Desktops variants
This is the configuration needed to create rpm-ostree based, desktop variants of Fedora, also known as Fedora Atomic Desktops.
This repo is managed by the Fedora Atomic Desktops SIG.
The currently official Fedora Atomic Desktop variants are:
- Fedora Silverblue
- Fedora Kinoite
- Fedora Sway Atomic
- Fedora Budgie Atomic
Reach out to the SIG if you are interested in creating and maintaining a new Atomic variant.
Repository content
Each variant is described in a YAML treefile which is then used by rpm-ostree to compose an ostree commit with the package requested.
In the Fedora infrastructure, composes are made via pungi with the configuration from:
- for Rawhide and branched composes: pagure.io/pungi-fedora
- for stable releases: pagure.io/fedora-infra
Installer ISOs are built using Lorax and additional templates: pagure.io/fedora-lorax-templates.
Website
The sources for the Silverblue, Kinoite, Sway Atomic and Budgie Atomic websites are in gitlab.com/fedora/fedora-websites-3.0.
Issue trackers
Issues common to all Fedora Atomic Desktops are tracked in gitlab.com/fedora/ostree/sig.
Desktop specific issues should be filed in their respective issue trackers:
- Silverblue
- See also the Workstation issue tracker
- Kinoite (KDE SIG)
- Sway Atomic (Sway SIG)
- Budgie Atomic (Budgie SIG)
Documentation
The documentation for Fedora Atomic variants is currently duplicated for each variant at Atomic Desktops.
There are plans to unify the documentation: ostree/sig#10
Documentation sources:
- Silverblue
- Kinoite
- Sway Atomic
- Budgie Atomic (to be determined)
Building
All commonly used commands are listed as recipes in the justfile (see Just).
Example to do a local build of Fedora Silverblue:
# Clone the config
$ git clone https://pagure.io/workstation-ostree-config && cd workstation-ostree-config
# Build the classic ostree commits (currently the default in Fedora)
$ just compose-legacy variant=silverblue
# Or build the new ostree native container (not default yet, still in development)
$ just compose-image variant=silverblue
Testing
Instructions to test the resulting build for classic ostree commits:
- First, serve the ostree repo using an HTTP server. You can use any static file server. For example using https://github.com/TheWaWaR/simple-http-server:
simple-http-server --index --ip 192.168.122.1 --port 8000
- Then, on an already installed Silverblue system:
# Add an ostree remote
sudo ostree remote add testremote http://192.168.122.1:8000/repo --no-gpg-verify
# Pin the currently deployed (and probably working) version
sudo ostree admin pin 0
# List refs from variant remote
sudo ostree remote refs testremote
# Switch to your variant
sudo rpm-ostree rebase testremote:fedora/rawhide/x86_64/silverblue
# Reboot and test!
Instructions to test the resulting build for ostree native containers:
- Push the OCI archive to a container registry
- Rebase to it:
$ rpm-ostree rebase ostree-unverified-image:registry:<oci image>
See URL format for ostree native containers for details.
Branching instructions for new Fedora releases
Follow those steps during the Fedora branch process in Fedora:
Fedora Ansible
Make a PR similar to ansible#1318 in fedora-infra/ansible.
On Rawhide / main branch
sed -i "s/41/42/g" *.repo comps-sync.py
sed -i "s/releasever: 41/releasever: 42/" fedora-common-ostree.yaml
sed -i "s/# - fedora-41/# - fedora-42/" fedora-*.yaml
mv fedora-41.repo fedora-42.repo
mv fedora-41-updates.repo fedora-42-updates.repo
sed -i "s/42/42/g" README.md
sed -i "s/41/42/g" README.md
On the new branch (f41)
rm fedora-rawhide.repo
sed -i "/- fedora-rawhide/d" fedora-*.yaml
sed -i "s/# - fedora-41/- fedora-41/" fedora-*.yaml
sed -i "s/ref: fedora\/rawhide/ref: fedora\/41/" fedora-*.yaml
Historical references
Building and testing instructions:
- https://dustymabe.com/2017/10/05/setting-up-an-atomic-host-build-server/
- https://dustymabe.com/2017/08/08/how-do-we-create-ostree-repos-and-artifacts-in-fedora/
- https://www.projectatomic.io/blog/2017/12/compose-custom-ostree/
- https://www.projectatomic.io/docs/compose-your-own-tree/
For some background, see:
- https://fedoraproject.org/wiki/Workstation/AtomicWorkstation
- https://fedoraproject.org/wiki/Changes/WorkstationOstree
- https://fedoraproject.org/wiki/Changes/Silverblue
- https://fedoraproject.org/wiki/Changes/Fedora_Kinoite
Note also this repo obsoletes https://pagure.io/atomic-ws