Description
As it currently stands, the buildroots used for Fedora updates building are not self updating. They only contains things from the release, and stable released updates. This means that one update candidate cannot be built against another update candidate without rel-eng interaction. That interaction is to tag a build for an "override" collection which will make it available in the buildroot for future builds.
Action
Find tag requests
Tag requests are usually reported in the rel-eng trac instance at Fedorahosted in the component koji. You can use a trac query to list all unassigned Koji tickets. This query also includes requests, that are not a tag request, because there is no automated way to distinguish them. The results of the query are also available as an RSS feed, the link is in the footer of the page.
Perform the tagging
First assign the ticket to yourself to show, that you are handling the request. Then to tag a package for an override collection, use the tag-build
method of Koji.
$ koji tag-build --help Usage: koji tag-build [options] <tag> <pkg> [<pkg>...] (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit --force force operation --nowait Do not wait on task
For example, if we were asked to make libwnck-2.18.2-2.f13 available in the F13 buildroots we would issue:
$ koji tag-build dist-f13-override libwnck-2.18.2-2.fc13
fedora-override or epel-override permissions are required to tag packages into the -override tags.
By convention override tags start with the base collection, dist-f13
in this case, and end in
-override
.
Revert the tagging
Once dependant builds are done, the -override should be cleared. Use koji untag-pkg
to accomplish this. Usually the requester reports in the ticket, when the override is no longer needed. After untagging the package and verification close the ticket.
$ koji untag-pkg --all dist-f13-override libwnck
Periodic cleanup
Periodically check the -override tag for stale tags via clean-overrides.py
.
$ ./clean-overrides.py dist-f12-{override,updates} Builds that exist both in dist-f12-override and dist-f12-updates: libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 Builds that are older in dist-f12-override than in dist-f12-updates. usbmuxd-1.0.0-3.fc12 Suggest: koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12
Now run the suggested command if it looks sane:
koji untag-pkg dist-f12-override libsepol-2.0.41-3.fc12 xulrunner-1.9.1.8-1.fc12 polkit-qt-0.95.1-3.fc12 drumstick-0.2.99-0.3.20100208svn.fc12 milia-0.3.0-2.fc12 libimobiledevice-0.9.7-2.fc12 libplist-1.2-1.fc12 pki-symkey-1.3.2-3.fc12 ppp-2.4.5-2.fc12 usbmuxd-1.0.0-3.fc12
To check several releases at once, use a bash for loop:
$ for release in {12..13}; do ./clean-overrides.py dist-f$release-{override,updates}; done
Verification
To verify that the tag was successful and the build will be available in the buildroot use the latest-pkg
koji command:
$ koji latest-pkg dist-f13-build libwnck Build Tag Built by ---------------------------------------- -------------------- ---------------- libwnck-2.18.2-2.fc13 dist-f13-override rhughes
We should see the build nvr we tagged, and see that it is coming from the -override tag.
Consider Before Running
- Once tagged, new repodata may take 20~ minutes to generate and the build to be available in buildroots.
- Buildroot overrides usually means that something is soname bumping. Be sure this is a sane update to do in Fedora