From 6f262a316d6c32ff9ce96ab4bd95726772b5f20f Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Fri, 19 Jun 2020 17:11:12 +0800 Subject: 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 Signed-off-by: Changqing Li Signed-off-by: Richard Purdie --- meta/classes/mime.bbclass | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/meta/classes/mime.bbclass b/meta/classes/mime.bbclass index c9072adf3b..bb99bc35cb 100644 --- a/meta/classes/mime.bbclass +++ b/meta/classes/mime.bbclass @@ -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 } -- cgit 1.2.3-korg