linux-initrd: Populate cpio archives in a deterministic order.

* gnu/build/linux-initrd.scm (write-cpio-archive)[files]: Use 'sort' instead
  of 'reverse'.
This commit is contained in:
Ludovic Courtès 2015-06-24 17:48:02 +02:00
parent e8277f90c8
commit 583323ca1d

View file

@ -49,21 +49,22 @@ (define* (write-cpio-archive output directory
;; directories."
(define files
;; XXX: Use a deterministic order.
(reverse
(file-system-fold (const #t) ;enter?
(lambda (file stat result) ;leaf
(cons file result))
(lambda (dir stat result) ;down
(if (string=? dir directory)
result
(cons dir result)))
(lambda (file stat result)
result)
(const #f) ;skip
(const #f) ;error
'()
directory)))
;; Use 'sort' so that (1) the order of files is deterministic, and (2)
;; directories appear before the files they contain.
(sort (file-system-fold (const #t) ;enter?
(lambda (file stat result) ;leaf
(cons file result))
(lambda (dir stat result) ;down
(if (string=? dir directory)
result
(cons dir result)))
(lambda (file stat result)
result)
(const #f) ;skip
(const #f) ;error
'()
directory)
string<?))
(call-with-output-file output
(lambda (port)