diff options
author | Antonio Orefice | 2015-06-09 08:37:09 +0200 |
---|---|---|
committer | Antonio Orefice | 2015-06-09 08:37:09 +0200 |
commit | 5ab1604b30251761801e35f086086019add0ab5a (patch) | |
tree | a9dbb884ea32a495799c4273623a8f1984c3aa15 | |
download | aur-5ab1604b30251761801e35f086086019add0ab5a.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 39 | ||||
-rw-r--r-- | PKGBUILD | 63 | ||||
-rw-r--r-- | X11_KeyToUnicode.patch | 52 | ||||
-rw-r--r-- | backingstore_on_demand.diff | 16 | ||||
-rw-r--r-- | fix_joystick_misc_axes.diff | 13 | ||||
-rw-r--r-- | libsdl-1.2.15-resizing.patch | 63 | ||||
-rw-r--r-- | message.install | 24 | ||||
-rw-r--r-- | sdl-1.2.14-disable-mmx.patch | 13 | ||||
-rw-r--r-- | sdl-1.2.14-fix-mouse-clicking.patch | 23 |
9 files changed, 306 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..5742715a7578 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,39 @@ +pkgbase = lib32-sdl-nobackingstore + pkgdesc = sdl library that does not use backing store by default (prevent tearing due to a bug in Xserver) + pkgver = 1.2.15 + pkgrel = 4 + url = http://www.libsdl.org + install = message.install + arch = x86_64 + license = LGPL + makedepends = lib32-alsa-lib + makedepends = lib32-mesa + makedepends = lib32-libpulse + makedepends = gcc-multilib + depends = lib32-libxext + depends = lib32-libxrender + depends = lib32-libx11 + depends = sdl + optdepends = lib32-alsa-lib: ALSA audio driver + optdepends = lib32-libpulse: PulseAudio audio driver + provides = lib32-sdl=1.2.15 + conflicts = lib32-sdl + replaces = lib32-sdl + options = !libtool + source = http://www.libsdl.org/release/SDL-1.2.15.tar.gz + source = sdl-1.2.14-fix-mouse-clicking.patch + source = sdl-1.2.14-disable-mmx.patch + source = fix_joystick_misc_axes.diff + source = backingstore_on_demand.diff + source = libsdl-1.2.15-resizing.patch + source = X11_KeyToUnicode.patch + md5sums = 9d96df8417572a2afb781a7c4c811a85 + md5sums = 04d8c179f125e04bcd4c9d60e013c2d7 + md5sums = e5c16b7611f62c7cb25f0534eff68852 + md5sums = 687586a108b597a2a6b73070c1d37e51 + md5sums = 5f81abefba5713c2ebfc21b2a1e6e044 + md5sums = 3dd50347d8856160a9cbd7f80383a1f8 + md5sums = edea272dff4698470877c016d818918d + +pkgname = lib32-sdl-nobackingstore + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6b41a631a511 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,63 @@ +# $Id$ +# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> +# Contributor: Allan McRae <allan@archlinux.org> +# Contributor: dorphell <dorphell@archlinux.org> + +_pkgbasename=sdl +pkgname=lib32-$_pkgbasename-nobackingstore +pkgver=1.2.15 +pkgrel=4 +pkgdesc="sdl library that does not use backing store by default (prevent tearing due to a bug in Xserver)" +arch=('x86_64') +url="http://www.libsdl.org" +license=('LGPL') +depends=('lib32-libxext' 'lib32-libxrender' 'lib32-libx11' $_pkgbasename) +makedepends=('lib32-alsa-lib' 'lib32-mesa' 'lib32-libpulse' gcc-multilib) +optdepends=('lib32-alsa-lib: ALSA audio driver' + 'lib32-libpulse: PulseAudio audio driver') +provides=("lib32-sdl=$pkgver") +replaces=('lib32-sdl') +conflicts=('lib32-sdl') +options=('!libtool') +install="message.install" +source=(http://www.libsdl.org/release/SDL-${pkgver}.tar.gz + sdl-1.2.14-fix-mouse-clicking.patch + sdl-1.2.14-disable-mmx.patch + fix_joystick_misc_axes.diff + backingstore_on_demand.diff + libsdl-1.2.15-resizing.patch + X11_KeyToUnicode.patch) + +md5sums=('9d96df8417572a2afb781a7c4c811a85' + '04d8c179f125e04bcd4c9d60e013c2d7' + 'e5c16b7611f62c7cb25f0534eff68852' + '687586a108b597a2a6b73070c1d37e51' + '5f81abefba5713c2ebfc21b2a1e6e044' + '3dd50347d8856160a9cbd7f80383a1f8' + 'edea272dff4698470877c016d818918d') +build() { + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + + 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 ../backingstore_on_demand.diff + patch -Np1 -i ../fix_joystick_misc_axes.diff + patch -Np1 -i ../libsdl-1.2.15-resizing.patch + patch -Np1 -i ../X11_KeyToUnicode.patch + ./configure --prefix=/usr --disable-nasm --enable-alsa \ + --with-x --disable-rpath --disable-static --libdir=/usr/lib32 + make +} + +package() { + cd SDL-$pkgver + make DESTDIR="$pkgdir" install + + rm -rf "$pkgdir"/usr/{include,share} + + cd "$pkgdir/usr/bin" + mv sdl-config sdl-config-32 +} diff --git a/X11_KeyToUnicode.patch b/X11_KeyToUnicode.patch new file mode 100644 index 000000000000..5f0f325b1a01 --- /dev/null +++ b/X11_KeyToUnicode.patch @@ -0,0 +1,52 @@ + +# HG changeset patch +# User Sam Lantinga <slouken@libsdl.org> +# 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/backingstore_on_demand.diff b/backingstore_on_demand.diff new file mode 100644 index 000000000000..dc3066fc31fc --- /dev/null +++ b/backingstore_on_demand.diff @@ -0,0 +1,16 @@ +--- a/src/video/x11/SDL_x11video.c 2014-02-03 09:19:06.152761230 +0100 ++++ b/src/video/x11/SDL_x11video.c 2014-02-03 09:14:40.062762569 +0100 +@@ -1088,11 +1088,10 @@ + } + } + +-#if 0 /* This is an experiment - are the graphics faster now? - nope. */ + if ( SDL_getenv("SDL_VIDEO_X11_BACKINGSTORE") ) +-#endif +- /* Cache the window in the server, when possible */ ++ /* Cache the window in the server, on request */ + { ++ printf("Backingstore is on.\n"); + Screen *xscreen; + XSetWindowAttributes a; + diff --git a/fix_joystick_misc_axes.diff b/fix_joystick_misc_axes.diff new file mode 100644 index 000000000000..75e3755c93c8 --- /dev/null +++ b/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; i<ABS_MISC; ++i ) { ++ for ( i=0; i<ABS_MAX; ++i ) { + /* Skip hats */ + if ( i == ABS_HAT0X ) { + i = ABS_HAT3Y; diff --git a/libsdl-1.2.15-resizing.patch b/libsdl-1.2.15-resizing.patch new file mode 100644 index 000000000000..0655a13e137c --- /dev/null +++ b/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 <acaudwell@gmail.com> +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/message.install b/message.install new file mode 100644 index 000000000000..4ce5d7949f64 --- /dev/null +++ b/message.install @@ -0,0 +1,24 @@ +post_install() { + echo + echo + echo 'https://bugs.freedesktop.org/show_bug.cgi?id=74158' + echo + echo 'To enable backing store, please export SDL_VIDEO_X11_BACKINGSTORE=1' + echo 'To disable backing store, please unset SDL_VIDEO_X11_BACKINGSTORE' + echo 'if backing store is enabled, a message in the terminal will say it.' + echo + echo +} + +post_upgrade() { + echo + echo + echo 'https://bugs.freedesktop.org/show_bug.cgi?id=74158' + echo + echo 'To enable backing store, please export SDL_VIDEO_X11_BACKINGSTORE=1' + echo 'To disable backing store, please unset SDL_VIDEO_X11_BACKINGSTORE' + echo 'if backing store is enabled, a message in the terminal will say it.' + echo + echo +} + diff --git a/sdl-1.2.14-disable-mmx.patch b/sdl-1.2.14-disable-mmx.patch new file mode 100644 index 000000000000..1bb6e0e47e0a --- /dev/null +++ b/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/sdl-1.2.14-fix-mouse-clicking.patch b/sdl-1.2.14-fix-mouse-clicking.patch new file mode 100644 index 000000000000..7d3e5acfc143 --- /dev/null +++ b/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; + |