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>
95 lines
3.3 KiB
Text
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"
|