Files
poky/meta/classes/mime.bbclass
Richard Purdie ff525695f2 classes: Add SPDX license identifiers
As stated in our top level license files, the license is MIT unless
otherwise stated. Add SPDX identifers accordingly. Replace older
license statementa with the standardised syntax. Also drop "All
Rights Reserved" expression as it isn't used now, doesn't mean anything
and is confusing.

(From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12 11:58:01 +01:00

77 lines
2.5 KiB
Plaintext

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
#
# This class is used by recipes installing mime types
#
DEPENDS += "${@bb.utils.contains('BPN', 'shared-mime-info', '', 'shared-mime-info', d)}"
PACKAGE_WRITE_DEPS += "shared-mime-info-native"
MIMEDIR = "${datadir}/mime"
mime_postinst() {
if [ "x$D" != "x" ]; then
$INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
mlprefix=${MLPREFIX} \
mimedir=${MIMEDIR}
else
echo "Updating MIME database... this may take a while."
update-mime-database $D${MIMEDIR}
fi
}
mime_postrm() {
if [ "x$D" != "x" ]; then
$INTERCEPT_DIR/postinst_intercept update_mime_database ${PKG} \
mlprefix=${MLPREFIX} \
mimedir=${MIMEDIR}
else
echo "Updating MIME database... this may take a while."
# $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
}
python populate_packages:append () {
packages = d.getVar('PACKAGES').split()
pkgdest = d.getVar('PKGDEST')
mimedir = d.getVar('MIMEDIR')
for pkg in packages:
mime_packages_dir = '%s/%s%s/packages' % (pkgdest, pkg, mimedir)
mimes_types_found = False
if os.path.exists(mime_packages_dir):
for f in os.listdir(mime_packages_dir):
if f.endswith('.xml'):
mimes_types_found = True
break
if mimes_types_found:
bb.note("adding mime postinst and postrm scripts to %s" % pkg)
postinst = d.getVar('pkg_postinst:%s' % pkg)
if not postinst:
postinst = '#!/bin/sh\n'
postinst += d.getVar('mime_postinst')
d.setVar('pkg_postinst:%s' % pkg, postinst)
postrm = d.getVar('pkg_postrm:%s' % pkg)
if not postrm:
postrm = '#!/bin/sh\n'
postrm += d.getVar('mime_postrm')
d.setVar('pkg_postrm:%s' % pkg, postrm)
if pkg != 'shared-mime-info-data':
bb.note("adding shared-mime-info-data dependency to %s" % pkg)
d.appendVar('RDEPENDS:' + pkg, " " + d.getVar('MLPREFIX')+"shared-mime-info-data")
}