public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Fix u-boot-script packages conflict
@ 2022-01-14 13:57 Anton Mikanovich
  2022-01-14 13:57 ` [PATCH v2 1/2] dpkg: Introduce any kernel variables Anton Mikanovich
  2022-01-14 13:57 ` [PATCH v2 2/2] u-boot-script: Depend on any kernel package Anton Mikanovich
  0 siblings, 2 replies; 7+ messages in thread
From: Anton Mikanovich @ 2022-01-14 13:57 UTC (permalink / raw)
  To: isar-users; +Cc: Anton Mikanovich

When trying to execute do_prepare_build task of u-boot-script package
for some targets 'multiple execution' occurs:

$ bitbake mc:bananapi-buster:u-boot-script:do_prepare_build mc:de0-nano-soc-buster:u-boot-script:do_prepare_build
ERROR: Detect multiple executions of do_prepare_build in /build/tmp/work/debian-buster-armhf/u-boot-script/1.1-r0
ERROR: Rerun a clean build with empty STAMPCLEAN and compare the sigdata files

This is caused by different u-boot-script packages building in the same
directory. The difference between those two output debs is dependency on
linux-image-${KERNEL_NAME}.
Now we can depend on any kernel and make u-boot-script packages equal.

Anton Mikanovich (2):
  dpkg: Introduce any kernel variables
  u-boot-script: Depend on any kernel package

 meta/classes/dpkg-base.bbclass                      | 7 +++++++
 meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb | 2 +-
 meta/recipes-kernel/linux/files/debian/control.tmpl | 2 ++
 3 files changed, 10 insertions(+), 1 deletion(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/2] dpkg: Introduce any kernel variables
  2022-01-14 13:57 [PATCH v2 0/2] Fix u-boot-script packages conflict Anton Mikanovich
@ 2022-01-14 13:57 ` Anton Mikanovich
  2022-01-14 16:40   ` Jan Kiszka
  2022-01-14 13:57 ` [PATCH v2 2/2] u-boot-script: Depend on any kernel package Anton Mikanovich
  1 sibling, 1 reply; 7+ messages in thread
From: Anton Mikanovich @ 2022-01-14 13:57 UTC (permalink / raw)
  To: isar-users; +Cc: Anton Mikanovich

To allow packages to depend on any kernel image or header package add
following variables:

linux-image-generic - any custom Isar compiled kernel image
linux-headers-generic - any custom Isar compiled headers
ANY_DISTRO_KERNEL - any upstream kernel + generic one
ANY_DISTRO_HEADERS - any upstream headers + generic ones

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 meta/classes/dpkg-base.bbclass                      | 7 +++++++
 meta/recipes-kernel/linux/files/debian/control.tmpl | 2 ++
 2 files changed, 9 insertions(+)

diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index cb5ce4a..4655f70 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -93,6 +93,13 @@ python() {
         d.setVarFlag('do_apt_fetch', 'noexec', '1')
         d.setVarFlag('do_apt_unpack', 'noexec', '1')
         d.setVarFlag('do_cleanall_apt', 'noexec', '1')
+
+    distro_kernels = d.getVar('DISTRO_KERNELS', True) or ""
+    d.setVar('ANY_DISTRO_KERNEL', 'linux-image-generic')
+    d.setVar('ANY_DISTRO_HEADERS', 'linux-headers-generic')
+    for kernel in distro_kernels.split():
+        d.appendVar('ANY_DISTRO_KERNEL', ' | linux-image-' + kernel)
+        d.appendVar('ANY_DISTRO_HEADERS', ' | linux-headers-' + kernel)
 }
 
 do_apt_fetch() {
diff --git a/meta/recipes-kernel/linux/files/debian/control.tmpl b/meta/recipes-kernel/linux/files/debian/control.tmpl
index dd0b624..8647736 100644
--- a/meta/recipes-kernel/linux/files/debian/control.tmpl
+++ b/meta/recipes-kernel/linux/files/debian/control.tmpl
@@ -8,6 +8,7 @@ Homepage: http://www.kernel.org/
 Package: linux-image-${KERNEL_NAME_PROVIDED}
 Architecture: any
 Depends: ${KERNEL_DEBIAN_DEPENDS}
+Provides: linux-image-generic
 Description: ${KERNEL_NAME_PROVIDED} Linux kernel, version @KR@
  This package contains the Linux kernel, modules and corresponding other
  files, version: @KR@.
@@ -15,6 +16,7 @@ Description: ${KERNEL_NAME_PROVIDED} Linux kernel, version @KR@
 Package: linux-headers-${KERNEL_NAME_PROVIDED}
 Architecture: any
 Depends: ${KERNEL_HEADERS_DEBIAN_DEPENDS}, ${perl:Depends}, ${shlib:Depends}
+Provides: linux-headers-generic
 Description: ${KERNEL_NAME_PROVIDED} Linux kernel headers for @KR@
  This package provides kernel header files for @KR@ on ${DISTRO_ARCH}
  .
-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 2/2] u-boot-script: Depend on any kernel package
  2022-01-14 13:57 [PATCH v2 0/2] Fix u-boot-script packages conflict Anton Mikanovich
  2022-01-14 13:57 ` [PATCH v2 1/2] dpkg: Introduce any kernel variables Anton Mikanovich
@ 2022-01-14 13:57 ` Anton Mikanovich
  2022-01-14 16:40   ` Jan Kiszka
  1 sibling, 1 reply; 7+ messages in thread
From: Anton Mikanovich @ 2022-01-14 13:57 UTC (permalink / raw)
  To: isar-users; +Cc: Anton Mikanovich

Make u-boot-script depend on any installed kernel version to fix
package build conflict for the machines with different KERNEL_NAME
but same distro and arch.

Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
 meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
index e07deee..db41b75 100644
--- a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
+++ b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
@@ -14,7 +14,7 @@ SRC_URI = " \
     file://u-boot-script \
     file://zz-u-boot-script"
 
-DEBIAN_DEPENDS = "u-boot-tools, linux-image-${KERNEL_NAME}"
+DEBIAN_DEPENDS = "u-boot-tools, ${ANY_DISTRO_KERNEL}"
 
 do_install() {
 	install -v -d ${D}/usr/sbin
-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/2] u-boot-script: Depend on any kernel package
  2022-01-14 13:57 ` [PATCH v2 2/2] u-boot-script: Depend on any kernel package Anton Mikanovich
@ 2022-01-14 16:40   ` Jan Kiszka
  2022-01-14 17:23     ` Jan Kiszka
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2022-01-14 16:40 UTC (permalink / raw)
  To: Anton Mikanovich, isar-users

On 14.01.22 14:57, Anton Mikanovich wrote:
> Make u-boot-script depend on any installed kernel version to fix
> package build conflict for the machines with different KERNEL_NAME
> but same distro and arch.
> 
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
>   meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
> index e07deee..db41b75 100644
> --- a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
> +++ b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
> @@ -14,7 +14,7 @@ SRC_URI = " \
>       file://u-boot-script \
>       file://zz-u-boot-script"
>   
> -DEBIAN_DEPENDS = "u-boot-tools, linux-image-${KERNEL_NAME}"
> +DEBIAN_DEPENDS = "u-boot-tools, ${ANY_DISTRO_KERNEL}"
>   

Did you also check if we could drop the dependency? If not, I will do 
that before we settle of this. Would be simpler if it works.

Jan

>   do_install() {
>   	install -v -d ${D}/usr/sbin

-- 
Siemens AG, Technology
Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/2] dpkg: Introduce any kernel variables
  2022-01-14 13:57 ` [PATCH v2 1/2] dpkg: Introduce any kernel variables Anton Mikanovich
@ 2022-01-14 16:40   ` Jan Kiszka
  0 siblings, 0 replies; 7+ messages in thread
From: Jan Kiszka @ 2022-01-14 16:40 UTC (permalink / raw)
  To: Anton Mikanovich, isar-users

On 14.01.22 14:57, Anton Mikanovich wrote:
> To allow packages to depend on any kernel image or header package add
> following variables:
> 
> linux-image-generic - any custom Isar compiled kernel image
> linux-headers-generic - any custom Isar compiled headers
> ANY_DISTRO_KERNEL - any upstream kernel + generic one
> ANY_DISTRO_HEADERS - any upstream headers + generic ones
> 
> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
> ---
>   meta/classes/dpkg-base.bbclass                      | 7 +++++++
>   meta/recipes-kernel/linux/files/debian/control.tmpl | 2 ++
>   2 files changed, 9 insertions(+)
> 
> diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
> index cb5ce4a..4655f70 100644
> --- a/meta/classes/dpkg-base.bbclass
> +++ b/meta/classes/dpkg-base.bbclass
> @@ -93,6 +93,13 @@ python() {
>           d.setVarFlag('do_apt_fetch', 'noexec', '1')
>           d.setVarFlag('do_apt_unpack', 'noexec', '1')
>           d.setVarFlag('do_cleanall_apt', 'noexec', '1')
> +
> +    distro_kernels = d.getVar('DISTRO_KERNELS', True) or ""
> +    d.setVar('ANY_DISTRO_KERNEL', 'linux-image-generic')
> +    d.setVar('ANY_DISTRO_HEADERS', 'linux-headers-generic')

Provided we need this (see patch 2):

As you wrote yourself (IIRC), "generic" is used by Ubuntu. We should 
avoid name clashes. "linux-image-any"?

Jan

> +    for kernel in distro_kernels.split():
> +        d.appendVar('ANY_DISTRO_KERNEL', ' | linux-image-' + kernel)
> +        d.appendVar('ANY_DISTRO_HEADERS', ' | linux-headers-' + kernel)
>   }
>   
>   do_apt_fetch() {
> diff --git a/meta/recipes-kernel/linux/files/debian/control.tmpl b/meta/recipes-kernel/linux/files/debian/control.tmpl
> index dd0b624..8647736 100644
> --- a/meta/recipes-kernel/linux/files/debian/control.tmpl
> +++ b/meta/recipes-kernel/linux/files/debian/control.tmpl
> @@ -8,6 +8,7 @@ Homepage: http://www.kernel.org/
>   Package: linux-image-${KERNEL_NAME_PROVIDED}
>   Architecture: any
>   Depends: ${KERNEL_DEBIAN_DEPENDS}
> +Provides: linux-image-generic
>   Description: ${KERNEL_NAME_PROVIDED} Linux kernel, version @KR@
>    This package contains the Linux kernel, modules and corresponding other
>    files, version: @KR@.
> @@ -15,6 +16,7 @@ Description: ${KERNEL_NAME_PROVIDED} Linux kernel, version @KR@
>   Package: linux-headers-${KERNEL_NAME_PROVIDED}
>   Architecture: any
>   Depends: ${KERNEL_HEADERS_DEBIAN_DEPENDS}, ${perl:Depends}, ${shlib:Depends}
> +Provides: linux-headers-generic
>   Description: ${KERNEL_NAME_PROVIDED} Linux kernel headers for @KR@
>    This package provides kernel header files for @KR@ on ${DISTRO_ARCH}
>    .


-- 
Siemens AG, Technology
Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/2] u-boot-script: Depend on any kernel package
  2022-01-14 16:40   ` Jan Kiszka
@ 2022-01-14 17:23     ` Jan Kiszka
  2022-01-15  9:57       ` Anton Mikanovich
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2022-01-14 17:23 UTC (permalink / raw)
  To: Anton Mikanovich, isar-users

On 14.01.22 17:40, Jan Kiszka wrote:
> On 14.01.22 14:57, Anton Mikanovich wrote:
>> Make u-boot-script depend on any installed kernel version to fix
>> package build conflict for the machines with different KERNEL_NAME
>> but same distro and arch.
>>
>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>> ---
>>   meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb 
>> b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>> index e07deee..db41b75 100644
>> --- a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>> +++ b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>> @@ -14,7 +14,7 @@ SRC_URI = " \
>>       file://u-boot-script \
>>       file://zz-u-boot-script"
>> -DEBIAN_DEPENDS = "u-boot-tools, linux-image-${KERNEL_NAME}"
>> +DEBIAN_DEPENDS = "u-boot-tools, ${ANY_DISTRO_KERNEL}"
> 
> Did you also check if we could drop the dependency? If not, I will do 
> that before we settle of this. Would be simpler if it works.
> 

Checked: We can drop this series in favor of "u-boot-script: Drop 
runtime dependency on a kernel".

Jan

-- 
Siemens AG, Technology
Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 2/2] u-boot-script: Depend on any kernel package
  2022-01-14 17:23     ` Jan Kiszka
@ 2022-01-15  9:57       ` Anton Mikanovich
  0 siblings, 0 replies; 7+ messages in thread
From: Anton Mikanovich @ 2022-01-15  9:57 UTC (permalink / raw)
  To: Jan Kiszka, isar-users

Thanks for checking. This is much better solution, so the the original 
fix can be dropped.

14.01.2022 20:23, Jan Kiszka wrote:
> On 14.01.22 17:40, Jan Kiszka wrote:
>> On 14.01.22 14:57, Anton Mikanovich wrote:
>>> Make u-boot-script depend on any installed kernel version to fix
>>> package build conflict for the machines with different KERNEL_NAME
>>> but same distro and arch.
>>>
>>> Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
>>> ---
>>>   meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb 
>>> b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>>> index e07deee..db41b75 100644
>>> --- a/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>>> +++ b/meta/recipes-bsp/u-boot-script/u-boot-script_1.1.bb
>>> @@ -14,7 +14,7 @@ SRC_URI = " \
>>>       file://u-boot-script \
>>>       file://zz-u-boot-script"
>>> -DEBIAN_DEPENDS = "u-boot-tools, linux-image-${KERNEL_NAME}"
>>> +DEBIAN_DEPENDS = "u-boot-tools, ${ANY_DISTRO_KERNEL}"
>>
>> Did you also check if we could drop the dependency? If not, I will do 
>> that before we settle of this. Would be simpler if it works.
>>
>
> Checked: We can drop this series in favor of "u-boot-script: Drop 
> runtime dependency on a kernel".
>
> Jan
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-01-15  9:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-14 13:57 [PATCH v2 0/2] Fix u-boot-script packages conflict Anton Mikanovich
2022-01-14 13:57 ` [PATCH v2 1/2] dpkg: Introduce any kernel variables Anton Mikanovich
2022-01-14 16:40   ` Jan Kiszka
2022-01-14 13:57 ` [PATCH v2 2/2] u-boot-script: Depend on any kernel package Anton Mikanovich
2022-01-14 16:40   ` Jan Kiszka
2022-01-14 17:23     ` Jan Kiszka
2022-01-15  9:57       ` Anton Mikanovich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox