| DEPENDS += "gconf" |
| PACKAGE_WRITE_DEPS += "gconf-native" |
| |
| # These are for when gconftool is used natively and the prefix isn't necessarily |
| # the sysroot. TODO: replicate the postinst logic for -native packages going |
| # into sysroot as they won't be running their own install-time schema |
| # registration (disabled below) nor the postinst script (as they don't happen). |
| export GCONF_SCHEMA_INSTALL_SOURCE = "xml:merged:${STAGING_DIR_NATIVE}${sysconfdir}/gconf/gconf.xml.defaults" |
| export GCONF_BACKEND_DIR = "${STAGING_LIBDIR_NATIVE}/GConf/2" |
| |
| # Disable install-time schema registration as we're a packaging system so this |
| # happens in the postinst script, not at install time. Set both the configure |
| # script option and the traditional envionment variable just to make sure. |
| EXTRA_OECONF += "--disable-schemas-install" |
| export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1" |
| |
| gconf_postinst() { |
| if [ "x$D" != "x" ]; then |
| export GCONF_CONFIG_SOURCE="xml::$D${sysconfdir}/gconf/gconf.xml.defaults" |
| else |
| export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` |
| fi |
| |
| SCHEMA_LOCATION=$D/etc/gconf/schemas |
| for SCHEMA in ${SCHEMA_FILES}; do |
| if [ -e $SCHEMA_LOCATION/$SCHEMA ]; then |
| HOME=$D/root gconftool-2 \ |
| --makefile-install-rule $SCHEMA_LOCATION/$SCHEMA > /dev/null |
| fi |
| done |
| } |
| |
| gconf_prerm() { |
| SCHEMA_LOCATION=/etc/gconf/schemas |
| for SCHEMA in ${SCHEMA_FILES}; do |
| if [ -e $SCHEMA_LOCATION/$SCHEMA ]; then |
| HOME=/root GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` \ |
| gconftool-2 \ |
| --makefile-uninstall-rule $SCHEMA_LOCATION/$SCHEMA > /dev/null |
| fi |
| done |
| } |
| |
| python populate_packages:append () { |
| import re |
| packages = d.getVar('PACKAGES').split() |
| pkgdest = d.getVar('PKGDEST') |
| |
| for pkg in packages: |
| schema_dir = '%s/%s/etc/gconf/schemas' % (pkgdest, pkg) |
| schemas = [] |
| schema_re = re.compile(r".*\.schemas$") |
| if os.path.exists(schema_dir): |
| for f in os.listdir(schema_dir): |
| if schema_re.match(f): |
| schemas.append(f) |
| if schemas != []: |
| bb.note("adding gconf postinst and prerm scripts to %s" % pkg) |
| d.setVar('SCHEMA_FILES', " ".join(schemas)) |
| postinst = d.getVar('pkg_postinst:%s' % pkg) |
| if not postinst: |
| postinst = '#!/bin/sh\n' |
| postinst += d.getVar('gconf_postinst') |
| d.setVar('pkg_postinst:%s' % pkg, postinst) |
| prerm = d.getVar('pkg_prerm:%s' % pkg) |
| if not prerm: |
| prerm = '#!/bin/sh\n' |
| prerm += d.getVar('gconf_prerm') |
| d.setVar('pkg_prerm:%s' % pkg, prerm) |
| d.appendVar("RDEPENDS:%s" % pkg, ' ' + d.getVar('MLPREFIX', False) + 'gconf') |
| } |