On Fri Feb 13, 2026 at 9:08 AM CET, Yoann Congal wrote:
> From: Paul Barker <[email protected]>
>
> When running FAKEROOTCMD (i.e. pseudo), we need to use the same PATH as
> we would use if we were running inside bitbake instead of the host
> environment's PATH. This ensures that we don't pick up any host
> executables that may have problems with pseudo (such as the uutils
> implementations of common system utilities used in Ubuntu 25.10).
>
> Signed-off-by: Paul Barker <[email protected]>
> Signed-off-by: Mathieu Dubois-Briand <[email protected]>
> Signed-off-by: Richard Purdie <[email protected]>
> (cherry picked from commit 1551136333876ab8a63e96430a498dcfa580265c)
> Signed-off-by: Yoann Congal <[email protected]>
> ---
> scripts/lib/devtool/__init__.py | 3 ++-
> scripts/lib/devtool/deploy.py | 6 +++---
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py
> index 969d6dc13ab..7c8de5540c1 100644
> --- a/scripts/lib/devtool/__init__.py
> +++ b/scripts/lib/devtool/__init__.py
> @@ -74,12 +74,13 @@ def exec_watch(cmd, **options):
>
> return buf, None
>
> -def exec_fakeroot_no_d(fakerootcmd, fakerootenv, cmd, **kwargs):
> +def exec_fakeroot_no_d(fakerootcmd, fakerootenv, path, cmd, **kwargs):
As a heads-up, this changes the exec_fakeroot_no_d() API. But, I
discussed this with Paul:
* We think this is an internal API (behind the more public
deploy_no_d())
* And, if this breaks existing code, the change to adapt is trivial.
Regards,
> if not os.path.exists(fakerootcmd):
> logger.error('pseudo executable %s could not be found - have you run
> a build yet? pseudo-native should install this and if you have run any build
> then that should have been built')
> return 2
> # Set up the appropriate environment
> newenv = dict(os.environ)
> + newenv['PATH'] = path
> for varvalue in fakerootenv.split():
> if '=' in varvalue:
> splitval = varvalue.split('=', 1)
> diff --git a/scripts/lib/devtool/deploy.py b/scripts/lib/devtool/deploy.py
> index a98b33c5718..2bf693d165a 100644
> --- a/scripts/lib/devtool/deploy.py
> +++ b/scripts/lib/devtool/deploy.py
> @@ -186,8 +186,8 @@ def deploy_no_d(srcdir, workdir, path, strip_cmd, libdir,
> base_libdir, max_proce
> srcdir = recipe_outdir
> recipe_outdir = os.path.join(workdir,
> 'devtool-deploy-target-stripped')
> if os.path.isdir(recipe_outdir):
> - exec_fakeroot_no_d(fakerootcmd, fakerootenv, "rm -rf %s" %
> recipe_outdir, shell=True)
> - exec_fakeroot_no_d(fakerootcmd, fakerootenv, "cp -af %s %s" %
> (os.path.join(srcdir, '.'), recipe_outdir), shell=True)
> + exec_fakeroot_no_d(fakerootcmd, fakerootenv, path, "rm -rf %s" %
> recipe_outdir, shell=True)
> + exec_fakeroot_no_d(fakerootcmd, fakerootenv, path, "cp -af %s %s" %
> (os.path.join(srcdir, '.'), recipe_outdir), shell=True)
> os.environ['PATH'] = ':'.join([os.environ['PATH'], path or ''])
> oe.package.strip_execs(args.recipename, recipe_outdir, strip_cmd,
> libdir, base_libdir, max_process)
>
> @@ -266,7 +266,7 @@ def deploy_no_d(srcdir, workdir, path, strip_cmd, libdir,
> base_libdir, max_proce
> shutil.rmtree(tmpdir)
>
> # Now run the script
> - ret = exec_fakeroot_no_d(fakerootcmd, fakerootenv, 'tar cf - . | %s %s
> %s %s \'sh %s %s %s %s\'' % (ssh_sshexec, ssh_port, extraoptions,
> args.target, tmpscript, args.recipename, destdir, tmpfilelist),
> cwd=recipe_outdir, shell=True)
> + ret = exec_fakeroot_no_d(fakerootcmd, fakerootenv, path, 'tar cf - . |
> %s %s %s %s \'sh %s %s %s %s\'' % (ssh_sshexec, ssh_port, extraoptions,
> args.target, tmpscript, args.recipename, destdir, tmpfilelist),
> cwd=recipe_outdir, shell=True)
> if ret != 0:
> raise DevtoolError('Deploy failed - rerun with -s to get a complete '
> 'error message')
--
Yoann Congal
Smile ECS
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#231106):
https://lists.openembedded.org/g/openembedded-core/message/231106
Mute This Topic: https://lists.openembedded.org/mt/117789182/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-