Subject: RE: Test suite failures building 0.10.0 on CentOS7

From: "Cook, Malcolm" <[email-masked]>
Date: Wed, 30 Mar 2016 22:37:55 +0000

Thanks Ludo',

Thanks for the reminder about https://www.gnu.org/software/guix/manual/html_node/Running-the-Test-Suite.html    I note there too that I should be emailing [email-masked] instead of guix-devel.  I've cc:ed it this time.  What is the best going forward?

I am building the release from git since I want to ./configure with a non-standard --localstatedir of /gnu/var  (where /gnu is shared and nfs mounted and will be used across multiple linux computational servers).  
Perhaps is there another way to effect this?  Without reviewing all the code I did not know how to determine this. 

In any case I have reduced the issues by adding to my install mantra:

	export ACLOCAL_PATH=/usr/share/aclocal # as per https://www.gnu.org/software/guix/manual/guix.html#Building-from-Git

So now only one test fails, guix-lint, before I "give up" as progress on `make check` seems halted (0 cpu per top, yet still build processes including daemons running).

Most oddly, there is no .log file for this test, though one DOES exist in the tests subdirectory.  It ends like this:

	ERROR: In procedure string-append:
	ERROR: In procedure string-append: Wrong type (expecting string): #f'
	+ rm -rf t-guix-lint-2602
	./test-env: line 1:  2601 Terminated              "/tmp/tmp.zS2DFhXOOe/pre-inst-env" "/tmp/tmp.zS2DFhXOOe/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"

I have attached it in its entirety.

There is no test-suite.log file.  Is this because I interrupted the `make check` build before all test 

I have the following CentOS7 rpms since either they are listed https://www.gnu.org/software/guix/manual/html_node/Requirements.html#Requirements  or I found I needed them.

sudo yum -y info ${guixRpmDeps} | grep -P '^(Name.*|Version.*|)$' 

Name        : autoconf
Version     : 2.69

Name        : automake
Version     : 1.13.4

Name        : bzip2
Version     : 1.0.6

Name        : gettext
Version     : 0.18.2.1

Name        : gettext-devel
Version     : 0.18.2.1

Name        : gnupg2
Version     : 2.0.22

Name        : gnutls
Version     : 3.3.8

Name        : graphviz
Version     : 2.30.1

Name        : guile
Version     : 2.0.9

Name        : guile-devel
Version     : 2.0.9

Name        : help2man
Version     : 1.41.1

Name        : libgcrypt-devel
Version     : 1.5.3

Name        : make
Version     : 3.82

Name        : pkgconfig
Version     : 0.27.1

Name        : sqlite
Version     : 3.7.17

Name        : sqlite-devel
Version     : 3.7.17

Name        : texinfo
Version     : 5.1

Name        : texinfo-tex
Version     : 5.1

Name        : gettext-devel
Version     : 0.18.2.1

Name        : gnutls
Version     : 3.3.8

Name        : graphviz
Version     : 2.30.1

Name        : guile
Version     : 2.0.9

Name        : guile-devel
Version     : 2.0.9

Name        : libgcrypt-devel
Version     : 1.5.3

Name        : pkgconfig
Version     : 0.27.1

Name        : sqlite
Version     : 3.7.17

Name        : sqlite-devel
Version     : 3.7.17

I'm up to here before I killed the check:

PASS: tests/base64.scm
PASS: tests/sets.scm
PASS: tests/hash.scm
PASS: tests/base32.scm
PASS: tests/pki.scm
PASS: tests/pk-crypto.scm
PASS: tests/cpio.scm
PASS: tests/gnu-maintenance.scm
PASS: tests/upstream.scm
PASS: tests/substitute.scm
PASS: tests/grafts.scm
PASS: tests/ui.scm
PASS: tests/snix.scm
PASS: tests/build-utils.scm
PASS: tests/utils.scm
PASS: tests/records.scm
PASS: tests/hackage.scm
PASS: tests/cran.scm
PASS: tests/gremlin.scm
PASS: tests/syscalls.scm
PASS: tests/scripts.scm
PASS: tests/elpa.scm
PASS: tests/size.scm
PASS: tests/nar.scm
PASS: tests/file-systems.scm
PASS: tests/cve.scm
PASS: tests/union.scm
SKIP: tests/containers.scm
PASS: tests/import-utils.scm
PASS: tests/system.scm
PASS: tests/services.scm
PASS: tests/challenge.scm
PASS: tests/scripts-build.scm
PASS: tests/guix-download.sh
PASS: tests/guix-hash.sh
SKIP: tests/guix-environment-container.sh
PASS: tests/profiles.scm
PASS: tests/guix-authenticate.sh
PASS: tests/monads.scm
PASS: tests/lint.scm
PASS: tests/graph.scm
PASS: tests/gexp.scm
FAIL: tests/guix-lint.sh
PASS: tests/guix-register.sh
PASS: tests/guix-archive.sh
PASS: tests/derivations.scm
PASS: tests/guix-daemon.sh
PASS: tests/guix-graph.sh
PASS: tests/store.scm
PASS: tests/packages.scm
PASS: tests/guix-system.sh
PASS: tests/guix-package-net.sh
PASS: tests/guix-package.sh
PASS: tests/guix-build.sh
PASS: tests/guix-environment.sh
PASS: tests/builders.scm

 > -----Original Message-----
 > From: Ludovic Courtès [mailto:[email-masked]]
 > Sent: Wednesday, March 30, 2016 4:14 PM
 > To: Cook, Malcolm <[email-masked]>
 > Cc: Guix-devel <[email-masked]>
 > Subject: Re: Test suite failures building 0.10.0 on CentOS7
 > 
 > "Cook, Malcolm" <[email-masked]> skribis:
 > 
 > > I am building and testing as follows:
 > >
 > > env -i PATH=${PATH} bash ## build in a clean shell
 > > bld=$(mktemp -d) ## in a clean, new, empty directory
 > > cd $bld
 > > git clone git://git.savannah.gnu.org/guix.git  --branch v0.10.0  [email-masked]
 > > cd [email-masked]
 > 
 > Since you’re building the release, I strongly recommend using the
 > release tarball at <ftp://alpha.gnu.org/gnu/guix/guix-0.10.0.tar.gz>
 > instead of a Git checkout.  The release tarball is “bootstrapped”, so
 > you wouldn’t have to run ./bootstrap, and we’d be safer overall.  :-)
 > 
 > > make -j20   |& tee  LOGS/make.log
 > > make -j20 check |& tee  LOGS/make.check.log
 > 
 > It wouldn’t make a big difference in this case, but in the future it’d
 > be best to return the .log files as mentioned at
 > <https://www.gnu.org/software/guix/manual/html_node/Running-the-Test-
 > Suite.html>.	
 > 
 > > tests/builders.log:configure: error: in `/tmp/guix-build-make-boot0-4.1.drv-
 > 0/make-4.1':
 > > tests/builders.log:configure: error: C compiler cannot create executables
 > 
 > This appears to be the crux of the problem.
 > 
 > Could you run this command from the build tree:
 > 
 >   ./test-env guix build -e '(@@ (gnu packages commencement) gnu-make-
 > boot0)' -K
 > 
 > This should fail with the same error as above, but it should leave a
 > directory called /tmp/guix-build-make-boot0-4.1.drv-0; could you post
 > the make-4.1/config.log file from that directory?
 > 
 > Thank you for your report!
 > 
 > Ludo’.