Re: Mass bug filing / call for testing: dependencies on SDL 1.2

2023-06-21 Thread Stephen Kitt
On Wed, 21 Jun 2023 10:33:01 +0100, Simon McVittie  wrote:
> On Wed, 21 Jun 2023 at 08:50:30 +0200, Stephen Kitt wrote:
> > On Mon, 12 Jun 2023 17:24:03 +0100, Simon McVittie 
> > wrote:  
> > > SDL 1.2 was superseded by SDL 2 several years ago, and no longer
> > > receives upstream maintenance or releases. Maintained software that
> > > uses SDL 1.2 should be ported to SDL 2.  
> > 
> > Given the time scales involved, is it worth waiting for SDL 3 (soon...)
> > before porting SDL 1.2 software? I’m assuming that SDL 3 will be available
> > for Trixie, and this would avoid two porting efforts.  
> 
> I don't know what the timescale for a stable release of SDL 3 is like -
> I hope it'll be ready before trixie, but I can't guarantee anything. Many
> games will not be able to move to SDL 3 until additional libraries like
> SDL2_image have a SDL 3 version, so even after everything is API-stable,
> it's going to take several trips through NEW before we can ask maintainers
> to port to it.
> 
> The first step in porting from SDL 1.2 to SDL 3 will be porting to SDL 2
> (both the core library and the version of addons like SDL_image), and
> the second step would be moving away from any deprecated SDL-2-era APIs,
> so I think it's worth doing those regardless.

Right, so in any case the effort involved in porting to SDL 2 won’t be
“wasted” by a subsequent port to SDL 3.

> What I would prefer to try to avoid here is for maintainers to think
> "I'll just wait for SDL 3", and then time passes, maintainers are busy
> with something else, we freeze, and we have to ship trixie with *three*
> major versions of SDL (or at least their -compat equivalents).
> 
> Ideally these bugs would have been opened in 2013 or 2014, but better late
> than never. (I was not involved in SDL maintenance at that point.)

Indeed!

Regards,

Stephen


pgpCmvhueWNnW.pgp
Description: OpenPGP digital signature


Re: Mass bug filing / call for testing: dependencies on SDL 1.2

2023-06-21 Thread Simon McVittie
On Wed, 21 Jun 2023 at 08:50:30 +0200, Stephen Kitt wrote:
> On Mon, 12 Jun 2023 17:24:03 +0100, Simon McVittie  wrote:
> > SDL 1.2 was superseded by SDL 2 several years ago, and no longer receives
> > upstream maintenance or releases. Maintained software that uses SDL 1.2
> > should be ported to SDL 2.
> 
> Given the time scales involved, is it worth waiting for SDL 3 (soon...)
> before porting SDL 1.2 software? I’m assuming that SDL 3 will be available
> for Trixie, and this would avoid two porting efforts.

I don't know what the timescale for a stable release of SDL 3 is like -
I hope it'll be ready before trixie, but I can't guarantee anything. Many
games will not be able to move to SDL 3 until additional libraries like
SDL2_image have a SDL 3 version, so even after everything is API-stable,
it's going to take several trips through NEW before we can ask maintainers
to port to it.

The first step in porting from SDL 1.2 to SDL 3 will be porting to SDL 2
(both the core library and the version of addons like SDL_image), and
the second step would be moving away from any deprecated SDL-2-era APIs,
so I think it's worth doing those regardless.

What I would prefer to try to avoid here is for maintainers to think
"I'll just wait for SDL 3", and then time passes, maintainers are busy
with something else, we freeze, and we have to ship trixie with *three*
major versions of SDL (or at least their -compat equivalents).

Ideally these bugs would have been opened in 2013 or 2014, but better late
than never. (I was not involved in SDL maintenance at that point.)

smcv



Re: Mass bug filing / call for testing: dependencies on SDL 1.2

2023-06-20 Thread Stephen Kitt
Hi Simon,

On Mon, 12 Jun 2023 17:24:03 +0100, Simon McVittie  wrote:
> SDL 1.2 was superseded by SDL 2 several years ago, and no longer receives
> upstream maintenance or releases. Maintained software that uses SDL 1.2
> should be ported to SDL 2.

Given the time scales involved, is it worth waiting for SDL 3 (soon...)
before porting SDL 1.2 software? I’m assuming that SDL 3 will be available
for Trixie, and this would avoid two porting efforts.

Regards,

Stephen


pgpNOBwOwE0Bk.pgp
Description: OpenPGP digital signature


Re: Mass bug filing / call for testing: dependencies on SDL 1.2

2023-06-13 Thread Simon McVittie
On Tue, 13 Jun 2023 at 11:10:41 +0800, Paul Wise wrote:
> On Mon, 2023-06-12 at 17:24 +0100, Simon McVittie wrote:
> > SDL 1.2 was superseded by SDL 2 several years ago, and no longer receives
> > upstream maintenance or releases. Maintained software that uses SDL 1.2
> > should be ported to SDL 2.
> 
> It was pointed out to me on IRC that some SDL 1.2 extension libraries
> might not have an SDL 2 equivalent yet, or they might not be in Debian.
...
> Looking through the packages, these appear to be missing:
> 
>    console kitchensink pango sge sound
> 
> Perhaps there are better equivalents for these in SDL 2 though?

-kitchensink is already a SDL-2-only library, despite its name and
version number not containing a 2 (but it appears to have only one
reverse-dependency, and is currently orphaned, so I wouldn't recommend
relying on it).

The SDL extension libraries that I've mainly been looking at are the
ones maintained by the same upstream developers as SDL itself: -image,
-mixer, -net and -ttf. Those all have maintained SDL 2 equivalents (or
semi-maintained in the case of -net, which is IPv4-only and generally
fairly obsolete - I believe the recommended replacement for software
that wants IPv6 support is to use BSD-style socket APIs directly).

Nothing in Debian depended on -console, and that has been true for quite
some time, so I've asked for it to be removed from trixie.

SDL 2 has a "render" API which might be quite close to being a replacement
for -sge. libsdl2-gfx also seems to deal with the same general problem
space.

I'm not sure how the purpose of -sound differs from -mixer: they both
seem to be primarily a convenience API for decoding and playing popular
formats like MP3.

You seem to have looked at -pango already.

> Will the SDL team be packaging available SDL 2 equivalents for
> the SDL 1.2 extension libraries that are in Debian?

I can't speak for other SDL team members. I don't plan to package
third-party SDL extension libraries (those not maintained by SDL upstream)
myself, but interested maintainers of games that need them are very welcome
to do so.

I'm not intending to ask for the SDL 1.2 extension libraries to be removed
unless they either get unfixed RC bugs, or reach a situation where no
other Debian package depends on them - but I'm also not intending to
maintain those myself, and part of the purpose of this MBF is to raise
awareness that the whole SDL 1.2 ecosystem has been effectively dead
for multiple years.

> > For legacy software that cannot be ported, SDL upstream have produced a
> > replacement library, sdl12-compat, which implements the SDL 1.2 API/ABI
> > by dlopening SDL 2 (and correcting for API/ABI changes). In Debian, this
> > is currently available as libsdl1.2-compat-shim.
> 
> I tested hex-a-hop under GNOME Wayland. It segfaults with SDL 1.2 and
> SDL_VIDEODRIVER=wayland

"Classic" SDL 1.2 never had a Wayland backend, so that is not an
interesting test-case: it is expected that games will crash or otherwise
exit unsuccessfully when asked to use a backend that doesn't exist.
SDL_VIDEODRIVER=wayland is only expected to work with SDL >= 2, either
directly or via libsdl1.2-compat-shim.

> When using the compat lib via LD_PRELOAD, the X11 mode has
> a window title bar and border but those are missing in Wayland mode.

libsdl2-2.0-0 Depends on libdecor-0-0, which Recommends
libdecor-0-plugin-1-cairo | libdecor-0-plugin-1. If at least one libdecor
plugin is available, then you should get a titlebar under native
Wayland (in practice usually bold white text on a black background, with
minimize/maximize/close buttons that light up orange/green/red on
mouseover - that's the cairo plugin).

openarena and chocolate-doom in windowed mode are examples of SDL2 games
where I've verified that this works, and amoebax is an example of a SDL 1.2
game where this works while using libsdl1.2-compat-shim.

If Recommends are not installed, then as per Policy §7.2 you have an
unusual installation and can expect to see reduced functionality.

smcv



Re: Mass bug filing / call for testing: dependencies on SDL 1.2

2023-06-12 Thread Paul Wise
On Mon, 2023-06-12 at 17:24 +0100, Simon McVittie wrote:

> SDL 1.2 was superseded by SDL 2 several years ago, and no longer receives
> upstream maintenance or releases. Maintained software that uses SDL 1.2
> should be ported to SDL 2.

It was pointed out to me on IRC that some SDL 1.2 extension libraries
might not have an SDL 2 equivalent yet, or they might not be in Debian.

For example hex-a-hop can use SDL_ttf or SDL_Pango. Pango is a more
featureful text renderer, so the Debian package uses it. There is an
SDL2_Pango project available on GitHub but it isn't in Debian yet.

   https://github.com/markuskimius/SDL2_Pango

Looking through the packages, these appear to be missing:

   console kitchensink pango sge sound

Perhaps there are better equivalents for these in SDL 2 though?

Will the SDL team be packaging available SDL 2 equivalents for
the SDL 1.2 extension libraries that are in Debian?

> For legacy software that cannot be ported, SDL upstream have produced a
> replacement library, sdl12-compat, which implements the SDL 1.2 API/ABI
> by dlopening SDL 2 (and correcting for API/ABI changes). In Debian, this
> is currently available as libsdl1.2-compat-shim.

I tested hex-a-hop under GNOME Wayland. It segfaults with SDL 1.2 and
SDL_VIDEODRIVER=wayland but does not with the SDL 1.2 compat lib via
LD_PRELOAD. When using the compat lib via LD_PRELOAD, the X11 mode has
a window title bar and border but those are missing in Wayland mode.

   dpkg-architecture -c sh -c 
'LD_PRELOAD=/usr/lib/${DEB_HOST_MULTIARCH}/sdl12-compat/libSDL-1.2.so.0 
hex-a-hop'

-- 
bye,
pabs

https://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part