@@ -197,33 +197,58 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
197
197
SAGE_PACKAGE_TREES="${SAGE_PACKAGE_TREES}$(printf '\ntrees_')SPKG_NAME = SPKG_TREE_VAR"
198
198
199
199
dnl Determine whether it is installed already
200
+ AS_VAR_SET ( [ SPKG_INSTALLED_VERSION] , [ ] )
200
201
AS_VAR_SET ( [ is_installed] , [ no] )
201
202
m4_append_uniq_w ( [ SPKG_TREE_VAR] , [ SAGE_LOCAL] )
202
203
for treevar in SPKG_TREE_VAR; do
203
204
AS_VAR_COPY ( [ t] , [ $treevar] )
205
+ dnl SAGE_VENV contains the literal ${SAGE_LOCAL}, eval it
206
+ t=$(eval echo $t)
204
207
AS_IF ( [ test -n "$t" -a -d "$t/var/lib/sage/installed/" ] , [ dnl
205
208
for f in "$t/var/lib/sage/installed/SPKG_NAME"-*; do
206
209
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.
211
214
AC_MSG_ERROR ( m4_normalize ( [
212
215
multiple installation records for SPKG_NAME:
213
216
m4_newline ( $ ( ls - l "$t/var/lib/sage/installed/SPKG_NAME"-* ))
214
217
m4_newline ( [ only one should exist, so please delete some or all
215
218
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)"] )
217
224
] )
218
- ] ) dnl
225
+ ] )
226
+ package_with_version=${f##*/}
227
+ AS_VAR_SET ( [ SPKG_INSTALLED_VERSION] , [ ${package_with_version#*-}] )
219
228
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"] ) ] )
220
232
] )
221
233
done
222
234
dnl Only check the first existing tree, so that we do not issue "multiple installation" warnings
223
235
dnl when SAGE_LOCAL = SAGE_VENV
224
236
break
225
237
] )
226
238
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
+ ] )
227
252
dnl
228
253
dnl Determine whether package is enabled
229
254
m4_pushdef ( [ want_spkg] , [ SAGE_ENABLE_] SPKG_NAME ) dnl
@@ -235,19 +260,19 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
235
260
[ standard] , [ dnl
236
261
m4_pushdef ( [ SAGE_NEED_SYSTEM_PACKAGES_VAR] , [ SAGE_NEED_SYSTEM_PACKAGES] ) dnl
237
262
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 "
239
264
] , [ dnl
240
265
message="SPKG_TYPE, but disabled using configure option"
241
266
] )
242
267
] , [ dnl optional/experimental
243
268
m4_pushdef ( [ SAGE_NEED_SYSTEM_PACKAGES_VAR] , [ SAGE_NEED_SYSTEM_PACKAGES_OPTIONAL] ) dnl
244
269
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 "
246
271
] , [ dnl
247
272
message="SPKG_TYPE"
248
273
m4_case ( SPKG_SOURCE , [ none] , [ ] , [ dnl
249
274
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 "
251
276
] )
252
277
] )
253
278
] )
@@ -261,7 +286,8 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
261
286
m4_case ( SPKG_SOURCE ,
262
287
[ pip] , [ dnl
263
288
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=
265
291
] ) dnl
266
292
dnl
267
293
SAGE_PACKAGE_VERSIONS="${SAGE_PACKAGE_VERSIONS}$(printf '\nvers_')SPKG_NAME = ${SPKG_VERSION}"
@@ -295,14 +321,15 @@ AC_DEFUN([SAGE_SPKG_FINALIZE], [dnl
295
321
[ force] , [ message="no suitable system package; this is an error"
296
322
AS_VAR_APPEND ( [ SAGE_NEED_SYSTEM_PACKAGES_VAR] , [ " SPKG_NAME"] )
297
323
] ,
298
- [ installed] , [ message="already installed as an SPKG$uninstall_message" ] ,
324
+ [ installed] , [ message="$install_message$uninstall_message"
325
+ ] ,
299
326
[ message="$reason; $message" ] )
300
327
] )
301
328
] )
302
329
303
330
dnl Trac #29124: Do not talk about underscore club
304
331
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")
306
333
AC_MSG_RESULT ( [ $formatted_message] )
307
334
] )
308
335
dnl
0 commit comments