Subject: [bug#52174] [PATCH v2 1/6] gnu: add crun

From: Timmy Douglas <[email-masked]>
Date: Tue, 21 Dec 2021 12:17:10 -0800

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Timmy Douglas <[email-masked]> skribis:
>
>> * gnu/packages/containers.scm: new file
>> * gnu/local.mk: add containers.scm
>
> [...]
>
>> +      (arguments
>> +       `(#:tests? #f
>
> Sorry for not noticing earlier: we try hard to run test suites, and only
> disable it as a last resort, with a comment explaining why.  Often, we
> disable specific tests that cannot run in the build environment (for
> instance because they assume network access) and run everything else.
>
> I had a quick go at running crun’s test suite, and there’s a number of
> failures, which is not reassuring.
>
> Could you investigate a bit with the goal of fixing any actual issues
> the test suite reveals and/or skipping individual tests that cannot be
> run?

are there some docs I could refer to on how Guix sandboxes the build?
I tried
https://guix.gnu.org/manual/en/html_node/Debugging-Build-Failures.html#Debugging-Build-Failures
but I think I need to go further than sourcing env vars.

I tried modifying `make check` phase to invoking `mount` to see if I
could poke around (which didn't exactly work in my quick attempt...)
because I'm not sure how to debug some of the issues. I suspect some are
due to the fs layout/mounts. Probably could figure it out with some more
time but thought it might be best to ask first.

With these changes I could get them to pass by manually `make check`ing
in the --keep-failed directory:

           (add-after 'unpack 'fix-tests
             (lambda _
               (substitute* (find-files "tests" "\\.(c|py)")
                 (("/bin/true") (which "true"))
                 (("/bin/false") (which "false"))
                 ; relies on sd_notify which requires systemd?
                 (("\"sd-notify\" : test_sd_notify,") "")
                 (("\"sd-notify-file\" : test_sd_notify_file,") "")))))))

from guix build:

============================================================================
Testsuite summary for crun UNKNOWN
============================================================================
# TOTAL: 73
# PASS:  9
# SKIP:  28
# XFAIL: 0
# FAIL:  36
# XPASS: 0
# ERROR: 0

from cd /tmp/guix-build-crun-1.3.drv-5/source && make check

============================================================================
Testsuite summary for crun UNKNOWN
============================================================================
# TOTAL: 73
# PASS:  40
# SKIP:  33
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0

> Nitpick: You can omit the trailing #t now (yay!).

great!