From f57139c8a0f14d6e71f046b56a64a4f1b0718ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Sat, 30 Mar 2024 22:03:11 +0100 Subject: [PATCH] Sort directories when generating tarballs --- src/tools/rust-installer/src/tarballer.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tools/rust-installer/src/tarballer.rs b/src/tools/rust-installer/src/tarballer.rs index 24d341db78e5e..2f093e7ad17fd 100644 --- a/src/tools/rust-installer/src/tarballer.rs +++ b/src/tools/rust-installer/src/tarballer.rs @@ -53,8 +53,11 @@ impl Tarballer { // Sort files by their suffix, to group files with the same name from // different locations (likely identical) and files with the same // extension (likely containing similar data). - let (dirs, mut files) = get_recursive_paths(&self.work_dir, &self.input) + // Sorting of file and directory paths also helps with the reproducibility + // of the resulting archive. + let (mut dirs, mut files) = get_recursive_paths(&self.work_dir, &self.input) .context("failed to collect file paths")?; + dirs.sort(); files.sort_by(|a, b| a.bytes().rev().cmp(b.bytes().rev())); // Write the tar into both encoded files. We write all directories