Skip to content

Composing Releases

This section goes over at a high level how we compose releases for Rocky Linux. As most of our tools are home grown, we have made sure that the tools are open source and in our git services.

This page should serve as an idea of the steps we generally take and we hope that other projects out there who wish to also use our tools can make sure they can use them in this same way, whether they want to be an Enterprise Linux derivative or another project entirely.

Build System and Tools

The tools in use for the distribution are in the table below.

Tool Maintainer Code Location
srpmproc SIG/Core at RESF GitHub
empanadas SIG/Core at RESF sig-core-toolkit
Peridot SIG/Core at RESF GitHub
MirrorManager 2 Fedora Project MirrorManager2

For Rocky Linux to be build, we use Peridot as the build system and empanadas to "compose" the distribution. As we do not use Koji for Rocky Linux beyond version 9, pungi can no longer be used. Peridot instead takes pungi configuration data and comps and transforms them into a format it can understand. Empanadas then comes in to do the "compose" and sync all the repositories down.

Full Compose (major or minor releases)

Step by step, it looks like this:

  • Distribution is built and maintained in Peridot
  • Comps and pungi configuration is converted into the peridot format for the project
  • Repositories are created in yumrepofs based on the configuration provided
  • A repoclosure is ran against the repositories from empanadas to ensure there are no critical issues
  • In Parallel:

    • Repositories are synced as a "full run" in empanadas
    • Lorax is ran using empanadas in the peridot cluster
  • Lorax results are pulled down from an S3 bucket

  • DVD images are built for each architecture
  • Compose directory is synced to staging for verification
  • Staging is synced to production to allow mirror syncing
  • Bit flip on release day

General Updates

Step by step, it looks like this:

  • Distribution is maintained in Peridot
  • Updates are built, repos are then "hashed" in yumrepofs
  • Empanadas syncs updates as needed, either per repo or all repos at once
  • Updates are synced to staging to be verified
  • Staging is synced to production to allow mirror syncing

Resources

URL: https://accounts.rockylinux.org

Purpose: Account Services maintains the accounts for almost all components of the Rocky ecosystem

Technology: Noggin used by Fedora Infrastructure

Contact: ~Infrastructure in Mattermost and #rockylinux-infra in Libera IRC

URL: https://git.resf.org

Purpose: General projects, code, and so on for the Rocky Enterprise Software Foundation.

Technology: Gitea

Contact: ~Infrastructure, ~Development in Mattermost and #rockylinux-infra, #rockylinux-devel in Libera IRC

URL: https://github.com/rocky-linux

Purpose: General purpose code, assets, and so on for Rocky Linux. Some content is mirrored to the RESF Git Service.

Technology: GitHub

Contact: ~Infrastructure, ~Development in Mattermost and #rockylinux-infra, #rockylinux-devel in Libera IRC

URL: https://git.rockylinux.org

Purpose: Packages and light code for the Rocky Linux distribution

Technology: GitLab

Contact: ~Infrastructure, ~Development in Mattermost and #rockylinux-infra, #rockylinux-devel in Libera IRC

URL: https://lists.resf.org

Purpose: Users can subscribe and interact with various mail lists for the Rocky ecosystem

Technology: Mailman 3 + Hyper Kitty

Contact: ~Infrastructure in Mattermost and #rockylinux-infra in Libera IRC

Name Email Mattermost Name IRC Name
Louis Abel label@rockylinux.org @nazunalika Sokel/label/Sombra
Mustafa Gezen mustafa@rockylinux.org @mustafa mstg
Skip Grube skip@rockylinux.org @skip77
Sherif Nagy sherif@rockylinux.org @sherif
Pablo Greco pgreco@rockylinux.org @pgreco pgreco
Neil Hanlon neil@resf.org @neil neil
Taylor Goodwill tg@resf.org @tgo tg

Last update: 2022-10-20