quakeforge/RPM/quakeforge.spec.in

443 lines
15 KiB
RPMSpec

%define name quakeforge
%define qfversion @VERSION@
%define rpmversion @RPMVERSION@
%define release 1
%define builddir $RPM_BUILD_DIR/%{name}-%{qfversion}
%define HAVE_FBDEV '@HAVE_FBDEV@'
%define HAVE_SDL '@HAVE_SDL@'
%define HAVE_SVGA '@HAVE_SVGA@'
%define HAVE_X11 '@HAVE_X@'
%define HAVE_XMMS '@HAVE_XMMS@'
%define HAVE_ALSA '@HAVE_ALSA@'
%define HAVE_OSS '@HAVE_OSS@'
%define BUILD_GL '@CAN_BUILD_GL@'
%define BUILD_SW '@CAN_BUILD_SW@'
%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
Copyright: 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.
%if "%{HAVE_SDL}"=="'yes'"
%package sdl
Summary: QuakeForge 3D game engine - SDL client
Group: Amusements/Games
Requires: quakeforge == %{rpmversion}, quakeforge-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 sgl
Summary: QuakeForge 3D game engine - SDL-GL client
Group: Amusements/Games
Requires: quakeforge == %{rpmversion}
%description sgl
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-GL versions of the QuakeForge client and
standalone engine.
%endif
%if "%{HAVE_SVGA}"=="'yes'"
%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.
%endif
%if "%{HAVE_X11}"=="'yes'"
%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.
%endif
%if "%{HAVE_X11}"=="'yes'"
%package glx
Summary: QuakeForge 3D game engine - glx client
Group: Amusements/Games
Requires: quakeforge == %{rpmversion}, quakeforge-common == %{rpmversion}
%description glx
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 GLX versions of the QuakeForge client and
standalone engine.
%endif
%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.
%if "%{BUILD_SW}"=="'yes'"
%package libs-sw
Summary: QuakeForge 3D game engine - Software renderer libraries
Group: Amusements/Games
#Requires:
%description libs-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
rendering targets.
%endif
%if "%{BUILD_GL}"=="'yes'"
%package libs-gl
Summary: QuakeForge 3D game engine - OpenGL renderer libraries
Group: Amusements/Games
#Requires:
%description libs-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
rendering targets.
%endif
%if "%{HAVE_OSS}"=="'yes'"
%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.
%endif
%if "%{HAVE_ALSA}"=="'yes'"
%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.
%endif
%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}
if test -f /proc/cpuinfo; then
make -j`grep processor /proc/cpuinfo | wc -l`
else
make
fi
%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
%clean
rm -rf $RPM_BUILD_ROOT
%files
%doc COPYING INSTALL TODO doc/*
%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/libQFgamecode.so.*
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.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/cd_file.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/cd_linux.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/console_client.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_output_disk.so*
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_render_default.so*
%attr(-,root,root) %{fs_sharepath}/QF/menu.dat*
%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/libQFgamecode.*a
%attr(-,root,root) %{_prefix}/lib/libQFgamecode.so
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.*a
%attr(-,root,root) %{_prefix}/lib/libQFgamecode_builtins.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/*.h
%attr(-,root,root) %{_prefix}/include/QF/plugin/*.h
%if "%{BUILD_GL}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.*a
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.*a
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so
%endif
%if "%{BUILD_SW}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.*a
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so
%if "%{HAVE_SDL}"=="'yes'"
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.*a
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_sw32.so
%endif
%endif
%if "%{BUILD_GL}"=="'yes'"
%files libs-gl
%attr(-,root,root) %{_prefix}/lib/libQFmodels_gl.so.*
%attr(-,root,root) %{_prefix}/lib/libQFrenderer_gl.so.*
%endif
%if "%{BUILD_SW}"=="'yes'"
%files libs-sw
%attr(-,root,root) %{_prefix}/lib/libQFmodels_sw.so.*
%endif
%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/console_server.so*
%if "%{HAVE_X11}"=="'yes'"
%files glx
%attr(-,root,root) %{_prefix}/bin/qw-client-glx
%attr(-,root,root) %{_prefix}/bin/nq-glx
%endif
%if "%{HAVE_SDL}"=="'yes'"
%files sdl
%attr(-,root,root) %{_prefix}/bin/qw-client-sdl
%attr(-,root,root) %{_prefix}/bin/nq-sdl
%files sgl
%attr(-,root,root) %{_prefix}/bin/qw-client-sgl
%attr(-,root,root) %{_prefix}/bin/nq-sgl
%endif
%if "%{HAVE_SVGA}"=="'yes'"
%files svga
%attr(4755,root,root) %{_prefix}/bin/qw-client-svga
%attr(4755,root,root) %{_prefix}/bin/nq-svga
%endif
%if "%{HAVE_X11}"=="'yes'"
%files x11
%attr(-,root,root) %{_prefix}/bin/qw-client-x11
%attr(-,root,root) %{_prefix}/bin/nq-x11
%endif
%if "%{HAVE_ALSA}"=="'yes'"
%files alsa
%attr(-,root,root) %{_prefix}/lib/quakeforge/%{ALSA_PLUGIN}.so*
%endif
%if "%{HAVE_OSS}"=="'yes'"
%files oss
%attr(-,root,root) %{_prefix}/lib/quakeforge/snd_output_oss.so*
%endif
%files -n qfcc
%attr(-,root,root) %{_prefix}/bin/qfcc
%attr(-,root,root) %{_prefix}/man/man1/qfcc.1.gz
%attr(-,root,root) %{_prefix}/include/QF/ruamoko/*
%attr(-,root,root) %{_prefix}/lib/ruamoko/*
%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}/man/man1/pak.1.gz
#%attr(-,root,root) %{_prefix}/man/man1/qfprogs.1.gz
#%attr(-,root,root) %{_prefix}/man/man1/qfwavinfo.1.gz
%files maptools
%attr(-,root,root) %{_prefix}/bin/qfbsp
%attr(-,root,root) %{_prefix}/bin/qflight
%attr(-,root,root) %{_prefix}/bin/qfvis
%attr(-,root,root) %{_prefix}/man/man1/qflight.1.gz
%attr(-,root,root) %{_prefix}/man/man1/qfvis.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