Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Aug 2019 01:49:20 -0700
From:      Bakul Shah <bakul@bitblocks.com>
To:        Theron Tarigo <theron@freebsd.org>
Cc:        soc-status@freebsd.org
Subject:   Re: GSoC: Separation of Ports Build Process from Local Installation
Message-ID:  <E02B4453-4C05-4F39-85F7-78E8A4253371@bitblocks.com>
In-Reply-To: <55ccc3d8-4af8-6c98-60e2-8bb522023866@freebsd.org>
References:  <55ccc3d8-4af8-6c98-60e2-8bb522023866@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Is there any way Theron can have access to a set of build machines? That =
would allow him to do some regression testing as well as try out his =
scheme on a much larger number of ports.

> On Aug 6, 2019, at 11:01 PM, Theron Tarigo <theron@freebsd.org> wrote:
>=20
> Hello all,
>=20
> 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.
>=20
> 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.
>=20
> 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)
>=20
> Compare to last summary:
> - 5613 ports tried
> - 2958 (53%) succeeded
> - 177 (3%) failed
> - 2478 (44%) skipped due to failed dependencies
> - Success rate: 94%
>=20
> Although success rate is similar, overall success is much higher (77% =
vs. 53%) due to significantly fewer failed dependencies.
>=20
> What I am working on next:
>=20
> - 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.
>=20
> Project goals and status are kept at =
https://wiki.freebsd.org/SummerOfCode2019Projects/PortsSeparatedBuild =
<https://wiki.freebsd.org/SummerOfCode2019Projects/PortsSeparatedBuild>=20=

>=20
> Source of the userspace filesystem namespace tool is shared at =
https://github.com/therontarigo/freebsd-user-namespace =
<https://github.com/therontarigo/freebsd-user-namespace>; .=20
> Changes to ports framework are shared at =
https://github.com/freebsd/freebsd-ports/compare/master...therontarigo:sep=
arated =
<https://github.com/freebsd/freebsd-ports/compare/master...therontarigo:se=
parated>.
>=20
> Theron Tarigo
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E02B4453-4C05-4F39-85F7-78E8A4253371>