If your current directory path contains a space then Automake creates an
invalid site.exp file. The problem is in the following code placed into
Makefile.in:
@echo 'set srcdir "$(srcdir)"' >>site.tmp
@echo "set objdir `pwd`" >>site.tmp
Note you do quote the source directory. If you were to quote the result of the
pwd it would create a valid site.exp file:
@echo "set objdir \"`pwd`\"" >>site.tmp
> Begin forwarded message:
>
> From: Jacob Bachmeyer <[email protected]>
> Subject: Re: bug#44580: DejaGnu runtest not found of site.exp exists
> Date: November 11, 2020 at 9:56:09 PM EST
> To: Robert Menteer <[email protected]>, Robert Menteer via Bug-dejagnu
> <[email protected]>
> Cc: [email protected]
> Reply-To: [email protected]
>
> Robert Menteer via Bug-dejagnu via wrote:
>> What I found by running runtest by hand is it fails if the file site.ext
>> exists.
>
> Your site.exp file is invalid; this is a bug in Automake rather than a bug in
> DejaGnu. The version of Automake that produced the Makefile.in that you are
> using mishandles filenames containing spaces. Tcl requires a value
> containing spaces to be properly quoted in a "set" command, and Automake is
> producing a site.exp that does not contain those quotes for the objdir
> variable.
>
> An immediate workaround is to run `sed -e '/^set [^ ]*dir [^"]/{s/dir
> /&"/;s/$/"/}' -i site.exp` (tested with GNU sed) to fix your site.exp file,
> or to avoid building in a directory where the absolute filename contains
> spaces.
>
> Additionally, as of commit b53b22c29880f785ae5e9e1c72925d2583a4c76d (after
> 1.6.2 was released) DejaGnu no longer loads site.exp when invoked with the
> --version option.
>
> Please try regenerating your Makefile.in with a newer Automake or report this
> as a bug in Automake if you are already using the latest version.
>
> I am closing this report as NOTOURBUG.
>
>
> -- Jacob
Original bug report to DejaGnu follows:
I have a Makefile created using the auto tools and it has a problem when making
the ‘check’ target. The problem is the make file fails to verify the existence
of runtest. The command used to test for the existence of runtest is:
if /bin/bash -c "runtest --version" > /dev/null 2>&1; then
What I found by running runtest by hand is it fails if the file site.ext
exists.
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite$ runtest --version
ERROR: tcl error sourcing /media/psf/FlDist/trunk/testsuite/site.exp.
wrong # args: should be "set varName ?newValue?"
while executing
"set objdir /home/parallels/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite"
(file "/media/psf/FlDist/trunk/testsuite/site.exp" line 5)
invoked from within
"source /media/psf/FlDist/trunk/testsuite/site.exp"
("uplevel" body line 1)
invoked from within
"uplevel #0 source /media/psf/FlDist/trunk/testsuite/site.exp"
invoked from within
"catch "uplevel #0 source $file""
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite$ rm site.exp
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite$ runtest --version
DejaGnu version 1.6.2
Expect version 5.45.4
Tcl version 8.6
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite$ uname -a
Linux parallels-Parallels-Virtual-Platform 5.4.0-42-generic #46-Ubuntu SMP Fri
Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
parallels@parallels-Parallels-Virtual-Platform:~/Desktop/Parallels Shared
Folders/FlDist/trunk/testsuite$