Date: Tue, 6 Aug 2019 23:01:58 -0700 From: Theron Tarigo <theron@freebsd.org> To: soc-status@freebsd.org Subject: GSoC: Separation of Ports Build Process from Local Installation Message-ID: <55ccc3d8-4af8-6c98-60e2-8bb522023866@freebsd.org>
index | next in thread | raw e-mail
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: freebsd-user-namespace, provided as port devel/userns. This past week, I have made the following progress: - Modified bsd.port.mk to run pre-* do-* post-* ports targets in a sub-make in userns environment, only when needed (when a port defines those targets itself). - Fixed some non-fatal errors typically seen during dependency installation. - Added support to userns's execve implementation to run ELF executables which use DT_RUNPATH by translating this to an appropriate LD_LIBMAP environment value. - Attributed some failures to a faulty FreeBSD installation on my test system, which is now fixed. Latest summary of port building success: - 5610 ports considered for testing (2000 requested + their dependencies) - 4321 (77%) succeeded - 140 (2%) failed - 1149 (20%) skipped due to failed dependencies - Success rate: 97% (portion succeeded of those which were started, not skipped) Compare to last summary: - 5613 ports tried - 2958 (53%) succeeded - 177 (3%) failed - 2478 (44%) skipped due to failed dependencies - Success rate: 94% Although success rate is similar, overall success is much higher (77% vs. 53%) due to significantly fewer failed dependencies. What I am working on next: - Fix known issues in userns: resolve symbolic link targets, resolve ".." in pathnames. - Eliminate remaining dependency failures. - Compare the packages built by separated-build method to either official packages or ports built by original FreeBSD method. Any differences should be attributable to built times and hostnames. - Provide more thorough documentation of PORTS_SEPARATED_BUILD, in particular its usage and its limitations, so that users and devs interested in this project can more easily test it for themselves. 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 Tarigohome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55ccc3d8-4af8-6c98-60e2-8bb522023866>
