* [bug#69530] [PATCH] doc: cookbook: Update "Build system arguments" section.
@ 2024-03-03 18:38 Marco Rimoldi via Guix-patches via
0 siblings, 0 replies; only message in thread
From: Marco Rimoldi via Guix-patches via @ 2024-03-03 18:38 UTC (permalink / raw)
To: 69530; +Cc: Marco Rimoldi
From: Marco Rimoldi <rimarko@libero.it>
* 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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2024-03-03 18:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-03 18:38 [bug#69530] [PATCH] doc: cookbook: Update "Build system arguments" section Marco Rimoldi via Guix-patches via
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).