import: print: Fix deprecation warning for origin-sha256.
authorHelio Machado <0x2b3bfa0+git@googlemail.com>
Sun, 18 Oct 2020 22:15:00 +0000 (00:15 +0200)
committerLudovic Courtès <ludo@gnu.org>
Mon, 19 Oct 2020 11:28:38 +0000 (13:28 +0200)
* guix/import/print.scm (source->code source version): Replace
'origin-sha256' by 'origin-hash' and handle non-SHA256 hashes.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
guix/import/print.scm

index 11cc218..d21ce57 100644 (file)
@@ -74,7 +74,7 @@ when evaluated."
   (define (source->code source version)
     (let ((uri       (origin-uri source))
           (method    (origin-method source))
-          (sha256    (origin-sha256 source))
+          (hash      (origin-hash source))
           (file-name (origin-file-name source))
           (patches   (origin-patches source)))
       `(origin
@@ -82,9 +82,12 @@ when evaluated."
          (uri (string-append ,@(match (factorize-uri uri version)
                                  ((? string? uri) (list uri))
                                  (factorized factorized))))
-         (sha256
-          (base32
-           ,(format #f "~a" (bytevector->nix-base32-string sha256))))
+         ,(if (equal? (content-hash-algorithm hash) 'sha256)
+              `(sha256 (base32 ,(bytevector->nix-base32-string
+                                 (content-hash-value hash))))
+              `(hash (content-hash ,(bytevector->nix-base32-string
+                                     (content-hash-value hash))
+                                   ,(content-hash-algorithm hash))))
          ;; FIXME: in order to be able to throw away the directory prefix,
          ;; we just assume that the patch files can be found with
          ;; "search-patches".