From: "'Jan Kiszka' via isar-users" <isar-users@googlegroups.com>
To: "Hombourger,
Cedric (DI CTO FDS CES LX)" <cedric.hombourger@siemens.com>,
"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Subject: Re: [PATCH 1/1] dpkg-raw: make sure do_install gets called for -compat/-native builds
Date: Fri, 13 Sep 2024 14:28:03 +0200 [thread overview]
Message-ID: <6a4e0583-0466-47a3-a1a6-3ca08d982373@siemens.com> (raw)
In-Reply-To: <28b9b7b484f96a583b8a5efa2d8e961a8be8c752.camel@siemens.com>
On 13.09.24 13:33, Hombourger, Cedric (DI CTO FDS CES LX) wrote:
> 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
>
At least for debianized packages (like dpkg-raw) and for -native. Will
probably not address -compat dependencies. Yeah, now it's getting
complicated.
Jan
--
Siemens AG, Technology
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 on the web visit https://groups.google.com/d/msgid/isar-users/6a4e0583-0466-47a3-a1a6-3ca08d982373%40siemens.com.
next prev parent reply other threads:[~2024-09-13 12:28 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
2024-09-13 12:28 ` 'Jan Kiszka' via isar-users [this message]
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=6a4e0583-0466-47a3-a1a6-3ca08d982373@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