Hello community, here is the log from the commit of package cloud-init for openSUSE:Factory checked in at 2016-06-14 23:08:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cloud-init (Old) and /work/SRC/openSUSE:Factory/.cloud-init.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "cloud-init" Changes: -------- --- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes 2016-05-14 12:23:30.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.cloud-init.new/cloud-init.changes 2016-06-14 23:08:43.000000000 +0200 @@ -1,0 +2,6 @@ +Mon Jun 6 09:43:12 UTC 2016 - joachim.gleissner@suse.com + +- Add cloud-init-python2-sigpipe.patch (bsc#903449) + + Restore SIGPIPE default handler when executing shell scripts + +------------------------------------------------------------------- New: ---- cloud-init-python2-sigpipe.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cloud-init.spec ++++++ --- /var/tmp/diff_new_pack.gdmJlE/_old 2016-06-14 23:08:44.000000000 +0200 +++ /var/tmp/diff_new_pack.gdmJlE/_new 2016-06-14 23:08:44.000000000 +0200 @@ -41,6 +41,8 @@ Patch12: fix-default-systemd-unit-dir.patch Patch13: no_logic_change.patch Patch14: cloud-init-finalbeforelogin.patch +# python2 disables SIGPIPE, causing broken pipe errors in shell scripts (bsc#903449) +Patch20: cloud-init-python2-sigpipe.patch BuildRequires: fdupes BuildRequires: filesystem BuildRequires: python-devel @@ -141,6 +143,7 @@ %patch12 %patch13 %patch14 +%patch20 -p1 %if 0%{?suse_version} <= 1130 # disable ecdsa for SLE 11 (not available) ++++++ cloud-init-python2-sigpipe.patch ++++++ Index: cloud-init-0.7.6/cloudinit/util.py =================================================================== --- cloud-init-0.7.6.orig/cloudinit/util.py +++ cloud-init-0.7.6/cloudinit/util.py @@ -59,6 +59,7 @@ from cloudinit import version from cloudinit.settings import (CFG_BUILTIN) +from signal import signal, SIGPIPE, SIG_DFL _DNS_REDIRECT_IP = None LOG = logging.getLogger(__name__) @@ -1559,7 +1560,8 @@ def subp(args, data=None, rcs=None, env= stdin = subprocess.PIPE sp = subprocess.Popen(args, stdout=stdout, stderr=stderr, stdin=stdin, - env=env, shell=shell) + env=env, shell=shell, + preexec_fn=lambda: signal(SIGPIPE, SIG_DFL)) (out, err) = sp.communicate(data) except OSError as e: raise ProcessExecutionError(cmd=args, reason=e)