SHA256
1
0
forked from pool/SDL2

- Restore sdl2-symvers.patch to full symbol list to facilitate application installation with Leap 15.x's SDL2.

OBS-URL: https://build.opensuse.org/package/show/games/SDL2?expand=0&rev=123
This commit is contained in:
Jan Engelhardt 2022-04-29 20:59:08 +00:00 committed by Git OBS Bridge
parent 665f022c68
commit 635e4a18be
2 changed files with 152 additions and 11 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Apr 29 20:53:29 UTC 2022 - Jan Engelhardt <jengelh@inai.de>
- Restore sdl2-symvers.patch to full symbol list to facilitate
application installation with Leap 15.x's SDL2.
-------------------------------------------------------------------
Mon Apr 25 21:54:48 UTC 2022 - Jan Engelhardt <jengelh@inai.de>

View File

@ -3,21 +3,27 @@ Date: 2018-01-10 23:56:12.245827883 +0100
Should-this-be-upstream: yes
Is-it-upstream: not submitted yet
Functions were added over time, but neither was the SONAME changed
nor was a symvers file made. As a result, rpm is unable to
prevent a too-modern program being ran against a too-old SDL library.
It's bad user experience when symbols are resolved lazily, as the
program may crash.
The SDL project adds new functions over time, but they completely
fail to do the required ABI upkeep - which involves either bumping
the SO number or adding symvers. As a result of their lack of ABI
upkeep, the ELF system has no way to prohibit a too-modern program
being ran against a too-old SDL library, and that leads to bad user
experience, because symbols are resolved lazily and can crash the
program in the middle.
Also note: Leap 15.x has this patch too (in shorter version), so we
need to keep all the individual symvers elements even for games/SDL2.
---
Makefile.in | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Makefile.in | 2
sdl2.sym | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 125 insertions(+), 1 deletion(-)
Index: SDL2-2.0.22/Makefile.in
Index: SDL2-2.0.16/Makefile.in
===================================================================
--- SDL2-2.0.22.orig/Makefile.in
+++ SDL2-2.0.22/Makefile.in
@@ -134,7 +134,7 @@ LT_AGE = @LT_AGE@
--- SDL2-2.0.16.orig/Makefile.in
+++ SDL2-2.0.16/Makefile.in
@@ -132,7 +132,7 @@ LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
@ -26,3 +32,132 @@ Index: SDL2-2.0.22/Makefile.in
all: $(srcdir)/configure Makefile $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
Index: SDL2-2.0.16/sdl2.sym
===================================================================
--- /dev/null
+++ SDL2-2.0.16/sdl2.sym
@@ -0,0 +1,124 @@
+SUSE_2.0.5 {
+global:
+ SDL_DequeueAudio;
+ SDL_GetHintBoolean;
+ SDL_RenderSetIntegerScale;
+ SDL_CreateRGBSurfaceWithFormat;
+ SDL_CreateRGBSurfaceWithFormatFrom;
+ SDL_GetDisplayUsableBounds;
+ SDL_GetWindowBordersSize;
+ SDL_SetWindowResizable;
+ SDL_SetWindowOpacity;
+ SDL_SetWindowModalFor;
+};
+SUSE_2.0.6 {
+global:
+ SDL_Vulkan_LoadLibrary;
+ SDL_Vulkan_GetVkGetInstanceProcAddr;
+ SDL_Vulkan_GetInstanceExtensions;
+ SDL_Vulkan_CreateSurface;
+ SDL_Vulkan_GetDrawableSize;
+ SDL_Vulkan_UnloadLibrary;
+ SDL_ComposeCustomBlendMode;
+ SDL_HasNEON;
+ SDL_JoystickGetDeviceVendor;
+ SDL_JoystickGetDeviceProduct;
+ SDL_JoystickGetDeviceProductVersion;
+ SDL_JoystickGetDeviceType;
+ SDL_JoystickGetDeviceInstanceID;
+ SDL_JoystickGetVendor;
+ SDL_JoystickGetProduct;
+ SDL_JoystickGetProductVersion;
+ SDL_JoystickGetType;
+ SDL_JoystickGetAxisInitialState;
+ SDL_GameControllerGetVendor;
+ SDL_GameControllerGetProduct;
+ SDL_GameControllerGetProductVersion;
+ SDL_GameControllerNumMappings;
+ SDL_GameControllerMappingForIndex;
+ SDL_LoadFile;
+ SDL_LoadFile_RW;
+ SDL_DuplicateSurface;
+} SUSE_2.0.5;
+SUSE_2.0.7 {
+global:
+ SDL_NewAudioStream;
+ SDL_AudioStreamPut;
+ SDL_AudioStreamGet;
+ SDL_AudioStreamAvailable;
+ SDL_AudioStreamFlush;
+ SDL_AudioStreamClear;
+ SDL_FreeAudioStream;
+ SDL_GetMemoryFunctions;
+ SDL_SetMemoryFunctions;
+ SDL_GetNumAllocations;
+ SDL_LockJoystick;
+ SDL_UnlockJoystick;
+ SDL_SetEventFilter;
+ SDL_GetEventFilter;
+ SDL_AddEventWatch;
+ SDL_DelEventWatch;
+} SUSE_2.0.6;
+SUSE_2.0.8 {
+global:
+ SDL_fmod;
+ SDL_log10;
+ SDL_SetYUVConversionMode;
+ SDL_GetYUVConversionMode;
+} SUSE_2.0.7;
+SUSE_2.0.9 {
+global:
+ SDL_CreateThreadWithStackSize;
+ SDL_GameControllerGetPlayerIndex;
+ SDL_GameControllerMappingForDeviceIndex;
+ SDL_GameControllerRumble;
+ SDL_GetDisplayOrientation;
+ SDL_HasAVX512F;
+ SDL_HasColorKey;
+ SDL_IsTablet;
+ SDL_JoystickGetDevicePlayerIndex;
+ SDL_JoystickGetPlayerIndex;
+ SDL_JoystickRumble;
+ SDL_LinuxSetThreadPriority;
+ SDL_NumSensors;
+ SDL_SensorClose;
+ SDL_SensorFromInstanceID;
+ SDL_SensorGetData;
+ SDL_SensorGetDeviceInstanceID;
+ SDL_SensorGetDeviceName;
+ SDL_SensorGetDeviceNonPortableType;
+ SDL_SensorGetDeviceType;
+ SDL_SensorGetInstanceID;
+ SDL_SensorGetName;
+ SDL_SensorGetNonPortableType;
+ SDL_SensorGetType;
+ SDL_SensorOpen;
+ SDL_SensorUpdate;
+ SDL_exp;
+ SDL_expf;
+ SDL_wcsdup;
+} SUSE_2.0.8;
+SUSE_2.0.10 {
+global:
+ SDL_GetTouchDeviceType;
+ SDL_RWclose;
+ SDL_RWread;
+ SDL_RWseek;
+ SDL_RWsize;
+ SDL_RWtell;
+ SDL_RWwrite;
+ SDL_RenderCopyExF;
+ SDL_RenderCopyF;
+ SDL_RenderDrawLineF;
+ SDL_RenderDrawLinesF;
+ SDL_RenderDrawPointF;
+ SDL_RenderDrawPointsF;
+ SDL_RenderDrawRectF;
+ SDL_RenderDrawRectsF;
+ SDL_RenderFillRectF;
+ SDL_RenderFillRectsF;
+ SDL_RenderFlush;
+ SDL_SIMDAlloc;
+ SDL_SIMDFree;
+ SDL_SIMDGetAlignment;
+} SUSE_2.0.9;