mime.bbclass: fix post install scriptlet error

fix error during post uninstall:
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): execv(/bin/sh) pid 78
+ '[' 0 = 0 ']'
+ set -e
+ '[' x '!=' x ']'
+ echo 'Updating MIME database... this may take a while.'
Updating MIME database... this may take a while.
+ update-mime-database /usr/share/mime
Directory '/usr/share/mime/packages' does not exist!
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): waitpid(78) rc 78 status 100
warning: %postun(shared-mime-info-data-2.0-r0.4.corei7_64) scriptlet failed, exit status 1

when run post uninstall scriptlet, /usr/share/mime/packages has been
removed during unintall, while update-mime-database will check xml under
/usr/share/mime/packages.

workaround by create this dir before update, then remove it

(From OE-Core rev: 24f4f4551d220030c0f847c648a49a15bf1fe6eb)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6f262a316d6c32ff9ce96ab4bd95726772b5f20f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Changqing Li
2020-06-19 17:11:12 +08:00
committed by Richard Purdie
parent 9b60a175fc
commit c32e635b23

View File

@@ -24,7 +24,18 @@ if [ "x$D" != "x" ]; then
mimedir=${MIMEDIR}
else
echo "Updating MIME database... this may take a while."
update-mime-database $D${MIMEDIR}
# $D${MIMEDIR}/packages belong to package shared-mime-info-data,
# packages like libfm-mime depend on shared-mime-info-data.
# after shared-mime-info-data uninstalled, $D${MIMEDIR}/packages
# is removed, but update-mime-database need this dir to update
# database, workaround to create one and remove it later
if [ ! -d $D${MIMEDIR}/packages ]; then
mkdir -p $D${MIMEDIR}/packages
update-mime-database $D${MIMEDIR}
rmdir --ignore-fail-on-non-empty $D${MIMEDIR}/packages
else
update-mime-database $D${MIMEDIR}
fi
fi
}