diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 8af104f765..3a0ff6bd63 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -32,12 +32,12 @@ def oe_import(d): inject(toimport.split(".", 1)[0], imported) python oe_import_eh () { - if isinstance(e, bb.event.ConfigParsed): - oe_import(e.data) - e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data)) + oe_import(e.data) + e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data)) } addhandler oe_import_eh +oe_import_eh[eventmask] = "bb.event.ConfigParsed" def lsb_distro_identifier(d): adjust = d.getVar('LSB_DISTRO_ADJUST', True) @@ -299,6 +299,7 @@ def buildcfg_neededvars(d): bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) addhandler base_eventhandler +base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.BuildStarted" python base_eventhandler() { if isinstance(e, bb.event.ConfigParsed): e.data.setVar('BB_VERSION', bb.__version__) diff --git a/meta/classes/bugzilla.bbclass b/meta/classes/bugzilla.bbclass index 006763d2c7..3fc8956428 100644 --- a/meta/classes/bugzilla.bbclass +++ b/meta/classes/bugzilla.bbclass @@ -71,6 +71,7 @@ def bugzilla_add_comment(debug_file, server, args, bug_number, text): return False addhandler bugzilla_eventhandler +bugzilla_eventhandler[eventmask] = "bb.event.MsgNote bb.build.TaskFailed" python bugzilla_eventhandler() { import glob import xmlrpclib, httplib diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 450eb7cb80..c8fd68c39e 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -525,13 +525,13 @@ END } python buildhistory_eventhandler() { - if isinstance(e, bb.event.BuildCompleted): - if e.data.getVar('BUILDHISTORY_FEATURES', True).strip(): - if e.data.getVar("BUILDHISTORY_COMMIT", True) == "1": - bb.build.exec_func("buildhistory_commit", e.data) + if e.data.getVar('BUILDHISTORY_FEATURES', True).strip(): + if e.data.getVar("BUILDHISTORY_COMMIT", True) == "1": + bb.build.exec_func("buildhistory_commit", e.data) } addhandler buildhistory_eventhandler +buildhistory_eventhandler[eventmask] = "bb.event.BuildCompleted" # FIXME this ought to be moved into the fetcher diff --git a/meta/classes/buildstats.bbclass b/meta/classes/buildstats.bbclass index e12e14fcd6..b98ba3bea7 100644 --- a/meta/classes/buildstats.bbclass +++ b/meta/classes/buildstats.bbclass @@ -278,4 +278,5 @@ python run_buildstats () { } addhandler run_buildstats +run_buildstats[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted bb.build.TaskStarted bb.build.TaskSucceeded bb.build.TaskFailed" diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass index eaba4d113c..54584fea52 100644 --- a/meta/classes/cross.bbclass +++ b/meta/classes/cross.bbclass @@ -58,9 +58,6 @@ do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE do_populate_sysroot[stamp-extra-info] = "" python cross_virtclass_handler () { - if not isinstance(e, bb.event.RecipePreFinalise): - return - classextend = e.data.getVar('BBCLASSEXTEND', True) or "" if "cross" not in classextend: return @@ -73,6 +70,7 @@ python cross_virtclass_handler () { } addhandler cross_virtclass_handler +cross_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" do_install () { oe_runmake 'DESTDIR=${D}' install diff --git a/meta/classes/distrodata.bbclass b/meta/classes/distrodata.bbclass index cedacc214c..3ff62684aa 100644 --- a/meta/classes/distrodata.bbclass +++ b/meta/classes/distrodata.bbclass @@ -1,15 +1,14 @@ include conf/distro/include/package_regex.inc addhandler distro_eventhandler +distro_eventhandler[eventmask] = "bb.event.BuildStarted" python distro_eventhandler() { - - if bb.event.getName(e) == "BuildStarted": - import oe.distro_check as dc - logfile = dc.create_log_file(e.data, "distrodata.csv") - lf = bb.utils.lockfile("%s.lock" % logfile) - f = open(logfile, "a") - f.write("Package,Description,Owner,License,VerMatch,Version,Upsteam,Reason,Recipe Status,Distro 1,Distro 2,Distro 3\n") - f.close() - bb.utils.unlockfile(lf) + import oe.distro_check as dc + logfile = dc.create_log_file(e.data, "distrodata.csv") + lf = bb.utils.lockfile("%s.lock" % logfile) + f = open(logfile, "a") + f.write("Package,Description,Owner,License,VerMatch,Version,Upsteam,Reason,Recipe Status,Distro 1,Distro 2,Distro 3\n") + f.close() + bb.utils.unlockfile(lf) return } @@ -197,6 +196,7 @@ do_distrodataall() { } addhandler checkpkg_eventhandler + checkpkg_eventhandler[eventmask] = "bb.event.BuildStarted bb.event.BuildCompleted" python checkpkg_eventhandler() { def parse_csv_file(filename): package_dict = {} @@ -793,11 +793,11 @@ do_checkpkgall() { } addhandler distro_check_eventhandler +distro_check_eventhandler bb.event.BuildStarted python distro_check_eventhandler() { - if bb.event.getName(e) == "BuildStarted": - """initialize log files.""" - import oe.distro_check as dc - result_file = dc.create_log_file(e.data, "distrocheck.csv") + """initialize log files.""" + import oe.distro_check as dc + result_file = dc.create_log_file(e.data, "distrocheck.csv") return } @@ -839,16 +839,16 @@ do_distro_checkall() { #then we can search those recipes which license text isn't exsit in common-licenses directory # addhandler checklicense_eventhandler +checklicense_eventhandler[eventmask] = "bb.event.BuildStarted" python checklicense_eventhandler() { - if bb.event.getName(e) == "BuildStarted": - """initialize log files.""" - import oe.distro_check as dc - logfile = dc.create_log_file(e.data, "missinglicense.csv") - lf = bb.utils.lockfile("%s.lock" % logfile) - f = open(logfile, "a") - f.write("Package\tLicense\tMissingLicense\n") - f.close() - bb.utils.unlockfile(lf) + """initialize log files.""" + import oe.distro_check as dc + logfile = dc.create_log_file(e.data, "missinglicense.csv") + lf = bb.utils.lockfile("%s.lock" % logfile) + f = open(logfile, "a") + f.write("Package\tLicense\tMissingLicense\n") + f.close() + bb.utils.unlockfile(lf) return } diff --git a/meta/classes/migrate_localcount.bbclass b/meta/classes/migrate_localcount.bbclass index 3916ad4461..aa0df8bb76 100644 --- a/meta/classes/migrate_localcount.bbclass +++ b/meta/classes/migrate_localcount.bbclass @@ -6,41 +6,41 @@ python migrate_localcount_handler () { if not e.data: return - if isinstance(e, bb.event.RecipeParsed): - pv = e.data.getVar('PV', True) - if not 'AUTOINC' in pv: - return + pv = e.data.getVar('PV', True) + if not 'AUTOINC' in pv: + return - localcounts = bb.persist_data.persist('BB_URI_LOCALCOUNT', e.data) - pn = e.data.getVar('PN', True) - revs = localcounts.get_by_pattern('%%-%s_rev' % pn) - counts = localcounts.get_by_pattern('%%-%s_count' % pn) - if not revs or not counts: - return + localcounts = bb.persist_data.persist('BB_URI_LOCALCOUNT', e.data) + pn = e.data.getVar('PN', True) + revs = localcounts.get_by_pattern('%%-%s_rev' % pn) + counts = localcounts.get_by_pattern('%%-%s_count' % pn) + if not revs or not counts: + return - if len(revs) != len(counts): - bb.warn("The number of revs and localcounts don't match in %s" % pn) - return + if len(revs) != len(counts): + bb.warn("The number of revs and localcounts don't match in %s" % pn) + return - version = e.data.getVar('PRAUTOINX', True) - srcrev = bb.fetch2.get_srcrev(e.data) - base_ver = 'AUTOINC-%s' % version[:version.find(srcrev)] - pkgarch = e.data.getVar('PACKAGE_ARCH', True) - value = max(int(count) for count in counts) + version = e.data.getVar('PRAUTOINX', True) + srcrev = bb.fetch2.get_srcrev(e.data) + base_ver = 'AUTOINC-%s' % version[:version.find(srcrev)] + pkgarch = e.data.getVar('PACKAGE_ARCH', True) + value = max(int(count) for count in counts) - if len(revs) == 1: - if srcrev != ('AUTOINC+%s' % revs[0]): - value += 1 - else: + if len(revs) == 1: + if srcrev != ('AUTOINC+%s' % revs[0]): value += 1 + else: + value += 1 - bb.utils.mkdirhier(e.data.getVar('PRSERV_DUMPDIR', True)) - df = e.data.getVar('LOCALCOUNT_DUMPFILE', True) - flock = bb.utils.lockfile("%s.lock" % df) - with open(df, 'a') as fd: - fd.write('PRAUTO$%s$%s$%s = "%s"\n' % - (base_ver, pkgarch, srcrev, str(value))) - bb.utils.unlockfile(flock) + bb.utils.mkdirhier(e.data.getVar('PRSERV_DUMPDIR', True)) + df = e.data.getVar('LOCALCOUNT_DUMPFILE', True) + flock = bb.utils.lockfile("%s.lock" % df) + with open(df, 'a') as fd: + fd.write('PRAUTO$%s$%s$%s = "%s"\n' % + (base_ver, pkgarch, srcrev, str(value))) + bb.utils.unlockfile(flock) } addhandler migrate_localcount_handler +migrate_localcount_handler[eventmask] = "bb.event.RecipeParsed" diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index 9337f65a70..b04825f987 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -1,7 +1,4 @@ python multilib_virtclass_handler () { - if not isinstance(e, bb.event.RecipePreFinalise): - return - cls = e.data.getVar("BBEXTENDCURR", True) variant = e.data.getVar("BBEXTENDVARIANT", True) if cls != "multilib" or not variant: @@ -60,6 +57,7 @@ python multilib_virtclass_handler () { } addhandler multilib_virtclass_handler +multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" STAGINGCC_prepend = "${BBEXTENDVARIANT}-" diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index 85f2d8d15d..3315ba9327 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass @@ -43,4 +43,5 @@ python multilib_virtclass_handler_global () { } addhandler multilib_virtclass_handler_global +multilib_virtclass_handler_global[eventmask] = "bb.event.RecipePreFinalise bb.event.RecipeParsed" diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass index cd930f0702..04f0d06ad9 100644 --- a/meta/classes/native.bbclass +++ b/meta/classes/native.bbclass @@ -104,9 +104,6 @@ CLASSOVERRIDE = "class-native" PATH_prepend = "${COREBASE}/scripts/native-intercept:" python native_virtclass_handler () { - if not isinstance(e, bb.event.RecipePreFinalise): - return - classextend = e.data.getVar('BBCLASSEXTEND', True) or "" if "native" not in classextend: return @@ -152,6 +149,7 @@ python native_virtclass_handler () { } addhandler native_virtclass_handler +native_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" do_package[noexec] = "1" do_packagedata[noexec] = "1" diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass index 8b689e760a..96e1b42a49 100644 --- a/meta/classes/nativesdk.bbclass +++ b/meta/classes/nativesdk.bbclass @@ -60,9 +60,6 @@ export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig" export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" python nativesdk_virtclass_handler () { - if not isinstance(e, bb.event.RecipePreFinalise): - return - pn = e.data.getVar("PN", True) if not pn.endswith("-nativesdk") or pn.startswith("nativesdk-"): return @@ -89,5 +86,6 @@ python () { } addhandler nativesdk_virtclass_handler +nativesdk_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" do_populate_sysroot[stamp-extra-info] = "" diff --git a/meta/classes/packageinfo.bbclass b/meta/classes/packageinfo.bbclass index 4709bea359..42fcd04150 100644 --- a/meta/classes/packageinfo.bbclass +++ b/meta/classes/packageinfo.bbclass @@ -1,29 +1,29 @@ python packageinfo_handler () { - if isinstance(e, bb.event.RequestPackageInfo): - import oe.packagedata - pkginfolist = [] - tmpdir = e.data.getVar('TMPDIR', True) - target_vendor = e.data.getVar('TARGET_VENDOR', True) - target_os = e.data.getVar('TARGET_OS', True) - package_archs = e.data.getVar('PACKAGE_ARCHS', True) - packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] - deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging - - for arch in package_archs.split(): - pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' - if os.path.exists(pkgdata_dir): - for root, dirs, files in os.walk(pkgdata_dir): - for pkgname in files: - if pkgname.endswith('.packaged'): - pkgname = pkgname[:-9] - pkgdatafile = root + pkgname - try: - sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) - sdata['PKG'] = pkgname - pkginfolist.append(sdata) - except Exception as e: - bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) - bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data) + import oe.packagedata + pkginfolist = [] + tmpdir = e.data.getVar('TMPDIR', True) + target_vendor = e.data.getVar('TARGET_VENDOR', True) + target_os = e.data.getVar('TARGET_OS', True) + package_archs = e.data.getVar('PACKAGE_ARCHS', True) + packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1] + deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging + + for arch in package_archs.split(): + pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/' + if os.path.exists(pkgdata_dir): + for root, dirs, files in os.walk(pkgdata_dir): + for pkgname in files: + if pkgname.endswith('.packaged'): + pkgname = pkgname[:-9] + pkgdatafile = root + pkgname + try: + sdata = oe.packagedata.read_pkgdatafile(pkgdatafile) + sdata['PKG'] = pkgname + pkginfolist.append(sdata) + except Exception as e: + bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e))) + bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data) } addhandler packageinfo_handler +packageinfo_handler[eventmask] = "bb.event.RequestPackageInfo" diff --git a/meta/classes/prexport.bbclass b/meta/classes/prexport.bbclass index 6b9d540989..16c4bf2f23 100644 --- a/meta/classes/prexport.bbclass +++ b/meta/classes/prexport.bbclass @@ -55,3 +55,4 @@ python prexport_handler () { } addhandler prexport_handler +prexport_handler bb.event.RecipeParsed bb.event.ParseStarted bb.event.ParseCompleted" diff --git a/meta/classes/primport.bbclass b/meta/classes/primport.bbclass index 37b0d6b1b7..8ed45f03f0 100644 --- a/meta/classes/primport.bbclass +++ b/meta/classes/primport.bbclass @@ -18,3 +18,4 @@ python primport_handler () { } addhandler primport_handler +primport_handler[eventmask] = "bb.event.ParseCompleted bb.event.ParseStarted" diff --git a/meta/classes/recipe_sanity.bbclass b/meta/classes/recipe_sanity.bbclass index bf378eafc1..8b3a1c9571 100644 --- a/meta/classes/recipe_sanity.bbclass +++ b/meta/classes/recipe_sanity.bbclass @@ -140,9 +140,6 @@ do_recipe_sanity_all () { addtask recipe_sanity_all after do_recipe_sanity python recipe_sanity_eh () { - if bb.event.getName(e) != "ConfigParsed": - return - d = e.data cfgdata = {} @@ -168,3 +165,4 @@ python recipe_sanity_eh () { DataSmart.renameVar = myrename } addhandler recipe_sanity_eh +recipe_sanity_eh[eventmask] = "bb.event.ConfigParsed" diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index e692f33839..3b9934b488 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass @@ -672,6 +672,7 @@ def copy_data(e): return sanity_data addhandler check_sanity_eventhandler +check_sanity_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.SanityCheck bb.event.NetworkTest" python check_sanity_eventhandler() { if bb.event.getName(e) == "ConfigParsed" and e.data.getVar("BB_WORKERCONTEXT", True) != "1" and e.data.getVar("DISABLE_SANITY_CHECKS", True) != "1": sanity_data = copy_data(e) diff --git a/meta/classes/typecheck.bbclass b/meta/classes/typecheck.bbclass index 353532d73c..72da932232 100644 --- a/meta/classes/typecheck.bbclass +++ b/meta/classes/typecheck.bbclass @@ -4,9 +4,9 @@ python check_types() { import oe.types - if isinstance(e, bb.event.ConfigParsed): - for key in e.data.keys(): - if e.data.getVarFlag(key, "type"): - oe.data.typed_value(key, e.data) + for key in e.data.keys(): + if e.data.getVarFlag(key, "type"): + oe.data.typed_value(key, e.data) } addhandler check_types +check_types[eventmask] = "bb.event.ConfigParsed" diff --git a/meta/conf/distro/include/csl-versions.inc b/meta/conf/distro/include/csl-versions.inc index e8f52d272d..f3b491cb16 100644 --- a/meta/conf/distro/include/csl-versions.inc +++ b/meta/conf/distro/include/csl-versions.inc @@ -88,8 +88,6 @@ def csl_get_gdb_version(d): return first_line.split()[-1] python csl_version_handler () { - if not isinstance(e, bb.event.ConfigParsed): - return d = e.data ld = d.createCopy() ld.finalize() @@ -101,6 +99,7 @@ python csl_version_handler () { d.setVar('CSL_VER_GDB', csl_get_gdb_version(ld)) } addhandler csl_version_handler +csl_version_handler[eventmask] = "bb.event.ConfigParsed" # Ensure that any variable which includes the --sysroot (CC, CXX, etc) also # depends on the toolchain version diff --git a/meta/conf/distro/include/tcmode-external-sourcery.inc b/meta/conf/distro/include/tcmode-external-sourcery.inc index 098c724e02..53e6653e79 100644 --- a/meta/conf/distro/include/tcmode-external-sourcery.inc +++ b/meta/conf/distro/include/tcmode-external-sourcery.inc @@ -79,9 +79,6 @@ EXTERNAL_TOOLCHAIN_SYSROOT_CMD += "${@csl_multilib_arg(d)}" # to our staging toolchain bindir. python toolchain_metadata_setup () { - if not isinstance(e, bb.event.ConfigParsed): - return - d = e.data l = d.createCopy() @@ -90,17 +87,16 @@ python toolchain_metadata_setup () { d.setVar('TOOLCHAIN_PATH_ADD', '') } addhandler toolchain_metadata_setup +toolchain_metadata_setup[eventmask] = "bb.event.ConfigParsed" python toolchain_setup () { - if not isinstance(e, bb.event.BuildStarted): - return - d = e.data if not d.getVar('TOOLCHAIN_PATH_ADD', True): populate_toolchain_links(d) } addhandler toolchain_setup +toolchain_setup[eventmask] = "bb.event.BuildStarted" def populate_toolchain_links(d): import errno