Bug#932372: libsdl1.2-dev is not multiarch-compatible

Simon McVittie smcv at debian.org
Mon Jul 11 10:03:42 BST 2022


Control: retitle -1 libsdl1.2-dev is not multiarch-compatible
Control: tags -1 + confirmed

On Thu, 18 Jul 2019 at 17:09:16 +0300, johan wrote:
> I tried to install libsdl1.2-dev:i386 on a 64-bit system in order to compile
> 32-bit versions of some software, but it would require removing these packages
> 
> libcaca-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-net1.2-dev libsdl-
> sound1.2-dev libsdl1.2-dev
> 
> and this is obviously not desirable. So unless I'm doing something wrong,
> libsdl1.2-dev seems to be multiarch-incompatible.

Correct. libsdl1.2-dev contains /usr/bin/sdl-config and
/usr/include/SDL/SDL_config.h, which vary between architectures, preventing
libsdl1.2-dev from being marked as Multi-Arch: same.

It is possible to get round this with some tricks involving compiler
defaults (and Debian's SDL maintainers have successfully done that
for SDL 2), but it's fairly complicated to get right, particularly in
situations where dependent packages make wrong assumptions about how
various packages fit together (it took us several attempts to get this
right in SDL 2), so the risk/result ratio for doing this in the legacy
SDL 1.2 library is not very favourable.

Even if we made libsdl1.2-dev Multi-Arch: same, it would still not
be practically multi-arch co-installable until libcaca-dev is fixed
(#1014744, which is considerably simpler to solve).

Workaround: port dependent software from SDL 1.2 to SDL 2 (preferred),
or use libsdl1.2-compat-dev, or use a container or chroot to compile
32-bit software.

The long-term solution for this will be for Debian to switch
from libsdl1.2-dev and libsdl1.2debian to libsdl1.2-compat-dev and
libsdl1.2-compat-shim as its implementation of the legacy SDL 1.2 ABI,
but I think we'll need at least one more upstream release of sdl12-compat
before we can do that without causing regressions.

    smcv



More information about the Pkg-sdl-maintainers mailing list