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


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

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


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