Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sage
Path: blob/develop/build/bin/sage-clone-source
4052 views
#!/bin/sh

########################################################################
# Helper script for sdist
#
# Usage: sage-clone-source SRC DST
#
# Create empty directory DST (delete it if it existed) and copy all
# Sage source files from SRC to DST using git.
#
# Also extract auto-generated files from the configure tarball.
########################################################################

set -e

if [ $# -ne 2 ]; then
    echo >&2 "Usage: $0 SRC DST"
    exit 2
fi

SRC="$1"
DST="$2"

cd "$SRC"

# Filename of configure tarball, which is downloaded if it doesn't exist
CONFVERSION=`cat build/pkgs/configure/package-version.txt`
CONFBALL="$SRC/upstream/configure-$CONFVERSION.tar.gz"
[ -f "$CONFBALL" ] || ./bootstrap -D

rm -rf "$DST"
mkdir -p "$DST"

git clone --origin upstream "$SRC" "$DST"

cd "$DST"
git remote set-url upstream "$SAGE_REPO_ANONYMOUS"
git remote set-url --push upstream "do not push to upstream"
git remote add trac https://github.com/sagemath/sagetrac-mirror.git
git remote set-url --push trac "do not push to trac"

# Save space
git gc --aggressive --prune=now

# Extract configure tarball. Use m option such that the timestamps of
# these auto-generated files are NOW (instead of the time stored in the
# tarball). We need these files to be more recent than the input files
# like configure.ac, otherwise "make" gets confused.
tar xzmf "$CONFBALL"

echo "Finished cloning Sage sources"