%define name quakeforge %define qfversion @VERSION@ %define rpmversion @RPMVERSION@ %define release 1 %define builddir $RPM_BUILD_DIR/%{name}-%{qfversion} %define ALSA_PLUGIN 'snd_output_@ALSA_PLUGIN@' %define fs_sharepath %{_prefix}/share/games/quakeforge Name: %{name} Version: %{rpmversion} Release: %{release} Vendor: The QuakeForge Project Packager: The QuakeForge Project quakeforge-devel@lists.quakeforge.net URL: http://www.quakeforge.net/ Source: %{name}-%{qfversion}.tar.gz #Patch: Group: Amusements/Games License: GPL #Icon: Requires: quakeforge-common, quake-game BuildRoot: /var/tmp/%{name}-%{qfversion} Summary: QuakeForge 3D game engine %description QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. %package common Summary: QuakeForge 3D game engine - common files Group: Amusements/Games #Requires: %description common QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains files and shared libraries common to all QuakeForge packages. %package devel Summary: QuakeForge 3D game engine - headers and devel libs Group: Amusements/Games Requires: quakeforge-common %description devel QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains headers and static libraries for the development of utilities and applications for QuakeForge. %package sdl Summary: QuakeForge 3D game engine - SDL client Group: Amusements/Games Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}, quakeforge-sdl-common == %{rpmversion} %description sdl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the SDL versions of the QuakeWorld client and standalone engine. %package svga Summary: QuakeForge 3D game engine - SVGAlib client Group: Amusements/Games Requires: quakeforge == %{rpmversion} %description svga QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the SVGAlib versions of the QuakeWorld client and standalone engine. %package x11 Summary: QuakeForge 3D game engine - X11 client Group: Amusements/Games Requires: quakeforge == %{rpmversion} %description x11 QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the X11 versions of the QuakeForge client and standalone engine. %package servers Summary: QuakeForge 3D game engine - Server Group: Amusements/Games Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion} %description servers QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains both the QuakeWorld-compatible and NetQuake-compatible dedicated servers, as well as a simple QuakeWorld-compatible master server. %package sw32 Summary: QuakeForge 3D game engine - Software renderer libraries Group: Amusements/Games #Requires: %description sw32 QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the shared libraries needed to use the 32bpp software renderer. %package sw Summary: QuakeForge 3D game engine - Software renderer libraries Group: Amusements/Games #Requires: %description sw QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the shared libraries needed to use the software renderer. %package gl Summary: QuakeForge 3D game engine - OpenGL renderer libraries Group: Amusements/Games #Requires: %description gl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the shared libraries needed to use the OpenGL renderer. %package glsl Summary: QuakeForge 3D game engine - OpenGL renderer libraries Group: Amusements/Games #Requires: %description glsl QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This package contains the shared libraries needed to use the OpenGL GLSL renderer. %package oss Summary: OSS sound plugin for QuakeForge Group: Amusements/Games #Requires: %description oss The OSS plugin for QuakeForge provides digital audio output (using OSS/Linux, OSS/Free, or kernel sound) for QuakeForge targets that contain clients. NOTE: This plugin does not work on all systems, since it uses memory-mapped I/O for the output device. If you have trouble, try the quakeforge-alsa package. %if "%{HAVE_XMMS}"=="'yes'" %package xmms Summary: XMMS playlist interface Group: Amusements/Games #Requires: %description xmms The XMMS plugin for QuakeForge allows the clients to use the XMMS playlist as a virtual cd for background music. %endif %package alsa Summary: ALSA sound plugin for QuakeForge Group: Amusements/Games #Requires: %description alsa The ALSA plugin for QuakeForge provides digital audio output for QuakeForge targets that contain clients. %package utils Summary: QuakeForge 3D game engine - utility programs Group: Amusements/Games #Requires: %description utils This package contains several tools for use with QuakeForge: * pak, a pakfile management tool. * zpak, a script for compressing pakfiles. * qfprogs, a "nm" tool for examining progs data files. * qfwavinfo, a tool to assist in converting "looped" WAV files to Ogg Vorbis. %package maptools Summary: QuakeForge 3D game engine - headers and devel libs Group: Amusements/Games Requires: quakeforge-common %description maptools This package contains QuakeForge's versions of the tools Id Software used to create maps for the Quake engine. Included are: * qfbsp, a program for compiling a map file into a BSP tree. * qflight, a program for generating lightmaps from the static lights in a BSP file. * qfvis, a program for generating the Possibly-Visible Set information from a BSP and a portal information file (generated by qfbsp). %package -n qfcc Summary: QuakeForge QC/Ruamoko compiler #FIXME correct group? Group: Amusements/Games Requires: quakeforge-common %description -n qfcc QFCC is an optimizing byte-code compiler for the Ruamoko language, a language based strongly on Id Software's QuakeC. The bytecode interpreter for QuakeC and Ruamoko is located inside the Quake engine (though there is a standalone interpreter available). QFCC is designed to work with the QuakeForge engines, but will work with most non-QuakeForge servers with a couple of changes to its command-line options. %package stub Summary: QuakeForge 3D game engine - common files Group: Amusements/Games #Requires: Provides: quake-game %description stub QuakeForge is a source port of Quake and QuakeWorld, the successors to id Software's very popular DOOM series. Its primary development goal is to remain compatible with the original games released by id Software while adding portability and optional extensions to enhance gameplay. This sub-package provides the quake-game pseudo package. %prep %setup -n %{name}-%{qfversion} #%patch -p1 %build CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} make $QFSMP %install if [ -d $RPM_BUILD_ROOT ]; then rm -rf $RPM_BUILD_ROOT; fi mkdir -p $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/etc make install DESTDIR=$RPM_BUILD_ROOT cp RPM/quakeforge.conf $RPM_BUILD_ROOT/etc mkdir -p $RPM_BUILD_ROOT/%{fs_sharepath}/id1 find $RPM_BUILD_ROOT/usr/lib/quakeforge -name '*.a' -exec rm {} \; find $RPM_BUILD_ROOT/usr/lib/quakeforge -name '*.la' -exec rm {} \; rm $RPM_BUILD_ROOT/usr/bin/hw-master rm $RPM_BUILD_ROOT/usr/bin/qfpc find $RPM_BUILD_ROOT/usr/lib -name 'libQFrenderer_sw32.*' -exec rm {} \; #FIXME until I feel like making packages rm $RPM_BUILD_ROOT/usr/bin/qtv find $RPM_BUILD_ROOT/usr/lib/quakeforge -name 'snd_render_jack*' -exec rm {} \; %clean rm -rf $RPM_BUILD_ROOT %files %doc COPYING INSTALL TODO doc/* %attr(-,root,root) %{_prefix}/lib/pkgconfig/quakeforge.pc %files common %attr(-,root,root) /etc/quakeforge.conf %attr(-,root,root) %{_prefix}/lib/libQFcd.so.* %attr(-,root,root) %{_prefix}/lib/libQFconsole.so.* %attr(-,root,root) %{_prefix}/lib/libQFgib.so.* %attr(-,root,root) %{_prefix}/lib/libQFimage.so.* %attr(-,root,root) %{_prefix}/lib/libQFjs.so.* %attr(-,root,root) %{_prefix}/lib/libQFmodels.so.* %attr(-,root,root) %{_prefix}/lib/libQFruamoko.so.* %attr(-,root,root) %{_prefix}/lib/libQFsound.so.* %attr(-,root,root) %{_prefix}/lib/libQFutil.so.* %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/cd_file.so* %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/cd_linux.so* %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/console_client.so* %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/snd_render_default.so* %attr(-,root,root) %{fs_sharepath}/QF/menu.* %files devel %attr(-,root,root) %{_prefix}/lib/libQFcd.*a %attr(-,root,root) %{_prefix}/lib/libQFcd.so %attr(-,root,root) %{_prefix}/lib/libQFconsole.*a %attr(-,root,root) %{_prefix}/lib/libQFconsole.so %attr(-,root,root) %{_prefix}/lib/libQFgib.*a %attr(-,root,root) %{_prefix}/lib/libQFgib.so %attr(-,root,root) %{_prefix}/lib/libQFimage.*a %attr(-,root,root) %{_prefix}/lib/libQFimage.so %attr(-,root,root) %{_prefix}/lib/libQFjs.*a %attr(-,root,root) %{_prefix}/lib/libQFjs.so %attr(-,root,root) %{_prefix}/lib/libQFmodels.*a %attr(-,root,root) %{_prefix}/lib/libQFmodels.so %attr(-,root,root) %{_prefix}/lib/libQFruamoko.*a %attr(-,root,root) %{_prefix}/lib/libQFruamoko.so %attr(-,root,root) %{_prefix}/lib/libQFsound.*a %attr(-,root,root) %{_prefix}/lib/libQFsound.so %attr(-,root,root) %{_prefix}/lib/libQFutil.*a %attr(-,root,root) %{_prefix}/lib/libQFutil.so %attr(-,root,root) %{_prefix}/include/QF/GL/*.h %attr(-,root,root) %{_prefix}/include/QF/GLSL/*.h %attr(-,root,root) %{_prefix}/include/QF/*.h %attr(-,root,root) %{_prefix}/include/QF/plugin/*.h %files gl %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/vid_render_gl.so* %files glsl %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/vid_render_glsl.so* %files sw32 %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/vid_render_sw32.so* %files sw %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/vid_render_sw.so* %files servers %attr(-,root,root) %{_prefix}/bin/qw-server %attr(-,root,root) %{_prefix}/bin/nq-server %attr(-,root,root) %{_prefix}/bin/qw-master #%attr(-,root,root) %{_prefix}/bin/hw-master %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/console_server.so* %files sdl %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/cd_sdl.so* %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/snd_output_sdl.so* %attr(-,root,root) %{_prefix}/bin/qw-client-sdl %attr(-,root,root) %{_prefix}/bin/nq-sdl %files x11 %attr(-,root,root) %{_prefix}/bin/qw-client-x11 %attr(-,root,root) %{_prefix}/bin/nq-x11 %if "%{HAVE_XMMS}"=="'yes'" %files xmms %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/cd_xmms.so %endif %files alsa %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/snd_output_alsa.so* %files oss %attr(-,root,root) %{_prefix}/lib/quakeforge/plugins/snd_output_oss.so* %files -n qfcc %attr(-,root,root) %{_prefix}/bin/qfcc %attr(-,root,root) %{_prefix}/bin/qfpreqcc %attr(-,root,root) %{_prefix}/share/man/man1/qfcc.1.gz %attr(-,root,root) %{_prefix}/lib/pkgconfig/qfcc.pc %attr(-,root,root) %{_prefix}/share/qfcc/include/* %attr(-,root,root) %{_prefix}/share/qfcc/lib/* %files utils %attr(-,root,root) %{_prefix}/bin/pak %attr(-,root,root) %{_prefix}/bin/zpak %attr(-,root,root) %{_prefix}/bin/qfprogs %attr(-,root,root) %{_prefix}/bin/qfwavinfo %attr(-,root,root) %{_prefix}/share/man/man1/pak.1.gz %attr(-,root,root) %{_prefix}/share/man/man1/zpak.1.gz #%attr(-,root,root) %{_prefix}/share/man/man1/qfprogs.1.gz #%attr(-,root,root) %{_prefix}/share/man/man1/qfwavinfo.1.gz %files maptools %attr(-,root,root) %{_prefix}/bin/bsp2img %attr(-,root,root) %{_prefix}/bin/qfbsp %attr(-,root,root) %{_prefix}/bin/qflight %attr(-,root,root) %{_prefix}/bin/qflmp %attr(-,root,root) %{_prefix}/bin/qfmodelgen %attr(-,root,root) %{_prefix}/bin/qfspritegen %attr(-,root,root) %{_prefix}/bin/qfvis %attr(-,root,root) %{_prefix}/bin/wad %attr(-,root,root) %{_prefix}/share/man/man1/qflight.1.gz %attr(-,root,root) %{_prefix}/share/man/man1/qfvis.1.gz %attr(-,root,root) %{_prefix}/share/man/man1/wad.1.gz %files stub %attr(-,root,root) %dir %{fs_sharepath} %attr(-,root,root) %dir %{fs_sharepath}/id1 %post stub if test ! -f %{fs_sharepath}/id1/pak0.pak; then echo Warning: %{fs_sharepath}/id1/pak0.pak not found echo Install either the shareware or registered quake data in echo %{fs_sharepath} fi