mirror of
https://git.yoctoproject.org/poky
synced 2026-02-08 09:46:38 +01:00
Python function subprocess.call() returns the return value of the executed process. If return values are not checked, errors may go unnoticed and bad things can happen. Change all callers of subprocess.call() which do not check for the return value to use subprocess.check_call() which raises CalledProcessError if the subprocess returns with non-zero value. https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module All users of the function were found with: $ git grep "subprocess\.call" | \ egrep -v 'if.*subprocess\.call|=\ +subprocess\.call|return.*subprocess\.call' Tested similar patch on top of yocto jethro. Only compile tested core-image-minimal on poky master branch. (From OE-Core rev: 578c8205fd14c48c6d30ef2889d86f1b4aee060a) Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
79 lines
2.4 KiB
Plaintext
79 lines
2.4 KiB
Plaintext
cml1_do_configure() {
|
|
set -e
|
|
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
|
oe_runmake oldconfig
|
|
}
|
|
|
|
EXPORT_FUNCTIONS do_configure
|
|
addtask configure after do_unpack do_patch before do_compile
|
|
|
|
inherit terminal
|
|
|
|
OE_TERMINAL_EXPORTS += "HOST_EXTRACFLAGS HOSTLDFLAGS TERMINFO CROSS_CURSES_LIB CROSS_CURSES_INC"
|
|
HOST_EXTRACFLAGS = "${BUILD_CFLAGS} ${BUILD_LDFLAGS}"
|
|
HOSTLDFLAGS = "${BUILD_LDFLAGS}"
|
|
CROSS_CURSES_LIB = "-lncurses -ltinfo"
|
|
CROSS_CURSES_INC = '-DCURSES_LOC="<curses.h>"'
|
|
TERMINFO = "${STAGING_DATADIR_NATIVE}/terminfo"
|
|
|
|
KCONFIG_CONFIG_COMMAND ??= "menuconfig"
|
|
python do_menuconfig() {
|
|
import shutil
|
|
|
|
try:
|
|
mtime = os.path.getmtime(".config")
|
|
shutil.copy(".config", ".config.orig")
|
|
except OSError:
|
|
mtime = 0
|
|
|
|
oe_terminal("${SHELL} -c \"make %s; if [ \$? -ne 0 ]; then echo 'Command failed.'; printf 'Press any key to continue... '; read r; fi\"" % d.getVar('KCONFIG_CONFIG_COMMAND'),
|
|
d.getVar('PN') + ' Configuration', d)
|
|
|
|
# FIXME this check can be removed when the minimum bitbake version has been bumped
|
|
if hasattr(bb.build, 'write_taint'):
|
|
try:
|
|
newmtime = os.path.getmtime(".config")
|
|
except OSError:
|
|
newmtime = 0
|
|
|
|
if newmtime > mtime:
|
|
bb.note("Configuration changed, recompile will be forced")
|
|
bb.build.write_taint('do_compile', d)
|
|
}
|
|
do_menuconfig[depends] += "ncurses-native:do_populate_sysroot"
|
|
do_menuconfig[nostamp] = "1"
|
|
do_menuconfig[dirs] = "${B}"
|
|
addtask menuconfig after do_configure
|
|
|
|
python do_diffconfig() {
|
|
import shutil
|
|
import subprocess
|
|
|
|
workdir = d.getVar('WORKDIR')
|
|
fragment = workdir + '/fragment.cfg'
|
|
configorig = '.config.orig'
|
|
config = '.config'
|
|
|
|
try:
|
|
md5newconfig = bb.utils.md5_file(configorig)
|
|
md5config = bb.utils.md5_file(config)
|
|
isdiff = md5newconfig != md5config
|
|
except IOError as e:
|
|
bb.fatal("No config files found. Did you do menuconfig ?\n%s" % e)
|
|
|
|
if isdiff:
|
|
statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
|
|
subprocess.check_call(statement, shell=True)
|
|
|
|
shutil.copy(configorig, config)
|
|
|
|
bb.plain("Config fragment has been dumped into:\n %s" % fragment)
|
|
else:
|
|
if os.path.exists(fragment):
|
|
os.unlink(fragment)
|
|
}
|
|
|
|
do_diffconfig[nostamp] = "1"
|
|
do_diffconfig[dirs] = "${B}"
|
|
addtask diffconfig
|