1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
inherit cdrom eutils versionator games unpacker
# MY_PV will be e.g. "beta1"
MY_PN="ssamtse"
MY_PV=$(get_version_component_range 2-2)
DESCRIPTION="Serious Sam: The Second Encounter"
HOMEPAGE="http://www.croteam.com/
http://www.seriouszone.com/"
SRC_URI="http://icculus.org/betas/ssam/${MY_PN}-${MY_PV}.sh.bin"
LICENSE="LOKI-EULA"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
RESTRICT="strip"
IUSE="alsa"
DEPEND=">=app-arch/unshield-0.6"
RDEPEND="
>=media-libs/libogg-1.3.1[abi_x86_32(-)]
>=media-libs/libsdl-1.2.15-r5[X,joystick,opengl,video,abi_x86_32(-)]
virtual/opengl[abi_x86_32(-)]
alsa? (
>=media-libs/libsdl-1.2.15-r5[alsa,sound,abi_x86_32(-)]
>=media-libs/libvorbis-1.3.3-r1[abi_x86_32(-)]
)
"
S=${WORKDIR}
QA_TEXTRELS="
opt/ssamtse/Bin/libEntitiesMP.so
opt/ssamtse/Bin/libGameMP.so
opt/ssamtse/Bin/libamp11lib.so
opt/ssamtse/Bin/libShaders.so
"
QA_FLAGS_IGNORED="
opt/ssamtse/Bin/libEntitiesMP.so
opt/ssamtse/Bin/libGameMP.so
opt/ssamtse/Bin/libamp11lib.so
opt/ssamtse/Bin/libShaders.so
opt/ssamtse/Bin/ssam_lnxded
opt/ssamtse/Bin/ssam_lnxded.dynamic
opt/ssamtse/Bin/ssam_lnx.dynamic
opt/ssamtse/Bin/ssam_lnx
"
pkg_setup() {
games_pkg_setup
cdrom_get_cds "Install/SE1_00.gro"
}
src_unpack() {
mkdir Levels Mods
unpack_makeself "${MY_PN}-${MY_PV}.sh.bin"
unpack ./setupstuff.tar.gz
unpack ./bins.tar.bz2
}
src_prepare() {
# Switch to dynamic executable - runs at sane speeds on modern hardware
sed -i -e 's;exec "./ssam_lnx";exec "./ssam_lnx.dynamic";' bin/${MY_PN} \
|| die "dynamic binary update failed"
}
src_install() {
local dir=${GAMES_PREFIX_OPT}/${MY_PN}
# Remove bundled libs
rm -f Bin/{libogg.so,libvorbis.so,libvorbisfile.so}
einfo "Copying from ${CDROM_ROOT}"
insinto "${dir}"
doins -r "${CDROM_ROOT}"/Install/* || die "doins CD failed"
# Correct paths of copied resource files
mv "${D}/${dir}"/Locales/eng/Controls/* "${D}/${dir}"/Controls/
mv "${D}/${dir}"/Locales/eng/Data/Var/* "${D}/${dir}"/Data/Var/
mv "${D}/${dir}"/Locales/eng/Demos/* "${D}/${dir}"/Demos/
mv "${D}/${dir}"/Locales/eng/Help/* "${D}/${dir}"/Help/
mv "${D}/${dir}"/Locales/eng/Mods/Warped/Scripts/Addons/WarpedTweak.des "${D}/${dir}"/Mods/Warped/Scripts/Addons/
mv "${D}/${dir}"/Locales/eng/Mods/Warped/Readme.html "${D}/${dir}"/Mods/Warped/
mv "${D}/${dir}"/Locales/eng/Mods/*.des "${D}/${dir}"/Mods/
mv "${D}/${dir}"/Locales/eng/Scripts/Addons/* "${D}/${dir}"/Scripts/Addons/
mv "${D}/${dir}"/Locales/eng/Scripts/CustomOptions/* "${D}/${dir}"/Scripts/CustomOptions/
mv "${D}/${dir}"/Locales/eng/Scripts/NetSettings/* "${D}/${dir}"/Scripts/NetSettings/
rm -rf "${D}/${dir}"/Locales
# The data CABs contain optional multiplayer maps in the "Levels" directory
einfo "Extracting additional levels"
unshield x "${D}/${dir}"/data1.cab >/dev/null || die "unshield data1.cab failed"
rm "${D}/${dir}"/data?.cab
# Correct paths of extracted levels
mv Levels/Levels/LevelsMP/* Levels/LevelsMP/
rm -rf Levels/Levels
mv Levels/LevelsMP/Technology/* Levels/
rmdir Levels/LevelsMP/Technology
mv Levels/Mods/Warped/ Mods/
rmdir Levels/Mods/
doins -r Bin Data Levels Mods *.txt README* \
|| die "doins main failed"
# Install bins last to ensure they are marked executable
exeinto "${dir}"
doexe bin/${MY_PN}
exeinto "${dir}"/Bin
doexe Bin/{ssam_lnx*,*.so}
# Remove useless Windows files
rm -rf "${D}/${dir}/Bin"/{*.exe,*.dll,*.DLL,GameSpy}
rm -f "${D}/${dir}"/{*.exe,*.ex_,*.bmp,*.inx,*.hdr,*.bin}
dodoc README.linux
newicon ssam.xpm ${MY_PN}.xpm
games_make_wrapper ${MY_PN} ./${MY_PN} "${dir}" "${dir}"
make_desktop_entry ${MY_PN} "Serious Sam - Second Encounter" ${MY_PN}
# Ensure that file datestamps from the CD are sane
find "${D}/${dir}" -exec touch '{}' \;
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
elog "The warning regarding 'XiG-SUNDRY-NONSTANDARD missing' is harmless."
elog "Important information about the Linux port is at:"
elog " http://files.seriouszone.com/download.php?fileid=616"
echo
}
|