* [PATCH 0/2] Prevent adding unneeded package variants to recursive dependency chain
@ 2025-11-03 15:42 'Andreas Naumann' via isar-users
  2025-11-03 15:42 ` [PATCH 1/2] rootfs: " 'Andreas Naumann' via isar-users
  2025-11-03 15:42 ` [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 'Andreas Naumann' via isar-users
  0 siblings, 2 replies; 5+ messages in thread
From: 'Andreas Naumann' via isar-users @ 2025-11-03 15:42 UTC (permalink / raw)
  To: isar-users; +Cc: Andreas Naumann
This is a stripped down version of my previous 
[RFC 0/5] Improving multiarch support for arch-incompatible packages
For now, I've dropped all patches except the one which covers the problem
where targets in the dependency chain are built for both the host and the
target architecture while only one is needed.
The second patch is a way to reproduce this. It's quite hacky, and
would need serious rework before integration into the testsuite.
Andreas Naumann (2):
  rootfs: Prevent adding unneeded package variants to recursive
    dependency chain
  DONOTMERGE: testcase for transient native dependency
 meta-isar/recipes-app/adduser/adduser.bb         | 6 ++++++
 meta-isar/recipes-app/gss/gss.bb                 | 5 +++++
 meta-isar/recipes-core/images/isar-image-base.bb | 2 ++
 meta/classes/rootfs.bbclass                      | 3 ++-
 4 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 meta-isar/recipes-app/adduser/adduser.bb
 create mode 100644 meta-isar/recipes-app/gss/gss.bb
-- 
2.43.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/20251103154223.985951-1-anaumann%40emlix.com.
^ permalink raw reply	[flat|nested] 5+ messages in thread* [PATCH 1/2] rootfs: Prevent adding unneeded package variants to recursive dependency chain 2025-11-03 15:42 [PATCH 0/2] Prevent adding unneeded package variants to recursive dependency chain 'Andreas Naumann' via isar-users @ 2025-11-03 15:42 ` 'Andreas Naumann' via isar-users 2025-11-03 15:42 ` [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 'Andreas Naumann' via isar-users 1 sibling, 0 replies; 5+ messages in thread From: 'Andreas Naumann' via isar-users @ 2025-11-03 15:42 UTC (permalink / raw) To: isar-users; +Cc: Andreas Naumann Using recrdeptask has the side effect that every package of which a task appears in the dependency chain, will be fully built and deployed, even if just a subset of tasks was needed to fulfil an inter-task dependency. For coupled packages like the native/compat ones, which can share part of their tasks, see 2ca3a7e dpkg-source: Build source package only once, this leads to a full build of the base package, while e.g. only the native part needed to be produced. Refrain from doing so by going back to using deptask which only adds the deploy task of the direct dependencies and rely on correct cache and inter-task settings of the used classes/recipes. Add rdeptask handling to allow for runtime dependency settings. This is a partial revert of 7c7628e rootfs: recursively depend on packages. This fixes build failures with custom packages which dont support crosscompiling (-native only or "all"), improves performance as no unneeded compiling is being done, and avoids ambiguity when both packages produce the same artifact (deb-file). Signed-off-by: Andreas Naumann <anaumann@emlix.com> --- meta/classes/rootfs.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass index cd8fd1188d..082a723996 100644 --- a/meta/classes/rootfs.bbclass +++ b/meta/classes/rootfs.bbclass @@ -234,7 +234,8 @@ do_rootfs_install[root_cleandirs] = "${ROOTFSDIR}" do_rootfs_install[vardeps] += "${ROOTFS_CONFIGURE_COMMAND} ${ROOTFS_INSTALL_COMMAND}" do_rootfs_install[vardepsexclude] += "IMAGE_ROOTFS" do_rootfs_install[depends] = "bootstrap-${@'target' if d.getVar('ROOTFS_ARCH') == d.getVar('DISTRO_ARCH') else 'host'}:do_build" -do_rootfs_install[recrdeptask] = "do_deploy_deb" +do_rootfs_install[deptask] = "do_deploy_deb" +do_rootfs_install[rdeptask] = "do_deploy_deb" do_rootfs_install[network] = "${TASK_USE_SUDO}" python do_rootfs_install() { configure_cmds = (d.getVar("ROOTFS_CONFIGURE_COMMAND") or "").split() -- 2.43.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/20251103154223.985951-2-anaumann%40emlix.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 2025-11-03 15:42 [PATCH 0/2] Prevent adding unneeded package variants to recursive dependency chain 'Andreas Naumann' via isar-users 2025-11-03 15:42 ` [PATCH 1/2] rootfs: " 'Andreas Naumann' via isar-users @ 2025-11-03 15:42 ` 'Andreas Naumann' via isar-users 2025-11-03 15:52 ` 'MOESSBAUER, Felix' via isar-users 1 sibling, 1 reply; 5+ messages in thread From: 'Andreas Naumann' via isar-users @ 2025-11-03 15:42 UTC (permalink / raw) To: isar-users; +Cc: Andreas Naumann Create a dependency chain as follows: image -> native all package (adduser) -> native any package (gss) Since gss is broken for crosscompile atm, this will trigger a build failure if the -native variant is not handed down the dependency chain properly and somehow ends up building gss for the target. Signed-off-by: Andreas Naumann <anaumann@emlix.com> --- meta-isar/recipes-app/adduser/adduser.bb | 6 ++++++ meta-isar/recipes-app/gss/gss.bb | 5 +++++ meta-isar/recipes-core/images/isar-image-base.bb | 2 ++ 3 files changed, 13 insertions(+) create mode 100644 meta-isar/recipes-app/adduser/adduser.bb create mode 100644 meta-isar/recipes-app/gss/gss.bb diff --git a/meta-isar/recipes-app/adduser/adduser.bb b/meta-isar/recipes-app/adduser/adduser.bb new file mode 100644 index 0000000000..d513274710 --- /dev/null +++ b/meta-isar/recipes-app/adduser/adduser.bb @@ -0,0 +1,6 @@ +inherit dpkg + +DPKG_ARCH = "all" +SRC_URI = "apt://${PN}" + +DEPENDS:append = "gss" diff --git a/meta-isar/recipes-app/gss/gss.bb b/meta-isar/recipes-app/gss/gss.bb new file mode 100644 index 0000000000..8de670406c --- /dev/null +++ b/meta-isar/recipes-app/gss/gss.bb @@ -0,0 +1,5 @@ +inherit dpkg + +SRC_URI = "apt://${PN}" + +DEB_BUILD_OPTIONS += "${@ 'nocheck' if bb.utils.to_boolean(d.getVar('ISAR_CROSS_COMPILE')) else '' }" diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb index b381d85931..d3d78e6d58 100644 --- a/meta-isar/recipes-core/images/isar-image-base.bb +++ b/meta-isar/recipes-core/images/isar-image-base.bb @@ -11,3 +11,5 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 PV = "1.0" inherit image + +DEPENDS += "adduser-native" -- 2.43.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/20251103154223.985951-3-anaumann%40emlix.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 2025-11-03 15:42 ` [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 'Andreas Naumann' via isar-users @ 2025-11-03 15:52 ` 'MOESSBAUER, Felix' via isar-users 2025-11-03 17:00 ` 'Andreas Naumann' via isar-users 0 siblings, 1 reply; 5+ messages in thread From: 'MOESSBAUER, Felix' via isar-users @ 2025-11-03 15:52 UTC (permalink / raw) To: isar-users, anaumann On Mon, 2025-11-03 at 16:42 +0100, 'Andreas Naumann' via isar-users wrote: > Create a dependency chain as follows: > image -> native all package (adduser) -> native any package (gss) > Since gss is broken for crosscompile atm, this will trigger a build failure > if the -native variant is not handed down the dependency chain properly and > somehow ends up building gss for the target. Many thanks for this testcase. With that, I was able to cross-check if my fixes of "handle DPKG_ARCH=all case for transitive deps" properly work (I will send them soon). Feel free to add this test to the meta- test layer so we can use it in the CI as well. PS: This patch depends on "This sets proxy environment variables to be passed to schroot." Best regards, Felix > > Signed-off-by: Andreas Naumann <anaumann@emlix.com> > --- > meta-isar/recipes-app/adduser/adduser.bb | 6 ++++++ > meta-isar/recipes-app/gss/gss.bb | 5 +++++ > meta-isar/recipes-core/images/isar-image-base.bb | 2 ++ > 3 files changed, 13 insertions(+) > create mode 100644 meta-isar/recipes-app/adduser/adduser.bb > create mode 100644 meta-isar/recipes-app/gss/gss.bb > > diff --git a/meta-isar/recipes-app/adduser/adduser.bb b/meta-isar/recipes-app/adduser/adduser.bb > new file mode 100644 > index 0000000000..d513274710 > --- /dev/null > +++ b/meta-isar/recipes-app/adduser/adduser.bb > @@ -0,0 +1,6 @@ > +inherit dpkg > + > +DPKG_ARCH = "all" > +SRC_URI = "apt://${PN}" > + > +DEPENDS:append = "gss" > diff --git a/meta-isar/recipes-app/gss/gss.bb b/meta-isar/recipes-app/gss/gss.bb > new file mode 100644 > index 0000000000..8de670406c > --- /dev/null > +++ b/meta-isar/recipes-app/gss/gss.bb > @@ -0,0 +1,5 @@ > +inherit dpkg > + > +SRC_URI = "apt://${PN}" > + > +DEB_BUILD_OPTIONS += "${@ 'nocheck' if bb.utils.to_boolean(d.getVar('ISAR_CROSS_COMPILE')) else '' }" > diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb > index b381d85931..d3d78e6d58 100644 > --- a/meta-isar/recipes-core/images/isar-image-base.bb > +++ b/meta-isar/recipes-core/images/isar-image-base.bb > @@ -11,3 +11,5 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 > PV = "1.0" > > inherit image > + > +DEPENDS += "adduser-native" > -- > 2.43.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/20251103154223.985951-3-anaumann%40emlix.com. -- 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/f54fb041035f57dfb84328589acc06200b99a0fb.camel%40siemens.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 2025-11-03 15:52 ` 'MOESSBAUER, Felix' via isar-users @ 2025-11-03 17:00 ` 'Andreas Naumann' via isar-users 0 siblings, 0 replies; 5+ messages in thread From: 'Andreas Naumann' via isar-users @ 2025-11-03 17:00 UTC (permalink / raw) To: MOESSBAUER, Felix, isar-users Am 03.11.25 um 16:52 schrieb MOESSBAUER, Felix: > On Mon, 2025-11-03 at 16:42 +0100, 'Andreas Naumann' via isar-users > wrote: >> Create a dependency chain as follows: >> image -> native all package (adduser) -> native any package (gss) >> Since gss is broken for crosscompile atm, this will trigger a build failure >> if the -native variant is not handed down the dependency chain properly and >> somehow ends up building gss for the target. > Many thanks for this testcase. With that, I was able to cross-check if > my fixes of "handle DPKG_ARCH=all case for transitive deps" properly > work (I will send them soon). Feel free to add this test to the meta- > test layer so we can use it in the CI as well. Thanks, but once gss crosscompile gets fixed, the test is broken. Might be better to supply a stable broken package all by ourselves. > > PS: This patch depends on "This sets proxy environment variables to be > passed to schroot." I didnt have that applied. regards, Andreas > > Best regards, > Felix > >> Signed-off-by: Andreas Naumann <anaumann@emlix.com> >> --- >> meta-isar/recipes-app/adduser/adduser.bb | 6 ++++++ >> meta-isar/recipes-app/gss/gss.bb | 5 +++++ >> meta-isar/recipes-core/images/isar-image-base.bb | 2 ++ >> 3 files changed, 13 insertions(+) >> create mode 100644 meta-isar/recipes-app/adduser/adduser.bb >> create mode 100644 meta-isar/recipes-app/gss/gss.bb >> >> diff --git a/meta-isar/recipes-app/adduser/adduser.bb b/meta-isar/recipes-app/adduser/adduser.bb >> new file mode 100644 >> index 0000000000..d513274710 >> --- /dev/null >> +++ b/meta-isar/recipes-app/adduser/adduser.bb >> @@ -0,0 +1,6 @@ >> +inherit dpkg >> + >> +DPKG_ARCH = "all" >> +SRC_URI = "apt://${PN}" >> + >> +DEPENDS:append = "gss" >> diff --git a/meta-isar/recipes-app/gss/gss.bb b/meta-isar/recipes-app/gss/gss.bb >> new file mode 100644 >> index 0000000000..8de670406c >> --- /dev/null >> +++ b/meta-isar/recipes-app/gss/gss.bb >> @@ -0,0 +1,5 @@ >> +inherit dpkg >> + >> +SRC_URI = "apt://${PN}" >> + >> +DEB_BUILD_OPTIONS += "${@ 'nocheck' if bb.utils.to_boolean(d.getVar('ISAR_CROSS_COMPILE')) else '' }" >> diff --git a/meta-isar/recipes-core/images/isar-image-base.bb b/meta-isar/recipes-core/images/isar-image-base.bb >> index b381d85931..d3d78e6d58 100644 >> --- a/meta-isar/recipes-core/images/isar-image-base.bb >> +++ b/meta-isar/recipes-core/images/isar-image-base.bb >> @@ -11,3 +11,5 @@ LIC_FILES_CHKSUM = "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260 >> PV = "1.0" >> >> inherit image >> + >> +DEPENDS += "adduser-native" >> -- >> 2.43.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/20251103154223.985951-3-anaumann%40emlix.com. -- Andreas Naumann emlix GmbH Headquarters: Berliner Str. 12, 37073 Goettingen, Germany Phone +49 (0)551 30664-0, e-mail info@emlix.com District Court of Goettingen, Registry Number HR B 3160 Managing Directors: Heike Jordan, Dr. Uwe Kracke VAT ID No. DE 205 198 055 Office Berlin: Panoramastr. 1, 10178 Berlin, Germany Office Bonn: Bachstr. 6, 53115 Bonn, Germany http://www.emlix.com -- 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/419cf849-6f72-4cbd-ae7b-c4de6f120b61%40emlix.com. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-03 17:00 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-11-03 15:42 [PATCH 0/2] Prevent adding unneeded package variants to recursive dependency chain 'Andreas Naumann' via isar-users 2025-11-03 15:42 ` [PATCH 1/2] rootfs: " 'Andreas Naumann' via isar-users 2025-11-03 15:42 ` [PATCH 2/2] DONOTMERGE: testcase for transient native dependency 'Andreas Naumann' via isar-users 2025-11-03 15:52 ` 'MOESSBAUER, Felix' via isar-users 2025-11-03 17:00 ` 'Andreas Naumann' 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