diff options
author | david d zuhn <david.zuhn@sonos.com> | 2024-03-18 13:50:05 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-03-21 12:19:55 +0000 |
commit | 86315961829ab1d137a0265cc246c44d3929e1fb (patch) | |
tree | 9194298c032087beb3402f08f3c81612c4f40ba5 | |
parent | 19f9df6c750c592316a0fa18165b68636281fe3e (diff) | |
download | bitbake-contrib-86315961829ab1d137a0265cc246c44d3929e1fb.tar.gz |
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]
Signed-off-by: david d zuhn <david.zuhn@sonos.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | bin/bitbake-worker | 4 | ||||
-rw-r--r-- | lib/bb/runqueue.py | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/bin/bitbake-worker b/bin/bitbake-worker index 04d757014..577651386 100755 --- a/bin/bitbake-worker +++ b/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/lib/bb/runqueue.py b/lib/bb/runqueue.py index 6987de3e2..bc7e18175 100644 --- a/lib/bb/runqueue.py +++ b/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 |