diff mbox series

pacth: add user and email when patchtool is git

Message ID 20260313115345.4704-2-jose.quaresma@foundries.io
State New
Headers show
Series pacth: add user and email when patchtool is git | expand

Commit Message

Jose Quaresma March 13, 2026, 11:53 a.m. UTC
From: Jose Quaresma <jose.quaresma@oss.qualcomm.com>

When the PATCHTOOL=git, oe-core creates a git repo for the sources with:

 git init
 git add .
 git commit

The git commit fails blindly due to misconfigured user when git don't have
the email proper configured. Although the commit command does not fail
because it returns 0, it is not executed and the tree remains with all
files staged so the following git commands can fail and fails in some cases.

This problem has been particularly observed in some obscure and little-used
cases in openembedded-core like patching the linux-firmware which only works
using PATCHTOOL=git because it deals with binary files.

Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
---
 meta/lib/oe/patch.py | 2 ++
 1 file changed, 2 insertions(+)

Comments

Richard Purdie March 13, 2026, 12:49 p.m. UTC | #1
On Fri, 2026-03-13 at 11:53 +0000, Jose Quaresma via lists.openembedded.org wrote:
> From: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
> 
> When the PATCHTOOL=git, oe-core creates a git repo for the sources with:
> 
>  git init
>  git add .
>  git commit
> 
> The git commit fails blindly due to misconfigured user when git don't have
> the email proper configured. Although the commit command does not fail
> because it returns 0, it is not executed and the tree remains with all
> files staged so the following git commands can fail and fails in some cases.
> 
> This problem has been particularly observed in some obscure and little-used
> cases in openembedded-core like patching the linux-firmware which only works
> using PATCHTOOL=git because it deals with binary files.
> 
> Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
> ---
>  meta/lib/oe/patch.py | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
> index afc42df8a7..abc822f7fb 100644
> --- a/meta/lib/oe/patch.py
> +++ b/meta/lib/oe/patch.py
> @@ -318,6 +318,8 @@ class GitApplyTree(PatchTree):
>  
>      def _initRepo(self):
>          runcmd("git init".split(), self.dir)
> +        runcmd(("git config user.email %s" % self.commitemail).split(), self.dir)
> +        runcmd(("git config user.name %s" % self.commituser).split(), self.dir)

If my name is "Richard Purdie", does that split() do the right thing?

You may just have to split it out in advance:

runcmd(["git, "config", "user.name", self.commituser], self.dir)

Cheers,

Richard
diff mbox series

Patch

diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index afc42df8a7..abc822f7fb 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -318,6 +318,8 @@  class GitApplyTree(PatchTree):
 
     def _initRepo(self):
         runcmd("git init".split(), self.dir)
+        runcmd(("git config user.email %s" % self.commitemail).split(), self.dir)
+        runcmd(("git config user.name %s" % self.commituser).split(), self.dir)
         runcmd("git add .".split(), self.dir)
         runcmd("git commit -a --allow-empty -m bitbake_patching_started".split(), self.dir)