Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 1 | DEPENDS += "gconf" |
| 2 | PACKAGE_WRITE_DEPS += "gconf-native" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 3 | |
| 4 | # These are for when gconftool is used natively and the prefix isn't necessarily |
| 5 | # the sysroot. TODO: replicate the postinst logic for -native packages going |
| 6 | # into sysroot as they won't be running their own install-time schema |
| 7 | # registration (disabled below) nor the postinst script (as they don't happen). |
| 8 | export GCONF_SCHEMA_INSTALL_SOURCE = "xml:merged:${STAGING_DIR_NATIVE}${sysconfdir}/gconf/gconf.xml.defaults" |
| 9 | export GCONF_BACKEND_DIR = "${STAGING_LIBDIR_NATIVE}/GConf/2" |
| 10 | |
| 11 | # Disable install-time schema registration as we're a packaging system so this |
| 12 | # happens in the postinst script, not at install time. Set both the configure |
| 13 | # script option and the traditional envionment variable just to make sure. |
| 14 | EXTRA_OECONF += "--disable-schemas-install" |
| 15 | export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1" |
| 16 | |
| 17 | gconf_postinst() { |
| 18 | if [ "x$D" != "x" ]; then |
| 19 | export GCONF_CONFIG_SOURCE="xml::$D${sysconfdir}/gconf/gconf.xml.defaults" |
| 20 | else |
| 21 | export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` |
| 22 | fi |
| 23 | |
| 24 | SCHEMA_LOCATION=$D/etc/gconf/schemas |
| 25 | for SCHEMA in ${SCHEMA_FILES}; do |
| 26 | if [ -e $SCHEMA_LOCATION/$SCHEMA ]; then |
| 27 | HOME=$D/root gconftool-2 \ |
| 28 | --makefile-install-rule $SCHEMA_LOCATION/$SCHEMA > /dev/null |
| 29 | fi |
| 30 | done |
| 31 | } |
| 32 | |
| 33 | gconf_prerm() { |
| 34 | SCHEMA_LOCATION=/etc/gconf/schemas |
| 35 | for SCHEMA in ${SCHEMA_FILES}; do |
| 36 | if [ -e $SCHEMA_LOCATION/$SCHEMA ]; then |
| 37 | HOME=/root GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` \ |
| 38 | gconftool-2 \ |
| 39 | --makefile-uninstall-rule $SCHEMA_LOCATION/$SCHEMA > /dev/null |
| 40 | fi |
| 41 | done |
| 42 | } |
| 43 | |
| 44 | python populate_packages_append () { |
| 45 | import re |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 46 | packages = d.getVar('PACKAGES').split() |
| 47 | pkgdest = d.getVar('PKGDEST') |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 48 | |
| 49 | for pkg in packages: |
| 50 | schema_dir = '%s/%s/etc/gconf/schemas' % (pkgdest, pkg) |
| 51 | schemas = [] |
| 52 | schema_re = re.compile(".*\.schemas$") |
| 53 | if os.path.exists(schema_dir): |
| 54 | for f in os.listdir(schema_dir): |
| 55 | if schema_re.match(f): |
| 56 | schemas.append(f) |
| 57 | if schemas != []: |
| 58 | bb.note("adding gconf postinst and prerm scripts to %s" % pkg) |
| 59 | d.setVar('SCHEMA_FILES', " ".join(schemas)) |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 60 | postinst = d.getVar('pkg_postinst_%s' % pkg) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 61 | if not postinst: |
| 62 | postinst = '#!/bin/sh\n' |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 63 | postinst += d.getVar('gconf_postinst') |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 64 | d.setVar('pkg_postinst_%s' % pkg, postinst) |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 65 | prerm = d.getVar('pkg_prerm_%s' % pkg) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 66 | if not prerm: |
| 67 | prerm = '#!/bin/sh\n' |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame^] | 68 | prerm += d.getVar('gconf_prerm') |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 69 | d.setVar('pkg_prerm_%s' % pkg, prerm) |
| 70 | d.appendVar("RDEPENDS_%s" % pkg, ' ' + d.getVar('MLPREFIX', False) + 'gconf') |
| 71 | } |