Hi,
I reopen the bug.
On jeu., 02 mars 2023 at 17:44, Andrew Tropin <andrew@trop.in> wrote:
Toggle quote (3 lines)
> Thank you for the patch, I also faced this problem and it seems this
> change doesn't fix it.
Indeed. I have no clue what I messed up. Since I removed the Git
worktree, I am not able to investigate the root of my mistake. I
remember running with ’guix repl -q’ for avoiding spurious ~/.guile
configuration and I remember running “./pre-inst-env guix pull -p
/tmp/new” and checking. Hum?! Anyway!
My apologies.
Back to the issue:
1. The patch does not tweak ’guix repl script.scm’ but only the
interactive part – which also has the issue, I guess.
2. The culprit seems (current-profile) which does not correctly load
%package-module-path as the comment is suggesting,
;; This in turn ensures that
;; (%package-module-path) will contain entries for the channels
;; available in the current profile.
Adding (gnu packages) as Josselin suggested but commenting
(current-profile) make channels available both for scripts and
interactive. For instance this patch works, which means something is
buggy somewhere.
Toggle snippet (35 lines)
1 file changed, 5 insertions(+), 2 deletions(-)
guix/scripts/repl.scm | 7 +++++--
modified guix/scripts/repl.scm
@@ -22,6 +22,7 @@ (define-module (guix scripts repl)
#:use-module (guix ui)
#:use-module (guix scripts)
#:use-module (guix repl)
+ #:use-module (gnu packages)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
@@ -193,7 +194,8 @@ (define script
;; 'set-program-arguments'. This in turn ensures that
;; (%package-module-path) will contain entries for the channels
;; available in the current profile.
- (current-profile)
+ (pk 'script)
+ ;(current-profile)
(set-program-arguments script)
(set-user-module)
@@ -211,7 +213,8 @@ (define script
((guile)
(save-module-excursion
(lambda ()
- (current-profile) ;Run (%package-module-path) as explained above.
+ (pk 'no-script)
+ ;(current-profile) ;Run (%package-module-path) as explained above.
(set-user-module)
;; Do not exit repl on SIGINT.
((@@ (ice-9 top-repl) call-with-sigint)
Well, I have tried to debug by adding ’pk’ around but I often get error
when “Computing Guix derivation”. Well, the test-error is a long
process here. :-)
As discussed in #42688 [1], instead of
1b179d7876f19f04009a2f9e248ac10711f4c660, the plain call to
(%package-module-path) – instead of (current-profile) – fixes the issue.
This patch works and avoids the full load of (gnu packages), I guess
twice. :-)
Toggle snippet (34 lines)
1 file changed, 3 insertions(+), 3 deletions(-)
guix/scripts/repl.scm | 6 +++---
modified guix/scripts/repl.scm
@@ -27,7 +27,7 @@ (define-module (guix scripts repl)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors)
- #:autoload (guix describe) (current-profile)
+ #:autoload (gnu packages) (%package-module-path)
#:autoload (system repl repl) (start-repl)
#:autoload (system repl server)
(make-tcp-server-socket make-unix-domain-server-socket)
@@ -193,7 +193,7 @@ (define script
;; 'set-program-arguments'. This in turn ensures that
;; (%package-module-path) will contain entries for the channels
;; available in the current profile.
- (current-profile)
+ (%package-module-path)
(set-program-arguments script)
(set-user-module)
@@ -211,7 +211,7 @@ (define script
((guile)
(save-module-excursion
(lambda ()
- (current-profile) ;Run (%package-module-path) as explained above.
+ (%package-module-path)
(set-user-module)
;; Do not exit repl on SIGINT.
((@@ (ice-9 top-repl) call-with-sigint)