generic-poky/meta/classes/image-swab.bbclass
Richard Purdie 7fa6eeba1c classes/lib: Add expand parameter to getVarFlag
This sets the scene for removing the default False for expansion
from getVarFlag. This would later allow True to become the default.

On the most part this is an automatic translation with:

sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, True):g'  -i `grep -ril getVar *`

In this case, the default was False, but True was used since in most
cases here expansion would be expected.

(From OE-Core rev: 42a10788e89b07b14a150ced07113566cf99fcdd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04 23:39:00 +00:00

95 lines
3.3 KiB
Text

HOST_DATA ?= "${TMPDIR}/host-contamination-data/"
SWABBER_REPORT ?= "${LOG_DIR}/swabber/"
SWABBER_LOGS ?= "${LOG_DIR}/contamination-logs"
TRACE_LOGDIR ?= "${SWABBER_LOGS}/${PACKAGE_ARCH}"
TRACE_LOGFILE = "${TRACE_LOGDIR}/${PN}-${PV}"
SWAB_ORIG_TASK := "${BB_DEFAULT_TASK}"
BB_DEFAULT_TASK = "generate_swabber_report"
# Several recipes don't build with parallel make when run under strace
# Ideally these should be fixed but as a temporary measure disable parallel
# builds for troublesome recipes
PARALLEL_MAKE_pn-openssl = ""
PARALLEL_MAKE_pn-glibc = ""
PARALLEL_MAKE_pn-glib-2.0 = ""
PARALLEL_MAKE_pn-libxml2 = ""
PARALLEL_MAKE_pn-readline = ""
PARALLEL_MAKE_pn-util-linux = ""
PARALLEL_MAKE_pn-binutils = ""
PARALLEL_MAKE_pn-bison = ""
PARALLEL_MAKE_pn-cmake = ""
PARALLEL_MAKE_pn-elfutils = ""
PARALLEL_MAKE_pn-gcc = ""
PARALLEL_MAKE_pn-gcc-runtime = ""
PARALLEL_MAKE_pn-m4 = ""
PARALLEL_MAKE_pn-opkg = ""
PARALLEL_MAKE_pn-pkgconfig = ""
PARALLEL_MAKE_pn-prelink = ""
PARALLEL_MAKE_pn-rpm = ""
PARALLEL_MAKE_pn-tcl = ""
PARALLEL_MAKE_pn-beecrypt = ""
PARALLEL_MAKE_pn-curl = ""
PARALLEL_MAKE_pn-gmp = ""
PARALLEL_MAKE_pn-libmpc = ""
PARALLEL_MAKE_pn-libxslt = ""
PARALLEL_MAKE_pn-lzo = ""
PARALLEL_MAKE_pn-popt = ""
PARALLEL_MAKE_pn-linux-wrs = ""
PARALLEL_MAKE_pn-libgcrypt = ""
PARALLEL_MAKE_pn-gpgme = ""
PARALLEL_MAKE_pn-udev = ""
PARALLEL_MAKE_pn-gnutls = ""
python() {
# NOTE: It might be useful to detect host infection on native and cross
# packages but as it turns out to be pretty hard to do this for all native
# and cross packages which aren't swabber-native or one of its dependencies
# I have ignored them for now...
if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('nativesdk', d) and not bb.data.inherits_class('cross', d):
deps = (d.getVarFlag('do_setscene', 'depends', True) or "").split()
deps.append('strace-native:do_populate_sysroot')
d.setVarFlag('do_setscene', 'depends', " ".join(deps))
logdir = d.expand("${TRACE_LOGDIR}")
bb.utils.mkdirhier(logdir)
else:
d.setVar('STRACEFUNC', '')
}
STRACEPID = "${@os.getpid()}"
STRACEFUNC = "imageswab_attachstrace"
do_configure[prefuncs] += "${STRACEFUNC}"
do_compile[prefuncs] += "${STRACEFUNC}"
imageswab_attachstrace () {
STRACE=`which strace`
if [ -x "$STRACE" ]; then
swabber-strace-attach "$STRACE -f -o ${TRACE_LOGFILE}-${BB_CURRENTTASK}.log -e trace=open,execve -p ${STRACEPID}" "${TRACE_LOGFILE}-traceattach-${BB_CURRENTTASK}.log"
fi
}
do_generate_swabber_report () {
update_distro ${HOST_DATA}
# Swabber can't create the directory for us
mkdir -p ${SWABBER_REPORT}
REPORTSTAMP=${SWAB_ORIG_TASK}-`date +%2m%2d%2H%2M%Y`
if [ `which ccache` ] ; then
CCACHE_DIR=`( ccache -s | grep "cache directory" | grep -o '[^ ]*$' 2> /dev/null )`
fi
if [ "$(ls -A ${HOST_DATA})" ]; then
echo "Generating swabber report"
swabber -d ${HOST_DATA} -l ${SWABBER_LOGS} -o ${SWABBER_REPORT}/report-${REPORTSTAMP}.txt -r ${SWABBER_REPORT}/extra_report-${REPORTSTAMP}.txt -c all -p ${TOPDIR} -f ${OEROOT}/meta/conf/swabber ${TOPDIR} ${OEROOT} ${CCACHE_DIR}
else
echo "No host data, cannot generate swabber report."
fi
}
addtask generate_swabber_report after do_${SWAB_ORIG_TASK}
do_generate_swabber_report[depends] = "swabber-native:do_populate_sysroot"