add upstream patch for DoS issue (bug #141563); rev bumped to force out
authorMichael Sterrett <mr_bones_@gentoo.org>
Mon, 7 Aug 2006 03:45:30 +0000 (03:45 +0000)
committerMichael Sterrett <mr_bones_@gentoo.org>
Mon, 7 Aug 2006 03:45:30 +0000 (03:45 +0000)
Package-Manager: portage-2.1.1_pre4-r3

games-strategy/freeciv/ChangeLog
games-strategy/freeciv/files/digest-freeciv-2.0.8-r1 [new file with mode: 0644]
games-strategy/freeciv/files/freeciv-2.0.8-DoS.patch [new file with mode: 0644]
games-strategy/freeciv/freeciv-2.0.8-r1.ebuild [new file with mode: 0644]

index 4f89c28731ee612ee60c5d046a37cc69800bf8ff..d942d171ecea92baa2ec2d58c305ed1a678d854e 100644 (file)
@@ -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 <mr_bones_@gentoo.org>
+  +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 <kumba@gentoo.org> 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 (file)
index 0000000..fd5043d
--- /dev/null
@@ -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 (file)
index 0000000..83a61dd
--- /dev/null
@@ -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 (file)
index 0000000..4ce8260
--- /dev/null
@@ -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
+}