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

  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