Patchwork [meta-oe,for-denzil,3/8] kernel: Add kernel headers to kernel-dev package

login
register
mail settings
Submitter Koen Kooi
Date Sept. 6, 2012, 11:23 a.m.
Message ID <1346930610-2977-3-git-send-email-koen@dominion.thruhere.net>
Download mbox | patch
Permalink /patch/36035/
State Accepted
Headers show

Comments

Koen Kooi - Sept. 6, 2012, 11:23 a.m.
From: Darren Hart <dvhart@linux.intel.com>

[YOCTO #1614]

Add the kernel headers to the kernel-dev package. This packages what was
already built and kept in sysroots for building modules with bitbake.
Making this available on the target requires removing some additional
host binaries.

Move the location to /usr/src/kernel

Before use on the target, the user will need to:

    # cd /usr/src/kernel
    # make scripts

This renders the kernel-misc recipe empty, so remove it.

As we use /usr/src/kernel in several places (and I missed one in the
previous version), add a KERNEL_SRC_DIR variable and use that throughout
the class to avoid update errors in the future.

Now that we package the kernel headers, drop the
kernel_package_preprocess function which removed them from PKGD.

All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
be installed by default on all such images.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 meta-oe/classes/kernel.bbclass |   27 ++++++++++++---------------
 1 files changed, 12 insertions(+), 15 deletions(-)
McClintock Matthew-B29882 - Sept. 6, 2012, 4:43 p.m.
On Thu, Sep 6, 2012 at 6:23 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
> From: Darren Hart <dvhart@linux.intel.com>
>
> [YOCTO #1614]
>
> Add the kernel headers to the kernel-dev package. This packages what was
> already built and kept in sysroots for building modules with bitbake.
> Making this available on the target requires removing some additional
> host binaries.
>
> Move the location to /usr/src/kernel
>
> Before use on the target, the user will need to:
>
>     # cd /usr/src/kernel
>     # make scripts
>
> This renders the kernel-misc recipe empty, so remove it.
>
> As we use /usr/src/kernel in several places (and I missed one in the
> previous version), add a KERNEL_SRC_DIR variable and use that throughout
> the class to avoid update errors in the future.
>
> Now that we package the kernel headers, drop the
> kernel_package_preprocess function which removed them from PKGD.
>
> All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
> be installed by default on all such images.
>
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> CC: Bruce Ashfield <bruce.ashfield@windriver.com>
> CC: Tom Zanussi <tom.zanussi@intel.com>
> CC: Khem Raj <raj.khem@gmail.com>
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>

Why did you resent this? Are there changes or by accident? Just asking
before I make a patch for denzil with my previous fix.

-M


> ---
>  meta-oe/classes/kernel.bbclass |   27 ++++++++++++---------------
>  1 files changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass
> index 6f1b6a4..d7e42f6 100644
> --- a/meta-oe/classes/kernel.bbclass
> +++ b/meta-oe/classes/kernel.bbclass
> @@ -82,6 +82,10 @@ EXTRA_OEMAKE = ""
>
>  KERNEL_ALT_IMAGETYPE ??= ""
>
> +# Define where the kernel headers are installed on the target as well as where
> +# they are staged.
> +KERNEL_SRC_PATH = "/usr/src/kernel"
> +
>  KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
>
>  kernel_do_compile() {
> @@ -135,7 +139,7 @@ kernel_do_install() {
>         # Support for external module building - create a minimal copy of the
>         # kernel source tree.
>         #
> -       kerneldir=${D}/kernel
> +       kerneldir=${D}${KERNEL_SRC_PATH}
>         install -d $kerneldir
>
>         #
> @@ -188,23 +192,18 @@ kernel_do_install() {
>                 cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
>         fi
>
> -       # Remove the following binaries which cause strip errors
> +       # Remove the following binaries which cause strip or arch QA errors
>         # during do_package for cross-compiled platforms
>         bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
> -                  arch/powerpc/boot/mktree"
> +                  arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
> +                  scripts/kconfig/conf.o"
>         for entry in $bin_files; do
>                 rm -f $kerneldir/$entry
>         done
>  }
>
> -PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
> -
> -kernel_package_preprocess () {
> -       rm -rf ${PKGD}/kernel
> -}
> -
>  sysroot_stage_all_append() {
> -       sysroot_stage_dir ${D}/kernel ${SYSROOT_DESTDIR}/kernel
> +       sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
>  }
>
>  kernel_do_configure() {
> @@ -252,13 +251,11 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
>
>  # kernel-base becomes kernel-${KERNEL_VERSION}
>  # kernel-image becomes kernel-image-${KERNEL_VERISON}
> -PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-misc"
> +PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
>  FILES = ""
>  FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
> -FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*"
> +FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
>  FILES_kernel-vmlinux = "/boot/vmlinux*"
> -# misc is a package to contain files we need in staging
> -FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
>  RDEPENDS_kernel = "kernel-base"
>  # Allow machines to override this dependency if kernel image files are
>  # not wanted in images as standard
> @@ -475,7 +472,7 @@ python populate_packages_prepend () {
>         metapkg = "kernel-modules"
>         d.setVar('ALLOW_EMPTY_' + metapkg, "1")
>         d.setVar('FILES_' + metapkg, "")
> -       blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'kernel-misc' ]
> +       blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ]
>         for l in module_deps.values():
>                 for i in l:
>                         pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))
> --
> 1.7.7.6
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Koen Kooi - Sept. 6, 2012, 4:47 p.m.
Op 6 sep. 2012, om 18:43 heeft McClintock Matthew-B29882 <B29882@freescale.com> het volgende geschreven:

> On Thu, Sep 6, 2012 at 6:23 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>> From: Darren Hart <dvhart@linux.intel.com>
>> 
>> [YOCTO #1614]
>> 
>> Add the kernel headers to the kernel-dev package. This packages what was
>> already built and kept in sysroots for building modules with bitbake.
>> Making this available on the target requires removing some additional
>> host binaries.
>> 
>> Move the location to /usr/src/kernel
>> 
>> Before use on the target, the user will need to:
>> 
>>    # cd /usr/src/kernel
>>    # make scripts
>> 
>> This renders the kernel-misc recipe empty, so remove it.
>> 
>> As we use /usr/src/kernel in several places (and I missed one in the
>> previous version), add a KERNEL_SRC_DIR variable and use that throughout
>> the class to avoid update errors in the future.
>> 
>> Now that we package the kernel headers, drop the
>> kernel_package_preprocess function which removed them from PKGD.
>> 
>> All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
>> be installed by default on all such images.
>> 
>> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
>> CC: Bruce Ashfield <bruce.ashfield@windriver.com>
>> CC: Tom Zanussi <tom.zanussi@intel.com>
>> CC: Khem Raj <raj.khem@gmail.com>
>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> 
> Why did you resent this? Are there changes or by accident? Just asking
> before I make a patch for denzil with my previous fix.

This is for the meta-oe kernel.bbclass, not the oe-core one :)
McClintock Matthew-B29882 - Sept. 6, 2012, 6:13 p.m.
On Thu, Sep 6, 2012 at 11:47 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>
> Op 6 sep. 2012, om 18:43 heeft McClintock Matthew-B29882 <B29882@freescale.com> het volgende geschreven:
>
>> On Thu, Sep 6, 2012 at 6:23 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>>> From: Darren Hart <dvhart@linux.intel.com>
>>>
>>> [YOCTO #1614]
>>>
>>> Add the kernel headers to the kernel-dev package. This packages what was
>>> already built and kept in sysroots for building modules with bitbake.
>>> Making this available on the target requires removing some additional
>>> host binaries.
>>>
>>> Move the location to /usr/src/kernel
>>>
>>> Before use on the target, the user will need to:
>>>
>>>    # cd /usr/src/kernel
>>>    # make scripts
>>>
>>> This renders the kernel-misc recipe empty, so remove it.
>>>
>>> As we use /usr/src/kernel in several places (and I missed one in the
>>> previous version), add a KERNEL_SRC_DIR variable and use that throughout
>>> the class to avoid update errors in the future.
>>>
>>> Now that we package the kernel headers, drop the
>>> kernel_package_preprocess function which removed them from PKGD.
>>>
>>> All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
>>> be installed by default on all such images.
>>>
>>> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
>>> CC: Bruce Ashfield <bruce.ashfield@windriver.com>
>>> CC: Tom Zanussi <tom.zanussi@intel.com>
>>> CC: Khem Raj <raj.khem@gmail.com>
>>> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
>>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
>>
>> Why did you resent this? Are there changes or by accident? Just asking
>> before I make a patch for denzil with my previous fix.
>
> This is for the meta-oe kernel.bbclass, not the oe-core one :)

Ah! Missed that Thanks.

-M

Patch

diff --git a/meta-oe/classes/kernel.bbclass b/meta-oe/classes/kernel.bbclass
index 6f1b6a4..d7e42f6 100644
--- a/meta-oe/classes/kernel.bbclass
+++ b/meta-oe/classes/kernel.bbclass
@@ -82,6 +82,10 @@  EXTRA_OEMAKE = ""
 
 KERNEL_ALT_IMAGETYPE ??= ""
 
+# Define where the kernel headers are installed on the target as well as where
+# they are staged.
+KERNEL_SRC_PATH = "/usr/src/kernel"
+
 KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
 
 kernel_do_compile() {
@@ -135,7 +139,7 @@  kernel_do_install() {
 	# Support for external module building - create a minimal copy of the
 	# kernel source tree.
 	#
-	kerneldir=${D}/kernel
+	kerneldir=${D}${KERNEL_SRC_PATH}
 	install -d $kerneldir
 
 	#
@@ -188,23 +192,18 @@  kernel_do_install() {
 		cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
 	fi
 
-	# Remove the following binaries which cause strip errors
+	# Remove the following binaries which cause strip or arch QA errors
 	# during do_package for cross-compiled platforms
 	bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
-	           arch/powerpc/boot/mktree"
+	           arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
+		   scripts/kconfig/conf.o"
 	for entry in $bin_files; do
 		rm -f $kerneldir/$entry
 	done
 }
 
-PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
-
-kernel_package_preprocess () {
-	rm -rf ${PKGD}/kernel
-}
-
 sysroot_stage_all_append() {
-	sysroot_stage_dir ${D}/kernel ${SYSROOT_DESTDIR}/kernel
+	sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
 }
 
 kernel_do_configure() {
@@ -252,13 +251,11 @@  EXPORT_FUNCTIONS do_compile do_install do_configure
 
 # kernel-base becomes kernel-${KERNEL_VERSION}
 # kernel-image becomes kernel-image-${KERNEL_VERISON}
-PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-misc"
+PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
 FILES = ""
 FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
-FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*"
+FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
 FILES_kernel-vmlinux = "/boot/vmlinux*"
-# misc is a package to contain files we need in staging
-FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
 RDEPENDS_kernel = "kernel-base"
 # Allow machines to override this dependency if kernel image files are 
 # not wanted in images as standard
@@ -475,7 +472,7 @@  python populate_packages_prepend () {
 	metapkg = "kernel-modules"
 	d.setVar('ALLOW_EMPTY_' + metapkg, "1")
 	d.setVar('FILES_' + metapkg, "")
-	blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'kernel-misc' ]
+	blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux' ]
 	for l in module_deps.values():
 		for i in l:
 			pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))