From: "'cedric.hombourger@siemens.com' via isar-users" <isar-users@googlegroups.com>
To: "isar-users@googlegroups.com" <isar-users@googlegroups.com>,
"Kiszka, Jan" <jan.kiszka@siemens.com>
Subject: Re: [PATCH 1/1] dpkg-raw: make sure do_install gets called for -compat/-native builds
Date: Fri, 13 Sep 2024 11:33:39 +0000 [thread overview]
Message-ID: <28b9b7b484f96a583b8a5efa2d8e961a8be8c752.camel@siemens.com> (raw)
In-Reply-To: <5d4f3a853602cd72e49d2672ae70ba6051ceaa82.camel@siemens.com>
On Fri, 2024-09-13 at 13:12 +0200, Cedric Hombourger wrote:
> On Fri, 2024-09-13 at 13:04 +0200, Jan Kiszka wrote:
> > On 13.09.24 12:52, Hombourger, Cedric (DI CTO FDS CES LX) wrote:
> > > On Fri, 2024-09-13 at 12:45 +0200, Jan Kiszka wrote:
> > > > On 13.09.24 10:29, Hombourger, Cedric (DI CTO FDS CES LX)
> > > > wrote:
> > > > > On Fri, 2024-09-13 at 10:08 +0200, Jan Kiszka wrote:
> > > > > > On 12.09.24 17:11, 'Cedric Hombourger' via isar-users
> > > > > > wrote:
> > > > > > > With sources being built only once, do_prepare_build (and
> > > > > > > its
> > > > > > > dependencies)
> > > > > > > are skipped when building -compat or -native packages.
> > > > > > > This
> > > > > > > unfortunately
> > > > > > > means that do_install is not executed and is causing the
> > > > > > > package
> > > > > > > build
> > > > > > > to fail as the install step is not finding any files in
> > > > > > > ${PP}/image. To
> > > > > > > avoid changing how do_install is scheduled in the normal
> > > > > > > case,
> > > > > > > it
> > > > > > > is simply
> > > > > > > added as an extra dependency to do_dpkg_build to make
> > > > > > > sure
> > > > > > > it
> > > > > > > gets
> > > > > > > executed
> > > > > > > prior to the build of the binary package.
> > > > > >
> > > > > > What is the use case for raw-compat and -native? Are you
> > > > > > actually
> > > > > > having
> > > > > > a case with different binaries then?
> > > > >
> > > > > For my specific case, I had wished -native would not be built
> > > > > because
> > > > > my dpkg-raw package has DPKG_ARCH set to "all". In that case,
> > > > > we
> > > > > should
> > > > > not have a separate build for -native
> > > > >
> > > > > The issue will occur for any "dpkg" package being built for -
> > > > > native
> > > > > when it DEPENDS on a "dpkg-raw" package because our native
> > > > > class
> > > > > automatically changes all dependencies to -native
> > > > >
> > > >
> > > > Then stub-out the other variants, make them depend on the BPN
> > > > package,
> > > > but do not further foster their build.
> > >
> > > My "dpkg" recipe is clean, it has a DEPENDS clause with only BPN
> > > names
> > > But we have multiarch [1] suffixing each of our DEPENDS with -
> > > native
> > > when built for -native
> > >
> > > Or maybe I am not understanding your proposal? I am pretty sure
> > > we
> > > have
> > > a bug in Isar. I can build a test case if the illustration with
> > > example-raw is not sufficient / convincing
> >
> > Yes, this is an issue in isar. But I would address it there by not
> > doing
> > anything in <raw>-native/compat targets, only making them depend on
> > their base target. IIRC, we already have such a case deep in the
> > kernel
> > build.
> >
> > Rebuilding the same thing is wrong.
>
> Agreed but :)
>
> There are two cases to consider
>
> 1) dpkg-raw package has DPKG_ARCH = "all" => shall not rebuild for -
> native
>
> 2) dpkg-raw produces an architecture-dependent package (Architecture:
> any) => we would need to build both -native and non-native
>
> I hit 1) and I am investigating further (getting myself familiar with
> the multiarch code) and 2) is IMO addressed with this patch
>
> Actually, when I first hit the issue, my dpkg-raw package did not
> have
> DPKG_ARCH set to "all" hence my first instinct was to set it to avoid
> the extra build
>
For 1) and if my reading of multiarch is correct, the following should
do the trick:
diff --git a/meta/classes/multiarch.bbclass
b/meta/classes/multiarch.bbclass
index bb0f7983..8aa2de64 100644
--- a/meta/classes/multiarch.bbclass
+++ b/meta/classes/multiarch.bbclass
@@ -10,7 +10,7 @@ python() {
d.appendVar('BBCLASSEXTEND', ' compat')
# build native separately only when it differs from the target
variant
- if d.getVar('HOST_ARCH') == d.getVar('DISTRO_ARCH'):
+ if d.getVar('HOST_ARCH') == d.getVar('DISTRO_ARCH') or
d.getVar('DPKG_ARCH') == 'all':
pn = d.getVar('PN')
if not pn.endswith('-native') and not pn.endswith('-compat'):
provides = (d.getVar('PROVIDES') or '').split()
This appears to work in the quick test I did but will perform more
tests
> >
> > Jan
> >
>
--
Cedric Hombourger
Siemens AG
www.siemens.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 on the web visit https://groups.google.com/d/msgid/isar-users/28b9b7b484f96a583b8a5efa2d8e961a8be8c752.camel%40siemens.com.
next prev parent reply other threads:[~2024-09-13 11:33 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-12 15:11 [PATCH 0/1] " 'Cedric Hombourger' via isar-users
2024-09-12 15:11 ` [PATCH 1/1] " 'Cedric Hombourger' via isar-users
2024-09-13 8:08 ` 'Jan Kiszka' via isar-users
2024-09-13 8:29 ` 'cedric.hombourger@siemens.com' via isar-users
2024-09-13 10:45 ` 'Jan Kiszka' via isar-users
2024-09-13 10:52 ` 'cedric.hombourger@siemens.com' via isar-users
2024-09-13 11:04 ` 'Jan Kiszka' via isar-users
2024-09-13 11:12 ` 'cedric.hombourger@siemens.com' via isar-users
2024-09-13 11:33 ` 'cedric.hombourger@siemens.com' via isar-users [this message]
2024-09-13 12:28 ` 'Jan Kiszka' via isar-users
2024-09-13 12:39 ` 'cedric.hombourger@siemens.com' via isar-users
2024-09-17 7:00 ` [PATCH v2 0/2] do not build -compat/-native for dpkg-raw packages 'Cedric Hombourger' via isar-users
2024-09-17 7:00 ` [PATCH v2 1/2] multiarch: avoid separate builds when DPKG_ARCH is all 'Cedric Hombourger' via isar-users
2024-09-25 16:09 ` 'Jan Kiszka' via isar-users
2024-09-17 7:00 ` [PATCH v2 2/2] dpkg-raw: change DPKG_ARCH to all 'Cedric Hombourger' via isar-users
2024-09-25 16:11 ` 'Jan Kiszka' via isar-users
2024-09-26 3:39 ` [PATCH v3 0/3] do not build -compat/-native for dpkg-raw packages 'Cedric Hombourger' via isar-users
2024-09-26 3:39 ` [PATCH v3 1/3] multiarch: introduce some helpers to later handle corner cases 'Cedric Hombourger' via isar-users
2024-10-04 12:28 ` 'Jan Kiszka' via isar-users
2024-09-26 3:39 ` [PATCH v3 2/3] multiarch: avoid separate builds when DPKG_ARCH is all 'Cedric Hombourger' via isar-users
2024-09-26 3:39 ` [PATCH v3 3/3] dpkg-raw: change DPKG_ARCH to all 'Cedric Hombourger' via isar-users
2024-10-04 12:31 ` 'Jan Kiszka' via isar-users
2024-10-04 13:11 ` [PATCH 1/3] dpkg-raw: use weak assignments for DPKG_ARCH and DEBIAN_MULTI_ARCH 'Cedric Hombourger' via isar-users
2024-10-04 13:11 ` [PATCH 2/3] multiarch: use "if not" vs "if cond is False" for consistency 'Cedric Hombourger' via isar-users
2024-10-04 13:11 ` [PATCH 3/3] RECIPE-API-CHANGELOG.md: clarify scope of recent multiarch/dpkg-arch changes 'Cedric Hombourger' via isar-users
2024-10-04 13:37 ` 'Jan Kiszka' via isar-users
2024-10-04 14:17 ` [PATCH v2 0/3] address review comments for dpkg-raw/multiarch 'Cedric Hombourger' via isar-users
2024-10-04 14:17 ` [PATCH v2 1/3] dpkg-raw: use weak assignments for DPKG_ARCH and DEBIAN_MULTI_ARCH 'Cedric Hombourger' via isar-users
2024-10-04 14:17 ` [PATCH v2 2/3] multiarch: use "if not" vs "if cond is False" for consistency 'Cedric Hombourger' via isar-users
2024-10-04 14:17 ` [PATCH v2 3/3] RECIPE-API-CHANGELOG.md: clarify scope of recent multiarch/dpkg-arch changes 'Cedric Hombourger' via isar-users
2024-10-08 5:24 ` [PATCH v2 0/3] address review comments for dpkg-raw/multiarch Uladzimir Bely
2024-10-10 11:25 ` Uladzimir Bely
2024-11-22 6:07 ` [PATCH v3 3/3] dpkg-raw: change DPKG_ARCH to all Uladzimir Bely
2024-11-22 6:12 ` Uladzimir Bely
2024-11-22 6:12 ` 'cedric.hombourger@siemens.com' via isar-users
2024-10-04 11:54 ` [PATCH v3 0/3] do not build -compat/-native for dpkg-raw packages Uladzimir Bely
2024-10-04 12:27 ` 'Jan Kiszka' via isar-users
2024-09-13 12:15 ` [PATCH 1/1] dpkg-raw: make sure do_install gets called for -compat/-native builds 'Jan Kiszka' via isar-users
2024-09-13 12:37 ` 'cedric.hombourger@siemens.com' via isar-users
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=28b9b7b484f96a583b8a5efa2d8e961a8be8c752.camel@siemens.com \
--to=isar-users@googlegroups.com \
--cc=cedric.hombourger@siemens.com \
--cc=jan.kiszka@siemens.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox