On 2026/08/19 10:20, [email protected] wrote:
> For testing purposes, that would be removing the old devel/sdl folder,
> putting this in devel/sdl as oppose to devel/sdl12-compat with a Makefile
> something like this?
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl/Makefile,v
diff -u -p -r1.108 Makefile
--- Makefile 21 Sep 2023 09:50:05 -0000 1.108
+++ Makefile 19 Aug 2026 11:05:11 -0000
@@ -1,79 +1,34 @@
-COMMENT= cross-platform multimedia library
+COMMENT = compatiblity layer SDL 1.2 on SDL2
-VERSION= 1.2.15
-DISTNAME= SDL-${VERSION}
-PKGNAME= ${DISTNAME:L}
-REVISION= 12
-CATEGORIES= devel
-MAINTAINER= Thomas Frohwein <[email protected]>
-SITES= ${HOMEPAGE}release/
-
-SHARED_LIBS= SDL 8.0
-
-HOMEPAGE= https://www.libsdl.org/
-
-# LGPLv2.1+
-PERMIT_PACKAGE= Yes
-
-WANTLIB= iconv m pthread sndio usbhid
-
-LIB_DEPENDS= converters/libiconv
-
-AUTOCONF_VERSION= 2.61
-BUILD_DEPENDS+= ${MODGNU_AUTOCONF_DEPENDS}
-
-.if ${MACHINE_ARCH} == "i386"
-BUILD_DEPENDS+= devel/nasm
-.endif
-
-FLAVORS= aa no_x11
-FLAVOR?=
-
-USE_GMAKE= Yes
-SEPARATE_BUILD= Yes
-CONFIGURE_STYLE= gnu
-MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC} ${WRKSRC}/test
-CONFIGURE_ARGS+= --disable-alsa \
- --disable-arts \
- --disable-esd \
- --disable-oss \
- --disable-pulseaudio
-CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" \
- LDFLAGS="-L${LOCALBASE}/lib"
-
-# in case devel/usb is installed, don't pick it up.
-CONFIGURE_ENV+= ac_cv_lib_usb_hid_init=no \
- ac_cv_header_usb_h=no
-
-.if ${FLAVOR:Maa}
-WANTLIB+= aa
-LIB_DEPENDS+= graphics/aalib
-CONFIGURE_ARGS+= --enable-video-aalib
-.endif
-
-.if ${FLAVOR:Mno_x11}
-CONFIGURE_ARGS+= --without-x \
- --disable-video-x11
-.else
-#
-# X11/Xext/Xrender/Xrandr are dlopen'd by SDL
-#
-WANTLIB+= X11 Xau Xdmcp Xext Xrandr Xrender xcb
-.endif
-
-NO_TEST= Yes
-
-# The assembly code contains AltiVec instructions, whose support is not
-# properly detected at runtime. Fix SIGILLs on macppc G3s, while keeping
-# it for powerpc64.
-.if ${MACHINE_ARCH} == "powerpc"
-CONFIGURE_ARGS+= --enable-altivec=no
-.endif
+V = 1.2.76
+
+DISTNAME = sdl12-compat-${V}
+PKGNAME = sdl-${V}
+
+SHARED_LIBS += SDL 8.1
+
+CATEGORIES = devel
+
+HOMEPAGE = https://github.com/libsdl-org/sdl12-compat
+
+MAINTAINER = Thomas Frohwein <[email protected]>
+
+# zlib
+PERMIT_PACKAGE = Yes
+
+# SDL2 is dlopen(3)'d
+WANTLIB += SDL2
+
+SITES =
https://github.com/libsdl-org/sdl12-compat/releases/download/release-${V}/
+
+MODULES = devel/cmake
+
+BUILD_DEPENDS = converters/libiconv
+LIB_DEPENDS = devel/sdl2
+
+CFLAGS += -I${X11BASE}/include -I${LOCALBASE}/include
pre-configure:
- @mkdir -p ${WRKSRC}/src/audio/sndio
- @cp ${FILESDIR}/SDL_sndioaudio.{c,h} ${WRKSRC}/src/audio/sndio
- @cd ${WRKSRC} && AUTOCONF_VERSION=${AUTOCONF_VERSION} PATH=${PORTPATH} \
- ./autogen.sh
+ ${SUBST_CMD} ${WRKSRC}/CMakeLists.txt
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/devel/sdl/distinfo,v
diff -u -p -r1.19 distinfo
--- distinfo 18 Jan 2015 03:13:47 -0000 1.19
+++ distinfo 19 Aug 2026 11:05:11 -0000
@@ -1,2 +1,2 @@
-SHA256 (SDL-1.2.15.tar.gz) = 1tMWp5Pl40gVXw3ZO5eXmJM/uYqh7evMEIgp1kdKrQA=
-SIZE (SDL-1.2.15.tar.gz) = 3920622
+SHA256 (sdl12-compat-1.2.76.tar.gz) =
poR3AJwkvG6HYyax6N0L7ewrDDesvdvd+QrLpI+6Szg=
+SIZE (sdl12-compat-1.2.76.tar.gz) = 487319
Index: files/SDL_sndioaudio.c
===================================================================
RCS file: files/SDL_sndioaudio.c
diff -N files/SDL_sndioaudio.c
--- files/SDL_sndioaudio.c 19 Dec 2013 09:24:18 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,243 +0,0 @@
-/*
- * Copyright (c) 2008 Jacob Meuser <[email protected]>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "SDL_config.h"
-
-/* Allow access to a raw mixing buffer */
-
-#ifdef HAVE_SIGNAL_H
-#include <signal.h>
-#endif
-#include <unistd.h>
-
-#include "SDL_timer.h"
-#include "SDL_audio.h"
-#include "../SDL_audiomem.h"
-#include "../SDL_audio_c.h"
-#include "../SDL_audiodev_c.h"
-#include "SDL_sndioaudio.h"
-
-/* The tag name used by sndio audio */
-#define SNDIO_DRIVER_NAME "sndio"
-
-/* Audio driver functions */
-static int SNDIO_OpenAudio(_THIS, SDL_AudioSpec *spec);
-static void SNDIO_WaitAudio(_THIS);
-static void SNDIO_PlayAudio(_THIS);
-static Uint8 *SNDIO_GetAudioBuf(_THIS);
-static void SNDIO_CloseAudio(_THIS);
-
-/* Audio driver bootstrap functions */
-
-static int Audio_Available(void)
-{
- struct sio_hdl *this_hdl;
- int available = 0;
-
- if ( (this_hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0)) != NULL ) {
- sio_close(this_hdl);
- available = 1;
- }
-
- return available;
-}
-
-static void Audio_DeleteDevice(SDL_AudioDevice *device)
-{
- SDL_free(device->hidden);
- SDL_free(device);
-}
-
-static SDL_AudioDevice *Audio_CreateDevice(int devindex)
-{
- SDL_AudioDevice *this;
-
- /* Initialize all variables that we clean on shutdown */
- this = (SDL_AudioDevice *)SDL_malloc(sizeof(SDL_AudioDevice));
- if ( this ) {
- SDL_memset(this, 0, (sizeof *this));
- this->hidden = (struct SDL_PrivateAudioData *)
- SDL_malloc((sizeof *this->hidden));
- }
- if ( (this == NULL) || (this->hidden == NULL) ) {
- SDL_OutOfMemory();
- if ( this ) {
- SDL_free(this);
- }
- return(0);
- }
- SDL_memset(this->hidden, 0, (sizeof *this->hidden));
-
- /* Set the function pointers */
- this->OpenAudio = SNDIO_OpenAudio;
- this->WaitAudio = SNDIO_WaitAudio;
- this->PlayAudio = SNDIO_PlayAudio;
- this->GetAudioBuf = SNDIO_GetAudioBuf;
- this->CloseAudio = SNDIO_CloseAudio;
-
- this->free = Audio_DeleteDevice;
-
- hdl = NULL;
-
- return this;
-}
-
-AudioBootStrap SNDIO_bootstrap = {
- SNDIO_DRIVER_NAME, "sndio",
- Audio_Available, Audio_CreateDevice
-};
-
-
-
-/* This function waits until it is possible to write a full sound buffer */
-static void SNDIO_WaitAudio(_THIS)
-{
- /* nothing, we're using the blocking api */
-}
-
-static void SNDIO_PlayAudio(_THIS)
-{
- int written;
-
- /* Write the audio data */
- written = sio_write(hdl, mixbuf, mixlen);
-
- /* If we couldn't write, assume fatal error for now */
- if ( written == 0 ) {
- this->enabled = 0;
- }
-#ifdef DEBUG_AUDIO
- fprintf(stderr, "Wrote %d bytes of audio data\n", written);
-#endif
-}
-
-static Uint8 *SNDIO_GetAudioBuf(_THIS)
-{
- return(mixbuf);
-}
-
-static void SNDIO_CloseAudio(_THIS)
-{
- if ( mixbuf != NULL ) {
- SDL_FreeAudioMem(mixbuf);
- mixbuf = NULL;
- }
- if ( hdl != NULL ) {
- sio_close(hdl);
- hdl = NULL;
- }
-}
-
-static int SNDIO_OpenAudio(_THIS, SDL_AudioSpec *spec)
-{
- struct sio_par par;
-
- mixbuf = NULL;
-
- if ((hdl = sio_open(NULL, SIO_PLAY, 0)) == NULL) {
- SDL_SetError("sio_open() failed");
- return(-1);
- }
-
- sio_initpar(&par);
-
- switch (spec->format) {
- case AUDIO_S16LSB:
- par.bits = 16;
- par.sig = 1;
- par.le = 1;
- break;
- case AUDIO_S16MSB:
- par.bits = 16;
- par.sig = 1;
- par.le = 0;
- break;
- case AUDIO_S8:
- par.bits = 8;
- par.sig = 1;
- break;
- case AUDIO_U16LSB:
- par.bits = 16;
- par.sig = 0;
- par.le = 1;
- break;
- case AUDIO_U16MSB:
- par.bits = 16;
- par.sig = 0;
- par.le = 0;
- break;
- case AUDIO_U8:
- par.bits = 8;
- par.sig = 0;
- break;
- default:
- SDL_SetError("SNDIO unknown format");
- return(-1);
- }
-
- par.rate = spec->freq;
- par.pchan = spec->channels;
- par.round = spec->samples;
- par.appbufsz = par.round * 2;
-
- if (sio_setpar(hdl, &par) == 0) {
- SDL_SetError("sio_setpar() failed");
- return(-1);
- }
-
- if (sio_getpar(hdl, &par) == 0) {
- SDL_SetError("sio_getpar() failed");
- return(-1);
- }
-
- if (par.bits == 16) {
- if (par.sig && par.le) {
- spec->format = AUDIO_S16LSB;
- } else if (par.sig && !par.le) {
- spec->format = AUDIO_S16MSB;
- } else if (!par.sig && par.le) {
- spec->format = AUDIO_U16LSB;
- } else
- spec->format = AUDIO_U16MSB;
- } else if (par.bits == 8) {
- spec->format = par.sig ? AUDIO_S8 : AUDIO_U8;
- } else {
- SDL_SetError("SNDIO couldn't configure a suitable format");
- return(-1);
- }
-
- spec->freq = par.rate;
- spec->channels = par.pchan;
- spec->samples = par.round;
-
- SDL_CalculateAudioSpec(spec);
-
- /* Allocate mixing buffer */
- mixlen = spec->size;
- mixbuf = (Uint8 *)SDL_AllocAudioMem(mixlen);
- if ( mixbuf == NULL ) {
- return(-1);
- }
- SDL_memset(mixbuf, spec->silence, spec->size);
-
- if ( sio_start(hdl) == 0 ) {
- SDL_SetError("sio_start() failed");
- return(-1);
- }
-
- /* We're ready to rock and roll. :-) */
- return(0);
-}
Index: files/SDL_sndioaudio.h
===================================================================
RCS file: files/SDL_sndioaudio.h
diff -N files/SDL_sndioaudio.h
--- files/SDL_sndioaudio.h 15 Dec 2013 01:57:55 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2008 Jacob Meuser <[email protected]>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "SDL_config.h"
-
-#ifndef _SDL_sndioaudio_h
-#define _SDL_sndioaudio_h
-
-#include <sndio.h>
-
-#include "../SDL_sysaudio.h"
-
-/* Hidden "this" pointer for the video functions */
-#define _THIS SDL_AudioDevice *this
-
-struct SDL_PrivateAudioData {
- /* The stream descriptor for the audio device */
- struct sio_hdl *hdl;
-
- /* The parent process id, to detect when application quits */
- pid_t parent;
-
- /* Raw mixing buffer */
- Uint8 *mixbuf;
- int mixlen;
-
-};
-
-/* Old variable names */
-#define stream (this->hidden->stream)
-#define parent (this->hidden->parent)
-#define mixbuf (this->hidden->mixbuf)
-#define mixlen (this->hidden->mixlen)
-#define hdl (this->hidden->hdl)
-
-#endif /* _SDL_sndioaudio_h */
-
Index: patches/patch-CMakeLists_txt
===================================================================
RCS file: patches/patch-CMakeLists_txt
diff -N patches/patch-CMakeLists_txt
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-CMakeLists_txt 19 Aug 2026 11:05:11 -0000
@@ -0,0 +1,44 @@
+Index: CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -93,6 +93,11 @@ if(APPLE)
+ set_target_properties(SDL PROPERTIES
+ OUTPUT_NAME "SDL-1.2.0"
+ )
++elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
++ set_target_properties(SDL PROPERTIES
++ VERSION "${PROJECT_VERSION}"
++ OUTPUT_NAME "SDL"
++ )
+ elseif(UNIX AND NOT ANDROID)
+ set_target_properties(SDL PROPERTIES
+ VERSION "${PROJECT_VERSION}"
+@@ -194,9 +199,17 @@ if(SDL12DEVEL)
+ set(SDL_STATIC_LIBS "")
+ set(SDL_RLD_FLAGS "") # !!! FIXME: this forces rpath, which we might
want?
+ else() # unix
+- set(SDL_CFLAGS "-D_GNU_SOURCE=1 -D_REENTRANT")
++ if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
++ set(SDL_CFLAGS "-D_GNU_SOURCE=1 -D_REENTRANT -I${LOCALBASE}/include
-I${X11BASE}/include -DXTHREADS")
++ else()
++ set(SDL_CFLAGS "-D_GNU_SOURCE=1 -D_REENTRANT")
++ endif()
+ set(SDL_RLD_FLAGS "") # !!! FIXME: this forces rpath, which we might
want?
+- set(SDL_LIBS "-lSDL")
++ if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
++ set(SDL_LIBS "-lSDL -pthread -L${X11BASE}/lib")
++ else()
++ set(SDL_LIBS "-lSDL")
++ endif()
+ set(SDL_STATIC_LIBS "")
+ foreach(lib ${CMAKE_DL_LIBS})
+ set(SDL_STATIC_LIBS "-l${lib}")
+@@ -235,7 +248,7 @@ if(SDL12DEVEL)
+
+ set(SOEXT ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ get_target_property(SONAME SDL OUTPUT_NAME)
+- if(UNIX AND NOT ANDROID)
++ if(UNIX AND NOT ANDROID AND NOT (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD"))
+ install(CODE "
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
+ \"lib${SONAME}${SOPOSTFIX}${SOEXT}\" \"libSDL${SOPOSTFIX}${SOEXT}\"
Index: patches/patch-Makefile_in
===================================================================
RCS file: patches/patch-Makefile_in
diff -N patches/patch-Makefile_in
--- patches/patch-Makefile_in 11 Mar 2022 18:53:23 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- Makefile.in.orig Thu Jan 19 01:30:05 2012
-+++ Makefile.in Wed Feb 22 13:39:54 2012
-@@ -49,7 +49,7 @@ LT_AGE = @LT_AGE@
- LT_CURRENT = @LT_CURRENT@
- LT_RELEASE = @LT_RELEASE@
- LT_REVISION = @LT_REVISION@
--LT_LDFLAGS = -no-undefined -rpath $(DESTDIR)$(libdir) -release $(LT_RELEASE)
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
-+LT_LDFLAGS = -no-undefined -rpath $(DESTDIR)$(libdir) -version-info
$(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
-
- all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET)
$(objects)/$(SDLMAIN_TARGET)
-
Index: patches/patch-configure_in
===================================================================
RCS file: patches/patch-configure_in
diff -N patches/patch-configure_in
--- patches/patch-configure_in 11 Mar 2022 18:53:23 -0000 1.31
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,88 +0,0 @@
---- configure.in.orig Thu Jan 19 01:30:05 2012
-+++ configure.in Thu Dec 5 14:41:54 2013
-@@ -486,6 +486,35 @@ AC_HELP_STRING([--enable-esd-shared], [dynamically loa
- fi
- }
-
-+dnl Find Sndio
-+CheckSndio()
-+{
-+ AC_ARG_ENABLE(sndio,
-+AC_HELP_STRING([--enable-sndio], [support the sndio audio API
[[default=yes]]]),
-+ , enable_sndioaudio=yes)
-+ if test x$enable_audio = xyes -a x$enable_sndioaudio = xyes; then
-+ AC_CHECK_HEADER(sndio.h, have_sndio_hdr=yes)
-+ AC_CHECK_LIB(sndio, sio_open, have_sndio_lib=yes)
-+
-+ AC_MSG_CHECKING(for sndio support)
-+ have_sndio=no
-+
-+ if test x$have_sndio_hdr = xyes -a x$have_sndio_lib = xyes; then
-+ have_sndio=yes
-+ SNDIO_LIBS="-lsndio"
-+ fi
-+
-+ AC_MSG_RESULT($have_sndio)
-+
-+ if test x$have_sndio = xyes; then
-+ AC_DEFINE(SDL_AUDIO_DRIVER_SNDIO)
-+ SOURCES="$SOURCES $srcdir/src/audio/sndio/*.c"
-+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $SNDIO_LIBS"
-+ have_audio=yes
-+ fi
-+ fi
-+}
-+
- dnl Find PulseAudio
- CheckPulseAudio()
- {
-@@ -860,8 +889,8 @@ CheckVisibilityHidden()
- save_CFLAGS="$CFLAGS"
- CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
- AC_TRY_COMPILE([
-- #if !defined(__GNUC__) || __GNUC__ < 4
-- #error SDL only uses visibility attributes in GCC 4 or newer
-+ #if !defined(__GNUC__) || __GNUC__ < 3
-+ #error SDL only uses visibility attributes in GCC 3 or newer
- #endif
- ],[
- ],[
-@@ -1005,6 +1034,12 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically loa
- x11_lib='libX11.so'
- x11ext_lib='libXext.so'
- ;;
-+ *-*-openbsd*)
-+ x11_lib='libX11.so'
-+ x11ext_lib='libXext.so'
-+ xrender_lib='libXrender.so'
-+ xrandr_lib='libXrandr.so'
-+ ;;
- *)
- x11_lib=[`find_lib "libX11.so.*" "$X_LIBS
-L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
- x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS
-L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
-@@ -1034,7 +1069,7 @@ AC_HELP_STRING([--enable-x11-shared], [dynamically loa
- fi
- if test x$x11_symbols_private != xyes && \
- test x$enable_x11_shared = xyes; then
-- AC_MSG_WARN([You must have gcc4 (-fvisibility=hidden) for
dynamic X11 loading])
-+ AC_MSG_WARN([You must have gcc3 (-fvisibility=hidden) for
dynamic X11 loading])
- enable_x11_shared=no
- fi
-
-@@ -2358,6 +2393,7 @@ case "$host" in
- CheckALSA
- CheckARTSC
- CheckESD
-+ CheckSndio
- CheckPulseAudio
- CheckNAS
- CheckX11
-@@ -2390,7 +2426,7 @@ case "$host" in
- SOURCES="$SOURCES $srcdir/src/audio/sun/*.c"
- have_audio=yes
- ;;
-- netbsd|openbsd)
-+ netbsd)
- AC_DEFINE(SDL_AUDIO_DRIVER_BSD)
- SOURCES="$SOURCES $srcdir/src/audio/bsd/*.c"
- have_audio=yes
Index: patches/patch-include_SDL_config_h_in
===================================================================
RCS file: patches/patch-include_SDL_config_h_in
diff -N patches/patch-include_SDL_config_h_in
--- patches/patch-include_SDL_config_h_in 11 Mar 2022 18:53:23 -0000
1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,10 +0,0 @@
---- include/SDL_config.h.in.orig Thu Jan 19 01:30:05 2012
-+++ include/SDL_config.h.in Wed Feb 22 13:39:54 2012
-@@ -184,6 +184,7 @@
- #undef SDL_AUDIO_DRIVER_QNXNTO
- #undef SDL_AUDIO_DRIVER_SNDMGR
- #undef SDL_AUDIO_DRIVER_SUNAUDIO
-+#undef SDL_AUDIO_DRIVER_SNDIO
- #undef SDL_AUDIO_DRIVER_WAVEOUT
-
- /* Enable various cdrom drivers */
Index: patches/patch-include_SDL_opengl_h
===================================================================
RCS file: patches/patch-include_SDL_opengl_h
diff -N patches/patch-include_SDL_opengl_h
--- patches/patch-include_SDL_opengl_h 11 Mar 2022 18:53:23 -0000 1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-Index: include/SDL_opengl.h
---- include/SDL_opengl.h.orig
-+++ include/SDL_opengl.h
-@@ -35,7 +35,12 @@
- #endif
- #ifndef NO_SDL_GLEXT
- #define __glext_h_ /* Don't let gl.h include glext.h */
-+#define __gl_glext_h_ /* Don't let gl.h include glext.h */
-+#ifndef GL_ARB_shader_objects
-+#define GL_ARB_shader_objects 0
-+#define undef_GL_ARB
- #endif
-+#endif
- #if defined(__MACOSX__)
- #include <OpenGL/gl.h> /* Header File For The OpenGL Library */
- #include <OpenGL/glu.h> /* Header File For The GLU Library */
-@@ -48,6 +53,11 @@
- #endif
- #ifndef NO_SDL_GLEXT
- #undef __glext_h_
-+#undef __gl_glext_h_
-+#ifdef undef_GL_ARB
-+#undef GL_ARB_shader_objects
-+#undef undef_GL_ARB
-+#endif
- #endif
-
- /** @name GLext.h
Index: patches/patch-include_begin_code_h
===================================================================
RCS file: patches/patch-include_begin_code_h
diff -N patches/patch-include_begin_code_h
--- patches/patch-include_begin_code_h 11 Mar 2022 18:53:23 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- include/begin_code.h.orig Tue Jan 15 19:09:01 2013
-+++ include/begin_code.h Tue Jan 15 19:09:45 2013
-@@ -77,7 +77,7 @@
- # define DECLSPEC
- # endif
- # else
--# if defined(__GNUC__) && __GNUC__ >= 4
-+# if defined(__GNUC__) && __GNUC__ >= 3
- # define DECLSPEC __attribute__ ((visibility("default")))
- # else
- # define DECLSPEC
Index: patches/patch-sdl-config_in
===================================================================
RCS file: patches/patch-sdl-config_in
diff -N patches/patch-sdl-config_in
--- patches/patch-sdl-config_in 11 Mar 2022 18:53:23 -0000 1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
---- sdl-config.in.orig Sun Dec 30 20:48:39 2007
-+++ sdl-config.in Tue Mar 18 20:33:17 2008
-@@ -42,10 +42,10 @@ while test $# -gt 0; do
- echo @SDL_VERSION@
- ;;
- --cflags)
-- echo -I@includedir@/SDL @SDL_CFLAGS@
-+ echo -I@includedir@ -I@includedir@/SDL @SDL_CFLAGS@ @X_CFLAGS@
- ;;
- @ENABLE_SHARED_TRUE@ --libs)
--@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
-+@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ @X_LIBS@
- @ENABLE_SHARED_TRUE@ ;;
- @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs)
- @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs)
Index: patches/patch-sdl_pc_in
===================================================================
RCS file: patches/patch-sdl_pc_in
diff -N patches/patch-sdl_pc_in
--- patches/patch-sdl_pc_in 11 Mar 2022 18:53:23 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- sdl.pc.in.orig Mon Oct 12 19:07:20 2009
-+++ sdl.pc.in Sat Nov 7 13:30:12 2009
-@@ -10,6 +10,5 @@ Description: Simple DirectMedia Layer is a cross-platf
- Version: @SDL_VERSION@
- Requires:
- Conflicts:
--Libs: -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@
--Libs.private: @SDL_STATIC_LIBS@
--Cflags: -I${includedir}/SDL @SDL_CFLAGS@
-+Libs: -L${libdir} @SDL_RLD_FLAGS@ @SDL_LIBS@ @X_LIBS@
-+Cflags: -I${includedir}/SDL @SDL_CFLAGS@ @X_CFLAGS@
Index: patches/patch-src_SDL12_compat_c
===================================================================
RCS file: patches/patch-src_SDL12_compat_c
diff -N patches/patch-src_SDL12_compat_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_SDL12_compat_c 19 Aug 2026 11:05:11 -0000
@@ -0,0 +1,16 @@
+Index: src/SDL12_compat.c
+--- src/SDL12_compat.c.orig
++++ src/SDL12_compat.c
+@@ -1341,7 +1341,11 @@ static char loaderror[256];
+ }
+ #elif defined(__unix__)
+ #include <dlfcn.h>
+- #define SDL20_LIBNAME "libSDL2-2.0.so.0"
++ #ifdef __OpenBSD__
++ #define SDL20_LIBNAME "libSDL2.so"
++ #else
++ #define SDL20_LIBNAME "libSDL2-2.0.so.0"
++ #endif
+ #define SDL20_REQUIRED_VER SDL_VERSIONNUM(2,0,7)
+ static void *Loaded_SDL20 = NULL;
+ #define LoadSDL20Library() ((Loaded_SDL20 = dlopen(SDL20_LIBNAME,
RTLD_LOCAL|RTLD_NOW)) != NULL)
Index: patches/patch-src_audio_SDL_audio_c
===================================================================
RCS file: patches/patch-src_audio_SDL_audio_c
diff -N patches/patch-src_audio_SDL_audio_c
--- patches/patch-src_audio_SDL_audio_c 11 Mar 2022 18:53:23 -0000 1.18
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
---- src/audio/SDL_audio.c.orig Thu Jan 19 01:30:06 2012
-+++ src/audio/SDL_audio.c Wed Feb 22 13:41:58 2012
-@@ -36,11 +36,15 @@
-
- /* Available audio drivers */
- static AudioBootStrap *bootstrap[] = {
-+
- #if SDL_AUDIO_DRIVER_PULSE
- &PULSE_bootstrap,
- #endif
- #if SDL_AUDIO_DRIVER_ALSA
- &ALSA_bootstrap,
-+#endif
-+#if SDL_AUDIO_DRIVER_SNDIO
-+ &SNDIO_bootstrap,
- #endif
- #if SDL_AUDIO_DRIVER_BSD
- &BSD_AUDIO_bootstrap,
Index: patches/patch-src_audio_SDL_sysaudio_h
===================================================================
RCS file: patches/patch-src_audio_SDL_sysaudio_h
diff -N patches/patch-src_audio_SDL_sysaudio_h
--- patches/patch-src_audio_SDL_sysaudio_h 11 Mar 2022 18:53:23 -0000
1.7
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
---- src/audio/SDL_sysaudio.h.orig Thu Jan 19 01:30:06 2012
-+++ src/audio/SDL_sysaudio.h Wed Feb 22 13:39:54 2012
-@@ -105,6 +105,9 @@ typedef struct AudioBootStrap {
- #if SDL_AUDIO_DRIVER_BSD
- extern AudioBootStrap BSD_AUDIO_bootstrap;
- #endif
-+#if SDL_AUDIO_DRIVER_SNDIO
-+extern AudioBootStrap SNDIO_bootstrap;
-+#endif
- #if SDL_AUDIO_DRIVER_PULSE
- extern AudioBootStrap PULSE_bootstrap;
- #endif
Index: patches/patch-src_cpuinfo_SDL_cpuinfo_c
===================================================================
RCS file: patches/patch-src_cpuinfo_SDL_cpuinfo_c
diff -N patches/patch-src_cpuinfo_SDL_cpuinfo_c
--- patches/patch-src_cpuinfo_SDL_cpuinfo_c 11 Mar 2022 18:53:23 -0000
1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
---- src/cpuinfo/SDL_cpuinfo.c.orig Thu Jan 19 01:30:06 2012
-+++ src/cpuinfo/SDL_cpuinfo.c Fri Feb 24 16:08:00 2012
-@@ -28,6 +28,10 @@
-
- #if defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))
- #include <sys/sysctl.h> /* For AltiVec check */
-+#elif defined(__OpenBSD__) && defined(__powerpc__)
-+#include <sys/param.h>
-+#include <sys/sysctl.h> /* For AltiVec check */
-+#include <machine/cpu.h>
- #elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP
- #include <signal.h>
- #include <setjmp.h>
-@@ -42,7 +46,7 @@
- #define CPU_HAS_SSE2 0x00000080
- #define CPU_HAS_ALTIVEC 0x00000100
-
--#if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOSX__
-+#if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOSX__ && !__OpenBSD__
- /* This is the brute force way of detecting instruction sets...
- the idea is borrowed from the libmpeg2 library - thanks!
- */
-@@ -359,8 +363,12 @@ static __inline__ int CPU_haveSSE2(void)
- static __inline__ int CPU_haveAltiVec(void)
- {
- volatile int altivec = 0;
--#if defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))
-- int selectors[2] = { CTL_HW, HW_VECTORUNIT };
-+#if (defined(__MACOSX__) && (defined(__ppc__) || defined(__ppc64__))) ||
(defined(__OpenBSD__) && defined(__powerpc__))
-+# ifdef __OpenBSD__
-+ int selectors[2] = { CTL_MACHDEP, CPU_ALTIVEC };
-+# else
-+ int selectors[2] = { CTL_HW, HW_VECTORUNIT };
-+# endif
- int hasVectorUnit = 0;
- size_t length = sizeof(hasVectorUnit);
- int error = sysctl(selectors, 2, &hasVectorUnit, &length, NULL, 0);
Index: patches/patch-src_joystick_bsd_SDL_sysjoystick_c
===================================================================
RCS file: patches/patch-src_joystick_bsd_SDL_sysjoystick_c
diff -N patches/patch-src_joystick_bsd_SDL_sysjoystick_c
--- patches/patch-src_joystick_bsd_SDL_sysjoystick_c 11 Mar 2022 18:53:23
-0000 1.13
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,24 +0,0 @@
-It is easy to exhaust uhid devices in this day and age.
-use ujoy(4) device nodes
-
-Index: src/joystick/bsd/SDL_sysjoystick.c
---- src/joystick/bsd/SDL_sysjoystick.c.orig
-+++ src/joystick/bsd/SDL_sysjoystick.c
-@@ -77,7 +77,7 @@
- #include "../SDL_sysjoystick.h"
- #include "../SDL_joystick_c.h"
-
--#define MAX_UHID_JOYS 4
-+#define MAX_UHID_JOYS 16
- #define MAX_JOY_JOYS 2
- #define MAX_JOYS (MAX_UHID_JOYS + MAX_JOY_JOYS)
-
-@@ -170,7 +170,7 @@ SDL_SYS_JoystickInit(void)
- for (i = 0; i < MAX_UHID_JOYS; i++) {
- SDL_Joystick nj;
-
-- SDL_snprintf(s, SDL_arraysize(s), "/dev/uhid%d", i);
-+ SDL_snprintf(s, SDL_arraysize(s), "/dev/ujoy/%d", i);
-
- nj.index = SDL_numjoysticks;
- joynames[nj.index] = strdup(s);
Index: patches/patch-src_thread_pthread_SDL_syssem_c
===================================================================
RCS file: patches/patch-src_thread_pthread_SDL_syssem_c
diff -N patches/patch-src_thread_pthread_SDL_syssem_c
--- patches/patch-src_thread_pthread_SDL_syssem_c 11 Mar 2022 18:53:23
-0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-Fixed bug 1426 - SDL_SemWaitTimeout returns -1 and sets error instead of
-SDL_MUTEX_TIMEDOUT on time out
-
---- src/thread/pthread/SDL_syssem.c.orig Fri Mar 2 04:42:50 2012
-+++ src/thread/pthread/SDL_syssem.c Fri Mar 2 04:44:23 2012
-@@ -144,8 +144,14 @@ int SDL_SemWaitTimeout(SDL_sem *sem, Uint32 timeout)
- retval = sem_timedwait(&sem->sem, &ts_timeout);
- while (retval == -1 && errno == EINTR);
-
-- if (retval == -1)
-- SDL_SetError(strerror(errno));
-+ if (retval == -1) {
-+ if (errno == ETIMEDOUT) {
-+ retval = SDL_MUTEX_TIMEDOUT;
-+ }
-+ else {
-+ SDL_SetError(strerror(errno));
-+ }
-+ }
- #else
- end = SDL_GetTicks() + timeout;
- while ((retval = SDL_SemTryWait(sem)) == SDL_MUTEX_TIMEDOUT) {
Index: patches/patch-src_video_SDL_blit_N_c
===================================================================
RCS file: patches/patch-src_video_SDL_blit_N_c
diff -N patches/patch-src_video_SDL_blit_N_c
--- patches/patch-src_video_SDL_blit_N_c 11 Mar 2022 18:53:23 -0000
1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-- Fixed bug 1424 - Handling of alpha channel in Altivec accelerated blit
functions
-- Use fast path for RGB 565 -> 32-bit XRGB 8888
-
---- src/video/SDL_blit_N.c.orig Thu Jan 19 01:30:06 2012
-+++ src/video/SDL_blit_N.c Thu Oct 25 21:57:48 2012
-@@ -689,6 +689,8 @@ static void ConvertAltivec32to32_noprefetch(SDL_BlitIn
- while ((UNALIGNED_PTR(dst)) && (width)) {
- bits = *(src++);
- RGBA_FROM_8888(bits, srcfmt, r, g, b, a);
-+ if(!srcfmt->Amask)
-+ a = srcfmt->alpha;
- *(dst++) = MAKE8888(dstfmt, r, g, b, a);
- width--;
- }
-@@ -716,6 +718,8 @@ static void ConvertAltivec32to32_noprefetch(SDL_BlitIn
- while (extrawidth) {
- bits = *(src++); /* max 7 pixels, don't bother with prefetch. */
- RGBA_FROM_8888(bits, srcfmt, r, g, b, a);
-+ if(!srcfmt->Amask)
-+ a = srcfmt->alpha;
- *(dst++) = MAKE8888(dstfmt, r, g, b, a);
- extrawidth--;
- }
-@@ -769,6 +773,8 @@ static void ConvertAltivec32to32_prefetch(SDL_BlitInfo
- vec_dstst(dst+scalar_dst_lead, DST_CTRL(2,32,1024),
DST_CHAN_DEST);
- bits = *(src++);
- RGBA_FROM_8888(bits, srcfmt, r, g, b, a);
-+ if(!srcfmt->Amask)
-+ a = srcfmt->alpha;
- *(dst++) = MAKE8888(dstfmt, r, g, b, a);
- width--;
- }
-@@ -798,6 +804,8 @@ static void ConvertAltivec32to32_prefetch(SDL_BlitInfo
- while (extrawidth) {
- bits = *(src++); /* max 7 pixels, don't bother with prefetch. */
- RGBA_FROM_8888(bits, srcfmt, r, g, b, a);
-+ if(!srcfmt->Amask)
-+ a = srcfmt->alpha;
- *(dst++) = MAKE8888(dstfmt, r, g, b, a);
- extrawidth--;
- }
-@@ -2299,13 +2307,13 @@ static const struct blit_table normal_blit_2[] = {
- 2, NULL, Blit_RGB555_32Altivec, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
- #endif
- { 0x0000F800,0x000007E0,0x0000001F, 4, 0x00FF0000,0x0000FF00,0x000000FF,
-- 0, NULL, Blit_RGB565_ARGB8888, SET_ALPHA },
-+ 0, NULL, Blit_RGB565_ARGB8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
- { 0x0000F800,0x000007E0,0x0000001F, 4, 0x000000FF,0x0000FF00,0x00FF0000,
-- 0, NULL, Blit_RGB565_ABGR8888, SET_ALPHA },
-+ 0, NULL, Blit_RGB565_ABGR8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
- { 0x0000F800,0x000007E0,0x0000001F, 4, 0xFF000000,0x00FF0000,0x0000FF00,
-- 0, NULL, Blit_RGB565_RGBA8888, SET_ALPHA },
-+ 0, NULL, Blit_RGB565_RGBA8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
- { 0x0000F800,0x000007E0,0x0000001F, 4, 0x0000FF00,0x00FF0000,0xFF000000,
-- 0, NULL, Blit_RGB565_BGRA8888, SET_ALPHA },
-+ 0, NULL, Blit_RGB565_BGRA8888, NO_ALPHA | COPY_ALPHA | SET_ALPHA },
-
- /* Default for 16-bit RGB source, used if no other blitter matches */
- { 0,0,0, 0, 0,0,0, 0, NULL, BlitNtoN, 0 }
Index: patches/patch-src_video_x11_SDL_x11events_c
===================================================================
RCS file: patches/patch-src_video_x11_SDL_x11events_c
diff -N patches/patch-src_video_x11_SDL_x11events_c
--- patches/patch-src_video_x11_SDL_x11events_c 11 Mar 2022 18:53:23 -0000
1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,28 +0,0 @@
-Fixed bug 1390 - X11_KeyToUnicode
-
---- src/video/x11/SDL_x11events.c.orig Wed Feb 22 19:31:47 2012
-+++ src/video/x11/SDL_x11events.c Wed Feb 22 19:33:27 2012
-@@ -1246,14 +1246,23 @@ static void get_modifier_masks(Display *display)
- * sequences (dead accents, compose key sequences) will not work since the
- * state has been irrevocably lost.
- */
-+extern DECLSPEC Uint16 SDLCALL X11_KeyToUnicode(SDLKey, SDLMod);
-+
- Uint16 X11_KeyToUnicode(SDLKey keysym, SDLMod modifiers)
- {
-+ static int warning = 0;
- struct SDL_VideoDevice *this = current_video;
- char keybuf[32];
- int i;
- KeySym xsym = 0;
- XKeyEvent xkey;
- Uint16 unicode;
-+
-+ if ( warning ) {
-+ warning = 0;
-+ fprintf(stderr, "WARNING: Application is using
X11_KeyToUnicode().\n");
-+ fprintf(stderr, "This is not an official SDL function, please
report this as a bug.\n");
-+ }
-
- if ( !this || !SDL_Display ) {
- return 0;
Index: patches/patch-src_video_x11_SDL_x11gl_c
===================================================================
RCS file: patches/patch-src_video_x11_SDL_x11gl_c
diff -N patches/patch-src_video_x11_SDL_x11gl_c
--- patches/patch-src_video_x11_SDL_x11gl_c 11 Mar 2022 18:53:23 -0000
1.15
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- src/video/x11/SDL_x11gl.c.orig Thu Jan 19 01:30:06 2012
-+++ src/video/x11/SDL_x11gl.c Wed Feb 22 13:39:54 2012
-@@ -34,7 +34,7 @@
- #elif defined(__QNXNTO__)
- #define DEFAULT_OPENGL "libGL.so.3"
- #elif defined(__OpenBSD__)
--#define DEFAULT_OPENGL "libGL.so.4.0"
-+#define DEFAULT_OPENGL "libGL.so"
- #else
- #define DEFAULT_OPENGL "libGL.so.1"
- #endif
Index: patches/patch-src_video_x11_SDL_x11sym_h
===================================================================
RCS file: patches/patch-src_video_x11_SDL_x11sym_h
diff -N patches/patch-src_video_x11_SDL_x11sym_h
--- patches/patch-src_video_x11_SDL_x11sym_h 11 Mar 2022 18:53:23 -0000
1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,11 +0,0 @@
---- src/video/x11/SDL_x11sym.h.orig Tue Apr 30 00:39:44 2013
-+++ src/video/x11/SDL_x11sym.h Tue Apr 30 00:40:30 2013
-@@ -165,7 +165,7 @@ SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),r
- */
- #ifdef LONG64
- SDL_X11_MODULE(IO_32BIT)
--SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned
len),(dpy,data,len),return)
-+SDL_X11_SYM(int,_XData32,(Display *dpy,register const long *data,unsigned
len),(dpy,data,len),return)
- SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long
len),(dpy,data,len),)
- #endif
-
Index: patches/patch-src_video_x11_SDL_x11video_c
===================================================================
RCS file: patches/patch-src_video_x11_SDL_x11video_c
diff -N patches/patch-src_video_x11_SDL_x11video_c
--- patches/patch-src_video_x11_SDL_x11video_c 11 Mar 2022 18:53:23 -0000
1.4
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,29 +0,0 @@
-Fixed bug 1427 - integer passed to XChangeProperty() causes crash
-
---- src/video/x11/SDL_x11video.c.orig Wed Feb 22 19:34:11 2012
-+++ src/video/x11/SDL_x11video.c Wed Feb 22 19:36:25 2012
-@@ -418,16 +418,21 @@ static void create_aux_windows(_THIS)
- }
-
- {
-- pid_t pid = getpid();
-+ union align_pid {
-+ pid_t pid;
-+ long dummy;
-+ } a_pid;
- char hostname[256];
-
-- if (pid > 0 && gethostname(hostname, sizeof(hostname)) > -1) {
-+ a_pid.pid = getpid();
-+
-+ if (a_pid.pid > 0 && gethostname(hostname, sizeof(hostname)) >
-1) {
- Atom _NET_WM_PID = XInternAtom(SDL_Display,
"_NET_WM_PID", False);
- Atom WM_CLIENT_MACHINE = XInternAtom(SDL_Display,
"WM_CLIENT_MACHINE", False);
-
- hostname[sizeof(hostname)-1] = '\0';
- XChangeProperty(SDL_Display, WMwindow, _NET_WM_PID,
XA_CARDINAL, 32,
-- PropModeReplace, (unsigned char *)&pid,
1);
-+ PropModeReplace, (unsigned char
*)&a_pid.pid, 1);
- XChangeProperty(SDL_Display, WMwindow,
WM_CLIENT_MACHINE, XA_STRING, 8,
- PropModeReplace, (unsigned char
*)hostname, SDL_strlen(hostname));
- }
Index: patches/patch-src_video_x11_SDL_x11wm_c
===================================================================
RCS file: patches/patch-src_video_x11_SDL_x11wm_c
diff -N patches/patch-src_video_x11_SDL_x11wm_c
--- patches/patch-src_video_x11_SDL_x11wm_c 11 Mar 2022 18:53:23 -0000
1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,94 +0,0 @@
-Use _NET_WM_ICON if possible for X11's SDL_WM_SetIcon() implementation.
-
---- src/video/x11/SDL_x11wm.c.orig Thu Oct 25 21:58:52 2012
-+++ src/video/x11/SDL_x11wm.c Thu Oct 25 22:01:06 2012
-@@ -43,6 +43,7 @@ static Uint8 reverse_byte(Uint8 x)
-
- void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
- {
-+ Atom _NET_WM_ICON = XInternAtom(SDL_Display, "_NET_WM_ICON", False);
- SDL_Surface *sicon;
- XWMHints *wmhints;
- XImage *icon_image;
-@@ -59,6 +60,81 @@ void X11_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask
- int masksize;
-
- SDL_Lock_EventThread();
-+
-+ if (_NET_WM_ICON) { /* better interface for modern systems. */
-+ SDL_PixelFormat format;
-+ SDL_Surface *surface;
-+ int propsize;
-+ long *propdata;
-+
-+ /* Convert the icon to ARGB for modern window managers */
-+ SDL_memset(&format, 0, sizeof (format));
-+ format.BitsPerPixel = 32;
-+ format.BytesPerPixel = 4;
-+ #if SDL_BYTEORDER == SDL_BIG_ENDIAN
-+ format.Rshift = 8;
-+ format.Gshift = 16;
-+ format.Bshift = 24;
-+ format.Ashift = 0;
-+ #else
-+ format.Rshift = 16;
-+ format.Gshift = 8;
-+ format.Bshift = 0;
-+ format.Ashift = 24;
-+ #endif
-+ format.Rmask = 0xFF << format.Rshift;
-+ format.Gmask = 0xFF << format.Gshift;
-+ format.Bmask = 0xFF << format.Bshift;
-+ format.Amask = 0xFF << format.Ashift;
-+ format.alpha = SDL_ALPHA_OPAQUE;
-+
-+ surface = SDL_ConvertSurface(icon, &format, 0);
-+ if (!surface) {
-+ return;
-+ }
-+
-+ /* Set the _NET_WM_ICON property */
-+ propsize = 2 + (icon->w * icon->h);
-+ propdata = SDL_malloc(propsize * sizeof(long));
-+ if (propdata) {
-+ const Uint32 alpha = format.Amask;
-+ int x, y;
-+ Uint32 *src;
-+ long *dst;
-+
-+ propdata[0] = icon->w;
-+ propdata[1] = icon->h;
-+ dst = &propdata[2];
-+
-+ size_t maskidx = 0;
-+ for (y = 0; y < icon->h; ++y) {
-+ src = (Uint32*)((Uint8*)surface->pixels + y *
surface->pitch);
-+ for (x = 0; x < icon->w; ++x) {
-+ const Uint32 pixel = *(src++);
-+ if (mask[maskidx / 8] & (1<<(7-(maskidx
% 8)))) {
-+ *dst++ = pixel | alpha;
-+ } else {
-+ *dst++ = pixel & ~alpha;
-+ }
-+ maskidx++;
-+ }
-+ }
-+
-+ XChangeProperty(SDL_Display, WMwindow, _NET_WM_ICON,
XA_CARDINAL,
-+ 32, PropModeReplace, (unsigned char *)
propdata,
-+ propsize);
-+ }
-+
-+ SDL_FreeSurface(surface);
-+ SDL_free(propdata);
-+
-+ XFlush(SDL_Display);
-+ SDL_Unlock_EventThread();
-+
-+ return;
-+ }
-+
-+ /* Do it the old way... */
-
- /* The icon must use the default visual, depth and colormap of the
- screen, so it might need a conversion */
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/devel/sdl/pkg/DESCR,v
diff -u -p -r1.11 DESCR
--- pkg/DESCR 2 Mar 2012 09:10:38 -0000 1.11
+++ pkg/DESCR 19 Aug 2026 11:05:11 -0000
@@ -1,11 +1,3 @@
-Simple DirectMedia Layer is a cross-platform multimedia
-library designed to provide fast access to the graphics
-framebuffer and audio device. It is used by MPEG playback
-software, emulators, and many popular games.
-
-Packages can be built with additional FLAVORs:
-
- aa: SDL built with ASCII art support.
- This FLAVOR requires the aalib package.
-
- no_x11: Built without X11.
+sdl12-compat is a compatibility layer; it provides a binary and source
+compatible API for programs written against SDL 1.2, but it uses SDL 2.0
+behind the scenes.
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/sdl/pkg/PLIST,v
diff -u -p -r1.19 PLIST
--- pkg/PLIST 11 Mar 2022 18:53:23 -0000 1.19
+++ pkg/PLIST 19 Aug 2026 11:05:11 -0000
@@ -10,6 +10,7 @@ include/SDL/SDL_audio.h
include/SDL/SDL_byteorder.h
include/SDL/SDL_cdrom.h
include/SDL/SDL_config.h
+include/SDL/SDL_copying.h
include/SDL/SDL_cpuinfo.h
include/SDL/SDL_endian.h
include/SDL/SDL_error.h
@@ -36,185 +37,7 @@ include/SDL/SDL_version.h
include/SDL/SDL_video.h
include/SDL/begin_code.h
include/SDL/close_code.h
-@static-lib lib/libSDL.a
-lib/libSDL.la
@lib lib/libSDL.so.${LIBSDL_VERSION}
@static-lib lib/libSDLmain.a
-lib/libSDLmain.la
-lib/pkgconfig/sdl.pc
-@man man/man3/SDLKey.3
-@man man/man3/SDL_ActiveEvent.3
-@man man/man3/SDL_AddTimer.3
-@man man/man3/SDL_AudioCVT.3
-@man man/man3/SDL_AudioSpec.3
-@man man/man3/SDL_BlitSurface.3
-@man man/man3/SDL_BuildAudioCVT.3
-@man man/man3/SDL_CD.3
-@man man/man3/SDL_CDClose.3
-@man man/man3/SDL_CDEject.3
-@man man/man3/SDL_CDName.3
-@man man/man3/SDL_CDNumDrives.3
-@man man/man3/SDL_CDOpen.3
-@man man/man3/SDL_CDPause.3
-@man man/man3/SDL_CDPlay.3
-@man man/man3/SDL_CDPlayTracks.3
-@man man/man3/SDL_CDResume.3
-@man man/man3/SDL_CDStatus.3
-@man man/man3/SDL_CDStop.3
-@man man/man3/SDL_CDtrack.3
-@man man/man3/SDL_CloseAudio.3
-@man man/man3/SDL_Color.3
-@man man/man3/SDL_CondBroadcast.3
-@man man/man3/SDL_CondSignal.3
-@man man/man3/SDL_CondWait.3
-@man man/man3/SDL_CondWaitTimeout.3
-@man man/man3/SDL_ConvertAudio.3
-@man man/man3/SDL_ConvertSurface.3
-@man man/man3/SDL_CreateCond.3
-@man man/man3/SDL_CreateCursor.3
-@man man/man3/SDL_CreateMutex.3
-@man man/man3/SDL_CreateRGBSurface.3
-@man man/man3/SDL_CreateRGBSurfaceFrom.3
-@man man/man3/SDL_CreateSemaphore.3
-@man man/man3/SDL_CreateThread.3
-@man man/man3/SDL_CreateYUVOverlay.3
-@man man/man3/SDL_Delay.3
-@man man/man3/SDL_DestroyCond.3
-@man man/man3/SDL_DestroyMutex.3
-@man man/man3/SDL_DestroySemaphore.3
-@man man/man3/SDL_DisplayFormat.3
-@man man/man3/SDL_DisplayFormatAlpha.3
-@man man/man3/SDL_DisplayYUVOverlay.3
-@man man/man3/SDL_EnableKeyRepeat.3
-@man man/man3/SDL_EnableUNICODE.3
-@man man/man3/SDL_Event.3
-@man man/man3/SDL_EventState.3
-@man man/man3/SDL_ExposeEvent.3
-@man man/man3/SDL_FillRect.3
-@man man/man3/SDL_Flip.3
-@man man/man3/SDL_FreeCursor.3
-@man man/man3/SDL_FreeSurface.3
-@man man/man3/SDL_FreeWAV.3
-@man man/man3/SDL_FreeYUVOverlay.3
-@man man/man3/SDL_GL_GetAttribute.3
-@man man/man3/SDL_GL_GetProcAddress.3
-@man man/man3/SDL_GL_LoadLibrary.3
-@man man/man3/SDL_GL_SetAttribute.3
-@man man/man3/SDL_GL_SwapBuffers.3
-@man man/man3/SDL_GLattr.3
-@man man/man3/SDL_GetAppState.3
-@man man/man3/SDL_GetAudioStatus.3
-@man man/man3/SDL_GetClipRect.3
-@man man/man3/SDL_GetCursor.3
-@man man/man3/SDL_GetError.3
-@man man/man3/SDL_GetEventFilter.3
-@man man/man3/SDL_GetGamma.3
-@man man/man3/SDL_GetGammaRamp.3
-@man man/man3/SDL_GetKeyName.3
-@man man/man3/SDL_GetKeyState.3
-@man man/man3/SDL_GetModState.3
-@man man/man3/SDL_GetMouseState.3
-@man man/man3/SDL_GetRGB.3
-@man man/man3/SDL_GetRGBA.3
-@man man/man3/SDL_GetRelativeMouseState.3
-@man man/man3/SDL_GetThreadID.3
-@man man/man3/SDL_GetTicks.3
-@man man/man3/SDL_GetVideoInfo.3
-@man man/man3/SDL_GetVideoSurface.3
-@man man/man3/SDL_Init.3
-@man man/man3/SDL_InitSubSystem.3
-@man man/man3/SDL_JoyAxisEvent.3
-@man man/man3/SDL_JoyBallEvent.3
-@man man/man3/SDL_JoyButtonEvent.3
-@man man/man3/SDL_JoyHatEvent.3
-@man man/man3/SDL_JoystickClose.3
-@man man/man3/SDL_JoystickEventState.3
-@man man/man3/SDL_JoystickGetAxis.3
-@man man/man3/SDL_JoystickGetBall.3
-@man man/man3/SDL_JoystickGetButton.3
-@man man/man3/SDL_JoystickGetHat.3
-@man man/man3/SDL_JoystickIndex.3
-@man man/man3/SDL_JoystickName.3
-@man man/man3/SDL_JoystickNumAxes.3
-@man man/man3/SDL_JoystickNumBalls.3
-@man man/man3/SDL_JoystickNumButtons.3
-@man man/man3/SDL_JoystickNumHats.3
-@man man/man3/SDL_JoystickOpen.3
-@man man/man3/SDL_JoystickOpened.3
-@man man/man3/SDL_JoystickUpdate.3
-@man man/man3/SDL_KeyboardEvent.3
-@man man/man3/SDL_KillThread.3
-@man man/man3/SDL_ListModes.3
-@man man/man3/SDL_LoadBMP.3
-@man man/man3/SDL_LoadWAV.3
-@man man/man3/SDL_LockAudio.3
-@man man/man3/SDL_LockSurface.3
-@man man/man3/SDL_LockYUVOverlay.3
-@man man/man3/SDL_MapRGB.3
-@man man/man3/SDL_MapRGBA.3
-@man man/man3/SDL_MixAudio.3
-@man man/man3/SDL_MouseButtonEvent.3
-@man man/man3/SDL_MouseMotionEvent.3
-@man man/man3/SDL_NumJoysticks.3
-@man man/man3/SDL_OpenAudio.3
-@man man/man3/SDL_Overlay.3
-@man man/man3/SDL_Palette.3
-@man man/man3/SDL_PauseAudio.3
-@man man/man3/SDL_PeepEvents.3
-@man man/man3/SDL_PixelFormat.3
-@man man/man3/SDL_PollEvent.3
-@man man/man3/SDL_PumpEvents.3
-@man man/man3/SDL_PushEvent.3
-@man man/man3/SDL_Quit.3
-@man man/man3/SDL_QuitEvent.3
-@man man/man3/SDL_QuitSubSystem.3
-@man man/man3/SDL_RWFromFile.3
-@man man/man3/SDL_Rect.3
-@man man/man3/SDL_RemoveTimer.3
-@man man/man3/SDL_ResizeEvent.3
-@man man/man3/SDL_SaveBMP.3
-@man man/man3/SDL_SemPost.3
-@man man/man3/SDL_SemTryWait.3
-@man man/man3/SDL_SemValue.3
-@man man/man3/SDL_SemWait.3
-@man man/man3/SDL_SemWaitTimeout.3
-@man man/man3/SDL_SetAlpha.3
-@man man/man3/SDL_SetClipRect.3
-@man man/man3/SDL_SetColorKey.3
-@man man/man3/SDL_SetColors.3
-@man man/man3/SDL_SetCursor.3
-@man man/man3/SDL_SetEventFilter.3
-@man man/man3/SDL_SetGamma.3
-@man man/man3/SDL_SetGammaRamp.3
-@man man/man3/SDL_SetModState.3
-@man man/man3/SDL_SetPalette.3
-@man man/man3/SDL_SetTimer.3
-@man man/man3/SDL_SetVideoMode.3
-@man man/man3/SDL_ShowCursor.3
-@man man/man3/SDL_Surface.3
-@man man/man3/SDL_SysWMEvent.3
-@man man/man3/SDL_ThreadID.3
-@man man/man3/SDL_UnlockAudio.3
-@man man/man3/SDL_UnlockSurface.3
-@man man/man3/SDL_UnlockYUVOverlay.3
-@man man/man3/SDL_UpdateRect.3
-@man man/man3/SDL_UpdateRects.3
-@man man/man3/SDL_UserEvent.3
-@man man/man3/SDL_VideoDriverName.3
-@man man/man3/SDL_VideoInfo.3
-@man man/man3/SDL_VideoModeOK.3
-@man man/man3/SDL_WM_GetCaption.3
-@man man/man3/SDL_WM_GrabInput.3
-@man man/man3/SDL_WM_IconifyWindow.3
-@man man/man3/SDL_WM_SetCaption.3
-@man man/man3/SDL_WM_SetIcon.3
-@man man/man3/SDL_WM_ToggleFullScreen.3
-@man man/man3/SDL_WaitEvent.3
-@man man/man3/SDL_WaitThread.3
-@man man/man3/SDL_WarpMouse.3
-@man man/man3/SDL_WasInit.3
-@man man/man3/SDL_keysym.3
-@man man/man3/SDL_mutexP.3
-@man man/man3/SDL_mutexV.3
-share/aclocal/
+lib/pkgconfig/sdl12_compat.pc
share/aclocal/sdl.m4