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:
Reach out to the SIG if you are interested in creating and maintaining a new Atomic variant.
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:
Installer ISOs are built using Lorax and additional templates: pagure.io/fedora-lorax-templates.
The sources for the Silverblue, Kinoite, Sway Atomic and Budgie Atomic websites are in gitlab.com/fedora/fedora-websites-3.0.
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:
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:
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
Instructions to test the resulting build for classic ostree commits:
simple-http-server --index --ip 192.168.122.1 --port 8000
# 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:
$ rpm-ostree rebase ostree-unverified-image:registry:<oci image>
See URL format for ostree native containers for details.
Fedora Comps are "XML files used by various Fedora tools to perform grouping of packages into functional groups."
Changes to the comps files need to be regularly propagated to this repo so that the Fedora Atomic variants are kept updated with the other desktop variants.
just
If you have the just
command installed, you can run just comps-sync
from a
git
checkout of this repo to update the packages included in the Fedora Atomic
variants. Examine the changes and cross-reference them with PRs made to the
fedora-comps
repo. Create a pull request with the changes and note any PRs from
fedora-comps
in the commit message that are relevant to the changes you have
generated.
comps-sync.py
directlyIf you don't have just
installed or want to run the comps-sync.py
script
directly, you need to have an up-to-date git
checkout of
https://pagure.io/fedora-comps and a git
checkout of this repository.
Using the comps-sync.py
script, provide the updated input XML file to examine
the changes as a dry-run:
$ ./comps-sync.py /path/to/fedora-comps/comps-f42.xml.in
Examine the changes and cross-reference them with PRs made to the fedora-comps
repo. When you are satisfied that the changes are accurate and appear safe,
re-run the script with the --save
option:
$ ./comps-sync.py --save /path/to/fedora-comps/comps-f42.xml.in
Create a pull request with the changes and note any PRs from fedora-comps
in the commit message that are relevant to the changes you have generated.
Follow those steps during the Fedora branch process in Fedora:
Make a PR similar to ansible#1318 in fedora-infra/ansible.
sed -i "s/42/43/g" *.repo comps-sync.py sed -i "s/releasever: 42/releasever: 43/" common.yaml sed -i --follow-symlinks "s/# - fedora-42/# - fedora-43/" *.yaml mv fedora-42.repo fedora-43.repo mv fedora-42-updates.repo fedora-43-updates.repo sed -i "s/43/44/g" README.md sed -i "s/42/43/g" README.md
rm fedora-rawhide.repo sed -i --follow-symlinks "/- fedora-rawhide/d" *.yaml sed -i --follow-symlinks "s/# - fedora-42/- fedora-42/" *.yaml sed -i --follow-symlinks "s/ref: fedora\/rawhide/ref: fedora\/42/" *.yaml
Building and testing instructions:
For some background, see:
Note also this repo obsoletes https://pagure.io/atomic-ws