From 69a6e154004d60e08b420d96ac21f4b722cecaff Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Sun, 24 Mar 2024 11:34:12 +0100 Subject: [PATCH] SDL2: bump version, remove upstreamed patches --- ...l2-2.26.4.recipe => libsdl2-2.30.1.recipe} | 10 +- .../libsdl2/patches/libsdl2-2.0.14.patchset | 493 ------------------ .../libsdl2/patches/libsdl2-2.26.4.patchset | 469 ----------------- .../libsdl2/patches/libsdl2-2.30.1.patchset | 28 + 4 files changed, 33 insertions(+), 967 deletions(-) rename media-libs/libsdl2/{libsdl2-2.26.4.recipe => libsdl2-2.30.1.recipe} (87%) delete mode 100644 media-libs/libsdl2/patches/libsdl2-2.0.14.patchset delete mode 100644 media-libs/libsdl2/patches/libsdl2-2.26.4.patchset create mode 100644 media-libs/libsdl2/patches/libsdl2-2.30.1.patchset diff --git a/media-libs/libsdl2/libsdl2-2.26.4.recipe b/media-libs/libsdl2/libsdl2-2.30.1.recipe similarity index 87% rename from media-libs/libsdl2/libsdl2-2.26.4.recipe rename to media-libs/libsdl2/libsdl2-2.30.1.recipe index 7409f6c78..57aece1de 100644 --- a/media-libs/libsdl2/libsdl2-2.26.4.recipe +++ b/media-libs/libsdl2/libsdl2-2.30.1.recipe @@ -6,9 +6,9 @@ software, emulators, and popular games." HOMEPAGE="https://www.libsdl.org/" COPYRIGHT="1997-2022 Sam Lantinga" LICENSE="Zlib" -REVISION="4" +REVISION="1" SOURCE_URI="https://www.libsdl.org/release/SDL2-$portVersion.tar.gz" -CHECKSUM_SHA256="1a0f686498fb768ad9f3f80b39037a7d006eac093aad39cb4ebcc832a8887231" +CHECKSUM_SHA256="01215ffbc8cfc4ad165ba7573750f15ddda1f971d5a66e9dcaffd37c587f473a" SOURCE_DIR="SDL2-$portVersion" PATCHES="libsdl2-$portVersion.patchset" @@ -17,7 +17,7 @@ SECONDARY_ARCHITECTURES="x86" PROVIDES=" libsdl2$secondaryArchSuffix = $portVersion compat >= 2.0 - lib:libSDL2_2.0$secondaryArchSuffix = 0.2600.4 compat >= 0 + lib:libSDL2_2.0$secondaryArchSuffix = 0.3000.1 compat >= 0 " REQUIRES=" haiku$secondaryArchSuffix @@ -28,8 +28,8 @@ REQUIRES=" PROVIDES_devel=" libsdl2${secondaryArchSuffix}_devel = $portVersion compat >= 2.0 cmd:sdl2_config$secondaryArchSuffix = $portVersion compat >= 2.0 - devel:libSDL2$secondaryArchSuffix = 0.2600.4 compat >= 0 - devel:libSDL2_2.0$secondaryArchSuffix = 0.2600.4 compat >= 0 + devel:libSDL2$secondaryArchSuffix = 0.3000.1 compat >= 0 + devel:libSDL2_2.0$secondaryArchSuffix = 0.3000.1 compat >= 0 devel:libSDL2main$secondaryArchSuffix " REQUIRES_devel=" diff --git a/media-libs/libsdl2/patches/libsdl2-2.0.14.patchset b/media-libs/libsdl2/patches/libsdl2-2.0.14.patchset deleted file mode 100644 index e21996dcf..000000000 --- a/media-libs/libsdl2/patches/libsdl2-2.0.14.patchset +++ /dev/null @@ -1,493 +0,0 @@ -From b4d2752b7cfa3981996edb197c99d342fa7d5ae4 Mon Sep 17 00:00:00 2001 -From: Adrien Destugues -Date: Fri, 2 Feb 2018 09:40:46 +0100 -Subject: Fix secondary arch build. - -Rather than trying to guess the name of libstdc++, run libtool in C++ -mode so it figures this out by itself. The previous way of detecting -libstdc++ would not allow for building a secondary architecture package. - -diff --git a/Makefile.in b/Makefile.in -index 57871be..ea7f5e5 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -151,13 +151,13 @@ update-revision: - .PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d) - - $(objects)/$(TARGET): $(GEN_HEADERS) $(GEN_OBJECTS) $(OBJECTS) $(VERSION_OBJECTS) -- $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) -+ $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CXX --mode=link $(CXX) -o $@ $(OBJECTS) $(GEN_OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) - - $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS) -- $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir) -+ $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CXX --mode=link $(CXX) -static -o $@ $(SDLMAIN_OBJECTS) -rpath $(libdir) - - $(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS) -- $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir) -+ $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CXX --mode=link $(CXX) -static -o $@ $(SDLTEST_OBJECTS) -rpath $(libdir) - - install: all install-bin install-hdrs install-lib install-data - install-bin: -diff --git a/configure.ac b/configure.ac -index b7e519b..8e15ca9 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3942,9 +3942,6 @@ AS_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau - # The Haiku platform requires special setup. - SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES" - EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding" -- # Haiku's x86 spins use libstdc++.r4.so (for binary compat?), but -- # other spins, like x86-64, use a more standard "libstdc++.so.*" -- AC_CHECK_FILE("/boot/system/lib/libstdc++.r4.so", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++.r4", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++") - ;; - *-ios-*) - ARCH=ios --- -2.30.0 - - -From f21290d64a86de299f16809ee22ec2af9c68a302 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 8 Mar 2021 14:34:02 +1000 -Subject: Fix relative mode for mouse - - -diff --git a/src/video/haiku/SDL_BWin.h b/src/video/haiku/SDL_BWin.h -index 34f0d5f..806fc51 100644 ---- a/src/video/haiku/SDL_BWin.h -+++ b/src/video/haiku/SDL_BWin.h -@@ -140,7 +140,6 @@ class SDL_BWin:public BDirectWindow - _gl_type = gl_flags; - } - AddChild(_SDL_GLView); -- _SDL_GLView->SetEventMask(B_POINTER_EVENTS | B_KEYBOARD_EVENTS, B_NO_POINTER_HISTORY); - _SDL_GLView->EnableDirectMode(true); - _SDL_GLView->LockGL(); /* "New" GLViews are created */ - Unlock(); -diff --git a/src/video/haiku/SDL_bvideo.cc b/src/video/haiku/SDL_bvideo.cc -index 817fccf..234eaf0 100644 ---- a/src/video/haiku/SDL_bvideo.cc -+++ b/src/video/haiku/SDL_bvideo.cc -@@ -37,6 +37,12 @@ extern "C" { - #include "SDL_bframebuffer.h" - #include "SDL_bevents.h" - -+#include "SDL_BWin.h" -+ -+static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { -+ return ((SDL_BWin*)(window->driverdata)); -+} -+ - #include - - /* FIXME: Undefined functions */ -@@ -152,12 +158,34 @@ static int HAIKU_ShowCursor(SDL_Cursor *cur) - return 0; - } - -+static int -+HAIKU_SetRelativeMouseMode(SDL_bool enabled) -+{ -+ SDL_Window *window = SDL_GetMouseFocus(); -+ if (!window) { -+ return 0; -+ } -+ -+ SDL_BWin *bewin = _ToBeWin(window); -+ BGLView *_SDL_GLView = bewin->GetGLView(); -+ -+ bewin->Lock(); -+ if (enabled) -+ _SDL_GLView->SetEventMask(B_POINTER_EVENTS | B_KEYBOARD_EVENTS, B_NO_POINTER_HISTORY); -+ else -+ _SDL_GLView->SetEventMask(0, 0); -+ bewin->Unlock(); -+ -+ return 0; -+} -+ - static void HAIKU_MouseInit(_THIS) - { - SDL_Mouse *mouse = SDL_GetMouse(); - if (!mouse) - return; - mouse->ShowCursor = HAIKU_ShowCursor; -+ mouse->SetRelativeMouseMode = HAIKU_SetRelativeMouseMode; - mouse->cur_cursor = (SDL_Cursor*)0x1; - mouse->def_cursor = (SDL_Cursor*)0x2; - } --- -2.30.0 - - -From e72180d6c6a05161fbb7051a3d0396a9371dd726 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 8 Mar 2021 14:34:40 +1000 -Subject: Add support for system cursors - - -diff --git a/src/video/haiku/SDL_BWin.h b/src/video/haiku/SDL_BWin.h -index 806fc51..974c152 100644 ---- a/src/video/haiku/SDL_BWin.h -+++ b/src/video/haiku/SDL_BWin.h -@@ -37,6 +37,7 @@ extern "C" { - - #include - #include -+#include - #include - #include - #if SDL_VIDEO_OPENGL -diff --git a/src/video/haiku/SDL_bvideo.cc b/src/video/haiku/SDL_bvideo.cc -index 234eaf0..0948451 100644 ---- a/src/video/haiku/SDL_bvideo.cc -+++ b/src/video/haiku/SDL_bvideo.cc -@@ -141,20 +141,72 @@ void HAIKU_DeleteDevice(SDL_VideoDevice * device) - SDL_free(device); - } - --static int HAIKU_ShowCursor(SDL_Cursor *cur) -+static SDL_Cursor * -+HAIKU_CreateSystemCursor(SDL_SystemCursor id) -+{ -+ SDL_Cursor *cursor; -+ BCursorID cursorId = B_CURSOR_ID_SYSTEM_DEFAULT; -+ -+ switch(id) -+ { -+ default: -+ SDL_assert(0); -+ return NULL; -+ case SDL_SYSTEM_CURSOR_ARROW: cursorId = B_CURSOR_ID_SYSTEM_DEFAULT; break; -+ case SDL_SYSTEM_CURSOR_IBEAM: cursorId = B_CURSOR_ID_I_BEAM; break; -+ case SDL_SYSTEM_CURSOR_WAIT: cursorId = B_CURSOR_ID_PROGRESS; break; -+ case SDL_SYSTEM_CURSOR_CROSSHAIR: cursorId = B_CURSOR_ID_CROSS_HAIR; break; -+ case SDL_SYSTEM_CURSOR_WAITARROW: cursorId = B_CURSOR_ID_PROGRESS; break; -+ case SDL_SYSTEM_CURSOR_SIZENWSE: cursorId = B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST; break; -+ case SDL_SYSTEM_CURSOR_SIZENESW: cursorId = B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST; break; -+ case SDL_SYSTEM_CURSOR_SIZEWE: cursorId = B_CURSOR_ID_RESIZE_EAST_WEST; break; -+ case SDL_SYSTEM_CURSOR_SIZENS: cursorId = B_CURSOR_ID_RESIZE_NORTH_SOUTH; break; -+ case SDL_SYSTEM_CURSOR_SIZEALL: cursorId = B_CURSOR_ID_MOVE; break; -+ case SDL_SYSTEM_CURSOR_NO: cursorId = B_CURSOR_ID_NOT_ALLOWED; break; -+ case SDL_SYSTEM_CURSOR_HAND: cursorId = B_CURSOR_ID_FOLLOW_LINK; break; -+ } -+ -+ cursor = (SDL_Cursor *) SDL_calloc(1, sizeof(*cursor)); -+ if (cursor) { -+ cursor->driverdata = (void *)new BCursor(cursorId); -+ } else { -+ SDL_OutOfMemory(); -+ } -+ -+ return cursor; -+} -+ -+static SDL_Cursor * -+HAIKU_CreateDefaultCursor() -+{ -+ return HAIKU_CreateSystemCursor(SDL_SYSTEM_CURSOR_ARROW); -+} -+ -+static void -+HAIKU_FreeCursor(SDL_Cursor * cursor) -+{ -+ if (cursor->driverdata) { -+ delete (BCursor*) cursor->driverdata; -+ } -+ SDL_free(cursor); -+} -+ -+static int HAIKU_ShowCursor(SDL_Cursor *cursor) - { - SDL_Mouse *mouse = SDL_GetMouse(); -- int show; -+ - if (!mouse) - return 0; -- show = (cur || !mouse->focus); -- if (show) { -- if (be_app->IsCursorHidden()) -- be_app->ShowCursor(); -+ -+ if (cursor) { -+ BCursor *hCursor = (BCursor*)cursor->driverdata; -+ be_app->SetCursor(hCursor); - } else { -- if (!be_app->IsCursorHidden()) -- be_app->HideCursor(); -+ BCursor *hCursor = new BCursor(B_CURSOR_ID_NO_CURSOR); -+ be_app->SetCursor(hCursor); -+ delete hCursor; - } -+ - return 0; - } - -@@ -184,10 +236,12 @@ static void HAIKU_MouseInit(_THIS) - SDL_Mouse *mouse = SDL_GetMouse(); - if (!mouse) - return; -+ mouse->CreateSystemCursor = HAIKU_CreateSystemCursor; - mouse->ShowCursor = HAIKU_ShowCursor; -+ mouse->FreeCursor = HAIKU_FreeCursor; - mouse->SetRelativeMouseMode = HAIKU_SetRelativeMouseMode; -- mouse->cur_cursor = (SDL_Cursor*)0x1; -- mouse->def_cursor = (SDL_Cursor*)0x2; -+ -+ SDL_SetDefaultCursor(HAIKU_CreateDefaultCursor()); - } - - int HAIKU_VideoInit(_THIS) --- -2.30.0 - - -From e3c8ac3ec956272129a320ff5a7347d9050d69ca Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 8 Mar 2021 14:36:14 +1000 -Subject: Disable direct mode for BGLView - - -diff --git a/src/video/haiku/SDL_BWin.h b/src/video/haiku/SDL_BWin.h -index 974c152..83bb346 100644 ---- a/src/video/haiku/SDL_BWin.h -+++ b/src/video/haiku/SDL_BWin.h -@@ -141,7 +141,7 @@ class SDL_BWin:public BDirectWindow - _gl_type = gl_flags; - } - AddChild(_SDL_GLView); -- _SDL_GLView->EnableDirectMode(true); -+ _SDL_GLView->EnableDirectMode(false); /* Disable direct mode */ - _SDL_GLView->LockGL(); /* "New" GLViews are created */ - Unlock(); - return (_SDL_GLView); --- -2.30.0 - - -From 8ac03106fea9245de0b495d23e38bf4055b8df55 Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Mon, 8 Mar 2021 14:36:48 +1000 -Subject: Fix build for gcc2 - - -diff --git a/src/video/haiku/SDL_bvideo.cc b/src/video/haiku/SDL_bvideo.cc -index 0948451..f3c80ac 100644 ---- a/src/video/haiku/SDL_bvideo.cc -+++ b/src/video/haiku/SDL_bvideo.cc -@@ -18,11 +18,14 @@ - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - */ -+ - #include "../../SDL_internal.h" - #include "../../main/haiku/SDL_BApp.h" - - #if SDL_VIDEO_DRIVER_HAIKU - -+#include "SDL_BWin.h" -+#include - - #ifdef __cplusplus - extern "C" { -@@ -37,14 +40,10 @@ extern "C" { - #include "SDL_bframebuffer.h" - #include "SDL_bevents.h" - --#include "SDL_BWin.h" -- - static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { - return ((SDL_BWin*)(window->driverdata)); - } - --#include -- - /* FIXME: Undefined functions */ - // #define HAIKU_PumpEvents NULL - #define HAIKU_StartTextInput NULL --- -2.30.0 - - -From 27e186cc748fb703abd03fa433c700725980e049 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Sun, 25 Apr 2021 13:35:32 +0200 -Subject: Haiku: cmake build - -use CMAKE_INSTALL_ variables where applicable - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b9b9eb6..c203236 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1141,7 +1141,7 @@ elseif(EMSCRIPTEN) - endif() - endif() - --elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS) -+elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU) - if(SDL_AUDIO) - if(SYSV5 OR SOLARIS OR HPUX) - set(SDL_AUDIO_DRIVER_SUNAUDIO 1) -@@ -1927,30 +1927,46 @@ elseif(APPLE) - CheckPTHREAD() - - elseif(HAIKU) -+ if(SDL_AUDIO) -+ set(SDL_AUDIO_DRIVER_HAIKU 1) -+ file(GLOB HAIKU_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/haiku/*.cc) -+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_AUDIO_SOURCES}) -+ set(HAVE_SDL_AUDIO TRUE) -+ endif() -+ -+ if(SDL_JOYSTICK) -+ set(SDL_JOYSTICK_HAIKU 1) -+ file(GLOB HAIKU_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/haiku/*.cc) -+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_JOYSTICK_SOURCES}) -+ set(HAVE_SDL_JOYSTICK TRUE) -+ endif() -+ - file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/haiku/*.cc) - set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES}) - set(HAVE_SDL_MISC TRUE) - - if(SDL_VIDEO) - set(SDL_VIDEO_DRIVER_HAIKU 1) -- file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.c) -+ file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.cc) - set(SOURCE_FILES ${SOURCE_FILES} ${HAIKUVIDEO_SOURCES}) - set(HAVE_SDL_VIDEO TRUE) - - if(VIDEO_OPENGL) - # TODO: Use FIND_PACKAGE(OpenGL) instead - set(SDL_VIDEO_OPENGL 1) -- set(SDL_VIDEO_OPENGL_BGL 1) -+ set(SDL_VIDEO_OPENGL_HAIKU 1) - set(SDL_VIDEO_RENDER_OGL 1) - list(APPEND EXTRA_LIBS GL) - set(HAVE_VIDEO_OPENGL TRUE) - endif() - endif() - -- set(SDL_FILESYSTEM_HAIKU 1) -- file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc) -- set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) -- set(HAVE_SDL_FILESYSTEM TRUE) -+ if(SDL_FILESYSTEM) -+ set(SDL_FILESYSTEM_HAIKU 1) -+ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc) -+ set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) -+ set(HAVE_SDL_FILESYSTEM TRUE) -+ endif() - - if(SDL_TIMERS) - set(SDL_TIMER_HAIKU 1) -@@ -1959,13 +1975,24 @@ elseif(HAIKU) - set(HAVE_SDL_TIMERS TRUE) - endif() - -+ if(SDL_POWER) -+ set(SDL_POWER_HAIKU 1) -+ file(GLOB HAIKU_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/haiku/*.c) -+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_POWER_SOURCES}) -+ set(HAVE_SDL_POWER TRUE) -+ endif() -+ - if(SDL_LOCALE) - file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/haiku/*.cc) - set(SOURCE_FILES ${SOURCE_FILES} ${LOCALE_SOURCES}) - set(HAVE_SDL_LOCALE TRUE) - endif() - -+ file(GLOB MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/haiku/*.cc) -+ set(SOURCE_FILES ${SOURCE_FILES} ${MAIN_SOURCES}) -+ - CheckPTHREAD() -+ list(APPEND EXTRA_LIBS root be media game device textencoding) - - elseif(RISCOS) - file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/riscos/*.c) -@@ -2089,9 +2116,9 @@ endif() - if(NOT WINDOWS OR CYGWIN) - set(prefix ${CMAKE_INSTALL_PREFIX}) - set(exec_prefix "\${prefix}") -- set(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") -- set(bindir "\${exec_prefix}/bin") -- set(includedir "\${prefix}/include") -+ set(libdir "${CMAKE_INSTALL_LIBDIR}") -+ set(bindir "${CMAKE_INSTALL_BINDIR}") -+ set(includedir "${CMAKE_INSTALL_INCLUDEDIR}") - if(SDL_STATIC) - set(ENABLE_STATIC_TRUE "") - set(ENABLE_STATIC_FALSE "#") -@@ -2199,7 +2226,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") - # Always build SDLmain - if(NOT WINDOWS_STORE) - add_library(SDL2main STATIC ${SDLMAIN_SOURCES}) --target_include_directories(SDL2main PUBLIC "$" $ $) -+target_include_directories(SDL2main PUBLIC "$" $ $) - set(_INSTALL_LIBS "SDL2main") - if (NOT ANDROID) - set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}") -@@ -2239,7 +2266,7 @@ if(SDL_SHARED) - endif() - set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS}) - target_link_libraries(SDL2 PRIVATE ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) -- target_include_directories(SDL2 PUBLIC "$" $ $) -+ target_include_directories(SDL2 PUBLIC "$" $ $) - if(ANDROID) - target_include_directories(SDL2 PRIVATE ${ANDROID_NDK}/sources/android/cpufeatures) - else() -@@ -2309,15 +2336,15 @@ endif() - - ##### Installation targets ##### - install(TARGETS ${_INSTALL_LIBS} EXPORT SDL2Targets -- LIBRARY DESTINATION "lib${LIB_SUFFIX}" -- ARCHIVE DESTINATION "lib${LIB_SUFFIX}" -- RUNTIME DESTINATION bin) -+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}" -+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}" -+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - - ##### Export files ##### - if (WINDOWS) - set(PKG_PREFIX "cmake") - else () -- set(PKG_PREFIX "lib${LIB_SUFFIX}/cmake/SDL2") -+ set(PKG_PREFIX "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}/cmake/SDL2") - endif () - - include(CMakePackageConfigHelpers) -@@ -2346,7 +2373,7 @@ foreach(_FNAME ${BIN_INCLUDE_FILES}) - list(REMOVE_ITEM INCLUDE_FILES ${SDL2_SOURCE_DIR}/include/${_INCNAME}) - endforeach() - list(APPEND INCLUDE_FILES ${BIN_INCLUDE_FILES}) --install(FILES ${INCLUDE_FILES} DESTINATION include/SDL2) -+install(FILES ${INCLUDE_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SDL2) - - string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE) - if (UPPER_BUILD_TYPE MATCHES DEBUG) -@@ -2364,7 +2391,7 @@ if(NOT (WINDOWS OR CYGWIN)) - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - \"lib${SONAME}${SOPOSTFIX}${SOEXT}\" \"libSDL2${SOPOSTFIX}${SOEXT}\" - WORKING_DIRECTORY \"${SDL2_BINARY_DIR}\")") -- install(FILES ${SDL2_BINARY_DIR}/libSDL2${SOPOSTFIX}${SOEXT} DESTINATION "lib${LIB_SUFFIX}") -+ install(FILES ${SDL2_BINARY_DIR}/libSDL2${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}") - endif() - endif() - if(FREEBSD) -@@ -2372,9 +2399,9 @@ if(NOT (WINDOWS OR CYGWIN)) - install(FILES ${SDL2_BINARY_DIR}/sdl2.pc DESTINATION "libdata/pkgconfig") - else() - install(FILES ${SDL2_BINARY_DIR}/sdl2.pc -- DESTINATION "lib${LIB_SUFFIX}/pkgconfig") -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}/pkgconfig") - endif() -- install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION bin) -+ install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION "${CMAKE_INSTALL_BINDIR}") - # TODO: what about the .spec file? Is it only needed for RPM creation? - install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}/aclocal") - endif() --- -2.30.0 - diff --git a/media-libs/libsdl2/patches/libsdl2-2.26.4.patchset b/media-libs/libsdl2/patches/libsdl2-2.26.4.patchset deleted file mode 100644 index 02aa8ee92..000000000 --- a/media-libs/libsdl2/patches/libsdl2-2.26.4.patchset +++ /dev/null @@ -1,469 +0,0 @@ -From 7a4fc529d097359a985556cb2f5ba601c8de3a0f Mon Sep 17 00:00:00 2001 -From: Gerasim Troeglazov <3dEyes@gmail.com> -Date: Wed, 12 Jan 2022 11:59:06 +1000 -Subject: Workaround for gcc2 - - -diff --git a/src/stdlib/SDL_string.c b/src/stdlib/SDL_string.c -index 5c3f012..6fc3c14 100644 ---- a/src/stdlib/SDL_string.c -+++ b/src/stdlib/SDL_string.c -@@ -33,6 +33,10 @@ - #include - #endif - -+#if __GNUC__ == 2 -+#define va_copy(to, from) __va_copy(to, from) -+#endif -+ - #if !defined(HAVE_VSSCANF) || !defined(HAVE_STRTOL) || !defined(HAVE_STRTOUL) || !defined(HAVE_STRTOD) || !defined(HAVE_STRTOLL) || !defined(HAVE_STRTOULL) - #define SDL_isupperhex(X) (((X) >= 'A') && ((X) <= 'F')) - #define SDL_islowerhex(X) (((X) >= 'a') && ((X) <= 'f')) --- -2.37.3 - - -From 66219afffdd033230f687202256eb0d9249845f2 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 29 Mar 2023 21:28:21 +0200 -Subject: Haiku: use a BLooper for events. - -only create a BApplication when it doesn't already exist. - -diff --git a/src/main/haiku/SDL_BApp.h b/src/main/haiku/SDL_BApp.h -index 868b4ed..f7d7af4 100644 ---- a/src/main/haiku/SDL_BApp.h -+++ b/src/main/haiku/SDL_BApp.h -@@ -53,6 +53,7 @@ extern "C" { - - - /* Forward declarations */ -+class SDL_BLooper; - class SDL_BWin; - - /* Message constants */ -@@ -78,32 +79,24 @@ enum ToSDL { - }; - - -+extern "C" SDL_BLooper *SDL_Looper; - --/* Create a descendant of BApplication */ --class SDL_BApp : public BApplication { -+ -+/* Create a descendant of BLooper */ -+class SDL_BLooper : public BLooper { - public: -- SDL_BApp(const char* signature) : -- BApplication(signature) { -+ SDL_BLooper(const char* name) : -+ BLooper(name) { - #if SDL_VIDEO_OPENGL - _current_context = NULL; - #endif - } - - -- virtual ~SDL_BApp() { -+ virtual ~SDL_BLooper() { - } - - -- virtual void RefsReceived(BMessage* message) { -- char filePath[512]; -- entry_ref entryRef; -- for (int32 i = 0; message->FindRef("refs", i, &entryRef) == B_OK; i++) { -- BPath referencePath = BPath(&entryRef); -- SDL_SendDropFile(NULL, referencePath.Path()); -- } -- return; -- } -- - /* Event-handling functions */ - virtual void MessageReceived(BMessage* message) { - /* Sort out SDL-related messages */ -@@ -173,7 +166,7 @@ public: - break; - - default: -- BApplication::MessageReceived(message); -+ BLooper::MessageReceived(message); - break; - } - } -diff --git a/src/main/haiku/SDL_BeApp.cc b/src/main/haiku/SDL_BeApp.cc -index 9acbc54..5dea3a4 100644 ---- a/src/main/haiku/SDL_BeApp.cc -+++ b/src/main/haiku/SDL_BeApp.cc -@@ -31,7 +31,7 @@ - #include - #include - --#include "SDL_BApp.h" /* SDL_BApp class definition */ -+#include "SDL_BApp.h" /* SDL_BLooper class definition */ - #include "SDL_BeApp.h" - #include "SDL_timer.h" - #include "SDL_error.h" -@@ -44,13 +44,39 @@ extern "C" { - - #include "../../thread/SDL_systhread.h" - --/* Flag to tell whether or not the Be application is active or not */ -+/* Flag to tell whether or not the Be application and looper are active or not */ - static int SDL_BeAppActive = 0; - static SDL_Thread *SDL_AppThread = NULL; -+SDL_BLooper *SDL_Looper = NULL; -+ - - /* Default application signature */ - const char *signature = "application/x-SDL-executable"; - -+ -+/* Create a descendant of BApplication */ -+class SDL_BApp : public BApplication { -+public: -+ SDL_BApp(const char* signature) : -+ BApplication(signature) { -+ } -+ -+ -+ virtual ~SDL_BApp() { -+ } -+ -+ -+ virtual void RefsReceived(BMessage* message) { -+ entry_ref entryRef; -+ for (int32 i = 0; message->FindRef("refs", i, &entryRef) == B_OK; i++) { -+ BPath referencePath = BPath(&entryRef); -+ SDL_SendDropFile(NULL, referencePath.Path()); -+ } -+ return; -+ } -+}; -+ -+ - static int - StartBeApp(void *unused) - { -@@ -78,35 +104,49 @@ StartBeApp(void *unused) - return (0); - } - --/* Initialize the Be Application, if it's not already started */ --int --SDL_InitBeApp(void) -+ -+static int -+StartBeLooper() - { -- /* Create the BApplication that handles appserver interaction */ -- if (SDL_BeAppActive <= 0) { -+ if (!be_app) { - SDL_AppThread = SDL_CreateThreadInternal(StartBeApp, "SDLApplication", 0, NULL); - if (SDL_AppThread == NULL) { - return SDL_SetError("Couldn't create BApplication thread"); - } - -- /* Change working directory to that of executable */ -- app_info info; -- if (B_OK == be_app->GetAppInfo(&info)) { -- entry_ref ref = info.ref; -- BEntry entry; -- if (B_OK == entry.SetTo(&ref)) { -- BPath path; -- if (B_OK == path.SetTo(&entry)) { -- if (B_OK == path.GetParent(&path)) { -- chdir(path.Path()); -- } -+ do { -+ SDL_Delay(10); -+ } while ((be_app == NULL) || be_app->IsLaunching()); -+ } -+ -+ /* Change working directory to that of executable */ -+ app_info info; -+ if (B_OK == be_app->GetAppInfo(&info)) { -+ entry_ref ref = info.ref; -+ BEntry entry; -+ if (B_OK == entry.SetTo(&ref)) { -+ BPath path; -+ if (B_OK == path.SetTo(&entry)) { -+ if (B_OK == path.GetParent(&path)) { -+ chdir(path.Path()); - } - } - } -+ } - -- do { -- SDL_Delay(10); -- } while ((be_app == NULL) || be_app->IsLaunching()); -+ SDL_Looper = new SDL_BLooper("SDLLooper"); -+ SDL_Looper->Run(); -+ return (0); -+} -+ -+ -+/* Initialize the Be Application, if it's not already started */ -+int -+SDL_InitBeApp(void) -+{ -+ /* Create the BApplication that handles appserver interaction */ -+ if (SDL_BeAppActive <= 0) { -+ StartBeLooper(); - - /* Mark the application active */ - SDL_BeAppActive = 0; -@@ -128,6 +168,9 @@ SDL_QuitBeApp(void) - - /* If the reference count reached zero, clean up the app */ - if (SDL_BeAppActive == 0) { -+ SDL_Looper->Lock(); -+ SDL_Looper->Quit(); -+ SDL_Looper = NULL; - if (SDL_AppThread != NULL) { - if (be_app != NULL) { /* Not tested */ - be_app->PostMessage(B_QUIT_REQUESTED); -@@ -144,7 +187,7 @@ SDL_QuitBeApp(void) - #endif - - /* SDL_BApp functions */ --void SDL_BApp::ClearID(SDL_BWin *bwin) { -+void SDL_BLooper::ClearID(SDL_BWin *bwin) { - _SetSDLWindow(NULL, bwin->GetID()); - int32 i = _GetNumWindowSlots() - 1; - while(i >= 0 && GetSDLWindow(i) == NULL) { -diff --git a/src/video/haiku/SDL_BApp.h b/src/video/haiku/SDL_BApp.h -index 868b4ed..f7d7af4 100644 ---- a/src/video/haiku/SDL_BApp.h -+++ b/src/video/haiku/SDL_BApp.h -@@ -53,6 +53,7 @@ extern "C" { - - - /* Forward declarations */ -+class SDL_BLooper; - class SDL_BWin; - - /* Message constants */ -@@ -78,32 +79,24 @@ enum ToSDL { - }; - - -+extern "C" SDL_BLooper *SDL_Looper; - --/* Create a descendant of BApplication */ --class SDL_BApp : public BApplication { -+ -+/* Create a descendant of BLooper */ -+class SDL_BLooper : public BLooper { - public: -- SDL_BApp(const char* signature) : -- BApplication(signature) { -+ SDL_BLooper(const char* name) : -+ BLooper(name) { - #if SDL_VIDEO_OPENGL - _current_context = NULL; - #endif - } - - -- virtual ~SDL_BApp() { -+ virtual ~SDL_BLooper() { - } - - -- virtual void RefsReceived(BMessage* message) { -- char filePath[512]; -- entry_ref entryRef; -- for (int32 i = 0; message->FindRef("refs", i, &entryRef) == B_OK; i++) { -- BPath referencePath = BPath(&entryRef); -- SDL_SendDropFile(NULL, referencePath.Path()); -- } -- return; -- } -- - /* Event-handling functions */ - virtual void MessageReceived(BMessage* message) { - /* Sort out SDL-related messages */ -@@ -173,7 +166,7 @@ public: - break; - - default: -- BApplication::MessageReceived(message); -+ BLooper::MessageReceived(message); - break; - } - } -diff --git a/src/video/haiku/SDL_BWin.h b/src/video/haiku/SDL_BWin.h -index e711ee0..d9f0340 100644 ---- a/src/video/haiku/SDL_BWin.h -+++ b/src/video/haiku/SDL_BWin.h -@@ -125,8 +125,8 @@ class SDL_BWin: public BWindow - - #if SDL_VIDEO_OPENGL - if (_SDL_GLView) { -- if (((SDL_BApp*)be_app)->GetCurrentContext() == _SDL_GLView) -- ((SDL_BApp*)be_app)->SetCurrentContext(NULL); -+ if (SDL_Looper->GetCurrentContext() == _SDL_GLView) -+ SDL_Looper->SetCurrentContext(NULL); - if (_SDL_GLView == _cur_view) - RemoveChild(_SDL_GLView); - _SDL_GLView = NULL; -@@ -205,8 +205,8 @@ class SDL_BWin: public BWindow - void RemoveGLView() { - Lock(); - if(_SDL_GLView != NULL) { -- if (((SDL_BApp*)be_app)->GetCurrentContext() == _SDL_GLView) -- ((SDL_BApp*)be_app)->SetCurrentContext(NULL); -+ if (SDL_Looper->GetCurrentContext() == _SDL_GLView) -+ SDL_Looper->SetCurrentContext(NULL); - _SDL_GLView = NULL; - UpdateCurrentView(); - // _SDL_GLView deleted by HAIKU_GL_DeleteContext -@@ -549,7 +549,7 @@ private: - if (keyUtf8 != NULL) { - msg.AddData("key-utf8", B_INT8_TYPE, (const void*)keyUtf8, len); - } -- be_app->PostMessage(&msg); -+ SDL_Looper->PostMessage(&msg); - } - - void _RepaintEvent() { -@@ -559,7 +559,7 @@ private: - } - void _PostWindowEvent(BMessage &msg) { - msg.AddInt32("window-id", _id); -- be_app->PostMessage(&msg); -+ SDL_Looper->PostMessage(&msg); - } - - /* Command methods (functions called upon by SDL) */ -diff --git a/src/video/haiku/SDL_bframebuffer.cc b/src/video/haiku/SDL_bframebuffer.cc -index bf7a002..3c297a1 100644 ---- a/src/video/haiku/SDL_bframebuffer.cc -+++ b/src/video/haiku/SDL_bframebuffer.cc -@@ -39,8 +39,8 @@ static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { - return ((SDL_BWin*)(window->driverdata)); - } - --static SDL_INLINE SDL_BApp *_GetBeApp() { -- return ((SDL_BApp*)be_app); -+static SDL_INLINE SDL_BLooper *_GetBeLooper() { -+ return SDL_Looper; - } - - int HAIKU_CreateWindowFramebuffer(_THIS, SDL_Window * window, -diff --git a/src/video/haiku/SDL_bmodes.cc b/src/video/haiku/SDL_bmodes.cc -index 62ec4ec..5d44a88 100644 ---- a/src/video/haiku/SDL_bmodes.cc -+++ b/src/video/haiku/SDL_bmodes.cc -@@ -52,8 +52,8 @@ static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { - return ((SDL_BWin*)(window->driverdata)); - } - --static SDL_INLINE SDL_BApp *_GetBeApp() { -- return ((SDL_BApp*)be_app); -+static SDL_INLINE SDL_BLooper *_GetBeLooper() { -+ return SDL_Looper; - } - - static SDL_INLINE display_mode * _ExtractBMode(SDL_DisplayMode *mode) { -diff --git a/src/video/haiku/SDL_bopengl.cc b/src/video/haiku/SDL_bopengl.cc -index d1ab6b8..f64ca2f 100644 ---- a/src/video/haiku/SDL_bopengl.cc -+++ b/src/video/haiku/SDL_bopengl.cc -@@ -39,8 +39,8 @@ static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { - return ((SDL_BWin*)(window->driverdata)); - } - --static SDL_INLINE SDL_BApp *_GetBeApp() { -- return ((SDL_BApp*)be_app); -+static SDL_INLINE SDL_BLooper *_GetBeLooper() { -+ return SDL_Looper; - } - - /* Passing a NULL path means load pointers from the application */ -@@ -97,7 +97,7 @@ int HAIKU_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context) { - return SDL_SetError("MakeCurrent failed"); - } - } -- _GetBeApp()->SetCurrentContext(glView); -+ _GetBeLooper()->SetCurrentContext(glView); - return 0; - } - -@@ -138,7 +138,7 @@ SDL_GLContext HAIKU_GL_CreateContext(_THIS, SDL_Window * window) { - } - #endif - bwin->CreateGLView(gl_flags); -- _GetBeApp()->SetCurrentContext(bwin->GetGLView()); -+ _GetBeLooper()->SetCurrentContext(bwin->GetGLView()); - return (SDL_GLContext)(bwin->GetGLView()); - } - -diff --git a/src/video/haiku/SDL_bwindow.cc b/src/video/haiku/SDL_bwindow.cc -index a9cc173..b79f34b 100644 ---- a/src/video/haiku/SDL_bwindow.cc -+++ b/src/video/haiku/SDL_bwindow.cc -@@ -37,8 +37,8 @@ static SDL_INLINE SDL_BWin *_ToBeWin(SDL_Window *window) { - return ((SDL_BWin*)(window->driverdata)); - } - --static SDL_INLINE SDL_BApp *_GetBeApp() { -- return ((SDL_BApp*)be_app); -+static SDL_INLINE SDL_BLooper *_GetBeLooper() { -+ return SDL_Looper; - } - - static int _InitWindow(_THIS, SDL_Window *window) { -@@ -71,7 +71,7 @@ static int _InitWindow(_THIS, SDL_Window *window) { - return -1; - - window->driverdata = bwin; -- int32 winID = _GetBeApp()->GetID(window); -+ int32 winID = _GetBeLooper()->GetID(window); - bwin->SetID(winID); - - return 0; -@@ -218,7 +218,7 @@ void HAIKU_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed) { - - void HAIKU_DestroyWindow(_THIS, SDL_Window * window) { - _ToBeWin(window)->LockLooper(); /* This MUST be locked */ -- _GetBeApp()->ClearID(_ToBeWin(window)); -+ _GetBeLooper()->ClearID(_ToBeWin(window)); - _ToBeWin(window)->Quit(); - window->driverdata = NULL; - } --- -2.37.3 - - -From f18aaee1b460e83d78531807f856d1dc0dcddada Mon Sep 17 00:00:00 2001 -From: PulkoMandy -Date: Thu, 13 Apr 2023 17:38:14 +0200 -Subject: Don't change the current directory when starting from Terminal. - - -diff --git a/src/main/haiku/SDL_BeApp.cc b/src/main/haiku/SDL_BeApp.cc -index 5dea3a4..3dfa430 100644 ---- a/src/main/haiku/SDL_BeApp.cc -+++ b/src/main/haiku/SDL_BeApp.cc -@@ -119,9 +119,13 @@ StartBeLooper() - } while ((be_app == NULL) || be_app->IsLaunching()); - } - -- /* Change working directory to that of executable */ -+ /* If started from the GUI, change working directory to that of executable. -+ * This matches behavior on other platforms and may be needed by some SDL software. -+ * Don't do it when started from terminal (TERM environment variable is set), because in that -+ * case, the current directory may be important, and after this there will be no way to know -+ * what it was. */ - app_info info; -- if (B_OK == be_app->GetAppInfo(&info)) { -+ if (NULL == getenv("TERM") && B_OK == be_app->GetAppInfo(&info)) { - entry_ref ref = info.ref; - BEntry entry; - if (B_OK == entry.SetTo(&ref)) { --- -2.37.3 - diff --git a/media-libs/libsdl2/patches/libsdl2-2.30.1.patchset b/media-libs/libsdl2/patches/libsdl2-2.30.1.patchset new file mode 100644 index 000000000..f2bae1139 --- /dev/null +++ b/media-libs/libsdl2/patches/libsdl2-2.30.1.patchset @@ -0,0 +1,28 @@ +From 7dca1583b02f61bb22eb112bad97114f46cde292 Mon Sep 17 00:00:00 2001 +From: PulkoMandy +Date: Sun, 24 Mar 2024 11:28:45 +0100 +Subject: Don't change current directory if started from Terminal + + +diff --git a/src/main/haiku/SDL_BeApp.cc b/src/main/haiku/SDL_BeApp.cc +index a736a9f..92f0aeb 100644 +--- a/src/main/haiku/SDL_BeApp.cc ++++ b/src/main/haiku/SDL_BeApp.cc +@@ -118,9 +118,12 @@ static int StartBeLooper() + } while ((!be_app) || be_app->IsLaunching()); + } + +- /* Change working directory to that of executable */ ++ /* If started from the GUI, change working directory to that of executable. ++ * This matches the behavior on other platforms that some SDL software expects. ++ * If the TERM environment variable is set, we are being started from the terminal, in that ++ * case, it is more important to preserve the current directory. */ + app_info info; +- if (B_OK == be_app->GetAppInfo(&info)) { ++ if (NULL == getenv("TERM") && B_OK == be_app->GetAppInfo(&info)) { + entry_ref ref = info.ref; + BEntry entry; + if (B_OK == entry.SetTo(&ref)) { +-- +2.43.2 +