gnu: mm-common: Build reproducibly.
* gnu/packages/patches/mm-common-reproducible-tarball.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. * gnu/packages/gnome.scm (mm-common)[source]: Add patch.
This commit is contained in:
		
							parent
							
								
									c5d62ec323
								
							
						
					
					
						commit
						5ce7178eb8
					
				
					 3 changed files with 45 additions and 1 deletions
				
			
		| 
						 | 
					@ -1514,6 +1514,7 @@ dist_patch_DATA =						\
 | 
				
			||||||
  %D%/packages/patches/mit-krb5-hurd.patch			\
 | 
					  %D%/packages/patches/mit-krb5-hurd.patch			\
 | 
				
			||||||
  %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
 | 
					  %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
 | 
				
			||||||
  %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
 | 
					  %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
 | 
				
			||||||
 | 
					  %D%/packages/patches/mm-common-reproducible-tarball.patch	\
 | 
				
			||||||
  %D%/packages/patches/mpc123-initialize-ao.patch		\
 | 
					  %D%/packages/patches/mpc123-initialize-ao.patch		\
 | 
				
			||||||
  %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 | 
					  %D%/packages/patches/mpg321-CVE-2019-14247.patch		\
 | 
				
			||||||
  %D%/packages/patches/mpg321-gcc-10.patch			\
 | 
					  %D%/packages/patches/mpg321-gcc-10.patch			\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1141,7 +1141,10 @@ freedesktop.org desktop notification specification.")
 | 
				
			||||||
                                  "mm-common-" version ".tar.xz"))
 | 
					                                  "mm-common-" version ".tar.xz"))
 | 
				
			||||||
              (sha256
 | 
					              (sha256
 | 
				
			||||||
               (base32
 | 
					               (base32
 | 
				
			||||||
                "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))))
 | 
					                "1x8yvjy0yg17qyhmqws8xh2k8dvzrhpwqz7j1cfwzalrb1i9c5g8"))
 | 
				
			||||||
 | 
					              (patches
 | 
				
			||||||
 | 
					               (search-patches
 | 
				
			||||||
 | 
					                "mm-common-reproducible-tarball.patch"))))
 | 
				
			||||||
    (build-system meson-build-system)
 | 
					    (build-system meson-build-system)
 | 
				
			||||||
    (arguments
 | 
					    (arguments
 | 
				
			||||||
     `(#:phases
 | 
					     `(#:phases
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										40
									
								
								gnu/packages/patches/mm-common-reproducible-tarball.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								gnu/packages/patches/mm-common-reproducible-tarball.patch
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in a new issue