package_rpm.bbclass: run pre/post installation scriptlets using sh -e

This allows catching errors in the scriptlets which would otherwise
go unnoticed, e.g. this sequence:

====
bogus_command
proper_command
====

would work just fine. Note that this patch needs all of the preceding
patches, as otherwise running failing scriptlets with -e would defer
them to first boot, instead of properly reporting failure and aborting
the package installation.

(From OE-Core rev: 3cd8a55d5298ce9cc176e402fdb727abb26a1a4c)

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2018-01-29 14:01:33 +02:00
committed by Richard Purdie
parent 7bc55b2960
commit a2b7260f79

View File

@@ -470,12 +470,12 @@ python write_specfile () {
# Now process scriptlets
if splitrpreinst:
spec_scriptlets_bottom.append('%%pre -n %s' % splitname)
spec_scriptlets_bottom.append('%%pre -n %s -p "/bin/sh -e"' % splitname)
spec_scriptlets_bottom.append('# %s - preinst' % splitname)
spec_scriptlets_bottom.append(splitrpreinst)
spec_scriptlets_bottom.append('')
if splitrpostinst:
spec_scriptlets_bottom.append('%%post -n %s' % splitname)
spec_scriptlets_bottom.append('%%post -n %s -p "/bin/sh -e"' % splitname)
spec_scriptlets_bottom.append('# %s - postinst' % splitname)
spec_scriptlets_bottom.append(splitrpostinst)
spec_scriptlets_bottom.append('')
@@ -564,12 +564,12 @@ python write_specfile () {
spec_preamble_top.append('')
if srcrpreinst:
spec_scriptlets_top.append('%pre')
spec_scriptlets_top.append('%pre -p "/bin/sh -e"')
spec_scriptlets_top.append('# %s - preinst' % srcname)
spec_scriptlets_top.append(srcrpreinst)
spec_scriptlets_top.append('')
if srcrpostinst:
spec_scriptlets_top.append('%post')
spec_scriptlets_top.append('%post -p "/bin/sh -e"')
spec_scriptlets_top.append('# %s - postinst' % srcname)
spec_scriptlets_top.append(srcrpostinst)
spec_scriptlets_top.append('')