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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to