Bug#1012088: libsdl2-dev is possibly missing dependencies

Matthew Forrester woshilinmanfu+debian at gmail.com
Mon May 30 02:52:27 BST 2022


Package: libsdl2-dev
Version: 2.0.20+dfsg-2build1
Severity: normal
X-Debbugs-Cc: woshilinmanfu+debian at gmail.com

Dear Maintainer,

I think that libsdl-dev may possibly need its dependency list updating. I noticed the issue in Ubuntu, but the dependencies in Ubuntu are essentially the same as those in upstream Debian (apart from some things like libc and pkg-config which presumably apply to all packages), so I am reporting it to you too.

WHAT LED UP TO THE SITUATION?

I moved from Ubuntu 20.04 Focal Fossa to 22.04 Jammy Jellyfish. The Jammy version of this package (2.2.20+dfsg-2build1) is behind the Debian Sid version, but both versions have the same dependencies if there is a problem, then it is still there.

(This is how I discovered the issue, but there is probably a much more minimal reproduction case)
1. Downloaded the Simutrans-Extended repo: https://github.com/jamespetts/simutrans-extended
2. Downloaded the dependencies, at a minimum libsdl2-dev
3. Followed the instructions there for building with autotools

EXPECTED RESULTS

Simutrans-Extended compiles correctly, as it did on Focal Fossa.

ACTUAL RESULTS

When I tried to build it on Jammy Jellyfish, the build failed with the following errors from the linker:

    /usr/bin/ld: cannot find -ldrm: No such file or directory
    /usr/bin/ld: cannot find -lgbm: No such file or directory
    /usr/bin/ld: cannot find -ldecor-0: No such file or directory

Installing Ubuntu's libdrm-dev, libgbm-dev, and libdecor-0-dev packages ("the 'missing' packages") solved that problem. But I wonder whether it might be a packaging bug. I follow Simutrans-Extended development quite closely and we have not intentionally introduced dependencies on those packages; I think they have been brought in by SDL2.

If a program using sdl2-dev used to be able to compile without the 'missing' packages, but now requires them, it seems to me that they are now dependencies of sdl2-dev. Or at least should be 'suggests'. But I am not an expert on either Debian packaging or SDL2.

COMMENTS

The 'missing' libraries are not direct dependencies of Simutrans. However, the sdl2-0-0 packages in Debian and Ubuntu have recently added dependencies on libgbm1, libdrm2, and libdecor-0-0.

Compare the Bullseye dependencies.... https://packages.debian.org/bullseye/libsdl2-2.0-0 
......with the Bookworm dependencies: https://packages.debian.org/bookworm/libsdl2-2.0-0

However, the Bookworm and Sid libsdl2-dev packages do **not** list dependencies on the 'missing' -dev packages: https://packages.debian.org/bookworm/libsdl2-dev

I notice that SDL's own build guide lists those packages as dependencies for building SDL2 itself on Focal Fossa: https://github.com/libsdl-org/SDL/blob/main/docs/README-linux.md
But that change was made in February 2021 so it affects Ubuntu's version of SDL2 in Jammy, not Focal: https://github.com/libsdl-org/SDL/commit/2f4e9294aa260635d876b5699846adc458f555db
That change was before Bullseye was released so I am not sure how that fits with the Debian timescale.

I initially asked about this on AskUbuntu and a comment there confirmed that the required .so files are in (for example) libgbm-dev, not lib-gbm1: https://askubuntu.com/questions/1410876/is-ubuntus-libsdl2-dev-package-missing-dependencies-or-have-i-made-a-mistake?noredirect=1#comment2451919_1410876
That seemed to confirm that this might be a packaging/dependencies issue.

The downstream report for Ubuntu is here: https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1976198

Thank you for your time. I hope this feedback is helpful and not just my misunderstanding.

-- System Information:
Debian Release: bookworm/sid
  APT prefers jammy-updates
  APT policy: (500, 'jammy-updates'), (500, 'jammy-security'), (500, 'jammy'), (100, 'jammy-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.15.0-33-generic (SMP w/8 CPU threads)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libsdl2-dev depends on:
ii  libasound2-dev    1.2.6.1-1ubuntu1
ii  libc6             2.35-0ubuntu3
ii  libdbus-1-dev     1.12.20-2ubuntu4
ii  libegl1-mesa-dev  22.0.1-1ubuntu2
ii  libgl-dev         1.4.0-1
ii  libgles-dev       1.4.0-1
ii  libglu1-mesa-dev  9.0.2-1
ii  libibus-1.0-dev   1.5.26-4
ii  libopengl0        1.4.0-1
ii  libpulse-dev      1:15.99.1+dfsg1-1ubuntu1
ii  libsdl2-2.0-0     2.0.20+dfsg-2build1
ii  libsndio-dev      1.8.1-1.1
ii  libudev-dev       249.11-0ubuntu3.1
ii  libwayland-dev    1.20.0-1
ii  libx11-6          2:1.7.5-1
ii  libx11-dev        2:1.7.5-1
ii  libxcursor-dev    1:1.2.0-2build4
ii  libxext-dev       2:1.3.4-1build1
ii  libxi-dev         2:1.8-1build1
ii  libxinerama-dev   2:1.1.4-3
ii  libxkbcommon-dev  1.4.0-1
ii  libxrandr-dev     2:1.5.2-1build1
ii  libxss-dev        1:1.2.3-1build2
ii  libxt-dev         1:1.2.1-1
ii  libxv-dev         2:1.0.11-1build2
ii  libxxf86vm-dev    1:1.1.4-1build3

libsdl2-dev recommends no packages.

libsdl2-dev suggests no packages.

-- no debconf information



More information about the Pkg-sdl-maintainers mailing list