diff options
author | Changqing Li <changqing.li@windriver.com> | 2020-06-19 17:11:12 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-06-23 10:57:20 +0100 |
commit | 6f262a316d6c32ff9ce96ab4bd95726772b5f20f (patch) | |
tree | 6b9d270ce7db7ae15b4e7f103bc6e18b8082001d /meta/classes/mime.bbclass | |
parent | 43b989c1231d3d867303ccebceda72364a9519ee (diff) | |
download | openembedded-core-contrib-6f262a316d6c32ff9ce96ab4bd95726772b5f20f.tar.gz |
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 <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/mime.bbclass')
-rw-r--r-- | meta/classes/mime.bbclass | 13 |
1 files changed, 12 insertions, 1 deletions
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 } |