summaryrefslogtreecommitdiffstats
path: root/lib/bb/utils.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-17 15:28:32 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-02-20 16:45:06 +0000
commitae4ce4c21998bb2a12a1e1f0b8e0af8d218b87e2 (patch)
treebc60678976cc3728bc524c9365c762b28ba7e34c /lib/bb/utils.py
parentc885e5542dcf760b8fc5881e385abb4a10020874 (diff)
downloadbitbake-ae4ce4c21998bb2a12a1e1f0b8e0af8d218b87e2.tar.gz
utils: Fix environment decorator logic error
File "/home/pokybuild/yocto-worker/qemuarm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/core-image-sato/1.0-r0/testsdkext/layers/build/bitbake/lib/bb/fetch2/wget.py", line 328, in checkstatus with bb.utils.environment(**newenv): File "/home/pokybuild/yocto-worker/qemuarm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/core-image-sato/1.0-r0/testsdkext/buildtools/sysroots/x86_64-pokysdk-linux/usr/lib/python3.10/contextlib.py", line 142, in __exit__ next(self.gen) File "/home/pokybuild/yocto-worker/qemuarm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/core-image-sato/1.0-r0/testsdkext/layers/build/bitbake/lib/bb/utils.py", line 1737, in environment del os.environ[var] File "/home/pokybuild/yocto-worker/qemuarm/build/build/tmp/work/qemuarm-poky-linux-gnueabi/core-image-sato/1.0-r0/testsdkext/buildtools/sysroots/x86_64-pokysdk-linux/usr/lib/python3.10/os.py", line 695, in __delitem__ raise KeyError(key) from None It is possible the wrapped function might change the environment which can lead to KeyError issues like this. The key may no longer be in the original environment so handle that case correctly and avoid the tracebacks. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/utils.py')
-rw-r--r--lib/bb/utils.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 128b3ab57..8d614fe23 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -1733,7 +1733,7 @@ def environment(**envvars):
for var in envvars:
if var in backup:
os.environ[var] = backup[var]
- else:
+ elif var in os.environ:
del os.environ[var]
def is_local_uid(uid=''):