Package Details: guix 0.11.0-2

Git Clone URL: https://aur.archlinux.org/guix.git (read-only)
Package Base: guix
Description: A purely functional package manager for the GNU system
Upstream URL: https://www.gnu.org/software/guix/
Keywords: guix nix package system
Licenses: GPL
Submitter: lantw44
Maintainer: lantw44
Last Packager: lantw44
Votes: 15
Popularity: 0.349479
First Submitted: 2013-04-22 11:06
Last Updated: 2016-08-17 03:41

Dependencies (15)

Required by (0)

Sources (2)

Latest Comments

wilfred commented on 2016-09-04 03:14

Note that you will need to create a guixbuild group and some users before you can install any packages.

From the official docs: https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html

$ sudo groupadd --system guixbuild
$ sudo for i in `seq -w 1 10`;
do
useradd -g guixbuild -G guixbuild \
-d /var/empty -s `which nologin` \
-c "Guix build user $i" --system \
guixbuilder$i;
done

Next, ensure the daemon is running ($ sudo systemctl start guix-daemon) and you can use guix.

mhw commented on 2016-08-13 07:32

The test failure reported by fusion809 will happen whenever the absolute file name of the build directory $(abs_top_builddir) is too long, and is ultimately due to the fact that shebangs (the first line with #!) of executable scripts in Linux (the kernel) are limited to 127 characters. Some of the tests involve building packages inside the build directory, with the store inside the build directory instead of in /gnu/store (so the tests can be done without root access), so you end up with shebangs like:

#!$(abs_top_builddir)/test-tmp/store/lr35ppi5q3r3bazhx4nzvjf12vfdf08v-bash-static-4.3.42/bin/sh

In fusion809's case, this becomes something like:

#!/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/test-tmp/store/lr35ppi5q3r3bazhx4nzvjf12vfdf08v-bash-static-4.3.42/bin/sh

The example above is 126 characters which just barely fits, but for packages with longer names, or if there is an argument after the script name on the shebang line, the length limitation will be exceeded.

If you cannot arrange to do the builds in a directory with a shorter absolute file name, then you won't be able to run tests. I'm sorry about that, but until Linux (the kernel) increases this length limit, I don't see another solution.

fusion809 commented on 2016-08-12 20:11

For me the new revision is giving the check() failure:

CXXLD guix-register
Compiling Scheme modules...
LOAD (guix config)
;;; note: source file ./guix/config.scm
;;; newer than compiled /home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/guix/config.go
GUILEC guix/config.go
GEN etc/guix-daemon.service
GEN etc/guix-daemon.conf
make[2]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
make[1]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
==> Starting check()...
unshare: unshare failed: Invalid argument
make check-recursive
make[1]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
Making check in po/guix
make[2]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/po/guix'
make[2]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/po/guix'
Making check in po/packages
make[2]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/po/packages'
make[2]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0/po/packages'
make[2]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
Compiling Scheme modules...
make check-TESTS check-local
make[3]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
make[4]: Entering directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
============================================================================
Testsuite summary for GNU Guix 0.11.0
============================================================================
# TOTAL: 0
# PASS: 0
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'

Cannot run tests because file name limits would be exceeded.
Look for 'length' in the 'config.log' file for details.

make[3]: *** [Makefile:4816: check-local] Error 1
make[3]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
make[2]: *** [Makefile:4441: check-am] Error 2
make[2]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
make[1]: *** [Makefile:3978: check-recursive] Error 1
make[1]: Leaving directory '/home/fusion809/.cache/pacaur/guix/src/guix-0.11.0'
make: *** [Makefile:4443: check] Error 2
==> ERROR: A failure occurred in check().
Aborting...
:: failed to build guix package(s)

lantw44 commented on 2016-08-10 18:38

Thanks for noticing the problem of stripping. I uploaded a new version of PKGBUILD and I think it should resolve the issue.

mhw commented on 2016-08-09 23:47

As a lead developer of GNU Guix, I wanted to follow up on balduin's comment. It's important for the bootstrap binaries installed in gnu/packages/bootstrap/* to be copied precisely, without modification. These bootstrap binaries are the foundation upon which everything else in Guix is built, and thus they affect the hashes of every derivation.

I've learned that by default, 'makepkg' automatically strips all executables, including these bootstrap binaries. As a result, users of this AUR package generate different derivations than all other Guix users,
and thus they cannot make use of our binary substitutes, nor can they compare their build outputs with build outputs from other users to gain confidence that results are genuine and uncorrupted.

balduin has verified that adding "options=(!strip)" to this PKGBUILD fixes the problem. I would be grateful if you could make this change ASAP. Feel free to stop by #guix if you have questions about this. Thanks!

balduin commented on 2016-08-09 20:53

The package works fine so far. The only problem is that you have to build each and every package from source, because the bash binary of the guix-0.11.0.tar.gz get's modified by makepkg. The negative effect is none of substitutes (pre-build packages) from hydra.gnu.org can be used since all produce a different output.

The solution is to add to the PKGBUILD file:
options=(!strip)

for example:

~~~
...
url="https://www.gnu.org/software/guix/"
license=('GPL')
options=(!strip)
makedepends=(
'bash-completion'
...
~~~

after adding the options line none of the binaries in guix-0.11.0.tar.gz will be modified and using substitutes from hydra.gnu.org works.

lantw44 commented on 2016-07-15 13:10

You have to obtain the required public key before you can verify the signature. You can find the required command at the beginning of PKGBUILD file.

mcmuntjac commented on 2016-07-15 05:42

after download:
Validating source files with sha1sums...
guix-0.10.0.tar.gz ... Passed
guix-0.10.0.tar.gz.sig ... Passed
==> Verifying source file signatures with gpg...
guix-0.10.0.tar.gz ... FAILED (unknown public key...
==> ERROR: One or more PGP signatures could not be verified!
==> ERROR: Makepkg was unable to build guix.

e: thanks, I used gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys [PUBLIC KEY] and was able to finish building

lantw44 commented on 2016-01-31 18:18

I cannot reproduce the test failure. It is possible that it is just a temporary failure because some tests depend on remote servers. If it still fails, you can use the output in tests/build-utils.log to debug and report the issue.

divansantana commented on 2016-01-29 12:05

Failing

PASS: tests/base64.scm
PASS: tests/base32.scm
PASS: tests/hash.scm
PASS: tests/cpio.scm
PASS: tests/pk-crypto.scm
PASS: tests/sets.scm
PASS: tests/pki.scm
PASS: tests/substitute.scm
PASS: tests/ui.scm
PASS: tests/records.scm
PASS: tests/utils.scm
FAIL: tests/build-utils.scm

All comments