[OE-core] [PATCH] kernel.bbclass: add non-santized kernel provides

Saul Wold sgw at linux.intel.com
Mon Jul 9 16:54:53 UTC 2012


On 07/06/2012 08:52 AM, Bruce Ashfield wrote:
> If the kernel version string uses characters or symbols that
> need to be santized for the package name, we can end up with a
> mismatch between module requirements and what the kernel
> provides.
>
> The kernel version is pulled from utsrelease.h, which contains
> the exact string that was passed to the kernel build, not
> one that is santized, this can result in:
>
>   echo "CONFIG_LOCALVERSION="\"MYVER+snapshot_standard\" >> ${B}/.config
>
>   <build>
>
>   % rpm -qp kernel-module-uvesafb-3.4-r0.qemux86.rpm --requires
> update-modules
> kernel-3.4.3-MYVER+snapshot_standard
>   % rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
> kernel-3.4.3-myver+snapshot-standard = 3.4-r0
>
> At rootfs assembly time, we'll have a dependency issue with the kernel
> providing the santizied string and the modules requiring the utsrelease.h
> string.
>
> To not break existing use cases, we can add a second provides to the
> kernel packaging with the unsantized version string, and allowing the
> kernel module packaging to be unchanged.
>
>     RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
>
>   % rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
> kernel-3.4.3-MYVER+snapshot_standard
> kernel-3.4.3-myver+snapshot-standard = 3.4-r0
>
> Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
> ---
>   meta/classes/kernel.bbclass |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 44461bc..81c334b 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -257,6 +257,7 @@ RDEPENDS_kernel = "kernel-base"
>   RDEPENDS_kernel-base ?= "kernel-image"
>   PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
>   PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}"
> +RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
>   ALLOW_EMPTY_kernel = "1"
>   ALLOW_EMPTY_kernel-base = "1"
>   ALLOW_EMPTY_kernel-image = "1"
>

Merged into OE-Core

Thanks
	Sau!




More information about the Openembedded-core mailing list