From 9a32f5e3dc833908d4156d1912c30545fd063bcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Tue, 2 Sep 2014 18:54:59 -0300 Subject: sdl: remove libre suffix and add complex pkgrel --- libre/sdl/PKGBUILD | 67 +++ libre/sdl/X11_KeyToUnicode.patch | 52 +++ libre/sdl/fix_joystick_misc_axes.diff | 13 + libre/sdl/libre.patch | 578 ++++++++++++++++++++++++++ libre/sdl/libsdl-1.2.15-resizing.patch | 63 +++ libre/sdl/sdl-1.2.14-disable-mmx.patch | 13 + libre/sdl/sdl-1.2.14-fix-mouse-clicking.patch | 23 + libre/sdl/sdl_x11sym.patch | 12 + 8 files changed, 821 insertions(+) create mode 100644 libre/sdl/PKGBUILD create mode 100644 libre/sdl/X11_KeyToUnicode.patch create mode 100644 libre/sdl/fix_joystick_misc_axes.diff create mode 100644 libre/sdl/libre.patch create mode 100644 libre/sdl/libsdl-1.2.15-resizing.patch create mode 100644 libre/sdl/sdl-1.2.14-disable-mmx.patch create mode 100644 libre/sdl/sdl-1.2.14-fix-mouse-clicking.patch create mode 100644 libre/sdl/sdl_x11sym.patch (limited to 'libre/sdl') diff --git a/libre/sdl/PKGBUILD b/libre/sdl/PKGBUILD new file mode 100644 index 000000000..957598225 --- /dev/null +++ b/libre/sdl/PKGBUILD @@ -0,0 +1,67 @@ +# $Id: PKGBUILD 212210 2014-05-10 21:41:06Z heftig $ +# Maintainer (Arch): Jan Alexander Steffens (heftig) +# Contributor (Arch): Allan McRae +# Contributor (Arch): dorphell +# Maintainer: André Silva +# Maintainer: Márcio Silva +# Maintainer (Connochaetos): Henry Jensen + +pkgname=sdl +pkgver=1.2.15 +pkgrel=6.parabola1 +pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard, without nonfree riva_mmio.h file" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.libsdl.org" +license=('LGPL') +conflicts=('sdl-libre') +replaces=('sdl-libre') +depends=('glibc' 'libxext' 'libxrender' 'libx11') +makedepends=('alsa-lib' 'mesa' 'libpulse' 'glu') +optdepends=('alsa-lib: ALSA audio driver' + 'libpulse: PulseAudio audio driver') +options=('staticlibs') +mksource=(http://www.libsdl.org/release/SDL-${pkgver}.tar.gz + libre.patch) +source=(https://repo.parabolagnulinux.org/other/${pkgname}-libre/SDL-libre-${pkgver}.tar.gz + sdl-1.2.14-fix-mouse-clicking.patch + sdl-1.2.14-disable-mmx.patch + fix_joystick_misc_axes.diff + libsdl-1.2.15-resizing.patch + sdl_x11sym.patch + X11_KeyToUnicode.patch) +mkmd5sums=('9d96df8417572a2afb781a7c4c811a85' + '5c665f72b8a2adc97a91f6db6f2da79a') +md5sums=('c6e53ef16fa347ed066c3d68fe93c378' + '04d8c179f125e04bcd4c9d60e013c2d7' + 'e5c16b7611f62c7cb25f0534eff68852' + '687586a108b597a2a6b73070c1d37e51' + '3dd50347d8856160a9cbd7f80383a1f8' + '148b285bccee9d21bb96db807363b962' + 'edea272dff4698470877c016d818918d') + +mksource() { + cd SDL-$pkgver + patch -Np0 -i ../libre.patch +} + +prepare() { + cd SDL-$pkgver + patch -Np1 -i ../sdl-1.2.14-fix-mouse-clicking.patch + patch -Np1 -i ../sdl-1.2.14-disable-mmx.patch + patch -Np1 -i ../fix_joystick_misc_axes.diff + patch -Np1 -i ../libsdl-1.2.15-resizing.patch + patch -Np0 -i ../sdl_x11sym.patch + patch -Np1 -i ../X11_KeyToUnicode.patch +} + +build() { + cd SDL-$pkgver + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static + make +} + +package() { + cd SDL-$pkgver + make DESTDIR="$pkgdir" install +} diff --git a/libre/sdl/X11_KeyToUnicode.patch b/libre/sdl/X11_KeyToUnicode.patch new file mode 100644 index 000000000..5f0f325b1 --- /dev/null +++ b/libre/sdl/X11_KeyToUnicode.patch @@ -0,0 +1,52 @@ + +# HG changeset patch +# User Sam Lantinga +# Date 1327258041 18000 +# Node ID 900a0fae90ca65cff55a70a17b9ec39d2ddccbcf +# Parent 5273dfd19a5e8c5736a0d417bd441f704c5355f8 +Fixed bug 1390 - X11_KeyToUnicode + +manuel.montezelo 2012-01-22 08:56:18 PST + +We had the following bug report at Debian: +http://bugs.debian.org/376560 + +Same one in Ubuntu: +https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/66217 + +We've been including a patch since then (attached) to actually export the +symbol, since 2006. In the last release the function seems to be there, alive +and kicking. + +It's affecting other people too: +http://www.garagegames.com/community/forums/viewthread/52287 + +diff -r 5273dfd19a5e -r 900a0fae90ca src/video/x11/SDL_x11events.c +--- a/src/video/x11/SDL_x11events.c Sat Jan 21 12:06:51 2012 -0500 ++++ b/src/video/x11/SDL_x11events.c Sun Jan 22 13:47:21 2012 -0500 +@@ -1246,8 +1246,11 @@ + * 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; +@@ -1255,6 +1258,12 @@ + 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; + } + diff --git a/libre/sdl/fix_joystick_misc_axes.diff b/libre/sdl/fix_joystick_misc_axes.diff new file mode 100644 index 000000000..75e3755c9 --- /dev/null +++ b/libre/sdl/fix_joystick_misc_axes.diff @@ -0,0 +1,13 @@ +diff --git a/src/joystick/linux/SDL_sysjoystick.c b/src/joystick/linux/SDL_sysjoystick.c +index ee43974..80e46e4 100644 +--- a/src/joystick/linux/SDL_sysjoystick.c ++++ b/src/joystick/linux/SDL_sysjoystick.c +@@ -702,7 +702,7 @@ static SDL_bool EV_ConfigJoystick(SDL_Joystick *joystick, int fd) + ++joystick->nbuttons; + } + } +- for ( i=0; iFifoFree >> 2; \ +- FifoFreeCount -= (cnt); \ +-} +-#endif /* __RIVA_HW_H__ */ +- +--- src/video/fbcon/SDL_fbriva.c 2012-01-19 04:30:06.000000000 -0200 ++++ src/video/fbcon/SDL_fbriva.c 2012-04-01 15:10:10.108451467 -0300 +@@ -24,12 +24,10 @@ + #include "SDL_video.h" + #include "../SDL_blit.h" + #include "SDL_fbriva.h" +-#include "riva_mmio.h" + #include "riva_regs.h" + + + static int FifoEmptyCount = 0; +-static int FifoFreeCount = 0; + + /* Wait for vertical retrace */ + static void WaitVBL(_THIS) +@@ -41,20 +39,6 @@ + while ( !(*port & 0x08) ) + ; + } +-static void NV3WaitIdle(_THIS) +-{ +- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET); +- while ( (Rop->FifoFree < FifoEmptyCount) || +- (*(mapped_io + PGRAPH_OFFSET + 0x000006B0) & 0x01) ) +- ; +-} +-static void NV4WaitIdle(_THIS) +-{ +- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET); +- while ( (Rop->FifoFree < FifoEmptyCount) || +- (*(mapped_io + PGRAPH_OFFSET + 0x00000700) & 0x01) ) +- ; +-} + + #if 0 /* Not yet implemented? */ + /* Sets video mem colorkey and accelerated blit function */ +@@ -74,7 +58,6 @@ + { + int dstX, dstY; + int dstW, dstH; +- RivaBitmap *Bitmap = (RivaBitmap *)(mapped_io + BITMAP_OFFSET); + + /* Don't blit to the display surface when switched away */ + if ( switched_away ) { +@@ -93,13 +76,6 @@ + dstX += rect->x; + dstY += rect->y; + +- RIVA_FIFO_FREE(Bitmap, 1); +- Bitmap->Color1A = color; +- +- RIVA_FIFO_FREE(Bitmap, 2); +- Bitmap->UnclippedRectangle[0].TopLeft = (dstX << 16) | dstY; +- Bitmap->UnclippedRectangle[0].WidthHeight = (dstW << 16) | dstH; +- + FB_AddBusySurface(dst); + + if ( dst == this->screen ) { +@@ -115,7 +91,6 @@ + int srcX, srcY; + int dstX, dstY; + int dstW, dstH; +- RivaScreenBlt *Blt = (RivaScreenBlt *)(mapped_io + BLT_OFFSET); + + /* FIXME: For now, only blit to display surface */ + if ( dst->pitch != SDL_VideoSurface->pitch ) { +@@ -142,11 +117,6 @@ + dstX += dstrect->x; + dstY += dstrect->y; + +- RIVA_FIFO_FREE(Blt, 3); +- Blt->TopLeftSrc = (srcY << 16) | srcX; +- Blt->TopLeftDst = (dstY << 16) | dstX; +- Blt->WidthHeight = (dstH << 16) | dstW; +- + FB_AddBusySurface(src); + FB_AddBusySurface(dst); + +@@ -185,23 +155,15 @@ + + void FB_RivaAccel(_THIS, __u32 card) + { +- RivaRop *Rop = (RivaRop *)(mapped_io + ROP_OFFSET); + + /* We have hardware accelerated surface functions */ + this->CheckHWBlit = CheckHWBlit; + wait_vbl = WaitVBL; + switch (card) { +- case FB_ACCEL_NV3: +- wait_idle = NV3WaitIdle; +- break; +- case FB_ACCEL_NV4: +- wait_idle = NV4WaitIdle; +- break; + default: + /* Hmm... FIXME */ + break; + } +- FifoEmptyCount = Rop->FifoFree; + + /* The Riva has an accelerated color fill */ + this->info.blit_fill = 1; +--- src/video/fbcon/SDL_fbvideo.c.orig 2011-09-08 17:30:03.670583685 +0200 ++++ src/video/fbcon/SDL_fbvideo.c 2011-09-08 17:30:24.230582737 +0200 +@@ -46,7 +46,6 @@ + #include "SDL_fbevents_c.h" + #include "SDL_fb3dfx.h" + #include "SDL_fbmatrox.h" +-#include "SDL_fbriva.h" + + /*#define FBCON_DEBUG*/ + +@@ -769,13 +768,6 @@ + #endif + FB_3DfxAccel(this, finfo.accel); + break; +- case FB_ACCEL_NV3: +- case FB_ACCEL_NV4: +-#ifdef FBACCEL_DEBUG +- printf("NVidia hardware accelerator!\n"); +-#endif +- FB_RivaAccel(this, finfo.accel); +- break; + default: + #ifdef FBACCEL_DEBUG + printf("Unknown hardware accelerator.\n"); diff --git a/libre/sdl/libsdl-1.2.15-resizing.patch b/libre/sdl/libsdl-1.2.15-resizing.patch new file mode 100644 index 000000000..0655a13e1 --- /dev/null +++ b/libre/sdl/libsdl-1.2.15-resizing.patch @@ -0,0 +1,63 @@ +Description: Revert change that breaks window corner resizing + http://bugzilla.libsdl.org/show_bug.cgi?id=1430 +Author: Andrew Caudwell +Last-Update: 2012-04-10 +Bug-Debian: http://bugs.debian.org/665779 + +diff -r c787fb1b5699 src/video/x11/SDL_x11events.c +--- a/src/video/x11/SDL_x11events.c Mon Feb 20 23:51:08 2012 -0500 ++++ b/src/video/x11/SDL_x11events.c Mon Mar 26 12:26:52 2012 +1300 +@@ -57,12 +57,6 @@ + static SDLKey MISC_keymap[256]; + SDLKey X11_TranslateKeycode(Display *display, KeyCode kc); + +-/* +- Pending resize target for ConfigureNotify (so outdated events don't +- cause inappropriate resize events) +-*/ +-int X11_PendingConfigureNotifyWidth = -1; +-int X11_PendingConfigureNotifyHeight = -1; + + #ifdef X_HAVE_UTF8_STRING + Uint32 Utf8ToUcs4(const Uint8 *utf8) +@@ -825,16 +819,6 @@ + #ifdef DEBUG_XEVENTS + printf("ConfigureNotify! (resize: %dx%d)\n", xevent.xconfigure.width, xevent.xconfigure.height); + #endif +- if ((X11_PendingConfigureNotifyWidth != -1) && +- (X11_PendingConfigureNotifyHeight != -1)) { +- if ((xevent.xconfigure.width != X11_PendingConfigureNotifyWidth) && +- (xevent.xconfigure.height != X11_PendingConfigureNotifyHeight)) { +- /* Event is from before the resize, so ignore. */ +- break; +- } +- X11_PendingConfigureNotifyWidth = -1; +- X11_PendingConfigureNotifyHeight = -1; +- } + if ( SDL_VideoSurface ) { + if ((xevent.xconfigure.width != SDL_VideoSurface->w) || + (xevent.xconfigure.height != SDL_VideoSurface->h)) { +diff -r c787fb1b5699 src/video/x11/SDL_x11events_c.h +--- a/src/video/x11/SDL_x11events_c.h Mon Feb 20 23:51:08 2012 -0500 ++++ b/src/video/x11/SDL_x11events_c.h Mon Mar 26 12:26:52 2012 +1300 +@@ -27,8 +27,3 @@ + extern void X11_InitOSKeymap(_THIS); + extern void X11_PumpEvents(_THIS); + extern void X11_SetKeyboardState(Display *display, const char *key_vec); +- +-/* Variables to be exported */ +-extern int X11_PendingConfigureNotifyWidth; +-extern int X11_PendingConfigureNotifyHeight; +- +diff -r c787fb1b5699 src/video/x11/SDL_x11video.c +--- a/src/video/x11/SDL_x11video.c Mon Feb 20 23:51:08 2012 -0500 ++++ b/src/video/x11/SDL_x11video.c Mon Mar 26 12:26:52 2012 +1300 +@@ -1182,8 +1182,6 @@ + current = NULL; + goto done; + } +- X11_PendingConfigureNotifyWidth = width; +- X11_PendingConfigureNotifyHeight = height; + } else { + if (X11_CreateWindow(this,current,width,height,bpp,flags) < 0) { + current = NULL; diff --git a/libre/sdl/sdl-1.2.14-disable-mmx.patch b/libre/sdl/sdl-1.2.14-disable-mmx.patch new file mode 100644 index 000000000..1bb6e0e47 --- /dev/null +++ b/libre/sdl/sdl-1.2.14-disable-mmx.patch @@ -0,0 +1,13 @@ +# and another one from FS#26020 + +--- a/src/video/SDL_yuv_sw.c 2009-10-13 06:07:15.000000000 +0700 ++++ b/src/video/SDL_yuv_sw.c 2011-09-20 19:26:30.247742620 +0700 +@@ -89,6 +89,8 @@ + #include "SDL_yuvfuncs.h" + #include "SDL_yuv_sw_c.h" + ++#undef __OPTIMIZE__ ++ + /* The functions used to manipulate software video overlays */ + static struct private_yuvhwfuncs sw_yuvfuncs = { + SDL_LockYUV_SW, diff --git a/libre/sdl/sdl-1.2.14-fix-mouse-clicking.patch b/libre/sdl/sdl-1.2.14-fix-mouse-clicking.patch new file mode 100644 index 000000000..7d3e5acfc --- /dev/null +++ b/libre/sdl/sdl-1.2.14-fix-mouse-clicking.patch @@ -0,0 +1,23 @@ +--- SDL-1.2.14/src/video/x11/SDL_x11events.c.orig 2010-04-08 11:57:05.003169834 -0700 ++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-08 12:33:51.690926340 -0700 +@@ -423,12 +423,15 @@ + if ( xevent.xcrossing.mode == NotifyUngrab ) + printf("Mode: NotifyUngrab\n"); + #endif +- if ( this->input_grab == SDL_GRAB_OFF ) { +- posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS); ++ if ( (xevent.xcrossing.mode != NotifyGrab) && ++ (xevent.xcrossing.mode != NotifyUngrab) ) { ++ if ( this->input_grab == SDL_GRAB_OFF ) { ++ posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS); ++ } ++ posted = SDL_PrivateMouseMotion(0, 0, ++ xevent.xcrossing.x, ++ xevent.xcrossing.y); + } +- posted = SDL_PrivateMouseMotion(0, 0, +- xevent.xcrossing.x, +- xevent.xcrossing.y); + } + break; + diff --git a/libre/sdl/sdl_x11sym.patch b/libre/sdl/sdl_x11sym.patch new file mode 100644 index 000000000..9aaa2353b --- /dev/null +++ b/libre/sdl/sdl_x11sym.patch @@ -0,0 +1,12 @@ +--- src/video/x11/SDL_x11sym.h-orig 2013-07-16 23:56:46.718523385 -0600 ++++ src/video/x11/SDL_x11sym.h 2013-07-16 23:58:27.025186485 -0600 +@@ -165,7 +165,8 @@ + */ + #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 _Xconst long *data,unsigned len),(dpy,data,len),return) + SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) + #endif + -- cgit v1.2.3-2-g168b