blob: 6c11f747c25a2fc96734f55912990fffdfb7fc65 [file] [log] [blame]
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
inherit eutils unpacker games
DESCRIPTION="Sequel to Quake 2, an id Software 3D first-person shooter"
HOMEPAGE="http://www.quake4game.com/"
SRC_URI="mirror://idsoftware/quake4/linux/quake4-linux-${PV}.x86.run"
LICENSE="QUAKE4"
SLOT="0"
KEYWORDS="-* amd64 x86"
IUSE="cdinstall dedicated linguas_cs linguas_fr linguas_it linguas_pl linguas_ru"
RESTRICT="strip"
# QUAKE4 NEEDS s3tc support, which can be obtained for OSS drivers via
# media-libs/libtxc_dxtn and is built into the proprietary drivers.
# depend optionally on them but elog too, in case a user has both
# proprietary and OSS drivers installed and sees the segfault.
RDEPEND="sys-libs/glibc
amd64? ( sys-libs/glibc[multilib] )
sys-libs/zlib[abi_x86_32(-)]
dedicated? ( app-misc/screen )
!dedicated? (
|| (
>=media-libs/libtxc_dxtn-1.0.1-r1[abi_x86_32(-)]
x11-drivers/nvidia-drivers
>=x11-drivers/ati-drivers-8.8.25-r1
)
>=x11-libs/libX11-1.6.2[abi_x86_32(-)]
>=x11-libs/libXext-1.3.2[abi_x86_32(-)]
>=media-libs/libsdl-1.2.15-r4[X,opengl,sound,abi_x86_32(-)]
)
cdinstall? ( games-fps/quake4-data )"
S=${WORKDIR}
dir=${GAMES_PREFIX_OPT}/quake4
Ddir=${D}/${dir}
QA_TEXTRELS="${dir:1}/pb/pbag.so
${dir:1}/pb/pbags.so
${dir:1}/pb/pbcl.so
${dir:1}/pb/pbcls.so
${dir:1}/pb/pbsv.so
${dir:1}/libSDL-1.2.id.so.0"
QA_EXECSTACK="${dir:1}/quake4.x86
${dir:1}/quake4smp.x86
${dir:1}/q4ded.x86
${dir:1}/libSDL-1.2.id.so.0"
zpaklang() {
if ! use linguas_${1} ; then
einfo "Removing ${2} zpak files"
rm -f q4base/zpak_${2}*
fi
}
src_unpack() {
unpack_makeself ${A}
mv q4icon.bmp quake4.bmp || die
# Am including the Spanish files because Spanish is the default language
#zpaklang es spanish
zpaklang cs czech
zpaklang fr french
zpaklang it italian
zpaklang pl polish
zpaklang ru russian
# Rename the .off files, so they will be used
cd q4base
if [[ ! -z $(ls *.off 2> /dev/null) ]] ; then
local f
for f in *.off ; do
einfo "Renaming ${f}"
mv "${f}" "${f%.off}" || die "mv ${f}"
done
fi
}
src_install() {
insinto "${dir}"
doins CHANGES* License.txt sdl.patch.1.2.10 us/version.info
doins -r pb q4mp
dodoc README*
insinto "${dir}"/q4base
doins q4base/* us/q4base/* || die "doins q4base"
games_make_wrapper quake4-ded ./q4ded.x86 "${dir}" "${dir}"
exeinto "${dir}"
doexe openurl.sh bin/Linux/x86/q4ded.x86
if ! use dedicated ; then
doexe bin/Linux/x86/{quake4{,smp}.x86,*.id.so.?}
doicon quake4.bmp || die "doicon"
games_make_wrapper quake4 "./quake4.x86" "${dir}" "${dir}"
games_make_wrapper quake4-smp ./quake4smp.x86 "${dir}" "${dir}"
icon_path="quake4"
if [ -e "${FILESDIR}"/quake4.png ]
then
doicon "${FILESDIR}"/quake4.png || die "copying icon"
elif [ -e "${DISTDIR}"/quake4.png ]
then
doicon "${DISTDIR}"/quake4.png || die "copying icon"
else
icon_path=/usr/share/pixmaps/quake4.bmp
fi
make_desktop_entry quake4 "Quake IV" ${icon_path}
make_desktop_entry quake4-smp "Quake IV (SMP)" ${icon_path}
fi
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
if ! use cdinstall ; then
elog "You need to copy pak001.pk4 through pak012.pk4, along with"
elog "zpak*.pk4 from either your installation media or your hard drive"
elog "to ${dir}/q4base before running the game."
echo
fi
if ! use dedicated ; then
elog "To play the game, run: quake4"
elog
# The default language is Spanish!
elog "To reset the language from Spanish to English, run:"
elog " sed -i 's:spanish:english:' ~/.quake4/q4base/Quake4Config.cfg"
elog
elog "Saved games from previous Quake 4 versions might not be compatible."
elog
elog "If you get a segmentation fault or an error regarding"
elog "'GL_EXT_texture_compression_s3tc', you can obtain the"
elog "necessary support for your mesa drivers by installing"
elog "media-libs/libtxc_dxtn (for abi_x86_32 if multilib)."
echo
fi
elog "To start the dedicated server, run: quake4-ded"
}