koji GitPython fedpkg hmaccalc pesign bc gcc hostname m4 net-tools openssl-devel elfutils-libelf-devel
At least 15G of free disk space.
A - Fedora commit B - Feodra commit C - Fedora commit D - Upstream commit E - Upstream commit F - Upstream commit G - Upstream commit H - Upstream commit I - Upstream commit J - Upstream commit
If this tree is bisected, commits D through J won't have any fedora enhancements. Typically, the upstream tree will boot but features may be missing.
A - Fedora commit B - Fedora commit C - Fedora commit G - Upstream commit H - Upstream commit I - Upstream commit J - Upstream commit
as one commit and
A - Fedora commit B - Feodra commit C - Fedora commit E - Upstream commit F - Upstream commit G - Upstream commit H - Upstream commit I - Upstream commit J - Upstream commit
as another and
A - Fedora commit B - Feodra commit C - Fedora commit I - Upstream commit J - Upstream commit
as yet a third.
I've got two candidates. How do I do a bisect?
Install the he fedbisect rpm
fedbisect sync <path for working>
- This will create a working directory where builds and partial work will
happen. This must be able to store at least 15G of objects
fedbisect start <working path> <bad version> <good version>
Note when giving versions, give version numbers only e.g.
- 4.0.6-300.fc22 (correct)
- 4.0.6-300.fc22.x86_64 (incorrect)
- kernel-4.0.6-300.fc22 (incorrect)
- v4.0.6 (incorrect)
This will start the bisect.
fedbisect build <name of subdir>
- Builds the current tree in the sub directory. This may take a while and
there may be some messages about failures. That's okay as long as it continues to run. In order to get a proper set of patches, the scripts have to try lots of different combinations of patches. When it's done building, there will be rpms in <name of subdir>/step-$num . There is only a single RPM for both kernel and all modules.
Once you are done testing you can run
fedbisect good <name of subdir>
fedbisect bad <name of subdir>
to mark the build appropriately and then run fedbisect build <subdir> again to build.
Repeat this process until the script indicates it founds a problem (git bisect message of first bad commit)