summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/mime.bbclass62
-rw-r--r--scripts/postinst-intercepts/update_mime_database9
2 files changed, 41 insertions, 30 deletions
diff --git a/meta/classes/mime.bbclass b/meta/classes/mime.bbclass
index 6c7b868f79..c9072adf3b 100644
--- a/meta/classes/mime.bbclass
+++ b/meta/classes/mime.bbclass
@@ -1,46 +1,47 @@
1DEPENDS += "shared-mime-info" 1#
2# This class is used by recipes installing mime types
3#
4
5DEPENDS += "${@bb.utils.contains('BPN', 'shared-mime-info', '', 'shared-mime-info', d)}"
2PACKAGE_WRITE_DEPS += "shared-mime-info-native" 6PACKAGE_WRITE_DEPS += "shared-mime-info-native"
7MIMEDIR = "${datadir}/mime"
3 8
4mime_postinst() { 9mime_postinst() {
5if [ "$1" = configure ]; then 10if [ "x$D" != "x" ]; then
6 UPDATEMIMEDB=`which update-mime-database` 11 $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
7 if [ -x "$UPDATEMIMEDB" ] ; then 12 mlprefix=${MLPREFIX} \
8 echo "Updating MIME database... this may take a while." 13 mimedir=${MIMEDIR}
9 $UPDATEMIMEDB $D${datadir}/mime 14else
10 else 15 echo "Updating MIME database... this may take a while."
11 echo "Missing update-mime-database, update of mime database failed!" 16 update-mime-database $D${MIMEDIR}
12 exit 1
13 fi
14fi 17fi
15} 18}
16 19
17mime_postrm() { 20mime_postrm() {
18if [ "$1" = remove ] || [ "$1" = upgrade ]; then 21if [ "x$D" != "x" ]; then
19 UPDATEMIMEDB=`which update-mime-database` 22 $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
20 if [ -x "$UPDATEMIMEDB" ] ; then 23 mlprefix=${MLPREFIX} \
21 echo "Updating MIME database... this may take a while." 24 mimedir=${MIMEDIR}
22 $UPDATEMIMEDB $D${datadir}/mime 25else
23 else 26 echo "Updating MIME database... this may take a while."
24 echo "Missing update-mime-database, update of mime database failed!" 27 update-mime-database $D${MIMEDIR}
25 exit 1
26 fi
27fi 28fi
28} 29}
29 30
30python populate_packages_append () { 31python populate_packages_append () {
31 import re
32 packages = d.getVar('PACKAGES').split() 32 packages = d.getVar('PACKAGES').split()
33 pkgdest = d.getVar('PKGDEST') 33 pkgdest = d.getVar('PKGDEST')
34 mimedir = d.getVar('MIMEDIR')
34 35
35 for pkg in packages: 36 for pkg in packages:
36 mime_dir = '%s/%s/usr/share/mime/packages' % (pkgdest, pkg) 37 mime_packages_dir = '%s/%s%s/packages' % (pkgdest, pkg, mimedir)
37 mimes = [] 38 mimes_types_found = False
38 mime_re = re.compile(".*\.xml$") 39 if os.path.exists(mime_packages_dir):
39 if os.path.exists(mime_dir): 40 for f in os.listdir(mime_packages_dir):
40 for f in os.listdir(mime_dir): 41 if f.endswith('.xml'):
41 if mime_re.match(f): 42 mimes_types_found = True
42 mimes.append(f) 43 break
43 if mimes: 44 if mimes_types_found:
44 bb.note("adding mime postinst and postrm scripts to %s" % pkg) 45 bb.note("adding mime postinst and postrm scripts to %s" % pkg)
45 postinst = d.getVar('pkg_postinst_%s' % pkg) 46 postinst = d.getVar('pkg_postinst_%s' % pkg)
46 if not postinst: 47 if not postinst:
@@ -52,6 +53,7 @@ python populate_packages_append () {
52 postrm = '#!/bin/sh\n' 53 postrm = '#!/bin/sh\n'
53 postrm += d.getVar('mime_postrm') 54 postrm += d.getVar('mime_postrm')
54 d.setVar('pkg_postrm_%s' % pkg, postrm) 55 d.setVar('pkg_postrm_%s' % pkg, postrm)
55 bb.note("adding shared-mime-info-data dependency to %s" % pkg) 56 if pkg != 'shared-mime-info-data':
56 d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data") 57 bb.note("adding shared-mime-info-data dependency to %s" % pkg)
58 d.appendVar('RDEPENDS_' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data")
57} 59}
diff --git a/scripts/postinst-intercepts/update_mime_database b/scripts/postinst-intercepts/update_mime_database
new file mode 100644
index 0000000000..582d1e162c
--- /dev/null
+++ b/scripts/postinst-intercepts/update_mime_database
@@ -0,0 +1,9 @@
1#!/bin/sh
2#
3# SPDX-License-Identifier: MIT
4#
5# Post-install intercept for mime.bbclass
6
7echo "Updating MIME database... this may take a while."
8update-mime-database $D${mimedir}
9