GSoC: Separation of Ports Build Process from Local Installation
Theron Tarigo
theron at freebsd.org
Tue Jul 16 01:51:05 UTC 2019
Hello all,
This project aims to decouple the build process of the ports framework
from the local installation. To work around the assumptions made by
ports about dependency file locations, a userspace tool to remap
processes' filesystem namespaces is under development.
This past week, I have made the following progress:
- Created a port of freebsd-user-namespace: devel/userns.
- Integrated devel/userns into PORTS_SEPARATED_BUILD mode of ports
framework.
- freebsd-user-namespace looks up addresses from /usr/lib/debug to
live-patch ld-elf.so.1 where needed.
- Improved integration of devel/userns and devel/bmake into bsd.ports.mk
such that these tools are created when required by PORTS_SEPARATED_BUILD
mode.
- Confirmed that devel/llvm60 and all its dependencies build
successfully, this time in a fresh FreeBSD 12.0-RELEASE installation
with https://github.com/therontarigo/freebsd-ports -b separated as
/usr/ports. This selection of ports represents many build tools commonly
used in building of other ports: python, perl, lua, GNU, CMake, ...
What I am working on next:
- Review and clean up code; eliminate need for any special configuration
to be able to use PORTS_SEPARATED_BUILD.
- Build larger set of ports to discover remaining incompatibilities.
- Set up automated testing of ports to assess progress and catch
regressions.
Project goals and status are kept at
https://wiki.freebsd.org/SummerOfCode2019Projects/PortsSeparatedBuild .
Source of the userspace filesystem namespace tool is shared at
https://github.com/therontarigo/freebsd-user-namespace .
Changes to ports framework are shared at
https://github.com/freebsd/freebsd-ports/compare/master...therontarigo:separated.
Theron Tarigo
More information about the soc-status
mailing list