diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/base.bbclass | 92 | ||||
-rw-r--r-- | meta/classes/ccache.inc | 6 | ||||
-rw-r--r-- | meta/classes/ccdv.bbclass | 12 | ||||
-rw-r--r-- | meta/classes/flow-lossage.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/gettext.bbclass | 18 | ||||
-rw-r--r-- | meta/classes/multimachine.bbclass | 29 | ||||
-rw-r--r-- | meta/classes/update-alternatives.bbclass | 12 | ||||
-rw-r--r-- | meta/classes/update-rc.d.bbclass | 70 |
8 files changed, 132 insertions, 111 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 299bf7bee..d8853e546 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -666,52 +666,56 @@ python read_subpackage_metadata () { bb.data.setVar(key, sdata[key], d) } -python __anonymous () { - import exceptions - need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) - if need_host: - import re - this_host = bb.data.getVar('HOST_SYS', d, 1) - if not re.match(need_host, this_host): - raise bb.parse.SkipPackage("incompatible with host %s" % this_host) - - need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) - if need_machine: - import re - this_machine = bb.data.getVar('MACHINE', d, 1) - if this_machine and not re.match(need_machine, this_machine): - raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) - - pn = bb.data.getVar('PN', d, 1) - - srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) - if srcdate != None: - bb.data.setVar('SRCDATE', srcdate, d) - - use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) - if use_nls != None: - bb.data.setVar('USE_NLS', use_nls, d) -} +def base_after_parse_two(d): + import bb + import exceptions + need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) + if need_host: + import re + this_host = bb.data.getVar('HOST_SYS', d, 1) + if not re.match(need_host, this_host): + raise bb.parse.SkipPackage("incompatible with host %s" % this_host) + + need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) + if need_machine: + import re + this_machine = bb.data.getVar('MACHINE', d, 1) + if this_machine and not re.match(need_machine, this_machine): + raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) + + pn = bb.data.getVar('PN', d, 1) + + srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) + if srcdate != None: + bb.data.setVar('SRCDATE', srcdate, d) + + use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) + if use_nls != None: + bb.data.setVar('USE_NLS', use_nls, d) + +def base_after_parse(d): + import bb, os + mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) + old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) + if (old_arch == mach_arch): + # Nothing to do + return + if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): + return + paths = [] + for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: + paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) + for s in bb.data.getVar('SRC_URI', d, 1).split(): + local = bb.data.expand(bb.fetch.localpath(s, d), d) + for mp in paths: + if local.startswith(mp): + #bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) + bb.data.setVar('PACKAGE_ARCH', mach_arch, d) + return python () { - import bb, os - mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) - old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) - if (old_arch == mach_arch): - # Nothing to do - return - if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): - return - paths = [] - for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: - paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) - for s in bb.data.getVar('SRC_URI', d, 1).split(): - local = bb.data.expand(bb.fetch.localpath(s, d), d) - for mp in paths: - if local.startswith(mp): -# bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) - bb.data.setVar('PACKAGE_ARCH', mach_arch, d) - return + base_after_parse_two(d) + base_after_parse(d) } # Patch handling diff --git a/meta/classes/ccache.inc b/meta/classes/ccache.inc index 5e9356104..d830a1b8f 100644 --- a/meta/classes/ccache.inc +++ b/meta/classes/ccache.inc @@ -5,7 +5,7 @@ CCACHE_DIR_TARGET = "${TMPDIR}/ccache" python () { - if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d): - bb.data.setVar('CCACHE_DIR', '${CCACHE_DIR_TARGET}', d) - bb.data.setVarFlag('CCACHE_DIR', 'export', '1', d) + if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d): + bb.data.setVar('CCACHE_DIR', '${CCACHE_DIR_TARGET}', d) + bb.data.setVarFlag('CCACHE_DIR', 'export', '1', d) } diff --git a/meta/classes/ccdv.bbclass b/meta/classes/ccdv.bbclass index edd151ef8..a28ea672e 100644 --- a/meta/classes/ccdv.bbclass +++ b/meta/classes/ccdv.bbclass @@ -1,10 +1,10 @@ python () { - if bb.data.getVar('PN', d, 1) in ['ccdv-native']: - if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1): - bb.data.setVar("DEPENDS", '%s %s' % ("ccdv-native", bb.data.getVar("DEPENDS", d, 1) or ""), d) - bb.data.setVar("CC", '%s %s' % ("ccdv", bb.data.getVar("CC", d, 1) or ""), d) - bb.data.setVar("BUILD_CC", '%s %s' % ("ccdv", bb.data.getVar("BUILD_CC", d, 1) or ""), d) - bb.data.setVar("CCLD", '%s %s' % ("ccdv", bb.data.getVar("CCLD", d, 1) or ""), d) + if bb.data.getVar('PN', d, 1) in ['ccdv-native']: + if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1): + bb.data.setVar("DEPENDS", '%s %s' % ("ccdv-native", bb.data.getVar("DEPENDS", d, 1) or ""), d) + bb.data.setVar("CC", '%s %s' % ("ccdv", bb.data.getVar("CC", d, 1) or ""), d) + bb.data.setVar("BUILD_CC", '%s %s' % ("ccdv", bb.data.getVar("BUILD_CC", d, 1) or ""), d) + bb.data.setVar("CCLD", '%s %s' % ("ccdv", bb.data.getVar("CCLD", d, 1) or ""), d) } def quiet_libtool(bb,d): diff --git a/meta/classes/flow-lossage.bbclass b/meta/classes/flow-lossage.bbclass index 3e841e3ca..00e6bf025 100644 --- a/meta/classes/flow-lossage.bbclass +++ b/meta/classes/flow-lossage.bbclass @@ -1,5 +1,5 @@ # gcc-3.4 blows up in gtktext with -frename-registers on arm-linux python () { - cflags = (bb.data.getVar('CFLAGS', d, 1) or '').replace('-frename-registers', '') - bb.data.setVar('CFLAGS', cflags, d) + cflags = (bb.data.getVar('CFLAGS', d, 1) or '').replace('-frename-registers', '') + bb.data.setVar('CFLAGS', cflags, d) } diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass index 3785f5acd..a1e00e72c 100644 --- a/meta/classes/gettext.bbclass +++ b/meta/classes/gettext.bbclass @@ -1,11 +1,15 @@ +def gettext_after_parse(d): + import bb + # Remove the NLS bits if USE_NLS is no. + if bb.data.getVar('USE_NLS', d, 1) == 'no': + cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d) + cfg += " --disable-nls" + depends = bb.data.getVar('DEPENDS', d, 1) or "" + bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d) + bb.data.setVar('EXTRA_OECONF', cfg, d) + python () { - # Remove the NLS bits if USE_NLS is no. - if bb.data.getVar('USE_NLS', d, 1) == 'no': - cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d) - cfg += " --disable-nls" - depends = bb.data.getVar('DEPENDS', d, 1) or "" - bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d) - bb.data.setVar('EXTRA_OECONF', cfg, d) + gettext_after_parse(d) } DEPENDS =+ "gettext-native" diff --git a/meta/classes/multimachine.bbclass b/meta/classes/multimachine.bbclass index 4359d6c66..0bd6abe41 100644 --- a/meta/classes/multimachine.bbclass +++ b/meta/classes/multimachine.bbclass @@ -4,19 +4,24 @@ STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_ARCH}-${TARGET_OS}/kernel" # Find any machine specific sub packages and if present, mark the # whole package as machine specific for multimachine purposes. -python __anonymous () { - packages = bb.data.getVar('PACKAGES', d, 1).split() - macharch = bb.data.getVar('MACHINE_ARCH', d, 1) - multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1) - for pkg in packages: - pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1) +def multi_machine_after_parse(d): + import bb + packages = bb.data.getVar('PACKAGES', d, 1).split() + macharch = bb.data.getVar('MACHINE_ARCH', d, 1) + multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1) + + for pkg in packages: + pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1) - # We could look for != PACKAGE_ARCH here but how to choose - # if multiple differences are present? - # Look through PACKAGE_ARCHS for the priority order? - if pkgarch and pkgarch == macharch: - multiarch = macharch + # We could look for != PACKAGE_ARCH here but how to choose + # if multiple differences are present? + # Look through PACKAGE_ARCHS for the priority order? + if pkgarch and pkgarch == macharch: + multiarch = macharch - bb.data.setVar('MULTIMACH_ARCH', multiarch, d) + bb.data.setVar('MULTIMACH_ARCH', multiarch, d) + +python __anonymous () { + multi_machine_after_parse(d) } diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index 6b2b547d5..c63581c5d 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass @@ -10,11 +10,15 @@ update_alternatives_postrm() { update-alternatives --remove ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH} } +def update_alternatives_after_parse(d): + import bb + if bb.data.getVar('ALTERNATIVE_NAME', d) == None: + raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_NAME" % bb.data.getVar('FILE', d) + if bb.data.getVar('ALTERNATIVE_PATH', d) == None: + raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_PATH" % bb.data.getVar('FILE', d) + python __anonymous() { - if bb.data.getVar('ALTERNATIVE_NAME', d) == None: - raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_NAME" % bb.data.getVar('FILE', d) - if bb.data.getVar('ALTERNATIVE_PATH', d) == None: - raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_PATH" % bb.data.getVar('FILE', d) + update_alternatives_after_parse(d) } python populate_packages_prepend () { diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 0bfba467c..df0d62c2c 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass @@ -26,44 +26,48 @@ updatercd_postrm() { update-rc.d $D ${INITSCRIPT_NAME} remove } +def update_rc_after_parse(d): + import bb + if bb.data.getVar('INITSCRIPT_PACKAGES', d) == None: + if bb.data.getVar('INITSCRIPT_NAME', d) == None: + raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % bb.data.getVar('FILE', d) + if bb.data.getVar('INITSCRIPT_PARAMS', d) == None: + raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % bb.data.getVar('FILE', d) + python __anonymous() { - if bb.data.getVar('INITSCRIPT_PACKAGES', d) == None: - if bb.data.getVar('INITSCRIPT_NAME', d) == None: - raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % bb.data.getVar('FILE', d) - if bb.data.getVar('INITSCRIPT_PARAMS', d) == None: - raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % bb.data.getVar('FILE', d) + update_rc_after_parse(d) } python populate_packages_prepend () { - def update_rcd_package(pkg): - bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg) - localdata = bb.data.createCopy(d) - overrides = bb.data.getVar("OVERRIDES", localdata, 1) - bb.data.setVar("OVERRIDES", "%s:%s" % (pkg, overrides), localdata) - bb.data.update_data(localdata) + def update_rcd_package(pkg): + bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg) + localdata = bb.data.createCopy(d) + overrides = bb.data.getVar("OVERRIDES", localdata, 1) + bb.data.setVar("OVERRIDES", "%s:%s" % (pkg, overrides), localdata) + bb.data.update_data(localdata) - postinst = bb.data.getVar('pkg_postinst', localdata, 1) - if not postinst: - postinst = '#!/bin/sh\n' - postinst += bb.data.getVar('updatercd_postinst', localdata, 1) - bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) - prerm = bb.data.getVar('pkg_prerm', localdata, 1) - if not prerm: - prerm = '#!/bin/sh\n' - prerm += bb.data.getVar('updatercd_prerm', localdata, 1) - bb.data.setVar('pkg_prerm_%s' % pkg, prerm, d) - postrm = bb.data.getVar('pkg_postrm', localdata, 1) - if not postrm: - postrm = '#!/bin/sh\n' + postinst = bb.data.getVar('pkg_postinst', localdata, 1) + if not postinst: + postinst = '#!/bin/sh\n' + postinst += bb.data.getVar('updatercd_postinst', localdata, 1) + bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) + prerm = bb.data.getVar('pkg_prerm', localdata, 1) + if not prerm: + prerm = '#!/bin/sh\n' + prerm += bb.data.getVar('updatercd_prerm', localdata, 1) + bb.data.setVar('pkg_prerm_%s' % pkg, prerm, d) + postrm = bb.data.getVar('pkg_postrm', localdata, 1) + if not postrm: + postrm = '#!/bin/sh\n' postrm += bb.data.getVar('updatercd_postrm', localdata, 1) - bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d) + bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d) - pkgs = bb.data.getVar('INITSCRIPT_PACKAGES', d, 1) - if pkgs == None: - pkgs = bb.data.getVar('PN', d, 1) - packages = (bb.data.getVar('PACKAGES', d, 1) or "").split() - if not pkgs in packages and packages != []: - pkgs = packages[0] - for pkg in pkgs.split(): - update_rcd_package(pkg) + pkgs = bb.data.getVar('INITSCRIPT_PACKAGES', d, 1) + if pkgs == None: + pkgs = bb.data.getVar('PN', d, 1) + packages = (bb.data.getVar('PACKAGES', d, 1) or "").split() + if not pkgs in packages and packages != []: + pkgs = packages[0] + for pkg in pkgs.split(): + update_rcd_package(pkg) } |