Package: qemu-user-static
Version: 1:9.0.2+ds-1
Severity: normal

Currently, there are 2 packages providing exactly the same
functionality which differs slightly internally: it is
qemu-user (with qemu-user-binfmt) and qemu-user-static.

qemu-user is linked dynamically, so cannot be used in a
foreign chroot (which is the most common usage of user-
mode qemu emulation), because the dynamic libraries are
usually not available.  The only manageable scenario
where non-static qemu-user can be used is when foreign
executables are run directly on the host system where
all required libraries are available.  For example, when
a foreign binary is installed on the host system in a
multi-arch setup as now possible in debian, or when a
statically-linked foreign app is run (again, on the
regular host system).  Once any form of a foreign
chroot is involved, non-static version can't work.

The static version is much more universal, it can be
used in any possible scenario.

One disadvantage of the static version is that it is
significantly larger since all libraries are linked
directly into every executable.  I don't think this
is a problem in practice.

For users, having two packages to choose from is
confusing, and often users install the wrong one
(the non-static version), which doesn't work in
their scenario.

The intention is to rename qemu-user-static into
qemu-user (making qemu-user to be the only user-mode
qemu emulation package, statically linked), make
qemu-user-static to be a transitional package which
depends on qemu-user, and make qemu-user Provides:
qemu-user-static.  qemu-user-binfmt becomes just an
empty transitional package.  Both transitional pkgs
will be removed after trixie.

/mjt

Reply via email to