From: Anton Mikanovich <amikan@ilbers.de>
To: "MOESSBAUER, Felix" <felix.moessbauer@siemens.com>,
"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 10:36:05 +0300 [thread overview]
Message-ID: <6de97274-3f2c-4b62-a7e9-82f6e1f2c338@ilbers.de> (raw)
In-Reply-To: <068441b599000a64dfee36800f1949ecda868662.camel@siemens.com>
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?
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.
next prev parent reply other threads:[~2026-07-01 7:36 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 [this message]
2026-07-01 8:56 ` 'MOESSBAUER, Felix' via isar-users
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=6de97274-3f2c-4b62-a7e9-82f6e1f2c338@ilbers.de \
--to=amikan@ilbers.de \
--cc=christoph.steiger@siemens.com \
--cc=felix.moessbauer@siemens.com \
--cc=herbert.bernecker@siemens.com \
--cc=isar-users@googlegroups.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