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-22 16:26:45 +0000 |
commit | ecb1248914c8ebc567e6977864d84da968e17543 (patch) | |
tree | e7818bb469e11970d11c9eccfcddbbb5827fa115 | |
parent | 0acdb81ca62f1523eae310fc87f4011b3e161288 (diff) | |
download | poky-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-x | bitbake/bin/bitbake-worker | 4 | ||||
-rw-r--r-- | 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): | |||
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 |