Build tarballs with deterministic file ordering.

* guix/packages.scm (patch-and-repack)[build],
  gnu/system/install.scm (self-contained-tarball)[build],
  gnu/packages/make-bootstrap.scm (tarball-package),
  gnu/packages/admin.scm (isc-dhcp),
  gnu/packages/video.scm (avidemux): Pass "--sort=name" to 'tar'.
This commit is contained in:
Mark H Weaver 2015-09-03 12:51:47 -04:00
parent 52c20d8e15
commit 92226a470d
5 changed files with 12 additions and 3 deletions

View File

@ -428,6 +428,7 @@ connection alive.")
(zero? (system* "tar" "cf" "bind.tar.gz" (zero? (system* "tar" "cf" "bind.tar.gz"
"bind-9.9.5-P1" "bind-9.9.5-P1"
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--sort=name"
"--mtime=@0" "--mtime=@0"
"--owner=root:0" "--owner=root:0"
"--group=root:0")))) "--group=root:0"))))

View File

@ -629,7 +629,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
".tar.xz") ".tar.xz")
"." "."
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--mtime=@0" "--owner=root:0" "--group=root:0")))))))))) "--sort=name" "--mtime=@0"
"--owner=root:0" "--group=root:0"))))))))))
(define %bootstrap-binaries-tarball (define %bootstrap-binaries-tarball
;; A tarball with the statically-linked bootstrap binaries. ;; A tarball with the statically-linked bootstrap binaries.

View File

@ -1015,7 +1015,8 @@ for use with HTML5 video.")
(("#! /bin/sh") (string-append "#!" (which "bash")))) (("#! /bin/sh") (string-append "#!" (which "bash"))))
(system* "tar" "cjf" "ffmpeg-2.6.1.tar.bz2" "ffmpeg-2.6.1" (system* "tar" "cjf" "ffmpeg-2.6.1.tar.bz2" "ffmpeg-2.6.1"
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--mtime=@0" "--owner=root:0" "--group=root:0") "--sort=name" "--mtime=@0"
"--owner=root:0" "--group=root:0")
(delete-file-recursively "ffmpeg-2.6.1"))) (delete-file-recursively "ffmpeg-2.6.1")))
(alist-replace 'configure (alist-replace 'configure
(lambda _ (lambda _

View File

@ -74,8 +74,13 @@ under /root/.guix-profile where GUIX is installed."
;; length limitation. ;; length limitation.
(with-directory-excursion %root (with-directory-excursion %root
(zero? (system* "tar" "--xz" "--format=gnu" (zero? (system* "tar" "--xz" "--format=gnu"
"--owner=root:0" "--group=root:0"
;; avoid non-determinism in the archive
"--sort=name"
"--mtime=@0" ;for files in /var/guix "--mtime=@0" ;for files in /var/guix
"--owner=root:0"
"--group=root:0"
"--check-links" "--check-links"
"-cvf" #$output "-cvf" #$output
;; Avoid adding / and /var to the tarball, ;; Avoid adding / and /var to the tarball,

View File

@ -482,6 +482,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
(zero? (system* (string-append #+tar "/bin/tar") (zero? (system* (string-append #+tar "/bin/tar")
"cvfa" #$output directory "cvfa" #$output directory
;; avoid non-determinism in the archive ;; avoid non-determinism in the archive
"--sort=name"
"--mtime=@0" "--mtime=@0"
"--owner=root:0" "--owner=root:0"
"--group=root:0"))))))) "--group=root:0")))))))