Subject: [PATCH 09/11] ui: Delay use of (guix build syscalls).

From: Ludovic Courtès <[email-masked]>
Date: Mon, 1 Apr 2024 22:25:21 +0200

This ensures (guix build syscalls) is loaded only when needed.

* guix/ui.scm (%text-width): Unconditionally alias ‘*line-width*’.
Remove initialization.
<top level>: Remove code for Guile < 2.2.7.
(package->recutils): Change default #:width to (terminal-columns).

Change-Id: I990a1b5b0f20a6243e47e314d1d3d4f8298b7151
---
 guix/ui.scm | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

diff --git a/guix/ui.scm b/guix/ui.scm
index 34ff210930..d82fa533cc 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1473,23 +1473,9 @@ (define* (fill-paragraph str width #:optional (column 0))
 ;;;
 
 (define %text-width
-  ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1.  On older versions of
-  ;; Guile, monkey-patch 'wrap*' below.
-  (if (defined? '*line-width*)
-      (let ((parameter (fluid->parameter *line-width*)))
-        (parameter (terminal-columns))
-        parameter)
-      (make-parameter (terminal-columns))))
-
-(unless (defined? '*line-width*)                  ;Guile < 2.2.7
-  (set! (@@ (texinfo plain-text) wrap*)
-    ;; XXX: Monkey patch this private procedure to let 'package->recutils'
-    ;; parameterize the fill of description field correctly.
-    (lambda strings
-      (let ((indent (fluid-ref (@@ (texinfo plain-text) *indent*))))
-        (fill-string (string-concatenate strings)
-                     #:line-width (%text-width) #:initial-indent indent
-                     #:subsequent-indent indent)))))
+  ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1.  Keep this alias for
+  ;; backward-compatibility and for convenience.
+  (fluid->parameter *line-width*))
 
 (define (texi->plain-text str)
   "Return a plain-text representation of texinfo fragment STR."
@@ -1535,7 +1521,7 @@ (define (string->recutils str)
                       '()
                       str)))
 
-(define* (package->recutils p port #:optional (width (%text-width))
+(define* (package->recutils p port #:optional (width (terminal-columns))
                             #:key
                             (hyperlinks? (supports-hyperlinks? port))
                             (extra-fields '())
-- 
2.41.0