Google Summer of Code/2022/Ideas/Portage constructed build environments and circular dependency solver
Portage constructed build environments and 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 |
---|---|
| |
Expected Project Size | Expected Outcomes |
175 hours |
|
Project Difficulty | |
Hard, mainly because handling Portage codebase |