summary refs log tree commit diff
path: root/gnu/machine/ssh.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2024-02-12 23:45:54 +0100
committerRicardo Wurmus <rekado@elephly.net>2024-02-19 11:21:27 +0100
commit9ce548a26e59d85ad9341c0212fef38392d49ff4 (patch)
tree30311780f84031415c9380d2184cfc7e6b4dda84 /gnu/machine/ssh.scm
parent052ef145215d45e1fe0e179df3b8c9626e021c2b (diff)
downloadguix-9ce548a26e59d85ad9341c0212fef38392d49ff4.tar.gz
machine/ssh: Refresh parameterization of %CURRENT-SYSTEM.
When using "guix deploy" on an x86_64-linux machine to deploy a system to
i686-linux, DEPLOY-MANAGED-HOST would revert %CURRENT-SYSTEM to the host
system's value by the time it evaluated UPGRADE-SHEPHERD-SERVICES.  The
earlier PARAMETERIZE would no longer be effective.

* gnu/machine/ssh.scm (deploy-managed-host): Ensure that
UPGRADE-SHEPHERD-SERVICES is evaluated for the architecture of the target
machine.

Change-Id: I0816da79cd7c46a69418717fa33b2fe4e2fabae0
Diffstat (limited to 'gnu/machine/ssh.scm')
-rw-r--r--gnu/machine/ssh.scm31
1 files changed, 17 insertions, 14 deletions
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index b5984dc732..b47ce7c225 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
 ;;; Copyright © 2020-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2024 Ricardo <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -537,22 +538,24 @@ failed to switch systems while deploying '~a':~%~{~s ~}")
                                         host
                                         (inferior-exception-arguments c))))
                               os))
-          (with-roll-back #t
-            (mbegin %store-monad
-              (upgrade-shepherd-services (eval/error-handling c
-                                           (warning (G_ "\
+          (parameterize ((%current-system system)
+                         (%current-target-system #f))
+            (with-roll-back #t
+              (mbegin %store-monad
+                (upgrade-shepherd-services (eval/error-handling c
+                                             (warning (G_ "\
 an error occurred while upgrading services on '~a':~%~{~s ~}~%")
-                                                    host
-                                                    (inferior-exception-arguments
-                                                     c)))
-                                         os)
-              (install-bootloader (eval/error-handling c
-                                    (raise (formatted-message
-                                            (G_ "\
+                                                      host
+                                                      (inferior-exception-arguments
+                                                       c)))
+                                           os)
+                (install-bootloader (eval/error-handling c
+                                      (raise (formatted-message
+                                              (G_ "\
 failed to install bootloader on '~a':~%~{~s ~}~%")
-                                            host
-                                            (inferior-exception-arguments c))))
-                                  bootloader-configuration bootcfg))))))))
+                                              host
+                                              (inferior-exception-arguments c))))
+                                    bootloader-configuration bootcfg)))))))))
 
 
 ;;;