[dunfell,V2] recipes-kernel: setup-defconfig: Use SRCPV to update KERNEL_LOCALVERSION

Message ID 20220428031443.21064-1-nm@ti.com
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [dunfell,V2] recipes-kernel: setup-defconfig: Use SRCPV to update KERNEL_LOCALVERSION | expand

Commit Message

Nishanth Menon April 28, 2022, 3:14 a.m. UTC
Due to recent security update[1] in git, a subprocess will be unable
to run git rev-parse to fetch revision.

So instead, use the SRCPV to parse the short commit ID and set the
KERNEL_LOCALVERSION variable.

[1] https://github.blog/2022-04-12-git-security-vulnerability-announced/

Inspired-by: Devarsh Thakkar <devarsht@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
---
Changes since V1:
* Update to commit message and subjectline.

V1: https://lore.kernel.org/all/20220428030805.18623-1-nm@ti.com/

 recipes-kernel/linux/setup-defconfig.inc | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

Comments

Ryan Eatmon April 28, 2022, 12:15 p.m. UTC | #1
Patch applied to dunfell-wip.


On 4/27/2022 22:14, Nishanth Menon wrote:
> Due to recent security update[1] in git, a subprocess will be unable
> to run git rev-parse to fetch revision.
> 
> So instead, use the SRCPV to parse the short commit ID and set the
> KERNEL_LOCALVERSION variable.
> 
> [1] https://github.blog/2022-04-12-git-security-vulnerability-announced/
> 
> Inspired-by: Devarsh Thakkar <devarsht@ti.com>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> ---
> Changes since V1:
> * Update to commit message and subjectline.
> 
> V1: https://lore.kernel.org/all/20220428030805.18623-1-nm@ti.com/
> 
>   recipes-kernel/linux/setup-defconfig.inc | 10 +---------
>   1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/recipes-kernel/linux/setup-defconfig.inc b/recipes-kernel/linux/setup-defconfig.inc
> index 850a1dd8d613..1e97acc0ee63 100644
> --- a/recipes-kernel/linux/setup-defconfig.inc
> +++ b/recipes-kernel/linux/setup-defconfig.inc
> @@ -1,14 +1,6 @@
>   # KERNEL_LOCALVERSION can be set to add a tag to the end of the
>   # kernel version string.  such as the commit id
> -def get_git_revision(p):
> -    import subprocess
> -
> -    try:
> -        return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE, universal_newlines=True).communicate()[0].rstrip()
> -    except OSError:
> -        return None
> -
> -KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
> +KERNEL_LOCALVERSION = "-g${@d.getVar('SRCPV', True).split('+')[1]}"
>   
>   # Check the defconfig file and see if it points to an in kernel
>   # defconfig that should be used, or if it is a complete config file

Patch

diff --git a/recipes-kernel/linux/setup-defconfig.inc b/recipes-kernel/linux/setup-defconfig.inc
index 850a1dd8d613..1e97acc0ee63 100644
--- a/recipes-kernel/linux/setup-defconfig.inc
+++ b/recipes-kernel/linux/setup-defconfig.inc
@@ -1,14 +1,6 @@ 
 # KERNEL_LOCALVERSION can be set to add a tag to the end of the
 # kernel version string.  such as the commit id
-def get_git_revision(p):
-    import subprocess
-
-    try:
-        return subprocess.Popen("git rev-parse HEAD 2>/dev/null ", cwd=p, shell=True, stdout=subprocess.PIPE, universal_newlines=True).communicate()[0].rstrip()
-    except OSError:
-        return None
-
-KERNEL_LOCALVERSION = "-g${@get_git_revision('${S}').__str__()[:10]}"
+KERNEL_LOCALVERSION = "-g${@d.getVar('SRCPV', True).split('+')[1]}"
 
 # Check the defconfig file and see if it points to an in kernel
 # defconfig that should be used, or if it is a complete config file