From 024c121c844a4ec920133eb3f7e6b6ee8044c0b6 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian 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