1
edit
Changes
→Run Notes
= Koji Follow Que Script =
== Build Notes ==
* This script does not automatically solve circular dependency issues (which there are a lot of, especially packages like sub perl modules)
** latest-follow mode will perform a "list-tagged --latest" and que each unbuilt package in the given order
== Possible Common Repository Breakage Scenarios due to basic circular dependencies ==
=== Scenario 1 All of the following examples take place after this series of events ===
* Start of initial-build
# libA-1.0-1.fc17 is built (Provides: libA.so.1)
# packageB-1.0-1.fc17 has a (BuildRequires: libA,packageC but ) is bootstrapped without it and temporarily builtwith its packageC requirement removed (Requires: libA.so.1)# packageC-1.0-1.fc17 has a (BuildRequires: libA,packageB and is built with ) installs libA-1.0-1.fc17,packageB-1.0-1.fc17 and is built (Requires: libA.so.1)# packageB-1.0-2.fc17 has a (BuildRequires: libA,packageC and is built with packageC-1.0-1.fc17,) installs libA-1.0-1.fc17,packageBpackageC-1.0-1.fc17# libA-2.0-1.fc18 and is built (ProvidesRequires: libA.so.2)## Attempting to build the full version of packageB-2.0-1.fc18 will depend on packageC-1.0-1.fc17 which requires libA.so.1 which only find libA.so.2 with the current repodata (this package needs to be bootstrapped again)## Attempting to build packageC-2.0-1.fc18 will depend on packageB-1.0-2.fc17 which will depend on packageC-1.0-1.fc17 which brings us to the same breakage error above
=== Scenario 2 Building a new library first and the packages that depend on it later ===
# libA-2.0-1.fc18 is built (Provides: libA.so.2)
## All packages * Attempting to build packageB or packageC will now appear to be up to date BuildRequire each other and current except that the repo is now broken as trying to install packageC which both will require then Require libA.so.1 which is not being provided for since the updated libA will then only provides find libA.so.2in the current repodata
=== Scenario 3 Building new packages first and then the following libraries they depend on after ===
# libA-2.0-1.fc18 is built (Provides: libA.so.2)
## * All packages will now appear to be up to date and current except that the repo is now broken as trying to install packageB-2.0-1.fc18 depends on packageC which requires or packageC-2.0-1.fc18,will require libA-2.0-1.fc18,packageB-1so.0-1.fc17 which requires is not being provided for at all since the updated libA.so.1 which only finds provides libA.so.2 given the current repodata
=== Scenario 4 =Run Notes ==
= Downloads =
</pre>
<b>python ~/kf/koji-follow.py ~/kf/koji-follow.conf > ~/logskf/kfo.log 2> ~/logskf/kfe.log</b>
== latest-follow mode ==
</pre>
== Execution Example == <b>python ~/kf/koji-follow.py ~/kf/koji-follow.conf > ~/logskf/kfo.log 2> ~/logskf/kfe.log</b>
= Example Log Output =
== STDOUT Messages ==