From: Michael Sterrett Date: Mon, 7 Aug 2006 03:45:30 +0000 (+0000) Subject: add upstream patch for DoS issue (bug #141563); rev bumped to force out X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=41a067e240284fa7a46a27a76f0e54b4c280e8ba;p=gentoo.git add upstream patch for DoS issue (bug #141563); rev bumped to force out Package-Manager: portage-2.1.1_pre4-r3 --- diff --git a/games-strategy/freeciv/ChangeLog b/games-strategy/freeciv/ChangeLog index 4f89c28731ee..d942d171ecea 100644 --- a/games-strategy/freeciv/ChangeLog +++ b/games-strategy/freeciv/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for games-strategy/freeciv # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeciv/ChangeLog,v 1.47 2006/07/30 03:33:10 kumba Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeciv/ChangeLog,v 1.48 2006/08/07 03:45:30 mr_bones_ Exp $ + +*freeciv-2.0.8-r1 (07 Aug 2006) + + 07 Aug 2006; Michael Sterrett + +files/freeciv-2.0.8-DoS.patch, -freeciv-2.0.8.ebuild, + +freeciv-2.0.8-r1.ebuild: + add upstream patch for DoS issue (bug #141563); rev bumped to force out 30 Jul 2006; Joshua Kinard freeciv-2.0.8.ebuild: Add pkgconfig as a DEP because freeciv needs it to find gtk. If gtk is diff --git a/games-strategy/freeciv/files/digest-freeciv-2.0.8-r1 b/games-strategy/freeciv/files/digest-freeciv-2.0.8-r1 new file mode 100644 index 000000000000..fd5043d06cbd --- /dev/null +++ b/games-strategy/freeciv/files/digest-freeciv-2.0.8-r1 @@ -0,0 +1,6 @@ +MD5 9ebd5899c2c78362e0e2c68791673a88 freeciv-2.0.8.tar.bz2 8535513 +RMD160 7ab93442cf63db22e9e660d2c1955990a1376d26 freeciv-2.0.8.tar.bz2 8535513 +SHA256 85b396c86f977b85f03fa1309733d21f7cc953e005ff1475f9981b77fa9f28f3 freeciv-2.0.8.tar.bz2 8535513 +MD5 77215914712f2f351092918f5e41e39e stdsounds3.tar.gz 118278 +RMD160 46bb5fef4b2d3acf9959b3228c962bdf6591ea09 stdsounds3.tar.gz 118278 +SHA256 a3cc2be93c006c3a9492349aa4552bf059e45efc94135f09241877c221ae1bfa stdsounds3.tar.gz 118278 diff --git a/games-strategy/freeciv/files/freeciv-2.0.8-DoS.patch b/games-strategy/freeciv/files/freeciv-2.0.8-DoS.patch new file mode 100644 index 000000000000..83a61dd1dc97 --- /dev/null +++ b/games-strategy/freeciv/files/freeciv-2.0.8-DoS.patch @@ -0,0 +1,26 @@ +--- trunk/server/unithand.c 2006/07/12 17:18:43 12065 ++++ trunk/server/unithand.c 2006/07/16 12:15:25 12106 +@@ -1622,7 +1622,8 @@ + struct tile *src_tile = map_pos_to_tile(packet->src_x, packet->src_y); + int i; + +- if (!punit || packet->length < 0 || punit->activity != ACTIVITY_IDLE) { ++ if (!punit || packet->length < 0 || punit->activity != ACTIVITY_IDLE ++ || packet->length > MAX_LEN_ROUTE) { + return; + } + +--- trunk/common/packets.c 2006/03/04 02:42:00 11710 ++++ trunk/common/packets.c 2006/07/24 08:37:08 12146 +@@ -562,8 +562,11 @@ + chunk->total_length, chunk->chunk_length); + + if (chunk->total_length < 0 ++ || chunk->chunk_length < 0 + || chunk->total_length >= MAX_ATTRIBUTE_BLOCK + || chunk->offset < 0 ++ || chunk->offset > chunk->total_length /* necessary check on 32 bit systems */ ++ || chunk->chunk_length > chunk->total_length + || chunk->offset + chunk->chunk_length > chunk->total_length + || (chunk->offset != 0 + && chunk->total_length != pplayer->attribute_block_buffer.length)) { diff --git a/games-strategy/freeciv/freeciv-2.0.8-r1.ebuild b/games-strategy/freeciv/freeciv-2.0.8-r1.ebuild new file mode 100644 index 000000000000..4ce826024a09 --- /dev/null +++ b/games-strategy/freeciv/freeciv-2.0.8-r1.ebuild @@ -0,0 +1,192 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-strategy/freeciv/freeciv-2.0.8-r1.ebuild,v 1.1 2006/08/07 03:45:30 mr_bones_ Exp $ + +inherit eutils games + +MY_P=${PN}-${PV/_/-} +DESCRIPTION="multiplayer strategy game (Civilization Clone)" +HOMEPAGE="http://www.freeciv.org/" +SRC_URI="ftp://ftp.freeciv.org/pub/freeciv/stable/${MY_P}.tar.bz2 + !dedicated? ( + alsa? ( + http://www.freeciv.org/ftp/contrib/sounds/sets/stdsounds3.tar.gz ) + esd? ( + http://www.freeciv.org/ftp/contrib/sounds/sets/stdsounds3.tar.gz ) + sdl? ( + http://www.freeciv.org/ftp/contrib/sounds/sets/stdsounds3.tar.gz ) )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 ~mips ppc sparc x86" +IUSE="alsa dedicated esd gtk nls readline sdl Xaw3d" + +RDEPEND="sys-libs/zlib + readline? ( sys-libs/readline ) + !dedicated? ( + gtk? ( + >=dev-util/pkgconfig-0.9 + >=x11-libs/gtk+-2.0.0 + >=dev-libs/glib-2.0.0 + >=dev-libs/atk-1.0.3 + >=x11-libs/pango-1.0.5 + ) + !gtk? ( + Xaw3d? ( + x11-libs/Xaw3d ) + !Xaw3d? ( + || ( + x11-libs/libXaw + virtual/x11 ) ) + || ( ( + x11-libs/libX11 + x11-libs/libICE + x11-libs/libSM + x11-libs/libXt + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXpm ) + virtual/x11 ) ) + alsa? ( + >=media-libs/alsa-lib-1.0 + >=media-libs/audiofile-0.2 + ) + esd? ( >=media-sound/esound-0.2 ) + sdl? ( + >=media-libs/sdl-mixer-1.2 + >=media-libs/libsdl-1.2 + ) + )" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + || ( ( x11-proto/xextproto ) + virtual/x11 )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + games_pkg_setup + if ! use dedicated ; then + if use gtk ; then + einfo "The Freeciv Client will be built with the GTK+-2 toolkit" + elif use Xaw3d ; then + einfo "The Freeciv Client will be built with the Xaw3d toolkit" + else + einfo "The Freeciv Client will be built with the Xaw toolkit" + fi + if ! use esd && ! use alsa && ! use sdl ; then + ewarn + ewarn "To enable sound support in civclient, you must enable" + ewarn "at least one of this USE flags: alsa, esd, sdl" + ewarn + fi + fi +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # bug #141563 DoS attack + # https://bugs.gentoo.org/show_bug.cgi?id=141563 + epatch "${FILESDIR}/${P}-DoS.patch" + + # install locales in /usr/share/locale + sed -i \ + -e 's:^\(localedir = \).*:\1/usr/share/locale:' \ + intl/Makefile.in po/Makefile.in.in \ + || die "sed failed" + sed -i \ + -e '/^#define LOCALEDIR/s:".*":"/usr/share/locale":' \ + configure \ + || die "sed failed" + + # change .desktop icon to the freeciv icon rather than the gnome globe + sed -i \ + -e 's:^\(Icon=\).*:\1freeciv.png:' \ + bootstrap/freeciv.desktop.in \ + || die "sed failed" + + # change .desktop category so it is not gnome specific + sed -i \ + -e 's:^\(Categories=GNOME;Application;Game;Strategy;\):Categories=Application;Game;StrategyGame;:' \ + bootstrap/freeciv.desktop.in \ + || die "sed failed" + # install the .desktop in /usr/share/applications + sed -i \ + -e 's:^\(desktopfiledir = \).*:\1/usr/share/applications:' \ + client/Makefile.in \ + || die "sed failed" + + # remove civclient manpage if dedicated server + if use dedicated ; then + sed -i \ + -e '/man_MANS = /s:civclient.6::' \ + doc/man/Makefile.in \ + || die "sed failed" + fi +} + +src_compile() { + local mysoundconf + local myclient + + if use dedicated ; then + mysoundconf="--disable-alsa --disable-esd --disable-sdl-mixer" + myclient="no" + else + myclient="xaw" + use Xaw3d && myclient="xaw3d" + if use gtk ; then + myclient="gtk-2.0" + fi + #FIXME --enable-{alsa,esd,sdl-mixer} actually disable them... + #FIXME ==> use --disable-* only, and autodetect to enable. + use alsa || mysoundconf="${mysoundconf} --disable-alsa" + use esd || mysoundconf="${mysoundconf} --disable-esd" + use sdl || mysoundconf="${mysoundconf} --disable-sdl-mixer" + fi + + egamesconf \ + --disable-dependency-tracking \ + --with-zlib \ + $(use_enable nls) \ + $(use_with readline) \ + --enable-client=${myclient} \ + ${mysoundconf} \ + || die "egamesconf failed" + + emake || die "emake failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" + + if ! use dedicated ; then + # Install the app-defaults if Xaw/Xaw3d toolkit + if ! use gtk ; then + insinto /etc/X11/app-defaults + doins data/Freeciv || die "doins failed" + fi + # Install sounds if at least one sound plugin was built + if use alsa || use esd || use sdl ; then + cp -R ../data/stdsounds* "${D}${GAMES_DATADIR}/${PN}" \ + || die "failed to install sounds" + fi + # Create and install the html manual. It can't be done for dedicated + # servers, because the 'civmanual' tool is then not built. Also + # delete civmanual from the GAMES_BINDIR, because it's then useless. + # Note: to have it localized, it should be ran from _postinst, or + # something like that, but then it's a PITA to avoid orphan files... + ./manual/civmanual || die "civmanual failed" + dohtml manual*.html || die "dohtml failed" + rm -f "${D}/${GAMES_BINDIR}/civmanual" + fi + + dodoc ChangeLog NEWS \ + doc/{BUGS,CodingStyle,HACKING,HOWTOPLAY,PEOPLE,README*,TODO} + + doicon "${FILESDIR}/${PN}.png" + + prepgamesdirs +}