tinkerhel

Created 5 years ago
Maintained by kanarip
Take a Peter, throw some source rpms at it, and captain hook things up
Members 1
Jeroen van Meeuwen (Fedora Project) committed 5 years ago

Proper Preparation Prevents Poor Performance

Mount some .iso files or mirror some repository location and populate repos/dist-el8-beta1/os/{SRPMS,x86_64,ppc64le,...}/. createrepo if needed, but usually you already have some repodata.

Stage 01

This stage establishes which source rpms can be rebuilt using the existing binary rpms in the distributed trees.

Rebuilds source rpms from baseos and appstream only, in that order, and uses baseos and appstream only.

Builds the source rpms not already built, but does not use the results in any of the build roots used (without root cache and with tests).

If you want to speed this up, run the following command before you execute the stage 01 script;

$ cp ./repos/stage-01.build-order-$(uname -i) .

Stage 02

This stage establishes which source rpms can be rebuilt provided the previous stage ended up providing some of the binary rpm sub-packages required in builds that would succeed in this here stage. Think, for example, kernel-devel.

Builds the source rpms not already built, and uses the results from the former stage as well as the results of the previous iteration of this stage.

Continues to cycle through source rpms not already built successfully until the number of successfully built source rpms before and after a cycle is the same (without root cache and with tests).

If you want to speed this up, run the following command before you execute the stage 02 script;

$ cp ./repos/stage-02.build-order-$(uname -i) .

Stage 03

Bootstrap fedpkg. This is an essential component of the following stages.

Introduces a number of build dependencies for fedpkg, which is a long, long recursive hierarchy.

The build dependencies that can be made available in baseos and appstream but may need to be rebuilt with additional options (such as --with python2, --without tests and so forth) are rebuilt in this stage, and end up in their respective repositories (baseos, appstream), or end up in the epel repository at this stage.

Stage 04

Builds glibc in magical ways so gcc can be rebuilt (glibc-static isn't included, glibc needs 5b4007bb565c549efa1b37a61afe390f656398ab for this).

Stage 05

Rebuild gcc given glibc-static per stage 04

Stage 06

Rebuilds glibc without patches.

Stage 07

Rebuilds gcc against unpatched glibc.