diff options
Diffstat (limited to 'games-fps/ut2004/ut2004-3323.ebuild')
-rw-r--r-- | games-fps/ut2004/ut2004-3323.ebuild | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/games-fps/ut2004/ut2004-3323.ebuild b/games-fps/ut2004/ut2004-3323.ebuild new file mode 100644 index 000000000000..1a6d4d9fff51 --- /dev/null +++ b/games-fps/ut2004/ut2004-3323.ebuild @@ -0,0 +1,245 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-fps/ut2004/ut2004-3323.ebuild,v 1.1 2004/09/14 21:41:35 wolf31o2 Exp $ + +inherit games + +MY_P="${PN}-lnxpatch${PV}.tar.bz2" +DESCRIPTION="Unreal Tournament 2004 - follow-up to the 2003 multi-player first-person shooter" +HOMEPAGE="http://www.unrealtournament2004.com/" +SRC_URI="http://ftp4.3dgamers.com/pub/3dgamers/games/unrealtourn2k4/${MY_P} + http://3dgamers.intelenet.net/pub/3dgamers/games/unrealtourn2k4/${MY_P} + ftp://3dgamers.in-span.net/pub/3dgamers5/games/unrealtourn2k4/${MY_P} + http://iadfillvip.xlontech.net/100083/games/unrealtourn2k4/${MY_P} + http://mirror1.icculus.org/${PN}/${MY_P}" + +LICENSE="ut2003" +SLOT="0" +KEYWORDS="x86 amd64" +RESTRICT="nostrip" +IUSE="opengl dedicated" + +DEPEND="virtual/libc + games-util/uz2unpack" +RDEPEND="opengl? ( virtual/opengl ) + dedicated? ( app-misc/screen )" + +S=${WORKDIR} + +dir=${GAMES_PREFIX_OPT}/${PN} +Ddir=${D}/${dir} + +pkg_setup() { + check_license || die "License check failed" + ewarn "The installed game takes about 6.8GB of space!" + + # The following is a nasty mess to determine if we are installing from + # a DVD or from multiple CDs. Anyone feel free to submit patches to this + # to bugs.gentoo.org as I know it is a very ugly hack. + USE_DVD= + if [ -n "${CD_ROOT}" ]; then + [ -d "${CD_ROOT}/CD1" ] && USE_DVD=1 + else + local mline="" + for mline in `mount | egrep -e '(iso|cdrom)' | awk '{print $3}'` ; do + [ -d "${mline}/CD1" ] && USE_DVD=1 + done + fi + if [ ${USE_DVD} ]; then + DISK1="CD1" + DISK2="CD2" + DISK3="CD3" + DISK4="CD4" + DISK5="CD5" + DISK6="CD6" + fi + cdrom_get_cds ${DISK1}/System/UT2004.ini \ + ${DISK2}/Textures/2K4Fonts.utx.uz2 \ + ${DISK3}/Textures/ONSDeadVehicles-TX.utx.uz2 \ + ${DISK4}/Music/KR-UT2004-Menu.ogg \ + ${DISK5}/Speech/ons.xml ${DISK6}/DirectX9/BDA.cab + + games_pkg_setup +} + +src_unpack() { + unpack_makeself ${CDROM_ROOT}/linux-installer.sh \ + || die "unpacking linux installer" + use x86 && tar -xf ${S}/linux-x86.tar + use amd64 && tar -xf ${S}/linux-amd64.tar + unpack ${MY_P} +} + +src_install() { + dodir ${dir}/System/editorres + + # Disk 1 + einfo "Copying files from Disk 1..." + cp -r ${CDROM_ROOT}/${DISK1}/{Animations,ForceFeedback,Help,KarmaData,Maps,Sounds,Web} ${Ddir} || die "copying files" + cp -r ${CDROM_ROOT}/${DISK1}/System/{editorres,*.{bat,bmp,dat,det,est,frt,ini,int,itt,kot,md5,smt,tmt,u,ucl,upl,url}} ${Ddir}/System || die "copying files" + mkdir -p ${Ddir}/Manual || die "creating manual folder" + cp ${CDROM_ROOT}/${DISK1}/Manual/Manual.pdf ${Ddir}/Manual \ + || die "copying manual" + mkdir -p ${Ddir}/Benchmark/Stuff || die "creating benchmark folders" + cp -r ${CDROM_ROOT}/${DISK1}/Benchmark/Stuff/* ${Ddir}/Benchmark/Stuff \ + || die "copying benchmark files" + cdrom_load_next_cd + + # Disk 2 + einfo "Copying files from Disk 2..." + cp -r ${CDROM_ROOT}/${DISK2}/{Sounds,Textures} ${Ddir} || die "copying files" + cdrom_load_next_cd + + # Disk 3 + einfo "Copying files from Disk 3..." + cp -r ${CDROM_ROOT}/${DISK3}/Textures ${Ddir} || die "copying files" + cdrom_load_next_cd + + #Disk 4 + einfo "Copying files from Disk 4..." + cp -r ${CDROM_ROOT}/${DISK4}/{Music,StaticMeshes,Textures} ${Ddir} \ + || die "copying files" + cdrom_load_next_cd + + #Disk 5 + einfo "Copying files from Disk 5..." + cp -r ${CDROM_ROOT}/${DISK5}/{Music,Sounds} ${Ddir} \ + || die "copying files" + cdrom_load_next_cd + + #Disk 6 + einfo "Copying files from Disk 6..." + cp -r ${CDROM_ROOT}/${DISK6}/Sounds ${Ddir} \ + || die "copying files" + + # create empty files in Benchmark + for j in {CSVs,Logs,Results} ; do + mkdir -p ${Ddir}/Benchmark/${j} || die "creating folders" + touch ${Ddir}/Benchmark/${j}/DO_NOT_DELETE.ME || die "creating files" + done + + # install extra help files + insinto ${dir}/Help + doins ${S}/Unreal.bmp ${S}/UT2004Logo.bmp + + # install eula + insinto ${dir} + doins ${S}/UT2004_EULA.txt + + # install System.inis + insinto ${dir}/System + doins ${S}/ini-{det,est,frt,int,itt,kot,smt,tmt}.tar + + # copy ut2004 + exeinto ${dir} + doexe ${S}/bin/ut2004 || die "copying ut2004" + + exeinto ${dir}/System + doexe ${S}/System/{libSDL-1.2.so.0,openal.so,u{cc,t2004}-bin} \ + || die "copying libs/ucc/ut2004" + + # Removing uneccessary files in Sounds + rm -f ${Ddir}/Sounds/*.{det,est,frt,itt,kot,smt,tmt}_uax.uz2 + + # Installing patch files (first time) for decompress + cp ${S}/UT2004-Patch/System/* ${Ddir}/System + use amd64 && rm ${Ddir}/System/ucc-bin && mv ${Ddir}/System/ucc-bin-linux-amd64 ${Ddir}/System/ucc-bin + + # uncompressing files + einfo "Uncompressing files... this *will* take a while..." + for j in {Animations,Maps,Sounds,StaticMeshes,Textures} ; do + chmod -R u+w ${Ddir}/${j} || die "chmod in uncompress" + games_ut_unpack ${Ddir}/${j} || die "uncompressing files" + done + + # Installing patch files + for p in {Help,System,Textures,Web}; do + cp -r ${S}/UT2004-Patch/${p}/* ${Ddir}/${p} \ + || die "copying ${p} from patch." + done + + use amd64 && rm ${Ddir}/System/u{cc,t2004}-bin \ + && mv ${Ddir}/System/ucc-bin-linux-amd64 ${Ddir}/System/ucc-bin \ + && mv ${Ddir}/System/ut2004-bin-linux-amd64 ${Ddir}/System/ut2004-bin \ + && chmod ug+x ${Ddir}/System/ucc-bin ${Ddir}/System/ut2004-bin + use x86 && rm ${Ddir}/System/ucc-bin-linux-amd64 \ + ${Ddir}/System/ut2004-bin-linux-amd64 + + # Removing unneccessary files in System and Help + rm -f ${Ddir}/Help/{InstallerLogo.bmp,SAPI-EULA.txt,{Unreal,UnrealEd}.ico} + rm -f ${Ddir}/System/*.tar + rm -f ${Ddir}/System/{{License,Manifest}.smt,{ucc,StdOut}.log,{User,UT2004}.ini} + + # installing documentation/icon + dodoc ${S}/README.linux || die "dodoc README.linux" + insinto /usr/share/pixmaps; + doins ${S}/ut2004.xpm || die "copying pixmap" + insinto ${dir} + doins ${S}/README.linux ${S}/ut2004.xpm || die "copying readme/icon" + + # creating .manifest files + insinto ${dir}/.manifest + doins ${FILESDIR}/${PN}.xml + + # creating .loki/installed links + mkdir -p ${D}/root/.loki/installed + dosym ${dir}/.manifest/${PN}.xml /root/.loki/installed/${PN}.xml + + games_make_wrapper ut2004 ./ut2004 ${dir} + + # now, since these files are coming off a cd, the times/sizes/md5sums wont + # be different ... that means portage will try to unmerge some files (!) + # we run touch on ${D} so as to make sure portage doesnt do any such thing + find ${Ddir} -exec touch '{}' \; + + prepgamesdirs + make_desktop_entry ut2004 "Unreal Tournament 2004" ut2004.xpm +} + +pkg_postinst() { + games_pkg_postinst + + # here is where we check for the existence of a cdkey... + # if we don't find one, we ask the user for it + if [ -f ${dir}/System/cdkey ]; then + einfo "A cdkey file is already present in ${dir}/System" + else + ewarn "You MUST run this before playing the game:" + ewarn "ebuild /var/db/pkg/${CATEGORY}/${PF}/${PF}.ebuild config" + ewarn "That way you can [re]enter your cdkey." + fi + echo + einfo "To play the game run:" + einfo " ut2004" + echo +} + +pkg_postrm() { + ewarn "This package leaves a cdkey file in ${dir}/System that you need" + ewarn "to remove to completely get rid of this game's files." +} + +pkg_config() { + ewarn "Your CD key is NOT checked for validity here." + ewarn " Make sure you type it in correctly." + eerror "If you CTRL+C out of this, the game will not run!" + echo + einfo "CD key format is: XXXXX-XXXXX-XXXXX-XXXXX" + while true ; do + einfo "Please enter your CD key:" + read CDKEY1 + einfo "Please re-enter your CD key:" + read CDKEY2 + if [ "$CDKEY1" == "" ] ; then + echo "You entered a blank CD key. Try again." + else + if [ "$CDKEY1" == "$CDKEY2" ] ; then + echo "$CDKEY1" | tr a-z A-Z > ${dir}/System/cdkey + einfo "Thank you!" + break + else + eerror "Your CD key entries do not match. Try again." + fi + fi + done +} |