aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavid d zuhn <david.zuhn@sonos.com>2024-03-18 13:50:05 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-03-21 12:19:55 +0000
commit86315961829ab1d137a0265cc246c44d3929e1fb (patch)
tree9194298c032087beb3402f08f3c81612c4f40ba5
parent19f9df6c750c592316a0fa18165b68636281fe3e (diff)
downloadbitbake-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-xbin/bitbake-worker4
-rw-r--r--lib/bb/runqueue.py2
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