SHA256
1
0
forked from pool/cloud-init

- Add cloud-init-reproduce-build.patch (boo#1069635)

+ Make builds reproducible

OBS-URL: https://build.opensuse.org/package/show/Cloud:Tools/cloud-init?expand=0&rev=101
This commit is contained in:
Robert Schweikert 2017-12-06 13:10:41 +00:00 committed by Git OBS Bridge
parent cd1e7e121f
commit 529dfe1b71
3 changed files with 61 additions and 1 deletions

View File

@ -0,0 +1,50 @@
--- setup.py.orig
+++ setup.py
@@ -18,11 +18,13 @@ import tempfile
import setuptools
from setuptools.command.install import install
+from setuptools.command.egg_info import egg_info
from distutils.errors import DistutilsArgError
import subprocess
+RENDERED_TMPD_PREFIX = "RENDERED_TEMPD"
def is_f(p):
return os.path.isfile(p)
@@ -107,7 +109,7 @@ def render_tmpl(template):
return template
topdir = os.path.dirname(sys.argv[0])
- tmpd = tempfile.mkdtemp(dir=topdir)
+ tmpd = tempfile.mkdtemp(dir=topdir, prefix=RENDERED_TMPD_PREFIX)
atexit.register(shutil.rmtree, tmpd)
bname = os.path.basename(template).rstrip(tmpl_ext)
fpath = os.path.join(tmpd, bname)
@@ -155,6 +157,24 @@ if os.uname()[0] == 'FreeBSD':
elif os.path.isfile('/etc/redhat-release'):
USR_LIB_EXEC = "usr/libexec"
+class MyEggInfo(egg_info):
+ """This makes sure to not include the rendered files in SOURCES.txt."""
+
+ def find_sources(self):
+ ret = egg_info.find_sources(self)
+ # update the self.filelist.
+ self.filelist.exclude_pattern(RENDERED_TMPD_PREFIX + ".*",
+ is_regex=True)
+ # but since mfname is already written we have to update it also.
+ mfname = os.path.join(self.egg_info, "SOURCES.txt")
+ if os.path.exists(mfname):
+ with open(mfname) as fp:
+ files = [f for f in fp
+ if not f.startswith(GENERATED_FILE_PREFIX)]
+ with open(mfname, "w") as fp:
+ fp.write(''.join(files))
+ return ret
+
# TODO: Is there a better way to do this??
class InitsysInstallData(install):

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Dec 6 13:08:04 UTC 2017 - rjschwei@suse.com
- Add cloud-init-reproduce-build.patch (boo#1069635)
+ Make builds reproducible
-------------------------------------------------------------------
Mon Nov 27 13:21:13 CET 2017 - kukuk@suse.de

View File

@ -48,7 +48,11 @@ Patch27: cloud-init-sysconfig-netpathfix.patch
Patch29: datasourceLocalDisk.patch
Patch34: cloud-init-tests-set-exec.patch
Patch35: cloud-init-final-no-apt.patch
# FIXME cloud-init-resize-ro-btrfs.patch
# proposed for upstream merge (lp#1734787)
Patch36: cloud-init-resize-ro-btrfs.patch
# FIXME cloud-init-reproduce-build.patch, expecting upstream merge
Patch37: cloud-init-reproduce-build.patch
BuildRequires: fdupes
BuildRequires: filesystem
# pkg-config is needed to find correct systemd unit dir
@ -213,7 +217,7 @@ Documentation and examples for cloud-init tools
%patch34
%patch35 -p1
%patch36
%patch37
%build
%if 0%{?suse_version} && 0%{?suse_version} <= 1315