From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#22354: Test failure when running distcheck from out-of-tree build Date: Wed, 13 Jan 2016 11:13:05 +0100 Message-ID: <871t9l949a.fsf@gnu.org> References: <87r3hnuple.fsf@T420.taylan> <87ziwan3kx.fsf@gnu.org> <87mvsavb61.fsf@T420.taylan> <87k2nea582.fsf@gnu.org> <87io2xvooo.fsf@T420.taylan> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47680) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJIRL-0008JB-NF for bug-guix@gnu.org; Wed, 13 Jan 2016 05:14:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aJIRG-0004co-40 for bug-guix@gnu.org; Wed, 13 Jan 2016 05:14:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:59614) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aJIRG-0004ck-08 for bug-guix@gnu.org; Wed, 13 Jan 2016 05:14:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aJIRF-0007QF-T6 for bug-guix@gnu.org; Wed, 13 Jan 2016 05:14:01 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87io2xvooo.fsf@T420.taylan> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Wed, 13 Jan 2016 10:00:55 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: "Taylan Ulrich \"=?UTF-8?Q?Bay=C4=B1rl=C4=B1/Kammer?=\"" Cc: 22354-done@debbugs.gnu.org taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") skrib= is: >>>>> ./configure: ./config.status: /home/taylan/src/guix/build/guix-0.9.1/= _build/sub/test-tmp/store/d41iyl2gyk0r: bad interpreter: No such file or di= rectory [...] >>> Hmm, that commit didn't fix the issue. >> >> You mean it doesn=E2=80=99t error out directly upon =E2=80=98make check= =E2=80=99? Could you >> run =E2=80=9Cgrep length =E2=80=A6/_build/config.log=E2=80=9D? > > Yes, it still goes through the tests and fails at guix-environment.sh > with the same error. I repeated all steps from a new clone of master. > > taylan@T420:~/src/guix/build$ grep length guix-0.9.1/_build/sub/config.log > configure:6946: checking the length of the installed socket file name > configure:6969: checking the length of the socket file name used in tests > configure:6980: checking the length of a typical hash bang line > configure:6992: checking the length of a hash bang line used in tests > ac_cv_guix_hash_bang_length=3D73 > ac_cv_guix_socket_file_name_length=3D74 > ac_cv_guix_test_hash_bang_length=3D127 > ac_cv_guix_test_socket_file_name_length=3D90 Arff, I see. I=E2=80=99ve change LINUX_HASH_BANG_LIMIT in guix.m4 to 127 instead of 128 to account for the trailing zero. This time it should detect the problem early. >>> Only the error message is broken. >> >> Would be interesting to see which is the piece of software that has an >> even lower limit here. > > For what it's worth, I confirmed that on my system (Debian 8), using > /bin/bash (in case it should be relevant): > > - the hash bang limit of a called script is 127 characters, and > > - when I pass the limit, I get an error message where the path is > truncated to 77 characters. The =E2=80=9Cbad interpreter=E2=80=9D message comes from Bash, in execute_c= md.c. However, that file does this: --8<---------------cut here---------------start------------->8--- char sample[80]; [=E2=80=A6] #if defined (HAVE_HASH_BANG_EXEC) READ_SAMPLE_BUF (command, sample, sample_len); sample[sample_len - 1] =3D '\0'; if (sample_len > 2 && sample[0] =3D=3D '#' && sample[1] =3D=3D '!') { char *interp; int ilen; interp =3D getinterp (sample, sample_len, (int *)NULL); --8<---------------cut here---------------end--------------->8--- where READ_SAMPLE_BUF is: --8<---------------cut here---------------start------------->8--- #define READ_SAMPLE_BUF(file, buf, len) \ do \ { \ fd =3D open(file, O_RDONLY); \ if (fd >=3D 0) \ { \ len =3D read (fd, buf, 80); \ close (fd); \ } \ else \ len =3D -1; \ } \ while (0) --8<---------------cut here---------------end--------------->8--- Now we know. :-) Ludo=E2=80=99.