Portage is a package management system used by Gentoo Linux
# ChangeLog for games-fps/duke3d
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/games-fps/duke3d/ChangeLog,v 1.29 2008/02/28 03:24:23 mr_bones_ Exp $
28 Feb 2008; Michael Sterrett
+files/duke3d-20040817-as-needed.patch, duke3d-20040817-r2.ebuild:
add patch for --as-needed support from Harald van Dijk (bug #211679)
04 Jan 2008; Michael Sterrett
duke3d-20040817-r2.ebuild:
strip flags for bug #203969
*duke3d-20040817-r2 (02 Jul 2007)
02 Jul 2007;
Adding demo. Bug #161684 by Paul Bredbury
12 Mar 2007; Marius Mauch
duke3d-20040817-r1.ebuild:
Replacing einfo with elog
07 Mar 2007; Chris Gianelloni
duke3d-20040817.ebuild, duke3d-20040817-r1.ebuild:
Change all instances of [ to [[.
24 Dec 2006;
Test for perl build with ithreads use flags. Bug #80999 by Alan Grimes
*duke3d-20040817-r1 (30 Aug 2006)
30 Aug 2006;
+duke3d-20040817-r1.ebuild:
Give more info on how to install files, Bug #115923 by Ivan Yosifov
Duke3d fix for gcc-4, Bug #122290 by Patrizio Bassi and Bug #134693 by Joël
network.cfg installed as network.cfg.template, Bug #116521 by Ivan Yosifov
No more hang at menu, Bug #140441 by FieldySnuts
05 Mar 2006; Tony Vroon
duke3d-20040817.ebuild:
Patch by Mark Loeser
to complete. Closes bug #122290. Unfortunately portability is not improved.
28 Jan 2006; Michael Sterrett
duke3d-20040817.ebuild:
X is implicit (bug #120615)
23 Jun 2005; Michael Sterrett
duke3d-20040817.ebuild:
don't use asm for hardened (bug #96696)
28 Mar 2005; Guy Martin
OMG ! This thing runs on hppa !
05 Dec 2004; Michael Sterrett
fix build with USE=-opengl (bug #73391); tidy
26 Aug 2004; Mike Frysinger
+files/20040817-endian.patch:
Add a patch to fix running on big endian systems #61529 by Maciej J. Woloszyk.
22 Aug 2004; Tony Vroon
duke3d-20040817.ebuild:
Fix compilation on GCC 3.4
*duke3d-20040817 (18 Aug 2004)
18 Aug 2004; Mike Frysinger
+files/20040817-credits.patch, +files/20040817-duke3d-makefile-opts.patch,
-files/duke3d, +duke3d-20040817.ebuild:
Version bump #60578.
07 Jun 2004; Michael Sterrett
duke3d-20030817-r1.ebuild:
use_ft() isn't used
20 Apr 2004; Michael Sterrett
duke3d-20030817-r1.ebuild, files/20030817-credits.patch:
patch to add info text and empty credits screen from Ondrej Jombik via bug
#46094
18 Apr 2004; Michael Sterrett
duke3d-20030817-r1.ebuild:
use games_make_wrapper; tidy; fix use_tf() and use_ft()
10 Apr 2004; Michael Sterrett
duke3d-20030817-r1.ebuild:
don't rdepend on sed; error check sed; use flag tidy
28 Nov 2003; David Holm
nasm is only available on x86 and timidity-eawpatches is only available on
~ppc, so moving duke3d back to keep repoman happy.
26 Nov 2003; Michael Sterrett
duke3d-20030817-r1.ebuild:
depend on dev-lang/nasm (bug 34451)
01 Nov 2003; David Holm
Added to ~ppc.
*duke3d-20030817-r1 (18 Sep 2003)
18 Sep 2003; Mike Frysinger
Disabled physfs since for some reason it can't read saved games #28151.
Also add a sample network.cfg file.
*duke3d-20030817 (17 Aug 2003)
18 Sep 2003; Mike Frysinger
Fixed building issue #28726, added a default duke3d.cfg file,
and added timidity to DEPEND so users get midi music.
25 Aug 2003; Michael Sterrett
added flag-o-matic; DEPEND on sed >= 4; filter -O3 down to -O2 for bug 26968;
add a couple of error messages
18 Aug 2003; Chris Gianelloni
Fixing dependency. Closing bug #26855
17 Aug 2003; Mike Frysinger
Initial import. Ebuild submitted by me.
AUX 20040817-credits.patch 1267 RMD160 bef48612e6e7176e1f7a252bfd837f177814e80b SHA1 2ec3f180611c45c7fe29ab2ccaa2d35822dc1ef3 SHA256 ea4d7540790ea937d97d5e87abdfa893e58b699fcb16abb30e84529edce061a9
AUX 20040817-duke3d-makefile-opts.patch 863 RMD160 49c36fb8f5907f9ac01fd2d9e4a5c192b7ba5fdf SHA1 a726263c6645c228da4fc9cc844a221fa3614ff6 SHA256 afcc1bfc4e3977dbe02b1f390d184b00d8773b1690dce10f4728c535b9c69d56
AUX 20040817-endian.patch 772 RMD160 b5657806a89846a9280b7ece2aa95b7816249e8b SHA1 c88d5e0e4efb7bdaf507f8f80f116fab1d74c91f SHA256 e0bd07c16123593627e888c102a84af033e906ace3aa3a1559828d83626ec16e
AUX 20040817-gcc34.patch 1886 RMD160 971968bf75c8151269ee3ca6a326ca780e2470ad SHA1 9cf88162fb707103465e804325fa98bf14676d67 SHA256 f6f8271c95d898317b17eb22986a90294db4297482b011b01bf659c22686a3d8
AUX 20040817-gcc4.patch 2169 RMD160 641c45992c2c26447543b9c2175673e9588b71ef SHA1 b892403cb36694e8d6de939194f629a33a8ff79a SHA256 aef2b2b12a04a69ed075df55aae1f8a40d9c4fb9c5abd62f66119da3357c540a
AUX duke3d-20040817-as-needed.patch 2774 RMD160 a08c589c2eb7c8cca8a2660c0587ae079d39080a SHA1 b0da82411173aa3b0378570e0d54c519d33a5753 SHA256 d69ef12868cad9fccf4de6114ff3d127d95219f3417e6f3b8f0f9ce05c1f2e3a
AUX duke3d-20040817-gcc4.patch 10474 RMD160 a83132ef666d8a78da848ccbb40f16e1250750f6 SHA1 79f26bf9ff0718cca1f9428b93a8808027e214b3 SHA256 010ceb7ff130da74d0f6349a9d12ddc206940d8545499cccb319220ba7d9d585
AUX duke3d.cfg 4314 RMD160 8ba6360d6bc24ae353a8c3ad0b973c47d379ea21 SHA1 a6ac127c82aa845ce2afa3657088bd0084335ed8 SHA256 0ad9477e6185f0d812d726943beacdc7f7581f66c86640f44ee8e5621fe40556
AUX network.cfg 398 RMD160 4452e8b8a99f0e08b192f2418ff8324c4bce8a7e SHA1 e9e81a204fd5b470dbd48130cde8e7270ec64eed SHA256 fe5806712207d39812906034b76191effc96d7c6efa9c8bd9081e18fab76d7b5
DIST 3dduke13.zip 5924374 RMD160 b2788f0ef7e8e88bcd1c4e56d22cd741109ea59a SHA1 72b832734d72c829cecaffd8d8ae0eb38995aeb3 SHA256 c67efd179022bc6d9bde54f404c707cbcbdc15423c20be72e277bc2bdddf3d0e
DIST duke3d-20040817.tar.bz2 1509273 RMD160 d6d4896c6357e21543d68e322f18e8c0c00224d4 SHA1 795b4616c6840023d2f790de3aff2342ef40fa25 SHA256 c0dd72030f9c5b84aea3e4989831311c94ef21641d6a1fdb0f557d04076f641f
EBUILD duke3d-20040817-r1.ebuild 3462 RMD160 08ba1b796b9497271b4effcfda6a91fcd23b233f SHA1 8e403819b56ca384b7f929e2984d12f56c50332f SHA256 f5c421be36ea0244fc99366a3af9c5cb50bf83f7eb14ecb8aacda7e3c7e61205
EBUILD duke3d-20040817-r2.ebuild 3549 RMD160 3cee5826ce56f27dee3a6e1d74f03d281d07985c SHA1 06c68f0c6ecba92ccc4c38ffdaaab9e8adfe3d2d SHA256 4a34b91994b0e35f5eca1639eea6f8a2599cab7c2a904ae19b8b647880a376f0
MISC ChangeLog 4577 RMD160 c4ef6b0650ac37fa50a0b87256781ad28d28ccca SHA1 acee39ea88351b8853895ce0a2a05e2877f774d4 SHA256 2ea1edec74350cd78b22ff5326844465556a3388dd7c31a08472caf46fcc8cc4
MISC metadata.xml 2667 RMD160 61ec03a2b83ad248c9b2d2698a3d0a0757d76632 SHA1 0f28817ccf8747fe0df6d7123bf679e3a7feb520 SHA256 a3441be8af1e3a5a3d57d085f7ca727ce025d2f8e5e5b0821436ca391318decf
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-fps/duke3d/duke3d-20040817-r1.ebuild,v 1.6 2007/11/20 02:16:56 mr_bones_ Exp $
fromcvs=0
ECVS_MODULE="duke3d"
if [[ ${fromcvs} -eq 1 ]] ; then
ECVS_PASS="anonymous"
ECVS_SERVER="icculus.org:/cvs/cvsroot"
inherit cvs eutils flag-o-matic games
else
inherit eutils flag-o-matic games
fi
DESCRIPTION="port of the original DukeNukem 3D"
HOMEPAGE="http://icculus.org/projects/duke3d/"
SRC_URI="mirror://gentoo/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="hppa ppc x86"
IUSE="pic perl opengl"
RDEPEND="media-libs/libsdl
media-libs/sdl-mixer
media-sound/timidity++
media-sound/timidity-eawpatches
perl? ( dev-lang/perl )
opengl? ( virtual/opengl )"
DEPEND="${RDEPEND}
!pic? ( x86? ( dev-lang/nasm ) )"
S="${WORKDIR}/${ECVS_MODULE}"
use_tf() { use ${1} && echo "true" || echo "false"; }
pkg_setup() {
if built_with_use dev-lang/perl ithreads ; then
eerror "${PN} needs perl compiled with ithreads use-flag disabled!"
die "perl with ithreads detected"
fi
games_pkg_setup
}
src_unpack() {
if [[ ${fromcvs} -eq 1 ]] ; then
cvs_src_unpack
cd duke3d/source
ECVS_MODULE="buildengine"
cvs_src_unpack
else
unpack ${A}
fi
# configure buildengine
cd "${S}/source/buildengine"
sed -i \
-e "/^useperl := / s:=.*:= $(use_tf perl):" \
-e "/^useopengl := / s:=.*:= $(use_tf opengl):" \
-e "/^usephysfs := / s:=.*:= false:" \
-e 's:-O3::' -e 's: -g : :' \
-e 's:/usr/lib/perl5/i386-linux/CORE/libperl.a::' \
Makefile \
|| die "sed build Makefile failed"
epatch "${FILESDIR}/${PV}-endian.patch"
# configure duke3d
cd "${S}/source"
epatch "${FILESDIR}/${PV}-credits.patch"
# need to sync features with build engine
epatch "${FILESDIR}/${PV}-duke3d-makefile-opts.patch"
epatch "${FILESDIR}/${PV}-gcc34.patch" # compile fixes for GCC 3.4
epatch "${FILESDIR}"/${P}-gcc4.patch
sed -i \
-e "/^use_opengl := / s:=.*:= $(use_tf opengl):" \
-e "/^use_physfs := / s:=.*:= false:" \
Makefile \
|| die "sed duke3d Makefile failed"
if ! use pic && use x86 ; then
sed -i \
-e 's:^#USE_ASM:USE_ASM:' buildengine/Makefile \
|| die "sed failed"
sed -i \
-e '/^#use_asm := /s:#::' Makefile \
|| die "sed failed"
fi
# causes crazy redefine errors with gcc-3.[2-4].x
replace-flags -O3 -O2
}
src_compile() {
emake -C source/buildengine OPTFLAGS="${CFLAGS}" || die "buildengine failed"
emake -C source OPTIMIZE="${CFLAGS}" || die "duke3d failed"
}
src_install() {
games_make_wrapper duke3d "${GAMES_BINDIR}/duke3d.bin" "${GAMES_DATADIR}/${PN}"
newgamesbin source/duke3d duke3d.bin || die "newgamesbin failed"
dodoc readme.txt
cd testdata
insinto "${GAMES_DATADIR}/${PN}"
newins defs.con DEFS.CON
newins game.con GAME.CON
newins user.con USER.CON
newins "${FILESDIR}/network.cfg" network.cfg.template
insinto "${GAMES_SYSCONFDIR}"
doins "${FILESDIR}/duke3d.cfg"
dosym "${GAMES_SYSCONFDIR}/duke3d.cfg" "${GAMES_DATADIR}/${PN}/DUKE3D.CFG"
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
elog "Put the data files in ${GAMES_DATADIR}/${PN} before playing"
elog ""
elog "For the shareware version, get the zip file at"
elog "ftp://ftp.3drealms.com/share/3dduke13.zip, unzip in some temporary"
elog "directory, unzip again the file DN3DSW13.SHR. You should have now"
elog "the DUKE3D.GRP file. Move only this in ${GAMES_DATADIR}/${PN}"
}
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/games-fps/duke3d/duke3d-20040817-r2.ebuild,v 1.5 2008/02/28 03:24:23 mr_bones_ Exp $
fromcvs=0
ECVS_MODULE="duke3d"
if [[ ${fromcvs} -eq 1 ]] ; then
ECVS_PASS="anonymous"
ECVS_SERVER="icculus.org:/cvs/cvsroot"
inherit cvs eutils flag-o-matic games
else
inherit eutils flag-o-matic games
fi
DEMO="3dduke13.zip"
DESCRIPTION="Port of the original Duke Nukem 3D"
HOMEPAGE="http://icculus.org/projects/duke3d/"
SRC_URI="mirror://gentoo/${P}.tar.bz2
demo? (
ftp://ftp.3drealms.com/share/${DEMO}
ftp://ftp.planetmirror.com/pub/gameworld/downloads/${DEMO}
)"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~hppa ~ppc ~x86"
IUSE="demo pic perl opengl"
RDEPEND="media-libs/libsdl
media-libs/sdl-mixer
media-sound/timidity++
media-sound/timidity-eawpatches
perl? ( dev-lang/perl )
opengl? ( virtual/opengl )"
DEPEND="${RDEPEND}
demo? ( app-arch/unzip )
!pic? ( x86? ( dev-lang/nasm ) )"
S="${WORKDIR}/${PN}"
use_tf() { use ${1} && echo "true" || echo "false"; }
pkg_setup() {
if built_with_use dev-lang/perl ithreads ; then
eerror "${PN} needs perl compiled with ithreads use-flag disabled!"
die "perl with ithreads detected"
fi
games_pkg_setup
}
src_unpack() {
if [[ ${fromcvs} -eq 1 ]] ; then
cvs_src_unpack
cd duke3d/source
ECVS_MODULE="buildengine"
cvs_src_unpack
else
unpack ${A}
fi
if use demo ; then
unzip -qo DN3DSW13.SHR || die "unzip DN3DSW13.SHR failed"
fi
# configure buildengine
cd "${S}/source/buildengine"
sed -i \
-e "/^useperl := / s:=.*:= $(use_tf perl):" \
-e "/^useopengl := / s:=.*:= $(use_tf opengl):" \
-e "/^usephysfs := / s:=.*:= false:" \
-e 's:-O3::' -e 's: -g : :' \
-e 's:/usr/lib/perl5/i386-linux/CORE/libperl.a::' \
Makefile \
|| die "sed build Makefile failed"
epatch "${FILESDIR}/${PV}-endian.patch"
# configure duke3d
cd "${S}/source"
# need to sync features with build engine
epatch \
"${FILESDIR}/${PV}-credits.patch" \
"${FILESDIR}/${PV}-duke3d-makefile-opts.patch" \
"${FILESDIR}/${PV}-gcc34.patch" \
"${FILESDIR}"/${P}-gcc4.patch \
"${FILESDIR}"/${P}-as-needed.patch
sed -i \
-e "/^use_opengl := / s:=.*:= $(use_tf opengl):" \
-e "/^use_physfs := / s:=.*:= false:" \
Makefile \
|| die "sed duke3d Makefile failed"
if ! use pic && use x86 ; then
sed -i \
-e 's:^#USE_ASM:USE_ASM:' buildengine/Makefile \
|| die "sed failed"
sed -i \
-e '/^#use_asm := /s:#::' Makefile \
|| die "sed failed"
fi
# causes crazy redefine errors with gcc-3.[2-4].x
replace-flags -O3 -O2
strip-flags #203969
}
src_compile() {
emake -C source/buildengine OPTFLAGS="${CFLAGS}" || die "buildengine failed"
emake -C source OPTIMIZE="${CFLAGS}" || die "duke3d failed"
}
src_install() {
games_make_wrapper duke3d "${GAMES_BINDIR}/duke3d.bin" "${GAMES_DATADIR}/${PN}"
newgamesbin source/duke3d duke3d.bin || die "newgamesbin failed"
dodoc readme.txt
cd testdata
insinto "${GAMES_DATADIR}/${PN}"
newins defs.con DEFS.CON
newins game.con GAME.CON
newins user.con USER.CON
newins "${FILESDIR}/network.cfg" network.cfg.template
if use demo ; then
doins "${WORKDIR}/DUKE3D.GRP" || die "doins DUKE3D.GRP failed"
fi
insinto "${GAMES_SYSCONFDIR}"
doins "${FILESDIR}/duke3d.cfg"
dosym "${GAMES_SYSCONFDIR}/duke3d.cfg" "${GAMES_DATADIR}/${PN}/DUKE3D.CFG"
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
use demo || elog "Put the data files in ${GAMES_DATADIR}/${PN} before playing"
}
The third chapter in the series, and the first with a 3D perspective
(the original Duke Nukem and the sequel, Duke Nukem II, are side
scrolling platform games). This game, set sometime in the early 21st
century, begins in a ravaged LA, which was overtaken by aliens while you
were abducted during Duke Nukem II. Duke, upon returning to Earth, finds
himself with another mess to clean up, and another alien race that needs
exterminating. Duke is a can-do hero who realizes that sometimes
innocent people have to die in order to save Earth, so accuracy of gun
fire is not a real concern to him. :)
This game has a long list of cool things that haven't been attempted in
3D action games, yet. The weapons, for example, kick-butt:
* There's a mine that can be placed on any wall and sends out a
laser trip beam-- perfect for multiplayer games.
* There's also a shrinker ray that reduces an opponent to the size
of a G.I. Joe, at which point they are foot fodder--watch them splat!
* As in Shadow Warrior, you can swim under water, and even shoot
players who are standing outside the water, or vice versa.
What works:
* Basic gameplay seems fine.
* Sound and music.
* keyboard input.
* mouse input.
* Hi-res (what would be "VESA modes" in DOS).
* Windowed/fullscreen support.
* Save games.
* Record and playback demos compatible with the Atomic Edition (1.5).
* Shareware and retail versions should all work.
* BUILD editor works to a large degree.
* DukeBots for multiplayer AI.
* Assembly code all has portable C fallbacks, now.
* TCP/IP Networking!
* Linux/x86 port.
* Windows/x86 port.
* BeOS/x86 port.
* (incomplete) MacOS X port.
What doesn't work/known bugs:
* Joystick input isn't working yet.
* File cases need to be exact in some places, not others.
* Engine (game?) relies on compiler treating "char" as "unsigned" by default...this needs to be flushed out, for sanity's sake. But I'm anal. :)
* Netcode handles packet loss _VERY_ poorly...it's fine for stable connections and LANs, though.
* Configuring a multiplayer game involves editing text files and filling in IP addresses. Not very user-friendly.
* Some text prompts try to read the SDL input queue instead of stdin like they should.
* Probably other stuff. Do NOT consider this stable and complete yet!