diff --git a/cloud-init-reproduce-build.patch b/cloud-init-reproduce-build.patch new file mode 100644 index 0000000..d18ceed --- /dev/null +++ b/cloud-init-reproduce-build.patch @@ -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): diff --git a/cloud-init.changes b/cloud-init.changes index 38be71c..f613a01 100644 --- a/cloud-init.changes +++ b/cloud-init.changes @@ -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 diff --git a/cloud-init.spec b/cloud-init.spec index 09b18b0..45ccc9a 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -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