From 00a0162d824e1693619b85413aa6fc4bd3e98e72 Mon Sep 17 00:00:00 2001 From: Nick White Date: Wed, 11 Jan 2012 19:44:26 +0000 Subject: Add libsdl version that fixes sdl for dwm --- .../libsdl/files/libsdl-1.2.13-sdl-config.patch | 20 +++ media-libs/libsdl/files/libsdl-1.2.14-click.patch | 15 ++ .../libsdl/files/libsdl-1.2.14-glibc213.patch | 12 ++ .../libsdl/files/libsdl-1.2.14-joystick.patch | 37 +++++ .../files/libsdl-1.2.14-raisefullscreen.patch | 10 ++ media-libs/libsdl/libsdl-1.2.14-r7.ebuild | 156 +++++++++++++++++++++ 6 files changed, 250 insertions(+) create mode 100644 media-libs/libsdl/files/libsdl-1.2.13-sdl-config.patch create mode 100644 media-libs/libsdl/files/libsdl-1.2.14-click.patch create mode 100644 media-libs/libsdl/files/libsdl-1.2.14-glibc213.patch create mode 100644 media-libs/libsdl/files/libsdl-1.2.14-joystick.patch create mode 100644 media-libs/libsdl/files/libsdl-1.2.14-raisefullscreen.patch create mode 100644 media-libs/libsdl/libsdl-1.2.14-r7.ebuild diff --git a/media-libs/libsdl/files/libsdl-1.2.13-sdl-config.patch b/media-libs/libsdl/files/libsdl-1.2.13-sdl-config.patch new file mode 100644 index 0000000..f430428 --- /dev/null +++ b/media-libs/libsdl/files/libsdl-1.2.13-sdl-config.patch @@ -0,0 +1,20 @@ +Only output -L -rpath cruft if using a non-standard install location. + +Makes ABI / cross-compiling easier on the soul. + +--- sdl-config.in ++++ sdl-config.in +@@ -44,7 +44,12 @@ + echo -I@includedir@/SDL @SDL_CFLAGS@ + ;; + @ENABLE_SHARED_TRUE@ --libs) +-@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ ++@ENABLE_SHARED_TRUE@ if test x"${prefix}" != x"/usr" ; then ++@ENABLE_SHARED_TRUE@ libdirs="-L@libdir@" ++@ENABLE_SHARED_TRUE@ else ++@ENABLE_SHARED_TRUE@ libdirs="" ++@ENABLE_SHARED_TRUE@ fi ++@ENABLE_SHARED_TRUE@ echo $libdirs @SDL_RLD_FLAGS@ @SDL_LIBS@ + @ENABLE_SHARED_TRUE@ ;; + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs) + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs) diff --git a/media-libs/libsdl/files/libsdl-1.2.14-click.patch b/media-libs/libsdl/files/libsdl-1.2.14-click.patch new file mode 100644 index 0000000..1fe0241 --- /dev/null +++ b/media-libs/libsdl/files/libsdl-1.2.14-click.patch @@ -0,0 +1,15 @@ +--- SDL-1.2.14/src/video/x11/SDL_x11events.c 2009-10-12 16:07:15.000000000 -0700 ++++ SDL-1.2/src/video/x11/SDL_x11events.c 2010-07-19 23:57:48.365397095 -0700 +@@ -441,8 +441,10 @@ + if ( xevent.xcrossing.mode == NotifyUngrab ) + printf("Mode: NotifyUngrab\n"); + #endif +- if ( xevent.xcrossing.detail != NotifyInferior ) { +- if ( this->input_grab == SDL_GRAB_OFF ) { ++ if ( (xevent.xcrossing.mode != NotifyGrab) && ++ (xevent.xcrossing.mode != NotifyUngrab) && ++ (xevent.xcrossing.detail != NotifyInferior) ) { ++ if ( this->input_grab == SDL_GRAB_OFF ) { + posted = SDL_PrivateAppActive(0, SDL_APPMOUSEFOCUS); + } else { + posted = SDL_PrivateMouseMotion(0, 0, diff --git a/media-libs/libsdl/files/libsdl-1.2.14-glibc213.patch b/media-libs/libsdl/files/libsdl-1.2.14-glibc213.patch new file mode 100644 index 0000000..ab695f9 --- /dev/null +++ b/media-libs/libsdl/files/libsdl-1.2.14-glibc213.patch @@ -0,0 +1,12 @@ +diff -r 6bb01861c4c0 src/video/SDL_blit.c +--- a/src/video/SDL_blit.c Wed Feb 16 04:49:07 2011 -0800 ++++ b/src/video/SDL_blit.c Wed Feb 16 22:51:23 2011 +0100 +@@ -214,7 +214,7 @@ + dstskip = w+info->d_skip; + if ( dst < src ) { + while ( h-- ) { +- SDL_memcpy(dst, src, w); ++ SDL_memmove(dst, src, w); + src += srcskip; + dst += dstskip; + } diff --git a/media-libs/libsdl/files/libsdl-1.2.14-joystick.patch b/media-libs/libsdl/files/libsdl-1.2.14-joystick.patch new file mode 100644 index 0000000..7f7e7a2 --- /dev/null +++ b/media-libs/libsdl/files/libsdl-1.2.14-joystick.patch @@ -0,0 +1,37 @@ +--- SDL-1.2.14/src/joystick/linux/SDL_sysjoystick.c 2009-10-18 13:54:40.000000000 -0400 ++++ SDL-1.2.14-mod/src/joystick/linux/SDL_sysjoystick.c 2010-08-15 22:28:19.000000000 -0400 +@@ -700,26 +700,26 @@ + continue; + } + if ( test_bit(i, absbit) ) { +- int values[5]; ++ struct input_absinfo values; + +- if ( ioctl(fd, EVIOCGABS(i), values) < 0 ) ++ if ( ioctl(fd, EVIOCGABS(i), &values) < 0 ) + continue; + #ifdef DEBUG_INPUT_EVENTS + printf("Joystick has absolute axis: %x\n", i); + printf("Values = { %d, %d, %d, %d, %d }\n", +- values[0], values[1], +- values[2], values[3], values[4]); ++ values.value, values.minimum, ++ values.maximum, values.fuzz, values.flat); + #endif /* DEBUG_INPUT_EVENTS */ + joystick->hwdata->abs_map[i] = joystick->naxes; +- if ( values[1] == values[2] ) { ++ if ( values.minimum == values.maximum ) { + joystick->hwdata->abs_correct[i].used = 0; + } else { + joystick->hwdata->abs_correct[i].used = 1; + joystick->hwdata->abs_correct[i].coef[0] = +- (values[2] + values[1]) / 2 - values[4]; ++ (values.maximum + values.minimum) / 2 - values.flat; + joystick->hwdata->abs_correct[i].coef[1] = +- (values[2] + values[1]) / 2 + values[4]; +- t = ((values[2] - values[1]) / 2 - 2 * values[4]); ++ (values.maximum + values.minimum) / 2 + values.flat; ++ t = ((values.maximum - values.minimum) / 2 - 2 * values.flat); + if ( t != 0 ) { + joystick->hwdata->abs_correct[i].coef[2] = (1 << 29) / t; + } else { diff --git a/media-libs/libsdl/files/libsdl-1.2.14-raisefullscreen.patch b/media-libs/libsdl/files/libsdl-1.2.14-raisefullscreen.patch new file mode 100644 index 0000000..1407000 --- /dev/null +++ b/media-libs/libsdl/files/libsdl-1.2.14-raisefullscreen.patch @@ -0,0 +1,10 @@ +--- SDL-1.2.14/src/video/x11/SDL_x11modes.c~ 2012-01-11 17:38:21.138611142 +0100 ++++ SDL-1.2.14/src/video/x11/SDL_x11modes.c 2012-01-11 17:30:52.906622687 +0100 +@@ -968,6 +968,7 @@ + x = (real_w - window_w)/2; + y = (real_h - window_h)/2; + XReparentWindow(SDL_Display, SDL_Window, FSwindow, x, y); ++ XRaiseWindow(SDL_Display, FSwindow); + /* FIXME: move the mouse to the old relative location */ + XSync(SDL_Display, True); /* Flush spurious mode change events */ + } diff --git a/media-libs/libsdl/libsdl-1.2.14-r7.ebuild b/media-libs/libsdl/libsdl-1.2.14-r7.ebuild new file mode 100644 index 0000000..bb8f862 --- /dev/null +++ b/media-libs/libsdl/libsdl-1.2.14-r7.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/libsdl/libsdl-1.2.14-r6.ebuild,v 1.6 2011/05/22 23:59:29 josejx Exp $ + +EAPI=2 +inherit flag-o-matic multilib toolchain-funcs eutils libtool + +DESCRIPTION="Simple Direct Media Layer" +HOMEPAGE="http://www.libsdl.org/" +SRC_URI="http://www.libsdl.org/release/SDL-${PV}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd" +# WARNING: +# if you disable the audio, video, joystick use flags or turn on the custom-cflags use flag +# in USE and something breaks, you pick up the pieces. Be prepared for +# bug reports to be marked INVALID. +IUSE="oss alsa nas X dga xv xinerama fbcon directfb ggi svga tslib aalib opengl libcaca +audio +video +joystick custom-cflags pulseaudio ps3 static-libs" + +RDEPEND="audio? ( >=media-libs/audiofile-0.1.9 ) + alsa? ( media-libs/alsa-lib ) + nas? ( + media-libs/nas + x11-libs/libXt + x11-libs/libXext + x11-libs/libX11 + ) + X? ( + x11-libs/libXt + x11-libs/libXext + x11-libs/libX11 + x11-libs/libXrandr + ) + directfb? ( >=dev-libs/DirectFB-0.9.19 ) + ggi? ( >=media-libs/libggi-2.0_beta3 ) + svga? ( >=media-libs/svgalib-1.4.2 ) + aalib? ( media-libs/aalib ) + libcaca? ( >=media-libs/libcaca-0.9-r1 ) + opengl? ( virtual/opengl virtual/glu ) + ppc64? ( ps3? ( sys-libs/libspe2 ) ) + tslib? ( x11-libs/tslib ) + pulseaudio? ( media-sound/pulseaudio )" +DEPEND="${RDEPEND} + nas? ( + x11-proto/xextproto + x11-proto/xproto + ) + X? ( + x11-proto/xextproto + x11-proto/xproto + ) + x86? ( || ( >=dev-lang/yasm-0.6.0 >=dev-lang/nasm-0.98.39-r3 ) )" + +S=${WORKDIR}/SDL-${PV} + +pkg_setup() { + if use !audio || use !video || use !joystick ; then + ewarn "Since you've chosen to turn off some of libsdl's functionality," + ewarn "don't bother filing libsdl-related bugs until trying to remerge" + ewarn "libsdl with the audio, video, and joystick flags in USE." + ewarn "You need to know what you're doing to selectively turn off parts of libsdl." + epause 30 + fi + if use custom-cflags ; then + ewarn "Since you've chosen to use possibly unsafe CFLAGS," + ewarn "don't bother filing libsdl-related bugs until trying to remerge" + ewarn "libsdl without the custom-cflags use flag in USE." + epause 10 + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-1.2.13-sdl-config.patch \ + "${FILESDIR}"/${P}-raisefullscreen.patch \ + "${FILESDIR}"/${P}-click.patch \ + "${FILESDIR}"/${P}-joystick.patch \ + "${FILESDIR}"/${P}-glibc213.patch + + elibtoolize +} + +src_configure() { + local myconf= + if [[ $(tc-arch) != "x86" ]] ; then + myconf="${myconf} --disable-nasm" + else + myconf="${myconf} --enable-nasm" + fi + use custom-cflags || strip-flags + use audio || myconf="${myconf} --disable-audio" + use video \ + && myconf="${myconf} --enable-video-dummy" \ + || myconf="${myconf} --disable-video" + use joystick || myconf="${myconf} --disable-joystick" + + local directfbconf="--disable-video-directfb" + if use directfb ; then + # since DirectFB can link against SDL and trigger a + # dependency loop, only link against DirectFB if it + # isn't broken #61592 + echo 'int main(){}' > directfb-test.c + $(tc-getCC) directfb-test.c -ldirectfb 2>/dev/null \ + && directfbconf="--enable-video-directfb" \ + || ewarn "Disabling DirectFB since libdirectfb.so is broken" + fi + + myconf="${myconf} ${directfbconf}" + + econf \ + --disable-rpath \ + --disable-arts \ + --disable-esd \ + --enable-events \ + --enable-cdrom \ + --enable-threads \ + --enable-timers \ + --enable-file \ + --enable-cpuinfo \ + --disable-alsa-shared \ + --disable-esd-shared \ + --disable-pulseaudio-shared \ + --disable-arts-shared \ + --disable-nas-shared \ + --disable-osmesa-shared \ + $(use_enable oss) \ + $(use_enable alsa) \ + $(use_enable pulseaudio) \ + $(use_enable nas) \ + $(use_enable X video-x11) \ + $(use_enable dga) \ + $(use_enable xv video-x11-xv) \ + $(use_enable xinerama video-x11-xinerama) \ + $(use_enable X video-x11-xrandr) \ + $(use_enable dga video-dga) \ + $(use_enable fbcon video-fbcon) \ + $(use_enable ggi video-ggi) \ + $(use_enable svga video-svga) \ + $(use_enable aalib video-aalib) \ + $(use_enable libcaca video-caca) \ + $(use_enable opengl video-opengl) \ + $(use_enable ps3 video-ps3) \ + $(use_enable tslib input-tslib) \ + $(use_with X x) \ + $(use_enable static-libs static) \ + --disable-video-x11-xme \ + ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + use static-libs || rm -f "${D}"/usr/$(get_libdir)/lib*.la + dodoc BUGS CREDITS README README-SDL.txt README.CVS TODO WhatsNew + dohtml -r ./ +} -- cgit v1.2.3