Changes

Jump to: navigation, search

Koji Follow

1,079 bytes added, 10:27, 8 July 2013
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 depends on (BuildRequires: libA,packageC but ) is bootstrapped without it and temporarily builtwith its packageC requirement removed (Requires: libA.so.1)# packageC-1.0-1.fc17 depends on (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 depends on (BuildRequires: libA,packageC and is built with ) installs libA-1.0-1.fc17,packageC-1.0-1.fc17and is built (Requires: libA.so.1) === Building a new library first and the packages that depend on it later === * Start of mass-rebuild
# libA-2.0-1.fc18 is built (Provides: libA.so.2)
## * Attempting to build the full version of packageB-2.0-1.fc18 or packageC will depend on packageC-1.0-1.fc17 BuildRequire each other and which requires both will then Require libA.so.1 which will then only find libA.so.2 with in 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 === Building new packages first and then the following libraries they depend on packageC-1.0-1.fc17 which brings us to the breakage error aboveafter ===
=== Scenario * Start of mass-rebuild# packageB-2.0-2.fc18 (BuildRequires: libA,packageC) installs libA-1.0-1.fc17,packageC-1.0-1.fc17 and is built (Requires: libA.so.1)# packageC-2.0-1.fc18 (BuildRequires: libA,packageB) installs libA-1.0-1.fc17,packageB-2.0-2.fc18 and is built (Requires: libA.so.1)# 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 or packageC will require libA.so.1 which is not being provided for at all since the updated libA only provides libA.so.2 ===
# libA-1.0-1.fc17 == Run Notes == * Packages are not processed in alphabetical order and the output is built (Provides: libA.so.1)not displayed in numerical order# packageB-1.0-1.fc17 depends on packageC but * The koji error log is bootstrapped without it for processing messages and the koji stdout log is for queing messages* You need to add any new package names to a tag before they are built# packageC-1.0-1.fc17 depends on libA* You need a lot of free space in the current directory that the script is running in* Before running the script,packageB and is built attempt a scratch build of a sample package with libA-1.0-1.fc17,packageB-1.0-1.fc17 (Requires: libA.so.1)the given build tag# packageB-1.0-2.fc17 depends on packageC * You can redirect stderr to stdout and is built write stdout to a file so that the messages are in order with packageC-1.0-1.fc17#each other
= 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 ==
1
edit

Navigation menu