1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-15 15:37:03 +00:00

devtool: prevent 'devtool modify -n' from corrupting kernel Git repos

Running 'devtool modify -n' on a kernel recipe that inherits
'kernel-yocto' can unintentionally corrupt an existing Git repo or
worktree.

The work-shared optimization introduced in 3c3a9bae ("devtool/standard.py:
Update devtool modify to copy source from work-shared if its already
downloaded") is not skipped when '--no-extract' ('args.no_extract') is set.

As a result, for kernel builds where STAGING_KERNEL_DIR was already
populated when running 'devtool modify -n', the existing source tree is
overwritten (via oe.path.copyhardlinktree()) with the contents of
STAGING_KERNEL_DIR.

Fix by adding 'and not args.no_extract' to the kernel-yocto guard
condition.

(cherry picked from commit d383ea37e4987ecabe011226f1a8e658a52ede12)
(From OE-Core rev: 7ac858c9fe1c08cf6fd91122d351c262a2a953cf)

Signed-off-by: Enrico Jörns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Jeremy Rosen <jeremy.rosen@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
This commit is contained in:
Enrico Jörns
2026-03-24 00:19:31 +01:00
committed by Paul Barker
parent 83670737fd
commit 0a4150051f
+2 -1
View File
@@ -841,7 +841,8 @@ def modify(args, config, basepath, workspace):
commits = {}
check_commits = False
if bb.data.inherits_class('kernel-yocto', rd):
if bb.data.inherits_class('kernel-yocto', rd) and not args.no_extract:
# Current set kernel version
kernelVersion = rd.getVar('LINUX_VERSION')
srcdir = rd.getVar('STAGING_KERNEL_DIR')