Recipes like postfix run command newaliases in postinst, but newaliases is installed as newaliases.postfix, it needs run update-alternatives to update it to newaliases, so there was an error when installed postinst on target.
Fixed: $ opkg install postfix Configuring postfix. ///var/lib/opkg/info/postfix.postinst: line 4: newaliases: command not found Run update-alternatives firstly will fix the problem. And handle busybox as an exception since it needs set basic tools such as sed command firstly, otherwise update-alternatives doesn't work. Signed-off-by: Robert Yang <[email protected]> --- meta/classes/update-alternatives.bbclass | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index b702e77..9ab9298 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass @@ -265,6 +265,7 @@ python populate_packages_updatealternatives () { if not update_alternatives_enabled(d): return + bpn = d.getVar('BPN') # Do actual update alternatives processing for pkg in (d.getVar('PACKAGES') or "").split(): # Create post install/removal scripts @@ -284,8 +285,16 @@ python populate_packages_updatealternatives () { bb.note('adding update-alternatives calls to postinst/prerm for %s' % pkg) bb.note('%s' % alt_setup_links) - postinst = d.getVar('pkg_postinst_%s' % pkg) or '#!/bin/sh\n' - postinst += alt_setup_links + postinst = d.getVar('pkg_postinst_%s' % pkg) + if postinst: + # Busybox needs handle basic tools such as sed command + # firstly, otherwise, update-alternatives doesn't work. + if bpn == 'busybox': + postinst += alt_setup_links + else: + postinst = alt_setup_links + postinst + else: + postinst = '#!/bin/sh\n' + alt_setup_links d.setVar('pkg_postinst_%s' % pkg, postinst) bb.note('%s' % alt_remove_links) -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
