BitBake Internals WIP Docs

From Yocto Project
Jump to navigationJump to search

PR Service and Fetcher Incremental Revision Notes

There are several problems the fetcher needs to solve when working with source control systems and package managers:

a) The version field (PV) needs to change if any of the underlying inputs from SRC_URI have changed revision. This is to allow new builds to occur when SRC_URI changes.

b) The version field seen by the package manager needs to increase in for changes in the metadata (which comes from the PR Service) in a way that sorts correctly and allows incremental package upgrades

c) The version field seen by the package manager needs to increase in for changes in SRC_URI in a way that sorts correctly and allows incremental package upgrades


To make this happen, several things happen:

a) In scm based recipes, SRCPV is injected into PV in the correct place.

b) SRCPV contains a set of numbers that increase for each new revision, one per SCM source contained in SRC_URI.

c) If automatic revisions are enabled, SRCPV starts with the placeholder string "AUTOINC+"

d) The AUTOINC string is replaced with the correct version number during do_package and the PR service ensures these numbers increment.

e) An automatic incrementing number from the PR Service is appended to PKGR through the AUTOPR variable.

f) AUTOPR is only set during do_package when the packages are generated