Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package sdl2-compat for openSUSE:Factory checked in at 2026-01-02 14:27:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sdl2-compat (Old) and /work/SRC/openSUSE:Factory/.sdl2-compat.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sdl2-compat" Fri Jan 2 14:27:16 2026 rev:7 rq:1325031 version:2.32.62 Changes: -------- --- /work/SRC/openSUSE:Factory/sdl2-compat/sdl2-compat.changes 2025-12-05 16:51:17.754990546 +0100 +++ /work/SRC/openSUSE:Factory/.sdl2-compat.new.1928/sdl2-compat.changes 2026-01-02 14:27:22.641615971 +0100 @@ -1,0 +2,6 @@ +Thu Jan 1 17:03:15 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 2.32.62 + * Fixed crash if HIDAPI strings are not available + +------------------------------------------------------------------- Old: ---- sdl2-compat-2.32.60.tar.gz sdl2-compat-2.32.60.tar.gz.sig New: ---- sdl2-compat-2.32.62.tar.gz sdl2-compat-2.32.62.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sdl2-compat.spec ++++++ --- /var/tmp/diff_new_pack.r7vGRG/_old 2026-01-02 14:27:23.785663311 +0100 +++ /var/tmp/diff_new_pack.r7vGRG/_new 2026-01-02 14:27:23.785663311 +0100 @@ -1,7 +1,7 @@ # # spec file for package sdl2-compat # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define lname libSDL2-2_0-0 %global _lto_cflags %_lto_cflags -ffat-lto-objects Name: sdl2-compat -Version: 2.32.60 +Version: 2.32.62 Release: 0 Summary: SDL-2.0 Compatibility Layer for Simple DirectMedia Layer 3.0 License: Zlib ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.r7vGRG/_old 2026-01-02 14:27:23.821664801 +0100 +++ /var/tmp/diff_new_pack.r7vGRG/_new 2026-01-02 14:27:23.821664801 +0100 @@ -1,5 +1,5 @@ -mtime: 1764830424 -commit: 4660bd055f46c0d4a9fcfa09d449d8e626a6659028b1aa86fef06252a66c1676 +mtime: 1767289416 +commit: 2d083ec1b67ff15f6b009e2a16e37faa3341aa06be0a18368f7c7d57c811b5fd url: https://src.opensuse.org/jengelh/sdl2-compat revision: master ++++++ sdl2-compat-2.32.60.tar.gz -> sdl2-compat-2.32.62.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/.git-hash new/sdl2-compat-2.32.62/.git-hash --- old/sdl2-compat-2.32.60/.git-hash 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/.git-hash 2026-01-01 03:50:02.000000000 +0100 @@ -1 +1 @@ -9831c2e1fcf0a115a351339dfa29d7f32e202f36 +0846ba29413339352e2384b9a56ea04130039a18 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/CMakeLists.txt new/sdl2-compat-2.32.62/CMakeLists.txt --- old/sdl2-compat-2.32.60/CMakeLists.txt 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/CMakeLists.txt 2026-01-01 03:50:02.000000000 +0100 @@ -3,7 +3,7 @@ # cmake -DSDL3_INCLUDE_DIRS=/opt/SDL3/include [other stuff ....] cmake_minimum_required(VERSION 3.0...4.1) -project(sdl2_compat VERSION 2.32.60 LANGUAGES C) +project(sdl2_compat VERSION 2.32.62 LANGUAGES C) if(POLICY CMP0074) # CMP0074: find_package() uses <PackageName>_ROOT variables. @@ -323,6 +323,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") string(STRIP "${CMAKE_C_FLAGS}" CMAKE_C_FLAGS) +set(SDL2COMPAT_DISABLE_X11 OFF) if(UNIX AND NOT APPLE) target_compile_definitions(SDL2 PRIVATE "_REENTRANT") target_link_libraries(SDL2 PRIVATE ${CMAKE_DL_LIBS}) @@ -331,10 +332,11 @@ target_compile_definitions(SDL2 PRIVATE SDL2COMPAT_HAVE_X11) include_directories(${X11_INCLUDE_DIR}) else() - target_compile_definitions(SDL2 PUBLIC SDL2COMPAT_DISABLE_X11) + set(SDL2COMPAT_DISABLE_X11 ON) message(STATUS "X11 support disabled") endif() endif() +configure_file(include/SDL2/SDL_config_unix.h.cmake include/SDL2/SDL_config_unix.h) if(ANDROID) target_link_libraries(SDL2 PRIVATE log) @@ -554,7 +556,7 @@ DESTINATION "${SDL2COMPAT_INSTALL_CMAKEDIR}" ) - file(GLOB SDL2_INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/SDL2/*.h) + file(GLOB SDL2_INCLUDE_FILES ${PROJECT_SOURCE_DIR}/include/SDL2/*.h "${PROJECT_BINARY_DIR}/include/SDL2/SDL_config_unix.h") set(SDL2_COPIED_INCLUDE_FILES) foreach(_hdr IN LISTS SDL2_INCLUDE_FILES) if(_hdr MATCHES ".*(SDL_config).*") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/README.md new/sdl2-compat-2.32.62/README.md --- old/sdl2-compat-2.32.60/README.md 2024-09-29 13:11:37.000000000 +0200 +++ new/sdl2-compat-2.32.62/README.md 2025-12-17 20:01:20.000000000 +0100 @@ -179,3 +179,21 @@ ``` SDL_VIDEODRIVER=x11 ``` + +Please report this to the game developer as a bug. +Game developers who know that their game engine requires X11 on Linux can +arrange for this to happen by including code similar to this at the +beginning of `main()`: +``` +#ifdef SDL_VIDEO_DRIVER_X11 +SDL_SetHintWithPriority(SDL_HINT_VIDEODRIVER, "x11", SDL_HINT_OVERRIDE); +#endif +``` + +This is backward-compatible with "classic" SDL 2 version 2.0.12 or later. +If older versions need to be supported, +set the `SDL_VIDEODRIVER` environment variable instead. + +For unmaintained games where applying this code change is not feasible, +either a wrapper script can set the `SDL_VIDEODRIVER` environment variable, +or the game can be added to the `quirks` array in sdl2-compat. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/REVISION.txt new/sdl2-compat-2.32.62/REVISION.txt --- old/sdl2-compat-2.32.60/REVISION.txt 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/REVISION.txt 2026-01-01 03:50:02.000000000 +0100 @@ -1 +1 @@ -release-2.32.60-0-g9831c2e +release-2.32.62-0-g0846ba2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/cmake/sdlplatform.cmake new/sdl2-compat-2.32.62/cmake/sdlplatform.cmake --- old/sdl2-compat-2.32.60/cmake/sdlplatform.cmake 2023-08-08 22:34:32.000000000 +0200 +++ new/sdl2-compat-2.32.62/cmake/sdlplatform.cmake 2025-12-19 12:28:02.000000000 +0100 @@ -21,6 +21,8 @@ set(SDL_CMAKE_PLATFORM n3ds) elseif(PS2) set(SDL_CMAKE_PLATFORM ps2) + elseif(RISCOS) + set(SDL_CMAKE_PLATFORM RISCOS) elseif(VITA) set(SDL_CMAKE_PLATFORM Vita) elseif(CMAKE_SYSTEM_NAME MATCHES ".*Linux") @@ -31,8 +33,9 @@ set(SDL_CMAKE_PLATFORM NetBSD) elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*") set(SDL_CMAKE_PLATFORM OpenBSD) - elseif(CMAKE_SYSTEM_NAME MATCHES ".*GNU.*") - set(SDL_CMAKE_PLATFORM GNU) + elseif(CMAKE_SYSTEM_NAME STREQUAL "GNU") + # GNU/Hurd must be checked AFTER RISCOS + set(SDL_CMAKE_PLATFORM Hurd) elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*") set(SDL_CMAKE_PLATFORM BSDi) elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/include/SDL2/SDL_config_unix.h new/sdl2-compat-2.32.62/include/SDL2/SDL_config_unix.h --- old/sdl2-compat-2.32.60/include/SDL2/SDL_config_unix.h 2025-10-12 20:53:05.000000000 +0200 +++ new/sdl2-compat-2.32.62/include/SDL2/SDL_config_unix.h 1970-01-01 01:00:00.000000000 +0100 @@ -1,271 +0,0 @@ -/* - Simple DirectMedia Layer - Copyright (C) 1997-2025 Sam Lantinga <[email protected]> - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -#ifndef SDL_config_unix_h_ -#define SDL_config_unix_h_ - -#include "SDL_platform.h" - -/* A harmless way to get __GLIBC__ defined on glibc systems */ -#include <limits.h> - -/* C datatypes */ -#if defined(__SIZEOF_POINTER__) -#define SIZEOF_VOIDP (__SIZEOF_POINTER__) -#elif defined(__LP64__) || defined(_LP64) || defined(_WIN64) -#define SIZEOF_VOIDP 8 -#else -#define SIZEOF_VOIDP 4 -#endif - -#if defined(__GNUC__) || defined(__clang__) -#define HAVE_GCC_ATOMICS 1 -#endif - -/* Assume that on Unix, it's conventional to build with a libc dependency */ -#define HAVE_LIBC 1 - -/* Assume that any reasonable Unix platform has Standard C headers */ -#define STDC_HEADERS 1 -#define HAVE_CTYPE_H 1 -#define HAVE_FLOAT_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_LIMITS_H 1 -#define HAVE_MATH_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_STDARG_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_STDIO_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STRING_H 1 -#define HAVE_WCHAR_H 1 - -/* Assume that any reasonable Unix platform has Standard C functions */ -#define HAVE_ABS 1 -#define HAVE_ACOS 1 -#define HAVE_ACOSF 1 -#define HAVE_ASIN 1 -#define HAVE_ASINF 1 -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 -#define HAVE_ATAN2F 1 -#define HAVE_ATANF 1 -#define HAVE_ATOF 1 -#define HAVE_ATOI 1 -#define HAVE_BSEARCH 1 -#define HAVE_CALLOC 1 -#define HAVE_CEIL 1 -#define HAVE_CEILF 1 -#define HAVE_COPYSIGN 1 -#define HAVE_COPYSIGNF 1 -#define HAVE_COS 1 -#define HAVE_COSF 1 -#define HAVE_EXP 1 -#define HAVE_EXPF 1 -#define HAVE_FABS 1 -#define HAVE_FABSF 1 -#define HAVE_FLOOR 1 -#define HAVE_FLOORF 1 -#define HAVE_FMOD 1 -#define HAVE_FMODF 1 -#define HAVE_FREE 1 -#define HAVE_GETENV 1 -#define HAVE_LOG 1 -#define HAVE_LOG10 1 -#define HAVE_LOG10F 1 -#define HAVE_LOGF 1 -#define HAVE_LROUND 1 -#define HAVE_LROUNDF 1 -#define HAVE_MALLOC 1 -#define HAVE_MEMCMP 1 -#define HAVE_MEMCPY 1 -#define HAVE_MEMMOVE 1 -#define HAVE_MEMSET 1 -#define HAVE_POW 1 -#define HAVE_POWF 1 -#define HAVE_QSORT 1 -#define HAVE_REALLOC 1 -#define HAVE_ROUND 1 -#define HAVE_ROUNDF 1 -#define HAVE_SCALBN 1 -#define HAVE_SCALBNF 1 -#define HAVE_SETJMP 1 -#define HAVE_SIN 1 -#define HAVE_SINF 1 -#define HAVE_SQRT 1 -#define HAVE_SQRTF 1 -#define HAVE_STRCHR 1 -#define HAVE_STRCMP 1 -#define HAVE_STRLEN 1 -#define HAVE_STRNCMP 1 -#define HAVE_STRRCHR 1 -#define HAVE_STRSTR 1 -#define HAVE_STRTOD 1 -#define HAVE_STRTOL 1 -#define HAVE_STRTOLL 1 -#define HAVE_STRTOUL 1 -#define HAVE_STRTOULL 1 -#define HAVE_TAN 1 -#define HAVE_TANF 1 -#define HAVE_TRUNC 1 -#define HAVE_TRUNCF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_VSSCANF 1 -#define HAVE_WCSCMP 1 -#define HAVE_WCSLEN 1 -#define HAVE_WCSNCMP 1 -#define HAVE_WCSSTR 1 - -/* Standard C provides this */ -#define HAVE_M_PI /**/ - -/* Assume that any reasonable Unix platform has POSIX headers */ -#define HAVE_ICONV_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_SYS_TYPES_H 1 - -/* Assume that any reasonable Unix platform has POSIX functions */ -#define HAVE_CLOCK_GETTIME 1 -#define HAVE_DLOPEN 1 -#define HAVE_FSEEKO 1 -#define HAVE_ICONV 1 -#define HAVE_MPROTECT 1 -#define HAVE_NANOSLEEP 1 -#define HAVE_POLL 1 -#define HAVE_POSIX_FALLOCATE 1 -#define HAVE_PUTENV 1 -#define HAVE_SEM_TIMEDWAIT 1 -#define HAVE_SETENV 1 -#define HAVE_SIGACTION 1 -#define HAVE_STRCASECMP 1 -#define HAVE_STRNCASECMP 1 -#define HAVE_STRTOK_R 1 -#define HAVE_SYSCONF 1 -#define HAVE_UNSETENV 1 -#define HAVE_WCSCASECMP 1 -#define HAVE_WCSDUP 1 -#define HAVE__EXIT 1 - -/* Specified by POSIX */ -#define HAVE_O_CLOEXEC 1 - -/* Non-standardized headers, but we assume they exist anyway - * (please report a bug if your Unix platform doesn't have these) */ -#define HAVE_ALLOCA_H 1 -#define HAVE_MALLOC_H 1 -#define HAVE_MEMORY_H 1 - -/* Non-standardized functions, but we assume they exist anyway - * (please report a bug if your Unix platform doesn't have these) */ -#define HAVE_ALLOCA 1 -#define HAVE_BCOPY 1 /* required by POSIX until 2008 */ -#define HAVE_INDEX 1 /* required by POSIX until 2008 */ -#define HAVE_RINDEX 1 /* required by POSIX until 2008 */ - -/* GNU extensions, known to be provided by glibc, probably not provided - * by other libc implementations */ -#if defined(__GLIBC__) -#define HAVE_GETAUXVAL 1 -#define HAVE_STRCASESTR 1 -#define HAVE_PTHREAD_SETNAME_NP 1 -#endif - -#if defined(__GLIBC__) && \ - (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 27)) -#define HAVE_MEMFD_CREATE 1 -#endif - -#if defined(__LINUX__) -#define HAVE_LINUX_INPUT_H 1 -#define HAVE_SYS_INOTIFY_H 1 -#define HAVE_INOTIFY_INIT 1 -#define HAVE_INOTIFY_INIT1 1 -#endif - -#if defined(__LINUX__) -#define HAVE_DBUS_DBUS_H 1 -#define HAVE_LIBUDEV_H 1 -#endif - -#if defined(__GLIBC__) && defined(__LINUX__) -#define HAVE_FOPEN64 1 -#define HAVE_FSEEKO64 1 -#endif - -#if defined(__GLIBC__) && defined(__LINUX__) && (defined(__i386__) || defined(__x86_64__)) -#define HAVE_IMMINTRIN_H 1 -#endif - -/* In practice these should be available on any POSIX platform */ -#define DYNAPI_NEEDS_DLOPEN 1 -#define SDL_FILESYSTEM_UNIX 1 -#define SDL_LOADSO_DLOPEN 1 -#define SDL_THREAD_PTHREAD 1 -#define SDL_TIMER_UNIX 1 -/* Allow building without X11 support */ -#ifndef SDL2COMPAT_DISABLE_X11 -#define SDL_VIDEO_DRIVER_X11 1 -#endif - -#if defined(__LINUX__) -/* glvis wants this */ -#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 -#endif - -#if defined(__LINUX__) -/* Assume SDL on Linux most likely enables these */ -#define HAVE_LIBDECOR_H 1 -#define SDL_VIDEO_DRIVER_KMSDRM 1 -#define SDL_VIDEO_DRIVER_WAYLAND 1 -#endif - -#if defined(__LINUX__) -/* These are not strictly guaranteed, but probably fine to assume */ -#define SDL_AUDIO_DRIVER_ALSA 1 -#define SDL_AUDIO_DRIVER_OSS 1 -#define SDL_AUDIO_DRIVER_PULSEAUDIO 1 -#endif - -#if defined(__LINUX__) -#define SDL_INPUT_LINUXEV 1 -#define SDL_INPUT_LINUXKD 1 -#define SDL_JOYSTICK_LINUX 1 -#define SDL_HAPTIC_LINUX 1 -#define SDL_POWER_LINUX 1 -#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 -#define SDL_UDEV_DYNAMIC "libudev.so.1" -#define SDL_USE_IME 1 -#endif - -/* Enable OpenGL support */ -#define SDL_VIDEO_OPENGL 1 -#define SDL_VIDEO_OPENGL_ES 1 -#define SDL_VIDEO_OPENGL_GLX 1 -#if defined(__LINUX__) -#define SDL_VIDEO_OPENGL_EGL 1 -#endif - -/* Enable Vulkan support */ -#if defined(__LINUX__) -#define SDL_VIDEO_VULKAN 1 -#endif - -#endif /* SDL_config_unix_h_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/include/SDL2/SDL_config_unix.h.cmake new/sdl2-compat-2.32.62/include/SDL2/SDL_config_unix.h.cmake --- old/sdl2-compat-2.32.60/include/SDL2/SDL_config_unix.h.cmake 1970-01-01 01:00:00.000000000 +0100 +++ new/sdl2-compat-2.32.62/include/SDL2/SDL_config_unix.h.cmake 2025-12-29 12:21:39.000000000 +0100 @@ -0,0 +1,272 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga <[email protected]> + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef SDL_config_unix_h_ +#define SDL_config_unix_h_ + +#include "SDL_platform.h" + +/* A harmless way to get __GLIBC__ defined on glibc systems */ +#include <limits.h> + +/* C datatypes */ +#if defined(__SIZEOF_POINTER__) +#define SIZEOF_VOIDP (__SIZEOF_POINTER__) +#elif defined(__LP64__) || defined(_LP64) || defined(_WIN64) +#define SIZEOF_VOIDP 8 +#else +#define SIZEOF_VOIDP 4 +#endif + +#if defined(__GNUC__) || defined(__clang__) +#define HAVE_GCC_ATOMICS 1 +#endif + +/* Assume that on Unix, it's conventional to build with a libc dependency */ +#define HAVE_LIBC 1 + +/* Assume that any reasonable Unix platform has Standard C headers */ +#define STDC_HEADERS 1 +#define HAVE_CTYPE_H 1 +#define HAVE_FLOAT_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +#define HAVE_MATH_H 1 +#define HAVE_SIGNAL_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_WCHAR_H 1 + +/* Assume that any reasonable Unix platform has Standard C functions */ +#define HAVE_ABS 1 +#define HAVE_ACOS 1 +#define HAVE_ACOSF 1 +#define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 +#define HAVE_ATANF 1 +#define HAVE_ATOF 1 +#define HAVE_ATOI 1 +#define HAVE_BSEARCH 1 +#define HAVE_CALLOC 1 +#define HAVE_CEIL 1 +#define HAVE_CEILF 1 +#define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 +#define HAVE_COS 1 +#define HAVE_COSF 1 +#define HAVE_EXP 1 +#define HAVE_EXPF 1 +#define HAVE_FABS 1 +#define HAVE_FABSF 1 +#define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 +#define HAVE_FREE 1 +#define HAVE_GETENV 1 +#define HAVE_LOG 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 +#define HAVE_LOGF 1 +#define HAVE_LROUND 1 +#define HAVE_LROUNDF 1 +#define HAVE_MALLOC 1 +#define HAVE_MEMCMP 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MEMSET 1 +#define HAVE_POW 1 +#define HAVE_POWF 1 +#define HAVE_QSORT 1 +#define HAVE_REALLOC 1 +#define HAVE_ROUND 1 +#define HAVE_ROUNDF 1 +#define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 +#define HAVE_SETJMP 1 +#define HAVE_SIN 1 +#define HAVE_SINF 1 +#define HAVE_SQRT 1 +#define HAVE_SQRTF 1 +#define HAVE_STRCHR 1 +#define HAVE_STRCMP 1 +#define HAVE_STRLEN 1 +#define HAVE_STRNCMP 1 +#define HAVE_STRRCHR 1 +#define HAVE_STRSTR 1 +#define HAVE_STRTOD 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOULL 1 +#define HAVE_TAN 1 +#define HAVE_TANF 1 +#define HAVE_TRUNC 1 +#define HAVE_TRUNCF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_VSSCANF 1 +#define HAVE_WCSCMP 1 +#define HAVE_WCSLEN 1 +#define HAVE_WCSNCMP 1 +#define HAVE_WCSSTR 1 + +/* Standard C provides this */ +#define HAVE_M_PI /**/ + +/* Assume that any reasonable Unix platform has POSIX headers */ +#define HAVE_ICONV_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_TYPES_H 1 + +/* Assume that any reasonable Unix platform has POSIX functions */ +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_DLOPEN 1 +#define HAVE_FSEEKO 1 +#define HAVE_ICONV 1 +#define HAVE_MPROTECT 1 +#define HAVE_NANOSLEEP 1 +#define HAVE_POLL 1 +#define HAVE_POSIX_FALLOCATE 1 +#define HAVE_PUTENV 1 +#define HAVE_SEM_TIMEDWAIT 1 +#define HAVE_SETENV 1 +#define HAVE_SIGACTION 1 +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRTOK_R 1 +#define HAVE_SYSCONF 1 +#define HAVE_UNSETENV 1 +#define HAVE_WCSCASECMP 1 +#define HAVE_WCSDUP 1 +#define HAVE__EXIT 1 + +/* Specified by POSIX */ +#define HAVE_O_CLOEXEC 1 + +/* Non-standardized headers, but we assume they exist anyway + * (please report a bug if your Unix platform doesn't have these) */ +#define HAVE_ALLOCA_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 + +/* Non-standardized functions, but we assume they exist anyway + * (please report a bug if your Unix platform doesn't have these) */ +#define HAVE_ALLOCA 1 +#define HAVE_BCOPY 1 /* required by POSIX until 2008 */ +#define HAVE_INDEX 1 /* required by POSIX until 2008 */ +#define HAVE_RINDEX 1 /* required by POSIX until 2008 */ + +/* GNU extensions, known to be provided by glibc, probably not provided + * by other libc implementations */ +#if defined(__GLIBC__) +#define HAVE_GETAUXVAL 1 +#define HAVE_STRCASESTR 1 +#define HAVE_PTHREAD_SETNAME_NP 1 +#endif + +#if defined(__GLIBC__) && \ + (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 27)) +#define HAVE_MEMFD_CREATE 1 +#endif + +#if defined(__LINUX__) +#define HAVE_LINUX_INPUT_H 1 +#define HAVE_SYS_INOTIFY_H 1 +#define HAVE_INOTIFY_INIT 1 +#define HAVE_INOTIFY_INIT1 1 +#endif + +#if defined(__LINUX__) +#define HAVE_DBUS_DBUS_H 1 +#define HAVE_LIBUDEV_H 1 +#endif + +#if defined(__GLIBC__) && defined(__LINUX__) +#define HAVE_FOPEN64 1 +#define HAVE_FSEEKO64 1 +#endif + +#if defined(__GLIBC__) && defined(__LINUX__) && (defined(__i386__) || defined(__x86_64__)) +#define HAVE_IMMINTRIN_H 1 +#endif + +/* In practice these should be available on any POSIX platform */ +#define DYNAPI_NEEDS_DLOPEN 1 +#define SDL_FILESYSTEM_UNIX 1 +#define SDL_LOADSO_DLOPEN 1 +#define SDL_THREAD_PTHREAD 1 +#define SDL_TIMER_UNIX 1 +/* Allow building without X11 support */ +#cmakedefine SDL2COMPAT_DISABLE_X11 +#ifndef SDL2COMPAT_DISABLE_X11 +#define SDL_VIDEO_DRIVER_X11 1 +#endif + +#if defined(__LINUX__) +/* glvis wants this */ +#define SDL_VIDEO_DRIVER_X11_XINPUT2 1 +#endif + +#if defined(__LINUX__) +/* Assume SDL on Linux most likely enables these */ +#define HAVE_LIBDECOR_H 1 +#define SDL_VIDEO_DRIVER_KMSDRM 1 +#define SDL_VIDEO_DRIVER_WAYLAND 1 +#endif + +#if defined(__LINUX__) +/* These are not strictly guaranteed, but probably fine to assume */ +#define SDL_AUDIO_DRIVER_ALSA 1 +#define SDL_AUDIO_DRIVER_OSS 1 +#define SDL_AUDIO_DRIVER_PULSEAUDIO 1 +#endif + +#if defined(__LINUX__) +#define SDL_INPUT_LINUXEV 1 +#define SDL_INPUT_LINUXKD 1 +#define SDL_JOYSTICK_LINUX 1 +#define SDL_HAPTIC_LINUX 1 +#define SDL_POWER_LINUX 1 +#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1 +#define SDL_UDEV_DYNAMIC "libudev.so.1" +#define SDL_USE_IME 1 +#endif + +/* Enable OpenGL support */ +#define SDL_VIDEO_OPENGL 1 +#define SDL_VIDEO_OPENGL_ES 1 +#define SDL_VIDEO_OPENGL_GLX 1 +#if defined(__LINUX__) +#define SDL_VIDEO_OPENGL_EGL 1 +#endif + +/* Enable Vulkan support */ +#if defined(__LINUX__) +#define SDL_VIDEO_VULKAN 1 +#endif + +#endif /* SDL_config_unix_h_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/include/SDL2/SDL_revision.h new/sdl2-compat-2.32.62/include/SDL2/SDL_revision.h --- old/sdl2-compat-2.32.60/include/SDL2/SDL_revision.h 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/include/SDL2/SDL_revision.h 2026-01-01 03:50:02.000000000 +0100 @@ -1,6 +1,6 @@ #ifdef SDL_VENDOR_INFO -#define SDL_REVISION "release-2.32.60-0-g9831c2e (" SDL_VENDOR_INFO ")" +#define SDL_REVISION "release-2.32.62-0-g0846ba2 (" SDL_VENDOR_INFO ")" #else -#define SDL_REVISION "release-2.32.60-0-g9831c2e" +#define SDL_REVISION "release-2.32.62-0-g0846ba2" #endif #define SDL_REVISION_NUMBER 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/include/SDL2/SDL_syswm.h new/sdl2-compat-2.32.62/include/SDL2/SDL_syswm.h --- old/sdl2-compat-2.32.60/include/SDL2/SDL_syswm.h 2025-01-01 17:27:42.000000000 +0100 +++ new/sdl2-compat-2.32.62/include/SDL2/SDL_syswm.h 2025-12-28 16:54:12.000000000 +0100 @@ -59,7 +59,7 @@ #endif /* This is the structure for custom window manager events */ -#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(SDL_VIDEO_DRIVER_X11) && !defined(SDL2COMPAT_DISABLE_X11) #if defined(__APPLE__) && defined(__MACH__) /* conflicts with Quickdraw.h */ #define Cursor X11Cursor @@ -168,7 +168,7 @@ LPARAM lParam; /**< LONG message parameter */ } win; #endif -#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(SDL_VIDEO_DRIVER_X11) && !defined(SDL2COMPAT_DISABLE_X11) struct { XEvent event; } x11; @@ -243,7 +243,7 @@ IInspectable * window; /**< The WinRT CoreWindow */ } winrt; #endif -#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(SDL_VIDEO_DRIVER_X11) && !defined(SDL2COMPAT_DISABLE_X11) struct { Display *display; /**< The X11 display */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/include/SDL2/SDL_version.h new/sdl2-compat-2.32.62/include/SDL2/SDL_version.h --- old/sdl2-compat-2.32.60/include/SDL2/SDL_version.h 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/include/SDL2/SDL_version.h 2026-01-01 03:50:02.000000000 +0100 @@ -58,7 +58,7 @@ */ #define SDL_MAJOR_VERSION 2 #define SDL_MINOR_VERSION 32 -#define SDL_PATCHLEVEL 60 +#define SDL_PATCHLEVEL 62 /** * Macro to determine SDL version program was compiled against. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/src/Makefile.darwin new/sdl2-compat-2.32.62/src/Makefile.darwin --- old/sdl2-compat-2.32.60/src/Makefile.darwin 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/src/Makefile.darwin 2026-01-01 03:50:02.000000000 +0100 @@ -20,7 +20,7 @@ LDFLAGS = -dynamiclib -Wl,-undefined,error -Wl,-single_module #LDFLAGS+= -Wl,-headerpad_max_install_names LDFLAGS+= -Wl,-install_name,"/usr/local/lib/$(DYLIB)" -LDFLAGS+= -Wl,-compatibility_version,3201.0 -Wl,-current_version,3201.60 +LDFLAGS+= -Wl,-compatibility_version,3201.0 -Wl,-current_version,3201.62 LDLIBS = -Wl,-framework,AppKit # this is needed for x86_64 - cross-gcc might not add it. #LDLIBS += -Wl,-lbundle1.o diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/src/Makefile.linux new/sdl2-compat-2.32.62/src/Makefile.linux --- old/sdl2-compat-2.32.60/src/Makefile.linux 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/src/Makefile.linux 2026-01-01 03:50:02.000000000 +0100 @@ -13,7 +13,7 @@ LDFLAGS+= -Wl,--no-undefined LDLIBS = -ldl -SHLIB = libSDL2-2.0.so.0.3200.60 +SHLIB = libSDL2-2.0.so.0.3200.62 OBJ = sdl2_compat.o dynapi/SDL_dynapi.o diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/src/sdl2_compat.c new/sdl2-compat-2.32.62/src/sdl2_compat.c --- old/sdl2-compat-2.32.60/src/sdl2_compat.c 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/src/sdl2_compat.c 2026-01-01 03:50:02.000000000 +0100 @@ -58,7 +58,7 @@ * The number might increment past 90 if there are a ton of releases. */ #define SDL2_COMPAT_VERSION_MINOR 32 -#define SDL2_COMPAT_VERSION_PATCH 60 +#define SDL2_COMPAT_VERSION_PATCH 62 #ifndef SDL2COMPAT_REVISION #define SDL2COMPAT_REVISION "SDL-2." STRINGIFY(SDL2_COMPAT_VERSION_MINOR) "." STRINGIFY(SDL2_COMPAT_VERSION_PATCH) "-no-vcs" @@ -96,7 +96,7 @@ #undef snprintf #undef vsnprintf -#ifdef __linux__ +#if defined(__linux__) || defined(__GNU__) #include <unistd.h> /* for readlink() */ #endif @@ -532,10 +532,14 @@ /* SimCity 3000 tries to call SDL_DestroyMutex after we have been unloaded */ {"sc3u.dynamic", "SDL2COMPAT_NO_UNLOAD", "1"}, + + /* X4: Foundations assumes X11 and exits with an error otherwise + * https://github.com/libsdl-org/sdl2-compat/issues/555 */ + {"X4", SDL_HINT_VIDEO_DRIVER, "x11"}, #endif }; -#ifdef __linux__ +#if defined(__linux__) || defined(__GNU__) static void OS_GetExeName(char *buf, const unsigned maxpath, bool *use_base_path) { int ret; @@ -11954,10 +11958,10 @@ for (i = list3; i != NULL; i = i->next) { SDL2_hid_device_info *info = (SDL2_hid_device_info *) SDL3_calloc(1, sizeof (SDL2_hid_device_info)); char *path = SDL3_strdup(i->path); - wchar_t *serial_number = SDL3_wcsdup(i->serial_number); - wchar_t *manufacturer_string = SDL3_wcsdup(i->manufacturer_string); - wchar_t *product_string = SDL3_wcsdup(i->product_string); - if (!info || !path || !serial_number || !manufacturer_string || !product_string) { + wchar_t *serial_number = i->serial_number ? SDL3_wcsdup(i->serial_number) : NULL; + wchar_t *manufacturer_string = i->manufacturer_string ? SDL3_wcsdup(i->manufacturer_string) : NULL; + wchar_t *product_string = i->product_string ? SDL3_wcsdup(i->product_string) : NULL; + if (!info || !path) { SDL_hid_free_enumeration(retval); SDL3_free(info); SDL3_free(path); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/src/sdl3_include_wrapper.h new/sdl2-compat-2.32.62/src/sdl3_include_wrapper.h --- old/sdl2-compat-2.32.60/src/sdl3_include_wrapper.h 2025-11-14 00:28:40.000000000 +0100 +++ new/sdl2-compat-2.32.62/src/sdl3_include_wrapper.h 2025-12-12 04:47:40.000000000 +0100 @@ -1303,6 +1303,7 @@ #define SDL_RotateSurface IGNORE_THIS_VERSION_OF_SDL_RotateSurface #define SDL_LoadSurface_IO IGNORE_THIS_VERSION_OF_SDL_LoadSurface_IO #define SDL_LoadSurface IGNORE_THIS_VERSION_OF_SDL_LoadSurface +#define SDL_SetWindowFillDocument IGNORE_THIS_VERSION_OF_SDL_SetWindowFillDocument #define SDL_FUNCTION_POINTER_IS_VOID_POINTER 1 @@ -6409,8 +6410,13 @@ #undef SDL_LoadSurface #endif +#ifdef SDL_SetWindowFillDocument +#undef SDL_SetWindowFillDocument +#endif + -/* see at top. */ +/* see at top. + */ #undef SDL_ThreadID #ifdef SDL_CreateThread #undef SDL_CreateThread diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/src/version.rc new/sdl2-compat-2.32.62/src/version.rc --- old/sdl2-compat-2.32.60/src/version.rc 2025-12-02 20:40:20.000000000 +0100 +++ new/sdl2-compat-2.32.62/src/version.rc 2026-01-01 03:50:02.000000000 +0100 @@ -3,8 +3,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO - FILEVERSION 2,32,60,0 - PRODUCTVERSION 2,32,60,0 + FILEVERSION 2,32,62,0 + PRODUCTVERSION 2,32,62,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS 0x40004L @@ -17,12 +17,12 @@ BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "SDL\0" - VALUE "FileVersion", "2, 32, 60, 0\0" + VALUE "FileVersion", "2, 32, 62, 0\0" VALUE "InternalName", "SDL\0" VALUE "LegalCopyright", "Copyright (C) 2025 Sam Lantinga\0" VALUE "OriginalFilename", "SDL2.dll\0" VALUE "ProductName", "Simple DirectMedia Layer 2.0 wrapper\0" - VALUE "ProductVersion", "2, 32, 60, 0\0" + VALUE "ProductVersion", "2, 32, 62, 0\0" END END BLOCK "VarFileInfo" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sdl2-compat-2.32.60/test/CMakeLists.txt new/sdl2-compat-2.32.62/test/CMakeLists.txt --- old/sdl2-compat-2.32.60/test/CMakeLists.txt 2025-11-03 21:59:56.000000000 +0100 +++ new/sdl2-compat-2.32.62/test/CMakeLists.txt 2025-12-19 13:58:24.000000000 +0100 @@ -79,7 +79,7 @@ test_program(controllermap SRC "controllermap.c" "testutils.c") test_program(loopwave SRC "loopwave.c" "testutils.c") test_program(loopwavequeue SRC "loopwavequeue.c" "testutils.c") -test_program(testatomic NONINTERACTIVE SRC "testatomic.c") +test_program(testatomic NONINTERACTIVE TIMEOUT 120 SRC "testatomic.c") test_program(testaudiocapture SRC "testaudiocapture.c") test_program(testaudiohotplug SRC "testaudiohotplug.c" "testutils.c") test_program(testaudioinfo SRC "testaudioinfo.c")
