From: Christine Lemmer-Webber <cwebber@dustycloud.org>
To: Sarah Morgensen <iskarian@mgsn.dev>
Cc: 50441@debbugs.gnu.org
Subject: bug#50441: Wrong build directory number shown in environment-variables file
Date: Tue, 07 Sep 2021 10:25:59 -0400 [thread overview]
Message-ID: <877dfscvh8.fsf@dustycloud.org> (raw)
In-Reply-To: <86eea1hu44.fsf@mgsn.dev>
Loops like Tobias gave the explanation in their reply:
> Part of the build environment isolation/reproducibility is that
> processes inside it always see a build directory ending in ‘-0’,
> regardless of the file name on the host system.
Sarah Morgensen <iskarian@mgsn.dev> writes:
> Hello Christine,
>
> Christine Lemmer-Webber <cwebber@dustycloud.org> writes:
>
>> I was doing guix build with "--keep-missing" and looking around in a few
>> of the output directories. I was peeking in:
>>
>> /tmp/guix-build-u-boot-mnt-reform2-2021.06.drv-4
>>
>> But wait... the "environment-variables" file says:
>>
>> #+BEGIN_SRC sh
>> export TEMP=\
>> "/tmp/guix-build-u-boot-mnt-reform2-2021.06.drv-0"
>> export TEMPDIR=\
>> "/tmp/guix-build-u-boot-mnt-reform2-2021.06.drv-0"
>> export TMP=\
>> "/tmp/guix-build-u-boot-mnt-reform2-2021.06.drv-0"
>> export TMPDIR=\
>> "/tmp/guix-build-u-boot-mnt-reform2-2021.06.drv-0"
>> #+END_SRC
>>
>> Now wait a minute. Look at that last number. What the hell is going on
>> here? Is this a bug in Guix? Why is it pointing at -0 in the -4 build
>> directory?
>>
>> Does this point at a more serious issue? What's going on?
>
> I've definitely noticed this before as well, and had to work around it
> (I needed to inspect temp caches). Thanks for actually sending a bug
> report :)
>
> I'm not at all familiar with the nix code, but it looks like this might
> be related:
>
> nix/libstore/build.cc:1654
>
> /* In a sandbox, for determinism, always use the same temporary
> directory. */
> tmpDirInSandbox = useChroot ? canonPath("/tmp", true) + "/guix-build-" + drvName + "-0" : tmpDir;
>
> /* For convenience, set an environment pointing to the top build
> directory. */
> env["NIX_BUILD_TOP"] = tmpDirInSandbox;
>
> /* Also set TMPDIR and variants to point to this directory. */
> env["TMPDIR"] = env["TEMPDIR"] = env["TMP"] = env["TEMP"] = tmpDirInSandbox;
>
> /* Explicitly set PWD to prevent problems with chroot builds. In
> particular, dietlibc cannot figure out the cwd because the
> inode of the current directory doesn't appear in .. (because
> getdents returns the inode of the mount point). */
> env["PWD"] = tmpDirInSandbox;
>
> I'm not entirely sure what's going on. I think we build in chroot by
> default, which would explain why the temp vars get set to "-0" even
> though everything else seems to work okay.
prev parent reply other threads:[~2021-09-07 14:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-06 21:22 bug#50441: Wrong build directory number shown in environment-variables file Christine Lemmer-Webber
2021-09-07 4:34 ` Tobias Geerinckx-Rice via Bug reports for GNU Guix
2021-09-07 14:26 ` Christine Lemmer-Webber
2021-09-14 7:47 ` Ludovic Courtès
2021-09-07 4:44 ` Sarah Morgensen
2021-09-07 14:25 ` Christine Lemmer-Webber [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877dfscvh8.fsf@dustycloud.org \
--to=cwebber@dustycloud.org \
--cc=50441@debbugs.gnu.org \
--cc=iskarian@mgsn.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).