Tcl Source Code

View Ticket
Login
Ticket UUID: 888c1a8c9d84c1f5da4a46352bbf531424fe7126
Title: Build system issues with wacky paths
Type: Bug Version: 8.6.10
Submitter: anonymous Created on: 2020-11-12 14:39:52
Subsystem: 53. Configuration and Build Tools Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2020-11-13 08:52:05
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2020-11-13 08:52:05
Description:
We have a robustness test that stresses our code for paths with odd characters
and spaces.  We're trying to switch to using Tcl's native build systems, but it
looks like Tcl's autotools build can't handle paths with spaces currently:

/home/user/1 Odd_ source dir++/tcl8.6.10/unix/configure: line 721: test: too many arguments
/home/user/1 Odd_ source dir++/tcl8.6.10/unix/configure: line 727: test: too many arguments
configure: error: sources are in /home/cyapp/1 Odd_ source dir++/tcl8.6.10/unix, but `cd /home/user/1 Odd_ source dir++/tcl8.6.10/unix' does not work

(There are a number of related errors - one was found to be a quoting issue:
https://sourceforge.net/p/brlcad/code/77727 but after that was fixed more
showed up.  With normal paths the build and install complete successfully.)

The below script tries to boil down the usage scenario to reproduce the problems
in isolation: source, build and install directories with spaces as well as flag
setting environment variables.

#!/bin/bash
mkdir "1 Odd_ source dir++"
mkdir "1 Odd_ build dir++"
mkdir "1 Odd_ install dir++"
cd "1 Odd_ source dir++"
tar -xvf ~/Downloads/tcl8.6.10-src.tar.gz
cd "$HOME/1 Odd_ build dir++"
export CPPFLAGS="-I$HOME/1 Odd_ install dir++/include"
export LDFLAGS="-L$HOME/1 Odd_ install dir++/lib"
"$HOME/1 Odd_ source dir++/tcl8.6.10/unix/configure" --prefix="$HOME/1 Odd_ install dir++"
User Comments: jan.nijtmans added on 2020-11-13 08:52:05:

This is already fixed in this commit: [1f6f21856babdfec]

I don't think having odd source/build directories is a priority, but it should be installable everywhere. However, if you find more fixes, feel free to report them here. So, please try out the "core-8-6-branch" (or "core-8-branch" or "main") first, and see if it's fixed there. If not, you can re-open this ticket.


anonymous added on 2020-11-13 02:06:24:
Never mind - it looks like autotools limitations make this impractical.  The fix in https://sourceforge.net/p/brlcad/code/77727 is legit, but the more general case isn't worth worrying about.

anonymous added on 2020-11-12 22:37:17:
Update:  we're trying to determine if source directory paths with spaces are supported by autotools - if not, the full generality of this situation may not be supportable.