aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2023-02-25 08:57:54 -0700
committerSean Whitton <spwhitton@spwhitton.name>2023-02-25 08:57:54 -0700
commit112316504ab81f459a5b00514bd3f9fae968dde0 (patch)
treebe36adac4bcf3fb6d6b8d3a7af2fc72823eb22e3 /src
parentfb69a62d61b79e5b480c18ab71a387bfca1bf221 (diff)
downloadconsfigurator-112316504ab81f459a5b00514bd3f9fae968dde0.tar.gz
CONTINUE-DEPLOY*-PROGRAM: bind *PACKAGE* to our own CL-USER
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src')
-rw-r--r--src/image.lisp11
1 files changed, 10 insertions, 1 deletions
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