guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/06: packages: Issue a warning unless the snippet returns #t.


From: Mark H. Weaver
Subject: 01/06: packages: Issue a warning unless the snippet returns #t.
Date: Fri, 16 Mar 2018 09:09:34 -0400 (EDT)

mhw pushed a commit to branch core-updates
in repository guix.

commit daac9c77b9ed25a3c0edf843fdfe5e209ebef58f
Author: Mark H Weaver <address@hidden>
Date:   Fri Mar 16 07:24:05 2018 -0400

    packages: Issue a warning unless the snippet returns #t.
    
    * guix/packages.scm (patch-and-repack): Issue a warning if the snippet
    returns a value other than #t.
---
 guix/packages.scm | 33 ++++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/guix/packages.scm b/guix/packages.scm
index 0ee4f71..ab4b627 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -566,19 +566,26 @@ specifies modules in scope when evaluating SNIPPET."
 
               (for-each apply-patch '#+patches)
 
-              (unless #+(if snippet
-                            #~(let ((module (make-fresh-user-module)))
-                                (module-use-interfaces!
-                                 module
-                                 (map resolve-interface '#+modules))
-                                ((@ (system base compile) compile)
-                                 '#+snippet
-                                 #:to 'value
-                                 #:opts %auto-compilation-options
-                                 #:env module))
-                            #~#t)
-                (format (current-error-port)
-                        "snippet returned false, indicating failure~%"))
+              (let ((result #+(if snippet
+                                  #~(let ((module (make-fresh-user-module)))
+                                      (module-use-interfaces!
+                                       module
+                                       (map resolve-interface '#+modules))
+                                      ((@ (system base compile) compile)
+                                       '#+snippet
+                                       #:to 'value
+                                       #:opts %auto-compilation-options
+                                       #:env module))
+                                  #~#t)))
+                ;; Issue a warning unless the result is #t.
+                (unless (eqv? result #t)
+                  (format (current-error-port) "\
+## WARNING: the snippet returned `~s'.  Return values other than #t
+## are deprecated.  Please migrate this package so that its snippet
+## reports errors by raising an exception, and otherwise returns #t.~%"
+                          result))
+                (unless result
+                  (error "snippet returned false")))
 
               (chdir "..")
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]