Description
Packages are often retired or renamed from Fedora. When this happens, release engineering needs to "block" the package from being published and inherited in various koji tags.
Action
Find Block requests
Block 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 block 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 blocking
First assign the ticket to yourself to show, that you are handling the request.
Discover proper place to block
The ticket should tell you which Fedora releases to block the package in. Typically it'll say "Fedora 13" or "F14". This means we need to block it at that Fedora level and all future tags. However we do not generally block packages in a Fedora release that has gone public unless it is a package rename.
The appropriate place to block a package is at the "dist-f??" tag level. This way the setting of block or not is inherited into future tags.
Check for broken dependencies
Given a particular package (or set of packages), use the repoquery
command to check for dependencies.
$ repoquery -q --repofrompath=fedora-XX,http://download.fedoraproject.org/pub/fedora/linux/releases/XX/Everything/x86_64/os \ --repofrompath=fedora-updates-XX,http://download.fedoraproject.org/pub/fedora/linux/updates/XX/x86_64/os \ --repoid fedora-XX --repoid fedora-updates-XX --whatrequires <pkg>
If there are an excessive amount of broken dependencies, consult with the requester as to the best solution. Note that removing
something that provides a virtual provide such as MTA
will list packages that require it, even if other packages in
the repo will satisfy the dependency.
Performing the package block
To block a package for a tag, use the block-pkg
method of Koji.
$ koji block-pkg --help Usage: koji block-pkg [options] tag package [package2 ...] (Specify the --help global option for a list of other help options) Options: -h, --help show this help message and exit
For example, if we were asked to block python-psyco in F14 we would issue:
$ koji block-pkg dist-f14 python-psyco
Now the ticket can be closed.
Verification
To verify that the package was successfully blocked use the list-pkgs
koji command:
$ koji list-pkgs --package python-psyco --show-blocked
We should see the package listed as blocked:
Package Tag Extra Arches Owner ----------------------- ----------------------- ---------------- --------------- python-psyco dist-f14 konradm [BLOCKED]
We should not see it listed in any later Fedora tags.
Consider Before Running
- Don't block packages in a released Fedora unless it is a rename. We cannot remove the package from the release repository
- Watch the next day's rawhide/branched/whatever report for a slew of broken deps related to the package. We may have to unblock the package in order to fix the deps.