Re: New: sdl12-compat - SDL1 reimplentation layered on top of SDL2
| Newsgroups | gmane.os.openbsd.ports |
|---|---|
| Message-ID | <Uuu5VFxJai03oVUDu6DlD_VR8vQ8B19K4xqIXozjqVpUm4JVoLihrap1kTIHyVCy9-ZDyT1KsU2wizT-u9RK2y7FWnqTmnZjyPGbW2UmYiw=@protonmail.com> |
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 >
sdl-image-compat.diff
(application/octet-stream, 894 B)
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/sdl-image/Makefile,v
diff -u -p -u -p -r1.46 Makefile
--- Makefile 21 Sep 2023 09:50:05 -0000 1.46
+++ Makefile 19 Aug 2026 12:24:18 -0000
@@ -2,7 +2,7 @@ COMMENT= SDL image library
DISTNAME= SDL_image-1.2.12
PKGNAME= ${DISTNAME:L:S/_/-/}
-REVISION= 5
+REVISION= 6
CATEGORIES= devel graphics
SITES= ${HOMEPAGE}release/
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/devel/sdl-image/pkg/PLIST,v
diff -u -p -u -p -r1.9 PLIST
--- pkg/PLIST 11 Mar 2022 18:53:23 -0000 1.9
+++ pkg/PLIST 19 Aug 2026 12:24:18 -0000
@@ -1,6 +1,5 @@
-include/SDL/
include/SDL/SDL_image.h
-lib/libSDL_image.a
+@static-lib lib/libSDL_image.a
lib/libSDL_image.la
@lib lib/libSDL_image.so.${LIBSDL_image_VERSION}
lib/pkgconfig/SDL_image.pc