From ecb1248914c8ebc567e6977864d84da968e17543 Mon Sep 17 00:00:00 2001 From: david d zuhn Date: Mon, 18 Mar 2024 13:50:05 -0500 Subject: bitbake: bitbake-worker: allow '=' in environment variable values Limit the split to key & value (2 items) instead of the n items one can get if there are '=' characters in the value. Fixes [YOCTO #15447] (Bitbake rev: 86315961829ab1d137a0265cc246c44d3929e1fb) Signed-off-by: david d zuhn Signed-off-by: Richard Purdie --- bitbake/bin/bitbake-worker | 4 ++-- bitbake/lib/bb/runqueue.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bitbake/bin/bitbake-worker b/bitbake/bin/bitbake-worker index 04d7570140..577651386f 100755 --- a/bitbake/bin/bitbake-worker +++ b/bitbake/bin/bitbake-worker @@ -183,7 +183,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask): if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run: fakeroot = True envvars = (runtask['fakerootenv'] or "").split() - for key, value in (var.split('=') for var in envvars): + for key, value in (var.split('=',1) for var in envvars): envbackup[key] = os.environ.get(key) os.environ[key] = value fakeenv[key] = value @@ -195,7 +195,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask): (fn, taskname, ', '.join(fakedirs))) else: envvars = (runtask['fakerootnoenv'] or "").split() - for key, value in (var.split('=') for var in envvars): + for key, value in (var.split('=',1) for var in envvars): envbackup[key] = os.environ.get(key) os.environ[key] = value fakeenv[key] = value diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 6987de3e29..bc7e18175d 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -1359,7 +1359,7 @@ class RunQueue: fakerootcmd = shlex.split(mcdata.getVar("FAKEROOTCMD")) fakerootenv = (mcdata.getVar("FAKEROOTBASEENV") or "").split() env = os.environ.copy() - for key, value in (var.split('=') for var in fakerootenv): + for key, value in (var.split('=',1) for var in fakerootenv): env[key] = value worker = subprocess.Popen(fakerootcmd + [sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env) fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs -- cgit v1.2.3-54-g00ecf