From Mageia wiki
Jump to: navigation, search

Mass Package Rebuild

Before a Mageia release, all packages are branched into a stable branch in SVN and rebuilt from source.

Rebuild Process

The rebuild is centred on the script https://gitweb.mageia.org/software/infrastructure/release/tree/rebuild-packages

Documentation for the full rebuild process is TBD.

See this thread for more info.

Package Ordering

Since some packages are dependant on others, rebuilds need to happen in a specific order. The packages without any other dependencies should be built first, then the packages that only have dependencies among the first batch already rebuilt, and so on until all packages have been rebuilt. When building a subset of packages due to a specific upgraded package, these sets can be determined like this:

ruby order.rb <UpgradedPackageName>

This script is only available on duvel to sysadmins, as it looks at autobuild logs directly to get the list of packages that need to be installed while building each package (including basesystem). It is also not that smart as it works at src.rpm level and may find too many loops, for example if something needs a noarch subpackage and not the binary one needing a rebuild, there is no need to wait until it was rebuilt.

A version of this script that can be used on developers' machines is available at https://github.com/pterjan/mageia-build-order but it uses a dependency metadata snapshot that might not be up-to-date.

See Also

Sysadmin New Release Mageia Release Countdown