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-candidateproposed_updates10s-packages-main-testingproposed_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.
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 asc<N>s-proposed-RHEL-NNNN. Steps already done are skipped.cbspkg add-pkg, for a package's first build only: lists the package in the CBS tags.cbspkg upload-sources, if the sources are not in the SIG lookaside yet.cbspkg buildbuilds on CBS. The target, project URL and commit come from the checked-out branch.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--embargoedfor an embargoed fix.cbspkg promotemoves the build to its next stage, here from-candidateto-testing.- Test the build (see Testing).
cbspkg promoteagain moves it from-testingto-release, and untags it from-testing.cpu-sig-tracker sync-updatesregenerates the updates list (docs/content/updates-list.mdin this site's repository). It lists only updates whose issue is public.
While an update is live¶
cpu-sig-tracker status --refreshshows each update's Jira state and next action, and fills in missing labels, CVEs and builds on the tracking issues.cpu-sig-tracker pingnudges merge requests that have gone quiet.cpu-sig-tracker list-issues,dump-inventoryandtimelinehelp with the periodic review.
Retiring an update¶
Once Stream ships the fix (or the update is superseded or abandoned):
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.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.