From d83a2db49cd9cd178487e76d120509d8ccd9a3ca Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Thu, 28 Aug 2014 20:58:45 +0200 Subject: package_deb: skip pre/postrm scripts on upgrade, write only one shebang Signed-off-by: Andreas Oberritter --- meta/classes/package_deb.bbclass | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 6a5f206488..9aaa4ad64f 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -398,13 +398,26 @@ python do_package_deb () { scriptvar = localdata.getVar('pkg_%s' % script, True) if not scriptvar: continue + scriptvar = scriptvar.strip() try: scriptfile = open(os.path.join(controldir, script), 'w') except OSError: bb.utils.unlockfile(lf) raise bb.build.FuncFailed("unable to open %s script file for writing." % script) - scriptfile.write("#!/bin/sh\n") - scriptfile.write(scriptvar) + + if scriptvar.startswith("#!"): + pos = scriptvar.find("\n") + 1 + scriptfile.write(scriptvar[:pos]) + else: + pos = 0 + scriptfile.write("#!/bin/sh\n") + + # Prevent the prerm/postrm scripts from being run during an upgrade + if script in ('prerm', 'postrm'): + scriptfile.write('[ "$1" != "upgrade" ] || exit 0\n') + + scriptfile.write(scriptvar[pos:]) + scriptfile.write('\n') scriptfile.close() os.chmod(os.path.join(controldir, script), 0755) -- cgit 1.2.3-korg