summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sterrett <mr_bones_@gentoo.org>2011-01-26 02:03:01 +0000
committerMichael Sterrett <mr_bones_@gentoo.org>2011-01-26 02:03:01 +0000
commit13a86d55855c3674019030734392395169f1fcff (patch)
treed2934fc54d897f757473b6468cb587055460ef41 /media-libs/libsdl
parentBug #269123: fix quota overflow security vulns. (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--media-libs/libsdl/files/libsdl-1.2.14-joystick.patch37
-rw-r--r--media-libs/libsdl/libsdl-1.2.14-r5.ebuild154
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 ./
+}