Skip to content

Building packages

Packages are built on the CentOS Build System (CBS) with these targets:

Release Build target
CentOS Stream 9 proposed_updates9s-packages-main-el9s
CentOS Stream 10 proposed_updates10s-packages-main-el10s

The build tags inherit the CentOS Stream BaseOS, AppStream, CRB and buildroot repositories, without EPEL, and set the ~proposed dist tag prefix (%distprefix), so builds come out as e.g. 1.2.3-4~proposed.el10.

Builds land in the -candidate tag. Tag them into -testing to publish them to the testing repository, and into -release once tested, e.g. for CentOS Stream 10:

  • proposed_updates10s-packages-main-candidate
  • proposed_updates10s-packages-main-testing
  • proposed_updates10s-packages-main-release

Picking up a merge request

These steps need the Maintainer role in the CentOS/proposed_updates GitLab group (for sig-repo) and membership of the SIG on CBS (for building and tagging). The tools are introduced in Proposing an update. Run each cbspkg command from the Stream checkout, on the SIG branch; most take --dry-run to show what they would do.

  1. cbspkg sig-repo <merge request URL> makes sure the package's SIG project exists as a pull mirror of Stream, then pushes the merge request's change as c<N>s-proposed-RHEL-NNNN. Steps already done are skipped.
  2. cbspkg add-pkg, for a package's first build only: lists the package in the CBS tags.
  3. cbspkg upload-sources, if the sources are not in the SIG lookaside yet.
  4. cbspkg build builds on CBS. The target, project URL and commit come from the checked-out branch.
  5. cpu-sig-tracker file-issue <merge request URL> files the tracking issue, with type and priority labels, CVEs, and the affected and expected fixed builds. Use --embargoed for an embargoed fix.
  6. cbspkg promote moves the build to its next stage, here from -candidate to -testing.
  7. Test the build (see Testing).
  8. cbspkg promote again moves it from -testing to -release, and untags it from -testing.
  9. cpu-sig-tracker sync-updates regenerates the updates list (docs/content/updates-list.md in this site's repository). It lists only updates whose issue is public.

While an update is live

  • cpu-sig-tracker status --refresh shows each update's Jira state and next action, and fills in missing labels, CVEs and builds on the tracking issues.
  • cpu-sig-tracker ping nudges merge requests that have gone quiet.
  • cpu-sig-tracker list-issues, dump-inventory and timeline help with the periodic review.

Retiring an update

Once Stream ships the fix (or the update is superseded or abandoned):

  1. cpu-sig-tracker retire <issue or package> closes and labels the tracking issue and comments on the merge request, closing it if the update was abandoned.
  2. cpu-sig-tracker untag --release c<N>s <package> removes the build from -release.

The release package

centos-release-proposed_updates is not built like the SIG's other packages. It lives in its own project on the c9s-proposed and c10s-proposed branches, and is built into CentOS Extras, with an .el<N>s dist tag:

Release Build target Tags
CentOS Stream 9 extras9s-extras-common-el9s extras9s-extras-common-{candidate,testing,release}
CentOS Stream 10 extras10s-extras-common-el10s extras10s-extras-common-{candidate,testing,release}

Until sandogasa#103 lands, don't use cbspkg build or cbspkg promote for it: they would build it to the SIG's own target. Build and tag it with cbs directly.