Subject: Re: bug#33171: TMPDIR and build containers

From: [email-masked] (Ludovic Courtès)
Date: Thu, 01 Nov 2018 16:09:02 +0100

Hello Florian,

"pelzflorian (Florian Pelz)" <[email-masked]> skribis:

> The manual says that TMPDIR does not leak into the build environment:
>
>>    You can influence the directory where the daemon stores build trees
>> via the ‘TMPDIR’ environment variable.  However, the build tree within
>> the chroot is always called ‘/tmp/guix-build-NAME.drv-0’, where NAME is
>> the derivation name—e.g., ‘coreutils-8.24’.  This way, the value of
>> ‘TMPDIR’ does not leak inside build environments, which avoids
>> discrepancies in cases where build processes capture the name of their
>> build tree.
>
>
> However, later it says:
>
>>    When the daemon performs a build on behalf of the user, it creates a
>> build directory under ‘/tmp’ or under the directory specified by its
>> ‘TMPDIR’ environment variable; this directory is shared with the
>> container for the duration of the build.  Be aware that using a
>> directory other than ‘/tmp’ can affect build results—for example, with a
>> longer directory name, a build process that uses Unix-domain sockets
>> might hit the name length limitation for ‘sun_path’, which it would
>> otherwise not hit.
>
>
> This seems like a contradiction, or do I misunderstand?

Indeed.  The sentences that starts with “Be aware” is inaccurate; I’ll
remove it.

Thank you!

Ludo’.