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