Contents
- Introduction
- Create a side tag
- Build a package in a side tag
- Wait for a package to appear in a side tag
- Get mock configuration for a side tag
- Find my side tags
Introduction
When you want to update multiple dependent packages, you can build the first package, request a buildroot override, build the second package … hold on, why am I getting so much email from koschei about broken dependencies?
The old way of building multiple packages left brokenness in its wake until the builds were all complete. If a package in the middle failed to build, then the brokenness could last for days, or weeks, or even months! Now there is a better way. For details, see these pages:
The following content is my cheat sheet on how to do this in the most common ways.
Create a side tag
To create a side tag for Rawhide, run:
fedpkg request-side-tag
To create a side tag for a branch, specify the base tag:
fedpkg request-side-tag --base-tag f35-build
Either way, if successful this command will print two commands for you. The
first is a koji wait
command. That command will block until the side tag is
ready for you to use. Run it now. The other is a fedpkg build
command to
use when building a package. It contains a tag name. Make a note of that tag
name; you’re going to need it later.
Build a package in a side tag
Push you changes to git, then run the build command printed by
fedpkg request-side-tag
. If you forgot the command, then just use the tag
name in this command:
fedpkg build --target=[TAG NAME]
Wait for a package to appear in a side tag
After building a package in a side tag, the newly built package is not instantly ready to be used in further builds. Run this command to wait for it to be ready:
koji wait-repo --target [TAG NAME] --build [NEVR]
where NEVR is the full Name-Epoch-Version-Release of the package you just
built; e.g., widgets-1.0-1.fc36
.
Get mock configuration for a side tag
Oh no! A build failed. Now you want to diagnose it locally with a mock build, but it depends on other packages in the side tag. No problem! Get a mock configuration for your side tag like this:
fedpkg mock-config --taret [TAG NAME] > mock.cfg
Now you can do your mock build with mock -r ./mock.cfg --rebuild [package]
.
Find my side tags
What if I can’t remember which side tag I was working on, or I don’t recall if I ever cleaned up an old side tag? You can see a list of your side tags by running this command:
fedpkg list-side-tags --user [FAS name]