Hello,

Danny Milosavljevic <dan...@scratchpost.org> 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’.

Reply via email to