From fd716c2924c96a0bf908f615adaa404a3e382e7c Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Mon, 30 Aug 2021 20:31:00 +0200 Subject: [PATCH 3/3] guix: Find 'let' binding when using guile@3.0.0. Without this patch, errors like this result: [ 90%] LOAD gnu/services/nfs.scm WARNING: (gnu services nfs): imported module (guix) overrides core binding `let' WARNING: (gnu services nfs): `let' imported from both (guile) and (guix) WARNING: (gnu services nfs): imported module (guix) overrides core binding `let' WARNING: (gnu services nfs): `let' imported from both (guile) and (guix) ice-9/eval.scm:293:34: error: let: unbound variable hint: Did you forget `(use-modules (srfi srfi-71))'? I don't know why this happens, but this patch stops this error. * guix.scm: Hide 'let' and 'let*' when importing (guix packages). --- guix.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/guix.scm b/guix.scm index 42bc8c8818..7e1e5fb109 100644 --- a/guix.scm +++ b/guix.scm @@ -36,5 +36,10 @@ (for-each (let ((i (module-public-interface (current-module)))) (lambda (m) - (module-use! i (resolve-interface `(guix ,m))))) + (module-use! i (resolve-interface `(guix ,m) + ;; XXX: why is this required with Guile 3.0.2 + ;; to allow (gnu services nfs) to compile? + #:hide (if (eq? m 'packages) + '(let let*) + '()))))) %public-modules))) -- 2.33.0