Re: building fewer packages or reduced functionality on i386
Simon Richter <[email protected]>
| Newsgroups | gmane.linux.debian.devel.general |
|---|---|
| Message-ID | <[email protected]> |
Hi,
On 8/15/26 18:43, Simon McVittie wrote:
> I'm not sure how much value we necessarily get from prematurely
> generalizing this.
The problem is similar to what we have on some ports: there are some
packages that take up a lot of attention, but we can already tell with
some confidence that there are zero users of the software on that port.
If we can solve that problem as well in the same iteration, maintainers
only need to touch their packages once.
> i386 is special because it's an architecture that we
> don't want to support on its native hardware (32-bit CPUs) any more, AND
> there's a significant amount of legacy binary-only software for it
> (either directly for i386-linux-gnu, or for 32-bit Windows via Wine),
> which we can conveniently run on newer-but-backward-compatible CPUs.
i386 is extra special because shifting the baseline can already break
the old binary-only software, but exactly this bug compatibility is
causing the problems for the numeric packages.
What makes it less special is that it's the same packages across a
bigger set of architectures, and that set is also changing as we're
adding low-power architectures.
> armel, armhf, s390 and powerpc all have/had newer-but-backward-
> compatible CPUs that could run them (armhf/arm64, arm64, s390x and ppc64
> respectively), but they never had a significant amount of binary-only
> software that we can run, and the 64-bit time_t transition has broken
> their ABIs anyway, so they don't seem practically useful as partial
> architectures.
armel, armhf and powerpc are useful as partial architectures because the
hardware still exists and is still used, but the shifting baseline for
the "modern" variant drops support for them.
Spending any porter or maintainer time to make numerical software run is
a waste of time, like on i386, but for something like a BMC we
absolutely want up-to-date network services.
It's a different scenario from i386 compatibility, but it seems to have
a very similar solution.
>> [Short-term]
> Perhaps architecture-properties:amd64 etc. Provides: architecture-is-
> full or architecture-is-not-partial, architecture-properties:i386
> doesn't provide it, and your package Build-Depends on that name? That
> would be a generalization of having a Build-Depends: unsupported-
> architecture [i386], which is what can be done right now.
Yes, that's what I was thinking -- anything to avoid a fixed list of
architectures, because that means mass changes to packages whenever the
list changes.
> The other obvious way I can see to do this with existing mechanisms is
> if the buildds could be configured to add some Build-Profiles when
> building i386;
I think this would most likely work, but especially
> Build-Depends: unsupported-architecture <partial-arch>, ...
should be an intermediate solution, because it is still a hack that
needs to be compensated for in other places -- e.g. if I want to know
how well an architecture is holding up, and I see that there are 3000
packages with unfulfillable build dependencies, I have to dig deeper in
whether these are actually meant to be unfulfillable or if it is qt6.
For the same reason, I'd like to move "arch-is-64-bit" and
"arch-is-little-endian" into a dedicated mechanism at some point. This
is not something we should need a dependency solver for.
I think that *having* that intermediate solution is valuable on its own,
because it allows us to understand the problem fully before extending an
interface that's documented in Debian Policy.
Simon
OpenPGP_signature.asc
(application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEtjuqOJSXmNjSiX3Tfr04e7CZCBEFAmqASdwACgkQfr04e7CZ CBGriwf8DztBBwquryQXQ2wYxi4b6tsvlwcaOAOzY+6k//tNQTqcHq6b1mnJgnBk EWq90+jsJ8tYOfNX6H76f69b9Sn/rOZ2atjJ1f40iC/974gww4BF05oY3dNNzihL K16bLB1SyCGHcYPrsWijQ4mWxp9rrdpbXX9qBfM8OtK+0gg41OFM3YK4ZI6vYYRF Lrn4piAPTpEjwT2oDLdjjErQj9kXP3M1lDFiu1DsGKcNc0+7m93ChPYrggHdUVyf EQVstnqfK6yxnTtOgmP6mRrbe+Zn6VmMWKIRTNY8CIaI3eIfXzBoBhj8gpKzpCgL 6yYG/9PiHZojQksNha58QbFpQ6YH6A== =NuhW -----END PGP SIGNATURE-----