Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit a35428e

Browse files
author
Matthias Koeppe
committed
Merge #30383
2 parents 48d2a2b + 4916415 commit a35428e

File tree

5 files changed

+85
-70
lines changed

5 files changed

+85
-70
lines changed

bootstrap

+9-1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,13 @@ install_config_rpath() {
8181
bootstrap () {
8282
rm -f m4/sage_spkg_configures.m4
8383
spkg_configures=""
84+
85+
# initialize SAGE_ENABLE... options for standard packages
86+
for pkgname in $(./sage --package list :standard: | sort); do
87+
spkg_configures="$spkg_configures
88+
AS_VAR_SET_IF([SAGE_ENABLE_$pkgname], [], [AS_VAR_SET([SAGE_ENABLE_$pkgname], [yes])])"
89+
done
90+
# --enable-SPKG options
8491
for pkgname in $(./sage --package list :optional: :experimental: | sort); do
8592
# Trac #29629: Temporary solution for Sage 9.1: Do not provide
8693
# --enable-SPKG options for installing pip packages
@@ -90,7 +97,8 @@ bootstrap () {
9097
case "$pkgname" in
9198
_*) ;;
9299
*) spkg_configures="$spkg_configures
93-
SAGE_SPKG_ENABLE([$pkgname], [$pkgtype])" ;;
100+
AC_SUBST(SAGE_ENABLE_$pkgname, [if_installed])
101+
SAGE_SPKG_ENABLE([$pkgname], [$pkgtype], [$(head -n1 build/pkgs/$pkgname/SPKG.rst 2>/dev/null || echo $pkgname)])" ;;
94102
esac
95103
fi
96104
done

build/make/Makefile.in

+10-17
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,16 @@ GCC_DEP = @SAGE_GCC_DEP@
9898

9999
@SAGE_PACKAGE_TREES@
100100

101-
# All standard packages
102-
STANDARD_PACKAGES = @SAGE_STANDARD_PACKAGES@
103-
STANDARD_PACKAGE_INSTS = \
104-
$(foreach pkgname,$(STANDARD_PACKAGES),$(inst_$(pkgname)))
105-
106-
# Optional/experimental packages to be installed
101+
# All standard/optional/experimental installed packages (triggers the auto-update)
107102
OPTIONAL_INSTALLED_PACKAGES = @SAGE_OPTIONAL_INSTALLED_PACKAGES@
108-
109-
# All packages to be installed
110-
INSTALLED_PACKAGES = $(STANDARD_PACKAGES) $(OPTIONAL_INSTALLED_PACKAGES)
103+
INSTALLED_PACKAGES = $(OPTIONAL_INSTALLED_PACKAGES)
111104
INSTALLED_PACKAGE_INSTS = \
112105
$(foreach pkgname,$(INSTALLED_PACKAGES),$(inst_$(pkgname)))
113106

114-
# All previously installed packages that are to be uninstalled
115-
OPTIONAL_CLEANED_PACKAGES = @SAGE_OPTIONAL_CLEANED_PACKAGES@
116-
CLEANED_PACKAGES = $(OPTIONAL_CLEANED_PACKAGES)
117-
CLEANED_PACKAGES_CLEANS = $(CLEANED_PACKAGES:%=%-clean)
107+
# All previously installed standard/optional/experimental packages that are to be uninstalled
108+
OPTIONAL_UNINSTALLED_PACKAGES = @SAGE_OPTIONAL_UNINSTALLED_PACKAGES@
109+
UNINSTALLED_PACKAGES = $(OPTIONAL_UNINSTALLED_PACKAGES)
110+
UNINSTALLED_PACKAGES_CLEANS = $(UNINSTALLED_PACKAGES:%=%-clean)
118111

119112
# All packages which should be downloaded
120113
SDIST_PACKAGES = @SAGE_SDIST_PACKAGES@
@@ -240,18 +233,18 @@ base-toolchain: _clean-broken-gcc base
240233
all-sage: \
241234
sagelib \
242235
$(INSTALLED_PACKAGE_INSTS) \
243-
$(CLEANED_PACKAGES_CLEANS)
236+
$(UNINSTALLED_PACKAGES_CLEANS)
244237

245238
# Same but filtered by installation trees:
246239
all-build-local: toolchain-deps
247240
+$(MAKE_REC) all-sage-local
248241

249-
all-sage-local: $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_CLEANED_PACKAGES_CLEANS)
242+
all-sage-local: $(SAGE_LOCAL_INSTALLED_PACKAGE_INSTS) $(SAGE_LOCAL_UNINSTALLED_PACKAGES_CLEANS)
250243

251244
all-build-venv: toolchain-deps
252245
+$(MAKE_REC) all-sage-venv
253246

254-
all-sage-venv: $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_CLEANED_PACKAGES_CLEANS)
247+
all-sage-venv: $(SAGE_VENV_INSTALLED_PACKAGE_INSTS) $(SAGE_VENV_UNINSTALLED_PACKAGES_CLEANS)
255248

256249
# Download all packages which should be inside an sdist tarball (the -B
257250
# option to make forces all targets to be built unconditionally)
@@ -306,7 +299,7 @@ build-start: all-build
306299
# We make this depend on all standard packages because running
307300
# sage-starts runs sage-location, which should be run after installing
308301
# any package.
309-
$(STARTED): $(STANDARD_PACKAGE_INSTS)
302+
$(STARTED): $(OPTIONAL_INSTALLED_PACKAGE_INSTS)
310303
$(AM_V_at)"$(SAGE_ROOT)/build/bin/sage-starts"
311304

312305

configure.ac

+8
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,14 @@ AS_IF([test "x$enable_download_from_upstream_url" = "xyes"], [
416416
])
417417
AC_SUBST([SAGE_SPKG_OPTIONS])
418418

419+
AC_ARG_ENABLE([notebook],
420+
AS_HELP_STRING([--disable-notebook],
421+
[disable build of the Jupyter notebook and related packages]), [
422+
for pkg in notebook nbconvert sagenb_export nbformat terminado send2trash prometheus_client mistune pandocfilters bleach defusedxml jsonschema jupyter_jsmol; do
423+
AS_VAR_SET([SAGE_ENABLE_$pkg], [$enableval])
424+
done
425+
])
426+
419427
SAGE_SPKG_COLLECT()
420428

421429
dnl AC_CONFIG_HEADERS([config.h])

m4/sage_spkg_collect.m4

+35-23
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@
2020
# platform, or the dependency on them is satisfied by an existing
2121
# system package.
2222
#
23-
# - SAGE_STANDARD_PACKAGES - lists the names of all packages that have
24-
# the "standard" type. All "standard" packages are installed by
25-
# default (if they are listed in SAGE_DUMMY_PACKAGES "installed" in
26-
# this case is a no-op).
23+
# - SAGE_OPTIONAL_INSTALLED_PACKAGES - lists the names of packages with the
24+
# "standard", "optional", or "experimental" type that should be installed.
2725
#
28-
# - SAGE_OPTIONAL_PACKAGES - lists the names of packages with the
29-
# "optional" type that should be installed.
26+
# - SAGE_OPTIONAL_UNINSTALLED_PACKAGES - lists the names of packages with the
27+
# "standard", "optional", or "experimental" type that should be uninstalled.
3028
#
3129
# - SAGE_SDIST_PACKAGES - lists the names of all packages whose sources
3230
# need to be downloaded to be included in the source distribution.
@@ -107,13 +105,10 @@ SAGE_BUILT_PACKAGES=''
107105
# underlying system.
108106
SAGE_DUMMY_PACKAGES=''
109107
110-
# Standard packages
111-
SAGE_STANDARD_PACKAGES=''
112-
113-
# List of currently installed and to-be-installed optional packages - filled in SAGE_SPKG_ENABLE
114-
#SAGE_OPTIONAL_INSTALLED_PACKAGES
115-
# List of optional packages to be uninstalled - filled in SAGE_SPKG_ENABLE
116-
#SAGE_OPTIONAL_CLEANED_PACKAGES
108+
# List of currently installed and to-be-installed standard/optional/experimental packages
109+
SAGE_OPTIONAL_INSTALLED_PACKAGES=''
110+
# List of optional packages to be uninstalled
111+
SAGE_OPTIONAL_UNINSTALLED_PACKAGES=''
117112
118113
# List of all packages that should be downloaded
119114
SAGE_SDIST_PACKAGES=''
@@ -170,25 +165,30 @@ for DIR in $SAGE_ROOT/build/pkgs/*; do
170165
message="came preinstalled with the SageMath tarball"
171166
;;
172167
standard)
173-
SAGE_STANDARD_PACKAGES="${SAGE_STANDARD_PACKAGES} \\$(printf '\n ')${SPKG_NAME}"
174-
in_sdist=yes
175-
message="will be installed as an SPKG"
168+
AS_VAR_IF([SAGE_ENABLE_]${SPKG_NAME}, [yes], [
169+
message="$SPKG_TYPE, will be installed as an SPKG"
170+
], [
171+
message="$SPKG_TYPE, but disabled using configure option"
172+
])
176173
;;
177174
optional|experimental)
178175
AS_VAR_IF([SAGE_ENABLE_]${SPKG_NAME}, [yes], [
179176
message="$SPKG_TYPE, will be installed as an SPKG"
180177
], [
181178
message="$SPKG_TYPE, use \"$srcdir/configure --enable-$SPKG_NAME\" to install"
182179
])
183-
uninstall_message=", use \"$srcdir/configure --disable-$SPKG_NAME\" to uninstall"
184180
;;
185181
*)
186182
AC_MSG_ERROR([The content of "$SPKG_TYPE_FILE" must be 'base', 'standard', 'optional', or 'experimental'])
187183
;;
188184
esac
189185
190186
case "$SPKG_TYPE" in
187+
standard)
188+
in_sdist=yes
189+
;;
191190
optional|experimental)
191+
uninstall_message=", use \"$srcdir/configure --disable-$SPKG_NAME\" to uninstall"
192192
stampfile=""
193193
for f in "$SAGE_SPKG_INST/$SPKG_NAME"-*; do
194194
AS_IF([test -r "$f"], [
@@ -229,7 +229,7 @@ for DIR in $SAGE_ROOT/build/pkgs/*; do
229229
], [ message="not required on your platform; SPKG will not be installed"
230230
])
231231
], [
232-
dnl We won't use the system package.
232+
dnl We will not use the system package.
233233
SAGE_BUILT_PACKAGES="${SAGE_BUILT_PACKAGES} \\$(printf '\n ')${SPKG_NAME}"
234234
AS_VAR_SET_IF([sage_use_system], [
235235
AS_VAR_COPY([reason], [sage_use_system])
@@ -239,9 +239,6 @@ for DIR in $SAGE_ROOT/build/pkgs/*; do
239239
],
240240
[installed], [ message="already installed as an SPKG$uninstall_message" ],
241241
[ message="$reason; $message" ])
242-
], [
243-
# Package does not use spkg-configure.m4 yet
244-
message="does not support check for system package; $message"
245242
])
246243
])
247244
@@ -296,6 +293,22 @@ for DIR in $SAGE_ROOT/build/pkgs/*; do
296293
SAGE_SDIST_PACKAGES="${SAGE_SDIST_PACKAGES} \\$(printf '\n ')${SPKG_NAME}"
297294
fi
298295
296+
# Determine whether package is enabled
297+
AS_VAR_SET([is_installed], [no])
298+
for f in "$SAGE_SPKG_INST/${SPKG_NAME}"-*; do
299+
AS_IF([test -r "$f"],
300+
[AS_VAR_SET([is_installed], [yes])])
301+
done
302+
303+
AS_VAR_IF([SAGE_ENABLE_${SPKG_NAME}}], [if_installed],
304+
[AS_VAR_SET([SAGE_ENABLE_${SPKG_NAME}], $is_installed)])
305+
AS_VAR_COPY([want_spkg], [SAGE_ENABLE_${SPKG_NAME}])
306+
307+
spkg_line=" \\$(printf '\n ')$SPKG_NAME"
308+
AS_CASE([$is_installed-$want_spkg],
309+
[*-yes], [AS_VAR_APPEND(SAGE_OPTIONAL_INSTALLED_PACKAGES, "$spkg_line")],
310+
[yes-no], [AS_VAR_APPEND(SAGE_OPTIONAL_UNINSTALLED_PACKAGES, "$spkg_line")])
311+
299312
# Determine package dependencies
300313
#
301314
DEP_FILE="$DIR/dependencies"
@@ -340,9 +353,8 @@ AC_SUBST([SAGE_PIP_PACKAGES])
340353
AC_SUBST([SAGE_SCRIPT_PACKAGES])
341354
AC_SUBST([SAGE_BUILT_PACKAGES])
342355
AC_SUBST([SAGE_DUMMY_PACKAGES])
343-
AC_SUBST([SAGE_STANDARD_PACKAGES])
344356
AC_SUBST([SAGE_OPTIONAL_INSTALLED_PACKAGES])
345-
AC_SUBST([SAGE_OPTIONAL_CLEANED_PACKAGES])
357+
AC_SUBST([SAGE_OPTIONAL_UNINSTALLED_PACKAGES])
346358
AC_SUBST([SAGE_SDIST_PACKAGES])
347359
])
348360

m4/sage_spkg_enable.m4

+23-29
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,25 @@
1-
AC_DEFUN([SAGE_SPKG_ENABLE], [
2-
m4_pushdef([SPKG_NAME], [$1])
3-
m4_pushdef([SPKG_TYPE], [$2])
4-
AC_ARG_ENABLE(SPKG_NAME,
5-
AS_HELP_STRING([--enable-]SPKG_NAME={no|if_installed|yes},
6-
[enable build and use of the $2 package ]SPKG_NAME[ (default: "if_installed")])
7-
AS_HELP_STRING([], [package information: ./sage -info ]SPKG_NAME)
1+
AC_DEFUN([SAGE_SPKG_ENABLE], [dnl
2+
m4_pushdef([SPKG_NAME], [$1])dnl
3+
m4_pushdef([SPKG_TYPE], [$2])dnl
4+
m4_if(SPKG_TYPE, [standard], [dnl
5+
dnl standard packages; help message is deliberately very brief,
6+
dnl as this is for advanced users only
7+
AC_ARG_ENABLE(SPKG_NAME,
8+
AS_HELP_STRING([--disable-]SPKG_NAME,
9+
[disable $2 package ]SPKG_NAME),
10+
AS_VAR_SET([SAGE_ENABLE_]SPKG_NAME, [$enableval])
11+
)
12+
], [dnl
13+
dnl optional/experimental packages
14+
AC_ARG_ENABLE(SPKG_NAME,
15+
AS_HELP_STRING([--enable-]SPKG_NAME={no|if_installed (default)|yes},
16+
[enable build and use of the SPKG_TYPE package $3], [26], [100])
17+
AS_HELP_STRING([], [* package info: ./sage -info SPKG_NAME])
818
AS_HELP_STRING([--disable-]SPKG_NAME,
9-
[disable build and uninstall if previously installed by Sage in PREFIX; same as --enable-]SPKG_NAME[=no]),
10-
AS_VAR_SET(want_spkg, [$enableval]),
11-
AS_VAR_SET(want_spkg, [if_installed])
12-
)
13-
14-
AS_VAR_SET([is_installed], [no])
15-
for f in "$SAGE_SPKG_INST/SPKG_NAME"-*; do
16-
AS_IF([test -r "$f"],
17-
[AS_VAR_SET([is_installed], [yes])])
18-
done
19-
20-
AS_IF([test "$want_spkg" = if_installed],
21-
[AS_VAR_SET([want_spkg], $is_installed)])
22-
23-
spkg_line=" \\$(printf '\n ')SPKG_NAME"
24-
AS_CASE([$is_installed-$want_spkg],
25-
[*-yes], [AS_VAR_APPEND(SAGE_OPTIONAL_INSTALLED_PACKAGES, "$spkg_line")],
26-
[yes-no], [AS_VAR_APPEND(SAGE_OPTIONAL_CLEANED_PACKAGES, "$spkg_line")])
27-
AS_VAR_SET([SAGE_ENABLE_]SPKG_NAME, [$want_spkg])
28-
AC_SUBST([SAGE_ENABLE_]SPKG_NAME)
29-
m4_popdef([SPKG_TYPE])
30-
m4_popdef([SPKG_NAME])
19+
[disable build and uninstall if previously installed by Sage in PREFIX; same as --enable-]SPKG_NAME[=no], [26], [100]),
20+
AS_VAR_SET([SAGE_ENABLE_]SPKG_NAME, [$enableval])
21+
)
22+
])dnl
23+
m4_popdef([SPKG_TYPE])dnl
24+
m4_popdef([SPKG_NAME])dnl
3125
])

0 commit comments

Comments
 (0)