* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
@ 2015-09-04 6:44 Alex Vong
2015-09-04 14:12 ` Thompson, David
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Alex Vong @ 2015-09-04 6:44 UTC (permalink / raw)
To: 21410
Hi everyone,
I tried to compile Guix on Debian Sid,
the compilation succeeded,
but the 2 of the tests in the Testsuit failed.
The following is what commands I have run,
all commands are run as non-root:
$ git clone git://git.savannah.gnu.org/guix.git
$ cd guix
$ ./bootstrap
$ ./configure
$ make -j4
$ make -j4 check
The Testsuite summary (test-suite.log) is inlined below:
======================================
GNU Guix 0.8.3: ./test-suite.log
======================================
# TOTAL: 47
# PASS: 45
# SKIP: 0
# XFAIL: 0
# FAIL: 2
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: tests/syscalls
====================
;;; note: source file ./srfi/srfi-64.scm
;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
ERROR: In procedure primitive-load:
ERROR: In procedure scm_i_lreadparen: tests/syscalls.scm:128:14: end of file
%%%% Starting test syscalls (Writing full log to "syscalls.log")
tests/syscalls.scm:85: FAIL clone
tests/syscalls.scm:98: FAIL setns
;;; note: source file ./srfi/srfi-64.scm
;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
%%%% Starting test syscalls (Writing full log to "syscalls.log")
tests/syscalls.scm:85: FAIL clone
tests/syscalls.scm:98: FAIL setns
tests/syscalls.scm:127: FAIL pivot-root
# of expected passes 15
# of unexpected failures 3
FAIL: tests/containers
======================
%%%% Starting test containers (Writing full log to "containers.log")
tests/containers.scm:37: FAIL call-with-container, user namespace
tests/containers.scm:45: FAIL call-with-container, uts namespace
tests/containers.scm:55: FAIL call-with-container, pid namespace
tests/containers.scm:70: FAIL call-with-container, mnt namespace
tests/containers.scm:77: FAIL call-with-container, all namespaces
tests/containers.scm:83: FAIL container-excursion
# of unexpected failures 6
;;; note: source file ./srfi/srfi-64.scm
;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
FAIL tests/containers.scm (exit status: 1)
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 6:44 bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian Alex Vong
@ 2015-09-04 14:12 ` Thompson, David
2015-09-04 15:02 ` Alex Vong
2015-09-07 1:47 ` Alex Vong
2 siblings, 0 replies; 13+ messages in thread
From: Thompson, David @ 2015-09-04 14:12 UTC (permalink / raw)
To: Alex Vong; +Cc: 21410
Hello Alex,
On Fri, Sep 4, 2015 at 2:44 AM, Alex Vong <alexvong1995@gmail.com> wrote:
> Hi everyone,
>
> I tried to compile Guix on Debian Sid,
> the compilation succeeded,
> but the 2 of the tests in the Testsuit failed.
>
> The following is what commands I have run,
> all commands are run as non-root:
>
> $ git clone git://git.savannah.gnu.org/guix.git
> $ cd guix
> $ ./bootstrap
> $ ./configure
> $ make -j4
> $ make -j4 check
>
> The Testsuite summary (test-suite.log) is inlined below:
>
> ======================================
> GNU Guix 0.8.3: ./test-suite.log
> ======================================
>
> # TOTAL: 47
> # PASS: 45
> # SKIP: 0
> # XFAIL: 0
> # FAIL: 2
> # XPASS: 0
> # ERROR: 0
>
> .. contents:: :depth: 2
>
> FAIL: tests/syscalls
> ====================
>
> ;;; note: source file ./srfi/srfi-64.scm
> ;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
> ERROR: In procedure primitive-load:
> ERROR: In procedure scm_i_lreadparen: tests/syscalls.scm:128:14: end of file
> %%%% Starting test syscalls (Writing full log to "syscalls.log")
> tests/syscalls.scm:85: FAIL clone
> tests/syscalls.scm:98: FAIL setns
> ;;; note: source file ./srfi/srfi-64.scm
> ;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
> %%%% Starting test syscalls (Writing full log to "syscalls.log")
> tests/syscalls.scm:85: FAIL clone
> tests/syscalls.scm:98: FAIL setns
> tests/syscalls.scm:127: FAIL pivot-root
> # of expected passes 15
> # of unexpected failures 3
>
> FAIL: tests/containers
> ======================
>
> %%%% Starting test containers (Writing full log to "containers.log")
> tests/containers.scm:37: FAIL call-with-container, user namespace
> tests/containers.scm:45: FAIL call-with-container, uts namespace
> tests/containers.scm:55: FAIL call-with-container, pid namespace
> tests/containers.scm:70: FAIL call-with-container, mnt namespace
> tests/containers.scm:77: FAIL call-with-container, all namespaces
> tests/containers.scm:83: FAIL container-excursion
> # of unexpected failures 6
> ;;; note: source file ./srfi/srfi-64.scm
> ;;; newer than compiled /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
> FAIL tests/containers.scm (exit status: 1)
Could you attach the containers.log and syscalls.log files so I could
see some more detail?
Also, what version of Linux and glibc are you using?
Thanks!
- Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 6:44 bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian Alex Vong
2015-09-04 14:12 ` Thompson, David
@ 2015-09-04 15:02 ` Alex Vong
2015-09-04 20:07 ` Ludovic Courtès
2015-09-07 1:47 ` Alex Vong
2 siblings, 1 reply; 13+ messages in thread
From: Alex Vong @ 2015-09-04 15:02 UTC (permalink / raw)
To: Thompson, David, 21410
[-- Attachment #1: Type: text/plain, Size: 3175 bytes --]
Hi Dave,
Please see the reply below.
2015-09-04 22:12 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
> Hello Alex,
>
> On Fri, Sep 4, 2015 at 2:44 AM, Alex Vong <alexvong1995@gmail.com> wrote:
>> Hi everyone,
>>
>> I tried to compile Guix on Debian Sid,
>> the compilation succeeded,
>> but the 2 of the tests in the Testsuit failed.
>>
>> The following is what commands I have run,
>> all commands are run as non-root:
>>
>> $ git clone git://git.savannah.gnu.org/guix.git
>> $ cd guix
>> $ ./bootstrap
>> $ ./configure
>> $ make -j4
>> $ make -j4 check
>>
>> The Testsuite summary (test-suite.log) is inlined below:
>>
>> ======================================
>> GNU Guix 0.8.3: ./test-suite.log
>> ======================================
>>
>> # TOTAL: 47
>> # PASS: 45
>> # SKIP: 0
>> # XFAIL: 0
>> # FAIL: 2
>> # XPASS: 0
>> # ERROR: 0
>>
>> .. contents:: :depth: 2
>>
>> FAIL: tests/syscalls
>> ====================
>>
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;; newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> ERROR: In procedure primitive-load:
>> ERROR: In procedure scm_i_lreadparen: tests/syscalls.scm:128:14: end of
>> file
>> %%%% Starting test syscalls (Writing full log to "syscalls.log")
>> tests/syscalls.scm:85: FAIL clone
>> tests/syscalls.scm:98: FAIL setns
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;; newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> %%%% Starting test syscalls (Writing full log to "syscalls.log")
>> tests/syscalls.scm:85: FAIL clone
>> tests/syscalls.scm:98: FAIL setns
>> tests/syscalls.scm:127: FAIL pivot-root
>> # of expected passes 15
>> # of unexpected failures 3
>>
>> FAIL: tests/containers
>> ======================
>>
>> %%%% Starting test containers (Writing full log to "containers.log")
>> tests/containers.scm:37: FAIL call-with-container, user namespace
>> tests/containers.scm:45: FAIL call-with-container, uts namespace
>> tests/containers.scm:55: FAIL call-with-container, pid namespace
>> tests/containers.scm:70: FAIL call-with-container, mnt namespace
>> tests/containers.scm:77: FAIL call-with-container, all namespaces
>> tests/containers.scm:83: FAIL container-excursion
>> # of unexpected failures 6
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;; newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> FAIL tests/containers.scm (exit status: 1)
>
> Could you attach the containers.log and syscalls.log files so I could
> see some more detail?
>
Sure, they are in the attahment.
> Also, what version of Linux and glibc are you using?
>
kernel version:
$ uname -a
Linux debian 4.1.0-2-amd64 #1 SMP Debian 4.1.6-1 (2015-08-23) x86_64 GNU/Linux
libc version:
$ LC_ALL=C ldd --version
ldd (Debian GLIBC 2.19-19) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
> Thanks!
>
> - Dave
>
Thanks for the quick reply as well!
Cheers,
Alex
[-- Attachment #2: containers.log --]
[-- Type: text/x-log, Size: 3788 bytes --]
%%%% Starting test containers
Group begin: containers
Test begin:
test-name: "call-with-container, user namespace"
source-file: "tests/containers.scm"
source-line: 37
source-form: (test-assert "call-with-container, user namespace" (zero? (call-with-container (quote ()) (lambda () (assert-exit (and (zero? (getuid)) (zero? (getgid))))) #:namespaces (quote (user)))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
test-name: "call-with-container, uts namespace"
source-file: "tests/containers.scm"
source-line: 45
source-form: (test-assert "call-with-container, uts namespace" (zero? (call-with-container (quote ()) (lambda () (sethostname "test-container") (primitive-exit 0)) #:namespaces (quote (user uts)))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
test-name: "call-with-container, pid namespace"
source-file: "tests/containers.scm"
source-line: 55
source-form: (test-assert "call-with-container, pid namespace" (zero? (call-with-container (quote ()) (lambda () (match (primitive-fork) (0 (assert-exit (= 2 (getpid)))) (pid (primitive-exit (match (waitpid pid) ((_ . status) (status:exit-val status))))))) #:namespaces (quote (user pid)))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
test-name: "call-with-container, mnt namespace"
source-file: "tests/containers.scm"
source-line: 70
source-form: (test-assert "call-with-container, mnt namespace" (zero? (call-with-container (quote (("none" device "/testing" "tmpfs" () #f #f))) (lambda () (assert-exit (file-exists? "/testing"))) #:namespaces (quote (user mnt)))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
test-name: "call-with-container, all namespaces"
source-file: "tests/containers.scm"
source-line: 77
source-form: (test-assert "call-with-container, all namespaces" (zero? (call-with-container (quote ()) (lambda () (primitive-exit 0)))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
test-name: "container-excursion"
source-file: "tests/containers.scm"
source-line: 83
source-form: (test-assert "container-excursion" (call-with-temporary-directory (lambda (root) (match (list (pipe) (pipe)) (((start-in . start-out) (end-in . end-out)) (define (container) (close end-out) (close start-in) (write (quote ready) start-out) (close start-out) (read end-in) (close end-in)) (define (namespaces pid) (let ((pid (number->string pid))) (map (lambda (ns) (readlink (string-append "/proc/" pid "/ns/" ns))) (quote ("user" "ipc" "uts" "net" "pid" "mnt"))))) (let* ((pid (run-container root (quote ()) %namespaces 1 container)) (container-namespaces (namespaces pid)) (result (begin (close start-out) (read start-in) (close start-in) (container-excursion pid (lambda () (match (primitive-fork) (0 (assert-exit (equal? container-namespaces (namespaces (getpid))))) (fork-pid (matc
h (waitpid fork-pid) ((_ . status) (primitive-exit (status:exit-val status))))))))))) (close end-in) (write (quote done) end-out) (close end-out) (waitpid pid) (zero? result)))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Group end: containers
# of unexpected failures 6
[-- Attachment #3: syscalls.log --]
[-- Type: text/x-log, Size: 11966 bytes --]
%%%% Starting test syscalls
Group begin: syscalls
Test begin:
test-name: "mount, ENOENT"
source-file: "tests/syscalls.scm"
source-line: 33
source-form: (test-equal "mount, ENOENT" ENOENT (catch (quote system-error) (lambda () (mount "/dev/null" "/does-not-exist" "ext2") #f) (compose system-error-errno list)))
Test end:
result-kind: pass
actual-value: 2
expected-value: 2
Test begin:
test-name: "umount, ENOENT/EPERM"
source-file: "tests/syscalls.scm"
source-line: 41
source-form: (test-assert "umount, ENOENT/EPERM" (catch (quote system-error) (lambda () (umount "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 2)
Test begin:
test-name: "mount-points"
source-file: "tests/syscalls.scm"
source-line: 50
source-form: (test-assert "mount-points" (any (cute member <> (mount-points)) (quote ("/" "/proc" "/sys" "/dev"))))
Test end:
result-kind: pass
actual-value: ("/" "/run/lock" "/sys/fs/pstore" "/run/shm" "/run/rpc_pipefs" "/proc/sys/fs/binfmt_misc" "/sys/fs/cgroup" "/run/cgmanager/fs" "/run/user/116" "/run/user/1000" "/media/alexvong1995/e6466814-8885-4b47-ad1c-a8ad4e3f4552")
Test begin:
test-name: "swapon, ENOENT/EPERM"
source-file: "tests/syscalls.scm"
source-line: 56
source-form: (test-assert "swapon, ENOENT/EPERM" (catch (quote system-error) (lambda () (swapon "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 2)
Test begin:
test-name: "swapoff, ENOENT/EINVAL/EPERM"
source-file: "tests/syscalls.scm"
source-line: 64
source-form: (test-assert "swapoff, ENOENT/EINVAL/EPERM" (catch (quote system-error) (lambda () (swapoff "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM EINVAL ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 22 2)
Test begin:
test-name: "mkdtemp!"
source-file: "tests/syscalls.scm"
source-line: 72
source-form: (test-assert "mkdtemp!" (let* ((tmp (or (getenv "TMPDIR") "/tmp")) (dir (mkdtemp! (string-append tmp "/guix-test-XXXXXX")))) (and (file-exists? dir) (begin (rmdir dir) #t))))
Test end:
result-kind: pass
actual-value: #t
Test begin:
test-name: "clone"
source-file: "tests/syscalls.scm"
source-line: 85
source-form: (test-assert "clone" (match (clone (logior CLONE_NEWUSER SIGCHLD)) (0 (primitive-exit 42)) (pid (and (not (equal? (readlink (user-namespace pid)) (readlink (user-namespace (getpid))))) (match (waitpid pid) ((_ . status) (= 42 (status:exit-val status))))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
Test begin:
test-name: "setns"
source-file: "tests/syscalls.scm"
source-line: 98
source-form: (test-assert "setns" (match (clone (logior CLONE_NEWUSER SIGCHLD)) (0 (primitive-exit 0)) (clone-pid (match (pipe) ((in . out) (match (primitive-fork) (0 (close in) (call-with-input-file (user-namespace clone-pid) (lambda (port) (setns (port->fdes port) 0))) (write (quote done) out) (close out) (primitive-exit 0)) (fork-pid (close out) (read in) (let ((result (and (equal? (readlink (user-namespace clone-pid)) (readlink (user-namespace fork-pid)))))) (waitpid clone-pid) (waitpid fork-pid) result))))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
%%%% Starting test syscalls
Group begin: syscalls
Test begin:
test-name: "mount, ENOENT"
source-file: "tests/syscalls.scm"
source-line: 33
source-form: (test-equal "mount, ENOENT" ENOENT (catch (quote system-error) (lambda () (mount "/dev/null" "/does-not-exist" "ext2") #f) (compose system-error-errno list)))
Test end:
result-kind: pass
actual-value: 2
expected-value: 2
Test begin:
test-name: "umount, ENOENT/EPERM"
source-file: "tests/syscalls.scm"
source-line: 41
source-form: (test-assert "umount, ENOENT/EPERM" (catch (quote system-error) (lambda () (umount "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 2)
Test begin:
test-name: "mount-points"
source-file: "tests/syscalls.scm"
source-line: 50
source-form: (test-assert "mount-points" (any (cute member <> (mount-points)) (quote ("/" "/proc" "/sys" "/dev"))))
Test end:
result-kind: pass
actual-value: ("/" "/run/lock" "/sys/fs/pstore" "/run/shm" "/run/rpc_pipefs" "/proc/sys/fs/binfmt_misc" "/sys/fs/cgroup" "/run/cgmanager/fs" "/run/user/116" "/run/user/1000" "/media/alexvong1995/e6466814-8885-4b47-ad1c-a8ad4e3f4552")
Test begin:
test-name: "swapon, ENOENT/EPERM"
source-file: "tests/syscalls.scm"
source-line: 56
source-form: (test-assert "swapon, ENOENT/EPERM" (catch (quote system-error) (lambda () (swapon "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 2)
Test begin:
test-name: "swapoff, ENOENT/EINVAL/EPERM"
source-file: "tests/syscalls.scm"
source-line: 64
source-form: (test-assert "swapoff, ENOENT/EINVAL/EPERM" (catch (quote system-error) (lambda () (swapoff "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM EINVAL ENOENT)))))
Test end:
result-kind: pass
actual-value: (1 22 2)
Test begin:
test-name: "mkdtemp!"
source-file: "tests/syscalls.scm"
source-line: 72
source-form: (test-assert "mkdtemp!" (let* ((tmp (or (getenv "TMPDIR") "/tmp")) (dir (mkdtemp! (string-append tmp "/guix-test-XXXXXX")))) (and (file-exists? dir) (begin (rmdir dir) #t))))
Test end:
result-kind: pass
actual-value: #t
Test begin:
test-name: "clone"
source-file: "tests/syscalls.scm"
source-line: 85
source-form: (test-assert "clone" (match (clone (logior CLONE_NEWUSER SIGCHLD)) (0 (primitive-exit 42)) (pid (and (not (equal? (readlink (user-namespace pid)) (readlink (user-namespace (getpid))))) (match (waitpid pid) ((_ . status) (= 42 (status:exit-val status))))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
Test begin:
test-name: "setns"
source-file: "tests/syscalls.scm"
source-line: 98
source-form: (test-assert "setns" (match (clone (logior CLONE_NEWUSER SIGCHLD)) (0 (primitive-exit 0)) (clone-pid (match (pipe) ((in . out) (match (primitive-fork) (0 (close in) (call-with-input-file (user-namespace clone-pid) (lambda (port) (setns (port->fdes port) 0))) (write (quote done) out) (close out) (primitive-exit 0)) (fork-pid (close out) (read in) (let ((result (and (equal? (readlink (user-namespace clone-pid)) (readlink (user-namespace fork-pid)))))) (waitpid clone-pid) (waitpid fork-pid) result))))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/ns/user") (2))
Test begin:
test-name: "pivot-root"
source-file: "tests/syscalls.scm"
source-line: 127
source-form: (test-assert "pivot-root" (match (pipe) ((in . out) (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD)) (0 (close in) (call-with-temporary-directory (lambda (root) (let ((put-old (string-append root "/real-root"))) (mount "none" root "tmpfs") (mkdir put-old) (call-with-output-file (string-append root "/test") (lambda (port) (display "testing\n" port))) (pivot-root root put-old) (write (file-exists? "/test") out) (close out)))) (primitive-exit 0)) (pid (close out) (let ((result (read in))) (close in) (and (zero? (match (waitpid pid) ((_ . status) (status:exit-val status)))) (eq? #t result))))))))
Test end:
result-kind: fail
actual-value: #f
actual-error: (system-error "waitpid" "~A" ("No child processes") (10))
Test begin:
test-name: "all-network-interface-names"
source-file: "tests/syscalls.scm"
source-line: 155
source-form: (test-assert "all-network-interface-names" (match (all-network-interface-names) (((? string? names) ..1) (member "lo" names))))
Test end:
result-kind: pass
actual-value: ("lo")
Test begin:
test-name: "network-interface-names"
source-file: "tests/syscalls.scm"
source-line: 160
source-form: (test-assert "network-interface-names" (match (network-interface-names) (((? string? names) ..1) (lset<= string=? names (all-network-interface-names)))))
Test end:
result-kind: pass
actual-value: #t
Test begin:
test-name: "network-interface-flags"
source-file: "tests/syscalls.scm"
source-line: 165
source-form: (test-assert "network-interface-flags" (let* ((sock (socket AF_INET SOCK_STREAM 0)) (flags (network-interface-flags sock "lo"))) (close-port sock) (and (not (zero? (logand flags IFF_LOOPBACK))) (not (zero? (logand flags IFF_UP))))))
Test end:
result-kind: pass
actual-value: #t
Test begin:
test-name: "loopback-network-interface?"
source-file: "tests/syscalls.scm"
source-line: 172
source-form: (test-equal "loopback-network-interface?" ENODEV (and (loopback-network-interface? "lo") (catch (quote system-error) (lambda () (loopback-network-interface? "nonexistent") #f) (lambda args (system-error-errno args)))))
Test end:
result-kind: pass
actual-value: 19
expected-value: 19
Test begin:
test-name: "set-network-interface-flags"
source-file: "tests/syscalls.scm"
source-line: 183
source-form: (test-assert "set-network-interface-flags" (let ((sock (socket AF_INET SOCK_STREAM 0))) (catch (quote system-error) (lambda () (set-network-interface-flags sock "lo" IFF_UP)) (lambda args (close-port sock) (memv (system-error-errno args) (list EPERM EACCES))))))
Test end:
result-kind: pass
actual-value: (1 13)
Test begin:
test-name: "network-interface-address lo"
source-file: "tests/syscalls.scm"
source-line: 193
source-form: (test-equal "network-interface-address lo" (make-socket-address AF_INET (inet-pton AF_INET "127.0.0.1") 0) (let* ((sock (socket AF_INET SOCK_STREAM 0)) (addr (network-interface-address sock "lo"))) (close-port sock) addr))
Test end:
result-kind: pass
actual-value: #(2 2130706433 0)
expected-value: #(2 2130706433 0)
Test begin:
test-name: "set-network-interface-address"
source-file: "tests/syscalls.scm"
source-line: 201
source-form: (test-assert "set-network-interface-address" (let ((sock (socket AF_INET SOCK_STREAM 0))) (catch (quote system-error) (lambda () (set-network-interface-address sock "nonexistent" (make-socket-address AF_INET (inet-pton AF_INET "127.12.14.15") 0))) (lambda args (close-port sock) (memv (system-error-errno args) (list EPERM EACCES))))))
Test end:
result-kind: pass
actual-value: (1 13)
Test begin:
test-name: "network-interfaces returns one or more interfaces"
source-file: "tests/syscalls.scm"
source-line: 215
source-form: (test-equal "network-interfaces returns one or more interfaces" (quote (#t #t #t)) (match (network-interfaces) ((interfaces ..1) (list (every interface? interfaces) (every string? (map interface-name interfaces)) (every vector? (map interface-address interfaces))))))
Test end:
result-kind: pass
actual-value: (#t #t #t)
expected-value: (#t #t #t)
Test begin:
test-name: "network-interfaces returns \"lo\""
source-file: "tests/syscalls.scm"
source-line: 223
source-form: (test-equal "network-interfaces returns \"lo\"" (list #t (make-socket-address AF_INET (inet-pton AF_INET "127.0.0.1") 0)) (match (filter (lambda (interface) (string=? "lo" (interface-name interface))) (network-interfaces)) ((loopbacks ..1) (list (every (lambda (lo) (not (zero? (logand IFF_LOOPBACK (interface-flags lo))))) loopbacks) (match (find (lambda (lo) (= AF_INET (sockaddr:fam (interface-address lo)))) loopbacks) (#f #f) (lo (interface-address lo)))))))
Test end:
result-kind: pass
actual-value: (#t #(2 2130706433 0))
expected-value: (#t #(2 2130706433 0))
Group end: syscalls
# of expected passes 15
# of unexpected failures 3
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 15:02 ` Alex Vong
@ 2015-09-04 20:07 ` Ludovic Courtès
2015-09-05 12:49 ` Thompson, David
2015-09-05 17:43 ` Thompson, David
0 siblings, 2 replies; 13+ messages in thread
From: Ludovic Courtès @ 2015-09-04 20:07 UTC (permalink / raw)
To: Alex Vong; +Cc: 21410
Alex Vong <alexvong1995@gmail.com> skribis:
> actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
David, I think this is a shortcoming in the ‘clone’ wrapper: It should
throw to ‘system-error’ when the return value is -1, like the ‘setns’
wrapper does.
WDYT?
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 20:07 ` Ludovic Courtès
@ 2015-09-05 12:49 ` Thompson, David
2015-09-05 17:43 ` Thompson, David
1 sibling, 0 replies; 13+ messages in thread
From: Thompson, David @ 2015-09-05 12:49 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 21410, Alex Vong
On Fri, Sep 4, 2015 at 4:07 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Alex Vong <alexvong1995@gmail.com> skribis:
>
>> actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
>
> David, I think this is a shortcoming in the ‘clone’ wrapper: It should
> throw to ‘system-error’ when the return value is -1, like the ‘setns’
> wrapper does.
>
> WDYT?
Yes, indeed. I will push a patch and ask Alex to run the tests again
so we can see the real error string.
- Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 20:07 ` Ludovic Courtès
2015-09-05 12:49 ` Thompson, David
@ 2015-09-05 17:43 ` Thompson, David
1 sibling, 0 replies; 13+ messages in thread
From: Thompson, David @ 2015-09-05 17:43 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 21410, Alex Vong
On Fri, Sep 4, 2015 at 4:07 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Alex Vong <alexvong1995@gmail.com> skribis:
>
>> actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
>
> David, I think this is a shortcoming in the ‘clone’ wrapper: It should
> throw to ‘system-error’ when the return value is -1, like the ‘setns’
> wrapper does.
>
> WDYT?
Fixed in cf897cb.
Alex, could you pull the master branch, run the tests, and send the
new log files?
Thanks!
- Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
[not found] <20150906123025.64b32157@debian>
@ 2015-09-06 11:25 ` Thompson, David
0 siblings, 0 replies; 13+ messages in thread
From: Thompson, David @ 2015-09-06 11:25 UTC (permalink / raw)
To: Alex Vong; +Cc: 21410
[ re-CCing Ludo and bug-guix ]
On Sun, Sep 6, 2015 at 12:30 AM, Alex Vong <alexvong1995@gmail.com> wrote:
> Hi Dave,
>
> 2015-09-06 1:43 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
>>
>> Fixed in cf897cb.
>>
>> Alex, could you pull the master branch, run the tests, and send the
>> new log files?
>>
>> Thanks!
>>
>> - Dave
>>
>
> Sure, they are in the attachment.
>
> The build is done using fresh git-clone.
Thanks. So, the issue is that the clone(2) system call is failing
with the EPERM error code, meaning the operation is not permitted.
This is odd because all users are allowed to call 'clone' with the
CLONE_NEWUSER flag to create a process in a new user namespace.
However, the clone(2) man page specifies a couple of cases in which
this can fail:
EPERM CLONE_NEWUSER was specified in flags, but either the effective
user ID or the effective group ID of the caller does not have a
mapping in the parent namespace (see user_namespaces(7)).
EPERM (since Linux 3.9)
CLONE_NEWUSER was specified in flags and the caller is in a
chroot environment (i.e., the caller's root directory does not
match the root directory of the mount namespace in which it
resides).
Do any of these apply to you? Are you in a chroot or otherwise
virtualized environment? Anything else you can think of that could
cause this error would be appreciated.
Thanks,
- Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-04 6:44 bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian Alex Vong
2015-09-04 14:12 ` Thompson, David
2015-09-04 15:02 ` Alex Vong
@ 2015-09-07 1:47 ` Alex Vong
2015-09-07 19:42 ` Thompson, David
2 siblings, 1 reply; 13+ messages in thread
From: Alex Vong @ 2015-09-07 1:47 UTC (permalink / raw)
To: dthompson2; +Cc: 21410
Hi Dave,
I have searched the internet according to the information you provided,
I find this bug report <https://github.com/lxc/lxc/issues/250> provides useful information.
I have written an example program after going through the clone(2) man page.
It demonstrates the problem and is inlined below.
First, compile the program as `a.out'.
Consider shell session 1:
root# echo 0 > /proc/sys/kernel/unprivileged_userns_clone
user$ ./a.out
I am your parent
Start cloning...
Cannot clone!
Consider shell session 2:
root# echo 1 > /proc/sys/kernel/unprivileged_userns_clone
user$ ./a.out
I am your parent
Start cloning...
Cloned!
I am your child
Any idea what's happenning?
I don't know Linux much, for instance I don't know what is container and namespace in Linux.
Thanks!
Cheers,
Alex
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sched.h>
#include <sys/wait.h>
#include <unistd.h>
#define STACK_SIZE (1024 * 1024)
int
child(void *str)
{
if (puts(str) < 0)
return EXIT_FAILURE;
else
return EXIT_SUCCESS;
}
int
main(void)
{ void *func_ptr = &child;
void *stack_base = malloc(STACK_SIZE);
void *stack_top;
int flag = CLONE_NEWUSER | SIGCHLD;
char *msg = "I am your child";
int errsv = 0;
puts("I am your parent");
puts("Start cloning...");
stack_top = stack_base + STACK_SIZE;
clone(func_ptr, stack_top, flag, msg);
errsv = errno;
if (!errsv)
puts("Cloned!");
else
puts("Cannot clone!");
return errsv;
}
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-07 1:47 ` Alex Vong
@ 2015-09-07 19:42 ` Thompson, David
2015-09-09 10:02 ` Alex Vong
0 siblings, 1 reply; 13+ messages in thread
From: Thompson, David @ 2015-09-07 19:42 UTC (permalink / raw)
To: Alex Vong; +Cc: 21410
[-- Attachment #1: Type: text/plain, Size: 1367 bytes --]
On Sun, Sep 6, 2015 at 9:47 PM, Alex Vong <alexvong1995@gmail.com> wrote:
> Hi Dave,
>
> I have searched the internet according to the information you provided,
> I find this bug report <https://github.com/lxc/lxc/issues/250> provides useful information.
> I have written an example program after going through the clone(2) man page.
> It demonstrates the problem and is inlined below.
>
> First, compile the program as `a.out'.
>
> Consider shell session 1:
>
> root# echo 0 > /proc/sys/kernel/unprivileged_userns_clone
> user$ ./a.out
> I am your parent
> Start cloning...
> Cannot clone!
>
> Consider shell session 2:
>
> root# echo 1 > /proc/sys/kernel/unprivileged_userns_clone
> user$ ./a.out
> I am your parent
> Start cloning...
> Cloned!
> I am your child
>
> Any idea what's happenning?
> I don't know Linux much, for instance I don't know what is container and namespace in Linux.
It seems that the kernel you are using has disabled the use of
unprivileged user namespaces by default. After doing that echo as
root, you should be able to run the tests successfully. Could you
apply the attached patch and let me know if 'make check
TESTS=tests/syscalls.scm' and 'make check TESTS=tests/containers.scm'
pass in both when unprivileged user namespaces are disabled and when
they are enabled?
Thank you!
- Dave
[-- Attachment #2: 0001-tests-Detect-when-user-namespaces-are-disabled-for-u.patch --]
[-- Type: text/x-diff, Size: 3964 bytes --]
From 45e501c051fe5e7f5116c44c44832af14b775527 Mon Sep 17 00:00:00 2001
From: David Thompson <dthompson2@worcester.edu>
Date: Mon, 7 Sep 2015 15:38:08 -0400
Subject: [PATCH] tests: Detect when user namespaces are disabled for
unprivileged users.
* guix/tests.scm (%user-namespaces?): New variable.
* tests/containers.scm: Skip tests unless user can create user namespaces.
* tests/syscalls.scm: Likewise for clone, setns, and pivot-root tests.
---
guix/tests.scm | 13 ++++++++++++-
tests/containers.scm | 3 ++-
tests/syscalls.scm | 10 ++++++----
3 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/guix/tests.scm b/guix/tests.scm
index cd8eda2..4634323 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -41,7 +41,8 @@
with-derivation-narinfo
with-derivation-substitute
dummy-package
- dummy-origin))
+ dummy-origin
+ %user-namespaces?))
;;; Commentary:
;;;
@@ -259,6 +260,16 @@ default values, and with EXTRA-FIELDS set as specified."
(method #f) (uri "http://www.example.com")
(sha256 (base32 (make-string 52 #\x)))))
+;; User namespaces are only available on more recent versions of Linux, and
+;; some systems do not allow unprivileged users to create them.
+(define %user-namespaces?
+ (and (file-exists? "/proc/self/ns/user")
+ (or (zero? (getuid)) ; root is OK
+ (let ((config-file "/proc/sys/kernel/unprivileged_userns_clone"))
+ (if (file-exists? config-file)
+ (string=? (call-with-input-file config-file read-string) "1")
+ #t)))))
+
;; Local Variables:
;; eval: (put 'call-with-derivation-narinfo 'scheme-indent-function 1)
;; eval: (put 'call-with-derivation-substitute 'scheme-indent-function 2)
diff --git a/tests/containers.scm b/tests/containers.scm
index 4783f8e..25e908b 100644
--- a/tests/containers.scm
+++ b/tests/containers.scm
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-containers)
+ #:use-module (guix tests)
#:use-module (guix utils)
#:use-module (guix build syscalls)
#:use-module (gnu build linux-container)
@@ -28,7 +29,7 @@
;; Skip these tests unless user namespaces are available and the setgroups
;; file (introduced in Linux 3.19 to address a security issue) exists.
-(unless (and (file-exists? "/proc/self/ns/user")
+(unless (and %user-namespaces?
(file-exists? "/proc/self/setgroups"))
(exit 77))
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 86783b9..a58b41e 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -18,12 +18,14 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-syscalls)
+ #:use-module (guix tests)
#:use-module (guix utils)
#:use-module (guix build syscalls)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-64)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 rdelim))
;; Test the (guix build syscalls) module, although there's not much that can
;; actually be tested without being root.
@@ -80,7 +82,7 @@
(define (user-namespace pid)
(string-append "/proc/" (number->string pid) "/ns/user"))
-(unless (file-exists? (user-namespace (getpid)))
+(unless %user-namespaces?
(test-skip 1))
(test-assert "clone"
(match (clone (logior CLONE_NEWUSER SIGCHLD))
@@ -93,7 +95,7 @@
((_ . status)
(= 42 (status:exit-val status))))))))
-(unless (file-exists? (user-namespace (getpid)))
+(unless %user-namespaces?
(test-skip 1))
(test-assert "setns"
(match (clone (logior CLONE_NEWUSER SIGCHLD))
@@ -122,7 +124,7 @@
(waitpid fork-pid)
result))))))))
-(unless (file-exists? (user-namespace (getpid)))
+(unless %user-namespaces?
(test-skip 1))
(test-assert "pivot-root"
(match (pipe)
--
2.5.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-07 19:42 ` Thompson, David
@ 2015-09-09 10:02 ` Alex Vong
2015-09-15 11:24 ` Alex Vong
0 siblings, 1 reply; 13+ messages in thread
From: Alex Vong @ 2015-09-09 10:02 UTC (permalink / raw)
To: Thompson, David; +Cc: 21410
[-- Attachment #1: Type: text/plain, Size: 1788 bytes --]
Hi Dave,
It appears that the patch doesn't quite work, now 20 tests failed
instead of 2. The log files are attached as a tar ball. I have tried
running the tests on the old source as well as on fresh new git clone.
In any case, 20 tests failed. I wonder why this happens.
Cheers,
Alex
2015-09-08 3:42 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
> On Sun, Sep 6, 2015 at 9:47 PM, Alex Vong <alexvong1995@gmail.com> wrote:
>> Hi Dave,
>>
>> I have searched the internet according to the information you provided,
>> I find this bug report <https://github.com/lxc/lxc/issues/250> provides
>> useful information.
>> I have written an example program after going through the clone(2) man
>> page.
>> It demonstrates the problem and is inlined below.
>>
>> First, compile the program as `a.out'.
>>
>> Consider shell session 1:
>>
>> root# echo 0 > /proc/sys/kernel/unprivileged_userns_clone
>> user$ ./a.out
>> I am your parent
>> Start cloning...
>> Cannot clone!
>>
>> Consider shell session 2:
>>
>> root# echo 1 > /proc/sys/kernel/unprivileged_userns_clone
>> user$ ./a.out
>> I am your parent
>> Start cloning...
>> Cloned!
>> I am your child
>>
>> Any idea what's happenning?
>> I don't know Linux much, for instance I don't know what is container and
>> namespace in Linux.
>
> It seems that the kernel you are using has disabled the use of
> unprivileged user namespaces by default. After doing that echo as
> root, you should be able to run the tests successfully. Could you
> apply the attached patch and let me know if 'make check
> TESTS=tests/syscalls.scm' and 'make check TESTS=tests/containers.scm'
> pass in both when unprivileged user namespaces are disabled and when
> they are enabled?
>
> Thank you!
>
> - Dave
>
[-- Attachment #2: guix.tar.xz --]
[-- Type: application/x-xz, Size: 129272 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-09 10:02 ` Alex Vong
@ 2015-09-15 11:24 ` Alex Vong
2015-09-15 14:20 ` Thompson, David
0 siblings, 1 reply; 13+ messages in thread
From: Alex Vong @ 2015-09-15 11:24 UTC (permalink / raw)
To: Thompson, David; +Cc: 21410
Hi everyone,
Any idea on the latest test failure?
By the way, is the failure critical? Can I start doing packaging work for guix?
Cheers,
Alex
2015-09-09 18:02 GMT+08:00, Alex Vong <alexvong1995@gmail.com>:
> Hi Dave,
>
> It appears that the patch doesn't quite work, now 20 tests failed
> instead of 2. The log files are attached as a tar ball. I have tried
> running the tests on the old source as well as on fresh new git clone.
> In any case, 20 tests failed. I wonder why this happens.
>
> Cheers,
> Alex
>
> 2015-09-08 3:42 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
>> On Sun, Sep 6, 2015 at 9:47 PM, Alex Vong <alexvong1995@gmail.com> wrote:
>>> Hi Dave,
>>>
>>> I have searched the internet according to the information you provided,
>>> I find this bug report <https://github.com/lxc/lxc/issues/250> provides
>>> useful information.
>>> I have written an example program after going through the clone(2) man
>>> page.
>>> It demonstrates the problem and is inlined below.
>>>
>>> First, compile the program as `a.out'.
>>>
>>> Consider shell session 1:
>>>
>>> root# echo 0 > /proc/sys/kernel/unprivileged_userns_clone
>>> user$ ./a.out
>>> I am your parent
>>> Start cloning...
>>> Cannot clone!
>>>
>>> Consider shell session 2:
>>>
>>> root# echo 1 > /proc/sys/kernel/unprivileged_userns_clone
>>> user$ ./a.out
>>> I am your parent
>>> Start cloning...
>>> Cloned!
>>> I am your child
>>>
>>> Any idea what's happenning?
>>> I don't know Linux much, for instance I don't know what is container and
>>> namespace in Linux.
>>
>> It seems that the kernel you are using has disabled the use of
>> unprivileged user namespaces by default. After doing that echo as
>> root, you should be able to run the tests successfully. Could you
>> apply the attached patch and let me know if 'make check
>> TESTS=tests/syscalls.scm' and 'make check TESTS=tests/containers.scm'
>> pass in both when unprivileged user namespaces are disabled and when
>> they are enabled?
>>
>> Thank you!
>>
>> - Dave
>>
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-15 11:24 ` Alex Vong
@ 2015-09-15 14:20 ` Thompson, David
2015-09-15 15:06 ` Alex Vong
0 siblings, 1 reply; 13+ messages in thread
From: Thompson, David @ 2015-09-15 14:20 UTC (permalink / raw)
To: Alex Vong; +Cc: 21410
On Tue, Sep 15, 2015 at 7:24 AM, Alex Vong <alexvong1995@gmail.com> wrote:
> Hi everyone,
>
> Any idea on the latest test failure?
I'm not sure yet, sorry. Haven't been able to dig back into it.
> By the way, is the failure critical? Can I start doing packaging work for guix?
This isn't a blocking issue. These tests are for an incoming feature
that is separate from the standard packaging workflow. Don't let
these test failures stop you from contributing. :)
We'll figure out the failures soon when I have more time to dedicate
to bug hunting.
Thanks and sorry for the delay,
- Dave
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
2015-09-15 14:20 ` Thompson, David
@ 2015-09-15 15:06 ` Alex Vong
0 siblings, 0 replies; 13+ messages in thread
From: Alex Vong @ 2015-09-15 15:06 UTC (permalink / raw)
To: Thompson, David; +Cc: 21410
Hi Dave,
Thanks for the reply! No need to feel sorry, you are being very active
on the guile-user mailing list. I will start to read the documentation
then.
Cheers,
Alex
2015-09-15 22:20 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
> On Tue, Sep 15, 2015 at 7:24 AM, Alex Vong <alexvong1995@gmail.com> wrote:
>> Hi everyone,
>>
>> Any idea on the latest test failure?
>
> I'm not sure yet, sorry. Haven't been able to dig back into it.
>
>> By the way, is the failure critical? Can I start doing packaging work for
>> guix?
>
> This isn't a blocking issue. These tests are for an incoming feature
> that is separate from the standard packaging workflow. Don't let
> these test failures stop you from contributing. :)
>
> We'll figure out the failures soon when I have more time to dedicate
> to bug hunting.
>
> Thanks and sorry for the delay,
>
> - Dave
>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2015-09-15 15:07 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-04 6:44 bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian Alex Vong
2015-09-04 14:12 ` Thompson, David
2015-09-04 15:02 ` Alex Vong
2015-09-04 20:07 ` Ludovic Courtès
2015-09-05 12:49 ` Thompson, David
2015-09-05 17:43 ` Thompson, David
2015-09-07 1:47 ` Alex Vong
2015-09-07 19:42 ` Thompson, David
2015-09-09 10:02 ` Alex Vong
2015-09-15 11:24 ` Alex Vong
2015-09-15 14:20 ` Thompson, David
2015-09-15 15:06 ` Alex Vong
[not found] <20150906123025.64b32157@debian>
2015-09-06 11:25 ` Thompson, David
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.