Hi

On Tue, Feb 04, 2025 at 05:25:08PM +0000, stefa...@debian.org wrote:
> So, by implementing this Provides scheme, Helmut's cross-bootstrapping
> toolchain can determine which architectures are supported, and have a
> target to Depend on.

I just read through rebootstrap, which I think is what Helmut is always
talking about.  It uses dpkg-cross, so is already using undefined
behavior of linux-libc-dev to do it's work.

My current version of it does this now:
| Provides: linux-libc-dev+support-debian+alpha (= ${binary:Version})

> Before we can come to a conclusion on that, the elephant in the room
> seems to be the question of the motivation for the migration to an
> architecture all linux-libc-dev package. Let me try to distil this
> question:
> 
> What is being gained by the transition to an architecture independent
> package?

> 4. Disadvantage: linux-libc-dev is installable on architectures that it
>    doesn't actually support. No other package involved in
>    cross-bootstrapping exhibits this. This only applies to architectures
>    that aren't supported in the linux source package (helmut's A)

Yes.  It only supports architectures that are defined as Debian.

> 5. Disadvantage: cross-build tooling needs special heuristics to
>    determine which architectures linux-libc-dev actually supports.
>    (helmut's B) The Provides scheme above supports that.

You mean "bootstrap tooling".  And yes, that part I missed in my initial
assessment,

> 6. Disadvantage: cross-build tooling doesn't currently support building
>    architecture independent packages. And that's quite understandable,
>    they should never need to be built unless we hit a situation like
>    this.

The problem was:  dpkg-cross was not able to do it's work with an
arch:all linux-libc-dev.  But it might have failed with any change of
linux-libc-dev, because it relies of undefined behaviour.  So not a
disadvantage, but inherent instability of the dpkg-cross approach.

Or actually an advantage, because we can remove this instability and
reduce the complexity.

> Is there anything that we're missing here?

- It can provide headers for multiple architectures at the same time.
- It could even handle debian architectures mapping to multiple
  multiarch identifier and kernel arches (like hppa did kind of).
- debian-ports can import it without going through the manually handled
  "unreleased" part of their archive, even before ftp-master knows about
  an architecture.
- Reduces the part of the package API that is used in an undocumented
  way via dpkg-cross.

> Should some of those assumptions be codified into policy, if we want
> them? Probably.

I don't know.  Right now the whole cross-building stuff violates the
policy, how would we clean this up?

I'm not even sure about arch:all.  We currently have no problems with
such packages only working on some architectures, if by dependency or
actually failing to work.

> It would help if everyone saw the impact that they were having on each
> other, and was able to weigh the costs of each option. Once we have some
> common ground, we can come to conclusions on the questions raised.

The impact was rather small.  Only two other parts where actually
affected, and none of them was our endusers.

The bootstrap stuff was affected, which I missed at first.  But is all
contained within two scripts that control everything.  And the rest of
that script is patching other packages quite havily already.

The other is cross-toolchain-base.  But here the impact is still
completelly unknown or at least does not show up within Debian.

Bastian

-- 
It is a human characteristic to love little animals, especially if
they're attractive in some way.
                -- McCoy, "The Trouble with Tribbles", stardate 4525.6

Reply via email to