From Gentoo Wiki
Jump to:navigation Jump to:search

Constructed build environments, circular dependency solver

Improving on the new binpkgs code, we could construct consistent and clean build environments for packages. By generating binpkgs as SquashFS, portage could construct build environments in a mount namespace, with constricted available packages, to detect build system bugs like automatic dependency detection, hard-coded paths, direct calls to gcc/clang, missing (or even extraneous) dependencies. This decoupling of the build and host environment also allows us to break apart build and install steps in the build graph, so that circular dependencies could be solved by building temporary packages with cycle-breaking flags (for instance, harfbuzz[-truetype], freetype[harfbuzz], harfbuzz[truetype], install both).

Contacts Required Skills
  • TODO
  • Understanding of Linux namespaces, particularly mount namespaces
  • Ability to write Python
Expected Project Size Expected Outcomes

175 hours

  • Improved QA
  • Prevent confusion by circular dependencies
Project Difficulty