GSoC: Separation of Ports Build Process from Local Installation
Theron Tarigo
theron at freebsd.org
Tue Jul 9 18:42:23 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:
- Ldconfig hints file is maintained at each dependency port
installation, allowing build tools to run as expected.
- Fixed several more problems with running programs under the namespace
tool:
- Some ports contain /bin/sh scripts with no shebang. FreeBSD
allows this; Namespace tool's execve implementation is changed accordingly.
- Fixed a bug in execve implementation concerning argv[0]
- Debugging output, when requested, now does not get written to
wrong file after (v)fork and/or exec.
- Have ports use devel/bmake instead of /usr/bin/make, where possible,
as the latter is statically linked and cannot handle ports Makefiles'
dependencies on installed files.
- Confirmed that devel/llvm60 and all its dependencies build
successfully. This selection of ports represents many build tools
commonly used in building of other ports. To see for yourself: make -C
/usr/ports/devel/llvm60 all-depends-list
What I am working on next:
- Create a port of freebsd-user-namespace to be used by ports framework,
similarly to how ports-mgmt/pkg is used.
- 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