From 112316504ab81f459a5b00514bd3f9fae968dde0 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Sat, 25 Feb 2023 08:57:54 -0700 Subject: CONTINUE-DEPLOY*-PROGRAM: bind *PACKAGE* to our own CL-USER Signed-off-by: Sean Whitton --- src/image.lisp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/image.lisp b/src/image.lisp index 27fdee5..b9091ff 100644 --- a/src/image.lisp +++ b/src/image.lisp @@ -500,6 +500,8 @@ UPLOAD-ALL-PREREQUISITE-DATA.") ,@(loop for system in (propspec-systems (host-propspec *host*)) collect `(asdf:load-system ,system))))) +(defpackage :consfigurator.cl-user (:use #:cl)) + (defgeneric continue-deploy*-program (remaining-connections asdf-requirements) (:documentation "Return a program to complete the work of an enclosing call to DEPLOY*. @@ -586,7 +588,14 @@ Preprocessing must occur in the root Lisp.")) (%consfigure ',remaining-connections ,*host*)))) (handler-case (with-standard-io-syntax - (let ((*allow-printing-passphrases* t)) + (let ((*allow-printing-passphrases* t) + ;; Avoid generating programs that remote Lisp images will + ;; misread because the generating Lisp's CL-USER has + ;; symbols from packages other than COMMON-LISP imported, + ;; e.g. by the user's runtime config for the root Lisp. + ;; This way, all symbols except those from COMMON-LISP + ;; should be printed qualified by their package names. + (*package* (find-package :consfigurator.cl-user))) ;; need line breaks in between so that packages exist before we ;; try to have remote Lisp read sexps containing symbols from ;; those packages -- cgit v1.2.3