Report forwarded
to bug-guix@gnu.org: bug#76933; Package guix.
(Tue, 11 Mar 2025 07:17:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Vagrant Cascadian <vagrant@debian.org>:
New bug report received and forwarded. Copy sent to bug-guix@gnu.org.
(Tue, 11 Mar 2025 07:17:02 GMT) (full text, mbox, link).
Guix seems to be a bit overly cautious about the filename lengths used
in the test suite:
https://buildd.debian.org/status/fetch.php?pkg=guix&arch=amd64&ver=1.4.0%2B154709.ab1b557d8f3-1&stamp=1740103252&raw=1
make check-TESTS check-local
make[5]: Entering directory '/build/reproducible-path/guix-1.4.0+154709.ab1b557d8f3'
make[6]: Entering directory '/build/reproducible-path/guix-1.4.0+154709.ab1b557d8f3'
============================================================================
Testsuite summary for GNU Guix 1.4.0+154709.ab1b557d8f3
============================================================================
# TOTAL: 0
# PASS: 0
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
make[6]: Leaving directory
'/build/reproducible-path/guix-1.4.0+154709.ab1b557d8f3'
Cannot run tests because file name limits would be exceeded.
Look for 'length' in the 'config.log' file for details.
That is a base build path of only 55 characters. I managed to get it to
build successfully by shortening it down to use a version that was only
49 characters total... but that leaves very little wiggle room...
While that is an unusually long version number as part of the
directory(it a version roughly based on the output of "git
describe")... this seems likely to be a fairly arbitrary and unecessary
length limit, at least with any reasonably modern filesystem...
In another build performed where this check failed with 50 character
build paths, I checked config.log:
$ grep length config.log
configure:7282: checking the length of the installed socket file name
configure:7305: checking the length of the socket file name used in tests
configure:7316: checking the length of a typical hash bang line
configure:7328: checking the length of a hash bang line used in tests
ac_cv_guix_hash_bang_length=73
ac_cv_guix_socket_file_name_length=30
ac_cv_guix_test_hash_bang_length=127
ac_cv_guix_test_socket_file_name_length=90
File name limits of 90 characters? Many store items are much longer than
that!
Why is this check implemented, and do we really still need it? :)
live well,
vagrant
Subject: Re: bug#76933: Test suite broken due to file name limits
Date: Mon, 14 Apr 2025 19:01:17 +0200
Hi Vagrant,
Vagrant Cascadian <vagrant@debian.org> writes:
> In another build performed where this check failed with 50 character
> build paths, I checked config.log:
>
> $ grep length config.log
> configure:7282: checking the length of the installed socket file name
> configure:7305: checking the length of the socket file name used in tests
> configure:7316: checking the length of a typical hash bang line
> configure:7328: checking the length of a hash bang line used in tests
> ac_cv_guix_hash_bang_length=73
> ac_cv_guix_socket_file_name_length=30
> ac_cv_guix_test_hash_bang_length=127
> ac_cv_guix_test_socket_file_name_length=90
>
> File name limits of 90 characters? Many store items are much longer than
> that!
>
> Why is this check implemented, and do we really still need it? :)
Yes we do! You’ll find more details in ‘m4/guix.m4’ but basically,
there are two problems that could happen:
1. Shebangs could be longer than 127 bytes, which would prevent us
from running scripts in the test store.
2. The daemon’s socket file name could be longer than 108 bytes, which
would prevent us from connecting to it.
Perhaps an option for you would be to run, say:
./configure ac_cv_guix_test_root=/tmp/guix-test-root
That way, you’d have a shorter prefix and everything would be fine.
HTH!
Ludo’.
Debbugs is free software and licensed under the terms of the
GNU Public License version 2. The current version can be
obtained from https://bugs.debian.org/debbugs-source/.