2021-11-18 16:37:22 +00:00
# Manifests for rpm-ostree based Fedora variants
This is the configuration needed to create
[rpm-ostree ](https://coreos.github.io/rpm-ostree/ ) based variants of Fedora.
Each variant is described in a YAML
[treefile ](https://coreos.github.io/rpm-ostree/treefile/ ) which is then used by
rpm-ostree to compose an ostree commit with the package requested.
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
In the Fedora infrastructure, this happens via
[pungi ](https://pagure.io/pungi-fedora ) with
[Lorax ](https://github.com/weldr/lorax )
([templates](https://pagure.io/fedora-lorax-templates)).
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
## Fedora Silverblue
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
- Website: https://silverblue.fedoraproject.org/ ([sources](https://github.com/fedora-silverblue/silverblue-site))
- Documentation: https://docs.fedoraproject.org/en-US/fedora-silverblue/ ([sources](https://github.com/fedora-silverblue/silverblue-docs))
- Issue tracker: https://github.com/fedora-silverblue/issue-tracker/issues
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
## Fedora Kinoite
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
- Website: https://kinoite.fedoraproject.org/ ([sources](https://pagure.io/fedora-kde/kinoite-site))
- Documentation: https://docs.fedoraproject.org/en-US/fedora-kinoite/ ([sources](https://pagure.io/fedora-kde/kinoite-docs))
- Issue tracker: https://pagure.io/fedora-kde/SIG/issues
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
## Building
2017-12-01 21:44:43 +00:00
2021-11-18 16:37:22 +00:00
Instructions to perform a local build of Silverblue:
2017-08-07 16:41:21 +00:00
2021-11-18 16:37:22 +00:00
```
# Clone the config
git clone https://pagure.io/workstation-ostree-config & & cd workstation-ostree-config
2017-07-05 20:27:17 +00:00
2022-08-19 19:06:08 +00:00
# Prepare directories
mkdir -p repo cache
ostree --repo=repo init --mode=archive
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
# Build (compose) the variant of your choice
sudo rpm-ostree compose tree --repo=repo --cachedir=cache fedora-silverblue.yaml
# Update summary file
ostree summary --repo=repo --update
```
2017-08-30 17:43:54 +00:00
2021-11-18 16:37:22 +00:00
## Testing
2017-08-30 17:43:54 +00:00
2021-11-18 16:37:22 +00:00
Instructions to test the resulting build:
2017-08-30 17:43:54 +00:00
2022-08-19 19:06:08 +00:00
- 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
```
2021-11-18 16:37:22 +00:00
- Then, on an already installed Silverblue system:
2017-07-05 20:27:17 +00:00
```
2021-11-18 16:37:22 +00:00
# Add an ostree remote
2022-08-19 19:06:08 +00:00
sudo ostree remote add testremote http://192.168.122.1:8000/repo --no-gpg-verify
2021-11-18 16:37:22 +00:00
# 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
2022-08-19 19:06:08 +00:00
sudo rpm-ostree rebase testremote:fedora/rawhide/x86_64/silverblue
# Reboot and test!
2017-07-05 20:27:17 +00:00
```
2023-08-09 11:03:02 +00:00
## 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 ](https://pagure.io/fedora-infra/ansible/pull-request/1318 ) in
[fedora-infra/ansible ](https://pagure.io/fedora-infra/ansible ).
### On Rawhide / main branch
```
2024-02-14 10:09:16 +00:00
sed -i "s/41/42/g" *.repo fedora-common-ostree.yaml comps-sync.py
2024-02-14 09:53:51 +00:00
mv fedora-41.repo fedora-42.repo
mv fedora-41-updates.repo fedora-42-updates.repo
sed -i "s/42/42/g" README.md
2023-08-09 11:03:02 +00:00
sed -i "s/41/42/g" README.md
```
2024-02-14 09:53:51 +00:00
### On the new branch (f41)
2023-08-09 11:03:02 +00:00
```
rm fedora-rawhide.repo
sed -i "/- fedora-rawhide/d" *.yaml
2024-02-14 09:53:51 +00:00
sed -i "s/# - fedora-41/- fedora-41/" *.yaml
sed -i "s/ref: fedora\/rawhide/ref: fedora\/41/" *.yaml
2023-08-09 11:03:02 +00:00
```
2021-11-18 16:37:22 +00:00
## Historical references
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
Building and testing instructions:
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
- 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:
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
- < 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 >
2017-07-05 20:27:17 +00:00
2021-11-18 16:37:22 +00:00
Note also this repo obsoletes https://pagure.io/atomic-ws