unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24108: guix make tests failure
@ 2016-07-29 23:26 sapientech
  2016-07-30 13:07 ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: sapientech @ 2016-07-29 23:26 UTC (permalink / raw)
  To: 24108

[-- Attachment #1: Type: text/plain, Size: 171 bytes --]

Hi all,

Attached is the output log of `make tests`. Commands leading up to make 
tests:

$ guix environment guix --ad-hoc git vim
$ ./bootstrap
$ ./configure
$ make tests

[-- Attachment #2: config.log --]
[-- Type: text/plain, Size: 46318 bytes --]

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU Guix configure 0.10.0, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = freetop
uname -m = x86_64
uname -r = 4.6.4-gnu-201607192040-1-grsec
uname -s = Linux
uname -v = #1 SMP PREEMPT Wed Jul 20 15:37:34 UYT 2016

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin
PATH: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/sbin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /usr/lib/jvm/default/bin
PATH: /usr/bin/site_perl
PATH: /usr/bin/vendor_perl
PATH: /usr/bin/core_perl
PATH: /home/sapientech/.guix-profile/bin
PATH: /home/sapientech/.guix-profile/sbin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2574: checking for a BSD-compatible install
configure:2642: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/install -c
configure:2653: checking whether build environment is sane
configure:2708: result: yes
configure:2859: checking for a thread-safe mkdir -p
configure:2898: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/mkdir -p
configure:2905: checking for gawk
configure:2921: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gawk
configure:2932: result: gawk
configure:2943: checking whether make sets $(MAKE)
configure:2965: result: yes
configure:2994: checking whether make supports nested variables
configure:3011: result: yes
configure:3150: checking whether make supports nested variables
configure:3167: result: yes
configure:3194: checking for style of include used by make
configure:3222: result: GNU
configure:3293: checking for gcc
configure:3309: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gcc
configure:3320: result: gcc
configure:3549: checking for C compiler version
configure:3558: gcc --version >&5
gcc (GCC) 4.9.3
Copyright (C) 2015 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.

configure:3569: $? = 0
configure:3558: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/gnu/store/sjvcirri2bg7q5hlrkaywhmxllik0cfx-gcc-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 4.9.3 (GCC) 
configure:3569: $? = 0
configure:3558: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3569: $? = 1
configure:3558: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3569: $? = 1
configure:3589: checking whether the C compiler works
configure:3611: gcc    conftest.c  >&5
configure:3615: $? = 0
configure:3663: result: yes
configure:3666: checking for C compiler default output file name
configure:3668: result: a.out
configure:3674: checking for suffix of executables
configure:3681: gcc -o conftest    conftest.c  >&5
configure:3685: $? = 0
configure:3707: result: 
configure:3729: checking whether we are cross compiling
configure:3737: gcc -o conftest    conftest.c  >&5
configure:3741: $? = 0
configure:3748: ./conftest
configure:3752: $? = 0
configure:3767: result: no
configure:3772: checking for suffix of object files
configure:3794: gcc -c   conftest.c >&5
configure:3798: $? = 0
configure:3819: result: o
configure:3823: checking whether we are using the GNU C compiler
configure:3842: gcc -c   conftest.c >&5
configure:3842: $? = 0
configure:3851: result: yes
configure:3860: checking whether gcc accepts -g
configure:3880: gcc -c -g  conftest.c >&5
configure:3880: $? = 0
configure:3921: result: yes
configure:3938: checking for gcc option to accept ISO C89
configure:4001: gcc  -c -g -O2  conftest.c >&5
configure:4001: $? = 0
configure:4014: result: none needed
configure:4039: checking whether gcc understands -c and -o together
configure:4061: gcc -c conftest.c -o conftest2.o
configure:4064: $? = 0
configure:4061: gcc -c conftest.c -o conftest2.o
configure:4064: $? = 0
configure:4076: result: yes
configure:4095: checking dependency style of gcc
configure:4206: result: gcc3
configure:4227: checking how to run the C preprocessor
configure:4258: gcc -E  conftest.c
configure:4258: $? = 0
configure:4272: gcc -E  conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4272: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4297: result: gcc -E
configure:4317: gcc -E  conftest.c
configure:4317: $? = 0
configure:4331: gcc -E  conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4331: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4360: checking for grep that handles long lines and -e
configure:4418: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep
configure:4423: checking for egrep
configure:4485: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep -E
configure:4490: checking for ANSI C header files
configure:4510: gcc -c -g -O2  conftest.c >&5
configure:4510: $? = 0
configure:4583: gcc -o conftest -g -O2   conftest.c  >&5
configure:4583: $? = 0
configure:4583: ./conftest
configure:4583: $? = 0
configure:4594: result: yes
configure:4607: checking for sys/types.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for sys/stat.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for stdlib.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for string.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for memory.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for strings.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for inttypes.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for stdint.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for unistd.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4620: checking minix/config.h usability
configure:4620: gcc -c -g -O2  conftest.c >&5
conftest.c:54:26: fatal error: minix/config.h: No such file or directory
 #include <minix/config.h>
                          ^
compilation terminated.
configure:4620: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <minix/config.h>
configure:4620: result: no
configure:4620: checking minix/config.h presence
configure:4620: gcc -E  conftest.c
conftest.c:21:26: fatal error: minix/config.h: No such file or directory
 #include <minix/config.h>
                          ^
compilation terminated.
configure:4620: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <minix/config.h>
configure:4620: result: no
configure:4620: checking for minix/config.h
configure:4620: result: no
configure:4641: checking whether it is safe to define __EXTENSIONS__
configure:4659: gcc -c -g -O2  conftest.c >&5
configure:4659: $? = 0
configure:4666: result: yes
configure:4689: checking whether NLS is requested
configure:4698: result: yes
configure:4739: checking for msgfmt
configure: trying /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt...
0 translated messages.
configure:4771: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt
configure:4780: checking for gmsgfmt
configure:4811: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt
configure:4862: checking for xgettext
configure: trying /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext...
/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext: warning: file '/dev/null' extension '' is unknown; will try C
configure:4894: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext
configure:4940: checking for msgmerge
configure: trying /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgmerge...
configure:4971: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgmerge
configure:5008: checking build system type
configure:5022: result: x86_64-unknown-linux-gnu
configure:5042: checking host system type
configure:5055: result: x86_64-unknown-linux-gnu
configure:5099: checking for ld used by GCC
configure:5163: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/ld
configure:5170: checking if the linker (/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/ld) is GNU ld
configure:5183: result: yes
configure:5190: checking for shared library run path origin
configure:5203: result: done
configure:5775: checking for CFPreferencesCopyAppValue
configure:5793: gcc -o conftest -g -O2   conftest.c  -Wl,-framework -Wl,CoreFoundation >&5
conftest.c:26:42: fatal error: CoreFoundation/CFPreferences.h: No such file or directory
 #include <CoreFoundation/CFPreferences.h>
                                          ^
compilation terminated.
configure:5793: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| /* end confdefs.h.  */
| #include <CoreFoundation/CFPreferences.h>
| int
| main ()
| {
| CFPreferencesCopyAppValue(NULL, NULL)
|   ;
|   return 0;
| }
configure:5802: result: no
configure:5809: checking for CFLocaleCopyCurrent
configure:5827: gcc -o conftest -g -O2   conftest.c  -Wl,-framework -Wl,CoreFoundation >&5
conftest.c:26:37: fatal error: CoreFoundation/CFLocale.h: No such file or directory
 #include <CoreFoundation/CFLocale.h>
                                     ^
compilation terminated.
configure:5827: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| /* end confdefs.h.  */
| #include <CoreFoundation/CFLocale.h>
| int
| main ()
| {
| CFLocaleCopyCurrent();
|   ;
|   return 0;
| }
configure:5836: result: no
configure:5885: checking for GNU gettext in libc
configure:5905: gcc -o conftest -g -O2   conftest.c  >&5
configure:5905: $? = 0
configure:5914: result: yes
configure:6705: checking whether to use NLS
configure:6707: result: yes
configure:6710: checking where the gettext function comes from
configure:6721: result: libc
configure:6787: checking for sed
configure:6805: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/sed
configure:6817: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/sed
configure:6867: checking for the Guix system type
configure:6869: result: x86_64-linux
configure:6923: checking for the store directory
configure:6925: result: /gnu/store
configure:6947: checking the length of the installed socket file name
configure:6954: result: 40
configure:6958: checking for unit test root directory
configure:6965: result: /home/sapientech/Dev/guix/guix_wip/test-tmp
configure:6970: checking the length of the socket file name used in tests
configure:6977: result: 75
configure:6981: checking the length of a typical hash bang line
configure:6988: result: 73
configure:6993: checking the length of a hash bang line used in tests
configure:7000: result: 112
configure:7094: checking for pkg-config
configure:7112: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/pkg-config
configure:7124: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/pkg-config
configure:7149: checking pkg-config is at least version 0.9.0
configure:7152: result: yes
configure:7162: checking for GUILE
configure:7169: $PKG_CONFIG --exists --print-errors "guile-2.0 >= 2.0.7"
configure:7172: $? = 0
configure:7186: $PKG_CONFIG --exists --print-errors "guile-2.0 >= 2.0.7"
configure:7189: $? = 0
configure:7247: result: yes
configure:7253: checking for guile
configure:7271: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile
configure:7283: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile
configure:7293: checking for guild
configure:7311: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild
configure:7323: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild
configure:7337: checking for guile
configure:7367: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile
configure:7396: checking for Guile version >= 2.0
configure:7417: result: 2.0.11
configure:7422: checking for guild
configure:7452: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild
configure:7464: checking for guile-config
configure:7482: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile-config
configure:7494: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile-config
configure:7549: checking if (json) is available
configure:7556: result: yes
configure:7572: checking whether /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile provides feature 'regex'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile provides feature 'posix'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile provides feature 'socket'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile provides feature 'net-db'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile provides feature 'threads'
configure:7576: result: yes
configure:7587: checking whether (srfi srfi-37) is affected by http://bugs.gnu.org/13176
configure:7603: result: no
configure:7616: checking whether libc provides 'mount'
configure:7631: result: yes
configure:7645: checking for gzip
configure:7663: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gzip
configure:7675: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gzip
configure:7685: checking for bzip2
configure:7703: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/bzip2
configure:7715: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/bzip2
configure:7725: checking for xz
configure:7743: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xz
configure:7755: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xz
configure:7783: checking for nix-instantiate
configure:7816: result: no
configure:7823: checking for nix-hash
configure:7856: result: no
configure:7881: checking for Nixpkgs source tree
configure:7888: result: not found
configure:7932: checking for libgcrypt-config
configure:7950: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/libgcrypt-config
configure:7962: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/libgcrypt-config
configure:7970: checking libgcrypt's library directory
configure:7981: result: /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib
configure:7993: checking for libgcrypt shared library name
configure:7995: result: /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt
configure:8001: checking whether /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt can be dynamically loaded
configure:8016: result: yes
configure:8025: checking zlib's library directory
configure:8032: result: /gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib
configure:8041: checking for zlib's shared library name
configure:8043: result: /gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib/libz
configure:8134: checking whether to build daemon
configure:8136: result: yes
configure:8197: checking for g++
configure:8213: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/g++
configure:8224: result: g++
configure:8251: checking for C++ compiler version
configure:8260: g++ --version >&5
g++ (GCC) 4.9.3
Copyright (C) 2015 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.

configure:8271: $? = 0
configure:8260: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gnu/store/sjvcirri2bg7q5hlrkaywhmxllik0cfx-gcc-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 4.9.3 (GCC) 
configure:8271: $? = 0
configure:8260: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:8271: $? = 1
configure:8260: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'
g++: fatal error: no input files
compilation terminated.
configure:8271: $? = 1
configure:8275: checking whether we are using the GNU C++ compiler
configure:8294: g++ -c   conftest.cpp >&5
configure:8294: $? = 0
configure:8303: result: yes
configure:8312: checking whether g++ accepts -g
configure:8332: g++ -c -g  conftest.cpp >&5
configure:8332: $? = 0
configure:8373: result: yes
configure:8398: checking dependency style of g++
configure:8509: result: gcc3
configure:8537: checking whether g++ supports C++11
configure:8561: g++ -c -std=c++11 -g -O2  conftest.cpp >&5
configure:8561: $? = 0
configure:8570: result: yes
configure:8621: checking for ranlib
configure:8637: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/ranlib
configure:8648: result: ranlib
configure:8680: checking for special C compiler options needed for large files
configure:8725: result: no
configure:8731: checking for _FILE_OFFSET_BITS value needed for large files
configure:8756: g++ -c -g -O2  conftest.cpp >&5
configure:8756: $? = 0
configure:8788: result: no
configure:8874: checking for BZ2_bzWriteOpen in -lbz2
configure:8899: g++ -o conftest -g -O2   conftest.cpp -lbz2   >&5
configure:8899: $? = 0
configure:8908: result: yes
configure:8921: checking how to run the C++ preprocessor
configure:8948: g++ -E  conftest.cpp
configure:8948: $? = 0
configure:8962: g++ -E  conftest.cpp
conftest.cpp:29:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:8962: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:8987: result: g++ -E
configure:9007: g++ -E  conftest.cpp
configure:9007: $? = 0
configure:9021: g++ -E  conftest.cpp
conftest.cpp:29:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:9021: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:9052: checking bzlib.h usability
configure:9052: g++ -c -g -O2  conftest.cpp >&5
configure:9052: $? = 0
configure:9052: result: yes
configure:9052: checking bzlib.h presence
configure:9052: g++ -E  conftest.cpp
configure:9052: $? = 0
configure:9052: result: yes
configure:9052: checking for bzlib.h
configure:9052: result: yes
configure:9067: checking for SQLITE3
configure:9074: $PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6.19"
configure:9077: $? = 0
configure:9091: $PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6.19"
configure:9094: $? = 0
configure:9152: result: yes
configure:9193: checking for gcry_md_open in -lgcrypt
configure:9218: g++ -o conftest -g -O2    conftest.cpp -lgcrypt   >&5
configure:9218: $? = 0
configure:9227: result: yes
configure:9235: checking gcrypt.h usability
configure:9235: g++ -c -g -O2  conftest.cpp >&5
configure:9235: $? = 0
configure:9235: result: yes
configure:9235: checking gcrypt.h presence
configure:9235: g++ -E  conftest.cpp
configure:9235: $? = 0
configure:9235: result: yes
configure:9235: checking for gcrypt.h
configure:9235: result: yes
configure:9253: checking for chroot
configure:9253: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9253: $? = 0
configure:9253: result: yes
configure:9253: checking for unshare
configure:9253: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9253: $? = 0
configure:9253: result: yes
configure:9265: checking sched.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sched.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sched.h
configure:9265: result: yes
configure:9265: checking sys/param.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/param.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/param.h
configure:9265: result: yes
configure:9265: checking sys/mount.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/mount.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/mount.h
configure:9265: result: yes
configure:9265: checking sys/syscall.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/syscall.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/syscall.h
configure:9265: result: yes
configure:9284: checking for lutimes
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for lchown
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for posix_fallocate
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for sched_setaffinity
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for statvfs
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for nanosleep
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for strsignal
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9294: checking whether it is possible to create a link to a symlink
configure:9298: result: yes
configure:9317: checking locale usability
configure:9317: g++ -c -g -O2  conftest.cpp >&5
configure:9317: $? = 0
configure:9317: result: yes
configure:9317: checking locale presence
configure:9317: g++ -E  conftest.cpp
configure:9317: $? = 0
configure:9317: result: yes
configure:9317: checking for locale
configure:9317: result: yes
configure:9337: checking sys/personality.h usability
configure:9337: g++ -c -g -O2  conftest.cpp >&5
configure:9337: $? = 0
configure:9337: result: yes
configure:9337: checking sys/personality.h presence
configure:9337: g++ -E  conftest.cpp
configure:9337: $? = 0
configure:9337: result: yes
configure:9337: checking for sys/personality.h
configure:9337: result: yes
configure:9350: checking linux/fs.h usability
configure:9350: g++ -c -g -O2  conftest.cpp >&5
configure:9350: $? = 0
configure:9350: result: yes
configure:9350: checking linux/fs.h presence
configure:9350: g++ -E  conftest.cpp
configure:9350: $? = 0
configure:9350: result: yes
configure:9350: checking for linux/fs.h
configure:9350: result: yes
configure:9361: checking if (gnutls) is available
configure:9368: result: yes
configure:9379: checking for default substitute URLs
configure:9381: result: https://mirror.hydra.gnu.org
configure:9391: checking whether Guile's custom binary input ports support 'setvbuf'
configure:9405: result: yes
configure:9417: checking for unit test root directory
configure:9424: result: /home/sapientech/Dev/guix/guix_wip/test-tmp
configure:9433: checking for guile
configure:9463: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile
configure:9471: checking the current installation's localstatedir
configure:9485: result: none
configure:9563: checking for dot
configure:9581: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/dot
configure:9594: result: /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/dot
configure:9609: checking for emacs
configure:9625: found /gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/emacs
configure:9636: result: emacs
configure:9660: checking where .elc files should go
configure:9673: $EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out
configure:9676: $? = 0
configure:9689: result: ${datadir}/emacs/site-lisp
configure:9820: checking that generated files are newer than configure
configure:9826: result: done
configure:9881: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by GNU Guix config.status 0.10.0, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on freetop

config.status:992: creating nix/scripts/list-runtime-roots
config.status:992: creating nix/scripts/substitute
config.status:992: creating nix/scripts/guix-authenticate
config.status:992: creating nix/scripts/offload
config.status:992: creating Makefile
config.status:992: creating po/guix/Makefile.in
config.status:992: creating po/packages/Makefile.in
config.status:992: creating guix/config.scm
config.status:992: creating scripts/guix
config.status:992: creating test-env
config.status:992: creating pre-inst-env
config.status:992: creating emacs/guix-config.el
config.status:992: creating emacs/guix-helper.scm
config.status:992: creating nix/config.h
config.status:1221: executing depfiles commands
config.status:1221: executing po-directories commands

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_EMACSLOADPATH_set=
ac_cv_env_EMACSLOADPATH_value=
ac_cv_env_EMACS_set=
ac_cv_env_EMACS_value=
ac_cv_env_GUILE_CFLAGS_set=
ac_cv_env_GUILE_CFLAGS_value=
ac_cv_env_GUILE_LIBS_set=
ac_cv_env_GUILE_LIBS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=set
ac_cv_env_PKG_CONFIG_PATH_value=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/lib/pkgconfig::/home/sapientech/.guix-profile/lib/pkgconfig
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_SQLITE3_CFLAGS_set=
ac_cv_env_SQLITE3_CFLAGS_value=
ac_cv_env_SQLITE3_LIBS_set=
ac_cv_env_SQLITE3_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_chroot=yes
ac_cv_func_lchown=yes
ac_cv_func_lutimes=yes
ac_cv_func_nanosleep=yes
ac_cv_func_posix_fallocate=yes
ac_cv_func_sched_setaffinity=yes
ac_cv_func_statvfs=yes
ac_cv_func_strsignal=yes
ac_cv_func_unshare=yes
ac_cv_guix_cbips_support_setvbuf=yes
ac_cv_guix_cxx11_support=yes
ac_cv_guix_hash_bang_length=73
ac_cv_guix_socket_file_name_length=40
ac_cv_guix_srfi_37_broken=no
ac_cv_guix_test_hash_bang_length=112
ac_cv_guix_test_root=/home/sapientech/Dev/guix/guix_wip/test-tmp
ac_cv_guix_test_socket_file_name_length=75
ac_cv_header_bzlib_h=yes
ac_cv_header_gcrypt_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_linux_fs_h=yes
ac_cv_header_locale=yes
ac_cv_header_memory_h=yes
ac_cv_header_minix_config_h=no
ac_cv_header_sched_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_mount_h=yes
ac_cv_header_sys_param_h=yes
ac_cv_header_sys_personality_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_syscall_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_lib_bz2_BZ2_bzWriteOpen=yes
ac_cv_lib_gcrypt_gcry_md_open=yes
ac_cv_objext=o
ac_cv_path_BZIP2=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/bzip2
ac_cv_path_DOT_USER_PROGRAM=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/dot
ac_cv_path_EGREP='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep -E'
ac_cv_path_GMSGFMT=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt
ac_cv_path_GREP=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep
ac_cv_path_GUILD=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild
ac_cv_path_GUILE=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile
ac_cv_path_GUILE_CONFIG=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile-config
ac_cv_path_GZIP=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gzip
ac_cv_path_LIBGCRYPT_CONFIG=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/libgcrypt-config
ac_cv_path_MSGFMT=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt
ac_cv_path_MSGMERGE=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgmerge
ac_cv_path_SED=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/sed
ac_cv_path_XGETTEXT=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext
ac_cv_path_XZ=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xz
ac_cv_path_ac_pt_PKG_CONFIG=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/pkg-config
ac_cv_path_install='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/install -c'
ac_cv_path_mkdir=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_EMACS=emacs
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_safe_to_define___extensions__=yes
ac_cv_sys_file_offset_bits=no
ac_cv_sys_largefile_CC=no
acl_cv_hardcode_direct=no
acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
acl_cv_hardcode_libdir_separator=
acl_cv_hardcode_minus_L=no
acl_cv_libext=a
acl_cv_libname_spec='lib$name'
acl_cv_library_names_spec='$libname$shrext'
acl_cv_path_LD=/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/ld
acl_cv_prog_gnu_ld=yes
acl_cv_rpath=done
acl_cv_shlibext=so
acl_cv_wl=-Wl,
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_lispdir='${datadir}/emacs/site-lisp'
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
gt_cv_func_CFLocaleCopyCurrent=no
gt_cv_func_CFPreferencesCopyAppValue=no
gt_cv_func_gnugettext1_libc=yes
guix_cv_current_localstatedir=none
guix_cv_libc_has_mount=yes
guix_cv_libgcrypt_libdir=/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib
guix_cv_libgcrypt_usable_p=yes
guix_cv_libz_libdir=/gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib
pkg_cv_GUILE_CFLAGS='-pthread -I/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/include/guile/2.0'
pkg_cv_GUILE_LIBS='-L/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/lib -L/gnu/store/my4az71gz8iqd4w8kb34kq7vlk3fcvhm-libgc-7.4.2/lib -lguile-2.0 -lgc'
pkg_cv_SQLITE3_CFLAGS=-I/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/include
pkg_cv_SQLITE3_LIBS='-L/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/lib -lsqlite3'

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing aclocal-1.15'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AUTOCONF='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing autoconf'
AUTOHEADER='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing autoheader'
AUTOMAKE='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing automake-1.15'
AWK='gawk'
BUILD_DAEMON_FALSE='#'
BUILD_DAEMON_OFFLOAD_FALSE='#'
BUILD_DAEMON_OFFLOAD_TRUE=''
BUILD_DAEMON_TRUE=''
BUILD_SYSCALLS_MODULE_FALSE='#'
BUILD_SYSCALLS_MODULE_TRUE=''
BZIP2='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/bzip2'
CAN_RUN_TESTS_FALSE='#'
CAN_RUN_TESTS_TRUE=''
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='gcc -E'
CPPFLAGS=''
CXX='g++'
CXXCPP='g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-g -O2'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DOT='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing dot'
DOT_USER_PROGRAM='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/dot'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep -E'
EMACS='emacs'
EMACSLOADPATH=''
EXEEXT=''
GETTEXT_MACRO_VERSION='0.18'
GMSGFMT='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt'
GMSGFMT_015='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt'
GREP='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/grep'
GUILD='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild'
GUILE='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile'
GUILE_CFLAGS='-pthread -I/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/include/guile/2.0'
GUILE_CONFIG='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guile-config'
GUILE_LIBS='-L/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/lib -L/gnu/store/my4az71gz8iqd4w8kb34kq7vlk3fcvhm-libgc-7.4.2/lib -lguile-2.0 -lgc'
GUILE_TOOLS='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/guild'
GUIX_TEST_ROOT='/home/sapientech/Dev/guix/guix_wip/test-tmp'
GZIP='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/gzip'
HAVE_EMACS_FALSE='#'
HAVE_EMACS_TRUE=''
HAVE_GUILE_JSON_FALSE='#'
HAVE_GUILE_JSON_TRUE=''
HELP2MAN='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing help2man'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_SRFI_37_FALSE=''
INSTALL_SRFI_37_TRUE='#'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
INTLLIBS=''
INTL_MACOSX_LIBS=''
LDFLAGS=''
LIBGCRYPT='/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt'
LIBGCRYPT_CFLAGS=''
LIBGCRYPT_CONFIG='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/libgcrypt-config'
LIBGCRYPT_LIBDIR='/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib'
LIBGCRYPT_LIBS='-L/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib -lgcrypt'
LIBGCRYPT_PREFIX='no'
LIBICONV='-liconv'
LIBINTL=''
LIBOBJS=''
LIBS=''
LIBZ='/gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib/libz'
LTLIBICONV='-liconv'
LTLIBINTL=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing makeinfo'
MKDIR_P='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/mkdir -p'
MSGFMT='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt'
MSGFMT_015='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgfmt'
MSGMERGE='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/msgmerge'
NIXPKGS=''
NIX_HASH=''
NIX_INSTANTIATE='nix-instantiate'
NIX_PREFIX=''
OBJEXT='o'
PACKAGE='guix'
PACKAGE_BUGREPORT='bug-guix@gnu.org'
PACKAGE_NAME='GNU Guix'
PACKAGE_STRING='GNU Guix 0.10.0'
PACKAGE_TARNAME='guix'
PACKAGE_URL='http://www.gnu.org/software/guix/'
PACKAGE_VERSION='0.10.0'
PATH_SEPARATOR=':'
PKG_CONFIG='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/lib/pkgconfig::/home/sapientech/.guix-profile/lib/pkgconfig'
POSUB='po'
RANLIB='ranlib'
SED='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
SQLITE3_CFLAGS='-I/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/include'
SQLITE3_LIBS='-L/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/lib -lsqlite3'
STRIP=''
USE_NLS='yes'
VERSION='0.10.0'
XGETTEXT='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext'
XGETTEXT_015='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xgettext'
XGETTEXT_EXTRA_OPTIONS=''
XZ='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/xz'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bashcompletiondir='${sysconfdir}/bash_completion.d'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
emacsuidir='${prefix}/share/guile/site/2.0/guix/emacs'
exec_prefix='${prefix}'
guilemoduledir='${prefix}/share/guile/site/2.0'
guix_localstatedir='/usr/local/var'
guix_sbindir='/usr/local/sbin'
guix_sysconfdir='/usr/local/etc'
guix_system='x86_64-linux'
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
lispdir='${datadir}/emacs/site-lisp'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/gnu/store/32ncwkhjmzyq7j7bq2xz7lf3r39x0rh7-profile/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
storedir='/gnu/store'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "GNU Guix"
#define PACKAGE_TARNAME "guix"
#define PACKAGE_VERSION "0.10.0"
#define PACKAGE_STRING "GNU Guix 0.10.0"
#define PACKAGE_BUGREPORT "bug-guix@gnu.org"
#define PACKAGE_URL "http://www.gnu.org/software/guix/"
#define PACKAGE "guix"
#define VERSION "0.10.0"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define __EXTENSIONS__ 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define ENABLE_NLS 1
#define HAVE_GETTEXT 1
#define HAVE_DCGETTEXT 1
#define HAVE_BZLIB_H 1
#define NIX_VERSION "0.0.0"
#define SYSTEM "x86_64-linux"
#define HAVE_CHROOT 1
#define HAVE_UNSHARE 1
#define HAVE_SCHED_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_MOUNT_H 1
#define HAVE_SYS_SYSCALL_H 1
#define HAVE_LUTIMES 1
#define HAVE_LCHOWN 1
#define HAVE_POSIX_FALLOCATE 1
#define HAVE_SCHED_SETAFFINITY 1
#define HAVE_STATVFS 1
#define HAVE_NANOSLEEP 1
#define HAVE_STRSIGNAL 1
#define CAN_LINK_SYMLINK 1
#define HAVE_LOCALE 1
#define HAVE_SYS_PERSONALITY_H 1
#define HAVE_LINUX_FS_H 1
#define GUIX_SUBSTITUTE_URLS "https://mirror.hydra.gnu.org"
#define HAVE_DAEMON_OFFLOAD_HOOK 1

configure: exit 0

[-- Attachment #3: test-suite.log --]
[-- Type: text/plain, Size: 194521 bytes --]

=======================================
   GNU Guix 0.10.0: ./test-suite.log
=======================================

# TOTAL: 604
# PASS:  582
# SKIP:  7
# XFAIL: 0
# FAIL:  15
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

SKIP: tests/base32
==================

sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:48
source:
+ (test-assert
+   "bytevector->base32-string"
+   (fold (lambda (bv expected result)
+           (and result
+                (string=?
+                  (bytevector->base32-string bv)
+                  expected)))
+         #t
+         (map string->utf8
+              '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
+         '(""
+           "my"
+           "mzxq"
+           "mzxw6"
+           "mzxw6yq"
+           "mzxw6ytb"
+           "mzxw6ytboi")))
actual-value: #t
result: PASS

test-name: base32-string->bytevector
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:65
source:
+ (test-assert
+   "base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (base32-string->bytevector
+                (bytevector->base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: nix-base32-string->bytevector
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:73
source:
+ (test-assert
+   "nix-base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (nix-base32-string->bytevector
+                (bytevector->nix-base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: &invalid-base32-character
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:81
source:
+ (test-equal
+   "&invalid-base32-character"
+   #\e
+   (guard (c ((invalid-base32-character? c)
+              (invalid-base32-character-value c)))
+          (nix-base32-string->bytevector
+            (string-append (make-string 51 #\a) "e"))))
expected-value: e
actual-value: e
result: PASS

test-name: sha256 & bytevector->nix-base32-string
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:92
source:
+ (test-assert
+   "sha256 & bytevector->nix-base32-string"
+   (let ((file (search-path %load-path "tests/test.drv")))
+     (equal?
+       (bytevector->nix-base32-string
+         (sha256
+           (call-with-input-file file get-bytevector-all)))
+       (let* ((c (format
+                   #f
+                   "~a --type sha256 --base32 --flat \"~a\""
+                   %nix-hash
+                   file))
+              (p (open-input-pipe c))
+              (l (read-line p)))
+         (close-pipe p)
+         l))))
result: SKIP


SKIP: tests/cpio
================

test-name: file->cpio-header + write-cpio-header + read-cpio-header
location: /home/sapientech/Dev/guix/guix_wip/tests/cpio.scm:37
source:
+ (test-assert
+   "file->cpio-header + write-cpio-header + read-cpio-header"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (header (file->cpio-header file)))
+     (call-with-values
+       (lambda () (open-bytevector-output-port))
+       (lambda (port get-bv)
+         (write-cpio-header header port)
+         (let ((port (open-bytevector-input-port (get-bv))))
+           (equal? header (read-cpio-header port)))))))
actual-value: #t
result: PASS

test-name: bit-identical to GNU cpio's output
location: /home/sapientech/Dev/guix/guix_wip/tests/cpio.scm:49
source:
+ (test-assert
+   "bit-identical to GNU cpio's output"
+   (call-with-temporary-output-file
+     (lambda (link _)
+       (delete-file link)
+       (symlink "chbouib" link)
+       (let ((files (cons* "/"
+                           (canonicalize-path
+                             (dirname (search-path %load-path "guix.scm")))
+                           link
+                           (map (compose
+                                  canonicalize-path
+                                  (cut search-path %load-path <>))
+                                '("guix.scm"
+                                  "guix/build/syscalls.scm"
+                                  "guix/packages.scm")))))
+         (call-with-temporary-output-file
+           (lambda (ref-file _)
+             (let ((pipe (open-pipe*
+                           OPEN_WRITE
+                           %cpio-program
+                           "-o"
+                           "-O"
+                           ref-file
+                           "-H"
+                           "newc"
+                           "--null")))
+               (for-each
+                 (lambda (file) (format pipe "~a\x00" file))
+                 files)
+               (and (zero? (close-pipe pipe))
+                    (call-with-temporary-output-file
+                      (lambda (file port)
+                        (write-cpio-archive files port)
+                        (close-port port)
+                        (or (file=? ref-file file)
+                            (throw 'cpio-archives-differ
+                                   files
+                                   ref-file
+                                   file
+                                   (stat:size (stat ref-file))
+                                   (stat:size (stat file))))))))))))))
result: SKIP

random seed for tests: 1469809311

SKIP: tests/snix
================

test-name: factorize-uri
location: /home/sapientech/Dev/guix/guix_wip/tests/snix.scm:36
source:
+ (test-assert
+   "factorize-uri"
+   (every?
+     (match-lambda
+       ((uri version '-> expected)
+        (equal? (factorize-uri uri version) expected)))
+     '(("http://example.com/foo.tgz"
+        "1.0"
+        ->
+        "http://example.com/foo.tgz")
+       ("http://example.com/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/foo-" version ".tgz"))
+       ("http://example.com/2.8/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/"
+         version
+         "/foo-"
+         version
+         ".tgz")))))
actual-value: #t
result: PASS

test-name: nixpkgs->guix-package
location: /home/sapientech/Dev/guix/guix_wip/tests/snix.scm:54
source:
+ (test-assert
+   "nixpkgs->guix-package"
+   (match (nixpkgs->guix-package
+            %nixpkgs-directory
+            "guile")
+          (('package
+            ('name "guile")
+            ('version (? string?))
+            ('source ('origin _ ...))
+            ('build-system _)
+            ('inputs ('quasiquote (inputs ...)))
+            ('propagated-inputs ('quasiquote (pinputs ...)))
+            ('home-page (? string?))
+            ('synopsis (? string?))
+            ('description (? string?))
+            ('license (? symbol?)))
+           (and (member '("libffi" ,libffi) inputs)
+                (member '("gmp" ,gmp) pinputs)
+                #t))
+          (x (pk 'fail x #f))))
result: SKIP


FAIL: tests/store
=================

test-name: store-path-hash-part
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:51
source:
+ (test-equal
+   "store-path-hash-part"
+   "283gqy39v3g9dxjy26rynl0zls82fmcg"
+   (store-path-hash-part
+     (string-append
+       (%store-prefix)
+       "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
actual-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
result: PASS

test-name: store-path-hash-part #f
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:57
source:
+ (test-equal
+   "store-path-hash-part #f"
+   #f
+   (store-path-hash-part
+     (string-append
+       (%store-prefix)
+       "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: #f
actual-value: #f
result: PASS

test-name: store-path-package-name
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:63
source:
+ (test-equal
+   "store-path-package-name"
+   "guile-2.0.7"
+   (store-path-package-name
+     (string-append
+       (%store-prefix)
+       "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: guile-2.0.7
actual-value: guile-2.0.7
result: PASS

test-name: store-path-package-name #f
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:69
source:
+ (test-equal
+   "store-path-package-name #f"
+   #f
+   (store-path-package-name
+     "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
expected-value: #f
actual-value: #f
result: PASS

test-name: direct-store-path?
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:74
source:
+ (test-assert
+   "direct-store-path?"
+   (and (direct-store-path?
+          (string-append
+            (%store-prefix)
+            "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
+        (not (direct-store-path?
+               (string-append
+                 (%store-prefix)
+                 "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
+        (not (direct-store-path? (%store-prefix)))))
actual-value: #t
result: PASS

test-name: valid-path? live
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:86
source:
+ (test-assert
+   "valid-path? live"
+   (let ((p (add-text-to-store %store "hello" "hello, world")))
+     (valid-path? %store p)))
actual-value: #t
result: PASS

test-name: valid-path? false
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:90
source:
+ (test-assert
+   "valid-path? false"
+   (not (valid-path?
+          %store
+          (string-append
+            (%store-prefix)
+            "/"
+            (make-string 32 #\e)
+            "-foobar"))))
actual-value: #t
result: PASS

test-name: valid-path? error
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:95
source:
+ (test-assert
+   "valid-path? error"
+   (with-store
+     s
+     (guard (c ((nix-protocol-error? c) #t))
+            (valid-path? s "foo")
+            #f)))
actual-value: #t
result: PASS

test-name: valid-path? recovery
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:101
source:
+ (test-assert
+   "valid-path? recovery"
+   (with-store
+     s
+     (let-syntax ((true-if-error
+                    (syntax-rules ()
+                      ((_ exp)
+                       (guard (c ((nix-protocol-error? c) #t)) exp #f)))))
+       (and (true-if-error (valid-path? s "foo"))
+            (true-if-error (valid-path? s "bar"))
+            (true-if-error (valid-path? s "baz"))
+            (true-if-error (valid-path? s "chbouib"))
+            (valid-path?
+              s
+              (add-text-to-store s "valid" "yeah"))))))
actual-value: #t
result: PASS

test-name: hash-part->path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:118
source:
+ (test-assert
+   "hash-part->path"
+   (let ((p (add-text-to-store %store "hello" "hello, world")))
+     (equal?
+       (hash-part->path %store (store-path-hash-part p))
+       p)))
actual-value: #t
result: PASS

test-name: dead-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:123
source:
+ (test-assert
+   "dead-paths"
+   (let ((p (add-text-to-store
+              %store
+              "random-text"
+              (random-text))))
+     (->bool (member p (dead-paths %store)))))
random seed for tests: 1469828741
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/temproots/4593'
determining live/dead paths...
actual-value: #t
result: PASS

test-name: permanent root
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:144
source:
+ (test-assert
+   "permanent root"
+   (let* ((p (with-store
+               store
+               (let ((p (add-text-to-store
+                          store
+                          "random-text"
+                          (random-text))))
+                 (add-permanent-root p)
+                 (add-permanent-root p)
+                 p))))
+     (and (member p (live-paths %store))
+          (begin
+            (remove-permanent-root p)
+            (->bool (member p (dead-paths %store)))))))
finding garbage collector roots...
determining live/dead paths...
finding garbage collector roots...
determining live/dead paths...
actual-value: #t
result: PASS

test-name: dead path can be explicitly collected
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:156
source:
+ (test-assert
+   "dead path can be explicitly collected"
+   (let ((p (add-text-to-store
+              %store
+              "random-text"
+              (random-text)
+              '())))
+     (let-values
+       (((paths freed) (delete-paths %store (list p))))
+       (and (equal? paths (list p))
+            (> freed 0)
+            (not (file-exists? p))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: add-text-to-store vs. delete-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:164
source:
+ (test-assert
+   "add-text-to-store vs. delete-paths"
+   (with-store
+     store
+     (let* ((text (random-text))
+            (path (add-text-to-store store "delete-me" text))
+            (deleted (delete-paths store (list path)))
+            (path2 (add-text-to-store store "delete-me" text)))
+       (and (string=? path path2)
+            (equal? deleted (list path))
+            (valid-path? store path)
+            (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/temproots/4609'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/gzg35nkj0dafay7ddynb9bqx501dyk6s-delete-me'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 19.66 MiB
actual-value: #t
result: PASS

test-name: add-to-store vs. delete-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:177
source:
+ (test-assert
+   "add-to-store vs. delete-paths"
+   (with-store
+     store
+     (let* ((file (search-path %load-path "guix.scm"))
+            (path (add-to-store store "delete-me" #t "sha256" file))
+            (deleted (delete-paths store (list path)))
+            (path2 (add-to-store store "delete-me" #t "sha256" file)))
+       (and (string=? path path2)
+            (equal? deleted (list path))
+            (valid-path? store path)
+            (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/temproots/4621'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/57nhqlbqv5kh4zwr2vvdk3xyh741ynri-delete-me'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 19.66 MiB
actual-value: #t
result: PASS

test-name: references
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:189
source:
+ (test-assert
+   "references"
+   (let* ((t1 (add-text-to-store
+                %store
+                "random1"
+                (random-text)))
+          (t2 (add-text-to-store
+                %store
+                "random2"
+                (random-text)
+                (list t1))))
+     (and (equal? (list t1) (references %store t2))
+          (equal? (list t2) (referrers %store t1))
+          (null? (references %store t1))
+          (null? (referrers %store t2)))))
actual-value: #t
result: PASS

test-name: references/substitutes missing reference info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:199
source:
+ (test-assert
+   "references/substitutes missing reference info"
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (guard (c ((nix-protocol-error? c) #t))
+            (let* ((b (add-to-store
+                        s
+                        "bash"
+                        #t
+                        "sha256"
+                        (search-bootstrap-binary
+                          "bash"
+                          (%current-system))))
+                   (d (derivation
+                        s
+                        "the-thing"
+                        b
+                        '("--help")
+                        #:inputs
+                        `((,b)))))
+              (references/substitutes
+                s
+                (list (derivation->output-path d) b))
+              #f))))
actual-value: #t
result: PASS

test-name: references/substitutes with substitute info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:211
source:
+ (test-assert
+   "references/substitutes with substitute info"
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #t)
+     (let* ((t1 (add-text-to-store s "random1" (random-text)))
+            (t2 (add-text-to-store
+                  s
+                  "random2"
+                  (random-text)
+                  (list t1)))
+            (t3 (add-text-to-store
+                  s
+                  "build"
+                  "echo -n $t2 > $out"))
+            (b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 `("-e" ,t3)
+                 #:inputs
+                 `((,b) (,t3) (,t2))
+                 #:env-vars
+                 `(("t2" unquote t2))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (sha256 => (sha256 (string->utf8 t2)))
+         (references => (list t2))
+         (equal?
+           (references/substitutes s (list o t3 t2 t1))
+           `((,t2) () (,t1) ()))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
actual-value: #t
result: PASS

test-name: substitutable-path-info when substitutes are turned off
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:235
source:
+ (test-equal
+   "substitutable-path-info when substitutes are turned off"
+   '()
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (let* ((b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 '("--version")
+                 #:inputs
+                 `((,b))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (substitutable-path-info s (list o))))))
expected-value: ()
actual-value: ()
result: PASS

test-name: substitutable-paths when substitutes are turned off
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:248
source:
+ (test-equal
+   "substitutable-paths when substitutes are turned off"
+   '()
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (let* ((b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 '("--version")
+                 #:inputs
+                 `((,b))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (substitutable-paths s (list o))))))
expected-value: ()
actual-value: ()
result: PASS

test-name: requisites
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:261
source:
+ (test-assert
+   "requisites"
+   (let* ((t1 (add-text-to-store
+                %store
+                "random1"
+                (random-text)
+                '()))
+          (t2 (add-text-to-store
+                %store
+                "random2"
+                (random-text)
+                (list t1)))
+          (t3 (add-text-to-store
+                %store
+                "random3"
+                (random-text)
+                (list t2)))
+          (t4 (add-text-to-store
+                %store
+                "random4"
+                (random-text)
+                (list t1 t3))))
+     (define (same? x y)
+       (and (= (length x) (length y))
+            (lset= equal? x y)))
+     (and (same? (requisites %store (list t1)) (list t1))
+          (same? (requisites %store (list t2))
+                 (list t1 t2))
+          (same? (requisites %store (list t3))
+                 (list t1 t2 t3))
+          (same? (requisites %store (list t4))
+                 (list t1 t2 t3 t4))
+          (same? (requisites %store (list t1 t2 t3 t4))
+                 (list t1 t2 t3 t4)))))
actual-value: #t
result: PASS

test-name: derivers
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:281
source:
+ (test-assert
+   "derivers"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (equal?
+            (query-derivation-outputs
+              %store
+              (derivation-file-name d))
+            (list o))
+          (equal?
+            (valid-derivers %store o)
+            (list (derivation-file-name d))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/kbazq13kw06ij2ms4avbwbjyx5wfff1n-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/kb//azq13kw06ij2ms4avbwbjyx5wfff1n-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/kbazq13kw06ij2ms4avbwbjyx5wfff1n-the-thing.drv -
actual-value: #t
result: PASS

test-name: topologically-sorted, one item
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:297
source:
+ (test-assert
+   "topologically-sorted, one item"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (s (topologically-sorted %store (list d))))
+     (equal? s (list a b c d))))
actual-value: #t
result: PASS

test-name: topologically-sorted, several items
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:305
source:
+ (test-assert
+   "topologically-sorted, several items"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (s1 (topologically-sorted %store (list d a c b)))
+          (s2 (topologically-sorted %store (list b d c a b d))))
+     (equal? s1 s2 (list a b c d))))
actual-value: #t
result: PASS

test-name: topologically-sorted, more difficult
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:314
source:
+ (test-assert
+   "topologically-sorted, more difficult"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (w (add-text-to-store %store "w" "w"))
+          (x (add-text-to-store %store "x" "x" (list w)))
+          (y (add-text-to-store %store "y" "y" (list x d)))
+          (s1 (topologically-sorted %store (list y)))
+          (s2 (topologically-sorted %store (list c y)))
+          (s3 (topologically-sorted
+                %store
+                (cons y (references %store y)))))
+     (let* ((x-then-d?
+              (equal? (references %store y) (list x d))))
+       (and (equal?
+              s1
+              (if x-then-d?
+                (list w x a b c d y)
+                (list a b c d w x y)))
+            (equal?
+              s2
+              (if x-then-d?
+                (list a b c w x d y)
+                (list a b c d w x y)))
+            (lset= string=? s1 s3)))))
actual-value: #t
result: PASS

test-name: current-build-output-port, UTF-8
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:338
source:
+ (test-assert
+   "current-build-output-port, UTF-8"
+   (string-contains
+     (with-fluids
+       ((%default-port-encoding "UTF-8"))
+       (call-with-output-string
+         (lambda (port)
+           (parameterize
+             ((current-build-output-port port))
+             (let* ((s "Here\u2019s a Greek letter: \u03bb.")
+                    (d (build-expression->derivation
+                         %store
+                         "foo"
+                         `(display ,s)
+                         #:guile-for-build
+                         (package-derivation
+                           s
+                           %bootstrap-guile
+                           (%current-system)))))
+               (guard (c ((nix-protocol-error? c) #t))
+                      (build-derivations %store (list d))))))))
+     "Here\u2019s a Greek letter: \u03bb."))
actual-value: 231
result: PASS

test-name: current-build-output-port, UTF-8 + garbage
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:354
source:
+ (test-assert
+   "current-build-output-port, UTF-8 + garbage"
+   (string-contains
+     (with-fluids
+       ((%default-port-encoding "UTF-8"))
+       (call-with-output-string
+         (lambda (port)
+           (parameterize
+             ((current-build-output-port port))
+             (let ((d (build-expression->derivation
+                        %store
+                        "foo"
+                        `(begin
+                           (use-modules (rnrs io ports))
+                           (display "garbage: ")
+                           (put-bytevector (current-output-port) #vu8(128))
+                           (display "lambda: \u03bb\n"))
+                        #:guile-for-build
+                        (package-derivation %store %bootstrap-guile))))
+               (guard (c ((nix-protocol-error? c) #t))
+                      (build-derivations %store (list d))))))))
+     "garbage: ?lambda: \u03bb"))
actual-value: 231
result: PASS

test-name: log-file, derivation
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:374
source:
+ (test-assert
+   "log-file, derivation"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s)))))
+     (and (build-derivations %store (list d))
+          (file-exists?
+            (pk (log-file %store (derivation-file-name d)))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/spgm3xgq8sf8pn2r6s4sswqd14949y26-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/sp//gm3xgq8sf8pn2r6s4sswqd14949y26-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/spgm3xgq8sf8pn2r6s4sswqd14949y26-the-thing.drv -

;;; ("/home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/sp/gm3xgq8sf8pn2r6s4sswqd14949y26-the-thing.drv.bz2")
actual-value: #t
result: PASS

test-name: log-file, output file name
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:386
source:
+ (test-assert
+   "log-file, output file name"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (file-exists? (pk (log-file %store o)))
+          (string=?
+            (log-file %store (derivation-file-name d))
+            (log-file %store o)))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/688ij8nxfha72w8xwskb5kmgjwgy94iv-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/68//8ij8nxfha72w8xwskb5kmgjwgy94iv-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/688ij8nxfha72w8xwskb5kmgjwgy94iv-the-thing.drv -

;;; ("/home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/68/8ij8nxfha72w8xwskb5kmgjwgy94iv-the-thing.drv.bz2")
actual-value: #t
result: PASS

test-name: no substitutes
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:401
source:
+ (test-assert
+   "no substitutes"
+   (with-store
+     s
+     (let* ((d1 (package-derivation
+                  s
+                  %bootstrap-guile
+                  (%current-system)))
+            (d2 (package-derivation
+                  s
+                  %bootstrap-glibc
+                  (%current-system)))
+            (o (map derivation->output-path (list d1 d2))))
+       (set-build-options s #:use-substitutes? #f)
+       (and (not (has-substitutes? s (derivation-file-name d1)))
+            (not (has-substitutes? s (derivation-file-name d2)))
+            (null? (substitutable-paths s o))
+            (null? (substitutable-path-info s o))))))
actual-value: #t
result: PASS

test-name: build-things with output path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:412
source:
+ (test-assert
+   "build-things with output path"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (set-build-options s #:use-substitutes? #f)
+       (build-things s (list o))
+       (not (valid-path? s o)))))
actual-value: #t
result: PASS

test-name: substitute query
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:432
source:
+ (test-assert
+   "substitute query"
+   (with-store
+     s
+     (let* ((d (package-derivation
+                 s
+                 %bootstrap-guile
+                 (%current-system)))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (false-if-exception
+           (delete-file-recursively
+             (string-append
+               (getenv "XDG_CACHE_HOME")
+               "/guix/substitute")))
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (equal?
+                (list o)
+                (substitutable-paths s (list o)))
+              (match (pk 'spi (substitutable-path-info s (list o)))
+                     (((? substitutable? s))
+                      (and (string=?
+                             (substitutable-deriver s)
+                             (derivation-file-name d))
+                           (null? (substitutable-references s))
+                           (equal? (substitutable-nar-size s) 1234)))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable

;;; (spi (#<<substitutable> path: "/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0" deriver: "/home/sapientech/Dev/guix/guix_wip/test-tmp/store/bjihchailclirz3310dqypibjg0happm-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
actual-value: #t
result: PASS

test-name: substitute query, alternating URLs
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:456
source:
+ (test-assert
+   "substitute query, alternating URLs"
+   (let* ((d (with-store
+               s
+               (package-derivation
+                 s
+                 %bootstrap-guile
+                 (%current-system))))
+          (o (derivation->output-path d)))
+     (with-derivation-narinfo
+       d
+       (false-if-exception
+         (delete-file-recursively
+           (string-append
+             (getenv "XDG_CACHE_HOME")
+             "/guix/substitute")))
+       (and (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (%test-substitute-urls))
+              (has-substitutes? s o))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (list "http://does-not-exist"))
+              (not (has-substitutes? s o)))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (%test-substitute-urls))
+              (has-substitutes? s o))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                '())
+              (not (has-substitutes? s o)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:  157: 9 [catch #t #<catch-closure 8c83e0> ...]
substitute: In unknown file:
substitute:    ?: 8 [apply-smob/1 #<catch-closure 8c83e0>]
substitute: In ice-9/boot-9.scm:
substitute:   63: 7 [call-with-prompt prompt0 ...]
substitute: In ice-9/eval.scm:
substitute:  432: 6 [eval # #]
substitute: In ice-9/boot-9.scm:
substitute: 2401: 5 [save-module-excursion #<procedure 8e8940 at ice-9/boot-9.scm:4045:3 ()>]
substitute: 4050: 4 [#<procedure 8e8940 at ice-9/boot-9.scm:4045:3 ()>]
substitute: 1724: 3 [%start-stack load-stack #<procedure 8fa820 at ice-9/boot-9.scm:4041:10 ()>]
substitute: 1729: 2 [#<procedure 8ffea0 ()>]
substitute: In unknown file:
substitute:    ?: 1 [primitive-load "/home/sapientech/Dev/guix/guix_wip/scripts/guix"]
substitute: In guix/ui.scm:
substitute: 1209: 0 [run-guix-command substitute "--query"]
substitute: 
substitute: guix/ui.scm:1209:6: In procedure run-guix-command:
substitute: guix/ui.scm:1209:6: unmatched line "<html><head><meta http-equiv=\"refresh\" content=\"0;url=http://www.dnsrsearch.com/index.php?origURL=http://does-not-exist/nix-cache-info&bc=\"/></head><body><script type=\"text/javascript\">window.location=\"http://www.dnsrsearch.com/index.php?origURL=\"+escape(window.location)+\"&r=\"+escape(document.referrer)+\"&bc=\";</script></body></html>"
actual-value: #f
actual-error:
+ (srfi-34
+   #<condition &nix-protocol-error [message: "substituter `substitute' died unexpectedly" status: 1] ac6e40>)
result: FAIL

test-name: substitute
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:488
source:
+ (test-assert
+   "substitute"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (exit 1) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (build-derivations s (list d))
+              (equal?
+                c
+                (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/2yzd6cmy7fh9zajvy8hb0ki3j61kq6xq-substitute-me /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/2yzd6cmy7fh9zajvy8hb0ki3j61kq6xq-substitute-me (1KiB installed)...
\r^[[K example.nar  176B                     0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/2yzd6cmy7fh9zajvy8hb0ki3j61kq6xq-substitute-me
actual-value: #t
result: PASS

test-name: substitute + build-things with output path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:507
source:
+ (test-assert
+   "substitute + build-things with output path"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (exit 1) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (build-things s (list o))
+              (valid-path? s o)
+              (equal?
+                c
+                (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/anrjyjqn3g8nnkwrhls8nd5bg0r5k082-substitute-me /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/anrjyjqn3g8nnkwrhls8nd5bg0r5k082-substitute-me (1KiB installed)...
\r^[[K example.nar  176B                     0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/anrjyjqn3g8nnkwrhls8nd5bg0r5k082-substitute-me
actual-value: #t
result: PASS

test-name: substitute, corrupt output hash
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:527
source:
+ (test-assert
+   "substitute, corrupt output hash"
+   (with-store
+     s
+     (let* ((c "hello, world")
+            (d (build-expression->derivation
+                 s
+                 "corrupt-substitute"
+                 `(mkdir %output)
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (sha256 => (make-bytevector 32 0))
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:fallback?
+           #f
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (guard (c ((nix-protocol-error? c)
+                         (pk 'corrupt c)
+                         (not (zero? (nix-protocol-error-status c)))))
+                     (build-derivations s (list d))
+                     #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute (1KiB installed)...
\r^[[K example.nar  128B                     0B/s 00:00 [####################] 100.0%
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute 0 hash mismatch in downloaded path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute': expected 0000000000000000000000000000000000000000000000000000000000000000, got b8f73a6eb280e63169b1de2a5b5e154676fe1ada685f1e5c7183cbb2c1dcd535

;;; (corrupt #<condition &nix-protocol-error [message: "some substitutes for the outputs of derivation `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yp3pfg2510b5dm7ilsl1nrry1j5q3ww3-corrupt-substitute.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source " status: 1] 1afa7b0>)
actual-value: #t
result: PASS

test-name: substitute --fallback
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:557
source:
+ (test-assert
+   "substitute --fallback"
+   (with-store
+     s
+     (let* ((t (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me-not"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (display ,t p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (guard (c ((nix-protocol-error? c)
+                         (set-build-options
+                           s
+                           #:use-substitutes?
+                           #t
+                           #:substitute-urls
+                           (%test-substitute-urls)
+                           #:fallback?
+                           #t)
+                         (and (build-derivations s (list d))
+                              (equal?
+                                t
+                                (call-with-input-file o get-string-all)))))
+                     (build-derivations s (list d))
+                     #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/substituter-data/example.nar"
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not 256 fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not' failed with exit code 1
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/substituter-data/example.nar"
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not 256 fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/d2jhbkixw475alsk738hfiq2jywagshm-substitute-me-not' failed with exit code 1
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/dn44z9hdv1fhpw4ccrs2kcis3p3fs8mm-substitute-me-not.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/dn//44z9hdv1fhpw4ccrs2kcis3p3fs8mm-substitute-me-not.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/dn44z9hdv1fhpw4ccrs2kcis3p3fs8mm-substitute-me-not.drv -
actual-value: #t
result: PASS

test-name: export/import several paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:589
source:
+ (test-assert
+   "export/import several paths"
+   (let* ((texts (unfold
+                   (cut >= <> 10)
+                   (lambda _ (random-text))
+                   #{1+}#
+                   0))
+          (files (map (cut add-text-to-store %store "text" <>)
+                      texts))
+          (dump (call-with-bytevector-output-port
+                  (cut export-paths %store files <>))))
+     (delete-paths %store files)
+     (and (every (negate file-exists?) files)
+          (let* ((source (open-bytevector-input-port dump))
+                 (imported (import-paths %store source)))
+            (and (equal? imported files)
+                 (every file-exists? files)
+                 (equal?
+                   texts
+                   (map (lambda (file)
+                          (call-with-input-file file get-string-all))
+                        files)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: export/import paths, ensure topological order
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:609
source:
+ (test-assert
+   "export/import paths, ensure topological order"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (files (list file1 file2))
+          (dump1 (call-with-bytevector-output-port
+                   (cute export-paths %store (list file1 file2) <>)))
+          (dump2 (call-with-bytevector-output-port
+                   (cute export-paths %store (list file2 file1) <>))))
+     (delete-paths %store files)
+     (and (every (negate file-exists?) files)
+          (bytevector=? dump1 dump2)
+          (let* ((source (open-bytevector-input-port dump1))
+                 (imported (import-paths %store source)))
+            (and (equal? imported (list file1 file2))
+                 (every file-exists? files)
+                 (equal? (list file0) (references %store file1))
+                 (equal? (list file1) (references %store file2)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: export/import incomplete
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:631
source:
+ (test-assert
+   "export/import incomplete"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (dump (call-with-bytevector-output-port
+                  (cute export-paths %store (list file2) <>))))
+     (delete-paths %store (list file0 file1 file2))
+     (guard (c ((nix-protocol-error? c)
+                (and (not (zero? (nix-protocol-error-status c)))
+                     (string-contains
+                       (nix-protocol-error-message c)
+                       "not valid"))))
+            (import-paths
+              %store
+              (open-bytevector-input-port dump)))))
finding garbage collector roots...
deleting unused links...
actual-value: 97
result: PASS

test-name: export/import recursive
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:648
source:
+ (test-assert
+   "export/import recursive"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (dump (call-with-bytevector-output-port
+                  (cute export-paths
+                        %store
+                        (list file2)
+                        <>
+                        #:recursive?
+                        #t))))
+     (delete-paths %store (list file0 file1 file2))
+     (let ((imported
+             (import-paths
+               %store
+               (open-bytevector-input-port dump))))
+       (and (equal? imported (list file0 file1 file2))
+            (every file-exists? (list file0 file1 file2))
+            (equal? (list file0) (references %store file1))
+            (equal? (list file1) (references %store file2))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: write-file & export-path yield the same result
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:664
source:
+ (test-assert
+   "write-file & export-path yield the same result"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((drv1 (package->derivation %bootstrap-guile))
+             (out1 -> (derivation->output-path drv1))
+             (data ->
+                   (unfold
+                     (cut >= <> 26)
+                     (lambda (i) (random-bytevector 128))
+                     #{1+}#
+                     0))
+             (build ->
+                    (gexp (begin
+                            (use-modules (rnrs io ports) (srfi srfi-1))
+                            (let ()
+                              (define letters
+                                (map (lambda (i)
+                                       (string
+                                         (integer->char
+                                           (+ i (char->integer #\a)))))
+                                     (iota 26)))
+                              (define (touch file data)
+                                (call-with-output-file
+                                  file
+                                  (lambda (port) (put-bytevector port data))))
+                              (mkdir (ungexp output))
+                              (chdir (ungexp output))
+                              (for-each
+                                touch
+                                (append (drop letters 10) (take letters 10))
+                                (list (ungexp-splicing data)))
+                              #t))))
+             (drv2 (gexp->derivation "bunch" build))
+             (out2 -> (derivation->output-path drv2))
+             (item-info -> (store-lift query-path-info)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv1 drv2))
+              (foldm %store-monad
+                     (lambda (item result)
+                       (define ref-hash
+                         (let-values
+                           (((port get) (open-sha256-port)))
+                           (write-file item port)
+                           (close-port port)
+                           (get)))
+                       (>>= (item-info item)
+                            (lambda (info)
+                              (return
+                                (and result
+                                     (bytevector=?
+                                       (path-info-hash info)
+                                       ref-hash))))))
+                     #t
+                     (list out1 out2))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n1pkmab5w4n1ahaz580hn69kapn36jl9-bunch.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/n1//pkmab5w4n1ahaz580hn69kapn36jl9-bunch.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n1pkmab5w4n1ahaz580hn69kapn36jl9-bunch.drv -
actual-value: #t
result: PASS

test-name: import corrupt path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:730
source:
+ (test-assert
+   "import corrupt path"
+   (let* ((text (random-text))
+          (file (add-text-to-store %store "text" text))
+          (dump (call-with-bytevector-output-port
+                  (cut export-paths %store (list file) <>))))
+     (delete-paths %store (list file))
+     (let* ((index (quotient (bytevector-length dump) 4))
+            (byte (bytevector-u8-ref dump index)))
+       (bytevector-u8-set! dump index (logxor 255 byte)))
+     (and (not (file-exists? file))
+          (guard (c ((nix-protocol-error? c)
+                     (pk 'c c)
+                     (and (not (zero? (nix-protocol-error-status c)))
+                          (string-contains
+                            (nix-protocol-error-message c)
+                            "corrupt"))))
+                 (let* ((source (open-bytevector-input-port dump))
+                        (imported (import-paths %store source)))
+                   (pk 'corrupt-imported imported)
+                   #f)))))
finding garbage collector roots...
deleting unused links...

;;; (c #<condition &nix-protocol-error [message: "signed hash doesn't match actual contents of imported archive; archive could be corrupt, or someone is trying to import a Trojan horse" status: 1] 17317e0>)
actual-value: 80
result: PASS

test-name: register-path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:753
source:
+ (test-assert
+   "register-path"
+   (let ((file (string-append
+                 (%store-prefix)
+                 "/"
+                 (make-string 32 #\f)
+                 "-fake")))
+     (when (valid-path? %store file)
+           (delete-paths %store (list file)))
+     (false-if-exception (delete-file file))
+     (let ((ref (add-text-to-store
+                  %store
+                  "ref-of-fake"
+                  (random-text)))
+           (drv (string-append file ".drv")))
+       (call-with-output-file
+         file
+         (cut display "This is a fake store item.\n" <>))
+       (register-path
+         file
+         #:references
+         (list ref)
+         #:deriver
+         drv)
+       (and (valid-path? %store file)
+            (equal? (references %store file) (list ref))
+            (null? (valid-derivers %store file))
+            (null? (referrers %store file))))))
actual-value: #t
result: PASS

test-name: verify-store
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:773
source:
+ (test-assert
+   "verify-store"
+   (let* ((text (random-text))
+          (file1 (add-text-to-store %store "foo" text))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1))))
+     (and (pk 'verify1 (verify-store %store))
+          (begin
+            (delete-file file1)
+            (not (pk 'verify2 (verify-store %store))))
+          (begin
+            (call-with-output-file
+              file1
+              (lambda (port) (display text port)))
+            (pk 'verify3 (verify-store %store))))))
reading the Nix store...

;;; (verify1 #t)
reading the Nix store...
path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/67gdc8rqn1q0j7aqr0k5cnhykxfn5sai-foo' disappeared, but it still has valid referrers!

;;; (verify2 #f)
reading the Nix store...

;;; (verify3 #t)
actual-value: #t
result: PASS

test-name: verify-store + check-contents
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:790
source:
+ (test-assert
+   "verify-store + check-contents"
+   (with-store
+     s
+     (let* ((text (random-text))
+            (drv (build-expression->derivation
+                   s
+                   "corrupt"
+                   `(let ((out (assoc-ref %outputs "out")))
+                      (call-with-output-file
+                        out
+                        (lambda (port) (display ,text port)))
+                      #t)
+                   #:guile-for-build
+                   (package-derivation
+                     s
+                     %bootstrap-guile
+                     (%current-system))))
+            (file (derivation->output-path drv)))
+       (with-derivation-substitute
+         drv
+         text
+         (and (build-derivations s (list drv))
+              (verify-store s #:check-contents? #t)
+              (begin
+                (chmod file 420)
+                (call-with-output-file
+                  file
+                  (lambda (port) (display "corrupt!" port)))
+                #t)
+              (not (verify-store s #:check-contents? #t))
+              (delete-paths s (list file)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/9jj6hfmkwhynlsjpr26qlf6wx308r322-corrupt'...
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9jj6hfmkwhynlsjpr26qlf6wx308r322-corrupt (1KiB installed)...
\r^[[K example.nar  176B                      0B/s 00:00 [####################] 100.0%
reading the Nix store...
checking path existence...
checking hashes...
reading the Nix store...
checking path existence...
checking hashes...
path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/9jj6hfmkwhynlsjpr26qlf6wx308r322-corrupt' was modified! expected hash `3ffb771d8c3cbac98d545bf2b0eaa7c0aab691afd1cf02f4b88082784837b6c3', got `e09c480e2e93336cd3c45aa129f81a0d7ba56c410b849d7779a8136074413b3d'
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/4578/temproots/4920'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/9jj6hfmkwhynlsjpr26qlf6wx308r322-corrupt'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 19.66 MiB
actual-value: (/home/sapientech/Dev/guix/guix_wip/test-tmp/store/9jj6hfmkwhynlsjpr26qlf6wx308r322-corrupt)
result: PASS

test-name: build-things, check mode
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:827
source:
+ (test-assert
+   "build-things, check mode"
+   (with-store
+     store
+     (call-with-temporary-output-file
+       (lambda (entropy entropy-port)
+         (write (random-text) entropy-port)
+         (force-output entropy-port)
+         (let* ((drv (build-expression->derivation
+                       store
+                       "non-deterministic"
+                       `(begin
+                          (use-modules (rnrs io ports))
+                          (let ((out (assoc-ref %outputs "out")))
+                            (call-with-output-file
+                              out
+                              (lambda (port)
+                                (display
+                                  (call-with-input-file
+                                    ,entropy
+                                    get-string-all)
+                                  port)))
+                            #t))
+                       #:guile-for-build
+                       (package-derivation
+                         store
+                         %bootstrap-guile
+                         (%current-system))))
+                (file (derivation->output-path drv)))
+           (and (build-things
+                  store
+                  (list (derivation-file-name drv)))
+                (begin
+                  (write (random-text) entropy-port)
+                  (force-output entropy-port)
+                  (guard (c ((nix-protocol-error? c)
+                             (pk 'determinism-exception c)
+                             (and (not (zero? (nix-protocol-error-status c)))
+                                  (string-contains
+                                    (nix-protocol-error-message c)
+                                    "deterministic"))))
+                         (build-things
+                           store
+                           (list (derivation-file-name drv))
+                           (build-mode check))
+                         #f))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sjcm2zl0bxbzkwpbnjlb9kzffsl2058j-non-deterministic'
checking path(s) `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sjcm2zl0bxbzkwpbnjlb9kzffsl2058j-non-deterministic'
warning: rewriting hashes in `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sjcm2zl0bxbzkwpbnjlb9kzffsl2058j-non-deterministic'; cross fingers

;;; (determinism-exception #<condition &nix-protocol-error [message: "derivation `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yxi5kv1szq8ca30xdbjss8gdpr0vqfak-non-deterministic.drv' may not be deterministic: output `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sjcm2zl0bxbzkwpbnjlb9kzffsl2058j-non-deterministic' differs" status: 1] 24053f0>)
actual-value: 99
result: PASS

test-name: build multiple times
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:864
source:
+ (test-assert
+   "build multiple times"
+   (with-store
+     store
+     (set-build-options
+       store
+       #:rounds
+       2
+       #:use-substitutes?
+       #f)
+     (call-with-temporary-output-file
+       (lambda (entropy entropy-port)
+         (write (random-text) entropy-port)
+         (force-output entropy-port)
+         (let* ((drv (build-expression->derivation
+                       store
+                       "non-deterministic"
+                       `(begin
+                          (use-modules (rnrs io ports))
+                          (let ((out (assoc-ref %outputs "out")))
+                            (call-with-output-file
+                              out
+                              (lambda (port)
+                                (display
+                                  (call-with-input-file
+                                    ,entropy
+                                    get-string-all)
+                                  port)
+                                (call-with-output-file
+                                  ,entropy
+                                  (lambda (port) (write 'foobar port)))))
+                            #t))
+                       #:guile-for-build
+                       (package-derivation
+                         store
+                         %bootstrap-guile
+                         (%current-system))))
+                (file (derivation->output-path drv)))
+           (guard (c ((nix-protocol-error? c)
+                      (pk 'multiple-build c)
+                      (and (not (zero? (nix-protocol-error-status c)))
+                           (string-contains
+                             (nix-protocol-error-message c)
+                             "deterministic"))))
+                  (current-build-output-port (current-error-port))
+                  (build-things
+                    store
+                    (list (derivation-file-name drv)))
+                  #f))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/sl//522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv.bz2
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/sl//522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv.bz2
output ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/asg30hlmcpj4cxajsvmbzk6hcrg8xnj6-non-deterministic? of ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv? differs from previous round
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv - 1 output ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/asg30hlmcpj4cxajsvmbzk6hcrg8xnj6-non-deterministic? of ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv? differs from previous round

;;; (multiple-build #<condition &nix-protocol-error [message: "build of `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/sl522ik0ji3m8ci7xldfbp56pln4zzvp-non-deterministic.drv' failed" status: 1] 1ae7a20>)
actual-value: 97
result: PASS

test-name: store-lower
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:902
source:
+ (test-equal
+   "store-lower"
+   "Lowered."
+   (let* ((add (store-lower text-file))
+          (file (add %store "foo" "Lowered.")))
+     (call-with-input-file file get-string-all)))
expected-value: Lowered.
actual-value: Lowered.
result: PASS

test-name: current-system
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:908
source:
+ (test-equal
+   "current-system"
+   "bar"
+   (parameterize
+     ((%current-system "frob"))
+     (run-with-store
+       %store
+       (mbegin
+         %store-monad
+         (set-current-system "bar")
+         (current-system))
+       #:system
+       "foo")))
expected-value: bar
actual-value: bar
result: PASS

test-name: query-path-info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:917
source:
+ (test-assert
+   "query-path-info"
+   (let* ((ref (add-text-to-store %store "ref" "foo"))
+          (item (add-text-to-store
+                  %store
+                  "item"
+                  "bar"
+                  (list ref)))
+          (info (query-path-info %store item)))
+     (and (equal? (path-info-references info) (list ref))
+          (equal?
+            (path-info-hash info)
+            (sha256
+              (string->utf8
+                (call-with-output-string
+                  (cut write-file item <>))))))))
actual-value: #t
result: PASS

test-name: path-info-deriver
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:927
source:
+ (test-assert
+   "path-info-deriver"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (not (path-info-deriver (query-path-info %store b)))
+          (string=?
+            (derivation-file-name d)
+            (path-info-deriver (query-path-info %store o))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/j5apd15d3ma9sh31p317qfs1ywbw0kjm-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/j5//apd15d3ma9sh31p317qfs1ywbw0kjm-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/j5apd15d3ma9sh31p317qfs1ywbw0kjm-the-thing.drv -
actual-value: #t
result: PASS


SKIP: tests/gexp
================

test-name: no refs
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:71
source:
+ (test-equal
+   "no refs"
+   '(display "hello!")
+   (let ((exp (gexp (display "hello!"))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display hello!)
actual-value: (display hello!)
result: PASS

test-name: unquote
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:78
source:
+ (test-equal
+   "unquote"
+   '(display `(foo ,(+ 2 3)))
+   (let ((exp (gexp (display `(foo ,(+ 2 3))))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display (quasiquote (foo (unquote (+ 2 3)))))
actual-value: (display (quasiquote (foo (unquote (+ 2 3)))))
result: PASS

test-name: one input package
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:85
source:
+ (test-assert
+   "one input package"
+   (let ((exp (gexp (display (ungexp coreutils)))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-derivation %store coreutils)))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one input origin
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:95
source:
+ (test-assert
+   "one input origin"
+   (let ((exp (gexp (display (ungexp (package-source coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((o "out")) (eq? o (package-source coreutils))))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-source-derivation
+                    %store
+                    (package-source coreutils))))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:106
source:
+ (test-assert
+   "one local file"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (local (local-file file))
+          (exp (gexp (display (ungexp local))))
+          (intd (add-to-store
+                  %store
+                  (basename file)
+                  #f
+                  "sha256"
+                  file)))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x local)))
+          (equal? `(display ,intd) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file, symlink
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:118
source:
+ (test-assert
+   "one local file, symlink"
+   (let ((file (search-path %load-path "guix.scm"))
+         (link (tmpnam)))
+     (dynamic-wind
+       (const #t)
+       (lambda ()
+         (symlink (canonicalize-path file) link)
+         (let* ((local (local-file link "my-file" #:recursive? #f))
+                (exp (gexp (display (ungexp local))))
+                (intd (add-to-store %store "my-file" #f "sha256" file)))
+           (and (gexp? exp)
+                (match (gexp-inputs exp)
+                       (((x "out")) (eq? x local)))
+                (equal? `(display ,intd) (gexp->sexp* exp)))))
+       (lambda ()
+         (false-if-exception (delete-file link))))))
actual-value: #t
result: PASS

test-name: local-file, relative file name
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:137
source:
+ (test-equal
+   "local-file, relative file name"
+   (canonicalize-path
+     (search-path %load-path "guix/base32.scm"))
+   (let ((directory
+           (dirname
+             (search-path
+               %load-path
+               "guix/build-system/gnu.scm"))))
+     (with-directory-excursion
+       directory
+       (let ((file (local-file "../guix/base32.scm")))
+         (local-file-absolute-file-name file)))))
expected-value: /home/sapientech/Dev/guix/guix_wip/guix/base32.scm
actual-value: /home/sapientech/Dev/guix/guix_wip/guix/base32.scm
result: PASS

test-name: local-file, #:select?
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:145
source:
+ (test-assert
+   "local-file, #:select?"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((select?
+               ->
+               (lambda (file stat)
+                 (member
+                   (basename file)
+                   '("guix.scm" "tests" "gexp.scm"))))
+             (file ->
+                   (local-file
+                     ".."
+                     "directory"
+                     #:recursive?
+                     #t
+                     #:select?
+                     select?))
+             (dir (lower-object file)))
+            (return
+              (and (store-path? dir)
+                   (equal?
+                     (scandir dir)
+                     '("." ".." "guix.scm" "tests"))
+                   (equal?
+                     (scandir (string-append dir "/tests"))
+                     '("." ".." "gexp.scm")))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: one plain file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:160
source:
+ (test-assert
+   "one plain file"
+   (let* ((file (plain-file "hi" "Hello, world!"))
+          (exp (gexp (display (ungexp file))))
+          (expected
+            (add-text-to-store %store "hi" "Hello, world!")))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x file)))
+          (equal? `(display ,expected) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: same input twice
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:170
source:
+ (test-assert
+   "same input twice"
+   (let ((exp (gexp (begin
+                      (display (ungexp coreutils))
+                      (display (ungexp coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (let ((e `(display
+                      ,(derivation->output-path
+                         (package-derivation %store coreutils)))))
+            (equal? `(begin ,e ,e) (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: two input packages, one derivation, one file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:182
source:
+ (test-assert
+   "two input packages, one derivation, one file"
+   (let* ((drv (build-expression->derivation
+                 %store
+                 "foo"
+                 'bar
+                 #:guile-for-build
+                 (package-derivation %store %bootstrap-guile)))
+          (txt (add-text-to-store %store "foo" "Hello, world!"))
+          (exp (gexp (begin
+                       (display (ungexp coreutils))
+                       (display (ungexp %bootstrap-guile))
+                       (display (ungexp drv))
+                       (display (ungexp txt))))))
+     (define (match-input thing)
+       (match-lambda
+         ((drv-or-pkg _ ...) (eq? thing drv-or-pkg))))
+     (and (gexp? exp)
+          (= 4 (length (gexp-inputs exp)))
+          (every (lambda (input)
+                   (find (match-input input) (gexp-inputs exp)))
+                 (list drv coreutils %bootstrap-guile txt))
+          (let ((e0 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store coreutils))))
+                (e1 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store %bootstrap-guile))))
+                (e2 `(display ,(derivation->output-path drv)))
+                (e3 `(display ,txt)))
+            (equal?
+              `(begin ,e0 ,e1 ,e2 ,e3)
+              (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:210
source:
+ (test-assert
+   "ungexp + ungexp-native"
+   (let* ((exp (gexp (list (ungexp-native %bootstrap-guile)
+                           (ungexp coreutils)
+                           (ungexp-native glibc)
+                           (ungexp binutils))))
+          (target "mips64el-linux")
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-cross-derivation
+                  %store
+                  coreutils
+                  target)))
+          (libc (derivation->output-path
+                  (package-derivation %store glibc)))
+          (bu (derivation->output-path
+                (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,glibc "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,coreutils "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(list ,guile ,cu ,libc ,bu)
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native, nested
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:233
source:
+ (test-equal
+   "ungexp + ungexp-native, nested"
+   (list `((,%bootstrap-guile "out"))
+         '<>
+         `((,coreutils "out")))
+   (let* ((exp (gexp (list (ungexp-native (gexp (ungexp coreutils)))
+                           (ungexp %bootstrap-guile)))))
+     (list (gexp-inputs exp)
+           '<>
+           (gexp-native-inputs exp))))
expected-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:277 11140c0> out)) <> ((#<package coreutils@8.24 gnu/packages/base.scm:244 2df06c0> out)))
actual-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:277 11140c0> out)) <> ((#<package coreutils@8.24 gnu/packages/base.scm:244 2df06c0> out)))
result: PASS

test-name: input list
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:239
source:
+ (test-assert
+   "input list"
+   (let ((exp (gexp (display
+                      '(ungexp (list %bootstrap-guile coreutils)))))
+         (guile (derivation->output-path
+                  (package-derivation %store %bootstrap-guile)))
+         (cu (derivation->output-path
+               (package-derivation %store coreutils))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display '(,guile ,cu))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: input list + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:252
source:
+ (test-assert
+   "input list + ungexp-native"
+   (let* ((target "mips64el-linux")
+          (exp (gexp (display
+                       (cons '(ungexp-native
+                                (list %bootstrap-guile coreutils))
+                             '(ungexp (list glibc binutils))))))
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-derivation %store coreutils)))
+          (xlibc (derivation->output-path
+                   (package-cross-derivation %store glibc target)))
+          (xbu (derivation->output-path
+                 (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,glibc "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display (cons '(,guile ,cu) '(,xlibc ,xbu)))
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: input list splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:274
source:
+ (test-assert
+   "input list splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug")
+                  %bootstrap-guile))
+          (outputs
+            (list (derivation->output-path
+                    (package-derivation %store glibc)
+                    "debug")
+                  (derivation->output-path
+                    (package-derivation %store %bootstrap-guile))))
+          (exp (gexp (list (ungexp-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            `(list ,@(cons 5 outputs))))))
actual-value: #t
result: PASS

test-name: input list splicing + ungexp-native-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:288
source:
+ (test-assert
+   "input list splicing + ungexp-native-splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug")
+                  %bootstrap-guile))
+          (exp (gexp (list (ungexp-native-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-native-inputs exp))
+          (null? (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            (gexp->sexp* exp "mips64el-linux")))))
actual-value: #t
result: PASS

test-name: output list
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:298
source:
+ (test-equal
+   "output list"
+   2
+   (let ((exp (gexp (begin
+                      (mkdir (ungexp output))
+                      (mkdir (ungexp output "bar"))))))
+     (length (gexp-outputs exp))))
expected-value: 2
actual-value: 2
result: PASS

test-name: output list, combined gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:304
source:
+ (test-assert
+   "output list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp exp0)
+                        (ungexp exp1)))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: output list, combined gexps, duplicate output
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:313
source:
+ (test-equal
+   "output list, combined gexps, duplicate output"
+   1
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (begin (mkdir (ungexp output)) (ungexp exp0))))
+          (exp2 (gexp (begin (mkdir (ungexp output)) (ungexp exp1)))))
+     (length (gexp-outputs exp2))))
expected-value: 1
actual-value: 1
result: PASS

test-name: output list + ungexp-splicing list, combined gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:320
source:
+ (test-assert
+   "output list + ungexp-splicing list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp-splicing (list exp0 exp1))))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: gexp->file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:330
source:
+ (test-assert
+   "gexp->file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp ->
+                  (gexp (display (ungexp %bootstrap-guile))))
+             (guile (package-file %bootstrap-guile))
+             (sexp (gexp->sexp exp))
+             (drv (gexp->file "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (refs ((store-lift references) out)))
+            (return
+              (and (equal? sexp (call-with-input-file out read))
+                   (equal? (list guile) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
random seed for tests: 1469828179
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/br6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/br//6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/br6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:341
source:
+ (test-assert
+   "gexp->derivation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file (text-file "foo" "Hello, world!"))
+             (exp ->
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink
+                            (string-append
+                              (ungexp %bootstrap-guile)
+                              "/bin/guile")
+                            "foo")
+                          (symlink (ungexp file) (ungexp output "2nd")))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (out2 -> (derivation->output-path drv "2nd"))
+             (done (built-derivations (list drv)))
+             (refs ((store-lift references) out))
+             (refs2 ((store-lift references) out2))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (and (string=?
+                     (readlink (string-append out "/foo"))
+                     guile)
+                   (string=? (readlink out2) file)
+                   (equal? refs (list (dirname (dirname guile))))
+                   (equal? refs2 (list file)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/zmhmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/zm//hmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/zmhmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation vs. grafts
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:365
source:
+ (test-assert
+   "gexp->derivation vs. grafts"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((graft? (set-grafting #f))
+             (p0 ->
+                 (dummy-package
+                   "dummy"
+                   (arguments '(#:implicit-inputs? #f))))
+             (r -> (package (inherit p0) (name "DuMMY")))
+             (p1 -> (package (inherit p0) (replacement r)))
+             (exp0 ->
+                   (gexp (frob (ungexp p0) (ungexp output))))
+             (exp1 ->
+                   (gexp (frob (ungexp p1) (ungexp output))))
+             (void (set-guile-for-build %bootstrap-guile))
+             (drv0 (gexp->derivation "t" exp0 #:graft? #t))
+             (drv1 (gexp->derivation "t" exp1 #:graft? #t))
+             (drv1* (gexp->derivation "t" exp1 #:graft? #f))
+             (_ (set-grafting graft?)))
+            (return
+              (and (not (string=?
+                          (derivation->output-path drv0)
+                          (derivation->output-path drv1)))
+                   (string=?
+                     (derivation->output-path drv0)
+                     (derivation->output-path drv1*)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, composed gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:384
source:
+ (test-assert
+   "gexp->derivation, composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp0 ->
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output)))))
+             (exp1 ->
+                   (gexp (symlink
+                           (string-append
+                             (ungexp %bootstrap-guile)
+                             "/bin/guile")
+                           "foo")))
+             (exp ->
+                  (gexp (begin (ungexp exp0) (ungexp exp1))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (string=?
+                (readlink (string-append out "/foo"))
+                guile)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d7a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/d7//a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d7a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation, default system
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:400
source:
+ (test-assert
+   "gexp->derivation, default system"
+   (run-with-store
+     %store
+     (let ((system (%current-system))
+           (mdrv (parameterize
+                   ((%current-system "foobar64-linux"))
+                   (gexp->derivation
+                     "foo"
+                     (gexp (mkdir (ungexp output)))))))
+       (mlet %store-monad
+             ((drv mdrv))
+             (return
+               (string=? system (derivation-system drv)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, local-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:411
source:
+ (test-assert
+   "gexp->derivation, local-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file -> (search-path %load-path "guix.scm"))
+             (intd (interned-file file #:recursive? #f))
+             (local -> (local-file file))
+             (exp ->
+                  (gexp (begin
+                          (stat (ungexp local))
+                          (symlink (ungexp local) (ungexp output)))))
+             (drv (gexp->derivation "local-file" exp)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (return
+                (string=?
+                  (readlink (derivation->output-path drv))
+                  intd))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h91argxck70yhn3k38qclqr7b1mcqky7-local-file.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/h9//1argxck70yhn3k38qclqr7b1mcqky7-local-file.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h91argxck70yhn3k38qclqr7b1mcqky7-local-file.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation, cross-compilation
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:425
source:
+ (test-assert
+   "gexp->derivation, cross-compilation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs ((store-lift references)
+                    (derivation-file-name xdrv)))
+             (xcu (package->cross-derivation coreutils target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name xcu) refs)
+                   (not (member (derivation-file-name cu) refs)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:439
source:
+ (test-assert
+   "gexp->derivation, ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:449
source:
+ (test-assert
+   "gexp->derivation, ungexp + ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils)
+                              (ungexp glibc)
+                              (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs ((store-lift references)
+                    (derivation-file-name xdrv)))
+             (xglibc (package->cross-derivation glibc target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name cu) refs)
+                   (member (derivation-file-name xglibc) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: (/home/sapientech/Dev/guix/guix_wip/test-tmp/store/izq9lrpv4z9xaaslk79ayidcv5lisn90-glibc-2.22.drv /home/sapientech/Dev/guix/guix_wip/test-tmp/store/sajnfz79nhdi4l8a464c9hhv4vf0gay2-coreutils-8.24.drv)
result: PASS

test-name: gexp->derivation, ungexp-native + composed gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:463
source:
+ (test-assert
+   "gexp->derivation, ungexp-native + composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp0 -> (gexp (list 1 2 (ungexp coreutils))))
+             (exp -> (gexp (list 0 (ungexp-native exp0))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, store copy
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:474
source:
+ (test-assert
+   "gexp->derivation, store copy"
+   (run-with-store
+     %store
+     (let ((build-one
+             (gexp (call-with-output-file
+                     (ungexp output)
+                     (lambda (port) (display "This is the one." port)))))
+           (build-two
+             (lambda (one)
+               (gexp (begin
+                       (mkdir (ungexp output))
+                       (symlink
+                         (ungexp one)
+                         (string-append (ungexp output) "/one"))
+                       (call-with-output-file
+                         (string-append (ungexp output) "/two")
+                         (lambda (port)
+                           (display "This is the second one." port)))))))
+           (build-drv
+             (gexp (begin
+                     (use-modules (guix build store-copy))
+                     (mkdir (ungexp output))
+                     (populate-store '("graph") (ungexp output))))))
+       (mlet* %store-monad
+              ((one (gexp->derivation "one" build-one))
+               (two (gexp->derivation "two" (build-two one)))
+               (drv (gexp->derivation
+                      "store-copy"
+                      build-drv
+                      #:references-graphs
+                      `(("graph" ,two))
+                      #:modules
+                      '((guix build store-copy) (guix build utils))))
+               (ok? (built-derivations (list drv)))
+               (out -> (derivation->output-path drv)))
+              (let ((one (derivation->output-path one))
+                    (two (derivation->output-path two)))
+                (return
+                  (and ok?
+                       (file-exists? (string-append out "/" one))
+                       (file-exists? (string-append out "/" two))
+                       (file-exists? (string-append out "/" two "/two"))
+                       (string=?
+                         (readlink (string-append out "/" two "/one"))
+                         one))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6qh9vwsa86rmnc4pqb4fjaj3ydbiy301-module-import.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/6q//h9vwsa86rmnc4pqb4fjaj3ydbiy301-module-import.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6qh9vwsa86rmnc4pqb4fjaj3ydbiy301-module-import.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6ycg2swlmras8w601nszvpqcanlimfb9-one.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/6y//cg2swlmras8w601nszvpqcanlimfb9-one.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6ycg2swlmras8w601nszvpqcanlimfb9-one.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/pxpbgfyxyc8qgzwswr950hm84jj04phm-module-import-compiled.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/px//pbgfyxyc8qgzwswr950hm84jj04phm-module-import-compiled.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/pxpbgfyxyc8qgzwswr950hm84jj04phm-module-import-compiled.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hlz0f76xsngzxm096sk52m421p3pk6vx-two.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/hl//z0f76xsngzxm096sk52m421p3pk6vx-two.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hlz0f76xsngzxm096sk52m421p3pk6vx-two.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mfjrzf11q70rc19jmyrr6iis51sj1130-store-copy.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/mf//jrzf11q70rc19jmyrr6iis51sj1130-store-copy.drv.bz2
`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/94lps0vkkjpcc4b0rnw9nvjm2jxy8dw2-one' -> `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0lnryq5km1232ajqyz9bipvp6nrr9scf-store-copy/home/sapientech/Dev/guix/guix_wip/test-tmp/store/94lps0vkkjpcc4b0rnw9nvjm2jxy8dw2-one'
`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/fp5qv848xdrqpf7fxbx5m8rw46whqw2d-two/one' -> `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0lnryq5km1232ajqyz9bipvp6nrr9scf-store-copy/home/sapientech/Dev/guix/guix_wip/test-tmp/store/fp5qv848xdrqpf7fxbx5m8rw46whqw2d-two/one'
`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/fp5qv848xdrqpf7fxbx5m8rw46whqw2d-two/two' -> `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0lnryq5km1232ajqyz9bipvp6nrr9scf-store-copy/home/sapientech/Dev/guix/guix_wip/test-tmp/store/fp5qv848xdrqpf7fxbx5m8rw46whqw2d-two/two'
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mfjrzf11q70rc19jmyrr6iis51sj1130-store-copy.drv -
actual-value: #t
result: PASS

test-name: imported-files
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:509
source:
+ (test-assert
+   "imported-files"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((files ->
+                    `(("x"
+                       unquote
+                       (search-path %load-path "ice-9/q.scm"))
+                      ("a/b/c"
+                       unquote
+                       (search-path %load-path "guix/derivations.scm"))
+                      ("p/q"
+                       unquote
+                       (search-path %load-path "guix.scm"))
+                      ("p/z"
+                       unquote
+                       (search-path %load-path "guix/store.scm"))))
+             (drv (imported-files files)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let ((dir (derivation->output-path drv)))
+                (return
+                  (every (match-lambda
+                           ((path . source)
+                            (equal?
+                              (call-with-input-file
+                                (string-append dir "/" path)
+                                get-bytevector-all)
+                              (call-with-input-file
+                                source
+                                get-bytevector-all))))
+                         files)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/135kg986zl2n23wgnayxik5zb7k93k3b-file-import.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/13//5kg986zl2n23wgnayxik5zb7k93k3b-file-import.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/135kg986zl2n23wgnayxik5zb7k93k3b-file-import.drv -
actual-value: #t
result: PASS

test-name: gexp-modules & ungexp
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:529
source:
+ (test-equal
+   "gexp-modules & ungexp"
+   '((bar) (foo))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp
+                 (with-imported-modules '((foo)) (gexp +)))
+               (ungexp-native
+                 (with-imported-modules '((bar)) (gexp -)))))))
expected-value: ((bar) (foo))
actual-value: ((bar) (foo))
result: PASS

test-name: gexp-modules & ungexp-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:535
source:
+ (test-equal
+   "gexp-modules & ungexp-splicing"
+   '((foo) (bar))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp-splicing
+                 (list (with-imported-modules '((foo)) (gexp +))
+                       (with-imported-modules '((bar)) (gexp -))))))))
expected-value: ((foo) (bar))
actual-value: ((foo) (bar))
result: PASS

test-name: gexp->derivation #:modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:541
source:
+ (test-assert
+   "gexp->derivation #:modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (gexp (begin
+                            (use-modules (guix build utils))
+                            (mkdir-p
+                              (string-append
+                                (ungexp output)
+                                "/guile/guix/nix"))
+                            #t)))
+             (drv (gexp->derivation
+                    "test-with-modules"
+                    build
+                    #:modules
+                    '((guix build utils)))))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6lqp7f964zbiviini207blfw43bcp6jk-test-with-modules.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/6l//qp7f964zbiviini207blfw43bcp6jk-test-with-modules.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/6lqp7f964zbiviini207blfw43bcp6jk-test-with-modules.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation & with-imported-modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:555
source:
+ (test-assert
+   "gexp->derivation & with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (with-imported-modules
+                      '((guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build utils))
+                              (mkdir-p
+                                (string-append
+                                  (ungexp output)
+                                  "/guile/guix/nix"))
+                              #t))))
+             (drv (gexp->derivation "test-with-modules" build)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & nested with-imported-modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:570
source:
+ (test-assert
+   "gexp->derivation & nested with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build1
+               ->
+               (with-imported-modules
+                 '((guix build utils))
+                 (gexp (begin
+                         (use-modules (guix build utils))
+                         (mkdir-p
+                           (string-append (ungexp output) "/guile/guix/nix"))
+                         #t))))
+             (build2
+               ->
+               (with-imported-modules
+                 '((guix build bournish))
+                 (gexp (begin
+                         (use-modules
+                           (guix build bournish)
+                           (system base compile))
+                         (ungexp-native build1)
+                         (call-with-output-file
+                           (string-append (ungexp output) "/b")
+                           (lambda (port)
+                             (write (read-and-compile
+                                      (open-input-string "cd /foo")
+                                      #:from
+                                      %bournish-language
+                                      #:to
+                                      'scheme)
+                                    port)))))))
+             (drv (gexp->derivation "test-with-modules" build2)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix")))
+                     (b (string-append p "/b")))
+                (return
+                  (and (eq? (stat:type s) 'directory)
+                       (equal?
+                         '(chdir "/foo")
+                         (call-with-input-file b read)))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/r3icsc8rkkx42gqycsi2k43qdfjl5a8z-module-import.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/r3//icsc8rkkx42gqycsi2k43qdfjl5a8z-module-import.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/r3icsc8rkkx42gqycsi2k43qdfjl5a8z-module-import.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/wh7apihrc82cp28arm2n6xfxcx6125zc-module-import-compiled.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/wh//7apihrc82cp28arm2n6xfxcx6125zc-module-import-compiled.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/wh7apihrc82cp28arm2n6xfxcx6125zc-module-import-compiled.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qmqsh8w1bd8pbxrrmc2k7viyyfdm2jzb-test-with-modules.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/qm//qsh8w1bd8pbxrrmc2k7viyyfdm2jzb-test-with-modules.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qmqsh8w1bd8pbxrrmc2k7viyyfdm2jzb-test-with-modules.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:references-graphs
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:599
source:
+ (test-assert
+   "gexp->derivation #:references-graphs"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((one (text-file "one" (random-text)))
+             (two (gexp->derivation
+                    "two"
+                    (gexp (symlink (ungexp one) (ungexp output "chbouib")))))
+             (build ->
+                    (with-imported-modules
+                      '((guix build store-copy) (guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build store-copy))
+                              (with-output-to-file
+                                (ungexp output)
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "guile"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "one")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "one"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "two")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "two"
+                                           read-reference-graph))))))))
+             (drv (gexp->derivation
+                    "ref-graphs"
+                    build
+                    #:references-graphs
+                    `(("one" ,one)
+                      ("two" ,two "chbouib")
+                      ("guile" ,%bootstrap-guile))))
+             (ok? (built-derivations (list drv)))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (bash (interned-file
+                     (search-bootstrap-binary
+                       "bash"
+                       (%current-system))
+                     "bash"
+                     #:recursive?
+                     #t))
+             (g-one -> (derivation->output-path drv "one"))
+             (g-two -> (derivation->output-path drv "two"))
+             (g-guile -> (derivation->output-path drv)))
+            (return
+              (and ok?
+                   (equal?
+                     (call-with-input-file g-one read)
+                     (list one))
+                   (lset= string=?
+                          (call-with-input-file g-two read)
+                          (list one
+                                (derivation->output-path two "chbouib")))
+                   (lset= string=?
+                          (call-with-input-file g-guile read)
+                          (list (derivation->output-path guile-drv) bash)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yi0nig74ynbzjm47frd4pvgl0hmq80w5-two.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/yi//0nig74ynbzjm47frd4pvgl0hmq80w5-two.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yi0nig74ynbzjm47frd4pvgl0hmq80w5-two.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/4iwkm0gw4qhhnn6xazsgnx7lhc6iwzam-ref-graphs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/4i//wkm0gw4qhhnn6xazsgnx7lhc6iwzam-ref-graphs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/4iwkm0gw4qhhnn6xazsgnx7lhc6iwzam-ref-graphs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:643
source:
+ (test-assert
+   "gexp->derivation #:allowed-references"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "allowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:allowed-references
+                   (list "out" %bootstrap-guile))))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qr3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/qr//3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qr3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, specific output
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:655
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, specific output"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((in (gexp->derivation
+                   "thing"
+                   (gexp (begin
+                           (mkdir (ungexp output "ok"))
+                           (mkdir (ungexp output "not-ok"))))))
+             (drv (gexp->derivation
+                    "allowed-refs"
+                    (gexp (begin
+                            (pk (ungexp in "not-ok"))
+                            (mkdir (ungexp output))
+                            (chdir (ungexp output))
+                            (symlink (ungexp output) "self")
+                            (symlink (ungexp in "ok") "ok")))
+                    #:allowed-references
+                    (list "out" (gexp-input in "ok")))))
+            (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yk97bv7rcbzlv3j79b9m2vr8v7h99hr7-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/yk//97bv7rcbzlv3j79b9m2vr8v7h99hr7-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yk97bv7rcbzlv3j79b9m2vr8v7h99hr7-thing.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bfrj4q14qxc5bvsy1938qi6rgb0xzsqy-allowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/bf//rj4q14qxc5bvsy1938qi6rgb0xzsqy-allowed-refs.drv.bz2

;;; ("/home/sapientech/Dev/guix/guix_wip/test-tmp/store/hl2cmd513kn9sa6pbf4zr3k7sa78q5ff-thing-not-ok")
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bfrj4q14qxc5bvsy1938qi6rgb0xzsqy-allowed-refs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, disallowed
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:672
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, disallowed"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "allowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:allowed-references
+                  '()))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/f2wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/f2//wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv.bz2
output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/ilzqy6rrlwdwsa939k1z5maipa1g202i-allowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/f2wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv - 1 output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/ilzqy6rrlwdwsa939k1z5maipa1g202i-allowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references, allowed
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:684
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references, allowed"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "disallowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:disallowed-references
+                   '())))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n3hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/n3//hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n3hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:696
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "disallowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:disallowed-references
+                  (list %bootstrap-guile)))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/y6h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/y6//h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv.bz2
output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/jz1q32n6qxyvi6dkywl028y6fvdfsi1k-disallowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/y6h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv - 1 output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/jz1q32n6qxyvi6dkywl028y6fvdfsi1k-disallowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->script
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:716
source:
+ (test-assert
+   "gexp->script"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((n -> (random (expt 2 50)))
+             (exp ->
+                  (gexp (system*
+                          (string-append
+                            (ungexp %bootstrap-guile)
+                            "/bin/guile")
+                          "-c"
+                          (object->string '(display (expt (ungexp n) 2))))))
+             (drv (gexp->script
+                    "guile-thing"
+                    exp
+                    #:guile
+                    %bootstrap-guile))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv))))
+            (let* ((pipe (open-input-pipe out))
+                   (str (get-string-all pipe)))
+              (return
+                (and (zero? (close-pipe pipe))
+                     (= (expt n 2) (string->number str))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: program-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:733
source:
+ (test-assert
+   "program-file"
+   (run-with-store
+     %store
+     (let* ((n (random (expt 2 50)))
+            (exp (with-imported-modules
+                   '((guix build utils))
+                   (gexp (begin
+                           (use-modules (guix build utils))
+                           (display (ungexp n))))))
+            (file (program-file
+                    "program"
+                    exp
+                    #:guile
+                    %bootstrap-guile)))
+       (mlet* %store-monad
+              ((drv (lower-object file))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (let* ((pipe (open-input-pipe out))
+                       (str (get-string-all pipe)))
+                  (return
+                    (and (zero? (close-pipe pipe))
+                         (= n (string->number str))))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: scheme-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:750
source:
+ (test-assert
+   "scheme-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello, world!"))
+            (scheme
+              (scheme-file
+                "bar"
+                (gexp (list "foo" (ungexp text))))))
+       (mlet* %store-monad
+              ((drv (lower-object scheme))
+               (text (lower-object text))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (mlet %store-monad
+                      ((refs ((store-lift references) out)))
+                      (return
+                        (and (equal? refs (list text))
+                             (equal?
+                               `(list "foo" ,text)
+                               (call-with-input-file out read))))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/c8il5061j0qwbgj6lr5yn10iw1gp8jch-bar.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/c8//il5061j0qwbgj6lr5yn10iw1gp8jch-bar.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/c8il5061j0qwbgj6lr5yn10iw1gp8jch-bar.drv -
actual-value: #t
result: PASS

test-name: text-file*
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:763
source:
+ (test-assert
+   "text-file*"
+   (let ((references (store-lift references)))
+     (run-with-store
+       %store
+       (mlet* %store-monad
+              ((drv (package->derivation %bootstrap-guile))
+               (guile -> (derivation->output-path drv))
+               (file (text-file "bar" "This is bar."))
+               (text (text-file*
+                       "foo"
+                       %bootstrap-guile
+                       "/bin/guile "
+                       (gexp-input %bootstrap-guile "out")
+                       "/bin/guile "
+                       drv
+                       "/bin/guile "
+                       file))
+               (done (built-derivations (list text)))
+               (out -> (derivation->output-path text))
+               (refs (references out)))
+              (return
+                (and (lset= string=? refs (list guile file))
+                     (equal?
+                       (call-with-input-file out get-string-all)
+                       (string-append
+                         guile
+                         "/bin/guile "
+                         guile
+                         "/bin/guile "
+                         guile
+                         "/bin/guile "
+                         file)))))
+       #:guile-for-build
+       (package-derivation %store %bootstrap-guile))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hkndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/hk//ndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hkndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv -
actual-value: #t
result: PASS

test-name: mixed-text-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:787
source:
+ (test-assert
+   "mixed-text-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file ->
+                   (mixed-text-file
+                     "mixed"
+                     "export PATH="
+                     %bootstrap-guile
+                     "/bin"))
+             (drv (lower-object file))
+             (out -> (derivation->output-path drv))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (guile -> (derivation->output-path guile-drv)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (mlet %store-monad
+                    ((refs ((store-lift references) out)))
+                    (return
+                      (and (string=?
+                             (string-append "export PATH=" guile "/bin")
+                             (call-with-input-file out get-string-all))
+                           (equal? refs (list guile)))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h3cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/h3//cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h3cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation vs. %current-target-system
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:802
source:
+ (test-assert
+   "gexp->derivation vs. %current-target-system"
+   (let ((mval (gexp->derivation
+                 "foo"
+                 (gexp (begin
+                         (mkdir (ungexp output))
+                         (foo (ungexp-native gnu-make))))
+                 #:target
+                 #f)))
+     (parameterize
+       ((%current-target-system "fooooo"))
+       (derivation? (run-with-store %store mval)))))
actual-value: #t
result: PASS

test-name: lower-object
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:813
source:
+ (test-assert
+   "lower-object"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv1 (lower-object %bootstrap-guile))
+            (drv2 (lower-object (package-source coreutils)))
+            (item (lower-object (plain-file "foo" "Hello!"))))
+           (return
+             (and (derivation? drv1)
+                  (derivation? drv2)
+                  (store-path? item))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: lower-object, computed-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:820
source:
+ (test-assert
+   "lower-object, computed-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello!"))
+            (exp (gexp (begin
+                         (mkdir (ungexp output))
+                         (symlink
+                           (ungexp %bootstrap-guile)
+                           (string-append (ungexp output) "/guile"))
+                         (symlink
+                           (ungexp text)
+                           (string-append (ungexp output) "/text")))))
+            (computed (computed-file "computed" exp)))
+       (mlet* %store-monad
+              ((text (lower-object text))
+               (guile-drv (lower-object %bootstrap-guile))
+               (comp-drv (lower-object computed))
+               (comp -> (derivation->output-path comp-drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list comp-drv))
+                (return
+                  (and (string=?
+                         (readlink (string-append comp "/guile"))
+                         (derivation->output-path guile-drv))
+                       (string=?
+                         (readlink (string-append comp "/text"))
+                         text))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fdhli6nzdk7643skliaca0flzvrf2xx8-computed.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/fd//hli6nzdk7643skliaca0flzvrf2xx8-computed.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fdhli6nzdk7643skliaca0flzvrf2xx8-computed.drv -
actual-value: #t
result: PASS

test-name: printer
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:839
source:
+ (test-assert
+   "printer"
+   (string-match
+     "^#<gexp \\(string-append .*#<package coreutils.* \"/bin/uname\"\\) [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (string-append (ungexp coreutils) "/bin/uname")))))))
actual-value: #(#<gexp (string-append #<gexp-input #<package coreutils@8.24 gnu/packages/base.scm:244 2df06c0>:out> "/bin/uname") 2a6ad20> (0 . 122))
result: PASS

test-name: printer vs. ungexp-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:848
source:
+ (test-assert
+   "printer vs. ungexp-splicing"
+   (string-match
+     "^#<gexp .* [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (begin (ungexp-splicing (gexp ())))))))))
actual-value: #(#<gexp  26b1cc0> (0 . 16))
result: PASS

test-name: sugar
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:856
source:
+ (test-equal
+   "sugar"
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z))))
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z)))))
expected-value: (gexp (foo (ungexp bar) (ungexp baz out) (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo out) (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
actual-value: (gexp (foo (ungexp bar) (ungexp baz out) (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo out) (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
result: PASS


FAIL: tests/syscalls
====================

test-name: mount, ENOENT
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:38
source:
+ (test-equal
+   "mount, ENOENT"
+   ENOENT
+   (catch 'system-error
+          (lambda ()
+            (mount "/dev/null" "/does-not-exist" "ext2")
+            #f)
+          (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS

test-name: umount, ENOENT/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:46
source:
+ (test-assert
+   "umount, ENOENT/EPERM"
+   (catch 'system-error
+          (lambda () (umount "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS

test-name: mount-points
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:55
source:
+ (test-assert
+   "mount-points"
+   (any (cute member <> (mount-points))
+        '("/" "/proc" "/sys" "/dev")))
actual-value: (/ /sys/kernel/security /dev/shm /dev/pts /sys/fs/cgroup /sys/fs/cgroup/systemd /sys/fs/pstore /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuset /sys/fs/cgroup/net_cls /sys/fs/cgroup/devices /sys/fs/cgroup/freezer /sys/fs/cgroup/memory /sys/fs/cgroup/pids /sys/fs/cgroup/blkio /proc/sys/fs/binfmt_misc /dev/hugepages /dev/mqueue /sys/kernel/config /tmp /run/user/1000 /mnt /sys/fs/fuse/connections)
result: PASS

test-name: swapon, ENOENT/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:61
source:
+ (test-assert
+   "swapon, ENOENT/EPERM"
+   (catch 'system-error
+          (lambda () (swapon "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS

test-name: swapoff, ENOENT/EINVAL/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:69
source:
+ (test-assert
+   "swapoff, ENOENT/EINVAL/EPERM"
+   (catch 'system-error
+          (lambda () (swapoff "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM EINVAL ENOENT)))))
actual-value: (1 22 2)
result: PASS

test-name: mkdtemp!
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:77
source:
+ (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))))
actual-value: #t
result: PASS

test-name: statfs, ENOENT
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:85
source:
+ (test-equal
+   "statfs, ENOENT"
+   ENOENT
+   (catch 'system-error
+          (lambda () (statfs "/does-not-exist"))
+          (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS

test-name: statfs
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:92
source:
+ (test-assert
+   "statfs"
+   (let ((fs (statfs "/")))
+     (and (file-system? fs)
+          (> (file-system-block-size fs) 0)
+          (>= (file-system-blocks-available fs) 0)
+          (>= (file-system-blocks-free fs)
+              (file-system-blocks-available fs)))))
actual-value: #t
result: PASS

test-name: clone
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
source:
+ (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))))))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268435473 "Operation not permitted")
+   (1))
result: FAIL

test-name: setns
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:122
source:
+ (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 '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))))))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268435473 "Operation not permitted")
+   (1))
result: FAIL

test-name: pivot-root
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:151
source:
+ (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))))))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268566545 "Operation not permitted")
+   (1))
result: FAIL

test-name: fcntl-flock wait
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:180
source:
+ (test-equal
+   "fcntl-flock wait"
+   42
+   (let ((file (open-file temp-file "w0b")))
+     (fcntl-flock file 'write-lock)
+     (match (primitive-fork)
+            (0
+             (dynamic-wind
+               (const #t)
+               (lambda ()
+                 (let ((file (open-file temp-file "r0b")))
+                   (fcntl-flock file 'read-lock)
+                   (primitive-exit (read file)))
+                 (primitive-exit 1))
+               (lambda () (primitive-exit 2))))
+            (pid (display "hello, world!" file)
+                 (force-output file)
+                 (sleep 1)
+                 (seek file 0 SEEK_SET)
+                 (truncate-file file 0)
+                 (write 42 file)
+                 (force-output file)
+                 (fcntl-flock file 'unlock)
+                 (match (waitpid pid)
+                        ((_ . status)
+                         (let ((result (status:exit-val status)))
+                           (close-port file)
+                           result)))))))
expected-value: 42
actual-value: 42
result: PASS

test-name: fcntl-flock non-blocking
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:219
source:
+ (test-equal
+   "fcntl-flock non-blocking"
+   EAGAIN
+   (match (pipe)
+          ((input . output)
+           (match (primitive-fork)
+                  (0
+                   (dynamic-wind
+                     (const #t)
+                     (lambda ()
+                       (close-port output)
+                       (read-char input)
+                       (let ((file (open-file temp-file "w0")))
+                         (catch 'flock-error
+                                (lambda ()
+                                  (fcntl-flock file 'write-lock #:wait? #f))
+                                (lambda (key errno)
+                                  (primitive-exit (pk 'errno errno)))))
+                       (primitive-exit -1))
+                     (lambda () (primitive-exit -2))))
+                  (pid (close-port input)
+                       (let ((file (open-file temp-file "w0")))
+                         (fcntl-flock file 'write-lock)
+                         (write 'green-light output)
+                         (force-output output)
+                         (match (waitpid pid)
+                                ((_ . status)
+                                 (let ((result (status:exit-val status)))
+                                   (fcntl-flock file 'unlock)
+                                   (close-port file)
+                                   result)))))))))

;;; (errno 11)
expected-value: 11
actual-value: 11
result: PASS

test-name: all-network-interface-names
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:261
source:
+ (test-assert
+   "all-network-interface-names"
+   (match (all-network-interface-names)
+          (((? string? names) ..1) (member "lo" names))))
actual-value: (lo enp0s25 wlp2s0)
result: PASS

test-name: network-interface-names
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:266
source:
+ (test-assert
+   "network-interface-names"
+   (match (network-interface-names)
+          (((? string? names) ..1)
+           (lset<=
+             string=?
+             names
+             (all-network-interface-names)))))
actual-value: #t
result: PASS

test-name: network-interface-flags
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:271
source:
+ (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))))))
actual-value: #t
result: PASS

test-name: loopback-network-interface?
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:278
source:
+ (test-equal
+   "loopback-network-interface?"
+   ENODEV
+   (and (loopback-network-interface? "lo")
+        (catch 'system-error
+               (lambda ()
+                 (loopback-network-interface? "nonexistent")
+                 #f)
+               (lambda args (system-error-errno args)))))
expected-value: 19
actual-value: 19
result: PASS

test-name: set-network-interface-flags
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:289
source:
+ (test-assert
+   "set-network-interface-flags"
+   (let ((sock (socket AF_INET SOCK_STREAM 0)))
+     (catch 'system-error
+            (lambda ()
+              (set-network-interface-flags sock "lo" IFF_UP))
+            (lambda args
+              (close-port sock)
+              (memv (system-error-errno args)
+                    (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS

test-name: network-interface-address lo
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:299
source:
+ (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))
expected-value: #(2 2130706433 0)
actual-value: #(2 2130706433 0)
result: PASS

test-name: set-network-interface-address
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:307
source:
+ (test-assert
+   "set-network-interface-address"
+   (let ((sock (socket AF_INET SOCK_STREAM 0)))
+     (catch '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))))))
actual-value: (1 13)
result: PASS

test-name: network-interfaces returns one or more interfaces
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:321
source:
+ (test-equal
+   "network-interfaces returns one or more interfaces"
+   '(#t #t #t)
+   (match (network-interfaces)
+          ((interfaces ..1)
+           (list (every interface? interfaces)
+                 (every string? (map interface-name interfaces))
+                 (every (lambda (sockaddr)
+                          (or (vector? sockaddr) (not sockaddr)))
+                        (map interface-address interfaces))))))
expected-value: (#t #t #t)
actual-value: (#t #t #t)
result: PASS

test-name: network-interfaces returns "lo"
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:333
source:
+ (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)))))))
expected-value: (#t #(2 2130706433 0))
actual-value: (#t #(2 2130706433 0))
result: PASS

test-name: tcgetattr ENOTTY
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:348
source:
+ (test-equal
+   "tcgetattr ENOTTY"
+   ENOTTY
+   (catch 'system-error
+          (lambda ()
+            (call-with-input-file
+              "/dev/null"
+              (lambda (port) (tcgetattr (fileno port)))))
+          (compose system-error-errno list)))
expected-value: 25
actual-value: 25
result: PASS

test-name: tcgetattr
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:362
source:
+ (test-assert
+   "tcgetattr"
+   (let ((termios (tcgetattr 0)))
+     (and (termios? termios)
+          (> (termios-input-speed termios) 0)
+          (> (termios-output-speed termios) 0))))
actual-value: #t
result: PASS

test-name: tcsetattr
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:368
source:
+ (test-assert
+   "tcsetattr"
+   (let ((first (tcgetattr 0)))
+     (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+     (equal? first (tcgetattr 0))))
actual-value: #t
result: PASS

test-name: terminal-window-size ENOTTY
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:373
source:
+ (test-assert
+   "terminal-window-size ENOTTY"
+   (call-with-input-file
+     "/dev/null"
+     (lambda (port)
+       (catch 'system-error
+              (lambda () (terminal-window-size port))
+              (lambda args
+                (memv (system-error-errno args)
+                      (list ENOTTY EINVAL)))))))
actual-value: (25 22)
result: PASS

test-name: terminal-columns
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:384
source:
+ (test-assert
+   "terminal-columns"
+   (> (terminal-columns) 0))
actual-value: #t
result: PASS

test-name: terminal-columns non-file port
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:387
source:
+ (test-assert
+   "terminal-columns non-file port"
+   (> (terminal-columns
+        (open-input-string
+          "Join us now, share the software!"))
+      0))
actual-value: #t
result: PASS


SKIP: tests/gremlin
===================

test-name: elf-dynamic-info-needed, executable
location: /home/sapientech/Dev/guix/guix_wip/tests/gremlin.scm:44
source:
+ (test-assert
+   "elf-dynamic-info-needed, executable"
+   (let* ((elf (call-with-input-file %guile-executable read-elf))
+          (dyninfo (elf-dynamic-info elf)))
+     (or (not dyninfo)
+         (lset<=
+           string=?
+           (list (string-append "libguile-" (effective-version))
+                 "libgc"
+                 "libunistring"
+                 "libffi")
+           (map (lambda (lib)
+                  (string-take lib (string-contains lib ".so")))
+                (elf-dynamic-info-needed dyninfo))))))
result: SKIP

test-name: expand-origin
location: /home/sapientech/Dev/guix/guix_wip/tests/gremlin.scm:55
source:
+ (test-equal
+   "expand-origin"
+   '("OOO/../lib"
+     "OOO"
+     "../OOO/bar/OOO/baz"
+     "ORIGIN/foo")
+   (map (cut expand-origin <> "OOO")
+        '("$ORIGIN/../lib"
+          "${ORIGIN}"
+          "../${ORIGIN}/bar/$ORIGIN/baz"
+          "ORIGIN/foo")))
expected-value: (OOO/../lib OOO ../OOO/bar/OOO/baz ORIGIN/foo)
actual-value: (OOO/../lib OOO ../OOO/bar/OOO/baz ORIGIN/foo)
result: PASS


FAIL: tests/lint
================

test-name: description: not a string
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:145
source:
+ (test-assert
+   "description: not a string"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (description 'foobar))))
+           (check-description-style pkg)))
+       "invalid description")))
actual-value: #t
result: PASS

test-name: description: not empty
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:153
source:
+ (test-assert
+   "description: not empty"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (description ""))))
+           (check-description-style pkg)))
+       "description should not be empty")))
actual-value: #t
result: PASS

test-name: description: valid Texinfo markup
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:161
source:
+ (test-assert
+   "description: valid Texinfo markup"
+   (->bool
+     (string-contains
+       (with-warnings
+         (check-description-style
+           (dummy-package "x" (description "f{oo}b@r"))))
+       "Texinfo markup in description is invalid")))
actual-value: #t
result: PASS

test-name: description: does not start with an upper-case letter
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:168
source:
+ (test-assert
+   "description: does not start with an upper-case letter"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (description "bad description."))))
+           (check-description-style pkg)))
+       "description should start with an upper-case letter")))
actual-value: #t
result: PASS

test-name: description: may start with a digit
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:176
source:
+ (test-assert
+   "description: may start with a digit"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description "2-component library."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: description: may start with lower-case package name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:183
source:
+ (test-assert
+   "description: may start with lower-case package name"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description "x is a dummy package."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: description: two spaces after end of sentence
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:190
source:
+ (test-assert
+   "description: two spaces after end of sentence"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (description "Bad. Quite bad."))))
+           (check-description-style pkg)))
+       "sentences in description should be followed by two spaces")))
actual-value: #t
result: PASS

test-name: description: end-of-sentence detection with abbreviations
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:198
source:
+ (test-assert
+   "description: end-of-sentence detection with abbreviations"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description
+                      "E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD)."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: not a string
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:206
source:
+ (test-assert
+   "synopsis: not a string"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis #f))))
+           (check-synopsis-style pkg)))
+       "invalid synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: not empty
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:214
source:
+ (test-assert
+   "synopsis: not empty"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis ""))))
+           (check-synopsis-style pkg)))
+       "synopsis should not be empty")))
actual-value: #t
result: PASS

test-name: synopsis: does not start with an upper-case letter
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:222
source:
+ (test-assert
+   "synopsis: does not start with an upper-case letter"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "bad synopsis."))))
+           (check-synopsis-style pkg)))
+       "synopsis should start with an upper-case letter")))
actual-value: #t
result: PASS

test-name: synopsis: may start with a digit
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:230
source:
+ (test-assert
+   "synopsis: may start with a digit"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (synopsis "5-dimensional frobnicator"))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: ends with a period
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:237
source:
+ (test-assert
+   "synopsis: ends with a period"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "Bad synopsis."))))
+           (check-synopsis-style pkg)))
+       "no period allowed at the end of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: ends with 'etc.'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:245
source:
+ (test-assert
+   "synopsis: ends with 'etc.'"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package "x" (synopsis "Foo, bar, etc."))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'A'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:251
source:
+ (test-assert
+   "synopsis: starts with 'A'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "A bad synop\u015dis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'An'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:259
source:
+ (test-assert
+   "synopsis: starts with 'An'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "An awful synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'a'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:267
source:
+ (test-assert
+   "synopsis: starts with 'a'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "a bad synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'an'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:275
source:
+ (test-assert
+   "synopsis: starts with 'an'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "an awful synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: too long
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:283
source:
+ (test-assert
+   "synopsis: too long"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis (make-string 80 #\x)))))
+           (check-synopsis-style pkg)))
+       "synopsis should be less than 80 characters long")))
actual-value: #t
result: PASS

test-name: synopsis: start with package name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:291
source:
+ (test-assert
+   "synopsis: start with package name"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (name "foo")
+                      (synopsis "foo, a nice package"))))
+           (check-synopsis-style pkg)))
+       "synopsis should not start with the package name")))
actual-value: #t
result: PASS

test-name: synopsis: start with package name prefix
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:300
source:
+ (test-assert
+   "synopsis: start with package name prefix"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "arb"
+                    (synopsis "Arbitrary precision"))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: start with abbreviation
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:307
source:
+ (test-assert
+   "synopsis: start with abbreviation"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "uucp"
+                    (synopsis "UUCP implementation")
+                    (description "Imagine this is Taylor UUCP."))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: inputs: pkg-config is probably a native input
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:316
source:
+ (test-assert
+   "inputs: pkg-config is probably a native input"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (inputs `(("pkg-config" ,pkg-config))))))
+           (check-inputs-should-be-native pkg)))
+       "'pkg-config' should probably be a native input")))
actual-value: #t
result: PASS

test-name: inputs: glib:bin is probably a native input
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:325
source:
+ (test-assert
+   "inputs: glib:bin is probably a native input"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (inputs `(("glib" ,glib "bin"))))))
+           (check-inputs-should-be-native pkg)))
+       "'glib:bin' should probably be a native input")))
actual-value: #t
result: PASS

test-name: patches: file names
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:334
source:
+ (test-assert
+   "patches: file names"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (source
+                        (dummy-origin
+                          (patches (list "/path/to/y.patch")))))))
+           (check-patch-file-names pkg)))
+       "file names of patches should start with the package name")))
actual-value: #t
result: PASS

test-name: patches: not found
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:345
source:
+ (test-assert
+   "patches: not found"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (source
+                        (dummy-origin
+                          (patches
+                            (list (search-patch
+                                    "this-patch-does-not-exist!"))))))))
+           (check-patch-file-names pkg)))
+       "patch not found")))
actual-value: #t
result: PASS

test-name: derivation: invalid arguments
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:357
source:
+ (test-assert
+   "derivation: invalid arguments"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (arguments
+                        '(#:imported-modules (invalid-module))))))
+           (check-derivation pkg)))
+       "failed to create derivation")))
actual-value: #t
result: PASS

test-name: license: invalid license
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:367
source:
+ (test-assert
+   "license: invalid license"
+   (string-contains
+     (with-warnings
+       (check-license (dummy-package "x" (license #f))))
+     "invalid license"))
actual-value: 63
result: PASS

test-name: home-page: wrong home-page
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:373
source:
+ (test-assert
+   "home-page: wrong home-page"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page #f))))
+           (check-home-page pkg)))
+       "invalid")))
actual-value: #t
result: PASS

test-name: home-page: invalid URI
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:383
source:
+ (test-assert
+   "home-page: invalid URI"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page "foobar"))))
+           (check-home-page pkg)))
+       "invalid home page URL")))
actual-value: #t
result: PASS

test-name: home-page: host not found
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:393
source:
+ (test-assert
+   "home-page: host not found"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page "http://does-not-exist"))))
+           (check-home-page pkg)))
+       "domain not found")))
actual-value: #f
result: FAIL

test-name: home-page: Connection refused
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:404
source:
+ (test-assert
+   "home-page: Connection refused"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page %local-url))))
+           (check-home-page pkg)))
+       "Connection refused")))
actual-value: #t
result: PASS

test-name: home-page: 200
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:415
source:
+ (test-equal
+   "home-page: 200"
+   ""
+   (with-warnings
+     (with-http-server
+       200
+       %long-string
+       (let ((pkg (package
+                    (inherit (dummy-package "x"))
+                    (home-page %local-url))))
+         (check-home-page pkg)))))
expected-value: 
actual-value: 
result: PASS

test-name: home-page: 200 but short length
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:425
source:
+ (test-assert
+   "home-page: 200 but short length"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           200
+           "This is too small."
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (home-page %local-url))))
+             (check-home-page pkg))))
+       "suspiciously small")))
actual-value: #t
result: PASS

test-name: home-page: 404
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:437
source:
+ (test-assert
+   "home-page: 404"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           404
+           %long-string
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (home-page %local-url))))
+             (check-home-page pkg))))
+       "not reachable: 404")))
actual-value: #t
result: PASS

test-name: source-file-name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:448
source:
+ (test-assert
+   "source-file-name"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method url-fetch)
+                          (uri "http://www.example.com/3.2.1.tar.gz")
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: v prefix
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:462
source:
+ (test-assert
+   "source-file-name: v prefix"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method url-fetch)
+                          (uri "http://www.example.com/v3.2.1.tar.gz")
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: bad checkout
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:476
source:
+ (test-assert
+   "source-file-name: bad checkout"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method git-fetch)
+                          (uri (git-reference
+                                 (url "http://www.example.com/x.git")
+                                 (commit "0")))
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: good checkout
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:492
source:
+ (test-assert
+   "source-file-name: good checkout"
+   (not (->bool
+          (string-contains
+            (with-warnings
+              (let ((pkg (dummy-package
+                           "x"
+                           (version "3.2.1")
+                           (source
+                             (origin
+                               (method git-fetch)
+                               (uri (git-reference
+                                      (url "http://git.example.com/x.git")
+                                      (commit "0")))
+                               (file-name (string-append "x-" version))
+                               (sha256 %null-sha256))))))
+                (check-source-file-name pkg)))
+            "file name should contain the package name"))))
actual-value: #t
result: PASS

test-name: source-file-name: valid
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:510
source:
+ (test-assert
+   "source-file-name: valid"
+   (not (->bool
+          (string-contains
+            (with-warnings
+              (let ((pkg (dummy-package
+                           "x"
+                           (version "3.2.1")
+                           (source
+                             (origin
+                               (method url-fetch)
+                               (uri "http://www.example.com/x-3.2.1.tar.gz")
+                               (sha256 %null-sha256))))))
+                (check-source-file-name pkg)))
+            "file name should contain the package name"))))
actual-value: #t
result: PASS

test-name: source: 200
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:526
source:
+ (test-equal
+   "source: 200"
+   ""
+   (with-warnings
+     (with-http-server
+       200
+       %long-string
+       (let ((pkg (package
+                    (inherit (dummy-package "x"))
+                    (source
+                      (origin
+                        (method url-fetch)
+                        (uri %local-url)
+                        (sha256 %null-sha256))))))
+         (check-source pkg)))))
expected-value: 
actual-value: 
result: PASS

test-name: source: 200 but short length
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:539
source:
+ (test-assert
+   "source: 200 but short length"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           200
+           "This is too small."
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (source
+                          (origin
+                            (method url-fetch)
+                            (uri %local-url)
+                            (sha256 %null-sha256))))))
+             (check-source pkg))))
+       "suspiciously small")))
actual-value: #t
result: PASS

test-name: source: 404
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:554
source:
+ (test-assert
+   "source: 404"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           404
+           %long-string
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (source
+                          (origin
+                            (method url-fetch)
+                            (uri %local-url)
+                            (sha256 %null-sha256))))))
+             (check-source pkg))))
+       "not reachable: 404")))
actual-value: #t
result: PASS

test-name: cve
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:568
source:
+ (test-assert
+   "cve"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (const '()))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities (dummy-package "x"))))))
actual-value: #t
result: PASS

test-name: cve: one vulnerability
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:573
source:
+ (test-assert
+   "cve: one vulnerability"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-contains
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package "pi" (version "3.14"))))
+           "vulnerable to CVE-2015-1234")))
actual-value: 76
result: PASS

test-name: cve: one patched vulnerability
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:585
source:
+ (test-assert
+   "cve: one patched vulnerability"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package
+                 "pi"
+                 (version "3.14")
+                 (source
+                   (dummy-origin
+                     (patches (list "/a/b/pi-CVE-2015-1234.patch"))))))))))
actual-value: #t
result: PASS

test-name: cve: patched vulnerability in replacement
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:602
source:
+ (test-assert
+   "cve: patched vulnerability in replacement"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package
+                 "pi"
+                 (version "3.14")
+                 (source (dummy-origin))
+                 (replacement
+                   (dummy-package
+                     "pi"
+                     (version "3.14")
+                     (source
+                       (dummy-origin
+                         (patches
+                           (list "/a/b/pi-CVE-2015-1234.patch"))))))))))))
actual-value: #t
result: PASS

test-name: formatting: lonely parentheses
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:621
source:
+ (test-assert
+   "formatting: lonely parentheses"
+   (string-contains
+     (with-warnings
+       (check-formatting
+         (dummy-package "ugly as hell!")))
+     "lonely"))
actual-value: 101
result: PASS

test-name: formatting: tabulation
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:631
source:
+ (test-assert
+   "formatting: tabulation"
+   (string-contains
+     (with-warnings
+       (check-formatting
+         (dummy-package "leave the tab here:\t")))
+     "tabulation"))
actual-value: 82
result: PASS

test-name: formatting: trailing white space
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:637
source:
+ (test-assert
+   "formatting: trailing white space"
+   (string-contains
+     (with-warnings
+       (check-formatting (dummy-package "x")))
+     "trailing white space"))
actual-value: 63
result: PASS

test-name: formatting: long line
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:644
source:
+ (test-assert
+   "formatting: long line"
+   (string-contains
+     (with-warnings
+       (check-formatting (dummy-package "x")))
+     "too long"))
actual-value: 78
result: PASS

test-name: formatting: alright
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:652
source:
+ (test-assert
+   "formatting: alright"
+   (string-null?
+     (with-warnings
+       (check-formatting (dummy-package "x")))))
actual-value: #t
result: PASS

random seed for tests: 1469827647

FAIL: tests/containers
======================

test-name: call-with-container, exit with 0 when there is no error
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:40
source:
+ (test-assert
+   "call-with-container, exit with 0 when there is no error"
+   (zero? (call-with-container
+            '()
+            (const #t)
+            #:namespaces
+            '(user))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268435473 "Operation not permitted")
+   (1))
result: FAIL

test-name: call-with-container, user namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:45
source:
+ (test-assert
+   "call-with-container, user namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (assert-exit
+                (and (zero? (getuid)) (zero? (getgid)))))
+            #:namespaces
+            '(user))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268435473 "Operation not permitted")
+   (1))
result: FAIL

test-name: call-with-container, uts namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:54
source:
+ (test-assert
+   "call-with-container, uts namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (sethostname "test-container")
+              (primitive-exit 0))
+            #:namespaces
+            '(user uts))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (335544337 "Operation not permitted")
+   (1))
result: FAIL

test-name: call-with-container, pid namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:65
source:
+ (test-assert
+   "call-with-container, pid namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (match (primitive-fork)
+                     (0 (assert-exit (= 2 (getpid))))
+                     (pid (primitive-exit
+                            (match (waitpid pid)
+                                   ((_ . status)
+                                    (status:exit-val status)))))))
+            #:namespaces
+            '(user pid))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (805306385 "Operation not permitted")
+   (1))
result: FAIL

test-name: call-with-container, mnt namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:81
source:
+ (test-assert
+   "call-with-container, mnt namespace"
+   (zero? (call-with-container
+            '(("none" device "/testing" "tmpfs" () #f #f))
+            (lambda ()
+              (assert-exit (file-exists? "/testing")))
+            #:namespaces
+            '(user mnt))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (268566545 "Operation not permitted")
+   (1))
result: FAIL

test-name: call-with-container, mnt namespace, wrong bind mount
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:89
source:
+ (test-equal
+   "call-with-container, mnt namespace, wrong bind mount"
+   `(system-error ,ENOENT)
+   (catch 'system-error
+          (lambda ()
+            (call-with-container
+              '(("/does-not-exist"
+                 device
+                 "/foo"
+                 "none"
+                 (bind-mount)
+                 #f
+                 #f))
+              (const #t)
+              #:namespaces
+              '(user mnt)))
+          (lambda args
+            (list 'system-error (system-error-errno args)))))
expected-value: (system-error 2)
actual-value: (system-error 1)
result: FAIL

test-name: call-with-container, all namespaces
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:102
source:
+ (test-assert
+   "call-with-container, all namespaces"
+   (zero? (call-with-container
+            '()
+            (lambda () (primitive-exit 0)))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (2080505873 "Operation not permitted")
+   (1))
result: FAIL

test-name: container-excursion
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:109
source:
+ (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 '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)))
+                        '("user" "ipc" "uts" "net" "pid" "mnt"))))
+               (let* ((pid (run-container root '() %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
+                                       (match (waitpid fork-pid)
+                                              ((_ . status)
+                                               (primitive-exit
+                                                 (status:exit-val
+                                                   status)))))))))))
+                 (close end-in)
+                 (write 'done end-out)
+                 (close end-out)
+                 (waitpid pid)
+                 (zero? result)))))))
actual-value: #f
actual-error:
+ (system-error
+   "clone"
+   "~d: ~A"
+   (2080505873 "Operation not permitted")
+   (1))
result: FAIL


SKIP: tests/pypi
================

test-name: guix-package->pypi-name, old URL style
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:76
source:
+ (test-equal
+   "guix-package->pypi-name, old URL style"
+   "psutil"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: psutil
actual-value: psutil
result: PASS

test-name: guix-package->pypi-name, new URL style
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:84
source:
+ (test-equal
+   "guix-package->pypi-name, new URL style"
+   "certbot"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: certbot
actual-value: certbot
result: PASS

test-name: pypi->guix-package
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:92
source:
+ (test-assert
+   "pypi->guix-package"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://pypi.python.org/pypi/foo/json"
+                    (with-output-to-file
+                      file-name
+                      (lambda () (display test-json))))
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir "foo-1.0.0")
+                      (with-output-to-file
+                        "foo-1.0.0/requirements.txt"
+                        (lambda () (display test-requirements)))
+                      (system* "tar" "czvf" file-name "foo-1.0.0/")
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (match (pypi->guix-package "foo")
+                (('package
+                  ('name "python-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri
+                     (string-append
+                       "https://example.com/foo-"
+                       version
+                       ".tar.gz"))
+                    ('sha256 ('base32 (? string? hash)))))
+                  ('build-system 'python-build-system)
+                  ('inputs
+                   ('quasiquote
+                    (("python-bar" ('unquote 'python-bar))
+                     ("python-baz" ('unquote 'python-baz))
+                     ("python-setuptools"
+                      ('unquote 'python-setuptools)))))
+                  ('home-page "http://example.com")
+                  ('synopsis "summary")
+                  ('description "summary")
+                  ('license 'lgpl2.0))
+                 (string=?
+                   (bytevector->nix-base32-string test-source-hash)
+                   hash))
+                (x (pk 'fail x #f)))))
foo-1.0.0/
foo-1.0.0/requirements.txt
actual-value: #t
result: PASS

test-name: pypi->guix-package, wheels
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:141
source:
+ (test-assert
+   "pypi->guix-package, wheels"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://pypi.python.org/pypi/foo/json"
+                    (with-output-to-file
+                      file-name
+                      (lambda () (display test-json))))
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir "foo-1.0.0")
+                      (with-output-to-file
+                        "foo-1.0.0/requirements.txt"
+                        (lambda () (display test-requirements)))
+                      (system* "tar" "czvf" file-name "foo-1.0.0/")
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    (begin
+                      (mkdir "foo-1.0.0.dist-info")
+                      (with-output-to-file
+                        "foo-1.0.0.dist-info/metadata.json"
+                        (lambda () (display test-metadata)))
+                      (let ((zip-file (string-append file-name ".zip")))
+                        (system*
+                          "zip"
+                          zip-file
+                          "foo-1.0.0.dist-info/metadata.json")
+                        (rename-file zip-file file-name))
+                      (delete-file-recursively "foo-1.0.0.dist-info")))
+                   (_ (error "Unexpected URL: " url)))))
+         (match (pypi->guix-package "foo")
+                (('package
+                  ('name "python-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri
+                     (string-append
+                       "https://example.com/foo-"
+                       version
+                       ".tar.gz"))
+                    ('sha256 ('base32 (? string? hash)))))
+                  ('build-system 'python-build-system)
+                  ('inputs
+                   ('quasiquote
+                    (("python-bar" ('unquote 'python-bar))
+                     ("python-baz" ('unquote 'python-baz))
+                     ("python-setuptools"
+                      ('unquote 'python-setuptools)))))
+                  ('home-page "http://example.com")
+                  ('synopsis "summary")
+                  ('description "summary")
+                  ('license 'lgpl2.0))
+                 (string=?
+                   (bytevector->nix-base32-string test-source-hash)
+                   hash))
+                (x (pk 'fail x #f)))))
result: SKIP

random seed for tests: 1469827146

FAIL: tests/guix-download
=========================

+ guix download --version
guix download (GNU Guix) 0.10.0
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guix download http://does.not/exist
accepted connection from pid 6989, user sapientech

Starting download of /tmp/guix-file.54OQQN
From http://does.not/exist...
\r^[[K exist                                               0B/s 00:00 | 0B transferred\r^[[K exist                                         290KiB/s 00:00 | 319B transferred
/home/sapientech/Dev/guix/guix_wip/test-tmp/store/hi5hmfl117bri5c79i96fb7ymip4cb43-exist
1ipmbjjgif1f6a77j91s2y989y6sgk3fh4jiycbqqs6v2i827l7s
+ false
./test-env: line 1:  6980 Terminated              "/home/sapientech/Dev/guix/guix_wip/pre-inst-env" "/home/sapientech/Dev/guix/guix_wip/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
FAIL tests/guix-download.sh (exit status: 1)

FAIL: tests/guix-environment-container
======================================

+ set -e
+ guix environment --version
guix environment (GNU Guix) 0.10.0
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guile -c '((@@ (guix scripts environment) assert-container-features))'
+ tmpdir=t-guix-environment-11298
+ trap 'rm -r "$tmpdir"' EXIT
+ mkdir t-guix-environment-11298
+ guix environment --container --ad-hoc --bootstrap guile-bootstrap -- guile -c '(exit 42)'
accepted connection from pid 11310, user sapientech
guix environment: error: clone: 2080505873: Operation not permitted
+ test 1 = 42
+ rm -r t-guix-environment-11298
./test-env: line 1: 11297 Terminated              "/home/sapientech/Dev/guix/guix_wip/pre-inst-env" "/home/sapientech/Dev/guix/guix_wip/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
FAIL tests/guix-environment-container.sh (exit status: 1)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-29 23:26 bug#24108: guix make tests failure sapientech
@ 2016-07-30 13:07 ` Ludovic Courtès
  2016-07-30 17:43   ` Dylan Jeffers
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2016-07-30 13:07 UTC (permalink / raw)
  To: sapientech; +Cc: 24108

Hi,

sapientech@openmailbox.org skribis:

> test-name: substitute query, alternating URLs
> location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:456

[...]

> substitute: guix/ui.scm:1209:6: In procedure run-guix-command:
> substitute: guix/ui.scm:1209:6: unmatched line "<html><head><meta http-equiv=\"refresh\" content=\"0;url=http://www.dnsrsearch.com/index.php?origURL=http://does-not-exist/nix-cache-info&bc=\"/></head><body><script type=\"text/javascript\">window.location=\"http://www.dnsrsearch.com/index.php?origURL=\"+escape(window.location)+\"&r=\"+escape(document.referrer)+\"&bc=\";</script></body></html>"

It seems there’s a DNS hijacker in place where domain names such as
“does-not-exist” (used in this and other tests) are resolved to some
ISP-specific host or something.  This explains this and more of the
other test failures you are seeing; this is unsupported.

> test-name: clone
> location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
> source:
> + (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))))))))
> actual-value: #f
> actual-error:
> + (system-error
> +   "clone"
> +   "~d: ~A"
> +   (268435473 "Operation not permitted")
> +   (1))
> result: FAIL

What does “uname -srv” report on this machine?  It seems this kernel
does not support namespaces.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-30 13:07 ` Ludovic Courtès
@ 2016-07-30 17:43   ` Dylan Jeffers
  2016-07-30 21:31     ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Dylan Jeffers @ 2016-07-30 17:43 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 24108

On Sat, 30 Jul 2016 15:07:25 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Hi,
> 
> sapientech@openmailbox.org skribis:
> 
> > test-name: substitute query, alternating URLs
> > location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:456  
> 
> [...]
> 
> > substitute: guix/ui.scm:1209:6: In procedure run-guix-command:
> > substitute: guix/ui.scm:1209:6: unmatched line "<html><head><meta
> > http-equiv=\"refresh\"
> > content=\"0;url=http://www.dnsrsearch.com/index.php?origURL=http://does-not-exist/nix-cache-info&bc=\"/></head><body><script
> > type=\"text/javascript\">window.location=\"http://www.dnsrsearch.com/index.php?origURL=\"+escape(window.location)+\"&r=\"+escape(document.referrer)+\"&bc=\";</script></body></html>"  
> 
> It seems there’s a DNS hijacker in place where domain names such as
> “does-not-exist” (used in this and other tests) are resolved to some
> ISP-specific host or something.  This explains this and more of the
> other test failures you are seeing; this is unsupported.
> 
> > test-name: clone
> > location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
> > source:
> > + (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)))))))) actual-value: #f
> > actual-error:
> > + (system-error
> > +   "clone"
> > +   "~d: ~A"
> > +   (268435473 "Operation not permitted")
> > +   (1))
> > result: FAIL  
> 
> What does “uname -srv” report on this machine?  It seems this kernel
> does not support namespaces.
> 
> Thanks,
> Ludo’.

Hi Ludo,

Thanks for getting back so quick.
Output of uname -srv: Linux 4.6.4-gnu-201607192040-1-grsec #1 SMP
PREEMPT Wed Jul 20 15:37:34 UYT 2016
It is a security enhanced kernel, so that may be the issue. Let me know
if there is a workaround for this kernel, or whether i should fall-back
to an lts, or standard kernel.

Best,
Dylan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-30 17:43   ` Dylan Jeffers
@ 2016-07-30 21:31     ` Ludovic Courtès
  2016-07-31  0:40       ` Dylan Jeffers
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2016-07-30 21:31 UTC (permalink / raw)
  To: Dylan Jeffers; +Cc: 24108

Dylan Jeffers <sapientech@openmailbox.org> skribis:

> On Sat, 30 Jul 2016 15:07:25 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:

[...]

>> > test-name: clone
>> > location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
>> > source:
>> > + (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)))))))) actual-value: #f
>> > actual-error:
>> > + (system-error
>> > +   "clone"
>> > +   "~d: ~A"
>> > +   (268435473 "Operation not permitted")
>> > +   (1))
>> > result: FAIL  
>> 
>> What does “uname -srv” report on this machine?  It seems this kernel
>> does not support namespaces.
>> 
>> Thanks,
>> Ludo’.
>
> Hi Ludo,
>
> Thanks for getting back so quick.
> Output of uname -srv: Linux 4.6.4-gnu-201607192040-1-grsec #1 SMP
> PREEMPT Wed Jul 20 15:37:34 UYT 2016

These tests are skipped when user namespaces are not supported, as per
this condition:

  (define perform-container-tests?
    (and (user-namespace-supported?)
         (unprivileged-user-namespace-supported?)))

… which is true iff (1) /proc/self/ns/user exists, and (2)
/proc/sys/kernel/unprivileged_userns_clone does not exist, or it exists
and contains “1”.

Do these files exist on this system?

Maybe we should just ignore EPERM from (clone CLONE_NEWUSER) but it’s
annoying to annotate every single test that uses it.

From a user viewpoint, this test failure simply mean that you cannot use
the ‘--container’ option ‘guix environment’ on your system.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-30 21:31     ` Ludovic Courtès
@ 2016-07-31  0:40       ` Dylan Jeffers
  2016-07-31  1:53         ` Dylan Jeffers
  0 siblings, 1 reply; 7+ messages in thread
From: Dylan Jeffers @ 2016-07-31  0:40 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 24108

On Sat, 30 Jul 2016 23:31:54 +0200
ludo@gnu.org (Ludovic Courtès) wrote:

> Dylan Jeffers <sapientech@openmailbox.org> skribis:
> 
> > On Sat, 30 Jul 2016 15:07:25 +0200
> > ludo@gnu.org (Ludovic Courtès) wrote:  
> 
> [...]
> 
> >> > test-name: clone
> >> > location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
> >> > source:
> >> > + (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)))))))) actual-value: #f
> >> > actual-error:
> >> > + (system-error
> >> > +   "clone"
> >> > +   "~d: ~A"
> >> > +   (268435473 "Operation not permitted")
> >> > +   (1))
> >> > result: FAIL    
> >> 
> >> What does “uname -srv” report on this machine?  It seems this
> >> kernel does not support namespaces.
> >> 
> >> Thanks,
> >> Ludo’.  
> >
> > Hi Ludo,
> >
> > Thanks for getting back so quick.
> > Output of uname -srv: Linux 4.6.4-gnu-201607192040-1-grsec #1 SMP
> > PREEMPT Wed Jul 20 15:37:34 UYT 2016  
> 
> These tests are skipped when user namespaces are not supported, as per
> this condition:
> 
>   (define perform-container-tests?
>     (and (user-namespace-supported?)
>          (unprivileged-user-namespace-supported?)))
> 
> … which is true iff (1) /proc/self/ns/user exists, and (2)
> /proc/sys/kernel/unprivileged_userns_clone does not exist, or it
> exists and contains “1”.
> 
> Do these files exist on this system?

(1) /proc/self/ns/user exists, and
(2) /proc/sys/kernel/unpriviledged_userns_clone D.N.E

Ideas on the best approach to allow the build to succeed?

I also have had issues with qemu, so it makes sense that vm/container
stuff both have issues. I have a feeling its due to the
grsec kernel.
https://wiki.archlinux.org/index.php/Grsecurity_Patchset talks a
bit about userspace/namespace hardening + issues with xen and
virtbox. Going to reboot with an lts kernel and try again. Will post
update...

Best,
Dylan

Best,
Dylan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-31  0:40       ` Dylan Jeffers
@ 2016-07-31  1:53         ` Dylan Jeffers
  2016-07-31 10:53           ` Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Dylan Jeffers @ 2016-07-31  1:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 24108

[-- Attachment #1: Type: text/plain, Size: 2770 bytes --]

On Sat, 30 Jul 2016 17:40:27 -0700
Dylan Jeffers <sapientech@openmailbox.org> wrote:

> On Sat, 30 Jul 2016 23:31:54 +0200
> ludo@gnu.org (Ludovic Courtès) wrote:
> 
> > Dylan Jeffers <sapientech@openmailbox.org> skribis:
> >   
> > > On Sat, 30 Jul 2016 15:07:25 +0200
> > > ludo@gnu.org (Ludovic Courtès) wrote:    
> > 
> > [...]
> >   
> > >> > test-name: clone
> > >> > location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
> > >> > source:
> > >> > + (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)))))))) actual-value: #f
> > >> > actual-error:
> > >> > + (system-error
> > >> > +   "clone"
> > >> > +   "~d: ~A"
> > >> > +   (268435473 "Operation not permitted")
> > >> > +   (1))
> > >> > result: FAIL      
> > >> 
> > >> What does “uname -srv” report on this machine?  It seems this
> > >> kernel does not support namespaces.
> > >> 
> > >> Thanks,
> > >> Ludo’.    
> > >
> > > Hi Ludo,
> > >
> > > Thanks for getting back so quick.
> > > Output of uname -srv: Linux 4.6.4-gnu-201607192040-1-grsec #1 SMP
> > > PREEMPT Wed Jul 20 15:37:34 UYT 2016    
> > 
> > These tests are skipped when user namespaces are not supported, as
> > per this condition:
> > 
> >   (define perform-container-tests?
> >     (and (user-namespace-supported?)
> >          (unprivileged-user-namespace-supported?)))
> > 
> > … which is true iff (1) /proc/self/ns/user exists, and (2)
> > /proc/sys/kernel/unprivileged_userns_clone does not exist, or it
> > exists and contains “1”.
> > 
> > Do these files exist on this system?  
> 
> (1) /proc/self/ns/user exists, and
> (2) /proc/sys/kernel/unpriviledged_userns_clone D.N.E
> 
> Ideas on the best approach to allow the build to succeed?
> 
> I also have had issues with qemu, so it makes sense that vm/container
> stuff both have issues. I have a feeling its due to the
> grsec kernel.
> https://wiki.archlinux.org/index.php/Grsecurity_Patchset talks a
> bit about userspace/namespace hardening + issues with xen and
> virtbox. Going to reboot with an lts kernel and try again. Will post
> update...
> 
> Best,
> Dylan
> 
> Best,
> Dylan

After changing kernel, and stopping paxd.service, build still
failed :(

It looks like the failed tests are different though (see attachment)

Dylan

[-- Attachment #2: config.log --]
[-- Type: text/x-log, Size: 46365 bytes --]

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU Guix configure 0.10.0, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = freetop
uname -m = x86_64
uname -r = 4.6.4-gnu-1
uname -s = Linux
uname -v = #1 SMP PREEMPT Wed Jul 20 05:58:11 UYT 2016

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin
PATH: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/sbin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /usr/lib/jvm/default/bin
PATH: /usr/bin/site_perl
PATH: /usr/bin/vendor_perl
PATH: /usr/bin/core_perl
PATH: /home/sapientech/.guix-profile/bin
PATH: /home/sapientech/.guix-profile/sbin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2574: checking for a BSD-compatible install
configure:2642: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/install -c
configure:2653: checking whether build environment is sane
configure:2708: result: yes
configure:2859: checking for a thread-safe mkdir -p
configure:2898: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/mkdir -p
configure:2905: checking for gawk
configure:2921: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gawk
configure:2932: result: gawk
configure:2943: checking whether make sets $(MAKE)
configure:2965: result: yes
configure:2994: checking whether make supports nested variables
configure:3011: result: yes
configure:3150: checking whether make supports nested variables
configure:3167: result: yes
configure:3194: checking for style of include used by make
configure:3222: result: GNU
configure:3293: checking for gcc
configure:3309: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gcc
configure:3320: result: gcc
configure:3549: checking for C compiler version
configure:3558: gcc --version >&5
gcc (GCC) 4.9.3
Copyright (C) 2015 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.

configure:3569: $? = 0
configure:3558: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/gnu/store/sjvcirri2bg7q5hlrkaywhmxllik0cfx-gcc-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 4.9.3 (GCC) 
configure:3569: $? = 0
configure:3558: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3569: $? = 1
configure:3558: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3569: $? = 1
configure:3589: checking whether the C compiler works
configure:3611: gcc    conftest.c  >&5
configure:3615: $? = 0
configure:3663: result: yes
configure:3666: checking for C compiler default output file name
configure:3668: result: a.out
configure:3674: checking for suffix of executables
configure:3681: gcc -o conftest    conftest.c  >&5
configure:3685: $? = 0
configure:3707: result: 
configure:3729: checking whether we are cross compiling
configure:3737: gcc -o conftest    conftest.c  >&5
configure:3741: $? = 0
configure:3748: ./conftest
configure:3752: $? = 0
configure:3767: result: no
configure:3772: checking for suffix of object files
configure:3794: gcc -c   conftest.c >&5
configure:3798: $? = 0
configure:3819: result: o
configure:3823: checking whether we are using the GNU C compiler
configure:3842: gcc -c   conftest.c >&5
configure:3842: $? = 0
configure:3851: result: yes
configure:3860: checking whether gcc accepts -g
configure:3880: gcc -c -g  conftest.c >&5
configure:3880: $? = 0
configure:3921: result: yes
configure:3938: checking for gcc option to accept ISO C89
configure:4001: gcc  -c -g -O2  conftest.c >&5
configure:4001: $? = 0
configure:4014: result: none needed
configure:4039: checking whether gcc understands -c and -o together
configure:4061: gcc -c conftest.c -o conftest2.o
configure:4064: $? = 0
configure:4061: gcc -c conftest.c -o conftest2.o
configure:4064: $? = 0
configure:4076: result: yes
configure:4095: checking dependency style of gcc
configure:4206: result: gcc3
configure:4227: checking how to run the C preprocessor
configure:4258: gcc -E  conftest.c
configure:4258: $? = 0
configure:4272: gcc -E  conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4272: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4297: result: gcc -E
configure:4317: gcc -E  conftest.c
configure:4317: $? = 0
configure:4331: gcc -E  conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4331: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4360: checking for grep that handles long lines and -e
configure:4418: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep
configure:4423: checking for egrep
configure:4485: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep -E
configure:4490: checking for ANSI C header files
configure:4510: gcc -c -g -O2  conftest.c >&5
configure:4510: $? = 0
configure:4583: gcc -o conftest -g -O2   conftest.c  >&5
configure:4583: $? = 0
configure:4583: ./conftest
configure:4583: $? = 0
configure:4594: result: yes
configure:4607: checking for sys/types.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for sys/stat.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for stdlib.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for string.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for memory.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for strings.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for inttypes.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for stdint.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4607: checking for unistd.h
configure:4607: gcc -c -g -O2  conftest.c >&5
configure:4607: $? = 0
configure:4607: result: yes
configure:4620: checking minix/config.h usability
configure:4620: gcc -c -g -O2  conftest.c >&5
conftest.c:54:26: fatal error: minix/config.h: No such file or directory
 #include <minix/config.h>
                          ^
compilation terminated.
configure:4620: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <minix/config.h>
configure:4620: result: no
configure:4620: checking minix/config.h presence
configure:4620: gcc -E  conftest.c
conftest.c:21:26: fatal error: minix/config.h: No such file or directory
 #include <minix/config.h>
                          ^
compilation terminated.
configure:4620: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include <minix/config.h>
configure:4620: result: no
configure:4620: checking for minix/config.h
configure:4620: result: no
configure:4641: checking whether it is safe to define __EXTENSIONS__
configure:4659: gcc -c -g -O2  conftest.c >&5
configure:4659: $? = 0
configure:4666: result: yes
configure:4689: checking whether NLS is requested
configure:4698: result: yes
configure:4739: checking for msgfmt
configure: trying /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt...
0 translated messages.
configure:4771: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt
configure:4780: checking for gmsgfmt
configure:4811: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt
configure:4862: checking for xgettext
configure: trying /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext...
/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext: warning: file '/dev/null' extension '' is unknown; will try C
configure:4894: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext
configure:4940: checking for msgmerge
configure: trying /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgmerge...
configure:4971: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgmerge
configure:5008: checking build system type
configure:5022: result: x86_64-unknown-linux-gnu
configure:5042: checking host system type
configure:5055: result: x86_64-unknown-linux-gnu
configure:5099: checking for ld used by GCC
configure:5163: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/ld
configure:5170: checking if the linker (/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/ld) is GNU ld
configure:5183: result: yes
configure:5190: checking for shared library run path origin
configure:5203: result: done
configure:5775: checking for CFPreferencesCopyAppValue
configure:5793: gcc -o conftest -g -O2   conftest.c  -Wl,-framework -Wl,CoreFoundation >&5
conftest.c:26:42: fatal error: CoreFoundation/CFPreferences.h: No such file or directory
 #include <CoreFoundation/CFPreferences.h>
                                          ^
compilation terminated.
configure:5793: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| /* end confdefs.h.  */
| #include <CoreFoundation/CFPreferences.h>
| int
| main ()
| {
| CFPreferencesCopyAppValue(NULL, NULL)
|   ;
|   return 0;
| }
configure:5802: result: no
configure:5809: checking for CFLocaleCopyCurrent
configure:5827: gcc -o conftest -g -O2   conftest.c  -Wl,-framework -Wl,CoreFoundation >&5
conftest.c:26:37: fatal error: CoreFoundation/CFLocale.h: No such file or directory
 #include <CoreFoundation/CFLocale.h>
                                     ^
compilation terminated.
configure:5827: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| /* end confdefs.h.  */
| #include <CoreFoundation/CFLocale.h>
| int
| main ()
| {
| CFLocaleCopyCurrent();
|   ;
|   return 0;
| }
configure:5836: result: no
configure:5885: checking for GNU gettext in libc
configure:5905: gcc -o conftest -g -O2   conftest.c  >&5
configure:5905: $? = 0
configure:5914: result: yes
configure:6705: checking whether to use NLS
configure:6707: result: yes
configure:6710: checking where the gettext function comes from
configure:6721: result: libc
configure:6787: checking for sed
configure:6805: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/sed
configure:6817: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/sed
configure:6867: checking for the Guix system type
configure:6869: result: x86_64-linux
configure:6923: checking for the store directory
configure:6925: result: /gnu/store
configure:6947: checking the length of the installed socket file name
configure:6954: result: 40
configure:6958: checking for unit test root directory
configure:6965: result: /home/sapientech/Dev/guix/guix_wip/test-tmp
configure:6970: checking the length of the socket file name used in tests
configure:6977: result: 75
configure:6981: checking the length of a typical hash bang line
configure:6988: result: 73
configure:6993: checking the length of a hash bang line used in tests
configure:7000: result: 112
configure:7094: checking for pkg-config
configure:7112: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/pkg-config
configure:7124: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/pkg-config
configure:7149: checking pkg-config is at least version 0.9.0
configure:7152: result: yes
configure:7162: checking for GUILE
configure:7169: $PKG_CONFIG --exists --print-errors "guile-2.0 >= 2.0.7"
configure:7172: $? = 0
configure:7186: $PKG_CONFIG --exists --print-errors "guile-2.0 >= 2.0.7"
configure:7189: $? = 0
configure:7247: result: yes
configure:7253: checking for guile
configure:7271: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile
configure:7283: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile
configure:7293: checking for guild
configure:7311: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild
configure:7323: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild
configure:7337: checking for guile
configure:7367: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile
configure:7396: checking for Guile version >= 2.0
configure:7417: result: 2.0.11
configure:7422: checking for guild
configure:7452: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild
configure:7464: checking for guile-config
configure:7482: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile-config
configure:7494: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile-config
configure:7549: checking if (json) is available
configure:7556: result: yes
configure:7572: checking whether /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile provides feature 'regex'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile provides feature 'posix'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile provides feature 'socket'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile provides feature 'net-db'
configure:7576: result: yes
configure:7572: checking whether /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile provides feature 'threads'
configure:7576: result: yes
configure:7587: checking whether (srfi srfi-37) is affected by http://bugs.gnu.org/13176
configure:7603: result: no
configure:7616: checking whether libc provides 'mount'
configure:7631: result: yes
configure:7645: checking for gzip
configure:7663: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gzip
configure:7675: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gzip
configure:7685: checking for bzip2
configure:7703: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/bzip2
configure:7715: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/bzip2
configure:7725: checking for xz
configure:7743: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xz
configure:7755: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xz
configure:7783: checking for nix-instantiate
configure:7816: result: no
configure:7823: checking for nix-hash
configure:7856: result: no
configure:7881: checking for Nixpkgs source tree
configure:7888: result: not found
configure:7932: checking for libgcrypt-config
configure:7950: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/libgcrypt-config
configure:7962: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/libgcrypt-config
configure:7970: checking libgcrypt's library directory
configure:7981: result: /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib
configure:7993: checking for libgcrypt shared library name
configure:7995: result: /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt
configure:8001: checking whether /gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt can be dynamically loaded
configure:8016: result: yes
configure:8025: checking zlib's library directory
configure:8032: result: /gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib
configure:8041: checking for zlib's shared library name
configure:8043: result: /gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib/libz
configure:8134: checking whether to build daemon
configure:8136: result: yes
configure:8197: checking for g++
configure:8213: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/g++
configure:8224: result: g++
configure:8251: checking for C++ compiler version
configure:8260: g++ --version >&5
g++ (GCC) 4.9.3
Copyright (C) 2015 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.

configure:8271: $? = 0
configure:8260: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/gnu/store/sjvcirri2bg7q5hlrkaywhmxllik0cfx-gcc-4.9.3/libexec/gcc/x86_64-unknown-linux-gnu/4.9.3/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 4.9.3 (GCC) 
configure:8271: $? = 0
configure:8260: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:8271: $? = 1
configure:8260: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'
g++: fatal error: no input files
compilation terminated.
configure:8271: $? = 1
configure:8275: checking whether we are using the GNU C++ compiler
configure:8294: g++ -c   conftest.cpp >&5
configure:8294: $? = 0
configure:8303: result: yes
configure:8312: checking whether g++ accepts -g
configure:8332: g++ -c -g  conftest.cpp >&5
configure:8332: $? = 0
configure:8373: result: yes
configure:8398: checking dependency style of g++
configure:8509: result: gcc3
configure:8537: checking whether g++ supports C++11
configure:8561: g++ -c -std=c++11 -g -O2  conftest.cpp >&5
configure:8561: $? = 0
configure:8570: result: yes
configure:8621: checking for ranlib
configure:8637: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/ranlib
configure:8648: result: ranlib
configure:8680: checking for special C compiler options needed for large files
configure:8725: result: no
configure:8731: checking for _FILE_OFFSET_BITS value needed for large files
configure:8756: g++ -c -g -O2  conftest.cpp >&5
configure:8756: $? = 0
configure:8788: result: no
configure:8874: checking for BZ2_bzWriteOpen in -lbz2
configure:8899: g++ -o conftest -g -O2   conftest.cpp -lbz2   >&5
configure:8899: $? = 0
configure:8908: result: yes
configure:8921: checking how to run the C++ preprocessor
configure:8948: g++ -E  conftest.cpp
configure:8948: $? = 0
configure:8962: g++ -E  conftest.cpp
conftest.cpp:29:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:8962: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:8987: result: g++ -E
configure:9007: g++ -E  conftest.cpp
configure:9007: $? = 0
configure:9021: g++ -E  conftest.cpp
conftest.cpp:29:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:9021: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU Guix"
| #define PACKAGE_TARNAME "guix"
| #define PACKAGE_VERSION "0.10.0"
| #define PACKAGE_STRING "GNU Guix 0.10.0"
| #define PACKAGE_BUGREPORT "bug-guix@gnu.org"
| #define PACKAGE_URL "http://www.gnu.org/software/guix/"
| #define PACKAGE "guix"
| #define VERSION "0.10.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:9052: checking bzlib.h usability
configure:9052: g++ -c -g -O2  conftest.cpp >&5
configure:9052: $? = 0
configure:9052: result: yes
configure:9052: checking bzlib.h presence
configure:9052: g++ -E  conftest.cpp
configure:9052: $? = 0
configure:9052: result: yes
configure:9052: checking for bzlib.h
configure:9052: result: yes
configure:9067: checking for SQLITE3
configure:9074: $PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6.19"
configure:9077: $? = 0
configure:9091: $PKG_CONFIG --exists --print-errors "sqlite3 >= 3.6.19"
configure:9094: $? = 0
configure:9152: result: yes
configure:9193: checking for gcry_md_open in -lgcrypt
configure:9218: g++ -o conftest -g -O2    conftest.cpp -lgcrypt   >&5
configure:9218: $? = 0
configure:9227: result: yes
configure:9235: checking gcrypt.h usability
configure:9235: g++ -c -g -O2  conftest.cpp >&5
configure:9235: $? = 0
configure:9235: result: yes
configure:9235: checking gcrypt.h presence
configure:9235: g++ -E  conftest.cpp
configure:9235: $? = 0
configure:9235: result: yes
configure:9235: checking for gcrypt.h
configure:9235: result: yes
configure:9253: checking for chroot
configure:9253: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9253: $? = 0
configure:9253: result: yes
configure:9253: checking for unshare
configure:9253: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9253: $? = 0
configure:9253: result: yes
configure:9265: checking sched.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sched.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sched.h
configure:9265: result: yes
configure:9265: checking sys/param.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/param.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/param.h
configure:9265: result: yes
configure:9265: checking sys/mount.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/mount.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/mount.h
configure:9265: result: yes
configure:9265: checking sys/syscall.h usability
configure:9265: g++ -c -g -O2  conftest.cpp >&5
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking sys/syscall.h presence
configure:9265: g++ -E  conftest.cpp
configure:9265: $? = 0
configure:9265: result: yes
configure:9265: checking for sys/syscall.h
configure:9265: result: yes
configure:9284: checking for lutimes
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for lchown
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for posix_fallocate
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for sched_setaffinity
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for statvfs
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for nanosleep
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9284: checking for strsignal
configure:9284: g++ -o conftest -g -O2   conftest.cpp  >&5
configure:9284: $? = 0
configure:9284: result: yes
configure:9294: checking whether it is possible to create a link to a symlink
configure:9298: result: yes
configure:9317: checking locale usability
configure:9317: g++ -c -g -O2  conftest.cpp >&5
configure:9317: $? = 0
configure:9317: result: yes
configure:9317: checking locale presence
configure:9317: g++ -E  conftest.cpp
configure:9317: $? = 0
configure:9317: result: yes
configure:9317: checking for locale
configure:9317: result: yes
configure:9337: checking sys/personality.h usability
configure:9337: g++ -c -g -O2  conftest.cpp >&5
configure:9337: $? = 0
configure:9337: result: yes
configure:9337: checking sys/personality.h presence
configure:9337: g++ -E  conftest.cpp
configure:9337: $? = 0
configure:9337: result: yes
configure:9337: checking for sys/personality.h
configure:9337: result: yes
configure:9350: checking linux/fs.h usability
configure:9350: g++ -c -g -O2  conftest.cpp >&5
configure:9350: $? = 0
configure:9350: result: yes
configure:9350: checking linux/fs.h presence
configure:9350: g++ -E  conftest.cpp
configure:9350: $? = 0
configure:9350: result: yes
configure:9350: checking for linux/fs.h
configure:9350: result: yes
configure:9361: checking if (gnutls) is available
configure:9368: result: yes
configure:9379: checking for default substitute URLs
configure:9381: result: https://mirror.hydra.gnu.org
configure:9391: checking whether Guile's custom binary input ports support 'setvbuf'
configure:9405: result: yes
configure:9417: checking for unit test root directory
configure:9424: result: /home/sapientech/Dev/guix/guix_wip/test-tmp
configure:9433: checking for guile
configure:9463: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile
configure:9471: checking the current installation's localstatedir
configure:9485: result: /usr/local/var
configure:9563: checking for dot
configure:9581: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/dot
configure:9594: result: /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/dot
configure:9609: checking for emacs
configure:9625: found /gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/emacs
configure:9636: result: emacs
configure:9660: checking where .elc files should go
configure:9673: $EMACS -batch -Q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' </dev/null >conftest.out
configure:9676: $? = 0
configure:9689: result: ${datadir}/emacs/site-lisp
configure:9820: checking that generated files are newer than configure
configure:9826: result: done
configure:9881: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by GNU Guix config.status 0.10.0, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on freetop

config.status:992: creating nix/scripts/list-runtime-roots
config.status:992: creating nix/scripts/substitute
config.status:992: creating nix/scripts/guix-authenticate
config.status:992: creating nix/scripts/offload
config.status:992: creating Makefile
config.status:992: creating po/guix/Makefile.in
config.status:992: creating po/packages/Makefile.in
config.status:992: creating guix/config.scm
config.status:992: creating scripts/guix
config.status:992: creating test-env
config.status:992: creating pre-inst-env
config.status:992: creating emacs/guix-config.el
config.status:992: creating emacs/guix-helper.scm
config.status:992: creating nix/config.h
config.status:1173: nix/config.h is unchanged
config.status:1221: executing depfiles commands
config.status:1221: executing po-directories commands

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_EMACSLOADPATH_set=
ac_cv_env_EMACSLOADPATH_value=
ac_cv_env_EMACS_set=
ac_cv_env_EMACS_value=
ac_cv_env_GUILE_CFLAGS_set=
ac_cv_env_GUILE_CFLAGS_value=
ac_cv_env_GUILE_LIBS_set=
ac_cv_env_GUILE_LIBS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=set
ac_cv_env_PKG_CONFIG_PATH_value=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/lib/pkgconfig::/home/sapientech/.guix-profile/lib/pkgconfig
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_SQLITE3_CFLAGS_set=
ac_cv_env_SQLITE3_CFLAGS_value=
ac_cv_env_SQLITE3_LIBS_set=
ac_cv_env_SQLITE3_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_chroot=yes
ac_cv_func_lchown=yes
ac_cv_func_lutimes=yes
ac_cv_func_nanosleep=yes
ac_cv_func_posix_fallocate=yes
ac_cv_func_sched_setaffinity=yes
ac_cv_func_statvfs=yes
ac_cv_func_strsignal=yes
ac_cv_func_unshare=yes
ac_cv_guix_cbips_support_setvbuf=yes
ac_cv_guix_cxx11_support=yes
ac_cv_guix_hash_bang_length=73
ac_cv_guix_socket_file_name_length=40
ac_cv_guix_srfi_37_broken=no
ac_cv_guix_test_hash_bang_length=112
ac_cv_guix_test_root=/home/sapientech/Dev/guix/guix_wip/test-tmp
ac_cv_guix_test_socket_file_name_length=75
ac_cv_header_bzlib_h=yes
ac_cv_header_gcrypt_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_linux_fs_h=yes
ac_cv_header_locale=yes
ac_cv_header_memory_h=yes
ac_cv_header_minix_config_h=no
ac_cv_header_sched_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_mount_h=yes
ac_cv_header_sys_param_h=yes
ac_cv_header_sys_personality_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_syscall_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_lib_bz2_BZ2_bzWriteOpen=yes
ac_cv_lib_gcrypt_gcry_md_open=yes
ac_cv_objext=o
ac_cv_path_BZIP2=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/bzip2
ac_cv_path_DOT_USER_PROGRAM=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/dot
ac_cv_path_EGREP='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep -E'
ac_cv_path_GMSGFMT=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt
ac_cv_path_GREP=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep
ac_cv_path_GUILD=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild
ac_cv_path_GUILE=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile
ac_cv_path_GUILE_CONFIG=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile-config
ac_cv_path_GZIP=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gzip
ac_cv_path_LIBGCRYPT_CONFIG=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/libgcrypt-config
ac_cv_path_MSGFMT=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt
ac_cv_path_MSGMERGE=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgmerge
ac_cv_path_SED=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/sed
ac_cv_path_XGETTEXT=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext
ac_cv_path_XZ=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xz
ac_cv_path_ac_pt_PKG_CONFIG=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/pkg-config
ac_cv_path_install='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/install -c'
ac_cv_path_mkdir=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_EMACS=emacs
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_safe_to_define___extensions__=yes
ac_cv_sys_file_offset_bits=no
ac_cv_sys_largefile_CC=no
acl_cv_hardcode_direct=no
acl_cv_hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
acl_cv_hardcode_libdir_separator=
acl_cv_hardcode_minus_L=no
acl_cv_libext=a
acl_cv_libname_spec='lib$name'
acl_cv_library_names_spec='$libname$shrext'
acl_cv_path_LD=/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/ld
acl_cv_prog_gnu_ld=yes
acl_cv_rpath=done
acl_cv_shlibext=so
acl_cv_wl=-Wl,
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_lispdir='${datadir}/emacs/site-lisp'
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
gt_cv_func_CFLocaleCopyCurrent=no
gt_cv_func_CFPreferencesCopyAppValue=no
gt_cv_func_gnugettext1_libc=yes
guix_cv_current_localstatedir=/usr/local/var
guix_cv_libc_has_mount=yes
guix_cv_libgcrypt_libdir=/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib
guix_cv_libgcrypt_usable_p=yes
guix_cv_libz_libdir=/gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib
pkg_cv_GUILE_CFLAGS='-pthread -I/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/include/guile/2.0'
pkg_cv_GUILE_LIBS='-L/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/lib -L/gnu/store/my4az71gz8iqd4w8kb34kq7vlk3fcvhm-libgc-7.4.2/lib -lguile-2.0 -lgc'
pkg_cv_SQLITE3_CFLAGS=-I/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/include
pkg_cv_SQLITE3_LIBS='-L/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/lib -lsqlite3'

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing aclocal-1.15'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AUTOCONF='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing autoconf'
AUTOHEADER='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing autoheader'
AUTOMAKE='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing automake-1.15'
AWK='gawk'
BUILD_DAEMON_FALSE='#'
BUILD_DAEMON_OFFLOAD_FALSE='#'
BUILD_DAEMON_OFFLOAD_TRUE=''
BUILD_DAEMON_TRUE=''
BUILD_SYSCALLS_MODULE_FALSE='#'
BUILD_SYSCALLS_MODULE_TRUE=''
BZIP2='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/bzip2'
CAN_RUN_TESTS_FALSE='#'
CAN_RUN_TESTS_TRUE=''
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='gcc -E'
CPPFLAGS=''
CXX='g++'
CXXCPP='g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-g -O2'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DOT='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing dot'
DOT_USER_PROGRAM='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/dot'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep -E'
EMACS='emacs'
EMACSLOADPATH=''
EXEEXT=''
GETTEXT_MACRO_VERSION='0.18'
GMSGFMT='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt'
GMSGFMT_015='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt'
GREP='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/grep'
GUILD='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild'
GUILE='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile'
GUILE_CFLAGS='-pthread -I/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/include/guile/2.0'
GUILE_CONFIG='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guile-config'
GUILE_LIBS='-L/gnu/store/hyk2i7b8mwbrbiyqk5sgrfgds9zvcrn5-guile-2.0.11/lib -L/gnu/store/my4az71gz8iqd4w8kb34kq7vlk3fcvhm-libgc-7.4.2/lib -lguile-2.0 -lgc'
GUILE_TOOLS='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/guild'
GUIX_TEST_ROOT='/home/sapientech/Dev/guix/guix_wip/test-tmp'
GZIP='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/gzip'
HAVE_EMACS_FALSE='#'
HAVE_EMACS_TRUE=''
HAVE_GUILE_JSON_FALSE='#'
HAVE_GUILE_JSON_TRUE=''
HELP2MAN='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing help2man'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_SRFI_37_FALSE=''
INSTALL_SRFI_37_TRUE='#'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
INTLLIBS=''
INTL_MACOSX_LIBS=''
LDFLAGS=''
LIBGCRYPT='/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib/libgcrypt'
LIBGCRYPT_CFLAGS=''
LIBGCRYPT_CONFIG='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/libgcrypt-config'
LIBGCRYPT_LIBDIR='/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib'
LIBGCRYPT_LIBS='-L/gnu/store/7wfbprp1b9b25crlidg6h7b6hpib2b99-libgcrypt-1.6.5/lib -lgcrypt'
LIBGCRYPT_PREFIX='no'
LIBICONV='-liconv'
LIBINTL=''
LIBOBJS=''
LIBS=''
LIBZ='/gnu/store/hsxhfmjgh8m4c0pavq3gd3gcrn8zrgxj-zlib-1.2.8/lib/libz'
LTLIBICONV='-liconv'
LTLIBINTL=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/missing makeinfo'
MKDIR_P='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/mkdir -p'
MSGFMT='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt'
MSGFMT_015='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgfmt'
MSGMERGE='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/msgmerge'
NIXPKGS=''
NIX_HASH=''
NIX_INSTANTIATE='nix-instantiate'
NIX_PREFIX=''
OBJEXT='o'
PACKAGE='guix'
PACKAGE_BUGREPORT='bug-guix@gnu.org'
PACKAGE_NAME='GNU Guix'
PACKAGE_STRING='GNU Guix 0.10.0'
PACKAGE_TARNAME='guix'
PACKAGE_URL='http://www.gnu.org/software/guix/'
PACKAGE_VERSION='0.10.0'
PATH_SEPARATOR=':'
PKG_CONFIG='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/lib/pkgconfig::/home/sapientech/.guix-profile/lib/pkgconfig'
POSUB='po'
RANLIB='ranlib'
SED='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
SQLITE3_CFLAGS='-I/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/include'
SQLITE3_LIBS='-L/gnu/store/y7h8gf890qaj6f23ryshwxd3r9y96cnc-sqlite-3.10.0/lib -lsqlite3'
STRIP=''
USE_NLS='yes'
VERSION='0.10.0'
XGETTEXT='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext'
XGETTEXT_015='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xgettext'
XGETTEXT_EXTRA_OPTIONS=''
XZ='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/xz'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bashcompletiondir='${sysconfdir}/bash_completion.d'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
emacsuidir='${prefix}/share/guile/site/2.0/guix/emacs'
exec_prefix='${prefix}'
guilemoduledir='${prefix}/share/guile/site/2.0'
guix_localstatedir='/usr/local/var'
guix_sbindir='/usr/local/sbin'
guix_sysconfdir='/usr/local/etc'
guix_system='x86_64-linux'
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/sapientech/Dev/guix/guix_wip/build-aux/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
lispdir='${datadir}/emacs/site-lisp'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/gnu/store/20qsgil18h1k3znqx52wjzy1kfiwqgdp-profile/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
storedir='/gnu/store'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "GNU Guix"
#define PACKAGE_TARNAME "guix"
#define PACKAGE_VERSION "0.10.0"
#define PACKAGE_STRING "GNU Guix 0.10.0"
#define PACKAGE_BUGREPORT "bug-guix@gnu.org"
#define PACKAGE_URL "http://www.gnu.org/software/guix/"
#define PACKAGE "guix"
#define VERSION "0.10.0"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define __EXTENSIONS__ 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define ENABLE_NLS 1
#define HAVE_GETTEXT 1
#define HAVE_DCGETTEXT 1
#define HAVE_BZLIB_H 1
#define NIX_VERSION "0.0.0"
#define SYSTEM "x86_64-linux"
#define HAVE_CHROOT 1
#define HAVE_UNSHARE 1
#define HAVE_SCHED_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_MOUNT_H 1
#define HAVE_SYS_SYSCALL_H 1
#define HAVE_LUTIMES 1
#define HAVE_LCHOWN 1
#define HAVE_POSIX_FALLOCATE 1
#define HAVE_SCHED_SETAFFINITY 1
#define HAVE_STATVFS 1
#define HAVE_NANOSLEEP 1
#define HAVE_STRSIGNAL 1
#define CAN_LINK_SYMLINK 1
#define HAVE_LOCALE 1
#define HAVE_SYS_PERSONALITY_H 1
#define HAVE_LINUX_FS_H 1
#define GUIX_SUBSTITUTE_URLS "https://mirror.hydra.gnu.org"
#define HAVE_DAEMON_OFFLOAD_HOOK 1

configure: exit 0

[-- Attachment #3: config.status --]
[-- Type: application/octet-stream, Size: 46324 bytes --]

[-- Attachment #4: test-suite.log --]
[-- Type: text/x-log, Size: 187041 bytes --]

=======================================
   GNU Guix 0.10.0: ./test-suite.log
=======================================

# TOTAL: 604
# PASS:  582
# SKIP:  19
# XFAIL: 0
# FAIL:  3
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

SKIP: tests/base32
==================

sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:48
source:
+ (test-assert
+   "bytevector->base32-string"
+   (fold (lambda (bv expected result)
+           (and result
+                (string=?
+                  (bytevector->base32-string bv)
+                  expected)))
+         #t
+         (map string->utf8
+              '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
+         '(""
+           "my"
+           "mzxq"
+           "mzxw6"
+           "mzxw6yq"
+           "mzxw6ytb"
+           "mzxw6ytboi")))
actual-value: #t
result: PASS

test-name: base32-string->bytevector
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:65
source:
+ (test-assert
+   "base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (base32-string->bytevector
+                (bytevector->base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: nix-base32-string->bytevector
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:73
source:
+ (test-assert
+   "nix-base32-string->bytevector"
+   (every (lambda (bv)
+            (equal?
+              (nix-base32-string->bytevector
+                (bytevector->nix-base32-string bv))
+              bv))
+          (map string->utf8
+               '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS

test-name: &invalid-base32-character
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:81
source:
+ (test-equal
+   "&invalid-base32-character"
+   #\e
+   (guard (c ((invalid-base32-character? c)
+              (invalid-base32-character-value c)))
+          (nix-base32-string->bytevector
+            (string-append (make-string 51 #\a) "e"))))
expected-value: e
actual-value: e
result: PASS

test-name: sha256 & bytevector->nix-base32-string
location: /home/sapientech/Dev/guix/guix_wip/tests/base32.scm:92
source:
+ (test-assert
+   "sha256 & bytevector->nix-base32-string"
+   (let ((file (search-path %load-path "tests/test.drv")))
+     (equal?
+       (bytevector->nix-base32-string
+         (sha256
+           (call-with-input-file file get-bytevector-all)))
+       (let* ((c (format
+                   #f
+                   "~a --type sha256 --base32 --flat \"~a\""
+                   %nix-hash
+                   file))
+              (p (open-input-pipe c))
+              (l (read-line p)))
+         (close-pipe p)
+         l))))
result: SKIP


SKIP: tests/cpio
================

test-name: file->cpio-header + write-cpio-header + read-cpio-header
location: /home/sapientech/Dev/guix/guix_wip/tests/cpio.scm:37
source:
+ (test-assert
+   "file->cpio-header + write-cpio-header + read-cpio-header"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (header (file->cpio-header file)))
+     (call-with-values
+       (lambda () (open-bytevector-output-port))
+       (lambda (port get-bv)
+         (write-cpio-header header port)
+         (let ((port (open-bytevector-input-port (get-bv))))
+           (equal? header (read-cpio-header port)))))))
actual-value: #t
result: PASS

test-name: bit-identical to GNU cpio's output
location: /home/sapientech/Dev/guix/guix_wip/tests/cpio.scm:49
source:
+ (test-assert
+   "bit-identical to GNU cpio's output"
+   (call-with-temporary-output-file
+     (lambda (link _)
+       (delete-file link)
+       (symlink "chbouib" link)
+       (let ((files (cons* "/"
+                           (canonicalize-path
+                             (dirname (search-path %load-path "guix.scm")))
+                           link
+                           (map (compose
+                                  canonicalize-path
+                                  (cut search-path %load-path <>))
+                                '("guix.scm"
+                                  "guix/build/syscalls.scm"
+                                  "guix/packages.scm")))))
+         (call-with-temporary-output-file
+           (lambda (ref-file _)
+             (let ((pipe (open-pipe*
+                           OPEN_WRITE
+                           %cpio-program
+                           "-o"
+                           "-O"
+                           ref-file
+                           "-H"
+                           "newc"
+                           "--null")))
+               (for-each
+                 (lambda (file) (format pipe "~a\x00" file))
+                 files)
+               (and (zero? (close-pipe pipe))
+                    (call-with-temporary-output-file
+                      (lambda (file port)
+                        (write-cpio-archive files port)
+                        (close-port port)
+                        (or (file=? ref-file file)
+                            (throw 'cpio-archives-differ
+                                   files
+                                   ref-file
+                                   file
+                                   (stat:size (stat ref-file))
+                                   (stat:size (stat file))))))))))))))
result: SKIP

random seed for tests: 1469939214

SKIP: tests/snix
================

test-name: factorize-uri
location: /home/sapientech/Dev/guix/guix_wip/tests/snix.scm:36
source:
+ (test-assert
+   "factorize-uri"
+   (every?
+     (match-lambda
+       ((uri version '-> expected)
+        (equal? (factorize-uri uri version) expected)))
+     '(("http://example.com/foo.tgz"
+        "1.0"
+        ->
+        "http://example.com/foo.tgz")
+       ("http://example.com/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/foo-" version ".tgz"))
+       ("http://example.com/2.8/foo-2.8.tgz"
+        "2.8"
+        ->
+        ("http://example.com/"
+         version
+         "/foo-"
+         version
+         ".tgz")))))
actual-value: #t
result: PASS

test-name: nixpkgs->guix-package
location: /home/sapientech/Dev/guix/guix_wip/tests/snix.scm:54
source:
+ (test-assert
+   "nixpkgs->guix-package"
+   (match (nixpkgs->guix-package
+            %nixpkgs-directory
+            "guile")
+          (('package
+            ('name "guile")
+            ('version (? string?))
+            ('source ('origin _ ...))
+            ('build-system _)
+            ('inputs ('quasiquote (inputs ...)))
+            ('propagated-inputs ('quasiquote (pinputs ...)))
+            ('home-page (? string?))
+            ('synopsis (? string?))
+            ('description (? string?))
+            ('license (? symbol?)))
+           (and (member '("libffi" ,libffi) inputs)
+                (member '("gmp" ,gmp) pinputs)
+                #t))
+          (x (pk 'fail x #f))))
result: SKIP


FAIL: tests/store
=================

test-name: store-path-hash-part
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:51
source:
+ (test-equal
+   "store-path-hash-part"
+   "283gqy39v3g9dxjy26rynl0zls82fmcg"
+   (store-path-hash-part
+     (string-append
+       (%store-prefix)
+       "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
actual-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
result: PASS

test-name: store-path-hash-part #f
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:57
source:
+ (test-equal
+   "store-path-hash-part #f"
+   #f
+   (store-path-hash-part
+     (string-append
+       (%store-prefix)
+       "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: #f
actual-value: #f
result: PASS

test-name: store-path-package-name
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:63
source:
+ (test-equal
+   "store-path-package-name"
+   "guile-2.0.7"
+   (store-path-package-name
+     (string-append
+       (%store-prefix)
+       "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: guile-2.0.7
actual-value: guile-2.0.7
result: PASS

test-name: store-path-package-name #f
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:69
source:
+ (test-equal
+   "store-path-package-name #f"
+   #f
+   (store-path-package-name
+     "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
expected-value: #f
actual-value: #f
result: PASS

test-name: direct-store-path?
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:74
source:
+ (test-assert
+   "direct-store-path?"
+   (and (direct-store-path?
+          (string-append
+            (%store-prefix)
+            "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
+        (not (direct-store-path?
+               (string-append
+                 (%store-prefix)
+                 "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
+        (not (direct-store-path? (%store-prefix)))))
actual-value: #t
result: PASS

test-name: valid-path? live
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:86
source:
+ (test-assert
+   "valid-path? live"
+   (let ((p (add-text-to-store %store "hello" "hello, world")))
+     (valid-path? %store p)))
actual-value: #t
result: PASS

test-name: valid-path? false
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:90
source:
+ (test-assert
+   "valid-path? false"
+   (not (valid-path?
+          %store
+          (string-append
+            (%store-prefix)
+            "/"
+            (make-string 32 #\e)
+            "-foobar"))))
actual-value: #t
result: PASS

test-name: valid-path? error
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:95
source:
+ (test-assert
+   "valid-path? error"
+   (with-store
+     s
+     (guard (c ((nix-protocol-error? c) #t))
+            (valid-path? s "foo")
+            #f)))
actual-value: #t
result: PASS

test-name: valid-path? recovery
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:101
source:
+ (test-assert
+   "valid-path? recovery"
+   (with-store
+     s
+     (let-syntax ((true-if-error
+                    (syntax-rules ()
+                      ((_ exp)
+                       (guard (c ((nix-protocol-error? c) #t)) exp #f)))))
+       (and (true-if-error (valid-path? s "foo"))
+            (true-if-error (valid-path? s "bar"))
+            (true-if-error (valid-path? s "baz"))
+            (true-if-error (valid-path? s "chbouib"))
+            (valid-path?
+              s
+              (add-text-to-store s "valid" "yeah"))))))
actual-value: #t
result: PASS

test-name: hash-part->path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:118
source:
+ (test-assert
+   "hash-part->path"
+   (let ((p (add-text-to-store %store "hello" "hello, world")))
+     (equal?
+       (hash-part->path %store (store-path-hash-part p))
+       p)))
actual-value: #t
result: PASS

test-name: dead-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:123
source:
+ (test-assert
+   "dead-paths"
+   (let ((p (add-text-to-store
+              %store
+              "random-text"
+              (random-text))))
+     (->bool (member p (dead-paths %store)))))
random seed for tests: 1469938959
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/temproots/11095'
determining live/dead paths...
actual-value: #t
result: PASS

test-name: permanent root
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:144
source:
+ (test-assert
+   "permanent root"
+   (let* ((p (with-store
+               store
+               (let ((p (add-text-to-store
+                          store
+                          "random-text"
+                          (random-text))))
+                 (add-permanent-root p)
+                 (add-permanent-root p)
+                 p))))
+     (and (member p (live-paths %store))
+          (begin
+            (remove-permanent-root p)
+            (->bool (member p (dead-paths %store)))))))
finding garbage collector roots...
determining live/dead paths...
finding garbage collector roots...
determining live/dead paths...
actual-value: #t
result: PASS

test-name: dead path can be explicitly collected
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:156
source:
+ (test-assert
+   "dead path can be explicitly collected"
+   (let ((p (add-text-to-store
+              %store
+              "random-text"
+              (random-text)
+              '())))
+     (let-values
+       (((paths freed) (delete-paths %store (list p))))
+       (and (equal? paths (list p))
+            (> freed 0)
+            (not (file-exists? p))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: add-text-to-store vs. delete-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:164
source:
+ (test-assert
+   "add-text-to-store vs. delete-paths"
+   (with-store
+     store
+     (let* ((text (random-text))
+            (path (add-text-to-store store "delete-me" text))
+            (deleted (delete-paths store (list path)))
+            (path2 (add-text-to-store store "delete-me" text)))
+       (and (string=? path path2)
+            (equal? deleted (list path))
+            (valid-path? store path)
+            (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/temproots/11111'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/r11ng87nwwzjwb5qxkyg8nbayhwrqfxr-delete-me'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 26.30 MiB
actual-value: #t
result: PASS

test-name: add-to-store vs. delete-paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:177
source:
+ (test-assert
+   "add-to-store vs. delete-paths"
+   (with-store
+     store
+     (let* ((file (search-path %load-path "guix.scm"))
+            (path (add-to-store store "delete-me" #t "sha256" file))
+            (deleted (delete-paths store (list path)))
+            (path2 (add-to-store store "delete-me" #t "sha256" file)))
+       (and (string=? path path2)
+            (equal? deleted (list path))
+            (valid-path? store path)
+            (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/temproots/11115'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/57nhqlbqv5kh4zwr2vvdk3xyh741ynri-delete-me'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 26.30 MiB
actual-value: #t
result: PASS

test-name: references
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:189
source:
+ (test-assert
+   "references"
+   (let* ((t1 (add-text-to-store
+                %store
+                "random1"
+                (random-text)))
+          (t2 (add-text-to-store
+                %store
+                "random2"
+                (random-text)
+                (list t1))))
+     (and (equal? (list t1) (references %store t2))
+          (equal? (list t2) (referrers %store t1))
+          (null? (references %store t1))
+          (null? (referrers %store t2)))))
actual-value: #t
result: PASS

test-name: references/substitutes missing reference info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:199
source:
+ (test-assert
+   "references/substitutes missing reference info"
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (guard (c ((nix-protocol-error? c) #t))
+            (let* ((b (add-to-store
+                        s
+                        "bash"
+                        #t
+                        "sha256"
+                        (search-bootstrap-binary
+                          "bash"
+                          (%current-system))))
+                   (d (derivation
+                        s
+                        "the-thing"
+                        b
+                        '("--help")
+                        #:inputs
+                        `((,b)))))
+              (references/substitutes
+                s
+                (list (derivation->output-path d) b))
+              #f))))
actual-value: #t
result: PASS

test-name: references/substitutes with substitute info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:211
source:
+ (test-assert
+   "references/substitutes with substitute info"
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #t)
+     (let* ((t1 (add-text-to-store s "random1" (random-text)))
+            (t2 (add-text-to-store
+                  s
+                  "random2"
+                  (random-text)
+                  (list t1)))
+            (t3 (add-text-to-store
+                  s
+                  "build"
+                  "echo -n $t2 > $out"))
+            (b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 `("-e" ,t3)
+                 #:inputs
+                 `((,b) (,t3) (,t2))
+                 #:env-vars
+                 `(("t2" unquote t2))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (sha256 => (sha256 (string->utf8 t2)))
+         (references => (list t2))
+         (equal?
+           (references/substitutes s (list o t3 t2 t1))
+           `((,t2) () (,t1) ()))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
actual-value: #t
result: PASS

test-name: substitutable-path-info when substitutes are turned off
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:235
source:
+ (test-equal
+   "substitutable-path-info when substitutes are turned off"
+   '()
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (let* ((b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 '("--version")
+                 #:inputs
+                 `((,b))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (substitutable-path-info s (list o))))))
expected-value: ()
actual-value: ()
result: PASS

test-name: substitutable-paths when substitutes are turned off
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:248
source:
+ (test-equal
+   "substitutable-paths when substitutes are turned off"
+   '()
+   (with-store
+     s
+     (set-build-options s #:use-substitutes? #f)
+     (let* ((b (add-to-store
+                 s
+                 "bash"
+                 #t
+                 "sha256"
+                 (search-bootstrap-binary
+                   "bash"
+                   (%current-system))))
+            (d (derivation
+                 s
+                 "the-thing"
+                 b
+                 '("--version")
+                 #:inputs
+                 `((,b))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (substitutable-paths s (list o))))))
expected-value: ()
actual-value: ()
result: PASS

test-name: requisites
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:261
source:
+ (test-assert
+   "requisites"
+   (let* ((t1 (add-text-to-store
+                %store
+                "random1"
+                (random-text)
+                '()))
+          (t2 (add-text-to-store
+                %store
+                "random2"
+                (random-text)
+                (list t1)))
+          (t3 (add-text-to-store
+                %store
+                "random3"
+                (random-text)
+                (list t2)))
+          (t4 (add-text-to-store
+                %store
+                "random4"
+                (random-text)
+                (list t1 t3))))
+     (define (same? x y)
+       (and (= (length x) (length y))
+            (lset= equal? x y)))
+     (and (same? (requisites %store (list t1)) (list t1))
+          (same? (requisites %store (list t2))
+                 (list t1 t2))
+          (same? (requisites %store (list t3))
+                 (list t1 t2 t3))
+          (same? (requisites %store (list t4))
+                 (list t1 t2 t3 t4))
+          (same? (requisites %store (list t1 t2 t3 t4))
+                 (list t1 t2 t3 t4)))))
actual-value: #t
result: PASS

test-name: derivers
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:281
source:
+ (test-assert
+   "derivers"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (equal?
+            (query-derivation-outputs
+              %store
+              (derivation-file-name d))
+            (list o))
+          (equal?
+            (valid-derivers %store o)
+            (list (derivation-file-name d))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/v90wk11vk033yirgdz1lwq3j5rharim2-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/v9//0wk11vk033yirgdz1lwq3j5rharim2-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/v90wk11vk033yirgdz1lwq3j5rharim2-the-thing.drv -
actual-value: #t
result: PASS

test-name: topologically-sorted, one item
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:297
source:
+ (test-assert
+   "topologically-sorted, one item"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (s (topologically-sorted %store (list d))))
+     (equal? s (list a b c d))))
actual-value: #t
result: PASS

test-name: topologically-sorted, several items
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:305
source:
+ (test-assert
+   "topologically-sorted, several items"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (s1 (topologically-sorted %store (list d a c b)))
+          (s2 (topologically-sorted %store (list b d c a b d))))
+     (equal? s1 s2 (list a b c d))))
actual-value: #t
result: PASS

test-name: topologically-sorted, more difficult
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:314
source:
+ (test-assert
+   "topologically-sorted, more difficult"
+   (let* ((a (add-text-to-store %store "a" "a"))
+          (b (add-text-to-store %store "b" "b" (list a)))
+          (c (add-text-to-store %store "c" "c" (list b)))
+          (d (add-text-to-store %store "d" "d" (list c)))
+          (w (add-text-to-store %store "w" "w"))
+          (x (add-text-to-store %store "x" "x" (list w)))
+          (y (add-text-to-store %store "y" "y" (list x d)))
+          (s1 (topologically-sorted %store (list y)))
+          (s2 (topologically-sorted %store (list c y)))
+          (s3 (topologically-sorted
+                %store
+                (cons y (references %store y)))))
+     (let* ((x-then-d?
+              (equal? (references %store y) (list x d))))
+       (and (equal?
+              s1
+              (if x-then-d?
+                (list w x a b c d y)
+                (list a b c d w x y)))
+            (equal?
+              s2
+              (if x-then-d?
+                (list a b c w x d y)
+                (list a b c d w x y)))
+            (lset= string=? s1 s3)))))
actual-value: #t
result: PASS

test-name: current-build-output-port, UTF-8
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:338
source:
+ (test-assert
+   "current-build-output-port, UTF-8"
+   (string-contains
+     (with-fluids
+       ((%default-port-encoding "UTF-8"))
+       (call-with-output-string
+         (lambda (port)
+           (parameterize
+             ((current-build-output-port port))
+             (let* ((s "Here\u2019s a Greek letter: \u03bb.")
+                    (d (build-expression->derivation
+                         %store
+                         "foo"
+                         `(display ,s)
+                         #:guile-for-build
+                         (package-derivation
+                           s
+                           %bootstrap-guile
+                           (%current-system)))))
+               (guard (c ((nix-protocol-error? c) #t))
+                      (build-derivations %store (list d))))))))
+     "Here\u2019s a Greek letter: \u03bb."))
actual-value: 231
result: PASS

test-name: current-build-output-port, UTF-8 + garbage
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:354
source:
+ (test-assert
+   "current-build-output-port, UTF-8 + garbage"
+   (string-contains
+     (with-fluids
+       ((%default-port-encoding "UTF-8"))
+       (call-with-output-string
+         (lambda (port)
+           (parameterize
+             ((current-build-output-port port))
+             (let ((d (build-expression->derivation
+                        %store
+                        "foo"
+                        `(begin
+                           (use-modules (rnrs io ports))
+                           (display "garbage: ")
+                           (put-bytevector (current-output-port) #vu8(128))
+                           (display "lambda: \u03bb\n"))
+                        #:guile-for-build
+                        (package-derivation %store %bootstrap-guile))))
+               (guard (c ((nix-protocol-error? c) #t))
+                      (build-derivations %store (list d))))))))
+     "garbage: ?lambda: \u03bb"))
actual-value: 231
result: PASS

test-name: log-file, derivation
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:374
source:
+ (test-assert
+   "log-file, derivation"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s)))))
+     (and (build-derivations %store (list d))
+          (file-exists?
+            (pk (log-file %store (derivation-file-name d)))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/rhr8cv3lsaggxr61wc87j2gji63fg5dg-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/rh//r8cv3lsaggxr61wc87j2gji63fg5dg-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/rhr8cv3lsaggxr61wc87j2gji63fg5dg-the-thing.drv -

;;; ("/home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/rh/r8cv3lsaggxr61wc87j2gji63fg5dg-the-thing.drv.bz2")
actual-value: #t
result: PASS

test-name: log-file, output file name
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:386
source:
+ (test-assert
+   "log-file, output file name"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (file-exists? (pk (log-file %store o)))
+          (string=?
+            (log-file %store (derivation-file-name d))
+            (log-file %store o)))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fraav0ksxx6cj46x708wp3vqfr6n81p3-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/fr//aav0ksxx6cj46x708wp3vqfr6n81p3-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fraav0ksxx6cj46x708wp3vqfr6n81p3-the-thing.drv -

;;; ("/home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/fr/aav0ksxx6cj46x708wp3vqfr6n81p3-the-thing.drv.bz2")
actual-value: #t
result: PASS

test-name: no substitutes
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:401
source:
+ (test-assert
+   "no substitutes"
+   (with-store
+     s
+     (let* ((d1 (package-derivation
+                  s
+                  %bootstrap-guile
+                  (%current-system)))
+            (d2 (package-derivation
+                  s
+                  %bootstrap-glibc
+                  (%current-system)))
+            (o (map derivation->output-path (list d1 d2))))
+       (set-build-options s #:use-substitutes? #f)
+       (and (not (has-substitutes? s (derivation-file-name d1)))
+            (not (has-substitutes? s (derivation-file-name d2)))
+            (null? (substitutable-paths s o))
+            (null? (substitutable-path-info s o))))))
actual-value: #t
result: PASS

test-name: build-things with output path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:412
source:
+ (test-assert
+   "build-things with output path"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (set-build-options s #:use-substitutes? #f)
+       (build-things s (list o))
+       (not (valid-path? s o)))))
actual-value: #t
result: PASS

test-name: substitute query
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:432
source:
+ (test-assert
+   "substitute query"
+   (with-store
+     s
+     (let* ((d (package-derivation
+                 s
+                 %bootstrap-guile
+                 (%current-system)))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (false-if-exception
+           (delete-file-recursively
+             (string-append
+               (getenv "XDG_CACHE_HOME")
+               "/guix/substitute")))
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (equal?
+                (list o)
+                (substitutable-paths s (list o)))
+              (match (pk 'spi (substitutable-path-info s (list o)))
+                     (((? substitutable? s))
+                      (and (string=?
+                             (substitutable-deriver s)
+                             (derivation-file-name d))
+                           (null? (substitutable-references s))
+                           (equal? (substitutable-nar-size s) 1234)))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable

;;; (spi (#<<substitutable> path: "/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0" deriver: "/home/sapientech/Dev/guix/guix_wip/test-tmp/store/bjihchailclirz3310dqypibjg0happm-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
actual-value: #t
result: PASS

test-name: substitute query, alternating URLs
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:456
source:
+ (test-assert
+   "substitute query, alternating URLs"
+   (let* ((d (with-store
+               s
+               (package-derivation
+                 s
+                 %bootstrap-guile
+                 (%current-system))))
+          (o (derivation->output-path d)))
+     (with-derivation-narinfo
+       d
+       (false-if-exception
+         (delete-file-recursively
+           (string-append
+             (getenv "XDG_CACHE_HOME")
+             "/guix/substitute")))
+       (and (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (%test-substitute-urls))
+              (has-substitutes? s o))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (list "http://does-not-exist"))
+              (not (has-substitutes? s o)))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                (%test-substitute-urls))
+              (has-substitutes? s o))
+            (with-store
+              s
+              (set-build-options
+                s
+                #:use-substitutes?
+                #t
+                #:substitute-urls
+                '())
+              (not (has-substitutes? s o)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:  157: 9 [catch #t #<catch-closure 1c08740> ...]
substitute: In unknown file:
substitute:    ?: 8 [apply-smob/1 #<catch-closure 1c08740>]
substitute: In ice-9/boot-9.scm:
substitute:   63: 7 [call-with-prompt prompt0 ...]
substitute: In ice-9/eval.scm:
substitute:  432: 6 [eval # #]
substitute: In ice-9/boot-9.scm:
substitute: 2401: 5 [save-module-excursion #<procedure 1c26940 at ice-9/boot-9.scm:4045:3 ()>]
substitute: 4050: 4 [#<procedure 1c26940 at ice-9/boot-9.scm:4045:3 ()>]
substitute: 1724: 3 [%start-stack load-stack ...]
substitute: 1729: 2 [#<procedure 1c3dea0 ()>]
substitute: In unknown file:
substitute:    ?: 1 [primitive-load "/home/sapientech/Dev/guix/guix_wip/scripts/guix"]
substitute: In guix/ui.scm:
substitute: 1209: 0 [run-guix-command substitute "--query"]
substitute: 
substitute: guix/ui.scm:1209:6: In procedure run-guix-command:
substitute: guix/ui.scm:1209:6: unmatched line "<html><head><meta http-equiv=\"refresh\" content=\"0;url=http://www.dnsrsearch.com/index.php?origURL=http://does-not-exist/nix-cache-info&bc=\"/></head><body><script type=\"text/javascript\">window.location=\"http://www.dnsrsearch.com/index.php?origURL=\"+escape(window.location)+\"&r=\"+escape(document.referrer)+\"&bc=\";</script></body></html>"
actual-value: #f
actual-error:
+ (srfi-34
+   #<condition &nix-protocol-error [message: "substituter `substitute' died unexpectedly" status: 1] 3e10540>)
result: FAIL

test-name: substitute
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:488
source:
+ (test-assert
+   "substitute"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (exit 1) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (build-derivations s (list d))
+              (equal?
+                c
+                (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9m7hnf6014kkxv5s5blpc2vj1q02i5iw-substitute-me /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9m7hnf6014kkxv5s5blpc2vj1q02i5iw-substitute-me (1KiB installed)...

^[[K example.nar  176B                     0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9m7hnf6014kkxv5s5blpc2vj1q02i5iw-substitute-me
actual-value: #t
result: PASS

test-name: substitute + build-things with output path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:507
source:
+ (test-assert
+   "substitute + build-things with output path"
+   (with-store
+     s
+     (let* ((c (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (exit 1) (display ,c p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (build-things s (list o))
+              (valid-path? s o)
+              (equal?
+                c
+                (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/np2fa5ssidgms7n82jiz1rdnpsarvi8m-substitute-me /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/np2fa5ssidgms7n82jiz1rdnpsarvi8m-substitute-me (1KiB installed)...

^[[K example.nar  176B                     0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/np2fa5ssidgms7n82jiz1rdnpsarvi8m-substitute-me
actual-value: #t
result: PASS

test-name: substitute, corrupt output hash
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:527
source:
+ (test-assert
+   "substitute, corrupt output hash"
+   (with-store
+     s
+     (let* ((c "hello, world")
+            (d (build-expression->derivation
+                 s
+                 "corrupt-substitute"
+                 `(mkdir %output)
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-substitute
+         d
+         c
+         (sha256 => (make-bytevector 32 0))
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:fallback?
+           #f
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (guard (c ((nix-protocol-error? c)
+                         (pk 'corrupt c)
+                         (not (zero? (nix-protocol-error-status c)))))
+                     (build-derivations s (list d))
+                     #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute (1KiB installed)...

^[[K example.nar  128B                     0B/s 00:00 [####################] 100.0%
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute 0 hash mismatch in downloaded path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/bmdlmicms7mw571siq7gsjip4as64586-corrupt-substitute': expected 0000000000000000000000000000000000000000000000000000000000000000, got b8f73a6eb280e63169b1de2a5b5e154676fe1ada685f1e5c7183cbb2c1dcd535

;;; (corrupt #<condition &nix-protocol-error [message: "some substitutes for the outputs of derivation `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yp3pfg2510b5dm7ilsl1nrry1j5q3ww3-corrupt-substitute.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source " status: 1] 2f87840>)
actual-value: #t
result: PASS

test-name: substitute --fallback
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:557
source:
+ (test-assert
+   "substitute --fallback"
+   (with-store
+     s
+     (let* ((t (random-text))
+            (d (build-expression->derivation
+                 s
+                 "substitute-me-not"
+                 `(call-with-output-file
+                    %output
+                    (lambda (p) (display ,t p)))
+                 #:guile-for-build
+                 (package-derivation
+                   s
+                   %bootstrap-guile
+                   (%current-system))))
+            (o (derivation->output-path d)))
+       (with-derivation-narinfo
+         d
+         (set-build-options
+           s
+           #:use-substitutes?
+           #t
+           #:substitute-urls
+           (%test-substitute-urls))
+         (and (has-substitutes? s o)
+              (guard (c ((nix-protocol-error? c)
+                         (set-build-options
+                           s
+                           #:use-substitutes?
+                           #t
+                           #:substitute-urls
+                           (%test-substitute-urls)
+                           #:fallback?
+                           #t)
+                         (and (build-derivations s (list d))
+                              (equal?
+                                t
+                                (call-with-input-file o get-string-all)))))
+                     (build-derivations s (list d))
+                     #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/substituter-data/example.nar"
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not 256 fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not' failed with exit code 1
@ substituter-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not /home/sapientech/Dev/guix/guix_wip/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/substituter-data/example.nar"
@ substituter-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not 256 fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/mkppidiyv2nwgq5d7gywffzd3l7zvk02-substitute-me-not' failed with exit code 1
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/5gni6qwzkn84rzf3zyg83pwgnh1y26mr-substitute-me-not.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/5g//ni6qwzkn84rzf3zyg83pwgnh1y26mr-substitute-me-not.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/5gni6qwzkn84rzf3zyg83pwgnh1y26mr-substitute-me-not.drv -
actual-value: #t
result: PASS

test-name: export/import several paths
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:589
source:
+ (test-assert
+   "export/import several paths"
+   (let* ((texts (unfold
+                   (cut >= <> 10)
+                   (lambda _ (random-text))
+                   #{1+}#
+                   0))
+          (files (map (cut add-text-to-store %store "text" <>)
+                      texts))
+          (dump (call-with-bytevector-output-port
+                  (cut export-paths %store files <>))))
+     (delete-paths %store files)
+     (and (every (negate file-exists?) files)
+          (let* ((source (open-bytevector-input-port dump))
+                 (imported (import-paths %store source)))
+            (and (equal? imported files)
+                 (every file-exists? files)
+                 (equal?
+                   texts
+                   (map (lambda (file)
+                          (call-with-input-file file get-string-all))
+                        files)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: export/import paths, ensure topological order
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:609
source:
+ (test-assert
+   "export/import paths, ensure topological order"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (files (list file1 file2))
+          (dump1 (call-with-bytevector-output-port
+                   (cute export-paths %store (list file1 file2) <>)))
+          (dump2 (call-with-bytevector-output-port
+                   (cute export-paths %store (list file2 file1) <>))))
+     (delete-paths %store files)
+     (and (every (negate file-exists?) files)
+          (bytevector=? dump1 dump2)
+          (let* ((source (open-bytevector-input-port dump1))
+                 (imported (import-paths %store source)))
+            (and (equal? imported (list file1 file2))
+                 (every file-exists? files)
+                 (equal? (list file0) (references %store file1))
+                 (equal? (list file1) (references %store file2)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: export/import incomplete
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:631
source:
+ (test-assert
+   "export/import incomplete"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (dump (call-with-bytevector-output-port
+                  (cute export-paths %store (list file2) <>))))
+     (delete-paths %store (list file0 file1 file2))
+     (guard (c ((nix-protocol-error? c)
+                (and (not (zero? (nix-protocol-error-status c)))
+                     (string-contains
+                       (nix-protocol-error-message c)
+                       "not valid"))))
+            (import-paths
+              %store
+              (open-bytevector-input-port dump)))))
finding garbage collector roots...
deleting unused links...
actual-value: 97
result: PASS

test-name: export/import recursive
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:648
source:
+ (test-assert
+   "export/import recursive"
+   (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+          (file1 (add-text-to-store
+                   %store
+                   "foo"
+                   (random-text)
+                   (list file0)))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1)))
+          (dump (call-with-bytevector-output-port
+                  (cute export-paths
+                        %store
+                        (list file2)
+                        <>
+                        #:recursive?
+                        #t))))
+     (delete-paths %store (list file0 file1 file2))
+     (let ((imported
+             (import-paths
+               %store
+               (open-bytevector-input-port dump))))
+       (and (equal? imported (list file0 file1 file2))
+            (every file-exists? (list file0 file1 file2))
+            (equal? (list file0) (references %store file1))
+            (equal? (list file1) (references %store file2))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: write-file & export-path yield the same result
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:664
source:
+ (test-assert
+   "write-file & export-path yield the same result"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((drv1 (package->derivation %bootstrap-guile))
+             (out1 -> (derivation->output-path drv1))
+             (data ->
+                   (unfold
+                     (cut >= <> 26)
+                     (lambda (i) (random-bytevector 128))
+                     #{1+}#
+                     0))
+             (build ->
+                    (gexp (begin
+                            (use-modules (rnrs io ports) (srfi srfi-1))
+                            (let ()
+                              (define letters
+                                (map (lambda (i)
+                                       (string
+                                         (integer->char
+                                           (+ i (char->integer #\a)))))
+                                     (iota 26)))
+                              (define (touch file data)
+                                (call-with-output-file
+                                  file
+                                  (lambda (port) (put-bytevector port data))))
+                              (mkdir (ungexp output))
+                              (chdir (ungexp output))
+                              (for-each
+                                touch
+                                (append (drop letters 10) (take letters 10))
+                                (list (ungexp-splicing data)))
+                              #t))))
+             (drv2 (gexp->derivation "bunch" build))
+             (out2 -> (derivation->output-path drv2))
+             (item-info -> (store-lift query-path-info)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv1 drv2))
+              (foldm %store-monad
+                     (lambda (item result)
+                       (define ref-hash
+                         (let-values
+                           (((port get) (open-sha256-port)))
+                           (write-file item port)
+                           (close-port port)
+                           (get)))
+                       (>>= (item-info item)
+                            (lambda (info)
+                              (return
+                                (and result
+                                     (bytevector=?
+                                       (path-info-hash info)
+                                       ref-hash))))))
+                     #t
+                     (list out1 out2))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/dfxcp3x2qxk908lrmd58zgwalqapacnr-bunch.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/df//xcp3x2qxk908lrmd58zgwalqapacnr-bunch.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/dfxcp3x2qxk908lrmd58zgwalqapacnr-bunch.drv -
actual-value: #t
result: PASS

test-name: import corrupt path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:730
source:
+ (test-assert
+   "import corrupt path"
+   (let* ((text (random-text))
+          (file (add-text-to-store %store "text" text))
+          (dump (call-with-bytevector-output-port
+                  (cut export-paths %store (list file) <>))))
+     (delete-paths %store (list file))
+     (let* ((index (quotient (bytevector-length dump) 4))
+            (byte (bytevector-u8-ref dump index)))
+       (bytevector-u8-set! dump index (logxor 255 byte)))
+     (and (not (file-exists? file))
+          (guard (c ((nix-protocol-error? c)
+                     (pk 'c c)
+                     (and (not (zero? (nix-protocol-error-status c)))
+                          (string-contains
+                            (nix-protocol-error-message c)
+                            "corrupt"))))
+                 (let* ((source (open-bytevector-input-port dump))
+                        (imported (import-paths %store source)))
+                   (pk 'corrupt-imported imported)
+                   #f)))))
finding garbage collector roots...
deleting unused links...

;;; (c #<condition &nix-protocol-error [message: "signed hash doesn't match actual contents of imported archive; archive could be corrupt, or someone is trying to import a Trojan horse" status: 1] 3550660>)
actual-value: 80
result: PASS

test-name: register-path
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:753
source:
+ (test-assert
+   "register-path"
+   (let ((file (string-append
+                 (%store-prefix)
+                 "/"
+                 (make-string 32 #\f)
+                 "-fake")))
+     (when (valid-path? %store file)
+           (delete-paths %store (list file)))
+     (false-if-exception (delete-file file))
+     (let ((ref (add-text-to-store
+                  %store
+                  "ref-of-fake"
+                  (random-text)))
+           (drv (string-append file ".drv")))
+       (call-with-output-file
+         file
+         (cut display "This is a fake store item.\n" <>))
+       (register-path
+         file
+         #:references
+         (list ref)
+         #:deriver
+         drv)
+       (and (valid-path? %store file)
+            (equal? (references %store file) (list ref))
+            (null? (valid-derivers %store file))
+            (null? (referrers %store file))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS

test-name: verify-store
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:773
source:
+ (test-assert
+   "verify-store"
+   (let* ((text (random-text))
+          (file1 (add-text-to-store %store "foo" text))
+          (file2 (add-text-to-store
+                   %store
+                   "bar"
+                   (random-text)
+                   (list file1))))
+     (and (pk 'verify1 (verify-store %store))
+          (begin
+            (delete-file file1)
+            (not (pk 'verify2 (verify-store %store))))
+          (begin
+            (call-with-output-file
+              file1
+              (lambda (port) (display text port)))
+            (pk 'verify3 (verify-store %store))))))
reading the Nix store...

;;; (verify1 #t)
reading the Nix store...
path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/b2x6jn5drxda6ym1kbwyqfjhdn3qr4xc-foo' disappeared, but it still has valid referrers!

;;; (verify2 #f)
reading the Nix store...

;;; (verify3 #t)
actual-value: #t
result: PASS

test-name: verify-store + check-contents
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:790
source:
+ (test-assert
+   "verify-store + check-contents"
+   (with-store
+     s
+     (let* ((text (random-text))
+            (drv (build-expression->derivation
+                   s
+                   "corrupt"
+                   `(let ((out (assoc-ref %outputs "out")))
+                      (call-with-output-file
+                        out
+                        (lambda (port) (display ,text port)))
+                      #t)
+                   #:guile-for-build
+                   (package-derivation
+                     s
+                     %bootstrap-guile
+                     (%current-system))))
+            (file (derivation->output-path drv)))
+       (with-derivation-substitute
+         drv
+         text
+         (and (build-derivations s (list drv))
+              (verify-store s #:check-contents? #t)
+              (begin
+                (chmod file 420)
+                (call-with-output-file
+                  file
+                  (lambda (port) (display "corrupt!" port)))
+                #t)
+              (not (verify-store s #:check-contents? #t))
+              (delete-paths s (list file)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
fetching path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/1x27y6gc0pxd2z6731c3nlfmnkpsnjlz-corrupt'...
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /home/sapientech/Dev/guix/guix_wip/test-tmp/store/1x27y6gc0pxd2z6731c3nlfmnkpsnjlz-corrupt (1KiB installed)...

^[[K example.nar  176B                      0B/s 00:00 [####################] 100.0%
reading the Nix store...
checking path existence...
checking hashes...
reading the Nix store...
checking path existence...
checking hashes...
path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/1x27y6gc0pxd2z6731c3nlfmnkpsnjlz-corrupt' was modified! expected hash `03b9a1aa33de49627f23936e1d4298f852a8b2df398441ffcef3a1e9a0dbda19', got `e09c480e2e93336cd3c45aa129f81a0d7ba56c410b849d7779a8136074413b3d'
finding garbage collector roots...
removing stale temporary roots file `/home/sapientech/Dev/guix/guix_wip/test-tmp/var/11072/temproots/11405'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/1x27y6gc0pxd2z6731c3nlfmnkpsnjlz-corrupt'
deleting `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 26.30 MiB
actual-value: (/home/sapientech/Dev/guix/guix_wip/test-tmp/store/1x27y6gc0pxd2z6731c3nlfmnkpsnjlz-corrupt)
result: PASS

test-name: build-things, check mode
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:827
source:
+ (test-assert
+   "build-things, check mode"
+   (with-store
+     store
+     (call-with-temporary-output-file
+       (lambda (entropy entropy-port)
+         (write (random-text) entropy-port)
+         (force-output entropy-port)
+         (let* ((drv (build-expression->derivation
+                       store
+                       "non-deterministic"
+                       `(begin
+                          (use-modules (rnrs io ports))
+                          (let ((out (assoc-ref %outputs "out")))
+                            (call-with-output-file
+                              out
+                              (lambda (port)
+                                (display
+                                  (call-with-input-file
+                                    ,entropy
+                                    get-string-all)
+                                  port)))
+                            #t))
+                       #:guile-for-build
+                       (package-derivation
+                         store
+                         %bootstrap-guile
+                         (%current-system))))
+                (file (derivation->output-path drv)))
+           (and (build-things
+                  store
+                  (list (derivation-file-name drv)))
+                (begin
+                  (write (random-text) entropy-port)
+                  (force-output entropy-port)
+                  (guard (c ((nix-protocol-error? c)
+                             (pk 'determinism-exception c)
+                             (and (not (zero? (nix-protocol-error-status c)))
+                                  (string-contains
+                                    (nix-protocol-error-message c)
+                                    "deterministic"))))
+                         (build-things
+                           store
+                           (list (derivation-file-name drv))
+                           (build-mode check))
+                         #f))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/3k339gx6rl9lsa74p4il7yvfi1jiv8xh-non-deterministic'
checking path(s) `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/3k339gx6rl9lsa74p4il7yvfi1jiv8xh-non-deterministic'
warning: rewriting hashes in `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/3k339gx6rl9lsa74p4il7yvfi1jiv8xh-non-deterministic'; cross fingers

;;; (determinism-exception #<condition &nix-protocol-error [message: "derivation `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/xdxb5hy9syb2y0r65bj5fz7yg8bn80g9-non-deterministic.drv' may not be deterministic: output `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/3k339gx6rl9lsa74p4il7yvfi1jiv8xh-non-deterministic' differs" status: 1] 47cf450>)
actual-value: 99
result: PASS

test-name: build multiple times
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:864
source:
+ (test-assert
+   "build multiple times"
+   (with-store
+     store
+     (set-build-options
+       store
+       #:rounds
+       2
+       #:use-substitutes?
+       #f)
+     (call-with-temporary-output-file
+       (lambda (entropy entropy-port)
+         (write (random-text) entropy-port)
+         (force-output entropy-port)
+         (let* ((drv (build-expression->derivation
+                       store
+                       "non-deterministic"
+                       `(begin
+                          (use-modules (rnrs io ports))
+                          (let ((out (assoc-ref %outputs "out")))
+                            (call-with-output-file
+                              out
+                              (lambda (port)
+                                (display
+                                  (call-with-input-file
+                                    ,entropy
+                                    get-string-all)
+                                  port)
+                                (call-with-output-file
+                                  ,entropy
+                                  (lambda (port) (write 'foobar port)))))
+                            #t))
+                       #:guile-for-build
+                       (package-derivation
+                         store
+                         %bootstrap-guile
+                         (%current-system))))
+                (file (derivation->output-path drv)))
+           (guard (c ((nix-protocol-error? c)
+                      (pk 'multiple-build c)
+                      (and (not (zero? (nix-protocol-error-status c)))
+                           (string-contains
+                             (nix-protocol-error-message c)
+                             "deterministic"))))
+                  (current-build-output-port (current-error-port))
+                  (build-things
+                    store
+                    (list (derivation-file-name drv)))
+                  #f))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/yv//sdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv.bz2
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/yv//sdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv.bz2
output ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/8l03iryrwim00ydbifhfja8cgi8fyc8c-non-deterministic? of ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv? differs from previous round
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv - 1 output ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/8l03iryrwim00ydbifhfja8cgi8fyc8c-non-deterministic? of ?/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv? differs from previous round

;;; (multiple-build #<condition &nix-protocol-error [message: "build of `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/yvsdm01vn5yzikz2lpz5hyrxq6av9mdx-non-deterministic.drv' failed" status: 1] 4526f30>)
actual-value: 97
result: PASS

test-name: store-lower
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:902
source:
+ (test-equal
+   "store-lower"
+   "Lowered."
+   (let* ((add (store-lower text-file))
+          (file (add %store "foo" "Lowered.")))
+     (call-with-input-file file get-string-all)))
expected-value: Lowered.
actual-value: Lowered.
result: PASS

test-name: current-system
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:908
source:
+ (test-equal
+   "current-system"
+   "bar"
+   (parameterize
+     ((%current-system "frob"))
+     (run-with-store
+       %store
+       (mbegin
+         %store-monad
+         (set-current-system "bar")
+         (current-system))
+       #:system
+       "foo")))
expected-value: bar
actual-value: bar
result: PASS

test-name: query-path-info
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:917
source:
+ (test-assert
+   "query-path-info"
+   (let* ((ref (add-text-to-store %store "ref" "foo"))
+          (item (add-text-to-store
+                  %store
+                  "item"
+                  "bar"
+                  (list ref)))
+          (info (query-path-info %store item)))
+     (and (equal? (path-info-references info) (list ref))
+          (equal?
+            (path-info-hash info)
+            (sha256
+              (string->utf8
+                (call-with-output-string
+                  (cut write-file item <>))))))))
actual-value: #t
result: PASS

test-name: path-info-deriver
location: /home/sapientech/Dev/guix/guix_wip/tests/store.scm:927
source:
+ (test-assert
+   "path-info-deriver"
+   (let* ((b (add-text-to-store
+               %store
+               "build"
+               "echo $foo > $out"
+               '()))
+          (s (add-to-store
+               %store
+               "bash"
+               #t
+               "sha256"
+               (search-bootstrap-binary
+                 "bash"
+                 (%current-system))))
+          (d (derivation
+               %store
+               "the-thing"
+               s
+               `("-e" ,b)
+               #:env-vars
+               `(("foo" unquote (random-text)))
+               #:inputs
+               `((,b) (,s))))
+          (o (derivation->output-path d)))
+     (and (build-derivations %store (list d))
+          (not (path-info-deriver (query-path-info %store b)))
+          (string=?
+            (derivation-file-name d)
+            (path-info-deriver (query-path-info %store o))))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9n78vph0n1dn1fwxfnkn7apqv6afpff7-the-thing.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/9n//78vph0n1dn1fwxfnkn7apqv6afpff7-the-thing.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/9n78vph0n1dn1fwxfnkn7apqv6afpff7-the-thing.drv -
actual-value: #t
result: PASS


SKIP: tests/gexp
================

test-name: no refs
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:71
source:
+ (test-equal
+   "no refs"
+   '(display "hello!")
+   (let ((exp (gexp (display "hello!"))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display hello!)
actual-value: (display hello!)
result: PASS

test-name: unquote
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:78
source:
+ (test-equal
+   "unquote"
+   '(display `(foo ,(+ 2 3)))
+   (let ((exp (gexp (display `(foo ,(+ 2 3))))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display (quasiquote (foo (unquote (+ 2 3)))))
actual-value: (display (quasiquote (foo (unquote (+ 2 3)))))
result: PASS

test-name: one input package
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:85
source:
+ (test-assert
+   "one input package"
+   (let ((exp (gexp (display (ungexp coreutils)))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-derivation %store coreutils)))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one input origin
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:95
source:
+ (test-assert
+   "one input origin"
+   (let ((exp (gexp (display (ungexp (package-source coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((o "out")) (eq? o (package-source coreutils))))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-source-derivation
+                    %store
+                    (package-source coreutils))))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:106
source:
+ (test-assert
+   "one local file"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (local (local-file file))
+          (exp (gexp (display (ungexp local))))
+          (intd (add-to-store
+                  %store
+                  (basename file)
+                  #f
+                  "sha256"
+                  file)))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x local)))
+          (equal? `(display ,intd) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file, symlink
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:118
source:
+ (test-assert
+   "one local file, symlink"
+   (let ((file (search-path %load-path "guix.scm"))
+         (link (tmpnam)))
+     (dynamic-wind
+       (const #t)
+       (lambda ()
+         (symlink (canonicalize-path file) link)
+         (let* ((local (local-file link "my-file" #:recursive? #f))
+                (exp (gexp (display (ungexp local))))
+                (intd (add-to-store %store "my-file" #f "sha256" file)))
+           (and (gexp? exp)
+                (match (gexp-inputs exp)
+                       (((x "out")) (eq? x local)))
+                (equal? `(display ,intd) (gexp->sexp* exp)))))
+       (lambda ()
+         (false-if-exception (delete-file link))))))
actual-value: #t
result: PASS

test-name: local-file, relative file name
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:137
source:
+ (test-equal
+   "local-file, relative file name"
+   (canonicalize-path
+     (search-path %load-path "guix/base32.scm"))
+   (let ((directory
+           (dirname
+             (search-path
+               %load-path
+               "guix/build-system/gnu.scm"))))
+     (with-directory-excursion
+       directory
+       (let ((file (local-file "../guix/base32.scm")))
+         (local-file-absolute-file-name file)))))
expected-value: /home/sapientech/Dev/guix/guix_wip/guix/base32.scm
actual-value: /home/sapientech/Dev/guix/guix_wip/guix/base32.scm
result: PASS

test-name: local-file, #:select?
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:145
source:
+ (test-assert
+   "local-file, #:select?"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((select?
+               ->
+               (lambda (file stat)
+                 (member
+                   (basename file)
+                   '("guix.scm" "tests" "gexp.scm"))))
+             (file ->
+                   (local-file
+                     ".."
+                     "directory"
+                     #:recursive?
+                     #t
+                     #:select?
+                     select?))
+             (dir (lower-object file)))
+            (return
+              (and (store-path? dir)
+                   (equal?
+                     (scandir dir)
+                     '("." ".." "guix.scm" "tests"))
+                   (equal?
+                     (scandir (string-append dir "/tests"))
+                     '("." ".." "gexp.scm")))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: one plain file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:160
source:
+ (test-assert
+   "one plain file"
+   (let* ((file (plain-file "hi" "Hello, world!"))
+          (exp (gexp (display (ungexp file))))
+          (expected
+            (add-text-to-store %store "hi" "Hello, world!")))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x file)))
+          (equal? `(display ,expected) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: same input twice
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:170
source:
+ (test-assert
+   "same input twice"
+   (let ((exp (gexp (begin
+                      (display (ungexp coreutils))
+                      (display (ungexp coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (let ((e `(display
+                      ,(derivation->output-path
+                         (package-derivation %store coreutils)))))
+            (equal? `(begin ,e ,e) (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: two input packages, one derivation, one file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:182
source:
+ (test-assert
+   "two input packages, one derivation, one file"
+   (let* ((drv (build-expression->derivation
+                 %store
+                 "foo"
+                 'bar
+                 #:guile-for-build
+                 (package-derivation %store %bootstrap-guile)))
+          (txt (add-text-to-store %store "foo" "Hello, world!"))
+          (exp (gexp (begin
+                       (display (ungexp coreutils))
+                       (display (ungexp %bootstrap-guile))
+                       (display (ungexp drv))
+                       (display (ungexp txt))))))
+     (define (match-input thing)
+       (match-lambda
+         ((drv-or-pkg _ ...) (eq? thing drv-or-pkg))))
+     (and (gexp? exp)
+          (= 4 (length (gexp-inputs exp)))
+          (every (lambda (input)
+                   (find (match-input input) (gexp-inputs exp)))
+                 (list drv coreutils %bootstrap-guile txt))
+          (let ((e0 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store coreutils))))
+                (e1 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store %bootstrap-guile))))
+                (e2 `(display ,(derivation->output-path drv)))
+                (e3 `(display ,txt)))
+            (equal?
+              `(begin ,e0 ,e1 ,e2 ,e3)
+              (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:210
source:
+ (test-assert
+   "ungexp + ungexp-native"
+   (let* ((exp (gexp (list (ungexp-native %bootstrap-guile)
+                           (ungexp coreutils)
+                           (ungexp-native glibc)
+                           (ungexp binutils))))
+          (target "mips64el-linux")
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-cross-derivation
+                  %store
+                  coreutils
+                  target)))
+          (libc (derivation->output-path
+                  (package-derivation %store glibc)))
+          (bu (derivation->output-path
+                (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,glibc "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,coreutils "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(list ,guile ,cu ,libc ,bu)
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native, nested
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:233
source:
+ (test-equal
+   "ungexp + ungexp-native, nested"
+   (list `((,%bootstrap-guile "out"))
+         '<>
+         `((,coreutils "out")))
+   (let* ((exp (gexp (list (ungexp-native (gexp (ungexp coreutils)))
+                           (ungexp %bootstrap-guile)))))
+     (list (gexp-inputs exp)
+           '<>
+           (gexp-native-inputs exp))))
expected-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:277 1eab0c0> out)) <> ((#<package coreutils@8.24 gnu/packages/base.scm:244 2f1cf00> out)))
actual-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:277 1eab0c0> out)) <> ((#<package coreutils@8.24 gnu/packages/base.scm:244 2f1cf00> out)))
result: PASS

test-name: input list
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:239
source:
+ (test-assert
+   "input list"
+   (let ((exp (gexp (display
+                      '(ungexp (list %bootstrap-guile coreutils)))))
+         (guile (derivation->output-path
+                  (package-derivation %store %bootstrap-guile)))
+         (cu (derivation->output-path
+               (package-derivation %store coreutils))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display '(,guile ,cu))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: input list + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:252
source:
+ (test-assert
+   "input list + ungexp-native"
+   (let* ((target "mips64el-linux")
+          (exp (gexp (display
+                       (cons '(ungexp-native
+                                (list %bootstrap-guile coreutils))
+                             '(ungexp (list glibc binutils))))))
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-derivation %store coreutils)))
+          (xlibc (derivation->output-path
+                   (package-cross-derivation %store glibc target)))
+          (xbu (derivation->output-path
+                 (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,glibc "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display (cons '(,guile ,cu) '(,xlibc ,xbu)))
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: input list splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:274
source:
+ (test-assert
+   "input list splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug")
+                  %bootstrap-guile))
+          (outputs
+            (list (derivation->output-path
+                    (package-derivation %store glibc)
+                    "debug")
+                  (derivation->output-path
+                    (package-derivation %store %bootstrap-guile))))
+          (exp (gexp (list (ungexp-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            `(list ,@(cons 5 outputs))))))
actual-value: #t
result: PASS

test-name: input list splicing + ungexp-native-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:288
source:
+ (test-assert
+   "input list splicing + ungexp-native-splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug")
+                  %bootstrap-guile))
+          (exp (gexp (list (ungexp-native-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-native-inputs exp))
+          (null? (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            (gexp->sexp* exp "mips64el-linux")))))
actual-value: #t
result: PASS

test-name: output list
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:298
source:
+ (test-equal
+   "output list"
+   2
+   (let ((exp (gexp (begin
+                      (mkdir (ungexp output))
+                      (mkdir (ungexp output "bar"))))))
+     (length (gexp-outputs exp))))
expected-value: 2
actual-value: 2
result: PASS

test-name: output list, combined gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:304
source:
+ (test-assert
+   "output list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp exp0)
+                        (ungexp exp1)))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: output list, combined gexps, duplicate output
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:313
source:
+ (test-equal
+   "output list, combined gexps, duplicate output"
+   1
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (begin (mkdir (ungexp output)) (ungexp exp0))))
+          (exp2 (gexp (begin (mkdir (ungexp output)) (ungexp exp1)))))
+     (length (gexp-outputs exp2))))
expected-value: 1
actual-value: 1
result: PASS

test-name: output list + ungexp-splicing list, combined gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:320
source:
+ (test-assert
+   "output list + ungexp-splicing list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp-splicing (list exp0 exp1))))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: gexp->file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:330
source:
+ (test-assert
+   "gexp->file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp ->
+                  (gexp (display (ungexp %bootstrap-guile))))
+             (guile (package-file %bootstrap-guile))
+             (sexp (gexp->sexp exp))
+             (drv (gexp->file "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (refs ((store-lift references) out)))
+            (return
+              (and (equal? sexp (call-with-input-file out read))
+                   (equal? (list guile) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
random seed for tests: 1469938558
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/br6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/br//6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/br6cmbmw2d0y578fhk2041nmjya1xbn3-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:341
source:
+ (test-assert
+   "gexp->derivation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file (text-file "foo" "Hello, world!"))
+             (exp ->
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink
+                            (string-append
+                              (ungexp %bootstrap-guile)
+                              "/bin/guile")
+                            "foo")
+                          (symlink (ungexp file) (ungexp output "2nd")))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (out2 -> (derivation->output-path drv "2nd"))
+             (done (built-derivations (list drv)))
+             (refs ((store-lift references) out))
+             (refs2 ((store-lift references) out2))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (and (string=?
+                     (readlink (string-append out "/foo"))
+                     guile)
+                   (string=? (readlink out2) file)
+                   (equal? refs (list (dirname (dirname guile))))
+                   (equal? refs2 (list file)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/zmhmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/zm//hmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv.bz2
warning: rewriting hashes in `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/pysmjhfk9v7lfq97asqxzn1fxk5rqykr-foo'; cross fingers
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/zmhmw968wgivsjlvw5qw3l2xlq5icaz6-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation vs. grafts
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:365
source:
+ (test-assert
+   "gexp->derivation vs. grafts"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((graft? (set-grafting #f))
+             (p0 ->
+                 (dummy-package
+                   "dummy"
+                   (arguments '(#:implicit-inputs? #f))))
+             (r -> (package (inherit p0) (name "DuMMY")))
+             (p1 -> (package (inherit p0) (replacement r)))
+             (exp0 ->
+                   (gexp (frob (ungexp p0) (ungexp output))))
+             (exp1 ->
+                   (gexp (frob (ungexp p1) (ungexp output))))
+             (void (set-guile-for-build %bootstrap-guile))
+             (drv0 (gexp->derivation "t" exp0 #:graft? #t))
+             (drv1 (gexp->derivation "t" exp1 #:graft? #t))
+             (drv1* (gexp->derivation "t" exp1 #:graft? #f))
+             (_ (set-grafting graft?)))
+            (return
+              (and (not (string=?
+                          (derivation->output-path drv0)
+                          (derivation->output-path drv1)))
+                   (string=?
+                     (derivation->output-path drv0)
+                     (derivation->output-path drv1*)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, composed gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:384
source:
+ (test-assert
+   "gexp->derivation, composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp0 ->
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output)))))
+             (exp1 ->
+                   (gexp (symlink
+                           (string-append
+                             (ungexp %bootstrap-guile)
+                             "/bin/guile")
+                           "foo")))
+             (exp ->
+                  (gexp (begin (ungexp exp0) (ungexp exp1))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (string=?
+                (readlink (string-append out "/foo"))
+                guile)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d7a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/d7//a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/d7a8qlyp2svnz3ayq1g38bx4lcymb4h6-foo.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation, default system
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:400
source:
+ (test-assert
+   "gexp->derivation, default system"
+   (run-with-store
+     %store
+     (let ((system (%current-system))
+           (mdrv (parameterize
+                   ((%current-system "foobar64-linux"))
+                   (gexp->derivation
+                     "foo"
+                     (gexp (mkdir (ungexp output)))))))
+       (mlet %store-monad
+             ((drv mdrv))
+             (return
+               (string=? system (derivation-system drv)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, local-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:411
source:
+ (test-assert
+   "gexp->derivation, local-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file -> (search-path %load-path "guix.scm"))
+             (intd (interned-file file #:recursive? #f))
+             (local -> (local-file file))
+             (exp ->
+                  (gexp (begin
+                          (stat (ungexp local))
+                          (symlink (ungexp local) (ungexp output)))))
+             (drv (gexp->derivation "local-file" exp)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (return
+                (string=?
+                  (readlink (derivation->output-path drv))
+                  intd))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, cross-compilation
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:425
source:
+ (test-assert
+   "gexp->derivation, cross-compilation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs ((store-lift references)
+                    (derivation-file-name xdrv)))
+             (xcu (package->cross-derivation coreutils target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name xcu) refs)
+                   (not (member (derivation-file-name cu) refs)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:439
source:
+ (test-assert
+   "gexp->derivation, ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp + ungexp-native
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:449
source:
+ (test-assert
+   "gexp->derivation, ungexp + ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils)
+                              (ungexp glibc)
+                              (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs ((store-lift references)
+                    (derivation-file-name xdrv)))
+             (xglibc (package->cross-derivation glibc target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name cu) refs)
+                   (member (derivation-file-name xglibc) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: (/home/sapientech/Dev/guix/guix_wip/test-tmp/store/izq9lrpv4z9xaaslk79ayidcv5lisn90-glibc-2.22.drv /home/sapientech/Dev/guix/guix_wip/test-tmp/store/sajnfz79nhdi4l8a464c9hhv4vf0gay2-coreutils-8.24.drv)
result: PASS

test-name: gexp->derivation, ungexp-native + composed gexps
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:463
source:
+ (test-assert
+   "gexp->derivation, ungexp-native + composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp0 -> (gexp (list 1 2 (ungexp coreutils))))
+             (exp -> (gexp (list 0 (ungexp-native exp0))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, store copy
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:474
source:
+ (test-assert
+   "gexp->derivation, store copy"
+   (run-with-store
+     %store
+     (let ((build-one
+             (gexp (call-with-output-file
+                     (ungexp output)
+                     (lambda (port) (display "This is the one." port)))))
+           (build-two
+             (lambda (one)
+               (gexp (begin
+                       (mkdir (ungexp output))
+                       (symlink
+                         (ungexp one)
+                         (string-append (ungexp output) "/one"))
+                       (call-with-output-file
+                         (string-append (ungexp output) "/two")
+                         (lambda (port)
+                           (display "This is the second one." port)))))))
+           (build-drv
+             (gexp (begin
+                     (use-modules (guix build store-copy))
+                     (mkdir (ungexp output))
+                     (populate-store '("graph") (ungexp output))))))
+       (mlet* %store-monad
+              ((one (gexp->derivation "one" build-one))
+               (two (gexp->derivation "two" (build-two one)))
+               (drv (gexp->derivation
+                      "store-copy"
+                      build-drv
+                      #:references-graphs
+                      `(("graph" ,two))
+                      #:modules
+                      '((guix build store-copy) (guix build utils))))
+               (ok? (built-derivations (list drv)))
+               (out -> (derivation->output-path drv)))
+              (let ((one (derivation->output-path one))
+                    (two (derivation->output-path two)))
+                (return
+                  (and ok?
+                       (file-exists? (string-append out "/" one))
+                       (file-exists? (string-append out "/" two))
+                       (file-exists? (string-append out "/" two "/two"))
+                       (string=?
+                         (readlink (string-append out "/" two "/one"))
+                         one))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: imported-files
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:509
source:
+ (test-assert
+   "imported-files"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((files ->
+                    `(("x"
+                       unquote
+                       (search-path %load-path "ice-9/q.scm"))
+                      ("a/b/c"
+                       unquote
+                       (search-path %load-path "guix/derivations.scm"))
+                      ("p/q"
+                       unquote
+                       (search-path %load-path "guix.scm"))
+                      ("p/z"
+                       unquote
+                       (search-path %load-path "guix/store.scm"))))
+             (drv (imported-files files)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let ((dir (derivation->output-path drv)))
+                (return
+                  (every (match-lambda
+                           ((path . source)
+                            (equal?
+                              (call-with-input-file
+                                (string-append dir "/" path)
+                                get-bytevector-all)
+                              (call-with-input-file
+                                source
+                                get-bytevector-all))))
+                         files)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp-modules & ungexp
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:529
source:
+ (test-equal
+   "gexp-modules & ungexp"
+   '((bar) (foo))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp
+                 (with-imported-modules '((foo)) (gexp +)))
+               (ungexp-native
+                 (with-imported-modules '((bar)) (gexp -)))))))
expected-value: ((bar) (foo))
actual-value: ((bar) (foo))
result: PASS

test-name: gexp-modules & ungexp-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:535
source:
+ (test-equal
+   "gexp-modules & ungexp-splicing"
+   '((foo) (bar))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp-splicing
+                 (list (with-imported-modules '((foo)) (gexp +))
+                       (with-imported-modules '((bar)) (gexp -))))))))
expected-value: ((foo) (bar))
actual-value: ((foo) (bar))
result: PASS

test-name: gexp->derivation #:modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:541
source:
+ (test-assert
+   "gexp->derivation #:modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (gexp (begin
+                            (use-modules (guix build utils))
+                            (mkdir-p
+                              (string-append
+                                (ungexp output)
+                                "/guile/guix/nix"))
+                            #t)))
+             (drv (gexp->derivation
+                    "test-with-modules"
+                    build
+                    #:modules
+                    '((guix build utils)))))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & with-imported-modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:555
source:
+ (test-assert
+   "gexp->derivation & with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (with-imported-modules
+                      '((guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build utils))
+                              (mkdir-p
+                                (string-append
+                                  (ungexp output)
+                                  "/guile/guix/nix"))
+                              #t))))
+             (drv (gexp->derivation "test-with-modules" build)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & nested with-imported-modules
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:570
source:
+ (test-assert
+   "gexp->derivation & nested with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build1
+               ->
+               (with-imported-modules
+                 '((guix build utils))
+                 (gexp (begin
+                         (use-modules (guix build utils))
+                         (mkdir-p
+                           (string-append (ungexp output) "/guile/guix/nix"))
+                         #t))))
+             (build2
+               ->
+               (with-imported-modules
+                 '((guix build bournish))
+                 (gexp (begin
+                         (use-modules
+                           (guix build bournish)
+                           (system base compile))
+                         (ungexp-native build1)
+                         (call-with-output-file
+                           (string-append (ungexp output) "/b")
+                           (lambda (port)
+                             (write (read-and-compile
+                                      (open-input-string "cd /foo")
+                                      #:from
+                                      %bournish-language
+                                      #:to
+                                      'scheme)
+                                    port)))))))
+             (drv (gexp->derivation "test-with-modules" build2)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix")))
+                     (b (string-append p "/b")))
+                (return
+                  (and (eq? (stat:type s) 'directory)
+                       (equal?
+                         '(chdir "/foo")
+                         (call-with-input-file b read)))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:references-graphs
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:599
source:
+ (test-assert
+   "gexp->derivation #:references-graphs"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((one (text-file "one" (random-text)))
+             (two (gexp->derivation
+                    "two"
+                    (gexp (symlink (ungexp one) (ungexp output "chbouib")))))
+             (build ->
+                    (with-imported-modules
+                      '((guix build store-copy) (guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build store-copy))
+                              (with-output-to-file
+                                (ungexp output)
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "guile"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "one")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "one"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "two")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "two"
+                                           read-reference-graph))))))))
+             (drv (gexp->derivation
+                    "ref-graphs"
+                    build
+                    #:references-graphs
+                    `(("one" ,one)
+                      ("two" ,two "chbouib")
+                      ("guile" ,%bootstrap-guile))))
+             (ok? (built-derivations (list drv)))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (bash (interned-file
+                     (search-bootstrap-binary
+                       "bash"
+                       (%current-system))
+                     "bash"
+                     #:recursive?
+                     #t))
+             (g-one -> (derivation->output-path drv "one"))
+             (g-two -> (derivation->output-path drv "two"))
+             (g-guile -> (derivation->output-path drv)))
+            (return
+              (and ok?
+                   (equal?
+                     (call-with-input-file g-one read)
+                     (list one))
+                   (lset= string=?
+                          (call-with-input-file g-two read)
+                          (list one
+                                (derivation->output-path two "chbouib")))
+                   (lset= string=?
+                          (call-with-input-file g-guile read)
+                          (list (derivation->output-path guile-drv) bash)))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/gnc6nwd3yi5vdbldw4xvb21hyqypj2qk-two.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/gn//c6nwd3yi5vdbldw4xvb21hyqypj2qk-two.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/gnc6nwd3yi5vdbldw4xvb21hyqypj2qk-two.drv -
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/drinqd82fbs5xmay5xii7lgivxl6bb1a-ref-graphs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/dr//inqd82fbs5xmay5xii7lgivxl6bb1a-ref-graphs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/drinqd82fbs5xmay5xii7lgivxl6bb1a-ref-graphs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:643
source:
+ (test-assert
+   "gexp->derivation #:allowed-references"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "allowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:allowed-references
+                   (list "out" %bootstrap-guile))))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qr3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/qr//3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/qr3plan0zxv637d52f8kg7picirmdmmc-allowed-refs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, specific output
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:655
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, specific output"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((in (gexp->derivation
+                   "thing"
+                   (gexp (begin
+                           (mkdir (ungexp output "ok"))
+                           (mkdir (ungexp output "not-ok"))))))
+             (drv (gexp->derivation
+                    "allowed-refs"
+                    (gexp (begin
+                            (pk (ungexp in "not-ok"))
+                            (mkdir (ungexp output))
+                            (chdir (ungexp output))
+                            (symlink (ungexp output) "self")
+                            (symlink (ungexp in "ok") "ok")))
+                    #:allowed-references
+                    (list "out" (gexp-input in "ok")))))
+            (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, disallowed
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:672
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, disallowed"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "allowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:allowed-references
+                  '()))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/f2wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/f2//wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv.bz2
output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/ilzqy6rrlwdwsa939k1z5maipa1g202i-allowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/f2wbs6skpgnmljv4cddzx05gcx26b6n5-allowed-refs.drv - 1 output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/ilzqy6rrlwdwsa939k1z5maipa1g202i-allowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references, allowed
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:684
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references, allowed"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "disallowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:disallowed-references
+                   '())))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n3hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/n3//hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/n3hhcjzignj7czh53scbwjm7mcxa27yk-disallowed-refs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:696
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "disallowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:disallowed-references
+                  (list %bootstrap-guile)))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/y6h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/y6//h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv.bz2
output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/jz1q32n6qxyvi6dkywl028y6fvdfsi1k-disallowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
@ build-failed /home/sapientech/Dev/guix/guix_wip/test-tmp/store/y6h6i2d0vb4whn8bfvyl5vff17h9rs19-disallowed-refs.drv - 1 output (`/home/sapientech/Dev/guix/guix_wip/test-tmp/store/jz1q32n6qxyvi6dkywl028y6fvdfsi1k-disallowed-refs') is not allowed to refer to path `/home/sapientech/Dev/guix/guix_wip/test-tmp/store/0vxgvlx03qscrds88s65hrs70n5jkw2g-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->script
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:716
source:
+ (test-assert
+   "gexp->script"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((n -> (random (expt 2 50)))
+             (exp ->
+                  (gexp (system*
+                          (string-append
+                            (ungexp %bootstrap-guile)
+                            "/bin/guile")
+                          "-c"
+                          (object->string '(display (expt (ungexp n) 2))))))
+             (drv (gexp->script
+                    "guile-thing"
+                    exp
+                    #:guile
+                    %bootstrap-guile))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv))))
+            (let* ((pipe (open-input-pipe out))
+                   (str (get-string-all pipe)))
+              (return
+                (and (zero? (close-pipe pipe))
+                     (= (expt n 2) (string->number str))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: program-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:733
source:
+ (test-assert
+   "program-file"
+   (run-with-store
+     %store
+     (let* ((n (random (expt 2 50)))
+            (exp (with-imported-modules
+                   '((guix build utils))
+                   (gexp (begin
+                           (use-modules (guix build utils))
+                           (display (ungexp n))))))
+            (file (program-file
+                    "program"
+                    exp
+                    #:guile
+                    %bootstrap-guile)))
+       (mlet* %store-monad
+              ((drv (lower-object file))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (let* ((pipe (open-input-pipe out))
+                       (str (get-string-all pipe)))
+                  (return
+                    (and (zero? (close-pipe pipe))
+                         (= n (string->number str))))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: scheme-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:750
source:
+ (test-assert
+   "scheme-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello, world!"))
+            (scheme
+              (scheme-file
+                "bar"
+                (gexp (list "foo" (ungexp text))))))
+       (mlet* %store-monad
+              ((drv (lower-object scheme))
+               (text (lower-object text))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (mlet %store-monad
+                      ((refs ((store-lift references) out)))
+                      (return
+                        (and (equal? refs (list text))
+                             (equal?
+                               `(list "foo" ,text)
+                               (call-with-input-file out read))))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: text-file*
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:763
source:
+ (test-assert
+   "text-file*"
+   (let ((references (store-lift references)))
+     (run-with-store
+       %store
+       (mlet* %store-monad
+              ((drv (package->derivation %bootstrap-guile))
+               (guile -> (derivation->output-path drv))
+               (file (text-file "bar" "This is bar."))
+               (text (text-file*
+                       "foo"
+                       %bootstrap-guile
+                       "/bin/guile "
+                       (gexp-input %bootstrap-guile "out")
+                       "/bin/guile "
+                       drv
+                       "/bin/guile "
+                       file))
+               (done (built-derivations (list text)))
+               (out -> (derivation->output-path text))
+               (refs (references out)))
+              (return
+                (and (lset= string=? refs (list guile file))
+                     (equal?
+                       (call-with-input-file out get-string-all)
+                       (string-append
+                         guile
+                         "/bin/guile "
+                         guile
+                         "/bin/guile "
+                         guile
+                         "/bin/guile "
+                         file)))))
+       #:guile-for-build
+       (package-derivation %store %bootstrap-guile))))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hkndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/hk//ndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/hkndxm5i5l1zczbiavqbk84qrdmilz6g-foo.drv -
actual-value: #t
result: PASS

test-name: mixed-text-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:787
source:
+ (test-assert
+   "mixed-text-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file ->
+                   (mixed-text-file
+                     "mixed"
+                     "export PATH="
+                     %bootstrap-guile
+                     "/bin"))
+             (drv (lower-object file))
+             (out -> (derivation->output-path drv))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (guile -> (derivation->output-path guile-drv)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (mlet %store-monad
+                    ((refs ((store-lift references) out)))
+                    (return
+                      (and (string=?
+                             (string-append "export PATH=" guile "/bin")
+                             (call-with-input-file out get-string-all))
+                           (equal? refs (list guile)))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h3cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/h3//cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/h3cn1cfdzpsbzn9cyfg47jbs8744gmwf-mixed.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation vs. %current-target-system
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:802
source:
+ (test-assert
+   "gexp->derivation vs. %current-target-system"
+   (let ((mval (gexp->derivation
+                 "foo"
+                 (gexp (begin
+                         (mkdir (ungexp output))
+                         (foo (ungexp-native gnu-make))))
+                 #:target
+                 #f)))
+     (parameterize
+       ((%current-target-system "fooooo"))
+       (derivation? (run-with-store %store mval)))))
actual-value: #t
result: PASS

test-name: lower-object
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:813
source:
+ (test-assert
+   "lower-object"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv1 (lower-object %bootstrap-guile))
+            (drv2 (lower-object (package-source coreutils)))
+            (item (lower-object (plain-file "foo" "Hello!"))))
+           (return
+             (and (derivation? drv1)
+                  (derivation? drv2)
+                  (store-path? item))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: lower-object, computed-file
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:820
source:
+ (test-assert
+   "lower-object, computed-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello!"))
+            (exp (gexp (begin
+                         (mkdir (ungexp output))
+                         (symlink
+                           (ungexp %bootstrap-guile)
+                           (string-append (ungexp output) "/guile"))
+                         (symlink
+                           (ungexp text)
+                           (string-append (ungexp output) "/text")))))
+            (computed (computed-file "computed" exp)))
+       (mlet* %store-monad
+              ((text (lower-object text))
+               (guile-drv (lower-object %bootstrap-guile))
+               (comp-drv (lower-object computed))
+               (comp -> (derivation->output-path comp-drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list comp-drv))
+                (return
+                  (and (string=?
+                         (readlink (string-append comp "/guile"))
+                         (derivation->output-path guile-drv))
+                       (string=?
+                         (readlink (string-append comp "/text"))
+                         text))))))
+     #:guile-for-build
+     (%guile-for-build)))
@ build-started /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fdhli6nzdk7643skliaca0flzvrf2xx8-computed.drv - x86_64-linux /home/sapientech/Dev/guix/guix_wip/test-tmp/var/log/guix/drvs/fd//hli6nzdk7643skliaca0flzvrf2xx8-computed.drv.bz2
@ build-succeeded /home/sapientech/Dev/guix/guix_wip/test-tmp/store/fdhli6nzdk7643skliaca0flzvrf2xx8-computed.drv -
actual-value: #t
result: PASS

test-name: printer
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:839
source:
+ (test-assert
+   "printer"
+   (string-match
+     "^#<gexp \\(string-append .*#<package coreutils.* \"/bin/uname\"\\) [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (string-append (ungexp coreutils) "/bin/uname")))))))
actual-value: #(#<gexp (string-append #<gexp-input #<package coreutils@8.24 gnu/packages/base.scm:244 2f1cf00>:out> "/bin/uname") 5c2f630> (0 . 122))
result: PASS

test-name: printer vs. ungexp-splicing
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:848
source:
+ (test-assert
+   "printer vs. ungexp-splicing"
+   (string-match
+     "^#<gexp .* [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (begin (ungexp-splicing (gexp ())))))))))
actual-value: #(#<gexp  58dc150> (0 . 16))
result: PASS

test-name: sugar
location: /home/sapientech/Dev/guix/guix_wip/tests/gexp.scm:856
source:
+ (test-equal
+   "sugar"
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z))))
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z)))))
expected-value: (gexp (foo (ungexp bar) (ungexp baz out) (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo out) (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
actual-value: (gexp (foo (ungexp bar) (ungexp baz out) (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo out) (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
result: PASS


SKIP: tests/syscalls
====================

test-name: mount, ENOENT
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:38
source:
+ (test-equal
+   "mount, ENOENT"
+   ENOENT
+   (catch 'system-error
+          (lambda ()
+            (mount "/dev/null" "/does-not-exist" "ext2")
+            #f)
+          (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS

test-name: umount, ENOENT/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:46
source:
+ (test-assert
+   "umount, ENOENT/EPERM"
+   (catch 'system-error
+          (lambda () (umount "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS

test-name: mount-points
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:55
source:
+ (test-assert
+   "mount-points"
+   (any (cute member <> (mount-points))
+        '("/" "/proc" "/sys" "/dev")))
actual-value: (/ /sys/kernel/security /dev/shm /dev/pts /sys/fs/cgroup /sys/fs/cgroup/systemd /sys/fs/pstore /sys/fs/cgroup/freezer /sys/fs/cgroup/cpuset /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/blkio /sys/fs/cgroup/memory /sys/fs/cgroup/net_cls /sys/fs/cgroup/pids /sys/fs/cgroup/devices /proc/sys/fs/binfmt_misc /dev/mqueue /sys/kernel/debug /dev/hugepages /sys/kernel/config /tmp /run/user/1000)
result: PASS

test-name: swapon, ENOENT/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:61
source:
+ (test-assert
+   "swapon, ENOENT/EPERM"
+   (catch 'system-error
+          (lambda () (swapon "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS

test-name: swapoff, ENOENT/EINVAL/EPERM
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:69
source:
+ (test-assert
+   "swapoff, ENOENT/EINVAL/EPERM"
+   (catch 'system-error
+          (lambda () (swapoff "/does-not-exist") #f)
+          (lambda args
+            (memv (system-error-errno args)
+                  (list EPERM EINVAL ENOENT)))))
actual-value: (1 22 2)
result: PASS

test-name: mkdtemp!
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:77
source:
+ (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))))
actual-value: #t
result: PASS

test-name: statfs, ENOENT
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:85
source:
+ (test-equal
+   "statfs, ENOENT"
+   ENOENT
+   (catch 'system-error
+          (lambda () (statfs "/does-not-exist"))
+          (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS

test-name: statfs
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:92
source:
+ (test-assert
+   "statfs"
+   (let ((fs (statfs "/")))
+     (and (file-system? fs)
+          (> (file-system-block-size fs) 0)
+          (>= (file-system-blocks-available fs) 0)
+          (>= (file-system-blocks-free fs)
+              (file-system-blocks-available fs)))))
actual-value: #t
result: PASS

test-name: clone
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
source:
+ (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))))))))
result: SKIP

test-name: setns
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:122
source:
+ (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 '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))))))))
result: SKIP

test-name: pivot-root
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:151
source:
+ (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))))))))
result: SKIP

test-name: fcntl-flock wait
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:180
source:
+ (test-equal
+   "fcntl-flock wait"
+   42
+   (let ((file (open-file temp-file "w0b")))
+     (fcntl-flock file 'write-lock)
+     (match (primitive-fork)
+            (0
+             (dynamic-wind
+               (const #t)
+               (lambda ()
+                 (let ((file (open-file temp-file "r0b")))
+                   (fcntl-flock file 'read-lock)
+                   (primitive-exit (read file)))
+                 (primitive-exit 1))
+               (lambda () (primitive-exit 2))))
+            (pid (display "hello, world!" file)
+                 (force-output file)
+                 (sleep 1)
+                 (seek file 0 SEEK_SET)
+                 (truncate-file file 0)
+                 (write 42 file)
+                 (force-output file)
+                 (fcntl-flock file 'unlock)
+                 (match (waitpid pid)
+                        ((_ . status)
+                         (let ((result (status:exit-val status)))
+                           (close-port file)
+                           result)))))))
expected-value: 42
actual-value: 42
result: PASS

test-name: fcntl-flock non-blocking
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:219
source:
+ (test-equal
+   "fcntl-flock non-blocking"
+   EAGAIN
+   (match (pipe)
+          ((input . output)
+           (match (primitive-fork)
+                  (0
+                   (dynamic-wind
+                     (const #t)
+                     (lambda ()
+                       (close-port output)
+                       (read-char input)
+                       (let ((file (open-file temp-file "w0")))
+                         (catch 'flock-error
+                                (lambda ()
+                                  (fcntl-flock file 'write-lock #:wait? #f))
+                                (lambda (key errno)
+                                  (primitive-exit (pk 'errno errno)))))
+                       (primitive-exit -1))
+                     (lambda () (primitive-exit -2))))
+                  (pid (close-port input)
+                       (let ((file (open-file temp-file "w0")))
+                         (fcntl-flock file 'write-lock)
+                         (write 'green-light output)
+                         (force-output output)
+                         (match (waitpid pid)
+                                ((_ . status)
+                                 (let ((result (status:exit-val status)))
+                                   (fcntl-flock file 'unlock)
+                                   (close-port file)
+                                   result)))))))))

;;; (errno 11)
expected-value: 11
actual-value: 11
result: PASS

test-name: all-network-interface-names
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:261
source:
+ (test-assert
+   "all-network-interface-names"
+   (match (all-network-interface-names)
+          (((? string? names) ..1) (member "lo" names))))
actual-value: (lo enp0s25 wlp2s0)
result: PASS

test-name: network-interface-names
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:266
source:
+ (test-assert
+   "network-interface-names"
+   (match (network-interface-names)
+          (((? string? names) ..1)
+           (lset<=
+             string=?
+             names
+             (all-network-interface-names)))))
actual-value: #t
result: PASS

test-name: network-interface-flags
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:271
source:
+ (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))))))
actual-value: #t
result: PASS

test-name: loopback-network-interface?
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:278
source:
+ (test-equal
+   "loopback-network-interface?"
+   ENODEV
+   (and (loopback-network-interface? "lo")
+        (catch 'system-error
+               (lambda ()
+                 (loopback-network-interface? "nonexistent")
+                 #f)
+               (lambda args (system-error-errno args)))))
expected-value: 19
actual-value: 19
result: PASS

test-name: set-network-interface-flags
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:289
source:
+ (test-assert
+   "set-network-interface-flags"
+   (let ((sock (socket AF_INET SOCK_STREAM 0)))
+     (catch 'system-error
+            (lambda ()
+              (set-network-interface-flags sock "lo" IFF_UP))
+            (lambda args
+              (close-port sock)
+              (memv (system-error-errno args)
+                    (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS

test-name: network-interface-address lo
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:299
source:
+ (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))
expected-value: #(2 2130706433 0)
actual-value: #(2 2130706433 0)
result: PASS

test-name: set-network-interface-address
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:307
source:
+ (test-assert
+   "set-network-interface-address"
+   (let ((sock (socket AF_INET SOCK_STREAM 0)))
+     (catch '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))))))
actual-value: (1 13)
result: PASS

test-name: network-interfaces returns one or more interfaces
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:321
source:
+ (test-equal
+   "network-interfaces returns one or more interfaces"
+   '(#t #t #t)
+   (match (network-interfaces)
+          ((interfaces ..1)
+           (list (every interface? interfaces)
+                 (every string? (map interface-name interfaces))
+                 (every (lambda (sockaddr)
+                          (or (vector? sockaddr) (not sockaddr)))
+                        (map interface-address interfaces))))))
expected-value: (#t #t #t)
actual-value: (#t #t #t)
result: PASS

test-name: network-interfaces returns "lo"
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:333
source:
+ (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)))))))
expected-value: (#t #(2 2130706433 0))
actual-value: (#t #(2 2130706433 0))
result: PASS

test-name: tcgetattr ENOTTY
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:348
source:
+ (test-equal
+   "tcgetattr ENOTTY"
+   ENOTTY
+   (catch 'system-error
+          (lambda ()
+            (call-with-input-file
+              "/dev/null"
+              (lambda (port) (tcgetattr (fileno port)))))
+          (compose system-error-errno list)))
expected-value: 25
actual-value: 25
result: PASS

test-name: tcgetattr
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:362
source:
+ (test-assert
+   "tcgetattr"
+   (let ((termios (tcgetattr 0)))
+     (and (termios? termios)
+          (> (termios-input-speed termios) 0)
+          (> (termios-output-speed termios) 0))))
actual-value: #t
result: PASS

test-name: tcsetattr
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:368
source:
+ (test-assert
+   "tcsetattr"
+   (let ((first (tcgetattr 0)))
+     (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+     (equal? first (tcgetattr 0))))
actual-value: #t
result: PASS

test-name: terminal-window-size ENOTTY
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:373
source:
+ (test-assert
+   "terminal-window-size ENOTTY"
+   (call-with-input-file
+     "/dev/null"
+     (lambda (port)
+       (catch 'system-error
+              (lambda () (terminal-window-size port))
+              (lambda args
+                (memv (system-error-errno args)
+                      (list ENOTTY EINVAL)))))))
actual-value: (25 22)
result: PASS

test-name: terminal-columns
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:384
source:
+ (test-assert
+   "terminal-columns"
+   (> (terminal-columns) 0))
actual-value: #t
result: PASS

test-name: terminal-columns non-file port
location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:387
source:
+ (test-assert
+   "terminal-columns non-file port"
+   (> (terminal-columns
+        (open-input-string
+          "Join us now, share the software!"))
+      0))
actual-value: #t
result: PASS


SKIP: tests/gremlin
===================

test-name: elf-dynamic-info-needed, executable
location: /home/sapientech/Dev/guix/guix_wip/tests/gremlin.scm:44
source:
+ (test-assert
+   "elf-dynamic-info-needed, executable"
+   (let* ((elf (call-with-input-file %guile-executable read-elf))
+          (dyninfo (elf-dynamic-info elf)))
+     (or (not dyninfo)
+         (lset<=
+           string=?
+           (list (string-append "libguile-" (effective-version))
+                 "libgc"
+                 "libunistring"
+                 "libffi")
+           (map (lambda (lib)
+                  (string-take lib (string-contains lib ".so")))
+                (elf-dynamic-info-needed dyninfo))))))
result: SKIP

test-name: expand-origin
location: /home/sapientech/Dev/guix/guix_wip/tests/gremlin.scm:55
source:
+ (test-equal
+   "expand-origin"
+   '("OOO/../lib"
+     "OOO"
+     "../OOO/bar/OOO/baz"
+     "ORIGIN/foo")
+   (map (cut expand-origin <> "OOO")
+        '("$ORIGIN/../lib"
+          "${ORIGIN}"
+          "../${ORIGIN}/bar/$ORIGIN/baz"
+          "ORIGIN/foo")))
expected-value: (OOO/../lib OOO ../OOO/bar/OOO/baz ORIGIN/foo)
actual-value: (OOO/../lib OOO ../OOO/bar/OOO/baz ORIGIN/foo)
result: PASS


FAIL: tests/lint
================

test-name: description: not a string
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:145
source:
+ (test-assert
+   "description: not a string"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (description 'foobar))))
+           (check-description-style pkg)))
+       "invalid description")))
actual-value: #t
result: PASS

test-name: description: not empty
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:153
source:
+ (test-assert
+   "description: not empty"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (description ""))))
+           (check-description-style pkg)))
+       "description should not be empty")))
actual-value: #t
result: PASS

test-name: description: valid Texinfo markup
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:161
source:
+ (test-assert
+   "description: valid Texinfo markup"
+   (->bool
+     (string-contains
+       (with-warnings
+         (check-description-style
+           (dummy-package "x" (description "f{oo}b@r"))))
+       "Texinfo markup in description is invalid")))
actual-value: #t
result: PASS

test-name: description: does not start with an upper-case letter
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:168
source:
+ (test-assert
+   "description: does not start with an upper-case letter"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (description "bad description."))))
+           (check-description-style pkg)))
+       "description should start with an upper-case letter")))
actual-value: #t
result: PASS

test-name: description: may start with a digit
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:176
source:
+ (test-assert
+   "description: may start with a digit"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description "2-component library."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: description: may start with lower-case package name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:183
source:
+ (test-assert
+   "description: may start with lower-case package name"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description "x is a dummy package."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: description: two spaces after end of sentence
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:190
source:
+ (test-assert
+   "description: two spaces after end of sentence"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (description "Bad. Quite bad."))))
+           (check-description-style pkg)))
+       "sentences in description should be followed by two spaces")))
actual-value: #t
result: PASS

test-name: description: end-of-sentence detection with abbreviations
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:198
source:
+ (test-assert
+   "description: end-of-sentence detection with abbreviations"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (description
+                      "E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD)."))))
+         (check-description-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: not a string
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:206
source:
+ (test-assert
+   "synopsis: not a string"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis #f))))
+           (check-synopsis-style pkg)))
+       "invalid synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: not empty
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:214
source:
+ (test-assert
+   "synopsis: not empty"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis ""))))
+           (check-synopsis-style pkg)))
+       "synopsis should not be empty")))
actual-value: #t
result: PASS

test-name: synopsis: does not start with an upper-case letter
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:222
source:
+ (test-assert
+   "synopsis: does not start with an upper-case letter"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "bad synopsis."))))
+           (check-synopsis-style pkg)))
+       "synopsis should start with an upper-case letter")))
actual-value: #t
result: PASS

test-name: synopsis: may start with a digit
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:230
source:
+ (test-assert
+   "synopsis: may start with a digit"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "x"
+                    (synopsis "5-dimensional frobnicator"))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: ends with a period
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:237
source:
+ (test-assert
+   "synopsis: ends with a period"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "Bad synopsis."))))
+           (check-synopsis-style pkg)))
+       "no period allowed at the end of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: ends with 'etc.'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:245
source:
+ (test-assert
+   "synopsis: ends with 'etc.'"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package "x" (synopsis "Foo, bar, etc."))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'A'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:251
source:
+ (test-assert
+   "synopsis: starts with 'A'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "A bad synop\u015dis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'An'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:259
source:
+ (test-assert
+   "synopsis: starts with 'An'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "An awful synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'a'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:267
source:
+ (test-assert
+   "synopsis: starts with 'a'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package "x" (synopsis "a bad synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: starts with 'an'
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:275
source:
+ (test-assert
+   "synopsis: starts with 'an'"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis "an awful synopsis"))))
+           (check-synopsis-style pkg)))
+       "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS

test-name: synopsis: too long
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:283
source:
+ (test-assert
+   "synopsis: too long"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (synopsis (make-string 80 #\x)))))
+           (check-synopsis-style pkg)))
+       "synopsis should be less than 80 characters long")))
actual-value: #t
result: PASS

test-name: synopsis: start with package name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:291
source:
+ (test-assert
+   "synopsis: start with package name"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (name "foo")
+                      (synopsis "foo, a nice package"))))
+           (check-synopsis-style pkg)))
+       "synopsis should not start with the package name")))
actual-value: #t
result: PASS

test-name: synopsis: start with package name prefix
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:300
source:
+ (test-assert
+   "synopsis: start with package name prefix"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "arb"
+                    (synopsis "Arbitrary precision"))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: synopsis: start with abbreviation
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:307
source:
+ (test-assert
+   "synopsis: start with abbreviation"
+   (string-null?
+     (with-warnings
+       (let ((pkg (dummy-package
+                    "uucp"
+                    (synopsis "UUCP implementation")
+                    (description "Imagine this is Taylor UUCP."))))
+         (check-synopsis-style pkg)))))
actual-value: #t
result: PASS

test-name: inputs: pkg-config is probably a native input
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:316
source:
+ (test-assert
+   "inputs: pkg-config is probably a native input"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (inputs `(("pkg-config" ,pkg-config))))))
+           (check-inputs-should-be-native pkg)))
+       "'pkg-config' should probably be a native input")))
actual-value: #t
result: PASS

test-name: inputs: glib:bin is probably a native input
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:325
source:
+ (test-assert
+   "inputs: glib:bin is probably a native input"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (inputs `(("glib" ,glib "bin"))))))
+           (check-inputs-should-be-native pkg)))
+       "'glib:bin' should probably be a native input")))
actual-value: #t
result: PASS

test-name: patches: file names
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:334
source:
+ (test-assert
+   "patches: file names"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (source
+                        (dummy-origin
+                          (patches (list "/path/to/y.patch")))))))
+           (check-patch-file-names pkg)))
+       "file names of patches should start with the package name")))
actual-value: #t
result: PASS

test-name: patches: not found
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:345
source:
+ (test-assert
+   "patches: not found"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (source
+                        (dummy-origin
+                          (patches
+                            (list (search-patch
+                                    "this-patch-does-not-exist!"))))))))
+           (check-patch-file-names pkg)))
+       "patch not found")))
actual-value: #t
result: PASS

test-name: derivation: invalid arguments
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:357
source:
+ (test-assert
+   "derivation: invalid arguments"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (arguments
+                        '(#:imported-modules (invalid-module))))))
+           (check-derivation pkg)))
+       "failed to create derivation")))
actual-value: #t
result: PASS

test-name: license: invalid license
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:367
source:
+ (test-assert
+   "license: invalid license"
+   (string-contains
+     (with-warnings
+       (check-license (dummy-package "x" (license #f))))
+     "invalid license"))
actual-value: 63
result: PASS

test-name: home-page: wrong home-page
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:373
source:
+ (test-assert
+   "home-page: wrong home-page"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page #f))))
+           (check-home-page pkg)))
+       "invalid")))
actual-value: #t
result: PASS

test-name: home-page: invalid URI
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:383
source:
+ (test-assert
+   "home-page: invalid URI"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page "foobar"))))
+           (check-home-page pkg)))
+       "invalid home page URL")))
actual-value: #t
result: PASS

test-name: home-page: host not found
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:393
source:
+ (test-assert
+   "home-page: host not found"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page "http://does-not-exist"))))
+           (check-home-page pkg)))
+       "domain not found")))
actual-value: #f
result: FAIL

test-name: home-page: Connection refused
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:404
source:
+ (test-assert
+   "home-page: Connection refused"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (package
+                      (inherit (dummy-package "x"))
+                      (home-page %local-url))))
+           (check-home-page pkg)))
+       "Connection refused")))
actual-value: #t
result: PASS

test-name: home-page: 200
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:415
source:
+ (test-equal
+   "home-page: 200"
+   ""
+   (with-warnings
+     (with-http-server
+       200
+       %long-string
+       (let ((pkg (package
+                    (inherit (dummy-package "x"))
+                    (home-page %local-url))))
+         (check-home-page pkg)))))
expected-value: 
actual-value: 
result: PASS

test-name: home-page: 200 but short length
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:425
source:
+ (test-assert
+   "home-page: 200 but short length"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           200
+           "This is too small."
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (home-page %local-url))))
+             (check-home-page pkg))))
+       "suspiciously small")))
actual-value: #t
result: PASS

test-name: home-page: 404
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:437
source:
+ (test-assert
+   "home-page: 404"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           404
+           %long-string
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (home-page %local-url))))
+             (check-home-page pkg))))
+       "not reachable: 404")))
actual-value: #t
result: PASS

test-name: source-file-name
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:448
source:
+ (test-assert
+   "source-file-name"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method url-fetch)
+                          (uri "http://www.example.com/3.2.1.tar.gz")
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: v prefix
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:462
source:
+ (test-assert
+   "source-file-name: v prefix"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method url-fetch)
+                          (uri "http://www.example.com/v3.2.1.tar.gz")
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: bad checkout
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:476
source:
+ (test-assert
+   "source-file-name: bad checkout"
+   (->bool
+     (string-contains
+       (with-warnings
+         (let ((pkg (dummy-package
+                      "x"
+                      (version "3.2.1")
+                      (source
+                        (origin
+                          (method git-fetch)
+                          (uri (git-reference
+                                 (url "http://www.example.com/x.git")
+                                 (commit "0")))
+                          (sha256 %null-sha256))))))
+           (check-source-file-name pkg)))
+       "file name should contain the package name")))
actual-value: #t
result: PASS

test-name: source-file-name: good checkout
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:492
source:
+ (test-assert
+   "source-file-name: good checkout"
+   (not (->bool
+          (string-contains
+            (with-warnings
+              (let ((pkg (dummy-package
+                           "x"
+                           (version "3.2.1")
+                           (source
+                             (origin
+                               (method git-fetch)
+                               (uri (git-reference
+                                      (url "http://git.example.com/x.git")
+                                      (commit "0")))
+                               (file-name (string-append "x-" version))
+                               (sha256 %null-sha256))))))
+                (check-source-file-name pkg)))
+            "file name should contain the package name"))))
actual-value: #t
result: PASS

test-name: source-file-name: valid
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:510
source:
+ (test-assert
+   "source-file-name: valid"
+   (not (->bool
+          (string-contains
+            (with-warnings
+              (let ((pkg (dummy-package
+                           "x"
+                           (version "3.2.1")
+                           (source
+                             (origin
+                               (method url-fetch)
+                               (uri "http://www.example.com/x-3.2.1.tar.gz")
+                               (sha256 %null-sha256))))))
+                (check-source-file-name pkg)))
+            "file name should contain the package name"))))
actual-value: #t
result: PASS

test-name: source: 200
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:526
source:
+ (test-equal
+   "source: 200"
+   ""
+   (with-warnings
+     (with-http-server
+       200
+       %long-string
+       (let ((pkg (package
+                    (inherit (dummy-package "x"))
+                    (source
+                      (origin
+                        (method url-fetch)
+                        (uri %local-url)
+                        (sha256 %null-sha256))))))
+         (check-source pkg)))))
expected-value: 
actual-value: 
result: PASS

test-name: source: 200 but short length
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:539
source:
+ (test-assert
+   "source: 200 but short length"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           200
+           "This is too small."
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (source
+                          (origin
+                            (method url-fetch)
+                            (uri %local-url)
+                            (sha256 %null-sha256))))))
+             (check-source pkg))))
+       "suspiciously small")))
actual-value: #t
result: PASS

test-name: source: 404
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:554
source:
+ (test-assert
+   "source: 404"
+   (->bool
+     (string-contains
+       (with-warnings
+         (with-http-server
+           404
+           %long-string
+           (let ((pkg (package
+                        (inherit (dummy-package "x"))
+                        (source
+                          (origin
+                            (method url-fetch)
+                            (uri %local-url)
+                            (sha256 %null-sha256))))))
+             (check-source pkg))))
+       "not reachable: 404")))
actual-value: #t
result: PASS

test-name: cve
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:568
source:
+ (test-assert
+   "cve"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (const '()))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities (dummy-package "x"))))))
actual-value: #t
result: PASS

test-name: cve: one vulnerability
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:573
source:
+ (test-assert
+   "cve: one vulnerability"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-contains
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package "pi" (version "3.14"))))
+           "vulnerable to CVE-2015-1234")))
actual-value: 76
result: PASS

test-name: cve: one patched vulnerability
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:585
source:
+ (test-assert
+   "cve: one patched vulnerability"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package
+                 "pi"
+                 (version "3.14")
+                 (source
+                   (dummy-origin
+                     (patches (list "/a/b/pi-CVE-2015-1234.patch"))))))))))
actual-value: #t
result: PASS

test-name: cve: patched vulnerability in replacement
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:602
source:
+ (test-assert
+   "cve: patched vulnerability in replacement"
+   (mock ((guix scripts lint)
+          package-vulnerabilities
+          (lambda (package)
+            (list (make-struct
+                    (@@ (guix cve) <vulnerability>)
+                    0
+                    "CVE-2015-1234"
+                    (list (cons (package-name package)
+                                (package-version package)))))))
+         (string-null?
+           (with-warnings
+             (check-vulnerabilities
+               (dummy-package
+                 "pi"
+                 (version "3.14")
+                 (source (dummy-origin))
+                 (replacement
+                   (dummy-package
+                     "pi"
+                     (version "3.14")
+                     (source
+                       (dummy-origin
+                         (patches
+                           (list "/a/b/pi-CVE-2015-1234.patch"))))))))))))
actual-value: #t
result: PASS

test-name: formatting: lonely parentheses
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:621
source:
+ (test-assert
+   "formatting: lonely parentheses"
+   (string-contains
+     (with-warnings
+       (check-formatting
+         (dummy-package "ugly as hell!")))
+     "lonely"))
actual-value: 101
result: PASS

test-name: formatting: tabulation
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:631
source:
+ (test-assert
+   "formatting: tabulation"
+   (string-contains
+     (with-warnings
+       (check-formatting
+         (dummy-package "leave the tab here:\t")))
+     "tabulation"))
actual-value: 82
result: PASS

test-name: formatting: trailing white space
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:637
source:
+ (test-assert
+   "formatting: trailing white space"
+   (string-contains
+     (with-warnings
+       (check-formatting (dummy-package "x")))
+     "trailing white space"))
actual-value: 63
result: PASS

test-name: formatting: long line
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:644
source:
+ (test-assert
+   "formatting: long line"
+   (string-contains
+     (with-warnings
+       (check-formatting (dummy-package "x")))
+     "too long"))
actual-value: 78
result: PASS

test-name: formatting: alright
location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:652
source:
+ (test-assert
+   "formatting: alright"
+   (string-null?
+     (with-warnings
+       (check-formatting (dummy-package "x")))))
actual-value: #t
result: PASS

random seed for tests: 1469937910

SKIP: tests/containers
======================

test-name: call-with-container, exit with 0 when there is no error
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:40
source:
+ (test-assert
+   "call-with-container, exit with 0 when there is no error"
+   (zero? (call-with-container
+            '()
+            (const #t)
+            #:namespaces
+            '(user))))
result: SKIP

test-name: call-with-container, user namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:45
source:
+ (test-assert
+   "call-with-container, user namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (assert-exit
+                (and (zero? (getuid)) (zero? (getgid)))))
+            #:namespaces
+            '(user))))
result: SKIP

test-name: call-with-container, uts namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:54
source:
+ (test-assert
+   "call-with-container, uts namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (sethostname "test-container")
+              (primitive-exit 0))
+            #:namespaces
+            '(user uts))))
result: SKIP

test-name: call-with-container, pid namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:65
source:
+ (test-assert
+   "call-with-container, pid namespace"
+   (zero? (call-with-container
+            '()
+            (lambda ()
+              (match (primitive-fork)
+                     (0 (assert-exit (= 2 (getpid))))
+                     (pid (primitive-exit
+                            (match (waitpid pid)
+                                   ((_ . status)
+                                    (status:exit-val status)))))))
+            #:namespaces
+            '(user pid))))
result: SKIP

test-name: call-with-container, mnt namespace
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:81
source:
+ (test-assert
+   "call-with-container, mnt namespace"
+   (zero? (call-with-container
+            '(("none" device "/testing" "tmpfs" () #f #f))
+            (lambda ()
+              (assert-exit (file-exists? "/testing")))
+            #:namespaces
+            '(user mnt))))
result: SKIP

test-name: call-with-container, mnt namespace, wrong bind mount
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:89
source:
+ (test-equal
+   "call-with-container, mnt namespace, wrong bind mount"
+   `(system-error ,ENOENT)
+   (catch 'system-error
+          (lambda ()
+            (call-with-container
+              '(("/does-not-exist"
+                 device
+                 "/foo"
+                 "none"
+                 (bind-mount)
+                 #f
+                 #f))
+              (const #t)
+              #:namespaces
+              '(user mnt)))
+          (lambda args
+            (list 'system-error (system-error-errno args)))))
result: SKIP

test-name: call-with-container, all namespaces
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:102
source:
+ (test-assert
+   "call-with-container, all namespaces"
+   (zero? (call-with-container
+            '()
+            (lambda () (primitive-exit 0)))))
result: SKIP

test-name: container-excursion
location: /home/sapientech/Dev/guix/guix_wip/tests/containers.scm:109
source:
+ (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 '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)))
+                        '("user" "ipc" "uts" "net" "pid" "mnt"))))
+               (let* ((pid (run-container root '() %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
+                                       (match (waitpid fork-pid)
+                                              ((_ . status)
+                                               (primitive-exit
+                                                 (status:exit-val
+                                                   status)))))))))))
+                 (close end-in)
+                 (write 'done end-out)
+                 (close end-out)
+                 (waitpid pid)
+                 (zero? result)))))))
result: SKIP


SKIP: tests/pypi
================

test-name: guix-package->pypi-name, old URL style
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:76
source:
+ (test-equal
+   "guix-package->pypi-name, old URL style"
+   "psutil"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: psutil
actual-value: psutil
result: PASS

test-name: guix-package->pypi-name, new URL style
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:84
source:
+ (test-equal
+   "guix-package->pypi-name, new URL style"
+   "certbot"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: certbot
actual-value: certbot
result: PASS

test-name: pypi->guix-package
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:92
source:
+ (test-assert
+   "pypi->guix-package"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://pypi.python.org/pypi/foo/json"
+                    (with-output-to-file
+                      file-name
+                      (lambda () (display test-json))))
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir "foo-1.0.0")
+                      (with-output-to-file
+                        "foo-1.0.0/requirements.txt"
+                        (lambda () (display test-requirements)))
+                      (system* "tar" "czvf" file-name "foo-1.0.0/")
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (match (pypi->guix-package "foo")
+                (('package
+                  ('name "python-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri
+                     (string-append
+                       "https://example.com/foo-"
+                       version
+                       ".tar.gz"))
+                    ('sha256 ('base32 (? string? hash)))))
+                  ('build-system 'python-build-system)
+                  ('inputs
+                   ('quasiquote
+                    (("python-bar" ('unquote 'python-bar))
+                     ("python-baz" ('unquote 'python-baz))
+                     ("python-setuptools"
+                      ('unquote 'python-setuptools)))))
+                  ('home-page "http://example.com")
+                  ('synopsis "summary")
+                  ('description "summary")
+                  ('license 'lgpl2.0))
+                 (string=?
+                   (bytevector->nix-base32-string test-source-hash)
+                   hash))
+                (x (pk 'fail x #f)))))
foo-1.0.0/
foo-1.0.0/requirements.txt
actual-value: #t
result: PASS

test-name: pypi->guix-package, wheels
location: /home/sapientech/Dev/guix/guix_wip/tests/pypi.scm:141
source:
+ (test-assert
+   "pypi->guix-package, wheels"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://pypi.python.org/pypi/foo/json"
+                    (with-output-to-file
+                      file-name
+                      (lambda () (display test-json))))
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir "foo-1.0.0")
+                      (with-output-to-file
+                        "foo-1.0.0/requirements.txt"
+                        (lambda () (display test-requirements)))
+                      (system* "tar" "czvf" file-name "foo-1.0.0/")
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    (begin
+                      (mkdir "foo-1.0.0.dist-info")
+                      (with-output-to-file
+                        "foo-1.0.0.dist-info/metadata.json"
+                        (lambda () (display test-metadata)))
+                      (let ((zip-file (string-append file-name ".zip")))
+                        (system*
+                          "zip"
+                          zip-file
+                          "foo-1.0.0.dist-info/metadata.json")
+                        (rename-file zip-file file-name))
+                      (delete-file-recursively "foo-1.0.0.dist-info")))
+                   (_ (error "Unexpected URL: " url)))))
+         (match (pypi->guix-package "foo")
+                (('package
+                  ('name "python-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri
+                     (string-append
+                       "https://example.com/foo-"
+                       version
+                       ".tar.gz"))
+                    ('sha256 ('base32 (? string? hash)))))
+                  ('build-system 'python-build-system)
+                  ('inputs
+                   ('quasiquote
+                    (("python-bar" ('unquote 'python-bar))
+                     ("python-baz" ('unquote 'python-baz))
+                     ("python-setuptools"
+                      ('unquote 'python-setuptools)))))
+                  ('home-page "http://example.com")
+                  ('synopsis "summary")
+                  ('description "summary")
+                  ('license 'lgpl2.0))
+                 (string=?
+                   (bytevector->nix-base32-string test-source-hash)
+                   hash))
+                (x (pk 'fail x #f)))))
result: SKIP

random seed for tests: 1469933106

FAIL: tests/guix-download
=========================

+ guix download --version
guix download (GNU Guix) 0.10.0
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guix download http://does.not/exist
accepted connection from pid 13292, user sapientech

Starting download of /tmp/guix-file.zUVDhl
From http://does.not/exist...

^[[K exist                                               0B/s 00:00 | 0B transferred
^[[K exist                                         320KiB/s 00:00 | 319B transferred
/home/sapientech/Dev/guix/guix_wip/test-tmp/store/hi5hmfl117bri5c79i96fb7ymip4cb43-exist
1ipmbjjgif1f6a77j91s2y989y6sgk3fh4jiycbqqs6v2i827l7s
+ false
./test-env: line 1: 13275 Terminated              "/home/sapientech/Dev/guix/guix_wip/pre-inst-env" "/home/sapientech/Dev/guix/guix_wip/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
FAIL tests/guix-download.sh (exit status: 1)

SKIP: tests/guix-environment-container
======================================

+ set -e
+ guix environment --version
guix environment (GNU Guix) 0.10.0
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guile -c '((@@ (guix scripts environment) assert-container-features))'
error: cannot create container: user namespaces unavailable
error: is your kernel version < 3.10?
+ exit 77
./test-env: line 1: 15698 Terminated              "/home/sapientech/Dev/guix/guix_wip/pre-inst-env" "/home/sapientech/Dev/guix/guix_wip/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
SKIP tests/guix-environment-container.sh (exit status: 77)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24108: guix make tests failure
  2016-07-31  1:53         ` Dylan Jeffers
@ 2016-07-31 10:53           ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2016-07-31 10:53 UTC (permalink / raw)
  To: Dylan Jeffers; +Cc: 24108

Hello,

Dylan Jeffers <sapientech@openmailbox.org> skribis:

[...]

> > > These tests are skipped when user namespaces are not supported, as
> > > per this condition:
> > > 
> > >   (define perform-container-tests?
> > >     (and (user-namespace-supported?)
> > >          (unprivileged-user-namespace-supported?)))
> > > 
> > > … which is true iff (1) /proc/self/ns/user exists, and (2)
> > > /proc/sys/kernel/unprivileged_userns_clone does not exist, or it
> > > exists and contains “1”.
> > > 
> > > Do these files exist on this system?  
>>
>> (1) /proc/self/ns/user exists, and
>> (2) /proc/sys/kernel/unpriviledged_userns_clone D.N.E

They do not exist now with the new ‘test-suite.log’ that you posted, but
they did exist before (with the Grsec kernel), otherwise the user
namespaces tests would have been skipped.

>> Ideas on the best approach to allow the build to succeed?
>> 
>> I also have had issues with qemu, so it makes sense that vm/container
>> stuff both have issues. I have a feeling its due to the
>> grsec kernel.
>> https://wiki.archlinux.org/index.php/Grsecurity_Patchset talks a
>> bit about userspace/namespace hardening + issues with xen and
>> virtbox. Going to reboot with an lts kernel and try again. Will post
>> update...
>> 
>> Best,
>> Dylan
>> 
>> Best,
>> Dylan
>
> After changing kernel, and stopping paxd.service, build still
> failed :(

[...]

> test-name: clone
> location: /home/sapientech/Dev/guix/guix_wip/tests/syscalls.scm:109
> source:
> + (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))))))))
> result: SKIP

This and other container-related tests are now properly skipped.

> test-name: home-page: host not found
> location: /home/sapientech/Dev/guix/guix_wip/tests/lint.scm:393
> source:
> + (test-assert
> +   "home-page: host not found"
> +   (->bool
> +     (string-contains
> +       (with-warnings
> +         (let ((pkg (package
> +                      (inherit (dummy-package "x"))
> +                      (home-page "http://does-not-exist"))))
> +           (check-home-page pkg)))
> +       "domain not found")))
> actual-value: #f
> result: FAIL

This and the remaining failures are due to DNS hijacking, so nothing we
can do about it.  You’d have to use a well-behaved DNS server (e.g.,
“echo nameserver 8.8.8.8 > /etc/resolv.conf” to use Google’s name
server) to work around that.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-07-31 10:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-29 23:26 bug#24108: guix make tests failure sapientech
2016-07-30 13:07 ` Ludovic Courtès
2016-07-30 17:43   ` Dylan Jeffers
2016-07-30 21:31     ` Ludovic Courtès
2016-07-31  0:40       ` Dylan Jeffers
2016-07-31  1:53         ` Dylan Jeffers
2016-07-31 10:53           ` Ludovic Courtès

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).