Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jun 2019 12:13:08 -0700
From:      Theron Tarigo <theron@freebsd.org>
To:        soc-status@freebsd.org
Subject:   GSoC: Separation of Ports Build Process from Local Installation
Message-ID:  <97df7e7a-44a1-0d80-aceb-3df446a515de@freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?97df7e7a-44a1-0d80-aceb-3df446a515de>