Subject: bug#74794: `./pre-inst-env guix deploy' does not use packages from the git tree

From: Tomas Volf <[email-masked]>
Date: Wed, 11 Dec 2024 17:21:15 +0100

Hello,

during debugging #74787, I noticed that when ran via pre-inst-env, guix
deploy does not use packages from the local git tree.  I reverted the
commit da3c8a963f83c044568d99921480259eaa26a923 and applied the
following patch locally:

--8<---------------cut here---------------start------------->8---
diff --git a/guix/remote.scm b/guix/remote.scm
index a58ec2103c..1d4442da4f 100644
--- a/guix/remote.scm
+++ b/guix/remote.scm
@@ -67,6 +67,8 @@ (define* (remote-pipe-for-gexp lowered session #:optional become-command)
             `("-c"
               ,(shell-quote (lowered-gexp-sexp lowered)))))
 
+  (pk ((@ (ssh version) get-library-version)))
+
   (let ((pipe (apply open-remote-pipe* session OPEN_READ repl-command)))
     (when (eof-object? (peek-char pipe))
       (let ((status (channel-get-exit-status pipe)))
--8<---------------cut here---------------end--------------->8---

Now building the package produces 0.17.0 as expected:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build guile-ssh
/gnu/store/x3ikdxld27l1ikldwkijlv42qcgscw8w-guile-ssh-0.17.0-debug
/gnu/store/0hrwzamw41k1gl6ysnssfgzhfx3fx299-guile-ssh-0.17.0
--8<---------------cut here---------------end--------------->8---

But running guix deploy still uses 0.18.0:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix deploy ...

;;; ("0.18.0")
--8<---------------cut here---------------end--------------->8---

I am not sure whether this is intended, but I definitely did not expect
it and it makes local experimentation harder.

Have a nice day,
Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.