Comment 10 for bug 1256185

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

On the motivation:
Initially this was described as
  "So it's time to replace libsdl1.2 with libsdl2"

Given that there are 400 effective and 327 build depends this certainly will be no "replacement".
Like Serge said in comment #4, some packages might benefit and do the switch - but others might not for quite a while - yet having libsdl2 in main might help to drop some delta and more so not be suddenly blocked once upstream and Debian moves.
It is more:
  "So it's time to allow packages migrating to adopt libsdl2"

On the open questions:
1. MIR for tslib
2. Tests not ran on build

## 1. MIR for tslib ##

tslib is no more part of the dependencies that need to be resolved.
But libsndio-dev is.
for i in $(apt-cache show libsdl2-dev libsdl2-doc libsdl2-2.0-0 | awk '/^Depe/ {gsub("Depends: ",""); gsub(", "," "); gsub("\\(.*\\)",""); print $0;}' | xargs); do if ! apt-cache policy $i| grep 500 | grep -q main; then echo $i; apt-cache policy $i| grep 500; fi; done
libsdl2-2.0-0
     2.0.5+dfsg1-2ubuntu3 500
        500 http://archive.ubuntu.com/ubuntu artful/universe amd64 Packages
libsndio-dev
 *** 1.1.0-3 500
        500 http://archive.ubuntu.com/ubuntu artful/universe amd64 Packages

But that dependency is only from libsdl2-dev only which could be ok since we now can keep build-depends out of main and that is all it is used for.
Can we also make only "some binaries of a source" to appear in main?
Otherwise one would need a MIR for "sndio" (which fortunately would have no further dependencies on its own).

## 2. Tests not ran on build ##

Those are no "common" tests like for a "make check" or anything driven by dh_autotest usually.
Also (naturally) many of those tests need sound or graphic devices to work.
One could add the tests as a dep8 test if that is needed, but it needs more work especially if one would want to enable the graphic and audio checks.
I polled upstream, but got no reply with more details on the tests.

So I checked if I could brute force the tests and could get it to work with a subset of tests and one patch:
/usr/include/SDL2/SDL_stdinc.h:265:20: error: variably modified ‘SDL_dummy_size’ at file scope
        typedef int SDL_dummy_ ## name[(x) * 2 - 1]
                    ^
testatomic.c:106:1: note: in expansion of macro ‘SDL_COMPILE_TIME_ASSERT’
 SDL_COMPILE_TIME_ASSERT(size, CountTo>0); /* check for rollover */
=> That is no more a valid way, disabling the line for now.

# install libsdl2-dev via d/t/control
# make unpacked source available
cd test
./autogen
./configure
make
# then run the subset of tests that work in the build env

I attach a list of working and failing tests, but would not recommend to add those - this would be more an upstream effort to make it into a valid "make check" if that is reasonable (for them).
Surely one could start with a fake window server like in the qt tests, but you see where this is going.

For now the reason the tests are not run is explained, and the way to a dep8 is clear but quite some effort.

##

Setting to new as the questions that were asked before got answered.