Buildroot override SOP

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
m (Periodic cleanup: fix wiki syntax)
(Periodic cleanup: bash loop does not work for fedora branched (f14))
Line 61: Line 61:
 
koji untag-pkg --force 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
 
koji untag-pkg --force 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
 
</pre>
 
</pre>
{{admon/note|Fedora branched|In Fedora-branched, the <code>dist-f1X-updates</code> tag is empty. You need to use <code>dist-f1X</code> instead. E.g. <code>$ ./clean-overrides.py dist-f15{-override,}</code>}}
+
{{admon/note|Fedora branched|In Fedora-branched, the <code>dist-f1X-updates</code> tag is empty. You need to use <code>dist-f1X</code> instead. E.g. <code>$ ./clean-overrides.py dist-f14{-override,}</code>}}
  
 
To check several releases at once, use a bash for loop:
 
To check several releases at once, use a bash for loop:
 
<pre>
 
<pre>
$ for release in {12..14}; do ./clean-overrides.py dist-f$release-{override,updates}; done
+
$ for release in {12..13}; do ./clean-overrides.py dist-f$release-{override,updates}; done
 
</pre>
 
</pre>
  

Revision as of 10:05, 29 August 2010

Contents

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-pkg method of Koji.

$ koji tag-pkg --help
Usage: koji tag-pkg [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-pkg --force dist-f13-override libwnck-2.18.2-2.fc13

Important to notice that we used the --force option. This is necessary as the -override tags are locked. Only admins are allowed to tag packages for these collections.
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 --force 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 --force 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
Note.png
Fedora branched
In Fedora-branched, the dist-f1X-updates tag is empty. You need to use dist-f1X instead. E.g. $ ./clean-overrides.py dist-f14{-override,}

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