From: "'MOESSBAUER, Felix' via isar-users" <isar-users@googlegroups.com>
To: "amikan@ilbers.de" <amikan@ilbers.de>,
"isar-users@googlegroups.com" <isar-users@googlegroups.com>
Cc: "Bernecker, Herbert" <herbert.bernecker@siemens.com>,
"Steiger, Christoph" <christoph.steiger@siemens.com>,
"jan.kiszka@siemen.com" <jan.kiszka@siemen.com>
Subject: Re: base-apt: Inconsistent priorities between apt-cache and .deb data break offline builds
Date: Wed, 1 Jul 2026 08:56:22 +0000 [thread overview]
Message-ID: <4327adfa99d5540fe1df8a38faedfcca678387c2.camel@siemens.com> (raw)
In-Reply-To: <6de97274-3f2c-4b62-a7e9-82f6e1f2c338@ilbers.de>
On Wed, 2026-07-01 at 10:36 +0300, Anton Mikanovich wrote:
> 30.06.2026 20:26, MOESSBAUER, Felix wrote:
> > On Tue, 2026-06-30 at 18:36 +0300, Anton Mikanovich wrote:
> > > On 30/06/2026 16:24, 'MOESSBAUER, Felix' via isar-users wrote:
> > > > Dear isar-devs,
> > > >
> > > > we noticed that cross-architecture offline builds are currently broken
> > > > and single-architecture offline builds differ from the online
> > > > variant. One failure pattern is the following, whereby the offline
> > > > isar-mmdebstrap-host fails with an error message like this:
> > > >
> > > > The following packages have unmet dependencies:
> > > > libtext-wrapi18n-perl : Depends: libtext-charwidth-perl but it is not
> > > > installable
> > > > E: Unable to correct problems, you have held broken packages.
> > > > E: The following information from --solver 3.0 may provide additional
> > > > context:
> > > > Unable to satisfy dependencies. Reached two conflicting decisions:
> > > > 1. libtext-wrapi18n-perl:amd64=0.06-10 is selected for install
> > > > 2. libtext-wrapi18n-perl:amd64 Depends libtext-charwidth-perl
> > > > but none of the choices are installable:
> > > > [no choices]
> > > >
> > > > The root cause for this is that we ignore the upstream's repo priority
> > > > overrides when creating the base-apt: reprepro includedeb records the
> > > > priority from the .deb's own control field, and that becomes the
> > > > priority published in base-apt's Packages index.
> > > >
> > > > When these priorities differ, the set of packages installed in offline
> > > > mode are different from the ones in online mode. This per-se is plain
> > > > wrong, but only surfaces if a now-required arch=all package depends on
> > > > its architecture specific variant which never has been fetched (because
> > > > the online bootstrap had access to the prio overrides). For non-cross
> > > > builds the result is also different, which can be checked by comparing
> > > > the SBOMs.
> > > >
> > > > There are HACKY ways to re-create the upstream priorities, but IMHO our
> > > > approach for offline builds is problematic and should be changed:
> > > > Instead of explicitly recreating the base-apt repo, we better just
> > > > preserve the upstream apt lists and inject our downloads/deb dir into
> > > > the apt cache that is used by the build. This would allow us to
> > > > completely drop the base-apt.
> > > Issues like that supposed to be fixed by "Improving base-apt usage"
> > > patchset.
> > This rings a bell. Looks like the series could need a revival.
> >
> > > It should address storing only needed packages, while DL_DIR is just a
> > > storage
> > > for everything without storing any real packages state in it.
> > > The idea is to have base-apt as an input, while isar-apt is used as an
> > > output.
> > I just checked the series, but this issue is not solved by it, as the
> > apt lists are not cached but only the packages. This is exactly what
> > breaks here: The packages have a different priority field than the apt
> > list.
> >
> > I'm wondering if a simpler solution is a pull-through cache, like many
> > people use for cached building of containers (like here [1]). That
> > let's apt take care of the caching instead of the surrounding build
> > environment.
> >
> > [1]
> > https://github.com/siemens/kas/blob/81bab5294be29de4b64adedce962d36184bfc66f/Dockerfile#L37
> >
> > > We will look into the issue, starting from reproducing it.
> > It's easy to reproduce with these steps. You can even further reduce
> > the set of packages to the bare minimum to reproduce faster.
> Turns out not so easy: tried twice on clean setup with no luck so far.
> Are there any other options or changes?
Hi, you must start with an empty downloads folder. The libtext-
charwidth-perl_0.04-11+b4_amd64.deb indicates that the isar-image-base
was built for amd64.
For debugging, I recommend to just build the bootstrap target for amd64
and check that the libtext-charwidth-perl_0.04-11+b4_arm64.deb is NOT
in the downloads dir. Once that is confirmed, please retry the steps
from below.
Felix
>
> Here are debs in downloads after the build (on next b90b722f, default
> debian-trixie):
> libtext-wrapi18n-perl_0.06-10_all.deb
> libtext-charwidth-perl_0.04-11+b4_amd64.deb
> libtext-charwidth-perl_0.04-11+b4_arm64.deb
> >
> > > > Reproducer:
> > > >
> > > > 1. kas-container menu, select qemuarm64 machine, build
> > > > 2. mv build build-online && mkdir build && cp -rf build-
> > > > online/downloads build/
> > > > 3. kas-container build .config.yaml:offline.yml
> > > >
> > > > offline.yml:
> > > > header:
> > > > version: 14
> > > > local_conf_header:
> > > > offline: |
> > > > ISAR_USE_CACHED_BASE_REPO = "1"
> > > > BB_NO_NETWORK = "1"
> > > Do we need such an option in kas menu?
> > Probably? :) At least I did not see this option, but the variables are
> > documented.
> >
> > Felix
>
> --
> 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/6de97274-3f2c-4b62-a7e9-82f6e1f2c338%40ilbers.de.
--
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/4327adfa99d5540fe1df8a38faedfcca678387c2.camel%40siemens.com.
next prev parent reply other threads:[~2026-07-01 8:56 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 14:24 'MOESSBAUER, Felix' via isar-users
2026-06-30 15:36 ` Anton Mikanovich
2026-06-30 17:26 ` 'MOESSBAUER, Felix' via isar-users
2026-07-01 7:36 ` Anton Mikanovich
2026-07-01 8:56 ` 'MOESSBAUER, Felix' via isar-users [this message]
2026-07-01 12:29 ` Anton Mikanovich
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=4327adfa99d5540fe1df8a38faedfcca678387c2.camel@siemens.com \
--to=isar-users@googlegroups.com \
--cc=amikan@ilbers.de \
--cc=christoph.steiger@siemens.com \
--cc=felix.moessbauer@siemens.com \
--cc=herbert.bernecker@siemens.com \
--cc=jan.kiszka@siemen.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