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