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