summaryrefslogtreecommitdiff
path: root/classes/emit_data.bbclass
blob: 127af4a44ce16b393c16baa8d534b0a7df01a583 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Emit the datastore to a file, and if it was previously emitted, display the
# differences to the user.

EMIT_DIR = "${TMPDIR}/emit-data"
EMIT_BLACKLIST += "BUILDSTART DATE TIME DATETIME \
                   __* _  PWD \
                   DISPLAY XDG_SESSION_COOKIE \
                   SSH_AUTH_SOCK SSH_TTY SSH_CLIENT SSH_CONNECTION \
                   SESSION_MANAGER DESKTOP_SESSION COLORTERM TERM \
                   XAUTHORITY GTK_RC_FILES DBUS_SESSION_BUS_ADDRESS \
                   GREP_OPTIONS \
                   GNOME_KEYRING GNOME_KEYRING_PID"

def diff_datadict(d, old_data, data):
    from itertools import chain
    from difflib import Differ
    from fnmatch import fnmatchcase

    blacklist = d.getVar("EMIT_BLACKLIST", True).split()

    keys = sorted(set(chain(old_data.iterkeys(), data.iterkeys())))
    keys = [key for key in keys
            if not any(fnmatchcase(key, pat) for pat in blacklist)]

    old = ["%s: %s\n" % (key, old_data.get(key)) for key in keys]
    new = ["%s: %s\n" % (key, data.get(key)) for key in keys]
    return Differ().compare(old, new)


python do_emit_data () {
    import pickle

    data = dict((key, repr(d.getVar(key, False))) for key in d.keys())
    outfile = os.path.join(d.getVar("EMIT_DIR", True), d.getVar("PF", True))
    bb.mkdirhier(os.path.dirname(outfile))
    if os.path.exists(outfile):
        f = open(outfile, "rb")
        old_data = pickle.load(f)
        f.close()

        diff = diff_datadict(d, old_data, data)
        differences = [line for line in diff if not line.startswith(" ")]
        if differences:
            bb.note(bb.data.expand("${PF}: data has changed:", d))
            for line in differences:
                bb.note(line.rstrip())

    pickle.dump(data, open(outfile, "wb"))
}
do_emit_data[nostamp] = "1"
addtask emit_data

do_emit_data_all[recrdeptask] = "do_emit_data"
do_emit_data_all[nostamp] = "1"
addtask emit_data_all after do_emit_data
ass='right'>897
-rw-r--r--classes/binconfig.bbclass49
-rw-r--r--classes/bootimg.bbclass61
-rw-r--r--classes/canadian-cross.bbclass81
-rw-r--r--classes/canadian-native.bbclass71
-rw-r--r--classes/canadian-sdk.bbclass102
-rw-r--r--classes/canadian.bbclass29
-rw-r--r--classes/chicken.bbclass11
-rw-r--r--classes/clean.bbclass53
-rw-r--r--classes/cmake.bbclass46
-rw-r--r--classes/concatenated-image.bbclass38
-rw-r--r--classes/corecdp-mirrors.bbclass4
-rw-r--r--classes/cpan-base.bbclass6
-rw-r--r--classes/cpan.bbclass21
-rw-r--r--classes/cpan_build.bbclass3
-rw-r--r--classes/cross-canadian.bbclass46
-rw-r--r--classes/cross.bbclass38
-rw-r--r--classes/crosssdk.bbclass15
-rw-r--r--classes/debian.bbclass22
-rw-r--r--classes/devshell.bbclass4
-rw-r--r--classes/dietlibc.bbclass30
-rw-r--r--classes/distutils-base.bbclass15
-rw-r--r--classes/distutils-common-base.bbclass30
-rw-r--r--classes/distutils-native-base.bbclass3
-rw-r--r--classes/distutils.bbclass37
-rw-r--r--classes/dsmg600-image.bbclass5
-rw-r--r--classes/e.bbclass38
-rw-r--r--classes/efl.bbclass60
-rw-r--r--classes/efl_base.bbclass20
-rw-r--r--classes/efl_library.bbclass9
-rw-r--r--classes/failure-cleanup.bbclass18
-rw-r--r--classes/fso-plugin.bbclass4
-rw-r--r--classes/gconf.bbclass11
-rw-r--r--classes/gettext.bbclass2
-rw-r--r--classes/gitver.bbclass64
-rw-r--r--classes/glibc-package.bbclass305
-rw-r--r--classes/glx-use-tls.bbclass7
-rw-r--r--classes/gnome.bbclass18
-rw-r--r--classes/gtk-binver.bbclass2
-rw-r--r--classes/gtk-doc.bbclass4
-rw-r--r--classes/gtk-icon-cache.bbclass29
-rw-r--r--classes/icecc.bbclass187
-rw-r--r--classes/image.bbclass181
-rw-r--r--classes/insane.bbclass338
-rw-r--r--classes/java-library.bbclass70
-rw-r--r--classes/java-native.bbclass11
-rw-r--r--classes/java.bbclass195
-rw-r--r--classes/kernel-arch.bbclass14
-rw-r--r--classes/kernel.bbclass233
-rw-r--r--classes/lib_package.bbclass7
-rw-r--r--classes/linux-kernel-base.bbclass6
-rw-r--r--classes/lockdown.bbclass41
-rw-r--r--classes/lsppchd-image.bbclass10
-rw-r--r--classes/lsppchg-image.bbclass10
-rw-r--r--classes/manifest.bbclass2
-rw-r--r--classes/meta.bbclass1
-rw-r--r--classes/mime.bbclass56
-rw-r--r--classes/module-base.bbclass8
-rw-r--r--classes/module.bbclass20
-rw-r--r--classes/module_strip.bbclass32
-rw-r--r--classes/mono.bbclass174
-rw-r--r--classes/mozilla.bbclass12
-rw-r--r--classes/multimachine.bbclass29
-rw-r--r--classes/n2100-image.bbclass2
-rw-r--r--classes/nas100d-image.bbclass5
-rw-r--r--classes/native.bbclass118
-rw-r--r--classes/nativesdk.bbclass78
-rw-r--r--classes/nslu2-image.bbclass38
-rw-r--r--classes/nslu2-mirrors.bbclass4
-rw-r--r--classes/nylon-image.bbclass3
-rw-r--r--classes/nylon-mirrors.bbclass8
-rw-r--r--classes/oestats-client.bbclass202
-rw-r--r--classes/openmoko-base.bbclass3
-rw-r--r--classes/openmoko2.bbclass6
-rw-r--r--classes/opie.bbclass1
-rw-r--r--classes/opie_i18n.bbclass20
-rw-r--r--classes/oplinux-mirrors.bbclass16
-rw-r--r--classes/own-mirrors.bbclass2
-rw-r--r--classes/package.bbclass782
-rw-r--r--classes/package_dbg.bbclass125
-rw-r--r--classes/package_deb.bbclass98
-rw-r--r--classes/package_ipk.bbclass195
-rw-r--r--classes/package_rpm.bbclass166
-rw-r--r--classes/package_tar.bbclass44
-rw-r--r--classes/packaged-staging.bbclass595
-rw-r--r--classes/packagedata.bbclass73
-rw-r--r--classes/packagehistory.bbclass97
-rw-r--r--classes/palmtop.bbclass1
-rw-r--r--classes/patch.bbclass52
-rw-r--r--classes/pkgconfig.bbclass35
-rw-r--r--classes/qemu.bbclass15
-rw-r--r--classes/qmake-base.bbclass44
-rw-r--r--classes/qmake.bbclass66
-rw-r--r--classes/qmake2.bbclass23
-rw-r--r--classes/qmake_base.bbclass91
-rw-r--r--classes/qpf.bbclass32
-rw-r--r--classes/qt3e.bbclass6
-rw-r--r--classes/qt3x11.bbclass4
-rw-r--r--classes/qt4e.bbclass17
-rw-r--r--classes/qt4x11.bbclass24
-rw-r--r--classes/recipe_sanity.bbclass179
-rw-r--r--classes/rm_work.bbclass33
-rw-r--r--classes/rootfs_deb.bbclass93
-rw-r--r--classes/rootfs_ipk.bbclass116
-rw-r--r--classes/rootfs_rpm.bbclass210
-rw-r--r--classes/rpm_core.bbclass16
-rw-r--r--classes/sanity.bbclass113
-rw-r--r--classes/scons.bbclass11
-rw-r--r--classes/scratchbox-compat.bbclass13
-rw-r--r--classes/sdk.bbclass70
-rw-r--r--classes/sdl.bbclass38
-rw-r--r--classes/seppuku.bbclass64
-rw-r--r--classes/setuptools.bbclass8
-rw-r--r--classes/singlemachine.bbclass12
-rw-r--r--classes/sip.bbclass12
-rw-r--r--classes/sip3.bbclass2
-rw-r--r--classes/siteinfo.bbclass80
-rw-r--r--classes/sourcepkg.bbclass15
-rw-r--r--classes/src_distribute.bbclass74
-rw-r--r--classes/src_distribute_local.bbclass58
-rw-r--r--classes/srctree.bbclass115
-rw-r--r--classes/task-metadata-track.bbclass96
-rw-r--r--classes/testlab.bbclass65
-rw-r--r--classes/tinderclient.bbclass29
-rw-r--r--classes/tmake.bbclass2
-rw-r--r--classes/update-alternatives.bbclass1
-rw-r--r--classes/update-rc.d.bbclass30
-rw-r--r--classes/vala.bbclass14
-rw-r--r--classes/xfce.bbclass11
-rw-r--r--classes/xfce46.bbclass28
-rw-r--r--classes/xilinx-bsp.bbclass2
-rw-r--r--classes/xlibs.bbclass4
-rw-r--r--conf/abi_version.conf15
-rw-r--r--conf/amend-recipes.inc29
-rw-r--r--conf/bitbake.conf471
-rw-r--r--conf/checksums.ini35665
-rw-r--r--