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)}" 6PACKAGE_WRITE_DEPS += "shared-mime-info-native" 7MIMEDIR = "${datadir}/mime" 8 9mime_postinst() { 10if [ "x$D" != "x" ]; then 11 $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \ 12 mlprefix=${MLPREFIX} \ 13 mimedir=${MIMEDIR} 14else 15 echo "Updating MIME database... this may take a while." 16 update-mime-database $D${MIMEDIR} 17fi 18} 19 20mime_postrm() { 21if [ "x$D" != "x" ]; then 22 $INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \ 23 mlprefix=${MLPREFIX} \ 24 mimedir=${MIMEDIR} 25else 26 echo "Updating MIME database... this may take a while." 27 # $D${MIMEDIR}/packages belong to package shared-mime-info-data, 28 # packages like libfm-mime depend on shared-mime-info-data. 29 # after shared-mime-info-data uninstalled, $D${MIMEDIR}/packages 30 # is removed, but update-mime-database need this dir to update 31 # database, workaround to create one and remove it later 32 if [ ! -d $D${MIMEDIR}/packages ]; then 33 mkdir -p $D${MIMEDIR}/packages 34 update-mime-database $D${MIMEDIR} 35 rmdir --ignore-fail-on-non-empty $D${MIMEDIR}/packages 36 else 37 update-mime-database $D${MIMEDIR} 38fi 39fi 40} 41 42python populate_packages:append () { 43 packages = d.getVar('PACKAGES').split() 44 pkgdest = d.getVar('PKGDEST') 45 mimedir = d.getVar('MIMEDIR') 46 47 for pkg in packages: 48 mime_packages_dir = '%s/%s%s/packages' % (pkgdest, pkg, mimedir) 49 mimes_types_found = False 50 if os.path.exists(mime_packages_dir): 51 for f in os.listdir(mime_packages_dir): 52 if f.endswith('.xml'): 53 mimes_types_found = True 54 break 55 if mimes_types_found: 56 bb.note("adding mime postinst and postrm scripts to %s" % pkg) 57 postinst = d.getVar('pkg_postinst:%s' % pkg) 58 if not postinst: 59 postinst = '#!/bin/sh\n' 60 postinst += d.getVar('mime_postinst') 61 d.setVar('pkg_postinst:%s' % pkg, postinst) 62 postrm = d.getVar('pkg_postrm:%s' % pkg) 63 if not postrm: 64 postrm = '#!/bin/sh\n' 65 postrm += d.getVar('mime_postrm') 66 d.setVar('pkg_postrm:%s' % pkg, postrm) 67 if pkg != 'shared-mime-info-data': 68 bb.note("adding shared-mime-info-data dependency to %s" % pkg) 69 d.appendVar('RDEPENDS:' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data") 70} 71