På onsdag 19. august 2026 kl. 13:05, skrev Stuart Henderson 
<[email protected]>:

> 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?
>


Thank you. This applied cleanly. Rebuilt mplayer, sdl-image, vlc with
this. Mplayer continues playing videos with this and ffmpeg-9.0.

Reinstalling vlc as part of arcan and plasma-desktop, the vlc bin from
ftp mirrors started and plays av1/vp9 videos in sway/xwayland just fine.

And the rebuilt vlc builds with this where it did not previously. Also
plays as well.

No changes other than bumped REVISION, except for sdl-image that has
changes to PLIST. Attached for convenience of review.
--
yaydn

>
> 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
>

Attachment: sdl-image-compat.diff
Description: Binary data

Reply via email to