The path MUST NOT contain spaces.

184 views
Skip to first unread message

ph h

unread,
May 24, 2022, 6:11:00 PM5/24/22
to sage-devel
Dear All,

Does this apply only to "$SAGE_ROOT"? 
Can sub-directories of "$SAGE_ROOT" (like "lo space cal") contain spaces?
Is it OK for $SAGE_LOCAL to contain spaces? If it is so, why the differences?

Thank you for your help.

Regards,

phiho


<sage-env>
if contains_spaces X${SAGE_ROOT}X ; then
    echo "Error: The path to the Sage directory (\$SAGE_ROOT) MUST NOT contain spaces."
    echo "It is currently \"$SAGE_ROOT\"."
    echo "Please correct this by moving Sage (or renaming one or more directories) first."
    echo "Exiting now..."
    return 1
fi
</sage-env>


Matthias Koeppe

unread,
May 24, 2022, 7:32:28 PM5/24/22
to sage-devel
On Tuesday, May 24, 2022 at 3:11:00 PM UTC-7 hohoa...@gmail.com wrote:
Does this apply only to "$SAGE_ROOT"? 
Can sub-directories of "$SAGE_ROOT" (like "lo space cal") contain spaces?
Is it OK for $SAGE_LOCAL to contain spaces? If it is so, why the differences?

We do not systematically test this, but also SAGE_LOCAL should not contain spaces.
 
Many of our build scripts do not quote correctly and will break when SAGE_LOCAL contains spaces.
If SAGE_LOCAL is "/lo space cal", then when CONFIGURE_FLAGS="--prefix=$SAGE_LOCAL --libdir=$SAGE_LOCAL/lib" is passed to sdh_configure, it will expand to too many arguments.

Fixing this would be a welcome contribution -- but likely also many upstream projects have the same issues in their build scripts.


 

ph h

unread,
May 27, 2022, 7:33:14 AM5/27/22
to sage-...@googlegroups.com
Hi,

Maybe the tests with "contains_spaces()" in 'src/bin/sage-env' can be replaced with the followings in 'configure.ac' (after line 75, SAGE_LOCAL="$prefix"):

# Check that we are not building in a directory containing spaces
AS_IF([echo "$ac_pwd" |grep " " >/dev/null],
      AC_MSG_ERROR([The path to the Sage root directory ($ac_pwd) contains a space. Sage will not build correctly in this case])
)

# Check that we are not installing to a directory containing spaces
AS_IF([echo "$SAGE_LOCAL" |grep " " >/dev/null],
      AC_MSG_ERROR([The path to the Sage installation directory ($SAGE_LOCAL) contains a space. Sage will not work correctly in this case])
)
</configure.ac>

The first AS_IF() was moved up from below (around line 420)

Thank you for your help.

Regards,

phiho


--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/bf505cca-95bc-4fe9-8aa7-4cfa736da55bn%40googlegroups.com.

ph h

unread,
May 27, 2022, 8:28:53 AM5/27/22
to sage-...@googlegroups.com
P.S: Would this snippet in 'bootstrap' (below SAGE_ROOT=...) help, too:

# Set SAGE_ROOT to the path to this file and then cd into it
SAGE_ROOT="$(cd "$(dirname "$0")" && pwd -P)"


# Check that we are not building in a directory containing spaces
if echo "$SAGE_ROOT" | grep " " > /dev/null ; then
    echo "The path to the Sage root directory ($SAGE_ROOT) contains a space. Sage will not build correctly in this case."
    exit 1
fi



ph h

unread,
May 27, 2022, 10:57:10 AM5/27/22
to sage-...@googlegroups.com
PPS: Just FYI, before the above snippet was roughed in, "make configure" from "$SAGE_ROOT" with embedded spaces indicates that "$SYSTEM_PACKAGES_FILE" need be properly quoted in "build/bin/sage-get-system-packages" and "src/doc/bootstrap", at least(?)

It couldn't be figured out why tons of sed 's complaints (related to the pathname with spaces) come from:

(echo ".. _spkg_$PKG_BASE:" && echo && OUTPUT_RST=1 sage-spkg-info "$PKG_BASE") | sed -e "s|https://trac.sagemath.org/ticket/\([0-9]*\)|:trac:\`\1\`|g" -e "s|https://arxiv.org/abs/cs/\([0-9]*\)|:arxiv:\`cs/\1\`|g" > "$OUTPUT_DIR"/$PKG_BASE.rst

Any help is much appreciated.

<src/doc/bootstrap>
for PKG_BASE in $(sage-package list --has-file SPKG.rst | sort); do
            PKG_SCRIPTS=build/pkgs/$PKG_BASE
            # Instead of just copying, we may want to call
            # a version of sage-spkg-info to format extra information.
            # for sphinx 4.4 we need to replace all direct links by some "extlink" (ticket 33272)

            (echo ".. _spkg_$PKG_BASE:" && echo && OUTPUT_RST=1 sage-spkg-info "$PKG_BASE") | sed -e "s|https://trac.sagemath.org/ticket/\([0-9]*\)|:trac:\`\1\`|g" -e "s|https://arxiv.org/abs/cs/\([0-9]*\)|:arxiv:\`cs/\1\`|g" > "$OUTPUT_DIR"/$PKG_BASE.rst
            echo >> "$OUTPUT_INDEX" "   $PKG_BASE"
done
</src/doc/bootstrap>

Matthias Koeppe

unread,
May 27, 2022, 2:42:43 PM5/27/22
to sage-devel
The check during "bootstrap" would not help because the files that bootstrap generates go into a source distribution.

Matthias Koeppe

unread,
May 27, 2022, 2:43:41 PM5/27/22
to sage-devel
Yes, such checks in "configure.ac" would be a good idea. Please open a ticket for it.

ph h

unread,
May 27, 2022, 2:57:30 PM5/27/22
to sage-...@googlegroups.com
Hi,

Thanks for the clarification. 
Does that do anything bad for the source distribution or anything positive for the github checkout?

Regards,

phiho


Matthias Koeppe

unread,
May 27, 2022, 3:05:47 PM5/27/22
to sage-devel
bootstrap should work just fine from a path with spaces. (Test this on top of the work that is already done - https://trac.sagemath.org/ticket/33852)

ph h

unread,
May 27, 2022, 3:08:54 PM5/27/22
to sage-...@googlegroups.com
Hi,

>  Please open a ticket for it.
Thank you for the encouragement but this hitchhiker has admitted her weakness with the ticket system.
It is just a copy and paste snippet, maybe those who are in charge of 'configure.ac' could help with the ticket issue?

All the best,

phiho



ph h

unread,
May 27, 2022, 3:11:42 PM5/27/22
to sage-...@googlegroups.com
Hi,

> bootstrap should work just fine from a path with spaces. (Test this on top of the work that is already done - https://trac.sagemath.org/ticket/33852)
Thst''s good to know. Apparently it has not been merged into Sage 9.7 Beta1 yet.
Looking forward to the merge.

Cheers,

phiho




Matthias Koeppe

unread,
May 27, 2022, 3:30:38 PM5/27/22
to sage-devel
On Friday, May 27, 2022 at 12:08:54 PM UTC-7 hohoa...@gmail.com wrote:

>  Please open a ticket for it.
Thank you for the encouragement but this hitchhiker has admitted her weakness with the ticket system.
It is just a copy and paste snippet, maybe those who are in charge of 'configure.ac' could help with the ticket issue?

That's not how it works 

John H Palmieri

unread,
May 27, 2022, 5:39:16 PM5/27/22
to sage-devel
The development process and the trac server are documented at https://doc.sagemath.org/html/en/developer/trac.html#the-sage-trac-server.

ph h

unread,
May 27, 2022, 9:24:12 PM5/27/22
to sage-...@googlegroups.com
Hi,

Thanks for the link but it is way above her head right now.

Thanks for your support, anyway.

Regards,

phiho


--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages