summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-06-19 23:35:21 +0200
committerLudovic Courtès <ludo@gnu.org>2014-06-19 23:35:41 +0200
commit00fe93338d5cd29b4d565749b5842a7477d0477c (patch)
tree983f2acfa097517dba906f53bff95497479accb8
parent080571eeac3f38e957434d5dda7568218a5a89dc (diff)
downloadguix-00fe93338d5cd29b4d565749b5842a7477d0477c.tar.gz
substitute-binary: Warn about uninitialized ACL.
* guix/scripts/substitute-binary.scm (guix-substitute-binary): Call
  'check-acl-initialized'.
  (check-acl-initialized): Don't rely on 'equal?' to compare keys.
  Instead, convert keys to strings.
-rwxr-xr-xguix/scripts/substitute-binary.scm12
1 files changed, 9 insertions, 3 deletions
diff --git a/guix/scripts/substitute-binary.scm b/guix/scripts/substitute-binary.scm
index c70a4f626c..e2167c63cb 100755
--- a/guix/scripts/substitute-binary.scm
+++ b/guix/scripts/substitute-binary.scm
@@ -592,9 +592,14 @@ Internal tool to substitute a pre-built binary to a local build.\n"))
          (let ((key (call-with-input-file %public-key-file
                       (compose string->canonical-sexp
                                get-string-all))))
-           (equal? (acl->public-keys acl) (list key)))))
-
-  (let ((acl (current-acl)))
+           (match acl
+             ((thing)
+              (equal? (canonical-sexp->string thing)
+                      (canonical-sexp->string key)))
+             (_
+              #f)))))
+
+  (let ((acl (acl->public-keys (current-acl))))
     (when (or (null? acl) (singleton? acl))
       (warning (_ "ACL for archive imports seems to be uninitialized, \
 substitutes may be unavailable\n")))))
@@ -603,6 +608,7 @@ substitutes may be unavailable\n")))))
   "Implement the build daemon's substituter protocol."
   (mkdir-p %narinfo-cache-directory)
   (maybe-remove-expired-cached-narinfo)
+  (check-acl-initialized)
 
   ;; Starting from commit 22144afa in Nix, we are allowed to bail out directly
   ;; when we know we cannot substitute, but we must emit a newline on stdout