diff options
author | Michael Sterrett <mr_bones_@gentoo.org> | 2011-01-26 02:03:01 +0000 |
---|---|---|
committer | Michael Sterrett <mr_bones_@gentoo.org> | 2011-01-26 02:03:01 +0000 |
commit | 13a86d55855c3674019030734392395169f1fcff (patch) | |
tree | d2934fc54d897f757473b6468cb587055460ef41 /media-libs/libsdl | |
parent | Bug #269123: fix quota overflow security vulns. (diff) | |
download | gentoo-2-13a86d55855c3674019030734392395169f1fcff.tar.gz gentoo-2-13a86d55855c3674019030734392395169f1fcff.tar.bz2 gentoo-2-13a86d55855c3674019030734392395169f1fcff.zip |
add patch to handle joystick info correctly - patch from Gabriel Marcano via bug #332761
(Portage version: 2.1.9.25/cvs/Linux i686)
Diffstat (limited to 'media-libs/libsdl')
-rw-r--r-- | media-libs/libsdl/ChangeLog | 11 | ||||
-rw-r--r-- | media-libs/libsdl/files/libsdl-1.2.14-joystick.patch | 37 | ||||
-rw-r--r-- | media-libs/libsdl/libsdl-1.2.14-r5.ebuild | 154 |
3 files changed, 200 insertions, 2 deletions
diff --git a/media-libs/libsdl/ChangeLog b/media-libs/libsdl/ChangeLog index ce07dd9a9cd8..e4af28c9e225 100644 --- a/media-libs/libsdl/ChangeLog +++ b/media-libs/libsdl/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for media-libs/libsdl -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-libs/libsdl/ChangeLog,v 1.170 2010/10/26 16:03:26 mr_bones_ Exp $ +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/media-libs/libsdl/ChangeLog,v 1.171 2011/01/26 02:03:00 mr_bones_ Exp $ + +*libsdl-1.2.14-r5 (26 Jan 2011) + + 26 Jan 2011; Michael Sterrett <mr_bones_@gentoo.org> + +libsdl-1.2.14-r5.ebuild, +files/libsdl-1.2.14-joystick.patch: + add patch to handle joystick info correctly - patch from Gabriel Marcano + via bug #332761 *libsdl-1.2.14-r4 (26 Oct 2010) 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 000000000000..7f7e7a2e3940 --- /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/libsdl-1.2.14-r5.ebuild b/media-libs/libsdl/libsdl-1.2.14-r5.ebuild new file mode 100644 index 000000000000..467d1016bb11 --- /dev/null +++ b/media-libs/libsdl/libsdl-1.2.14-r5.ebuild @@ -0,0 +1,154 @@ +# 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-r5.ebuild,v 1.1 2011/01/26 02:03:00 mr_bones_ 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}-click.patch \ + "${FILESDIR}"/${P}-joystick.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 ./ +} |