Commits (177)
......@@ -38,7 +38,7 @@ jobs:
fail-fast: false
max-parallel: 6
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, ubuntu-focal-i386, debian-buster-i386, centos-7-i386]
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_packages_factor: [maximal]
targets_pattern: [0-g, h-o, p, q-z]
env:
......
......@@ -38,7 +38,7 @@ jobs:
fail-fast: false
max-parallel: 6
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, ubuntu-focal-i386, debian-buster-i386, centos-7-i386]
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_packages_factor: [maximal]
targets_pattern: [0-g, h-o, p, q-z]
env:
......
......@@ -38,7 +38,7 @@ jobs:
fail-fast: false
max-parallel: 20
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, ubuntu-focal-i386, debian-buster-i386, centos-7-i386]
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_packages_factor: [minimal, standard]
env:
TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
......
......@@ -23,6 +23,14 @@
/src/environment.yml
/src/environment-optional.yml
/src/setup.cfg
/src/requirements.txt
/src/pyproject.toml
/src/Pipfile
/src/Pipfile.lock
/Pipfile
/Pipfile.lock
# Various editors
*~
......@@ -93,6 +101,9 @@ __pycache__/
*.py[cod]
*$py.class
# Generated by sage_setup.autogen
/src/sage/ext/interpreters
# Generated Cython files
*.so
src/sage/**/*.c
......@@ -130,6 +141,14 @@ build/bin/sage-build-env-config
/build/pkgs/*/src/*.egg-info
/build/pkgs/*/src/.tox
# Generated by docbuild
/src/doc/en/reference/*/sage
/src/doc/en/reference/sage
/src/doc/en/reference/spkg/*.rst
/src/doc/output
/src/doc/en/installation/*.txt
/src/doc/en/reference/repl/*.txt
# Distribution / packaging
src/*.egg-info/
/src/.cython_version
......@@ -138,6 +157,11 @@ src/*.egg-info/
/src/bin/sage-env-config
/src/bin/sage-src-env-config
/src/pkgs/sage_conf-pypi/bin/sage-env-config
/src/pkgs/sage_conf-relocatable/sage_root
/src/pkgs/*/build
/src/pkgs/*/dist
# Virtual environments
src/.env
src/.venv
......@@ -152,5 +176,8 @@ src/venv.bak/
# tox generated files
/.tox
/build/.tox
/prefix
# git worktree
worktree*
......@@ -79,6 +79,19 @@ download:
dist: build/make/Makefile
./sage --sdist
pypi-sdists:
./sage --sh build/pkgs/sage_conf/spkg-src
./sage --sh build/pkgs/sage_sws2rst/spkg-src
./sage --sh build/pkgs/sage_docbuild/spkg-src
./sage --sh build/pkgs/sagelib/spkg-src
@echo "Built sdists are in upstream/"
# We run this with the python3 from 'sage -sh' so that we get the configured python3 and our versions of setuptools/wheel.
# But we run it outside of 'sage -sh' because we do not want all the environment settings.
sage-wheels: config.status setuptools wheel
PYTHON3=$$(./sage -sh -c 'command -v python3') && (cd src/pkgs/sage_conf-relocatable/ && $$PYTHON3 setup.py bdist_wheel)
@echo "Built wheels are in src/pkgs/sage_conf-relocatable/dist/ and src/pkgs/sage_conf-relocatable/sage_root/venv-cpython*/var/lib/sage/wheels/"
# ssl: build Sage, and also install pyOpenSSL. This is necessary for
# running the secure notebook. This make target requires internet
# access. Note that this requires that your system have OpenSSL
......
## Pipfile with all packages in the Sage distribution and version information locked
## FIXME: Many packages still missing.
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
pkgconfig = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../pkgconfig/package-version.txt)')"
cython = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)')"
pycodestyle = "*"
ipykernel = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../ipykernel/package-version.txt)')"
tox = "*"
jinja2 = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../jinja2/package-version.txt)')"
pytest = "*"
ipywidgets = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../ipywidgets/package-version.txt)')"
sphinx = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../sphinx/package-version.txt)')"
rope = "*"
six = "*"
jupyter-core = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../jupyter_core/package-version.txt)')"
[packages]
numpy = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../numpy/package-version.txt)')"
cysignals = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../cysignals/package-version.txt)')"
cypari2 = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../cypari/package-version.txt)')"
gmpy2 = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../gmpy2/package-version.txt)')"
psutil = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../psutil/package-version.txt)')"
pexpect = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../pexpect/package-version.txt)')"
ipython = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../ipython/package-version.txt)')"
sympy = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../sympy/package-version.txt)')"
scipy = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../scipy/package-version.txt)')"
pplpy = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)')"
matplotlib = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../matplotlib/package-version.txt)')"
cvxopt = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../cvxopt/package-version.txt)')"
rpy2 = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../rpy2/package-version.txt)')"
networkx = "==esyscmd(`printf $(sed "s/[.]p.*//;" ../networkx/package-version.txt)')"
sagemath-standard = { path = "src" }
[requires]
python_version = "3.9"
......@@ -24,6 +24,7 @@
# Set SAGE_ROOT to the path to this file and then cd into it
SAGE_ROOT="$(cd "$(dirname "$0")" && pwd -P)"
export SAGE_ROOT
cd "$SAGE_ROOT"
export PATH="$SAGE_ROOT/build/bin:$PATH"
......@@ -108,6 +109,10 @@ SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A-Z]')"
done
echo "$spkg_configures" >> m4/sage_spkg_configures.m4
for pkgname in $(./sage --package list --has-file bootstrap); do
(cd build/pkgs/$pkgname && ./bootstrap) || exit 1
done
# Default to no filter if "-q" was not passed.
QUIET_SED_FILTER=""
if [ "${BOOTSTRAP_QUIET}" = "yes" ]; then
......@@ -119,8 +124,6 @@ SAGE_SPKG_CONFIGURE_$(echo ${pkgname} | tr '[a-z]' '[A-Z]')"
# ONLY stderr, and to re-output the results back to stderr leaving
# stdout alone. Basically we swap the two descriptors using a
# third, filter, and then swap them back.
BOOTSTRAP_QUIET="${BOOTSTRAP_QUIET}" \
SAGE_ROOT="$SAGE_ROOT" \
src/doc/bootstrap && \
install_config_rpath && \
aclocal -I m4 && \
......@@ -262,6 +265,7 @@ do
?) usage; exit 2;;
esac
done
export BOOTSTRAP_QUIET
CONFBALL="upstream/configure-$CONFVERSION.tar.gz"
if [ $DOWNLOAD$SAVE = yesyes ]; then
......
global-exclude .tox
global-exclude *~*
global-exclude *.bak
......@@ -39,10 +39,10 @@
#
# - sdh_configure [...]
#
# Runs `./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"`,
# (for autoconf'd projects with extra
# --disable-maintainer-mode --disable-dependency-tracking)
# Additional arguments to `./configure` may be given as arguments.
# Runs `./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"`
# --disable-static, (for autoconf'd projects with extra
# --disable-maintainer-mode --disable-dependency-tracking) Additional
# arguments to `./configure` may be given as arguments.
#
# - sdh_make [...]
#
......@@ -160,9 +160,16 @@ sdh_configure() {
if [ -z "$CONFIG_SHELL" ]; then
export CONFIG_SHELL=`command -v bash`
fi
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" --disable-maintainer-mode --disable-dependency-tracking "$@"
if [ "$UNAME" = "CYGWIN" ]; then
# TODO: To use --disable-static for all packages on Cygwin, need
# #30814: Cygwin: Fix remaining packages to build shared libraries, using AM_LDFLAGS=-no-undefined
DISABLE_STATIC=
else
DISABLE_STATIC=--disable-static
fi
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" $DISABLE_STATIC --disable-maintainer-mode --disable-dependency-tracking "$@"
if [ $? -ne 0 ]; then # perhaps it is a non-autoconf'd project
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" "$@"
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" $DISABLE_STATIC "$@"
if [ $? -ne 0 ]; then
if [ -f "$(pwd)/config.log" ]; then
sdh_die <<_EOF_
......
......@@ -11,18 +11,41 @@ if [ -z "$SAGE_ROOT" ]; then
SAGE_ROOT=`pwd`
fi
case "$SYSTEM" in
install-requires)
# Collect install-requires.txt and output it in the format
# needed by setup.cfg [options] install_requires=
SYSTEM_PACKAGES_FILE_NAMES="install-requires.txt"
STRIP_COMMENTS="sed s/#.*//;/^[[:space:]]*$/d;"
COLLECT=
;;
install-requires-toml)
# Collect install-requires.txt and output it in the format
# needed by pyproject.toml [build-system] requires=
SYSTEM_PACKAGES_FILE_NAMES="install-requires.txt"
STRIP_COMMENTS="sed s/#.*//;/^[[:space:]]*$/d;s/^/'/;s/$/',/;"
COLLECT=
;;
pip)
SYSTEM_PACKAGES_FILE_NAME="requirements.txt"
SYSTEM_PACKAGES_FILE_NAMES="requirements.txt install-requires.txt"
STRIP_COMMENTS='sed s/#.*//;s/[[:space:]]//g;'
COLLECT=echo
;;
*)
SYSTEM_PACKAGES_FILE_NAME="distros/$SYSTEM.txt"
SYSTEM_PACKAGES_FILE_NAMES="distros/$SYSTEM.txt"
STRIP_COMMENTS="sed s/#.*//;"
COLLECT=echo
;;
esac
for PKG_BASE in $SPKGS; do
SYSTEM_PACKAGES_FILE="$SAGE_ROOT"/build/pkgs/$PKG_BASE/$SYSTEM_PACKAGES_FILE_NAME
if [ -f $SYSTEM_PACKAGES_FILE ]; then
echo $(${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE)
fi
for NAME in $SYSTEM_PACKAGES_FILE_NAMES; do
SYSTEM_PACKAGES_FILE="$SAGE_ROOT"/build/pkgs/$PKG_BASE/$NAME
if [ -f $SYSTEM_PACKAGES_FILE ]; then
if [ -z "$COLLECT" ]; then
${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE
else
$COLLECT $(${STRIP_COMMENTS} $SYSTEM_PACKAGES_FILE)
fi
break
fi
done
done
......@@ -525,7 +525,7 @@ export PKG_NAME="$PKG_NAME"
export PKG_BASE="$PKG_BASE"
export PKG_VER="$PKG_VER"
for lib in "\$SAGE_ROOT/build/bin/sage-dist-helpers" "\$SAGE_SRC/bin/sage-env-config" "\$SAGE_SRC/bin/sage-env" "\$SAGE_ROOT/build/bin/sage-build-env-config" "\$SAGE_ROOT/build/bin/sage-build-env"; do
for lib in "\$SAGE_ROOT/build/bin/sage-dist-helpers" "\$SAGE_SRC/bin/sage-src-env-config" "\$SAGE_SRC/bin/sage-env-config" "\$SAGE_SRC/bin/sage-env" "\$SAGE_ROOT/build/bin/sage-build-env-config" "\$SAGE_ROOT/build/bin/sage-build-env"; do
source "\$lib"
if [ \$? -ne 0 ]; then
echo >&2 "Error: failed to source \$lib"
......@@ -533,6 +533,7 @@ for lib in "\$SAGE_ROOT/build/bin/sage-dist-helpers" "\$SAGE_SRC/bin/sage-env-co
exit 1
fi
done
export PATH="$SAGE_INST_LOCAL/bin:$PATH"
export SAGE_INST_LOCAL="$SAGE_INST_LOCAL"
......@@ -701,7 +702,7 @@ rm -f "$SAGE_DESTDIR_LOCAL/lib64"
# All spkgs should eventually support this, but fall back on old behavior in
# case DESTDIR=$SAGE_DESTDIR installation was not used
echo "Copying package files from temporary location $SAGE_DESTDIR to $SAGE_LOCAL"
echo "Copying package files from temporary location $SAGE_DESTDIR to $SAGE_INST_LOCAL"
if [ -d "$SAGE_DESTDIR" ]; then
# Some `find` implementations will put superfluous slashes in the
# output if we give them a directory name with a slash; so make sure
......@@ -717,8 +718,8 @@ if [ -d "$SAGE_DESTDIR" ]; then
# Generate installed file manifest
FILE_LIST="$(cd "$PREFIX" && find . -type f -o -type l | sed 's|^\./||' | sort)"
# Copy files into $SAGE_LOCAL
$SAGE_SUDO cp -Rp "$PREFIX/." "$SAGE_LOCAL"
# Copy files into $SAGE_INST_LOCAL
$SAGE_SUDO cp -Rp "$PREFIX/." "$SAGE_INST_LOCAL"
if [ $? -ne 0 ]; then
error_msg "Error copying files for $PKG_NAME."
exit 1
......@@ -784,7 +785,7 @@ fi
# Note: spkg-check tests are run after the package has been copied into
# SAGE_LOCAL. It might make more sense to run the tests before, but the
# SAGE_INST_LOCAL. It might make more sense to run the tests before, but the
# spkg-check scripts were written before use of DESTDIR installs, and so
# fail in many cases. This might be good to change later.
......
......@@ -8,13 +8,14 @@ shopt -s extglob
SAGE_PACKAGE_LIST_ARGS="${2:- --has-file=spkg-configure.m4 :standard:}"
WITH_SYSTEM_SPKG="${3:-yes}"
IGNORE_MISSING_SYSTEM_PACKAGES="${4:-no}"
EXTRA_SAGE_PACKAGES="${5:-_bootstrap}"
#
STRIP_COMMENTS="sed s/#.*//;"
SAGE_ROOT=.
export PATH="$SAGE_ROOT"/build/bin:$PATH
SYSTEM_PACKAGES=
CONFIGURE_ARGS="--enable-option-checking "
for PKG_BASE in $($SAGE_ROOT/sage -package list --has-file=distros/$SYSTEM.txt $SAGE_PACKAGE_LIST_ARGS) _bootstrap; do
for PKG_BASE in $($SAGE_ROOT/sage -package list --has-file=distros/$SYSTEM.txt $SAGE_PACKAGE_LIST_ARGS) $EXTRA_SAGE_PACKAGES; do
PKG_SCRIPTS="$SAGE_ROOT"/build/pkgs/$PKG_BASE
if [ -d $PKG_SCRIPTS ]; then
SYSTEM_PACKAGES_FILE=$PKG_SCRIPTS/distros/$SYSTEM.txt
......@@ -186,9 +187,10 @@ FROM with-system-packages as bootstrapped
#:bootstrapping:
RUN mkdir -p /sage
WORKDIR /sage
ADD Makefile VERSION.txt README.md bootstrap configure.ac sage ./
ADD Makefile VERSION.txt COPYING.txt condarc.yml README.md bootstrap configure.ac sage .homebrew-build-env tox.ini Pipfile.m4 ./
ADD src/doc/bootstrap src/doc/bootstrap
ADD src/bin src/bin
ADD src/pkgs/sage_conf src/pkgs/sage_conf
ADD m4 ./m4
ADD build ./build
ARG BOOTSTRAP=./bootstrap
......
......@@ -26,10 +26,8 @@ $(error This Makefile needs to be invoked by build/make/install)
endif
endif
# Directory to keep track of which packages are installed
SAGE_SPKG_INST = $(SAGE_LOCAL)/var/lib/sage/installed
INST = $(SAGE_SPKG_INST)
# Directory to keep track of which packages are installed - relative to installation prefix
SPKG_INST_RELDIR = var/lib/sage/installed
# Aliases for mutually exclusive standard packages selected at configure time
TOOLCHAIN = @SAGE_TOOLCHAIN@
......@@ -54,6 +52,10 @@ SAGE_SPKG = sage-spkg
# These are added to SAGE_SPKG in the call
SAGE_SPKG_OPTIONS = @SAGE_SPKG_OPTIONS@
# Where the Sage distribution installs Python packages.
# This can be overridden by 'make SAGE_VENV=/some/venv'.
SAGE_VENV = @SAGE_VENV@
# Generate/install sage-specific .pc files.
# see build/pkgs/gsl/spkg-configure.m4
$(SAGE_PKGCONFIG)/gsl.pc:
......@@ -140,10 +142,9 @@ SCRIPT_PACKAGES = @SAGE_SCRIPT_PACKAGES@
# inst_git = $(INST)/.dummy
$(foreach pkgname,$(BUILT_PACKAGES),\
$(eval inst_$(pkgname) = $$(INST)/$(pkgname)-$(vers_$(pkgname))))
$(eval inst_$(pkgname) = $(foreach tree, $(trees_$(pkgname)), $($(tree))/$(SPKG_INST_RELDIR)/$(pkgname)-$(vers_$(pkgname)))))
$(foreach pkgname,$(DUMMY_PACKAGES),\
$(eval inst_$(pkgname) = $$(INST)/.dummy))
$(eval inst_$(pkgname) = $(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy))
# Override this for pip packages, for which we do not keep an installation record
# in addition to what pip is already doing.
......@@ -151,7 +152,7 @@ $(foreach pkgname,$(PIP_PACKAGES),\
$(eval inst_$(pkgname) = $(pkgname)))
# Dummy target for packages which are not installed
$(INST)/.dummy:
$(SAGE_LOCAL)/$(SPKG_INST_RELDIR)/.dummy:
touch $@
......@@ -206,10 +207,10 @@ ifneq ($(PYTHON_FOR_VENV),)
ifeq ($(PYTHON),python3)
PYTHON = python3_venv
endif
inst_python3_venv = $(SAGE_LOCAL)/pyvenv.cfg
inst_python3_venv = $(SAGE_VENV)/pyvenv.cfg
$(inst_python3_venv):
$(PYTHON_FOR_VENV) $(SAGE_ROOT)/build/bin/sage-venv "$(SAGE_LOCAL)"
$(PYTHON_FOR_VENV) $(SAGE_ROOT)/build/bin/sage-venv "$(SAGE_VENV)"
endif
# Build everything and start Sage.
......@@ -231,7 +232,6 @@ base-toolchain: _clean-broken-gcc base
# All targets except for the base packages
all-sage: \
sagelib \
$(INSTALLED_PACKAGE_INSTS) \
$(UNINSTALLED_PACKAGES_CLEANS)
......@@ -280,7 +280,7 @@ all-toolchain: base-toolchain
# All packages needed as a prerequisite to install other Python packages with
# pip or which are otherwise used by the Python build tools; these should be
# given as a prerequisite to any pip-installed packages
PYTHON_TOOLCHAIN = setuptools pip setuptools_scm
PYTHON_TOOLCHAIN = setuptools pip setuptools_scm wheel setuptools_wheel
# Everything needed to start up Sage using "./sage". Of course, not
# every part of Sage will work. It does not include Maxima for example.
......@@ -521,37 +521,44 @@ pkg_deps = \
# $(1): package name
# $(2): package version
# $(3): package dependencies
# $(4): package tree variable
define NORMAL_PACKAGE_templ ##########################################
$(1)-build-deps: $(3)
$$(INST)/$(1)-$(2): $(3)
+$(MAKE_REC) $(1)-no-deps
$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2): $(3)
+$(MAKE_REC) $(1)-$(4)-no-deps
$(1): $$(INST)/$(1)-$(2)
$(1): $$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2)
$(1)-no-deps:
+$(AM_V_at)sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \
$(1)-$(4)-no-deps:
+$(AM_V_at)sage-logger -p 'SAGE_CHECK=$$(SAGE_CHECK_$(1)) PATH=$$($(4))/bin:$$$$PATH $$(SAGE_SPKG) $$(SAGE_SPKG_OPTIONS) \
$(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-existing) \
$(1)-$(2)' '$$(SAGE_LOGS)/$(1)-$(2).log'
$(1)-$(2) $$($(4))' '$$(SAGE_LOGS)/$(1)-$(2).log'
$(1)-clean:
$(1)-no-deps: $(1)-$(4)-no-deps
$(1)-$(4)-clean:
sage-spkg-uninstall $(if $(filter $(1),$(TOOLCHAIN_DEPS)),--keep-files) \
$(1) '$(SAGE_LOCAL)'
$(1) '$$($(4))'
$(1)-clean: $(1)-$(4)-clean
.PHONY: $(1) $(1)-clean $(1)-build-deps $(1)-no-deps
endef #################################################################
$(foreach pkgname, $(NORMAL_PACKAGES),\
$(foreach tree, $(trees_$(pkgname)), \
$(eval $(call NORMAL_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),\
$(call pkg_deps,$(pkgname)))))
$(call pkg_deps,$(pkgname)),$(tree)))))
ifdef DEBUG_RULES
$(info # Rules for standard packages)
$(foreach pkgname, $(NORMAL_PACKAGES),\
$(foreach tree, $(trees_$(pkgname)), \
$(info $(call NORMAL_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),\
$(call pkg_deps,$(pkgname)))))
$(call pkg_deps,$(pkgname)),$(tree)))))
endif
# ================================ pip packages ===============================
......@@ -617,44 +624,54 @@ endif
# $(1): package name
# $(2): package version
# $(3): package dependencies
# $(4): package tree variable
define SCRIPT_PACKAGE_templ
$(1)-build-deps: $(3)
$$(INST)/$(1)-$(2): $(3)
+$(MAKE_REC) $(1)-no-deps
$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2): $(3)
+$(MAKE_REC) $(1)-$(4)-no-deps
$(1): $$(INST)/$(1)-$(2)
$(1): $$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2)
$(1)-no-deps:
$(1)-$(4)-no-deps:
$(AM_V_at)cd '$$(SAGE_ROOT)/build/pkgs/$(1)' && \
. '$$(SAGE_ROOT)/src/bin/sage-src-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env' && \
. '$$(SAGE_ROOT)/build/bin/sage-build-env-config' && \
. '$$(SAGE_ROOT)/build/bin/sage-build-env' && \
SAGE_SPKG_WHEELS=$$(SAGE_LOCAL)/var/lib/sage/wheels \
SAGE_INST_LOCAL=$$(SAGE_LOCAL) \
SAGE_SPKG_WHEELS=$$($(4))/var/lib/sage/wheels \
SAGE_INST_LOCAL=$$($(4)) \
sage-logger -p '$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-install' '$$(SAGE_LOGS)/$(1)-$(2).log'
touch "$$(INST)/$(1)-$(2)"
touch "$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2)"
$(1)-no-deps: $(1)-$(4)-no-deps
$(1)-uninstall:
$(1)-$(4)-uninstall:
-$(AM_V_at)cd '$$(SAGE_ROOT)/build/pkgs/$(1)' && \
. '$$(SAGE_ROOT)/src/bin/sage-src-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env-config' && \
. '$$(SAGE_ROOT)/src/bin/sage-env' && \
. '$$(SAGE_ROOT)/build/bin/sage-build-env-config' && \
. '$$(SAGE_ROOT)/build/bin/sage-build-env' && \
'$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-uninstall'
-rm -f "$$(INST)/$(1)-$(2)"
-rm -f "$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2)"
$(1)-uninstall: $(1)-$(4)-uninstall
.PHONY: $(1) $(1)-uninstall $(1)-build-deps $(1)-no-deps $(1)-clean
endef
$(foreach pkgname,$(SCRIPT_PACKAGES),\
$(eval $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)))))
$(foreach tree, $(trees_$(pkgname)), \
$(eval $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)),$(tree)))))
ifdef DEBUG_RULES
$(info # Rules for script packages)
$(foreach pkgname,$(SCRIPT_PACKAGES),\
$(info $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)))))
$(foreach tree, $(trees_$(pkgname)), \
$(info $(call SCRIPT_PACKAGE_templ,$(pkgname),$(vers_$(pkgname)),$(call pkg_deps,$(pkgname)),$(tree)))))
endif
# sagelib depends on this so that its install script is always executed
......
cd src
sdh_configure --disable-static
sdh_configure
sdh_make
sdh_make_install
cd src
# Enable the now-deprecated `freetype-config`
GNUMAKE=${MAKE} sdh_configure --enable-freetype-config
GNUMAKE=${MAKE} sdh_configure --enable-freetype-config $FREETYPE_CONFIGURE
sdh_make
sdh_make_install
......
tarball=giac-VERSION.tar.bz2
sha1=bc77da05dcad6467e22ab2ab5939230013dadd80
md5=3fd5817179e18bc74eab9a7ea0dfd939
cksum=1776117665
upstream_url=https://trac.sagemath.org/raw-attachment/ticket/30537/giac-1.6.0.47p2.tar.bz2
sha1=b0e81969eb2527964efc802bf35c31d140031571
md5=f8253082e5dcde5724b4d6f2300d8669
cksum=3973759340
upstream_url=https://trac.sagemath.org/raw-attachment/ticket/31562/giac-VERSION.tar.bz2
From 2285c11b3cfebc31aa2c032015c76820e3a62030 Mon Sep 17 00:00:00 2001
From: Matthias Koeppe <mkoeppe@math.ucdavis.edu>
Date: Thu, 25 Mar 2021 18:00:38 -0700
Subject: [PATCH] configure.ac: Do not link to libintl if USE_NLS is no
---
configure.ac | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index bfa767d..43c6ff9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -464,7 +464,12 @@ AC_CHECK_FUNCS(system, , AC_DEFINE(HAVE_NO_SYSTEM, 1, [Set if system() function
ALL_LINGUAS="es fr el pt it en zh de"
AM_GNU_GETTEXT
AM_GNU_GETTEXT_VERSION([0.14.5])
-AC_CHECK_LIB(intl, main)
+AS_VAR_IF([USE_NLS], [yes],
+ dnl Whether this is needed at all, after all the AM_GNU_GETTEXT macros
+ dnl were run, is unknown. But at least we should disable it if NLS
+ dnl is disabled.
+ AC_CHECK_LIB(intl, main)
+])dnl
dnl auto-check will work if the function checked is alone in a file
dnl and independant from the whole micropython library
dnl otherwise it will fail because it depends on giac
--
2.28.0
......@@ -15,7 +15,7 @@ set -e
VERSION="1.6.0"
VERSIONREV="47"
PATCHSUFFIX="p2"
PATCHSUFFIX="p3"
# The upstream tarball name is: giac"$SOURCEORIG".tar.gz
SOURCEORIG=_"$VERSION"-"$VERSIONREV"
......