From: Luca Ceresoli <luca.ceres...@bootlin.com>

Writing a simple recipe that inherits kernel.bbclass and downloads a kernel
tarball (e.g. a mainline release from kernel.org) via http or ftp fails
with either:

  ERROR: linux-acme-6.3.3-r0 do_configure: oe_runmake failed
  ...
  | make: *** No rule to make target 'oldnoconfig'.  Stop.

or (seen on a different setup, based on kirkstone):

  ... do_populate_lic: QA Issue: ... LIC_FILES_CHKSUM points to an invalid 
file: .../work-shared/.../kernel-source/COPYING [license-checksum]

This happens when not setting S in the recipe. In this case, kernel.bbclass
sets it to ${STAGING_KERNEL_DIR}
(${TMPDIR}/work-shared/${MACHINE}/kernel-source).  This means that in
do_symlink_kernsrc(), the 'if s != kernsrc' never triggers and thus the
kernel tree will not me moved into work/shared, which results in an empty
work-shared/.../kernel-source directory.

When downloading a tarball it is usually not required to set S in recipes,
so this is not obvious here and the error message does not point to the
problem or its solution.

There is such a check in kernel-yocto.bbclass though, so move it to
kernel.bbclass so that also kernel recipes not based on kernel-yocto can
benefit from it.

The check is moved:

 - from the beginning of do_kernel_checkout() in kernel-yocto
 - to the end of do_symlink_kernsrc() in kernel.bbclass

and since do_kernel_checkout is executed 'after do_symlink_kernsrc', the
code flow does not change in a relevant way when using linux-yocto.

Signed-off-by: Luca Ceresoli <luca.ceres...@bootlin.com>
---
 meta/classes-recipe/kernel-yocto.bbclass | 8 --------
 meta/classes-recipe/kernel.bbclass       | 6 ++++++
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/meta/classes-recipe/kernel-yocto.bbclass 
b/meta/classes-recipe/kernel-yocto.bbclass
index 108b7e675212..ceb451b69969 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -394,16 +394,8 @@ do_kernel_checkout() {
                # case: we have no git repository at all. 
                # To support low bandwidth options for building the kernel, 
we'll just 
                # convert the tree to a git repo and let the rest of the 
process work unchanged
-               
-               # if ${S} hasn't been set to the proper subdirectory a default 
of "linux" is 
-               # used, but we can't initialize that empty directory. So check 
it and throw a
-               # clear error
 
                cd ${S}
-               if [ ! -f "Makefile" ]; then
-                       bberror "S is not set to the linux source directory. 
Check "
-                       bbfatal "the recipe and set S to the proper extracted 
subdirectory"
-               fi
                rm -f .gitignore
                git init
                check_git_config
diff --git a/meta/classes-recipe/kernel.bbclass 
b/meta/classes-recipe/kernel.bbclass
index 9c8036f4df01..5ed4a2e03c72 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -195,6 +195,12 @@ python do_symlink_kernsrc () {
             import shutil
             shutil.move(s, kernsrc)
             os.symlink(kernsrc, s)
+
+    # When not using git, we cannot figure out automatically the extracted
+    # directory. So check it and throw a clear error.
+    if not os.path.isdir(os.path.join(d.getVar("WORKDIR"), "git")) and \
+       not os.path.exists(os.path.join(s, "Makefile")):
+        bb.fatal("S is not set to the linux source directory. Check the recipe 
and set S to the proper extracted subdirectory.")
 }
 # do_patch is normally ordered before do_configure, but
 # externalsrc.bbclass deletes do_patch, breaking the dependency of
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182385): 
https://lists.openembedded.org/g/openembedded-core/message/182385
Mute This Topic: https://lists.openembedded.org/mt/99341197/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to