Hi, I reopen the bug.
On jeu., 02 mars 2023 at 17:44, Andrew Tropin <and...@trop.in> wrote: > 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. --8<---------------cut here---------------start------------->8--- 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) --8<---------------cut here---------------end--------------->8--- 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. :-) --8<---------------cut here---------------start------------->8--- 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) --8<---------------cut here---------------end--------------->8--- 1: <https://issues.guix.gnu.org/issue/42688> Cheers, simon