diff options
author | Andreas Oberritter <obi@opendreambox.org> | 2014-10-10 18:36:42 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-10-11 08:06:52 +0100 |
commit | 7b9161dd0c475cca6ea7eb507f7c3c51869eb493 (patch) | |
tree | 6d31d3f9ae103ee6cae38adb9a783e2075cd860f /meta/classes | |
parent | 04f48ad3fab4e21a23c46b90f6a62269a1cf1ee7 (diff) | |
download | openembedded-core-7b9161dd0c475cca6ea7eb507f7c3c51869eb493.tar.gz openembedded-core-7b9161dd0c475cca6ea7eb507f7c3c51869eb493.tar.bz2 openembedded-core-7b9161dd0c475cca6ea7eb507f7c3c51869eb493.zip |
package_deb: skip pre/postrm scripts on upgrade, write only one shebang
Trying to upgrade busybox removing symlinks but update-alternatives
need these links (sed, cut, tail, etc) in order to work.
Adding test to avoid this scripts on upgrade fix the problem, same
solution are found in package_rpm class.
[YOCTO #6768]
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/package_deb.bbclass | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 7bc29df165..5b5f7e2c9a 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass @@ -239,13 +239,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) |