On Thu, 08 Jun 2023 at 11:19:15 +0800, Paul Wise wrote:
> On Tue, 2023-06-06 at 11:45 +0100, Simon McVittie wrote:
> 
> > 2. i386 as a multiarch foreign architecture to run legacy binaries on
> >    modern x86_64 systems
> >    2a. legacy native Linux i386 binaries
> >    2b. legacy Windows i386 binaries via Wine (which requires a somewhat
> >        complete i386 Linux library stack)
> 
> Would it be feasible to drop i386 but still support this use-case by
> requiring folks to use historical releases on archive.debian.org?

Not really, for two reasons. Suppose we had done as you suggest in trixie,
and then a user in 2030 tries to run legacy binaries.

- Multiarch co-installability requires a matching version, so you can't
  co-install libc6:amd64 from 2030 with libc6:i386 from 2023. That would
  mean requiring use of a pure i386 chroot/container to run i386 binaries,
  which doesn't really work well for something like Steam or Wine that
  wants to provide a mixed x86_64/i386 environment that can run x86_64
  or i386 binaries interchangeably. Steam has both x86_64 and i386 games
  available (most of which will never be recompiled or updated by their
  developers), and Wine wants to provide an environment compatible
  with modern Windows, which is essentially the same shape as amd64
  Debian in terms of architecture support: it's an x86_64 OS (kernel,
  services and core libraries) with a secondary i386 library stack
  ("WoW64" in Windows' case).

  Debian-style multiarch or Fedora/Arch-style multilib is a much, much
  more convenient way to handle legacy i386 binaries than a chroot or
  container - there's a reason that essentially all distros supporting
  x86_64 have one or the other of those.

  Even if you use a container framework like Flatpak to run Steam,
  it isn't an i386 container - in Debian terminology, it's an x86_64
  container with i386 as a foreign architecture (and in fact the fd.o
  Flatpak runtimes use Debian-style multiarch paths for this).

- For game-related use cases in particular, 2030 GPU models aren't going
  to work with 2023 user-space graphics drivers (typically Mesa or
  NVIDIA-proprietary) because the 2030 GPU didn't exist yet at the time
  the 2023 driver was written, so if we don't compile a modern Mesa
  for i386, all i386 programs will eventually lose the ability to do
  accelerated graphics and end up using the 2023 version of llvmpipe.

    smcv

Reply via email to