public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [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