[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Differences between container used by "guix build" and "guix environ
From: |
Ludovic Courtès |
Subject: |
Re: Differences between container used by "guix build" and "guix environment -C -N" |
Date: |
Mon, 19 Jun 2017 10:21:33 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hello,
Danny Milosavljevic <address@hidden> skribis:
> I'm trying to track down the test_process_mask problem in Guix when trying to
> test rustc.
>
> For that I did:
>
> (apply attached patch)
> $ guix build --keep-failed rustc # will fail
> $ cd /tmp/guix-build-rustc-1.16.0.drv-0
> $ guix environment -C -N rustc
> $ bash
> $ source environment-variables
> $ cd rustc-1.16.0-src
> $ ./x86_64-unknown-linux-gnu/stage2/test/stdtest-x86_64-unknown-linux-gnu
> 2>&1 |grep test_process_mask
>
> will not fail.
>
> Why does it fail in "guix build", then?
What does the test do?
I tried to document the differences between the container the daemon
creates and the one you get with “guix environment -C” here:
https://www.gnu.org/software/guix/manual/html_node/Debugging-Build-Failures.html
Essentially it boils down to /bin/sh available in one case and not in
the other, and UID being zero in one case and something else in the
other. If you add “-N”, then of course you have networking, which is
not available in the guix-daemon container.
In the end, if you want to be sure what the differences are, you can
compare:
https://git.savannah.gnu.org/cgit/guix.git/tree/nix/libstore/build.cc#n2062
and
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/build/linux-container.scm#n209
Hopefully with reepca’s work we can eventually have a single
implementation. :-)
HTH!
Ludo’.