Subject: Re: bug#36443: Canonicalized build directory name in container leads to confusion (was guix build mixes build dirs?)

From: Ludovic Courtès <[email-masked]>
Date: Thu, 04 Jul 2019 09:59:47 +0200

Hi,

Robert Vollmert <[email-masked]> skribis:

>> On 2. Jul 2019, at 15:37, Ludovic Courtès <[email-masked]> wrote:
>> 
>>>     /* In a sandbox, for determinism, always use the same temporary
>>>        directory. */
>>> -    tmpDirInSandbox = useChroot ? canonPath("/tmp", true) + "/guix-build-" + drvName + "-0" : tmpDir;
>>> +    tmpDirInSandbox = useChroot ? canonPath("/tmp", true) + "/guix-build-" + drvName : tmpDir;
>> 
>> The result would be that the temporary directory would always have a
>> different name inside and outside the container.  Consequently,
>> debugging along the lines of what the manual suggests (info "(guix)
>> Debugging Build Failures") would become pretty much impossible.
>
> Why do you think it would become impossible?

“Impossible” is an exaggeration, but when you source the
‘environment-variables’ file, for example, PWD and other variables will
refer to /tmp/guix-build-….drv, which won’t exist.  Likewise, generated
files such as Makefiles would have captured the ….drv name.

Like Mark writes, it’s not the end of the world: you can simply rename
/tmp/guix-build-….drv-0 to /tmp/guix-build-….drv.  However, it means
that things would be inconvenient by default, which doesn’t sound great
to me.

WDYT?

Thanks,
Ludo’.