]>
Commit | Line | Data |
---|---|---|
e7979576 | 1 | |
1faea7fa | 2 | %define dataver 1.32b3-1 |
bde92c26 JP |
3 | %define snap 20190729 |
4 | %define rel 1 | |
64ed5be4 | 5 | Summary: Quake3 for Linux |
21562ba5 ER |
6 | Summary(de.UTF-8): Quake3 für Linux |
7 | Summary(pl.UTF-8): Quake3 dla Linuksa | |
64ed5be4 | 8 | Name: quake3 |
55e78a3b | 9 | Version: 1.36 |
1faea7fa | 10 | Release: 0.%{snap}.%{rel} |
5036d35d | 11 | License: GPL v2 |
842fa25f | 12 | Group: X11/Applications/Games |
55e78a3b | 13 | # svn export svn://svn.icculus.org/quake3/branches/1.36 quake3 |
1faea7fa | 14 | Source0: %{name}-%{snap}.tar.bz2 |
bde92c26 | 15 | # Source0-md5: e992c1043fbef63ddcb2b55af2d3543d |
223ad215 | 16 | Source2: q3ded.init |
17 | Source3: q3ded.sysconfig | |
bb4f2e83 | 18 | Source4: %{name}.desktop |
19 | Source5: %{name}-smp.desktop | |
b256b220 | 20 | Patch0: %{name}-QUAKELIBDIR.patch |
21 | Patch1: %{name}-alpha.patch | |
b8a6b47c | 22 | URL: http://ioquake3.org/ |
78f4210b | 23 | BuildRequires: OpenAL-devel |
6121ffe3 | 24 | BuildRequires: OpenGL-GLU-devel |
ec8f8bf7 | 25 | BuildRequires: OpenGL-devel |
bde92c26 | 26 | BuildRequires: SDL2-devel |
7d3050c0 | 27 | BuildRequires: curl-devel |
bde92c26 JP |
28 | BuildRequires: freetype-devel >= 2 |
29 | BuildRequires: libjpeg-devel | |
30 | BuildRequires: libogg-devel | |
b256b220 | 31 | BuildRequires: libvorbis-devel |
bde92c26 JP |
32 | BuildRequires: opus-devel |
33 | BuildRequires: opusfile-devel | |
6121ffe3 | 34 | BuildRequires: pkgconfig |
46095158 | 35 | BuildRequires: rpmbuild(macros) >= 1.268 |
6121ffe3 | 36 | BuildRequires: which |
bde92c26 | 37 | BuildRequires: zlib-devel |
4efc5e6b JB |
38 | Requires: %{name}-common = %{version}-%{release} |
39 | Requires: OpenGL | |
1faea7fa | 40 | Requires: quake3-data >= %{dataver} |
64ed5be4 PS |
41 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
42 | ||
b256b220 | 43 | # source has been fixed to work without those |
44 | %define filterout_c -fwrapv -fno-strict-aliasing -fsigned-char | |
45 | ||
7d3050c0 | 46 | %define specflags -ffast-math -funroll-loops -fomit-frame-pointer |
b256b220 | 47 | %define x86_flags -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fstrength-reduce |
48 | %define specflags_ia32 %{x86_flags} | |
49 | %define specflags_x86_64 %{x86_flags} | |
50 | %define specflags_amd64 %{x86_flags} | |
51 | %define specflags_ia32e %{x86_flags} | |
64ed5be4 | 52 | %define _noautoreqdep libGL.so.1 libGLU.so.1 |
64ed5be4 PS |
53 | |
54 | %description | |
6bd4d3b0 | 55 | Quake 3 for Linux. |
64ed5be4 | 56 | |
09704641 JR |
57 | %description -l de.UTF-8 |
58 | Quake 3 für Linux. | |
73576dbb | 59 | |
09704641 | 60 | %description -l pl.UTF-8 |
f6d1e4e1 | 61 | Quake 3 dla Linuksa. |
64ed5be4 | 62 | |
2dbdf1bb AA |
63 | %package server |
64 | Summary: Quake3 server | |
21562ba5 ER |
65 | Summary(de.UTF-8): Quake3 Server |
66 | Summary(pl.UTF-8): Serwer Quake3 | |
842fa25f | 67 | Group: X11/Applications/Games |
46095158 ER |
68 | Requires(post,preun): /sbin/chkconfig |
69 | Requires(postun): /usr/sbin/groupdel | |
70 | Requires(postun): /usr/sbin/userdel | |
223ad215 | 71 | Requires(pre): /bin/id |
72 | Requires(pre): /usr/bin/getgid | |
73 | Requires(pre): /usr/sbin/groupadd | |
74 | Requires(pre): /usr/sbin/useradd | |
2721d29f | 75 | Requires(triggerpostun): /usr/sbin/usermod |
fab6b60f | 76 | Requires: %{name}-common = %{version}-%{release} |
de879c95 | 77 | Requires: psmisc |
46095158 ER |
78 | Requires: rc-scripts |
79 | Requires: screen | |
223ad215 | 80 | Provides: group(quake3) |
81 | Provides: user(quake3) | |
2dbdf1bb AA |
82 | |
83 | %description server | |
84 | Quake3 server. | |
85 | ||
09704641 | 86 | %description server -l de.UTF-8 |
73576dbb | 87 | Quake3 Server. |
88 | ||
09704641 | 89 | %description server -l pl.UTF-8 |
2dbdf1bb AA |
90 | Serwer Quake3. |
91 | ||
92 | %package smp | |
c1a4c073 | 93 | Summary: Quake3 for SMP |
21562ba5 ER |
94 | Summary(de.UTF-8): Quake3 für SMP |
95 | Summary(pl.UTF-8): Quake3 dla SMP | |
842fa25f | 96 | Group: X11/Applications/Games |
fab6b60f | 97 | Requires: %{name}-common = %{version}-%{release} |
1faea7fa | 98 | Requires: quake3-data >= %{dataver} |
2dbdf1bb AA |
99 | |
100 | %description smp | |
101 | Quake3 for multi processor machine. | |
102 | ||
09704641 JR |
103 | %description smp -l de.UTF-8 |
104 | Quake3 für Multiprocessor Rechner. | |
73576dbb | 105 | |
09704641 | 106 | %description smp -l pl.UTF-8 |
2dbdf1bb AA |
107 | Quake3 dla maszyny wieloprocesorowej. |
108 | ||
fab6b60f | 109 | %package common |
73576dbb | 110 | Summary: Common files for Quake3 |
21562ba5 ER |
111 | Summary(de.UTF-8): Gemeinsame Dateien für Quake3 |
112 | Summary(pl.UTF-8): Pliki wspólne dla Quake3 | |
842fa25f | 113 | Group: X11/Applications/Games |
4e95c34d ER |
114 | Requires(triggerpostun): /usr/sbin/groupdel |
115 | Requires(triggerpostun): /usr/sbin/userdel | |
8362b1cd | 116 | Obsoletes: quake3-single |
2dbdf1bb | 117 | |
fab6b60f | 118 | %description common |
73576dbb | 119 | Common files for Quake3 server and player game. |
120 | ||
09704641 JR |
121 | %description common -l de.UTF-8 |
122 | Gemeinsame Dateien für den Quake3 Server und das Spiel. | |
fab6b60f | 123 | |
09704641 JR |
124 | %description common -l pl.UTF-8 |
125 | Pliki wspólne Quake3 dla serwera i trybu gracza. | |
2dbdf1bb | 126 | |
64ed5be4 | 127 | %prep |
05c759cf | 128 | %setup -q -n %{name} |
223ad215 | 129 | %patch0 -p1 |
d58c0b3f | 130 | %patch1 -p1 |
b256b220 | 131 | |
132 | %build | |
133 | cat << 'EOF' > Makefile.local | |
134 | BUILD_STANDALONE= 0 | |
cd8b61b4 | 135 | BUILD_CLIENT = 1 |
b256b220 | 136 | # smp broken |
137 | BUILD_CLIENT_SMP= 0 | |
cd8b61b4 | 138 | BUILD_SERVER = 1 |
139 | BUILD_GAME_SO = 1 | |
140 | BUILD_GAME_QVM = 0 | |
b256b220 | 141 | BUILD_MISSIONPACK= 1 |
142 | USE_OPENAL = 1 | |
143 | USE_OPENAL_DLOPEN = 0 | |
144 | USE_CURL = 1 | |
145 | USE_CURL_DLOPEN = 0 | |
146 | USE_CODEC_VORBIS = 1 | |
bde92c26 | 147 | USE_FREETYPE = 1 |
b256b220 | 148 | USE_MUMBLE = 1 |
149 | USE_VOIP = 1 | |
bde92c26 | 150 | USE_INTERNAL_LIBS = 0 |
b256b220 | 151 | GENERATE_DEPENDENCIES = 0 |
223ad215 | 152 | |
dea25180 | 153 | DEFAULT_BASEDIR = %{_datadir}/games/%{name} |
154 | ||
b256b220 | 155 | override OPTIMIZE = %{rpmcflags} \ |
bde92c26 | 156 | -DQUAKELIBDIR=\"%{_libdir}/%{name}\" |
b256b220 | 157 | |
158 | # vim spec bug: " | |
159 | ||
160 | override CC = %{__cc} | |
dea25180 | 161 | override LDFLAGS = %{rpmldflags} |
b256b220 | 162 | override BR = rel |
163 | ||
164 | EOF | |
165 | ||
166 | %{__make} release | |
64ed5be4 | 167 | |
64ed5be4 PS |
168 | %install |
169 | rm -rf $RPM_BUILD_ROOT | |
afc486fd | 170 | install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig} \ |
cb3503b5 | 171 | $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/games/%{name}/baseq3} \ |
b256b220 | 172 | $RPM_BUILD_ROOT%{_libdir}/%{name}/{baseq3,missionpack} \ |
223ad215 | 173 | $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \ |
cb3503b5 | 174 | $RPM_BUILD_ROOT/var/games/quake3 |
223ad215 | 175 | |
b256b220 | 176 | install rel/ioquake3.* $RPM_BUILD_ROOT%{_bindir}/%{name} |
177 | #install rel/ioquake3-smp.* $RPM_BUILD_ROOT%{_bindir}/%{name}-smp | |
178 | install rel/ioq3ded.* $RPM_BUILD_ROOT%{_bindir}/q3ded | |
179 | ||
bde92c26 JP |
180 | install rel/renderer*.so $RPM_BUILD_ROOT%{_libdir}/%{name} |
181 | ||
b256b220 | 182 | install rel/baseq3/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}/baseq3 |
183 | install rel/missionpack/*.so $RPM_BUILD_ROOT%{_libdir}/%{name}/missionpack | |
223ad215 | 184 | |
185 | install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/q3ded | |
186 | install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/q3ded | |
b256b220 | 187 | install misc/%{name}.svg $RPM_BUILD_ROOT%{_pixmapsdir} |
bb4f2e83 | 188 | install %{SOURCE4} $RPM_BUILD_ROOT%{_desktopdir}/quake3.desktop |
189 | install %{SOURCE5} $RPM_BUILD_ROOT%{_desktopdir}/quake3-smp.desktop | |
1395c3d7 | 190 | |
ce08802c JB |
191 | %clean |
192 | rm -rf $RPM_BUILD_ROOT | |
193 | ||
fab6b60f | 194 | %post common |
5e99e372 | 195 | if [ "$1" = "1" ]; then |
6d92e45f | 196 | echo "" |
cb3503b5 | 197 | echo "You need to copy pak0.pk3 from your Quake3 CD into %{_datadir}/games/%{name}/baseq3/." |
6d92e45f | 198 | echo "Or if you have got a Windows installation of Q3 make a symlink to save space." |
223ad215 | 199 | echo "You may place it in ~/.q3a/baseq3/ but you will have to put all pak files there (or make symlinks)." |
6d92e45f | 200 | echo "" |
5e99e372 | 201 | fi |
2dbdf1bb | 202 | |
223ad215 | 203 | %pre server |
4e0db59f | 204 | %groupadd -P %{name}-server -g 38 quake3 |
f984404f | 205 | %useradd -P %{name}-server -u 124 -d /var/games/quake3 -s /bin/sh -c "Quake ]|[ Arena" -g quake3 quake3 |
2721d29f | 206 | |
2dbdf1bb AA |
207 | %post server |
208 | /sbin/chkconfig --add q3ded | |
46095158 | 209 | %service q3ded restart "Quake3 server" |
01f91d2a | 210 | |
2dbdf1bb | 211 | %preun server |
01f91d2a | 212 | if [ "$1" = "0" ]; then |
46095158 | 213 | %service q3ded stop |
8c78bb60 | 214 | /sbin/chkconfig --del q3ded |
01f91d2a | 215 | fi |
64ed5be4 | 216 | |
223ad215 | 217 | %postun server |
aa45e1f4 | 218 | if [ "$1" = "0" ]; then |
de879c95 ER |
219 | %userremove quake3 |
220 | %groupremove quake3 | |
aa45e1f4 SP |
221 | fi |
222 | ||
cb3503b5 | 223 | %triggerpostun server -- %{name}-server < 1.33 |
6121ffe3 | 224 | # server will fail because of lack of pak0.pk3 |
225 | %service q3ded stop | |
cb3503b5 ER |
226 | if [ "`getent passwd quake3 | cut -d: -f6`" = "/opt/quake3" ]; then |
227 | /usr/sbin/usermod -d /var/games/quake3 -s /bin/sh quake3 | |
228 | fi | |
229 | ||
230 | %triggerpostun common -- %{name}-common < 1.33 | |
a5877514 | 231 | if [ ! -f %{_datadir}/games/%{name}/baseq3/pak0.pk3 ]; then |
232 | # Better don't link/move automatically, /opt may be on other partition than /usr | |
233 | echo "" | |
234 | echo "Quake 3 data location has changed, link or move pak0.pk3 to %{_datadir}/games/%{name}/baseq3/." | |
235 | echo "" | |
236 | fi | |
46095158 | 237 | |
cb3503b5 ER |
238 | if [ "$1" = "0" ]; then |
239 | %userremove quake3 | |
240 | %groupremove quake3 | |
241 | fi | |
242 | ||
64ed5be4 | 243 | %files |
129cb6c3 | 244 | %defattr(644,root,root,755) |
129cb6c3 | 245 | %attr(755,root,root) %{_bindir}/quake3 |
c1a4c073 | 246 | %{_desktopdir}/quake3.desktop |
bde92c26 | 247 | %attr(755,root,root) %{_libdir}/%{name}/renderer*.so |
fab6b60f AA |
248 | |
249 | %files common | |
129cb6c3 | 250 | %defattr(644,root,root,755) |
bde92c26 | 251 | %doc CONTRIBUTING.md id-readme.txt README.md SECURITY.md ChangeLog TODO |
4e95c34d | 252 | %dir %{_datadir}/games/%{name} |
a5877514 | 253 | %dir %{_datadir}/games/%{name}/baseq3 |
ddd4839d | 254 | %{_pixmapsdir}/quake3.svg |
c0932dc6 | 255 | %dir %{_libdir}/%{name} |
256 | %dir %{_libdir}/%{name}/baseq3 | |
257 | %dir %{_libdir}/%{name}/missionpack | |
258 | %attr(755,root,root) %{_libdir}/%{name}/baseq3/*.so | |
259 | %attr(755,root,root) %{_libdir}/%{name}/missionpack/*.so | |
2dbdf1bb AA |
260 | |
261 | %files server | |
d617273b | 262 | %defattr(644,root,root,755) |
efd8c6a1 SP |
263 | %attr(754,root,root) /etc/rc.d/init.d/q3ded |
264 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/q3ded | |
223ad215 | 265 | %attr(755,root,root) %{_bindir}/q3ded |
cb3503b5 | 266 | %attr(750,quake3,quake3) /var/games/quake3 |
2dbdf1bb | 267 | |
b256b220 | 268 | %if 0 |
2dbdf1bb | 269 | %files smp |
129cb6c3 | 270 | %defattr(644,root,root,755) |
129cb6c3 | 271 | %attr(755,root,root) %{_bindir}/quake3-smp |
c1a4c073 | 272 | %{_desktopdir}/quake3-smp.desktop |
b256b220 | 273 | %endif |