Question regarding Trixie and SFML
Simon McVittie
smcv at debian.org
Fri May 30 20:31:45 BST 2025
On Fri, 30 May 2025 at 20:15:47 +0200, Marc Haber wrote:
>If the libraries are not backwards compatible, you might want to talk
>to the Debian Games Team (pkg-games-devel at lists.alioth.debian.org)
>whether they plan to package the 3.0 series independently from the 2.x
>series in Debian 14/forky.
Better to contact the maintainers of this specific library via
libcsfml at packages.debian.org or a bug report, and/or the games team's
discussion list debian-devel-games at lists.debian.org, in this case. I've
cc'd the relevant addresses here; please consider dropping the cc to
debian-devel in any replies.
The pkg-games-devel list is high-traffic with lots of autogenerated
messages about all of the team's games, but most of the team probably
don't read that whole list, because most of its traffic is not relevant
to most team members - instead, I suspect most team members are only
subscribed to messages about a few specific games and libraries that
they're interested in.
>On Fri, May 30, 2025 at 01:43:25PM -0400, First Name wrote:
>>The [SFML] 3.0 series is not
>>available yet in Debian 12, however, when it does come available, I would
>>want the 2.0 series to still be available due to the lack of backwards
>>compatibility SFML provides.
Whether to make the new major version completely replace the old one
(like we do for new major versions of OpenSSL) or coexist for a while
(like we do for new major versions of SDL, GTK and Qt) is a decision for
the package's maintainer to make. At the moment the version packaged in
experimental completely replaces SFML 2.x rather than being an
independent package: they both implement libcsfml-dev. (Like OpenSSL,
unlike SDL/GTK/Qt.)
If the upstream developer of this library intended the two different
major versions to be parallel-installable (like SDL, GTK and Qt do),
then they would have needed to choose names for the files of the new
major version that allow them to be installed together:
<https://ometer.com/parallel.html> (which is 20+ years old but is still
good advice). However, it seems they didn't do that: both version 2 and
version 3 have pkg-config modules with names like csfml-audio.pc and
shared libraries with names like libcsfml-audio.so, which means
developers cannot have both version 2 and version 3 installed at the
same time.
Unless this has changed since 3.0.0 rc1, if SFML 3 was packaged
separately, then libcsfml3-dev would need a Conflicts: libcsfml-dev
preventing them from being installed at the same time (like the way
libfltk1.3-dev and libfltk1.4-dev are separate packages, but cannot
both be installed on the same system at the same time).
It is not always completely obvious whether a separate package for a new
major version is a good idea, even when it is technically possible. A
recurring problem that we have in Debian is that upstream projects
release a new major version of a library (like SFML 3), and either
immediately or some time later they stop supporting the old version
(like SFML 2). If the old version is a separate package, the risk is
that the old, unsupported version continues to hang around in Debian for
several years afterwards, taking up QA resources and suffering from bugs
and sometimes security vulnerabilities, because nobody wants to remove
older programs that still use the old version and were never ported to
the new one - but nobody is really maintaining it either, because the
most we can realistically do with a library that is dead upstream is to
fix the most urgent issues to keep it on life-support.
For example we've seen this with GTK 2, SDL 1.2, every previous Qt major
version, libsoup 2.4 and many more. One way to force this not to happen
is to only have the new library (similar to the way OpenSSL 3 completely
replaced earlier OpenSSL versions in Debian), which gives dependent
programs an ultimatum: either they must be updated to the new library,
or they can't be in Debian any more.
smcv
More information about the Pkg-games-devel
mailing list