Test repo for the Atomic Desktops
Find a file
Adam Williamson fa798595cf comps-sync.py: handle arch-dependent package specs (#311)
comps allows for a package to be included in a group only on
specified arches, with a line like this:

      <packagereq arch="aarch64,x86_64" type="default">kio-gdrive</packagereq>

up till now, `comps-sync.py` effectively ignored this, treating
such a line exactly the same as this:

      <packagereq type="default">kio-gdrive</packagereq>

and attempting to include the package even when building on e.g.
ppc64le.

Solving this is unfortunately tricky due to exactly how libcomps
handles these arch restrictions. It does not expose the list of
arches as a property of each returned 'package' object when you
do a group search. Instead you're supposed to filter the group
search down to the arch(es) you are interested in, and it only
includes the appropriate packages for that arch. So all we can
do is run our queries multiple times, once for each arch we may
wish to build on, keep track of the results per arch as we go,
and do some fancy footwork to keep track of the mapping between
"archful" comps entries and the lists in the YAML files.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-10-31 16:35:40 -07:00
ci zuul: Add initial CI jobs using Zuul 2022-10-31 12:01:34 +01:00
.zuul.yaml zuul: Add initial CI jobs using Zuul 2022-10-31 12:01:34 +01:00
bootupd.yaml Add bootupd integration 2022-10-16 15:54:15 -04:00
comps-sync-exclude-list.yml comps-sync f37 2022-02-08 2022-02-08 09:43:58 -08:00
comps-sync.py comps-sync.py: handle arch-dependent package specs (#311) 2022-10-31 16:35:40 -07:00
config.ini
deepin-desktop-pkgs.yaml comps-sync rawhide 2020-07-16 2020-07-16 17:13:22 +02:00
fedora-38-updates.repo repos: Next version is 38 (for future branching) 2022-08-19 21:46:21 +02:00
fedora-38.repo repos: Next version is 38 (for future branching) 2022-08-19 21:46:21 +02:00
fedora-base.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
fedora-common-ostree-pkgs.yaml comps-sync f38 2022-09-08 2022-09-08 16:52:48 +02:00
fedora-common-ostree.yaml Add bootupd integration 2022-10-16 15:54:15 -04:00
fedora-deepin.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
fedora-kinoite.yaml Kinoite: Keep some application until with get Flatpaks 2022-09-15 18:09:51 +02:00
fedora-lxqt.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
fedora-mate.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
fedora-rawhide.repo repo: Remove unused baseurl, explicitely set enabled & gpgpcheck 2022-02-16 18:45:56 +01:00
fedora-silverblue.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
fedora-vauxite.yaml manifests: Rawhide is now F38 2022-08-18 20:00:11 +02:00
gnome-desktop-pkgs.yaml comps-sync f38 2022-09-20 2022-09-16 18:02:04 +02:00
group
kde-desktop-pkgs.yaml comps-sync f38 2022-09-26 2022-09-26 22:32:00 +02:00
LICENSE LICENSE: Add MIT license text 2021-12-16 11:39:31 +01:00
lxqt-desktop-pkgs.yaml comps-sync rawhide 2020-10-06 2020-10-06 20:48:24 +02:00
mate-desktop-pkgs.yaml comps-sync f37 2022-05-20 2022-04-20 13:28:19 +02:00
passwd
postprocess.sh common: Move sysroot RO script to postprocess-script 2022-08-19 21:46:21 +02:00
README.md README: Minor update with more examples 2022-09-08 16:52:48 +02:00
xfce-desktop-pkgs.yaml comps-sync f37 2022-05-20 2022-04-20 13:28:19 +02:00

Manifests for rpm-ostree based Fedora variants

This is the configuration needed to create rpm-ostree based variants of Fedora. 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, this happens via pungi with Lorax (templates).

Fedora Silverblue

Fedora Kinoite

Building

Instructions to perform a local build of Silverblue:

# Clone the config
git clone https://pagure.io/workstation-ostree-config && cd workstation-ostree-config

# Prepare directories
mkdir -p repo cache
ostree --repo=repo init --mode=archive

# 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

Testing

Instructions to test the resulting build:

  • 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!

Historical references

Building and testing instructions:

For some background, see:

Note also this repo obsoletes https://pagure.io/atomic-ws