GSoC: Separation of Ports Build Process from Local Installation

Theron Tarigo theron at freebsd.org
Tue Jun 18 21:21:37 UTC 2019


Hello all,

This project aims to decouple the build process of the ports framework 
from the local installation.

This past week, I have made the following progress:
- Modified bsd.port.mk to behave as follows:
   * All built dependencies of a port are installed to ${PORTBLDROOT} 
(=${PORTSDIR}/build on my test system).
   * Ports resolve dependencies to ${PORTBLDROOT} instead of to local 
system.
   * All port-building operations (configure, make, make install, etc.) 
are run in a chroot, in which ${LOCALBASE} is mapped to 
${PORTBLDROOT}${LOCALBASE} and base system is mapped as-is.
- Added hooks to several Mk/Uses/* and ports to allow switch to chroot 
where appropriate (far from complete).
- Successfully compiled handful of ports (including C libraries, GNU 
build tools, perl modules, and python modules) under this modified system.

The next goal is to replace the chroot with an equivalent solution in 
userspace (a BSD implementation similar to "fakechroot"), to eliminate 
requirement of superuser intervention.

An overview of the progress and issues is kept at 
https://wiki.freebsd.org/SummerOfCode2019Projects/PortsSeparatedBuild.

Theron Tarigo


More information about the soc-status mailing list