summaryrefslogtreecommitdiffstats
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-22 16:26:45 +0000
commitecb1248914c8ebc567e6977864d84da968e17543 (patch)
treee7818bb469e11970d11c9eccfcddbbb5827fa115
parent0acdb81ca62f1523eae310fc87f4011b3e161288 (diff)
downloadpoky-ecb1248914c8ebc567e6977864d84da968e17543.tar.gz
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 <david.zuhn@sonos.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbitbake/bin/bitbake-worker4
-rw-r--r--bitbake/lib/bb/runqueue.py2
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):
183 if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run: 183 if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
184 fakeroot = True 184 fakeroot = True
185 envvars = (runtask['fakerootenv'] or "").split() 185 envvars = (runtask['fakerootenv'] or "").split()
186 for key, value in (var.split('=') for var in envvars): 186 for key, value in (var.split('=',1) for var in envvars):
187 envbackup[key] = os.environ.get(key) 187 envbackup[key] = os.environ.get(key)
188 os.environ[key] = value 188 os.environ[key] = value
189 fakeenv[key] = value 189 fakeenv[key] = value
@@ -195,7 +195,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, extraconfigdata, runtask):
195 (fn, taskname, ', '.join(fakedirs))) 195 (fn, taskname, ', '.join(fakedirs)))
196 else: 196 else:
197 envvars = (runtask['fakerootnoenv'] or "").split() 197 envvars = (runtask['fakerootnoenv'] or "").split()
198 for key, value in (var.split('=') for var in envvars): 198 for key, value in (var.split('=',1) for var in envvars):
199 envbackup[key] = os.environ.get(key) 199 envbackup[key] = os.environ.get(key)
200 os.environ[key] = value 200 os.environ[key] = value
201 fakeenv[key] = value 201 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:
1359 fakerootcmd = shlex.split(mcdata.getVar("FAKEROOTCMD")) 1359 fakerootcmd = shlex.split(mcdata.getVar("FAKEROOTCMD"))
1360 fakerootenv = (mcdata.getVar("FAKEROOTBASEENV") or "").split() 1360 fakerootenv = (mcdata.getVar("FAKEROOTBASEENV") or "").split()
1361 env = os.environ.copy() 1361 env = os.environ.copy()
1362 for key, value in (var.split('=') for var in fakerootenv): 1362 for key, value in (var.split('=',1) for var in fakerootenv):
1363 env[key] = value 1363 env[key] = value
1364 worker = subprocess.Popen(fakerootcmd + [sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env) 1364 worker = subprocess.Popen(fakerootcmd + [sys.executable, workerscript, magic], stdout=subprocess.PIPE, stdin=subprocess.PIPE, env=env)
1365 fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs 1365 fakerootlogs = self.rqdata.dataCaches[mc].fakerootlogs