Difference between revisions of "ABF: Automatic rebuild of package reverse dependencies"

From Rosalab Wiki
Jump to: navigation, search
m (added category)
 
Line 14: Line 14:
  
 
[[ru:Сборочная_среда_ABF:_сборка_пакета_с_учётом_его_обратных_зависимостей]]
 
[[ru:Сборочная_среда_ABF:_сборка_пакета_с_учётом_его_обратных_зависимостей]]
 +
* [http://writemyessay.co/write-essay.php we will write essay]

Latest revision as of 16:54, 20 February 2013

One of the unique ABF features is possibility to rebuild a package with all its reverse dependencies - iof the package itself is build successfully, ABF can automatically trigger rebuild of all packages that depend on it (for example, to pick up library changes). In many cases packages built with older version can work incorrectly or fail to work at all with the new version. In order to do this, ABF iteratively calculates reverse build dependency tree of the package being built. That is, it takes package "A", detects that it is required to build packages "B" and "C", then calculates reverse dependencies of "B" and "C" and so on, until a closure set is obtained.
The tree is built using width-first search algorithm

  1. gcc
  2. tar,kernel
  3. mc,firefox,mesa

Build server builds packages level by level in multiple threads - that is, a package from some level will be built only when all packages from higher levels are already rebuilt successfully.
If loops are detected when calculating dependency tree (i.e., "A" requires "B" and "B" requires "A"), then the rebuild process will be performed twice: first, all packages on all tree levels will be build, and then they will be rebuilt using results from the first stage:

Bbdt.jpg
ABF Documentation
ABF Getting Started • ABF - About • ABF: Automatic rebuild of package reverse dependencies • Build server structure and workflow • Creating ABF build bots