public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: "Schmidt, Adriaan" <adriaan.schmidt@siemens.com>
To: Uladzimir Bely <ubely@ilbers.de>,
	"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Subject: RE: [PATCH v2 0/4] multiarch support
Date: Wed, 22 Feb 2023 17:27:28 +0000	[thread overview]
Message-ID: <AS4PR10MB53183CB781E6D9E475990E87EDAA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <2086448.9o76ZdvQCi@home>

Uladzimir Bely <ubely@ilbers.de>, Mittwoch, 22. Februar 2023 14:41
> In the email from Monday, 20 February 2023 12:05:07 +03 user Adriaan Schmidt
> wrote:
> > This adds `<package>-compat` and `<package>-native` bitbake
> > targets to all recipes inheriting dpkg-base.
> >
> > The new -compat build variant replaces the old compat mechanism.
> > Note that `ISAR_ENABLE_COMPAT_ARCH="1"` is still required to
> > ensure that the bootstrap and buildchroot is prepared correctly.
> >
> > Adriaan
> >
> > changes since v1:
> > - fixed an issue that prevented arch overrides of
> >   ISAR_ENABLE_COMPAT_ARCH, which is used in testsuite
> > - added `-native` expansion to contents of IMAGE_INSTALL
> > - documentation in user_manual
> >
> > Adriaan Schmidt (4):
> >   bitbake.conf: use PACKAGE_ARCH in overrides
> >   add multiarch support
> >   remove obsolete compat-arch override
> >   doc: add compat/native targets to user manual
> >
> >  doc/user_manual.md                            | 19 +++--
> >  .../recipes-app/hello-isar/hello-isar.bb      |  3 -
> >  meta-isar/recipes-app/libhello/libhello.bb    |  3 -
> >  .../recipes-app/samefile/samefile_2.14.bb     |  2 +-
> >  meta/classes/compat.bbclass                   | 46 ++++++++++++
> >  meta/classes/debianize.bbclass                |  2 +-
> >  meta/classes/dpkg-base.bbclass                |  1 +
> >  meta/classes/image.bbclass                    |  4 +-
> >  meta/classes/multiarch.bbclass                | 71 +++++++++++++++++++
> >  meta/classes/native.bbclass                   | 10 +++
> >  meta/conf/bitbake.conf                        |  6 +-
> >  .../isar-bootstrap/isar-bootstrap.inc         |  2 +
> >  .../sbuild-chroot/sbuild-chroot.inc           | 14 ++--
> >  testsuite/cibuilder.py                        |  2 +
> >  14 files changed, 160 insertions(+), 25 deletions(-)
> >  create mode 100644 meta/classes/compat.bbclass
> >  create mode 100644 meta/classes/multiarch.bbclass
> >  create mode 100644 meta/classes/native.bbclass
> 
> Didn't look too deeply into the problem, but CI completely fails with the
> patchset, producing multiple errors like:
> 
> 16:29:04 ERROR: /workspace/build/isar_ub_devel_2_fast/125/meta-isar/recipes-
> app/cowsay/cowsay_git.bb: armhf does not have a compat arch
> 16:29:04 ERROR: /workspace/build/isar_ub_devel_2_fast/125/meta/recipes-
> support/sshd-regen-keys/sshd-regen-keys_0.4.bb: i386 does not have a compat
> arch

Ah yes, of course I only tested the cases where a compat arch exists...

I looked into this, and this error (or the check that prints it) happens at
parse time. That's not good, because `*-compat` variants of recipes are
always parsed, whether someone wants to build them or not.

I have found two ways of solving this:

1. If compat cannot be built (either because ISAR_ENABLE_COMPAT_ARCH is not set,
or because there is no COMPAT_DISTRO_ARCH), don't provide the `*-compat` build targets.
Then a `bitbake hello-compat` would fail with:
===
builder@022f45995a49:/build$ bitbake hello-compat
Loading cache: 100% |####################################################################################| Time: 0:00:00
Loaded 113 entries from dependency cache.
Parsing recipes: 100% |##################################################################################| Time: 0:00:00
Parsing of 45 .bb files complete (6 cached, 39 parsed). 80 targets, 0 skipped, 0 masked, 0 errors.
ERROR: Nothing PROVIDES 'hello-compat'
===

2. Alternatively, I can check when actually starting the build. The best I could find
is prepending `do_fetch`, and then we would fail like this:
===
builder@022f45995a49:/build$ bitbake hello-compat
Loading cache: 100% |####################################################################################| Time: 0:00:00
Loaded 113 entries from dependency cache.
Parsing recipes: 100% |##################################################################################| Time: 0:00:00
Parsing of 45 .bb files complete (8 cached, 37 parsed). 113 targets, 0 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###############################################################################| Time: 0:00:00
Sstate summary: Wanted 1 Local 0 Mirrors 0 Missed 1 Current 2 (0% match, 66% complete)
NOTE: Executing Tasks
ERROR: hello-compat-1.0-r0 do_fetch: i386 does not have a compat arch
ERROR: Logfile of failure stored in: /build/tmp/work/debian-bullseye-i386/hello-compat/1.0-r0/temp/log.do_fetch.83315
ERROR: Task (virtual:compat:/build/../repo/meta-isar/recipes-app/hello/hello.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 21 tasks of which 19 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  virtual:compat:/build/../repo/meta-isar/recipes-app/hello/hello.bb:do_fetch
Summary: There was 1 ERROR message, returning a non-zero exit code.
===

I strongly prefer (1.) because it fails earlier, before any tasks start running.
The downside is that we can't give a more detailed explanation why we're failing.

Any preferences?

Adriaan

  reply	other threads:[~2023-02-22 17:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-20  9:05 Adriaan Schmidt
2023-02-20  9:05 ` [PATCH v2 1/4] bitbake.conf: use PACKAGE_ARCH in overrides Adriaan Schmidt
2023-02-20  9:05 ` [PATCH v2 2/4] add multiarch support Adriaan Schmidt
2023-02-20  9:05 ` [PATCH v2 3/4] remove obsolete compat-arch override Adriaan Schmidt
2023-02-20  9:05 ` [PATCH v2 4/4] doc: add compat/native targets to user manual Adriaan Schmidt
2023-02-22 13:40 ` [PATCH v2 0/4] multiarch support Uladzimir Bely
2023-02-22 17:27   ` Schmidt, Adriaan [this message]
2023-02-22 18:01     ` Uladzimir Bely

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=AS4PR10MB53183CB781E6D9E475990E87EDAA9@AS4PR10MB5318.EURPRD10.PROD.OUTLOOK.COM \
    --to=adriaan.schmidt@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=ubely@ilbers.de \
    /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