rpm-postinsts.bb: enable postinst logging

Enable postinst logging by checking the configuration in ${sysconfdir}
/default/postinst.

In this way, the postinst logging is enabled if 'debug-tweaks' is
in IMAGE_FEATURES, and at the same time, we avoid unnecessary rebuild
if IMAGE_FEATURES is changed.

[YOCTO #4262]

(From OE-Core rev: 6f2aa32f10c24c84e581128bb3a976ef071197ac)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi 2013-05-23 12:43:36 +08:00 committed by Richard Purdie
parent 0bf2c0af71
commit f7b639e527
1 changed files with 9 additions and 8 deletions

View File

@ -9,10 +9,6 @@ inherit allarch
#
POSTINSTALL_INITPOSITION ?= "98"
POSTLOG ?= "/var/log/postinstall.log"
REDIRECT_CMD = "${@base_contains('IMAGE_FEATURES', 'debug-tweaks', '>>${POSTLOG} 2>&1', '', d)}"
REDIRECT_CMD[vardepsexclude] += "IMAGE_FEATURES POSTLOG"
do_fetch() {
:
}
@ -34,11 +30,16 @@ if [ "x$D" != "x" ] && [ -f $D/var/lib/rpm/Packages ]; then
install -d $D/${sysconfdir}/rcS.d
cat > $D${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}run-postinsts << "EOF"
#!/bin/sh
[ -d /etc/rpm-postinsts ] && for i in `ls /etc/rpm-postinsts/`; do
i=/etc/rpm-postinsts/$i
[ -e ${sysconfdir}/default/postinst ] && . ${sysconfdir}/default/postinst
[ -d ${sysconfdir}/rpm-postinsts ] && for i in `ls ${sysconfdir}/rpm-postinsts/`; do
i=${sysconfdir}/rpm-postinsts/$i
echo "Running postinst $i..."
if [ -f $i ] && $i ${REDIRECT_CMD}; then
if [ -x $i ]; then
if [ "$POSTINST_LOGGING" = "1" ]; then
$i >>$LOGFILE 2&>1
else
$i
fi
rm $i
else
echo "ERROR: postinst $i failed."