Subject: bug#69530: closed (Re: [bug#69530] [PATCH] doc: cookbook: Update "Build system arguments" section.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 11 Jan 2025 18:38:02 +0000

Your bug report

#69530: [PATCH] doc: cookbook: Update "Build system arguments" section.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
69530: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69530
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#69530] [PATCH] doc: cookbook: Update "Build system arguments" section.
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sat, 11 Jan 2025 19:37:34 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

[email-masked] skribis:

> From: Marco Rimoldi <[email-masked]>
>
> * doc/guix-cookbook.texi (Build system arguments)
>
> Remove recommendation on phase return value.
> Ensure code examples can run and are up-to-date.
>
> Change-Id: I143babf79983751578d6d4e20b20195ea000656d

This patch had fallen through the cracks.  Finally applied, thanks!

Ludo’.

Subject: [PATCH] doc: cookbook: Update "Build system arguments" section.
From: [email-masked]
To: [email-masked]
Cc: Marco Rimoldi <[email-masked]>
Date: Sun, 3 Mar 2024 19:38:52 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

From: Marco Rimoldi <[email-masked]>

* doc/guix-cookbook.texi (Build system arguments)

Remove recommendation on phase return value.
Ensure code examples can run and are up-to-date.

Change-Id: I143babf79983751578d6d4e20b20195ea000656d
---
 doc/guix-cookbook.texi | 37 +++++++++++++++++++++++--------------
 1 file changed, 23 insertions(+), 14 deletions(-)

diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 2366c13caf..7835d64dcb 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -1246,6 +1246,7 @@ Extended example
             validate-documentation-location
             delete-info-dir-file
             patch-dot-desktop-files
+            make-dynamic-linker-cache
             install-license-files
             reset-gzip-timestamps
             compress-documentation)))
@@ -1256,8 +1257,8 @@ Extended example
 @lisp
 (add-to-load-path "/path/to/guix/checkout")
 ,use (guix build gnu-build-system)
-(map first %standard-phases)
-@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files install-license-files reset-gzip-timestamps compress-documentation)
+(map car %standard-phases)
+@result{} (set-SOURCE-DATE-EPOCH set-paths install-locale unpack bootstrap patch-usr-bin-file patch-source-shebangs configure patch-generated-file-shebangs build check install patch-shebangs strip validate-runpath validate-documentation-location delete-info-dir-file patch-dot-desktop-files make-dynamic-linker-cache install-license-files reset-gzip-timestamps compress-documentation)
 @end lisp
 
 If you want to know more about what happens during those phases, consult the
@@ -1279,13 +1280,25 @@ Extended example
         ;; Preserve timestamps (set to the Epoch) on the copied tree so that
         ;; things work deterministically.
         (copy-recursively source "."
-                          #:keep-mtime? #true))
+                          #:keep-mtime? #t)
+        ;; Make the source checkout files writable, for convenience.
+        (for-each (lambda (f)
+                    (false-if-exception (make-file-writable f)))
+                  (find-files ".")))
       (begin
-        (if (string-suffix? ".zip" source)
-            (invoke "unzip" source)
-            (invoke "tar" "xvf" source))
-        (chdir (first-subdirectory "."))))
-  #true)
+        (cond
+         ((string-suffix? ".zip" source)
+          (invoke "unzip" source))
+         ((tarball? source)
+          (invoke "tar" "xvf" source))
+         (else
+          (let ((name (strip-store-file-name source))
+                (command (compressor source)))
+            (copy-file source name)
+            (when command
+              (invoke command "--decompress" name)))))
+        ;; Attempt to change into child directory.
+        (and=> (first-subdirectory ".") chdir))))
 @end lisp
 
 Note the @code{chdir} call: it changes the working directory to where the source was
@@ -1321,14 +1334,10 @@ Extended example
   (let ((bash-directory (assoc-ref inputs "bash"))
         (output-directory (assoc-ref outputs "out"))
         (doc-directory (assoc-ref outputs "doc")))
-    ;; ...
-    #true))
+    ;; ... ))
 @end lisp
 
-The procedure must return @code{#true} on success.  It's brittle to rely on the return
-value of the last expression used to tweak the phase because there is no
-guarantee it would be a @code{#true}.  Hence the trailing @code{#true} to ensure the right value
-is returned on success.
+Its return value is ignored.
 
 @subsubsection Code staging

base-commit: f00f56514d90ebba5d9e08ec786c8118e437097c
-- 
2.41.0