Subject: Re: bug#76933: Test suite broken due to file name limits

From: Ludovic Courtès <[email-masked]>
Date: Mon, 14 Apr 2025 19:01:17 +0200

Hi Vagrant,

Vagrant Cascadian <[email-masked]> 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’.