unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
blob f0890aaf574df65f68a07d1a43650cd5b24738f7 1349 bytes (raw)
name: gnu/packages/patches/mm-common-consistent-user-and-group-in-tarball.patch 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
From 024c121c844a4ec920133eb3f7e6b6ee8044c0b6 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Sat, 12 Dec 2020 04:05:56 +0000
Original-Patch: https://bugs.debian.org/977177
Subject: [PATCH] Set uid, username, gid, and group name on files in
 generated tarball.

The user and group may otherwise vary between builds on different systems.

---
 util/meson_aux/skeletonmm-tarball.py | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/util/meson_aux/skeletonmm-tarball.py b/util/meson_aux/skeletonmm-tarball.py
index db9e650..89049b6 100755
--- a/util/meson_aux/skeletonmm-tarball.py
+++ b/util/meson_aux/skeletonmm-tarball.py
@@ -39,10 +39,18 @@ elif output_file.endswith('.gz'):
 else:
   mode = 'w'
 
+def reproducible(tarinfo):
+  # Set consistent user and group on files in the tar archive
+  tarinfo.uid = 0
+  tarinfo.uname = 'root'
+  tarinfo.gid = 0
+  tarinfo.gname = 'root'
+  return tarinfo
+
 with tarfile.open(output_file, mode=mode) as tar_file:
   os.chdir(source_dir) # Input filenames are relative to source_dir.
   for file in sys.argv[3:]:
-    tar_file.add(file)
+    tar_file.add(file, filter=reproducible)
 # Errors raise exceptions. If an exception is raised, Meson+ninja will notice
 # that the command failed, despite exit(0).
 sys.exit(0)
-- 
2.29.2


debug log:

solving f0890aaf57 ...
found f0890aaf57 in https://git.savannah.gnu.org/cgit/guix.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).