HomeFreeBSD

ports-mgmt/sccache-overlay: Use Unix sockets and fix Poudriere builds

Description

ports-mgmt/sccache-overlay: Use Unix sockets and fix Poudriere builds

Poudriere builder jails seem to share one network namespace which
is problematic when building packages in parallel since sccache
binds to localhost:4226. This then leads to jails reusing the
sccache instance from other jails which is problematic and can
cause failures like

1/ missing files due to the filesystem separation:

sccache: caused by: No such file or directory (os error 2)

2/ the sccache instance suddenly going away when a parallel build
finishes and Poudriere shuts down the jail and kills all of its
processes:

sccache: error: failed to execute compile
sccache: caused by: Failed to send data to or receive data from server
sccache: caused by: Failed to read response header
sccache: caused by: failed to fill whole buffer

To properly namespace sccache instances we can use Unix sockets.
There is a request [1] for adding support for Unix sockets
upstream but no code has been written for that AFAICT. This
commit hacks in support for them which should be just about ok
for our purposes.

[1] https://github.com/mozilla/sccache/issues/933

Tested by: jrm

Details

Provenance
tobikAuthored on Feb 7 2022, 6:39 PM
Parents
R11:b9653ecf1d2d: ports-mgmt/portfmt: Update to 1.1.1
Branches
Unknown
Tags
Unknown