Subject: Gettext : test-copy-file-1.sh fail if --with-store-dir=/var/tmp/xxxxx/gnu/store

From: YOANN P <[email-masked]>
Date: Sun, 11 Mar 2018 16:08:20 +0000

Hello,

I'm not sure about the reason of this behavior but if configure guix --with-store-dir=/var/tmp/test_guix/gnu/store for exemple, the tests for gettext failed with a permission denied for test-copy-file-1.sh.

If i configure guix with a store to $HOME/.local, everything run smoothly.

Please find attached :

- my guix build script from git for this test

- the test-suite.log

The daemon was launched like this :

------

$ sudo ./pre-inst-env guix-daemon --build-users-group=guixbuild --no-substitutes -c 4 -M 4 --debug

------

The package installation command :

------

$ ./pre-inst-env guix package -i hello --no-grafts --fallback -K

------

The permissions on /var /var/tmp :

------
$ stat -c "%a %n" /var /var/tmp
755 /var
1777 /var/tmp
------

If I take a look at the test-copy-file-1.sh, it seems that the /var/tmp is present inside the build chroot cause TMPDIR is defined as /var/tmp instead of /tmp.
------
$ head -n10 /tmp/guix-build-gettext-minimal-0.19.8.1.drv-0/gettext-0.19.8.1/gettext-tools/gnulib-tests/test-copy-file-1.sh
#!/var/tmp/test_guix/gnu/store/sqvi3glr2jzgrvfbj624k1sgs15a954c-bash-minimal-4.4.12/bin/sh

# Test copy-file on the file system of /var/tmp, which usually is a local
# file system.

if test -d /var/tmp; then
  TMPDIR=/var/tmp
else
  TMPDIR=/tmp
fi
------

In the "Build Environment Setup" documentation section, there is a mention about /tmp to be writable inside the chroot but there is no mention about /var/tmp and haven't seen a section for /var/tmp chroot inside guix file "build.cc".

Best regards,

Yoann