From 54d6d75445cf138ab6c1b36007576620e74ab9f1 Mon Sep 17 00:00:00 2001 From: Kevin Tian Date: Sat, 14 Aug 2010 12:14:23 +0800 Subject: update-rc.d.bbclass: adjust order on tweaking postinst So far unlike prerm/postrm, update-rc.d has its own postinst method prepended to pkg_postinst, which may result "System startup links for xxx already exist" warning in the 1st boot of target image. Some pkg_postinst requires to run on the target, and thus prepend here makes update-rc.d method executed twice: one in rootfs creation and the other in the 1st target boot. So adjust the order to append. Signed-off-by: Kevin Tian --- meta/classes/update-rc.d.bbclass | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'meta/classes/update-rc.d.bbclass') diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 0c648edb4d..57137c60b4 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -44,18 +44,23 @@ python populate_packages_prepend () { bb.data.setVar("OVERRIDES", "%s:%s" % (pkg, overrides), localdata) bb.data.update_data(localdata) - postinst = '#!/bin/sh\n' + """ + update_rc.d postinst is appended here because pkg_postinst may require to + execute on the target. Not doing so may cause update_rc.d postinst invoked + twice to cause unwanted warnings. + """ + postinst = bb.data.getVar('pkg_postinst', localdata, 1) + if not postinst: + postinst = '#!/bin/sh\n' postinst += bb.data.getVar('updatercd_postinst', localdata, 1) - try: - postinst += bb.data.getVar('pkg_postinst', localdata, 1) - except: - pass bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) + prerm = bb.data.getVar('pkg_prerm', localdata, 1) if not prerm: prerm = '#!/bin/sh\n' prerm += bb.data.getVar('updatercd_prerm', localdata, 1) bb.data.setVar('pkg_prerm_%s' % pkg, prerm, d) + postrm = bb.data.getVar('pkg_postrm', localdata, 1) if not postrm: postrm = '#!/bin/sh\n' -- cgit v1.2.3-54-g00ecf