summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.13-sdl-config.patch20
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.14-click.patch15
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.14-glibc213.patch12
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.14-joystick.patch37
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.14-raisefullscreen.patch10
-rw-r--r--media-libs/libsdl/libsdl-1.2.14-r7.ebuild156
6 files changed, 250 insertions, 0 deletions
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 ./
+}