summary refs log tree commit diff
path: root/etc/disarchive-manifest.scm
diff options
context:
space:
mode:
Diffstat (limited to 'etc/disarchive-manifest.scm')
-rw-r--r--etc/disarchive-manifest.scm21
1 files changed, 18 insertions, 3 deletions
diff --git a/etc/disarchive-manifest.scm b/etc/disarchive-manifest.scm
index 60edee8eac..93b5039eec 100644
--- a/etc/disarchive-manifest.scm
+++ b/etc/disarchive-manifest.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,11 +30,12 @@
   (match (origin-actual-file-name origin)
     (#f #f)
     ((? string? file)
-     ;; As of version 0.2.1, Disarchive can only deal with raw tarballs and
-     ;; gzip-compressed tarballs.
+     ;; As of version 0.4.0, Disarchive can only deal with raw tarballs,
+     ;; gzip-compressed tarballs, and xz-compressed tarballs.
      (and (origin-hash origin)
           (or (string-suffix? ".tar.gz" file)
               (string-suffix? ".tgz" file)
+              (string-suffix? ".tar.xz" file)
               (string-suffix? ".tar" file))))))
 
 (define (origin->disarchive origin)
@@ -98,6 +99,20 @@ an empty directory if ORIGIN could not be disassembled."
   (directory-union "disarchive-collection"
                    (filter-map (lambda (origin)
                                  (and (tarball-origin? origin)
+
+                                      ;; Dismiss origins with (sha256 #f) such
+                                      ;; as that of IceCat.
+                                      (and=> (origin-hash origin)
+                                             content-hash-value)
+
+                                      ;; FIXME: Exclude the Chromium tarball
+                                      ;; because it's huge and "disarchive
+                                      ;; disassemble" exceeds the max-silent
+                                      ;; timeout.
+                                      (not (string-prefix?
+                                            "chromium-"
+                                            (origin-actual-file-name origin)))
+
                                       (origin->disarchive origin)))
                                origins)
                    #:copy? #t))