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

Commit 551b2a2

Browse files
author
Matthias Koeppe
committed
Merge #34193
2 parents 004bac5 + 7bda1cb commit 551b2a2

File tree

2 files changed

+40
-12
lines changed

2 files changed

+40
-12
lines changed

build/make/Makefile.in

+1
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,7 @@ $(1)-$(4)-no-deps:
650650
SAGE_SPKG_WHEELS=$$($(4))/var/lib/sage/wheels \
651651
SAGE_INST_LOCAL=$$($(4)) \
652652
sage-logger -p '$$(SAGE_ROOT)/build/pkgs/$(1)/spkg-install' '$$(SAGE_LOGS)/$(1)-$(2).log' && \
653+
rm -f "$$($(4))/$(SPKG_INST_RELDIR)/$(1)-*" && \
653654
touch "$$($(4))/$(SPKG_INST_RELDIR)/$(1)-$(2)"; \
654655
else ( \
655656
echo; \

m4/sage_spkg_collect.m4

+39-12
Original file line numberDiff line numberDiff line change
@@ -197,33 +197,58 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
197197
SAGE_PACKAGE_TREES="${SAGE_PACKAGE_TREES}$(printf '\ntrees_')SPKG_NAME = SPKG_TREE_VAR"
198198
199199
dnl Determine whether it is installed already
200+
AS_VAR_SET([SPKG_INSTALLED_VERSION], [])
200201
AS_VAR_SET([is_installed], [no])
201202
m4_append_uniq_w([SPKG_TREE_VAR], [SAGE_LOCAL])
202203
for treevar in SPKG_TREE_VAR; do
203204
AS_VAR_COPY([t], [$treevar])
205+
dnl SAGE_VENV contains the literal ${SAGE_LOCAL}, eval it
206+
t=$(eval echo $t)
204207
AS_IF([test -n "$t" -a -d "$t/var/lib/sage/installed/" ], [dnl
205208
for f in "$t/var/lib/sage/installed/SPKG_NAME"-*; do
206209
AS_IF([test -r "$f"], [dnl
207-
m4_case(SPKG_SOURCE, [normal], [dnl
208-
dnl Only run the multiple installation record test for normal packages,
209-
dnl not for script packages. We actually do not clean up after those...
210-
AS_IF([test "$is_installed" = "yes"], [dnl
210+
AS_IF([test "$is_installed" = "yes"], [dnl
211+
m4_case(SPKG_SOURCE, [normal], [dnl
212+
dnl Only issue the multiple installation record test for normal packages,
213+
dnl not for script packages.
211214
AC_MSG_ERROR(m4_normalize([
212215
multiple installation records for SPKG_NAME:
213216
m4_newline($(ls -l "$t/var/lib/sage/installed/SPKG_NAME"-*))
214217
m4_newline([only one should exist, so please delete some or all
215218
of these files and re-run "$srcdir/configure"])
216-
]))dnl
219+
]))
220+
], [dnl
221+
dnl Before #34193, we did not remove old installation records of
222+
dnl script packages. So no error.
223+
AS_VAR_SET([spkg_installed_version_text], ["SPKG (multiple installation records)"])
217224
])
218-
])dnl
225+
])
226+
package_with_version=${f##*/}
227+
AS_VAR_SET([SPKG_INSTALLED_VERSION], [${package_with_version#*-}])
219228
AS_VAR_SET([is_installed], [yes])
229+
AS_CASE(["$SPKG_INSTALLED_VERSION"],
230+
[none], [AS_VAR_SET([spkg_installed_version_text], ["SPKG"])],
231+
[AS_VAR_SET([spkg_installed_version_text], ["SPKG version $SPKG_INSTALLED_VERSION"])])
220232
])
221233
done
222234
dnl Only check the first existing tree, so that we do not issue "multiple installation" warnings
223235
dnl when SAGE_LOCAL = SAGE_VENV
224236
break
225237
])
226238
done
239+
AS_VAR_IF(SPKG_INSTALLED_VERSION, [""], [dnl
240+
AS_CASE(["$SPKG_VERSION"],
241+
[none], [AS_VAR_SET([install_message],
242+
["SPKG will be installed"])],
243+
[AS_VAR_SET([install_message],
244+
["SPKG version $SPKG_VERSION will be installed"])])
245+
], [dnl
246+
AS_IF([test "$SPKG_VERSION" = "$SPKG_INSTALLED_VERSION"],
247+
[AS_VAR_SET([install_message],
248+
["$spkg_installed_version_text is already installed"])],
249+
[AS_VAR_SET([install_message],
250+
["installed $spkg_installed_version_text will be replaced by version $SPKG_VERSION"])])
251+
])
227252
dnl
228253
dnl Determine whether package is enabled
229254
m4_pushdef([want_spkg], [SAGE_ENABLE_]SPKG_NAME)dnl
@@ -235,19 +260,19 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
235260
[standard], [dnl
236261
m4_pushdef([SAGE_NEED_SYSTEM_PACKAGES_VAR], [SAGE_NEED_SYSTEM_PACKAGES])dnl
237262
AS_VAR_IF([SAGE_ENABLE_]SPKG_NAME, [yes], [dnl
238-
message="SPKG_TYPE, will be installed as an SPKG"
263+
message="SPKG_TYPE, $install_message"
239264
], [dnl
240265
message="SPKG_TYPE, but disabled using configure option"
241266
])
242267
], [dnl optional/experimental
243268
m4_pushdef([SAGE_NEED_SYSTEM_PACKAGES_VAR], [SAGE_NEED_SYSTEM_PACKAGES_OPTIONAL])dnl
244269
AS_VAR_IF([SAGE_ENABLE_]SPKG_NAME, [yes], [dnl
245-
message="SPKG_TYPE, will be installed as an SPKG"
270+
message="SPKG_TYPE, $install_message"
246271
], [dnl
247272
message="SPKG_TYPE"
248273
m4_case(SPKG_SOURCE, [none], [], [dnl
249274
dnl Non-dummy optional/experimental package, advertise how to install
250-
message="$message, use \"$srcdir/configure --enable-SPKG_NAME\" to install"
275+
message="$message, use \"$srcdir/configure --enable-SPKG_NAME\" to install SPKG version $SPKG_VERSION"
251276
])
252277
])
253278
])
@@ -261,7 +286,8 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
261286
m4_case(SPKG_SOURCE,
262287
[pip], [dnl
263288
message="SPKG_TYPE pip package; use \"./sage -i SPKG_NAME\" to install"
264-
uninstall_message="SPKG_TYPE pip package (installed)"
289+
install_message="SPKG_TYPE pip package (installed)"
290+
uninstall_message=
265291
])dnl
266292
dnl
267293
SAGE_PACKAGE_VERSIONS="${SAGE_PACKAGE_VERSIONS}$(printf '\nvers_')SPKG_NAME = ${SPKG_VERSION}"
@@ -295,14 +321,15 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
295321
[force], [ message="no suitable system package; this is an error"
296322
AS_VAR_APPEND([SAGE_NEED_SYSTEM_PACKAGES_VAR], [" SPKG_NAME"])
297323
],
298-
[installed], [ message="already installed as an SPKG$uninstall_message" ],
324+
[installed], [ message="$install_message$uninstall_message"
325+
],
299326
[ message="$reason; $message" ])
300327
])
301328
])
302329
303330
dnl Trac #29124: Do not talk about underscore club
304331
m4_bmatch(SPKG_NAME, [^_], [], [dnl
305-
formatted_message=$(printf '%-45s%s' "SPKG_NAME-$SPKG_VERSION:" "$message")
332+
formatted_message=$(printf '%-32s%s' "SPKG_NAME:" "$message")
306333
AC_MSG_RESULT([$formatted_message])
307334
])
308335
dnl

0 commit comments

Comments
 (0)