---
# System prepended metadata

title: 20200723 FCOS-initiatives-releng-infra

---

# 20200723 FCOS-initiatives-releng-infra


# Multi-arch POC

https://github.com/coreos/fedora-coreos-tracker/issues/541

Need to get aarch64 node for testing.
    - Preferrably decent amount of RAM with virt capabilities (/dev/kvm)

# More reliable package layering

https://github.com/coreos/fedora-coreos-tracker/issues/400
https://github.com/coreos/fedora-coreos-tracker/issues/401

- The problem:
    - In a nutshell the problem is because packages in our base layer are locked and if the base layer is built from a different "package snapshot" than the latest updates repo then we get errors because rpm-ostree really doesn't want to replace base layer packages.
    
- Solutions:
    - Using a smaller repo of curated packages that we bless for use with FCOS
        - we respin this repo when we spin FCOS
        - we maintain versions of it that match the versions we built different FCOS builds with
    - Making more than the latest version of packages available for fedora
        - POSITIVE: helps all of FCOS and Silverblue (and possibly IoT) users that use package layering
        - could we keep the existing mirror set up, but transition older packages into an archive repo once they drop out of bodhi
        - the archive repo could be hosted in S3 or something so we don't change our relationship with our existing mirrors
    - embed information in the ostree at compose time about the yum repo that was used and peruse https://kojipkgs.fedoraproject.org/compose/updates/ to try to find a match with what was used for the base layer and use that for package layering instead
    
Email to teams:

Hello Silverblue and IoT teams. The FCOS team got together with Fedora releng last week to discuss the issue regarding package layering that periodically plagues us (https://github.com/coreos/fedora-coreos-tracker/issues/400). The solution we believe will help all OSTree based editions involves creating an archive repo where any package that has made it to the Fedora stable repositories can be accessed at a later time. In general, we think this should solve the problem because we should be able to install packages that won't require updating the base layer.

Goals:

- help solve the same problem for Fedora CoreOS, Fedora Silverblue, and Fedora IoT
- don't add to mirror network requirements
    - i.e., store/host the content somewhere else. AWS is a candidate here.
- keep traditional systems behavior the same
    - don't enable archive repo(s) by default on non-ostree distributions

Since it can take a long time to create repos for large package sets we may end up creating more than one repo that gets updated at different cadences. For example:

- One that gets updated weekly
    - all packages obsoleted before X date (large package set)
- One that gets updated nightly
    - all packages obsoleted after X date (small package set)
    
This is still a work in progress and the design may take a few turns as we work out the details and/or find new information.

Having this new repository will help us in Fedora CoreOS as we have a stable stream that lags behind Fedora stable repos. It should also help Fedora Silverblue when they move to a release cadence that doesn't match the bodhi updates repos. I'm not sure how much of a problem this currently is in Fedora IoT, but I imagine Fedora IoT has similar problems.

Thoughts?

Dusty Mabe



```
[fedora@ip-10-0-1-143 rpms]$ time ~/koji-download-ts.sh
Downloading new packages since 1597881868 til now (1597892897).
Downloading: 0ad-0.0.23b-15.fc32.x86_64.rpm
File 0ad-0.0.23b-15.fc32.x86_64.rpm already downloaded, skipping
Downloading: apt-doc-2.1.10-1.fc32.noarch.rpm
Downloading: apt-apidoc-2.1.10-1.fc32.noarch.rpm
Downloading: apt-utils-2.1.10-1.fc32.x86_64.rpm
Downloading: apt-libs-2.1.10-1.fc32.x86_64.rpm
Downloading: apt-devel-2.1.10-1.fc32.x86_64.rpm
Downloading: apt-2.1.10-1.fc32.x86_64.rpm
Downloading: python3-ara-1.4.3-1.fc32.noarch.rpm
Downloading: python3-ara-tests-1.4.3-1.fc32.noarch.rpm
Downloading: python3-ara-server-1.4.3-1.fc32.noarch.rpm
Downloading: ara-1.4.3-1.fc32.noarch.rpm
Downloading: ara-doc-1.4.3-1.fc32.noarch.rpm
Downloading: compat-golang-github-mholt-caddy-devel-1.0.5-1.fc32.noarch.rpm
Downloading: golang-github-caddyserver-caddy-devel-1.0.5-1.fc32.noarch.rpm
Downloading: caddy-1.0.5-1.fc32.x86_64.rpm
Downloading: cinnamon-devel-doc-4.6.7-1.fc32.noarch.rpm
Downloading: cinnamon-4.6.7-1.fc32.x86_64.rpm
Downloading: cinnamon-control-center-4.6.2-1.fc32.x86_64.rpm
Downloading: cinnamon-control-center-filesystem-4.6.2-1.fc32.x86_64.rpm
Downloading: cinnamon-control-center-devel-4.6.2-1.fc32.x86_64.rpm
Downloading: cinnamon-desktop-devel-4.6.4-1.fc32.x86_64.rpm
Downloading: cinnamon-desktop-4.6.4-1.fc32.x86_64.rpm
Downloading: cinnamon-session-4.6.2-1.fc32.x86_64.rpm
Downloading: copr-cli-1.89-1.fc32.noarch.rpm
Downloading: ddnet-data-14.3.2-1.fc32.noarch.rpm
Downloading: ddnet-14.3.2-1.fc32.x86_64.rpm
Downloading: ddnet-server-14.3.2-1.fc32.x86_64.rpm
Downloading: fedora-obsolete-packages-32-55.noarch.rpm
Downloading: fedora-repos-ostree-32-5.noarch.rpm
Downloading: fedora-repos-eln-32-5.noarch.rpm
Downloading: fedora-gpg-keys-32-5.noarch.rpm
Downloading: fedora-repos-rawhide-32-5.noarch.rpm
Downloading: fedora-repos-32-5.noarch.rpm
Downloading: GAPDoc-doc-1.6.4-4.fc32.noarch.rpm
Downloading: GAPDoc-latex-1.6.4-4.fc32.noarch.rpm
Downloading: GAPDoc-1.6.4-4.fc32.noarch.rpm
Downloading: gap-pkg-autodoc-doc-2020.08.11-1.fc32.noarch.rpm
Downloading: gap-pkg-autodoc-2020.08.11-1.fc32.noarch.rpm
Downloading: golang-github-matrix-org-gomatrix-devel-0-0.1.20200810gite5578b1.fc32.noarch.rpm
Downloading: growlight-1.2.8-4.fc32.x86_64.rpm
Downloading: jd-0.4.0-1.fc32.x86_64.rpm
Downloading: kexec-tools-2.0.20-17.fc32.x86_64.rpm
Downloading: python3-bytesize-2.4-1.fc32.x86_64.rpm
Downloading: libbytesize-2.4-1.fc32.x86_64.rpm
Downloading: libbytesize-devel-2.4-1.fc32.x86_64.rpm
Downloading: libbytesize-tools-2.4-1.fc32.x86_64.rpm
Downloading: libdkimpp-devel-2.0.0-6.fc32.x86_64.rpm
Downloading: libdkimpp-2.0.0-6.fc32.x86_64.rpm
Downloading: linux-firmware-20200817-111.fc32.noarch.rpm
Downloading: iwl6000-firmware-9.221.4.1-111.fc32.noarch.rpm
Downloading: iwl135-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: libertas-usb8388-olpc-firmware-20200817-111.fc32.noarch.rpm
Downloading: libertas-sd8686-firmware-20200817-111.fc32.noarch.rpm
Downloading: iwl5150-firmware-8.24.2.2-111.fc32.noarch.rpm
Downloading: iwl6000g2b-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: iwl7260-firmware-25.30.13.0-111.fc32.noarch.rpm
Downloading: liquidio-firmware-20200817-111.fc32.noarch.rpm
Downloading: iwl2000-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: iwl5000-firmware-8.83.5.1_1-111.fc32.noarch.rpm
Downloading: netronome-firmware-20200817-111.fc32.noarch.rpm
Downloading: iwl3945-firmware-15.32.2.9-111.fc32.noarch.rpm
Downloading: libertas-usb8388-firmware-20200817-111.fc32.noarch.rpm
Downloading: iwl100-firmware-39.31.5.1-111.fc32.noarch.rpm
Downloading: iwl4965-firmware-228.61.2.24-111.fc32.noarch.rpm
Downloading: iwl3160-firmware-25.30.13.0-111.fc32.noarch.rpm
Downloading: iwl1000-firmware-39.31.5.1-111.fc32.noarch.rpm
Downloading: iwl2030-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: libertas-sd8787-firmware-20200817-111.fc32.noarch.rpm
Downloading: linux-firmware-whence-20200817-111.fc32.noarch.rpm
Downloading: iwl6000g2a-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: iwl105-firmware-18.168.6.1-111.fc32.noarch.rpm
Downloading: iwl6050-firmware-41.28.5.1-111.fc32.noarch.rpm
Downloading: lm_sensors-libs-3.6.0-5.fc32.x86_64.rpm
Downloading: lm_sensors-sensord-3.6.0-5.fc32.x86_64.rpm
Downloading: lm_sensors-3.6.0-5.fc32.x86_64.rpm
Downloading: lm_sensors-devel-3.6.0-5.fc32.x86_64.rpm
Downloading: mangohud-0.5.1-1.fc32.x86_64.rpm
Downloading: marco-devel-1.24.1-1.fc32.x86_64.rpm
Downloading: marco-libs-1.24.1-1.fc32.x86_64.rpm
Downloading: marco-1.24.1-1.fc32.x86_64.rpm
Downloading: mate-applets-1.24.1-1.fc32.x86_64.rpm
Downloading: mate-panel-libs-1.24.1-1.fc32.x86_64.rpm
Downloading: mate-panel-devel-1.24.1-1.fc32.x86_64.rpm
Downloading: mate-panel-1.24.1-1.fc32.x86_64.rpm
Downloading: muffin-4.6.3-1.fc32.x86_64.rpm
Downloading: muffin-devel-4.6.3-1.fc32.x86_64.rpm
Downloading: nemo-extensions-4.6.5-1.fc32.x86_64.rpm
Downloading: nemo-devel-4.6.5-1.fc32.x86_64.rpm
Downloading: nemo-4.6.5-1.fc32.x86_64.rpm
Downloading: neofetch-7.1.0-1.fc32.noarch.rpm
Downloading: nfdump-libs-1.6.21-1.fc32.x86_64.rpm
Downloading: nfdump-1.6.21-1.fc32.x86_64.rpm
Downloading: notcurses-static-1.6.11-1.fc32.x86_64.rpm
Downloading: notcurses-1.6.11-1.fc32.x86_64.rpm
Downloading: python3-notcurses-1.6.11-1.fc32.x86_64.rpm
Downloading: notcurses-utils-1.6.11-1.fc32.x86_64.rpm
Downloading: notcurses-devel-1.6.11-1.fc32.x86_64.rpm
Downloading: oidn-devel-1.2.2-1.fc32.x86_64.rpm
Downloading: oidn-1.2.2-1.fc32.x86_64.rpm
Downloading: oidn-libs-1.2.2-1.fc32.x86_64.rpm
Downloading: oidn-docs-1.2.2-1.fc32.noarch.rpm
Downloading: openshadinglanguage-doc-1.11.7.0-0.1.fc32.noarch.rpm
Downloading: openshadinglanguage-example-shaders-source-1.11.7.0-0.1.fc32.noarch.rpm
Downloading: openshadinglanguage-common-headers-1.11.7.0-0.1.fc32.noarch.rpm
Downloading: openshadinglanguage-1.11.7.0-0.1.fc32.x86_64.rpm
Downloading: OpenImageIO-plugin-osl-1.11.7.0-0.1.fc32.x86_64.rpm
Downloading: openshadinglanguage-devel-1.11.7.0-0.1.fc32.x86_64.rpm
Downloading: python3-openshadinglanguage-1.11.7.0-0.1.fc32.x86_64.rpm
Downloading: openshadinglanguage-libs-1.11.7.0-0.1.fc32.x86_64.rpm
Downloading: openshadinglanguage-MaterialX-shaders-source-1.11.7.0-0.1.fc32.noarch.rpm
Downloading: osbuild-composer-19-1.fc32.x86_64.rpm
Downloading: osbuild-composer-worker-19-1.fc32.x86_64.rpm
Downloading: osinfo-db-20200813-1.fc32.noarch.rpm
Downloading: partio-doc-1.10.1-3.fc32.noarch.rpm
Downloading: partio-devel-1.10.1-3.fc32.x86_64.rpm
Downloading: partio-1.10.1-3.fc32.x86_64.rpm
Downloading: partio-libs-1.10.1-3.fc32.x86_64.rpm
Downloading: python3-partio-1.10.1-3.fc32.x86_64.rpm
Downloading: phan-3.1.1-1.fc32.noarch.rpm
Downloading: php-bacon-qr-code2-2.0.2-1.fc32.noarch.rpm
Downloading: php-dasprid-enum-1.0.2-1.fc32.noarch.rpm
Downloading: php-doctrine-collections-1.6.7-1.fc32.noarch.rpm
Downloading: php-doctrine-event-manager-1.1.1-1.fc32.noarch.rpm
Downloading: php-doctrine-persistence-1.3.8-1.fc32.noarch.rpm
Downloading: php-doctrine-sql-formatter-1.1.1-1.fc32.noarch.rpm
Downloading: php-egulias-email-validator2-2.1.19-1.fc32.noarch.rpm
Downloading: php-pear-PHP-CodeSniffer-3.5.6-1.fc32.noarch.rpm
Downloading: php-symfony-polyfill-1.18.1-1.fc32.noarch.rpm
Downloading: php-twig-1.43.1-1.fc32.noarch.rpm
Downloading: php-twig2-2.13.1-1.fc32.noarch.rpm
Downloading: php-twig3-3.0.5-1.fc32.noarch.rpm
Downloading: pipewire-gstreamer-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-utils-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-libs-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-doc-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-devel-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-alsa-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-libjack-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-jack-audio-connection-kit-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-plugin-jack-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-libpulse-0.3.10-1.fc32.x86_64.rpm
Downloading: pipewire-pulseaudio-0.3.10-1.fc32.x86_64.rpm
Downloading: python3-pychm-0.8.6-1.fc32.x86_64.rpm
Downloading: python3-copr-1.105-1.fc32.noarch.rpm
Downloading: python-copr-doc-1.105-1.fc32.noarch.rpm
Downloading: python-pikepdf-doc-1.18.0-1.fc32.x86_64.rpm
Downloading: python3-pikepdf-1.18.0-1.fc32.x86_64.rpm
Downloading: python3-pydantic-1.6.1-1.fc32.noarch.rpm
Downloading: python3-xlsxwriter-1.3.2-1.fc32.noarch.rpm
Downloading: python3-ZEO-5.2.2-1.fc32.noarch.rpm
Downloading: Rex-1.12.1-1.fc32.noarch.rpm
Downloading: roundcubemail-1.4.8-1.fc32.noarch.rpm
Downloading: R-prettydoc-0.4.0-1.fc32.noarch.rpm
Downloading: rubygem-kramdown-doc-2.1.0-3.fc32.noarch.rpm
Downloading: rubygem-kramdown-2.1.0-3.fc32.noarch.rpm
Downloading: rubygem-pkg-config-doc-1.4.2-1.fc32.noarch.rpm
Downloading: rubygem-pkg-config-1.4.2-1.fc32.noarch.rpm
Downloading: s3fs-fuse-1.87-1.fc32.x86_64.rpm
Downloading: slingshot-0.9-12.fc32.noarch.rpm
Downloading: smtpping-1.1.3-12.fc32.x86_64.rpm
Downloading: sqlite-doc-3.33.0-1.fc32.noarch.rpm
Downloading: sqlite-devel-3.33.0-1.fc32.x86_64.rpm
Downloading: sqlite-3.33.0-1.fc32.x86_64.rpm
Downloading: lemon-3.33.0-1.fc32.x86_64.rpm
Downloading: sqlite-tools-3.33.0-1.fc32.x86_64.rpm
Downloading: sqlite-libs-3.33.0-1.fc32.x86_64.rpm
Downloading: sqlite-tcl-3.33.0-1.fc32.x86_64.rpm
Downloading: sqlite-analyzer-3.33.0-1.fc32.x86_64.rpm
Downloading: swtpm-0.3.4-1.20200811git80f0418.fc32.x86_64.rpm
Downloading: swtpm-devel-0.3.4-1.20200811git80f0418.fc32.x86_64.rpm
Downloading: swtpm-libs-0.3.4-1.20200811git80f0418.fc32.x86_64.rpm
Downloading: swtpm-tools-0.3.4-1.20200811git80f0418.fc32.x86_64.rpm
Downloading: tetrinetx-1.13.16-30.fc32.x86_64.rpm
Downloading: urlbuster-0.5.0-2.fc32.noarch.rpm
Downloading: python3-urlbuster-0.5.0-2.fc32.noarch.rpm
Downloading: zswap-cli-0.4.1-1.fc32.x86_64.rpm
File zswap-cli-0.4.1-1.fc32.x86_64.rpm already downloaded, skipping
Usage: koji download-build [options] <n-v-r | build_id | package>
(Specify the --help global option for a list of other help options)

koji: error: Only a single package N-V-R or build ID may be specified
find: cannot delete ‘./repodata’: Directory not empty
Directory walk started
Directory walk done - 12227 packages
Loaded information about 12052 packages
Temporary output repo path: ./.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

real    2m18.439s
user    1m2.305s
sys     0m3.692s

real    4m52.868s
user    1m47.147s
sys     0m10.093s
```