Subject: bug#44600: closed (Re: bug#44600: Automake does not make site.exp correctly when spaces in current path name.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 14 Nov 2020 22:13:02 +0000

Your bug report

#44600: Automake does not make site.exp correctly when spaces in current path name.

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
44600: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44600
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#44600: Automake does not make site.exp correctly when spaces in current path name.
From: Karl Berry <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sat, 14 Nov 2020 15:12:29 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

            @echo "set objdir \"`pwd`\"" >>site.tmp

Thanks much. I installed the change. --best, karl.

Subject: Automake does not make site.exp correctly when spaces in current path name.
From: Robert Menteer <[email-masked]>
To: [email-masked]
Date: Thu, 12 Nov 2020 17:23:59 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

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-masked]>
> 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-masked]>, Robert Menteer via Bug-dejagnu <[email-masked]>
> Cc: [email-masked]
> Reply-To: [email-masked]
> 
> 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$