Activity log for bug #1772471

Date Who What changed Old value New value Message
2018-05-21 18:24:55 Ryan C. Gordon bug added bug
2018-05-21 18:24:55 Ryan C. Gordon attachment added The upstream patch, attached here for completeness. https://bugs.launchpad.net/bugs/1772471/+attachment/5142493/+files/SDL2-dynapi-symbol-resolution-fix.diff
2018-05-22 07:26:07 Gianfranco Costamagna nominated for series Ubuntu Bionic
2018-05-22 07:26:07 Gianfranco Costamagna bug task added libsdl2 (Ubuntu Bionic)
2018-05-22 07:26:07 Gianfranco Costamagna nominated for series Ubuntu Artful
2018-05-22 07:26:07 Gianfranco Costamagna bug task added libsdl2 (Ubuntu Artful)
2018-05-22 07:26:15 Gianfranco Costamagna libsdl2 (Ubuntu): status New Fix Committed
2018-05-22 16:15:37 Gianfranco Costamagna summary Bug in SDL2 blocks Unity-based games [SRU] Bug in SDL2 blocks Unity-based games
2018-05-22 16:40:18 Gianfranco Costamagna description ("Unity" here refers to the video game engine at https://unity3d.com/ and not Ubuntu's Unity project.) There is a bug in SDL2 that causes Unity-based games to fail in certain configurations. The basic idea is that Unity is statically linked to SDL, and then a plugin also links dynamically to SDL, and the dynamically loaded version accidentally resolves an important symbol to the address in the statically linked version, causing chaos. You can see this happen in the game Firewatch ( https://store.steampowered.com/app/383870/Firewatch/ ). This bug will trigger if the game dynamically loads an SDL2 version > 2.0.5. Steam ships their own copy of SDL in their "steam runtime," but will favor a system-installed version if available, which means that Ubuntu is probably having this problem for users that have the libsdl2 package installed since release 17.10, which is the first to ship SDL 2.0.6. Debian Stretch is still on 2.0.5 and probably not triggering this bug quite yet. The upstream fix is simple, and should apply cleanly to any SDL version that is 2.0.3 or later. https://hg.libsdl.org/SDL/rev/7babfecee045 I _think_ all Unity titles are x86-64 binaries, so this doesn't affect every architecture, but the SDL2 patch is correct for any target worth pushing an update for. This fix will be in SDL 2.0.9, but we don't have a timetable for that release yet, so I thought it might be worth encouraging distros to apply that one patch to their current SDL2 packages in the meantime, to make sure Firewatch and other games work out of the box. Steps to Reproduce: 1. Install x86-64 Ubuntu 17.10 or later 2. Install Ubuntu's libsdl2 package. 3. Install Steam ( https://store.steampowered.com/ or maybe a distro-specific package ) 3. Install Firewatch via Steam (if you need a copy, we can supply it) 4. Launch Firewatch Actual Results: Game launches, possibly makes an OpenGL window without rendering anything into it, and then either crashes or hangs indefinitely. Be prepared to kill the process if necessary. Expected Results: Game launches and gets to its main menu. One can also bypass this bug with the environment variable SDL_DYNAMIC_API=/path/to/where/ubuntu/installed/libSDL2-2.0.so.0, but we'd encourage you to just update the SDL package with the patch. Thanks for your time! --ryan. [ Impact ] * people using unity3d and steam games, with bundled sdl2 libraries [ Regression Potential ] * Low, this is part of the upcoming new release, and the request comes from upstream [ Steps to reproduce ] ("Unity" here refers to the video game engine at https://unity3d.com/ and not Ubuntu's Unity project.) There is a bug in SDL2 that causes Unity-based games to fail in certain configurations. The basic idea is that Unity is statically linked to SDL, and then a plugin also links dynamically to SDL, and the dynamically loaded version accidentally resolves an important symbol to the address in the statically linked version, causing chaos. You can see this happen in the game Firewatch ( https://store.steampowered.com/app/383870/Firewatch/ ). This bug will trigger if the game dynamically loads an SDL2 version > 2.0.5. Steam ships their own copy of SDL in their "steam runtime," but will favor a system-installed version if available, which means that Ubuntu is probably having this problem for users that have the libsdl2 package installed since release 17.10, which is the first to ship SDL 2.0.6. Debian Stretch is still on 2.0.5 and probably not triggering this bug quite yet. The upstream fix is simple, and should apply cleanly to any SDL version that is 2.0.3 or later. https://hg.libsdl.org/SDL/rev/7babfecee045 I _think_ all Unity titles are x86-64 binaries, so this doesn't affect every architecture, but the SDL2 patch is correct for any target worth pushing an update for. This fix will be in SDL 2.0.9, but we don't have a timetable for that release yet, so I thought it might be worth encouraging distros to apply that one patch to their current SDL2 packages in the meantime, to make sure Firewatch and other games work out of the box. Steps to Reproduce: 1. Install x86-64 Ubuntu 17.10 or later 2. Install Ubuntu's libsdl2 package. 3. Install Steam ( https://store.steampowered.com/ or maybe a distro-specific package ) 3. Install Firewatch via Steam (if you need a copy, we can supply it) 4. Launch Firewatch Actual Results: Game launches, possibly makes an OpenGL window without rendering anything into it, and then either crashes or hangs indefinitely. Be prepared to kill the process if necessary. Expected Results: Game launches and gets to its main menu. One can also bypass this bug with the environment variable SDL_DYNAMIC_API=/path/to/where/ubuntu/installed/libSDL2-2.0.so.0, but we'd encourage you to just update the SDL package with the patch. Thanks for your time! --ryan.
2018-05-22 16:40:21 Gianfranco Costamagna libsdl2 (Ubuntu Artful): status New In Progress
2018-05-22 16:40:24 Gianfranco Costamagna libsdl2 (Ubuntu Bionic): status New In Progress
2018-05-22 16:40:27 Gianfranco Costamagna bug added subscriber LocutusOfBorg
2018-05-22 16:40:30 Gianfranco Costamagna libsdl2 (Ubuntu Bionic): assignee LocutusOfBorg (costamagnagianfranco)
2018-05-22 16:40:32 Gianfranco Costamagna libsdl2 (Ubuntu Artful): assignee LocutusOfBorg (costamagnagianfranco)
2018-05-22 16:50:56 Launchpad Janitor libsdl2 (Ubuntu): status Fix Committed Fix Released
2018-05-24 10:29:42 Łukasz Zemczak libsdl2 (Ubuntu Bionic): status In Progress Fix Committed
2018-05-24 10:29:43 Łukasz Zemczak bug added subscriber Ubuntu Stable Release Updates Team
2018-05-24 10:29:45 Łukasz Zemczak bug added subscriber SRU Verification
2018-05-24 10:29:48 Łukasz Zemczak tags verification-needed verification-needed-bionic
2018-05-24 10:31:19 Łukasz Zemczak libsdl2 (Ubuntu Artful): status In Progress Fix Committed
2018-05-24 10:31:24 Łukasz Zemczak tags verification-needed verification-needed-bionic verification-needed verification-needed-artful verification-needed-bionic
2018-06-22 13:07:23 Gianfranco Costamagna tags verification-needed verification-needed-artful verification-needed-bionic verification-done verification-done-artful verification-needed-bionic
2018-06-27 06:27:06 Gianfranco Costamagna tags verification-done verification-done-artful verification-needed-bionic verification-done verification-done-artful verification-done-bionic
2018-07-03 06:58:44 Launchpad Janitor libsdl2 (Ubuntu Bionic): status Fix Committed Fix Released
2018-07-03 06:58:48 Steve Langasek removed subscriber Ubuntu Stable Release Updates Team
2024-07-31 19:16:09 Brian Murray libsdl2 (Ubuntu Artful): status Fix Committed Won't Fix