public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH v2 1/2] do not add cross profile when building native package
@ 2025-11-04 15:44 'Felix Moessbauer' via isar-users
  2025-11-04 15:44 ` [PATCH v2 2/2] propagate distro-specific dependencies of arch all packages 'Felix Moessbauer' via isar-users
  2025-11-04 16:19 ` [PATCH v2 1/2] do not add cross profile when building native package 'Jan Kiszka' via isar-users
  0 siblings, 2 replies; 4+ messages in thread
From: 'Felix Moessbauer' via isar-users @ 2025-11-04 15:44 UTC (permalink / raw)
  To: isar-users; +Cc: Felix Moessbauer, stefan-koch, jan.kiszka, Benedikt Niedermayr

When building a -native package, the cross profile must not be added as
otherwise stricter apt cache checks added in trixie trigger. It anyways
makes no sense to add the cross profile when BUILD_ARCH equals
PACKAGE_ARCH. Previously this check was implemented incorrectly, as the
build arch was compared to the DISTRO_ARCH, which is always the target
arch in isar terms. This resulted in the following error message in
sbuild:

 E: The package cache was built for different architectures: amd64 vs arm64
 W: You may want to run apt-get update to correct these problems
 E: The package cache file is corrupted
 E: apt-get dist-upgrade failed

On bookworm, the incorrect check remained unnoticed, as apt did not have
the stricter checks yet.

Fixes: 872ef2e3 ("dpkg-base: Fix enabling of cross build profile")
Tested-by: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes/dpkg-base.bbclass             | 2 +-
 meta/recipes-kernel/linux/linux-custom.inc | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
index 4468a49a..d8287e8d 100644
--- a/meta/classes/dpkg-base.bbclass
+++ b/meta/classes/dpkg-base.bbclass
@@ -146,7 +146,7 @@ dpkg_runbuild() {
 
 def isar_deb_build_profiles(d):
     deb_build_profiles = d.getVar('DEB_BUILD_PROFILES')
-    if d.getVar('BUILD_ARCH') != d.getVar('DISTRO_ARCH'):
+    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH'):
         deb_build_profiles += ' cross'
     return deb_build_profiles.strip()
 
diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
index f2892921..01398697 100644
--- a/meta/recipes-kernel/linux/linux-custom.inc
+++ b/meta/recipes-kernel/linux/linux-custom.inc
@@ -109,7 +109,7 @@ KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}"
 
 # Determine cross-profile override
 python() {
-    if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
+    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH') and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
         d.appendVar("OVERRIDES", ":cross-profile")
 }
 
-- 
2.51.0

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251104154448.2737940-1-felix.moessbauer%40siemens.com.

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

* [PATCH v2 2/2] propagate distro-specific dependencies of arch all packages
  2025-11-04 15:44 [PATCH v2 1/2] do not add cross profile when building native package 'Felix Moessbauer' via isar-users
@ 2025-11-04 15:44 ` 'Felix Moessbauer' via isar-users
  2025-11-04 16:19 ` [PATCH v2 1/2] do not add cross profile when building native package 'Jan Kiszka' via isar-users
  1 sibling, 0 replies; 4+ messages in thread
From: 'Felix Moessbauer' via isar-users @ 2025-11-04 15:44 UTC (permalink / raw)
  To: isar-users; +Cc: Felix Moessbauer, stefan-koch, jan.kiszka, Benedikt Niedermayr

DPKG_ARCH=all packages are always build in their -native variant.
However, these packages still can have non-native dependencies which
must be built for the distro arch.

Fixes: 23a73895 ("multiarch: inject native variants of preferred providers")
Tested-by: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes/multiarch.bbclass | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/classes/multiarch.bbclass b/meta/classes/multiarch.bbclass
index c2bba21f..74b8f5b8 100644
--- a/meta/classes/multiarch.bbclass
+++ b/meta/classes/multiarch.bbclass
@@ -106,11 +106,13 @@ python multiarch_virtclass_handler() {
         # Arch=all packages might build depend on other arch=all packages,
         # hence we need to correctly model the dependency chain.
         # We implement this by dispatching the non-native variant to the -native
-        # variant by adding a dependency. We further replace the non-native
-        # do_deploy_dep task with a noop to preserve the dependency chain.
+        # variant by adding a dependency. We further empty the non-native
+        # do_deploy_dep task and clear the internal dependency chain, but keep
+        # other attached variables like RDEPENDS to preserve the dependency chain.
         e.data.setVar('do_deploy_deb', '')
-        bb.build.deltask('deploy_deb', e.data)
-        bb.build.addtask('deploy_deb', 'do_build', '', e.data)
+        # clear internal dependencies (e.g. to do_dpkg_build)
+        e.data.setVarFlag('do_deploy_deb', 'deps', [])
+        # dispatch to native variant
         e.data.setVarFlag('do_deploy_deb', 'depends', f'{pn}-native:do_deploy_deb')
 }
 addhandler multiarch_virtclass_handler
-- 
2.51.0

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251104154448.2737940-2-felix.moessbauer%40siemens.com.

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

* Re: [PATCH v2 1/2] do not add cross profile when building native package
  2025-11-04 15:44 [PATCH v2 1/2] do not add cross profile when building native package 'Felix Moessbauer' via isar-users
  2025-11-04 15:44 ` [PATCH v2 2/2] propagate distro-specific dependencies of arch all packages 'Felix Moessbauer' via isar-users
@ 2025-11-04 16:19 ` 'Jan Kiszka' via isar-users
  2025-11-04 18:24   ` 'MOESSBAUER, Felix' via isar-users
  1 sibling, 1 reply; 4+ messages in thread
From: 'Jan Kiszka' via isar-users @ 2025-11-04 16:19 UTC (permalink / raw)
  To: Felix Moessbauer, isar-users; +Cc: stefan-koch, Benedikt Niedermayr

On 04.11.25 16:44, Felix Moessbauer wrote:
> When building a -native package, the cross profile must not be added as
> otherwise stricter apt cache checks added in trixie trigger. It anyways
> makes no sense to add the cross profile when BUILD_ARCH equals
> PACKAGE_ARCH. Previously this check was implemented incorrectly, as the
> build arch was compared to the DISTRO_ARCH, which is always the target
> arch in isar terms. This resulted in the following error message in
> sbuild:
> 
>  E: The package cache was built for different architectures: amd64 vs arm64
>  W: You may want to run apt-get update to correct these problems
>  E: The package cache file is corrupted
>  E: apt-get dist-upgrade failed
> 
> On bookworm, the incorrect check remained unnoticed, as apt did not have
> the stricter checks yet.
> 
> Fixes: 872ef2e3 ("dpkg-base: Fix enabling of cross build profile")
> Tested-by: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
> Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> ---
>  meta/classes/dpkg-base.bbclass             | 2 +-
>  meta/recipes-kernel/linux/linux-custom.inc | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
> index 4468a49a..d8287e8d 100644
> --- a/meta/classes/dpkg-base.bbclass
> +++ b/meta/classes/dpkg-base.bbclass
> @@ -146,7 +146,7 @@ dpkg_runbuild() {
>  
>  def isar_deb_build_profiles(d):
>      deb_build_profiles = d.getVar('DEB_BUILD_PROFILES')
> -    if d.getVar('BUILD_ARCH') != d.getVar('DISTRO_ARCH'):
> +    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH'):
>          deb_build_profiles += ' cross'
>      return deb_build_profiles.strip()
>  
> diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
> index f2892921..01398697 100644
> --- a/meta/recipes-kernel/linux/linux-custom.inc
> +++ b/meta/recipes-kernel/linux/linux-custom.inc
> @@ -109,7 +109,7 @@ KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}"
>  
>  # Determine cross-profile override
>  python() {
> -    if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
> +    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH') and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
>          d.appendVar("OVERRIDES", ":cross-profile")
>  }
>  

This looks like a separate patch, even if a dependency for this one. Or
would fixing linux-custom.inc not be possible before fixing dpkg-base?

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/1f9d015c-9ee7-4538-82db-e67eb68f18db%40siemens.com.

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

* Re: [PATCH v2 1/2] do not add cross profile when building native package
  2025-11-04 16:19 ` [PATCH v2 1/2] do not add cross profile when building native package 'Jan Kiszka' via isar-users
@ 2025-11-04 18:24   ` 'MOESSBAUER, Felix' via isar-users
  0 siblings, 0 replies; 4+ messages in thread
From: 'MOESSBAUER, Felix' via isar-users @ 2025-11-04 18:24 UTC (permalink / raw)
  To: isar-users, Kiszka, Jan; +Cc: Niedermayr, BENEDIKT, Koch, Stefan

On Tue, 2025-11-04 at 17:19 +0100, Jan Kiszka wrote:
> On 04.11.25 16:44, Felix Moessbauer wrote:
> > When building a -native package, the cross profile must not be added as
> > otherwise stricter apt cache checks added in trixie trigger. It anyways
> > makes no sense to add the cross profile when BUILD_ARCH equals
> > PACKAGE_ARCH. Previously this check was implemented incorrectly, as the
> > build arch was compared to the DISTRO_ARCH, which is always the target
> > arch in isar terms. This resulted in the following error message in
> > sbuild:
> > 
> >  E: The package cache was built for different architectures: amd64 vs arm64
> >  W: You may want to run apt-get update to correct these problems
> >  E: The package cache file is corrupted
> >  E: apt-get dist-upgrade failed
> > 
> > On bookworm, the incorrect check remained unnoticed, as apt did not have
> > the stricter checks yet.
> > 
> > Fixes: 872ef2e3 ("dpkg-base: Fix enabling of cross build profile")
> > Tested-by: Benedikt Niedermayr <benedikt.niedermayr@siemens.com>
> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> > ---
> >  meta/classes/dpkg-base.bbclass             | 2 +-
> >  meta/recipes-kernel/linux/linux-custom.inc | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclass
> > index 4468a49a..d8287e8d 100644
> > --- a/meta/classes/dpkg-base.bbclass
> > +++ b/meta/classes/dpkg-base.bbclass
> > @@ -146,7 +146,7 @@ dpkg_runbuild() {
> >  
> >  def isar_deb_build_profiles(d):
> >      deb_build_profiles = d.getVar('DEB_BUILD_PROFILES')
> > -    if d.getVar('BUILD_ARCH') != d.getVar('DISTRO_ARCH'):
> > +    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH'):
> >          deb_build_profiles += ' cross'
> >      return deb_build_profiles.strip()
> >  
> > diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc
> > index f2892921..01398697 100644
> > --- a/meta/recipes-kernel/linux/linux-custom.inc
> > +++ b/meta/recipes-kernel/linux/linux-custom.inc
> > @@ -109,7 +109,7 @@ KERNEL_NAME_PROVIDED ?= "${@ d.getVar('BPN').partition('linux-')[2]}"
> >  
> >  # Determine cross-profile override
> >  python() {
> > -    if d.getVar("DISTRO_ARCH") != d.getVar("HOST_ARCH") and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
> > +    if d.getVar('BUILD_ARCH') != d.getVar('PACKAGE_ARCH') and bb.utils.to_boolean(d.getVar("ISAR_CROSS_COMPILE")) and "class-native" not in d.getVar("OVERRIDES").split(":"):
> >          d.appendVar("OVERRIDES", ":cross-profile")
> >  }
> >  
> 
> This looks like a separate patch, even if a dependency for this one. Or
> would fixing linux-custom.inc not be possible before fixing dpkg-base?

This needs to be fixed in a lockstep, as otherwise the :cross-profile
override and the DEB_BUILD_PROFILE = cross are not in sync.

Felix

> 
> Jan
> 
> -- 
> Siemens AG, Foundational Technologies
> Linux Expert Center

-- 
Siemens AG
Linux Expert Center
Friedrich-Ludwig-Bauer-Str. 3
85748 Garching, Germany

-- 
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/c2f47610d0dc307cab17684870bbad3af53915d6.camel%40siemens.com.

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

end of thread, other threads:[~2025-11-04 18:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-04 15:44 [PATCH v2 1/2] do not add cross profile when building native package 'Felix Moessbauer' via isar-users
2025-11-04 15:44 ` [PATCH v2 2/2] propagate distro-specific dependencies of arch all packages 'Felix Moessbauer' via isar-users
2025-11-04 16:19 ` [PATCH v2 1/2] do not add cross profile when building native package 'Jan Kiszka' via isar-users
2025-11-04 18:24   ` 'MOESSBAUER, Felix' via isar-users

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